Compare commits

..
29 Commits
Author SHA1 Message Date
Amruth Pillai ae8d48bcee chore: update translations 2026-07-30 12:59:19 +02:00
Amruth Pillai 517199471a docs: add changelog of v5.2.5 2026-07-30 12:56:28 +02:00
Santhi Prakash 15f8bce988 docs: align pnpm version with packageManager field (#3278) 2026-07-30 12:47:00 +02:00
Amruth Pillai 164a279306 chore: update dependencies 2026-07-30 12:45:49 +02:00
github-actions[bot]andCrowdin Bot 79e4a3ddc8 Sync Translations from Crowdin (#3279)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-07-30 12:41:45 +02:00
Amruth PillaiandCursor Agent d2ffbf9618 feat: add semantic CSS stylesheets (#3274)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-07-30 12:39:15 +02:00
4ac19f81b3 fix: clamp page margin values to [0, 100] to prevent crash on paste (#3277)
Co-authored-by: Amruth Pillai <im.amruth@gmail.com>
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-07-29 18:13:42 +02:00
Amruth Pillai b303b89758 fix(web): restore Tiptap Enter and list editing 2026-07-28 15:10:24 +02:00
Amruth Pillai c6ac3fd1a9 docs: remove redirects 2026-07-28 09:39:23 +02:00
Amruth Pillai fe6f84e06d docs: resolve final comparison review findings 2026-07-28 09:19:16 +02:00
Amruth Pillai 9d6426b2e0 docs: publish resume builder comparison cluster 2026-07-28 09:04:43 +02:00
Amruth Pillai d34a429dea docs: remove unsupported deployment comparisons 2026-07-28 08:59:56 +02:00
Amruth Pillai b69583c181 docs: compare career and template resume tools 2026-07-28 08:57:31 +02:00
Amruth Pillai 50f50b2672 fix(server): use public URL for homepage metadata 2026-07-28 08:56:43 +02:00
Amruth Pillai fb8c73be76 docs: narrow unsupported AI comparison claims 2026-07-28 08:53:18 +02:00
Amruth Pillai 18468a5658 docs: tighten AI comparison sourcing 2026-07-28 08:50:03 +02:00
Amruth Pillai 048eab3b49 fix(web): preserve bootstrap attribute order 2026-07-28 08:48:14 +02:00
Amruth Pillai ca774c77c8 docs: compare AI and ATS resume builders 2026-07-28 08:46:25 +02:00
Amruth Pillai a4897c20d7 docs: canonicalize getting started routes 2026-07-28 08:41:53 +02:00
Amruth Pillai bed14a72af docs: compare mainstream resume builders 2026-07-28 08:39:18 +02:00
Amruth Pillai 93c06934bd fix(web): preserve Rocket Loader exclusion in build 2026-07-28 08:38:05 +02:00
Amruth Pillai 1e665fbe7e perf(web): remove homepage video from the LCP path 2026-07-28 08:35:07 +02:00
Amruth Pillai 30812f8a8e docs: compare Reactive Resume with design editors 2026-07-28 08:33:08 +02:00
Amruth Pillai dd0531091b fix(server): limit immutable media cache headers 2026-07-28 08:31:26 +02:00
Amruth Pillai a2901bfb2e docs: plan SEO comparison content cluster 2026-07-28 08:08:29 +02:00
Amruth Pillai 418c7887ee fix(server): emit initial homepage SEO metadata 2026-07-28 08:07:53 +02:00
Amruth Pillai 12407d473d docs: plan SEO and AEO performance improvements 2026-07-28 07:36:27 +02:00
Amruth Pillai 36a46cfd66 docs: design SEO comparison content cluster 2026-07-28 07:34:36 +02:00
Amruth Pillai 0868a92e62 docs: design SEO and AEO performance improvements 2026-07-28 07:31:35 +02:00
415 changed files with 88796 additions and 4097 deletions
+35 -2
View File
@@ -56,6 +56,9 @@ jobs:
- name: Install Dependencies
run: pnpm install --frozen-lockfile
- name: Run Server and Tooling Tests
run: pnpm exec turbo run test:ci --filter=server --filter=@reactive-resume/tooling
- name: Install Playwright Browser
run: pnpm exec playwright install --with-deps chromium
@@ -73,8 +76,38 @@ jobs:
- name: Build
run: pnpm build
- name: Run E2E Tests
run: pnpm test:e2e:ci
- name: Run Baseline E2E Tests
env:
FLAG_SEMANTIC_CSS_AUTHORING: "false"
FLAG_SEMANTIC_CSS_DEFAULT: "false"
run: pnpm exec playwright test --grep-invert "@semantic-css"
- name: Run Semantic CSS Opt-In Acceptance
env:
FLAG_SEMANTIC_CSS_AUTHORING: "true"
FLAG_SEMANTIC_CSS_DEFAULT: "false"
run: |
pnpm exec playwright test \
tests/e2e/specs/semantic-css/legacy-conversion.spec.ts \
tests/e2e/specs/semantic-css/invalid-last-valid.spec.ts \
tests/e2e/specs/semantic-css/portable-stylesheet.spec.ts \
tests/e2e/specs/semantic-css/revision-conflict.spec.ts \
tests/e2e/specs/semantic-css/template-visual.spec.ts
- name: Run Semantic CSS Default-On Acceptance
env:
FLAG_SEMANTIC_CSS_AUTHORING: "true"
FLAG_SEMANTIC_CSS_DEFAULT: "true"
run: pnpm exec playwright test tests/e2e/specs/semantic-css/default-mode.spec.ts
- name: Run Semantic CSS Dormant Acceptance
env:
FLAG_SEMANTIC_CSS_AUTHORING: "false"
FLAG_SEMANTIC_CSS_DEFAULT: "false"
run: |
pnpm exec playwright test \
tests/e2e/specs/semantic-css/dormant-mode.spec.ts \
tests/e2e/specs/semantic-css/flag-off-semantic.spec.ts
- name: Upload Playwright Report
if: always()
+1
View File
@@ -51,6 +51,7 @@ temp
.cursor
.codegraph
.superpowers
.worktrees
.migration
# Local Storage Data
@@ -0,0 +1,23 @@
# Task 1: Harden public PDF response contract
## Implemented
- Pinned successful public PDF responses to `Content-Type: application/pdf` at the HTTP boundary.
- Kept `Cache-Control: private, no-store` hardcoded at that boundary for successful, validation-error, and service-error responses.
- Removed the unused `cacheControl` member from `createPublicResumePdf` and all affected tests/mocks.
- Updated the route regression to return a `text/plain` file from the service mock while asserting the HTTP response remains `application/pdf`.
## Verification
- `pnpm --filter server test -- src/http/public-resume-pdf.test.ts` — 13 files / 71 tests passed.
- `dotenvx run -f .env.local -- pnpm exec vitest run packages/api/src/features/resume/public-pdf.test.ts` — 1 file / 7 tests passed.
- `pnpm exec biome check apps/server/src/http/public-resume-pdf.ts apps/server/src/http/public-resume-pdf.test.ts packages/api/src/features/resume/public-pdf.ts packages/api/src/features/resume/public-pdf.test.ts` — passed.
- `pnpm --filter server typecheck` and `pnpm --filter @reactive-resume/api typecheck` — passed.
## Note
The API package test script did not scope to the supplied test path and initially ran the package suite, which has two unrelated baseline failures: `src/features/ai/url-policy.test.ts` and `src/features/resume/export.test.ts` (missing required env). The target test was then run directly with `.env.local` and passed.
## Self-review
`git diff --check` passed. The diff is restricted to the public PDF service contract, HTTP response header, and their focused tests.
+1 -1
View File
@@ -12,7 +12,7 @@ Internal packages are source-consumed through `package.json` export maps that po
- **Node.js 24** (matches Dockerfile `ARG NODE_VERSION=24`). Use `nvm install 24 && nvm use 24` if needed.
- **Docker** is required to run PostgreSQL. Start it with `sudo dockerd &` if the daemon isn't running.
- **pnpm 11.1.2** is managed via corepack (`corepack enable`).
- **pnpm 11.17.0** is managed via corepack (`corepack enable`).
### Codebase map
+28 -22
View File
@@ -7,6 +7,7 @@
"dev": "tsx watch src/index.ts",
"build": "tsdown",
"start": "node dist/index.mjs",
"docs:gen": "tsx src/openapi/generate-spec.ts",
"typecheck": "tsgo --noEmit",
"test": "vitest run --passWithNoTests",
"test:coverage": "vitest run --coverage --passWithNoTests",
@@ -17,48 +18,52 @@
"#react-pdf-renderer": "@react-pdf/renderer"
},
"dependencies": {
"@ai-sdk/anthropic": "^4.0.21",
"@ai-sdk/cerebras": "^3.0.14",
"@ai-sdk/cohere": "^4.0.12",
"@ai-sdk/deepseek": "^3.0.13",
"@ai-sdk/fireworks": "^3.0.15",
"@ai-sdk/google": "^4.0.24",
"@ai-sdk/groq": "^4.0.13",
"@ai-sdk/mistral": "^4.0.14",
"@ai-sdk/openai": "^4.0.20",
"@ai-sdk/openai-compatible": "^3.0.14",
"@ai-sdk/perplexity": "^4.0.13",
"@ai-sdk/togetherai": "^3.0.15",
"@ai-sdk/xai": "^4.0.18",
"@aws-sdk/client-s3": "^3.1096.0",
"@ai-sdk/anthropic": "^4.0.24",
"@ai-sdk/cerebras": "^3.0.17",
"@ai-sdk/cohere": "^4.0.15",
"@ai-sdk/deepseek": "^3.0.16",
"@ai-sdk/fireworks": "^3.0.18",
"@ai-sdk/google": "^4.0.28",
"@ai-sdk/groq": "^4.0.16",
"@ai-sdk/mistral": "^4.0.17",
"@ai-sdk/openai": "^4.0.24",
"@ai-sdk/openai-compatible": "^3.0.17",
"@ai-sdk/perplexity": "^4.0.17",
"@ai-sdk/togetherai": "^3.0.18",
"@ai-sdk/xai": "^4.0.22",
"@aws-sdk/client-s3": "^3.1098.0",
"@better-auth/api-key": "^1.6.25",
"@better-auth/drizzle-adapter": "^1.6.25",
"@better-auth/infra": "^0.3.7",
"@better-auth/oauth-provider": "^1.6.25",
"@better-auth/passkey": "^1.6.25",
"@bramus/specificity": "^2.4.2",
"@hono/node-server": "^2.0.12",
"@modelcontextprotocol/sdk": "^1.30.0",
"@orpc/client": "^1.14.12",
"@orpc/experimental-ratelimit": "^1.14.12",
"@orpc/json-schema": "^1.14.12",
"@orpc/openapi": "^1.14.12",
"@orpc/server": "^1.14.12",
"@orpc/zod": "^1.14.12",
"@orpc/client": "^1.14.13",
"@orpc/experimental-ratelimit": "^1.14.13",
"@orpc/json-schema": "^1.14.13",
"@orpc/openapi": "^1.14.13",
"@orpc/server": "^1.14.13",
"@orpc/zod": "^1.14.13",
"@react-pdf/renderer": "^4.5.1",
"@reactive-resume/api": "workspace:*",
"@reactive-resume/auth": "workspace:*",
"@reactive-resume/db": "workspace:*",
"@reactive-resume/env": "workspace:*",
"@reactive-resume/mcp": "workspace:*",
"@reactive-resume/pdf": "workspace:*",
"@reactive-resume/schema": "workspace:*",
"@reactive-resume/utils": "workspace:*",
"@sindresorhus/slugify": "^3.0.0",
"@t3-oss/env-core": "^0.13.11",
"@uiw/color-convert": "^2.10.3",
"ai": "^7.0.37",
"ai": "^7.0.42",
"bcrypt": "^6.0.0",
"better-auth": "1.6.25",
"canonicalize": "^3.0.0",
"cjk-regex": "^3.4.0",
"css-tree": "^3.2.1",
"deepmerge-ts": "^7.1.5",
"drizzle-orm": "1.0.0-rc.4",
"drizzle-zod": "1.0.0-beta.14-a36c63d",
@@ -66,9 +71,10 @@
"fast-json-patch": "^3.1.1",
"hono": "^4.12.32",
"jsonrepair": "^3.15.0",
"node-html-parser": "^9.0.0",
"node-html-parser": "^9.0.1",
"nodemailer": "^9.0.3",
"ollama-ai-provider-v2": "^4.0.1",
"pdfjs-dist": "^6.2.108",
"pg": "^8.22.0",
"phosphor-icons-react-pdf": "^0.1.3",
"react": "^19.2.8",
+56
View File
@@ -9,6 +9,7 @@ const mocks = vi.hoisted(() => ({
handleUpload: vi.fn(),
handleMcp: vi.fn(),
handleResumePdfDownload: vi.fn(),
handlePublicResumePdf: vi.fn(),
handleMcpServerCard: vi.fn(),
handleOAuthAuthorizationServer: vi.fn(),
handleOAuthProtectedResource: vi.fn(),
@@ -69,6 +70,15 @@ vi.mock("./resume-pdf", () => ({
handleResumePdfDownload: mocks.handleResumePdfDownload,
}));
vi.mock("./public-resume-pdf", () => ({
handlePublicResumePdf: mocks.handlePublicResumePdf,
}));
const transportEnv = (remoteAddress: string) =>
({
incoming: { socket: { remoteAddress } },
}) as never;
beforeEach(() => {
vi.clearAllMocks();
mocks.handleAuth.mockResolvedValue(new Response("auth"));
@@ -79,6 +89,7 @@ beforeEach(() => {
mocks.handleUpload.mockResolvedValue(new Response("upload"));
mocks.handleMcp.mockResolvedValue(new Response("mcp"));
mocks.handleResumePdfDownload.mockResolvedValue(new Response("pdf"));
mocks.handlePublicResumePdf.mockResolvedValue(new Response("public-pdf"));
mocks.handleMcpServerCard.mockReturnValue(new Response("server-card"));
mocks.handleOAuthAuthorizationServer.mockReturnValue(new Response("oauth-authorization-server"));
mocks.handleOAuthProtectedResource.mockReturnValue(new Response("oauth-protected-resource"));
@@ -117,6 +128,51 @@ describe("createApp", () => {
expect(mocks.handleWebApp).not.toHaveBeenCalled();
});
it("uses the transport address for public PDF fallback despite rotated forwarding headers", async () => {
const { createApp } = await import("./app");
const app = createApp();
const first = new Request("http://localhost:3001/api/resumes/jane/resume/pdf?reason=render-data-hash", {
headers: { "x-forwarded-for": "198.51.100.1" },
});
const rotated = new Request("http://localhost:3001/api/resumes/jane/resume/pdf?reason=render-data-hash", {
headers: { "x-forwarded-for": "198.51.100.2" },
});
const env = transportEnv("203.0.113.9");
const response = await app.fetch(first, env);
await app.fetch(rotated, env);
await expect(response.text()).resolves.toBe("public-pdf");
expect(mocks.handlePublicResumePdf).toHaveBeenNthCalledWith(1, first, "jane", "resume", "203.0.113.9");
expect(mocks.handlePublicResumePdf).toHaveBeenNthCalledWith(2, rotated, "jane", "resume", "203.0.113.9");
expect(mocks.handleResumePdfDownload).not.toHaveBeenCalled();
expect(mocks.serveWebDistStatic).not.toHaveBeenCalled();
expect(mocks.handleWebApp).not.toHaveBeenCalled();
});
it("passes the transport address to RPC and OpenAPI and fails closed when it is unavailable", async () => {
const { createApp } = await import("./app");
const app = createApp();
const trustedRpcRequest = new Request("http://localhost:3001/api/rpc", {
headers: { "cf-connecting-ip": "198.51.100.1" },
});
const unknownRpcRequest = new Request("http://localhost:3001/api/rpc", {
headers: { "cf-connecting-ip": "198.51.100.2" },
});
const trustedOpenApiRequest = new Request("http://localhost:3001/api/openapi/resumes/jane/resume/style-projection");
const unknownOpenApiRequest = new Request("http://localhost:3001/api/openapi/resumes/jane/resume/style-projection");
await app.fetch(trustedRpcRequest, transportEnv("203.0.113.9"));
await app.fetch(unknownRpcRequest);
await app.fetch(trustedOpenApiRequest, transportEnv("203.0.113.9"));
await app.fetch(unknownOpenApiRequest);
expect(mocks.handleRpc).toHaveBeenNthCalledWith(1, trustedRpcRequest, "203.0.113.9");
expect(mocks.handleRpc).toHaveBeenNthCalledWith(2, unknownRpcRequest, "unknown");
expect(mocks.handleOpenApi).toHaveBeenNthCalledWith(1, trustedOpenApiRequest, "203.0.113.9");
expect(mocks.handleOpenApi).toHaveBeenNthCalledWith(2, unknownOpenApiRequest, "unknown");
});
it.each([
["GET", "/robots.txt", "robots", mocks.handleRobots],
["HEAD", "/robots.txt", "", mocks.handleRobots],
+25 -6
View File
@@ -1,3 +1,7 @@
import type { Http2Bindings, HttpBindings } from "@hono/node-server";
import type { Context } from "hono";
import { isIP } from "node:net";
import { getConnInfo } from "@hono/node-server/conninfo";
import { Hono } from "hono";
import { handleMcp } from "../mcp/handler";
import { handleOpenApi } from "../openapi/handler";
@@ -15,18 +19,33 @@ import { handleUpload } from "../static/uploads";
import { handleWebApp, serveWebDistStatic } from "../static/web";
import { handleAuth, handleOAuth } from "./auth";
import { handleHealth } from "./health";
import { handlePublicResumePdf } from "./public-resume-pdf";
import { handleResumePdfDownload } from "./resume-pdf";
export function createApp() {
const app = new Hono();
type ServerEnvironment = { Bindings: HttpBindings | Http2Bindings };
app.all("/api/rpc", (c) => handleRpc(c.req.raw));
app.all("/api/rpc/*", (c) => handleRpc(c.req.raw));
app.all("/api/openapi", (c) => handleOpenApi(c.req.raw));
app.all("/api/openapi/*", (c) => handleOpenApi(c.req.raw));
const getTrustedClient = (context: Context<ServerEnvironment>): string => {
try {
const address = getConnInfo(context).remote.address?.trim();
return address && isIP(address) ? address : "unknown";
} catch {
return "unknown";
}
};
export function createApp() {
const app = new Hono<ServerEnvironment>();
app.all("/api/rpc", (c) => handleRpc(c.req.raw, getTrustedClient(c)));
app.all("/api/rpc/*", (c) => handleRpc(c.req.raw, getTrustedClient(c)));
app.all("/api/openapi", (c) => handleOpenApi(c.req.raw, getTrustedClient(c)));
app.all("/api/openapi/*", (c) => handleOpenApi(c.req.raw, getTrustedClient(c)));
app.get("/api/auth/oauth", (c) => handleOAuth(c.req.raw));
app.all("/api/auth/*", (c) => handleAuth(c.req.raw));
app.get("/api/health", () => handleHealth());
app.get("/api/resumes/:username/:slug/pdf", (c) =>
handlePublicResumePdf(c.req.raw, c.req.param("username"), c.req.param("slug"), getTrustedClient(c)),
);
app.get("/api/resumes/:id/pdf", (c) => handleResumePdfDownload(c.req.raw, c.req.param("id")));
app.get("/api/uploads/*", (c) => handleUpload(c.req.raw));
app.get("/uploads/*", (c) => handleUpload(c.req.raw));
@@ -0,0 +1,109 @@
import { beforeEach, describe, expect, it, vi } from "vitest";
const mocks = vi.hoisted(() => ({
createPublicResumePdf: vi.fn(),
}));
vi.mock("@reactive-resume/api/features/resume/public-pdf", () => ({
createPublicResumePdf: mocks.createPublicResumePdf,
PUBLIC_RESUME_PDF_MISMATCH_REASONS: [
"missing-projection",
"format-version",
"language-version",
"semantic-tree-version",
"registry-fingerprint",
"adapter-fingerprint",
"render-data-hash",
"invalid-projection",
],
}));
const { handlePublicResumePdf } = await import("./public-resume-pdf");
const trustedClient = "203.0.113.9";
describe("handlePublicResumePdf", () => {
beforeEach(() => vi.clearAllMocks());
it("returns the authorized fallback PDF with strict mismatch metadata and cache policy", async () => {
const body = new File(["%PDF"], "Ada_Lovelace.pdf", { type: "text/plain" });
mocks.createPublicResumePdf.mockResolvedValueOnce({
body,
filename: "Ada_Lovelace.pdf",
});
const registry = "0".repeat(64);
const adapter = "1".repeat(64);
const request = new Request(
`https://example.com/api/resumes/jane/resume/pdf?reason=render-data-hash&registryFingerprint=${registry}&adapterFingerprint=${adapter}`,
{ headers: { "x-forwarded-for": "203.0.113.7" } },
);
const response = await handlePublicResumePdf(request, "jane", "resume", trustedClient);
expect(response.status).toBe(200);
expect(response.headers.get("Content-Type")).toBe("application/pdf");
expect(response.headers.get("Content-Disposition")).toBe('inline; filename="Ada_Lovelace.pdf"');
expect(response.headers.get("Cache-Control")).toBe("private, no-store");
expect(response.headers.get("X-Content-Type-Options")).toBe("nosniff");
expect(await response.text()).toBe("%PDF");
expect(mocks.createPublicResumePdf).toHaveBeenCalledWith({
username: "jane",
slug: "resume",
requestHeaders: request.headers,
trustedClient,
mismatchReason: "render-data-hash",
clientRegistryFingerprint: registry,
clientAdapterFingerprint: adapter,
});
});
it("defaults a missing mismatch reason and keeps password/private responses uncacheable", async () => {
mocks.createPublicResumePdf.mockResolvedValueOnce({
body: new File(["%PDF"], "resume.pdf", { type: "application/pdf" }),
filename: "resume.pdf",
});
const request = new Request("https://example.com/api/resumes/jane/resume/pdf");
const response = await handlePublicResumePdf(request, "jane", "resume", trustedClient);
expect(response.headers.get("Cache-Control")).toBe("private, no-store");
expect(mocks.createPublicResumePdf).toHaveBeenCalledWith(
expect.objectContaining({ mismatchReason: "missing-projection" }),
);
});
it.each([
[{ code: "BAD_REQUEST" }, 400],
[{ code: "NEED_PASSWORD" }, 401],
[{ code: "NOT_FOUND" }, 404],
[{ code: "RATE_LIMIT_EXCEEDED" }, 429],
[{ code: "INTERNAL_SERVER_ERROR" }, 500],
])("maps controlled API errors without caching the response", async (error, status) => {
mocks.createPublicResumePdf.mockRejectedValueOnce(error);
const response = await handlePublicResumePdf(
new Request("https://example.com/api/resumes/jane/resume/pdf"),
"jane",
"resume",
trustedClient,
);
expect(response.status).toBe(status);
expect(response.headers.get("Cache-Control")).toBe("private, no-store");
});
it.each(["?reason=private-source", "?registryFingerprint=unsafe", "?adapterFingerprint=unsafe"])(
"rejects invalid fallback metadata before the API service",
async (search) => {
const response = await handlePublicResumePdf(
new Request(`https://example.com/api/resumes/jane/resume/pdf${search}`),
"jane",
"resume",
trustedClient,
);
expect(response.status).toBe(400);
expect(response.headers.get("Cache-Control")).toBe("private, no-store");
expect(mocks.createPublicResumePdf).not.toHaveBeenCalled();
},
);
});
+72
View File
@@ -0,0 +1,72 @@
import type { PublicResumePdfMismatchReason } from "@reactive-resume/api/features/resume/public-pdf";
import {
createPublicResumePdf,
PUBLIC_RESUME_PDF_MISMATCH_REASONS,
} from "@reactive-resume/api/features/resume/public-pdf";
const noStoreResponse = (body: string, status: number) =>
new Response(body, { status, headers: { "Cache-Control": "private, no-store" } });
const errorStatus = (error: unknown): number => {
const code = typeof error === "object" && error && "code" in error ? (error as { code?: unknown }).code : undefined;
if (code === "BAD_REQUEST") return 400;
if (code === "NEED_PASSWORD") return 401;
if (code === "NOT_FOUND") return 404;
if (code === "RATE_LIMIT_EXCEEDED") return 429;
return 500;
};
const fingerprint = (value: string | null): string | undefined => {
if (value === null) return;
return /^[a-f0-9]{64}$/.test(value) ? value : undefined;
};
export async function handlePublicResumePdf(
request: Request,
username: string,
slug: string,
trustedClient = "unknown",
): Promise<Response> {
const searchParams = new URL(request.url).searchParams;
const rawReason = searchParams.get("reason") ?? "missing-projection";
if (!PUBLIC_RESUME_PDF_MISMATCH_REASONS.includes(rawReason as PublicResumePdfMismatchReason)) {
return noStoreResponse("Invalid fallback metadata", 400);
}
const rawRegistryFingerprint = searchParams.get("registryFingerprint");
const rawAdapterFingerprint = searchParams.get("adapterFingerprint");
const clientRegistryFingerprint = fingerprint(rawRegistryFingerprint);
const clientAdapterFingerprint = fingerprint(rawAdapterFingerprint);
if (
(rawRegistryFingerprint !== null && clientRegistryFingerprint === undefined) ||
(rawAdapterFingerprint !== null && clientAdapterFingerprint === undefined)
) {
return noStoreResponse("Invalid fallback metadata", 400);
}
try {
const result = await createPublicResumePdf({
username,
slug,
requestHeaders: request.headers,
trustedClient,
mismatchReason: rawReason as PublicResumePdfMismatchReason,
...(clientRegistryFingerprint ? { clientRegistryFingerprint } : {}),
...(clientAdapterFingerprint ? { clientAdapterFingerprint } : {}),
});
return new Response(result.body, {
headers: {
"Content-Type": "application/pdf",
"Content-Disposition": `inline; filename="${result.filename.replaceAll('"', "")}"`,
"Cache-Control": "private, no-store",
"X-Content-Type-Options": "nosniff",
},
});
} catch (error) {
const status = errorStatus(error);
return noStoreResponse(
status === 500 ? "Failed to generate public resume PDF" : "Public resume PDF unavailable",
status,
);
}
}
@@ -0,0 +1,27 @@
import { mkdtemp, readFile, rm } from "node:fs/promises";
import { tmpdir } from "node:os";
import { join } from "node:path";
import { afterEach, expect, it } from "vitest";
import { generateOpenApiDocumentation } from "./generate-spec";
const temporaryDirectories: string[] = [];
const committedSpec = new URL("../../../../docs/spec.json", import.meta.url);
afterEach(async () => {
await Promise.all(temporaryDirectories.splice(0).map((path) => rm(path, { recursive: true, force: true })));
});
it("keeps the committed OpenAPI specification synchronized without rewriting it", async () => {
const directory = await mkdtemp(join(tmpdir(), "openapi-documentation-"));
temporaryDirectories.push(directory);
const firstTarget = join(directory, "first.json");
const secondTarget = join(directory, "second.json");
const before = await readFile(committedSpec, "utf8");
await generateOpenApiDocumentation(firstTarget);
await generateOpenApiDocumentation(secondTarget);
expect(await readFile(firstTarget, "utf8")).toBe(before);
expect(await readFile(secondTarget, "utf8")).toBe(before);
expect(await readFile(committedSpec, "utf8")).toBe(before);
});
+20
View File
@@ -0,0 +1,20 @@
import { readFile, writeFile } from "node:fs/promises";
import { fileURLToPath } from "node:url";
export async function generateOpenApiDocumentation(
target = fileURLToPath(new URL("../../../../docs/spec.json", import.meta.url)),
) {
const packageJson = JSON.parse(await readFile(new URL("../../../../package.json", import.meta.url), "utf8")) as {
version: string;
};
process.env.APP_URL ??= "https://rxresu.me";
process.env.DATABASE_URL ??= "postgresql://localhost/reactive_resume_docs";
process.env.AUTH_SECRET ??= "documentation-generation-isolated-process-only";
const { generateOpenApiSpec } = await import("./generator");
const spec = await generateOpenApiSpec({ appUrl: "https://rxresu.me", version: packageJson.version });
await writeFile(target, `${JSON.stringify(spec, null, "\t")}\n`);
}
if (process.argv[1] && fileURLToPath(import.meta.url) === process.argv[1]) {
await generateOpenApiDocumentation(process.argv[2]);
}
+147
View File
@@ -0,0 +1,147 @@
import { describe, expect, it } from "vitest";
import z from "zod";
import { defaultResumeData } from "@reactive-resume/schema/resume/default";
import { createResumeDataJsonSchema } from "@reactive-resume/schema/resume/json-schema";
type GeneratedSpecView = {
components?: { schemas?: Record<string, unknown> };
paths?: Record<
string,
Record<
string,
{
requestBody?: {
content?: Record<string, { schema?: unknown }>;
};
}
>
>;
};
async function generateSpec() {
process.env.APP_URL ??= "https://rxresu.me";
process.env.DATABASE_URL ??= "postgresql://localhost/reactive_resume_test";
process.env.AUTH_SECRET ??= "openapi-generator-test-process-only";
const { generateOpenApiSpec } = await import("./generator");
return generateOpenApiSpec({
appUrl: "https://rxresu.me",
version: "9.8.7",
});
}
function getRequestSchema(spec: GeneratedSpecView, path: string, method: string) {
return spec.paths?.[path]?.[method]?.requestBody?.content?.["application/json"]?.schema;
}
function containsImpossibleSchema(value: unknown): boolean {
if (Array.isArray(value)) return value.some(containsImpossibleSchema);
if (typeof value !== "object" || value === null) return false;
const object = value as Record<string, unknown>;
const negated = object.not;
if (typeof negated === "object" && negated !== null && Object.keys(negated).length === 0) {
return true;
}
return Object.values(object).some(containsImpossibleSchema);
}
function findImpossibleRequestSchemas(spec: GeneratedSpecView) {
const impossibleRequests: string[] = [];
for (const [path, operations] of Object.entries(spec.paths ?? {})) {
for (const [method, operation] of Object.entries(operations)) {
for (const [mediaType, content] of Object.entries(operation.requestBody?.content ?? {})) {
if (containsImpossibleSchema(content.schema)) {
impossibleRequests.push(`${method.toUpperCase()} ${path} (${mediaType})`);
}
}
}
}
return impossibleRequests;
}
describe("generateOpenApiSpec", () => {
it("uses caller-provided application URL and version", async () => {
const spec = await generateSpec();
expect(spec.info).toMatchObject({
title: "Reactive Resume",
version: "9.8.7",
});
expect(spec.servers).toEqual([{ url: "https://rxresu.me/api/openapi" }]);
expect(spec.externalDocs).toEqual({
url: "https://docs.rxresu.me",
description: "Reactive Resume Documentation",
});
}, 15_000);
it("uses the canonical input-side ResumeData schema in update requests", async () => {
const spec = (await generateSpec()) as GeneratedSpecView;
const { $schema: _dialect, ...canonicalInputSchema } = createResumeDataJsonSchema();
expect(spec.components?.schemas?.ResumeData).toEqual(canonicalInputSchema);
expect(getRequestSchema(spec, "/resumes/{id}", "put")).toMatchObject({
properties: {
data: { $ref: "#/components/schemas/ResumeData" },
},
});
});
it("publishes the custom-section type and item correlation", async () => {
const spec = (await generateSpec()) as GeneratedSpecView;
const schema = z.fromJSONSchema(spec.components?.schemas?.ResumeData as Parameters<typeof z.fromJSONSchema>[0]);
const mismatched = {
...defaultResumeData,
customSections: [
{
id: "custom-experience",
type: "experience",
title: "Experience",
icon: "",
columns: 1,
hidden: false,
keepTogether: false,
startOnNewPage: false,
items: [{ id: "summary-item", hidden: false, content: "<p>Not an experience item</p>" }],
},
],
};
expect(schema.safeParse(mismatched).success).toBe(false);
});
it("does not publish impossible request schemas", async () => {
const spec = (await generateSpec()) as GeneratedSpecView;
expect(findImpossibleRequestSchemas(spec)).toEqual([]);
});
it("checks every request body media type for impossible schemas", () => {
const spec: GeneratedSpecView = {
paths: {
"/documents": {
post: {
requestBody: {
content: {
"application/json": { schema: { type: "object" } },
"multipart/form-data": { schema: { not: {} } },
},
},
},
},
},
};
expect(findImpossibleRequestSchemas(spec)).toEqual(["POST /documents (multipart/form-data)"]);
});
it("documents imported data as an accepted ResumeData input", async () => {
const spec = (await generateSpec()) as GeneratedSpecView;
expect(getRequestSchema(spec, "/resumes/import", "post")).toEqual({
type: "object",
properties: {
data: { $ref: "#/components/schemas/ResumeData" },
},
required: ["data"],
});
});
});
+80
View File
@@ -0,0 +1,80 @@
import { OpenAPIGenerator } from "@orpc/openapi";
import { JSON_SCHEMA_INPUT_REGISTRY, ZodToJsonSchemaConverter } from "@orpc/zod/zod4";
import { downloadResumePdfProcedure } from "@reactive-resume/api/features/resume/export";
import router from "@reactive-resume/api/routers";
import { resumeDataSchema } from "@reactive-resume/schema/resume/data";
import { createResumeDataJsonSchema } from "@reactive-resume/schema/resume/json-schema";
export const openAPIRouter = {
...router,
resume: {
...router.resume,
downloadPdf: downloadResumePdfProcedure,
},
};
const { $schema: _dialect, ...resumeDataInputSchema } = createResumeDataJsonSchema();
type ResumeDataInputJsonSchema = Parameters<typeof JSON_SCHEMA_INPUT_REGISTRY.add<typeof resumeDataSchema>>[1];
JSON_SCHEMA_INPUT_REGISTRY.add(resumeDataSchema, resumeDataInputSchema as unknown as ResumeDataInputJsonSchema);
const importResumeInputSchema = openAPIRouter.resume.import["~orpc"].inputSchema;
if (importResumeInputSchema) {
JSON_SCHEMA_INPUT_REGISTRY.add(importResumeInputSchema, {
type: "object",
properties: {
data: { $ref: "#/components/schemas/ResumeData" },
},
required: ["data"],
});
}
const openAPIGenerator = new OpenAPIGenerator({
schemaConverters: [
new ZodToJsonSchemaConverter({
interceptors: [
({ options, next }) => {
const [required, schema] = next();
const impossible =
Object.keys(schema).length === 1 &&
typeof schema.not === "object" &&
schema.not !== null &&
Object.keys(schema.not).length === 0;
return options.strategy === "input" && impossible ? [required, {}] : [required, schema];
},
],
}),
],
});
type GenerateOpenApiSpecOptions = {
appUrl: string;
version: string;
};
export async function generateOpenApiSpec({ appUrl, version }: GenerateOpenApiSpecOptions) {
return await openAPIGenerator.generate(openAPIRouter, {
info: {
title: "Reactive Resume",
version,
description: "Reactive Resume API",
license: { name: "MIT", url: "https://github.com/amruthpillai/reactive-resume/blob/main/LICENSE" },
contact: { name: "Amruth Pillai", email: "hello@amruthpillai.com", url: "https://amruthpillai.com" },
},
servers: [{ url: `${appUrl}/api/openapi` }],
externalDocs: { url: "https://docs.rxresu.me", description: "Reactive Resume Documentation" },
commonSchemas: {
ResumeData: { schema: resumeDataSchema, strategy: "input" },
},
components: {
securitySchemes: {
apiKey: {
type: "apiKey",
name: "x-api-key",
in: "header",
description: "The API key to authenticate requests.",
},
},
},
security: [{ apiKey: [] }],
filter: ({ contract }) => !contract["~orpc"].route.tags?.includes("Internal"),
});
}
+4 -46
View File
@@ -1,24 +1,13 @@
import { SmartCoercionPlugin } from "@orpc/json-schema";
import { OpenAPIGenerator } from "@orpc/openapi";
import { OpenAPIHandler } from "@orpc/openapi/fetch";
import { onError } from "@orpc/server";
import { BatchHandlerPlugin, RequestHeadersPlugin, StrictGetMethodPlugin } from "@orpc/server/plugins";
import { ZodToJsonSchemaConverter } from "@orpc/zod/zod4";
import { downloadResumePdfProcedure } from "@reactive-resume/api/features/resume/export";
import router from "@reactive-resume/api/routers";
import { env } from "@reactive-resume/env/server";
import { resumeDataSchema } from "@reactive-resume/schema/resume/data";
import { appVersion } from "../app-version";
import { mergeResponseHeaders } from "../http/headers";
import { getRequestLocale } from "../rpc/locale";
const openAPIRouter = {
...router,
resume: {
...router.resume,
downloadPdf: downloadResumePdfProcedure,
},
};
import { generateOpenApiSpec, openAPIRouter } from "./generator";
const openAPIHandler = new OpenAPIHandler(openAPIRouter, {
plugins: [
@@ -36,46 +25,15 @@ const openAPIHandler = new OpenAPIHandler(openAPIRouter, {
],
});
const openAPIGenerator = new OpenAPIGenerator({
schemaConverters: [new ZodToJsonSchemaConverter()],
});
export async function handleOpenApi(request: Request) {
export async function handleOpenApi(request: Request, trustedClient = "unknown") {
if (request.method === "GET" && (request.url.endsWith("/spec.json") || request.url.endsWith("/spec"))) {
const spec = await openAPIGenerator.generate(openAPIRouter, {
info: {
title: "Reactive Resume",
version: appVersion,
description: "Reactive Resume API",
license: { name: "MIT", url: "https://github.com/amruthpillai/reactive-resume/blob/main/LICENSE" },
contact: { name: "Amruth Pillai", email: "hello@amruthpillai.com", url: "https://amruthpillai.com" },
},
servers: [{ url: `${env.APP_URL}/api/openapi` }],
externalDocs: { url: "https://docs.rxresu.me", description: "Reactive Resume Documentation" },
commonSchemas: {
ResumeData: { schema: resumeDataSchema },
},
components: {
securitySchemes: {
apiKey: {
type: "apiKey",
name: "x-api-key",
in: "header",
description: "The API key to authenticate requests.",
},
},
},
security: [{ apiKey: [] }],
filter: ({ contract }) => !contract["~orpc"].route.tags?.includes("Internal"),
});
return Response.json(spec);
return Response.json(await generateOpenApiSpec({ appUrl: env.APP_URL, version: appVersion }));
}
const resHeaders = new Headers();
const { response } = await openAPIHandler.handle(request, {
prefix: "/api/openapi",
context: { locale: getRequestLocale(request), reqHeaders: request.headers, resHeaders },
context: { locale: getRequestLocale(request), reqHeaders: request.headers, resHeaders, trustedClient },
});
if (!response) return new Response("NOT_FOUND", { status: 404 });
+9 -2
View File
@@ -3,6 +3,7 @@ import { RPCHandler } from "@orpc/server/fetch";
import { BatchHandlerPlugin, RequestHeadersPlugin, StrictGetMethodPlugin } from "@orpc/server/plugins";
import router from "@reactive-resume/api/routers";
import { mergeResponseHeaders } from "../http/headers";
import { stylesheetPreflightRunner } from "../services/stylesheet-preflight";
import { getRequestLocale } from "./locale";
const rpcHandler = new RPCHandler(router, {
@@ -14,11 +15,17 @@ const rpcHandler = new RPCHandler(router, {
],
});
export async function handleRpc(request: Request) {
export async function handleRpc(request: Request, trustedClient = "unknown") {
const resHeaders = new Headers();
const { response } = await rpcHandler.handle(request, {
prefix: "/api/rpc",
context: { locale: getRequestLocale(request), reqHeaders: request.headers, resHeaders },
context: {
locale: getRequestLocale(request),
reqHeaders: request.headers,
resHeaders,
trustedClient,
stylesheetPreflightRunner,
},
});
if (!response) return new Response("NOT_FOUND", { status: 404 });
@@ -0,0 +1,248 @@
import { describe, expect, it } from "vitest";
import { defaultResumeData } from "@reactive-resume/schema/resume/default";
import { createStylesheetPreflightRunner, STYLESHEET_PREFLIGHT_LIMITS } from "./stylesheet-preflight";
const validStylesheet = {
languageVersion: 1,
text: "@version 1;",
} as const;
const input = {
data: defaultResumeData,
template: defaultResumeData.metadata.template,
stylesheet: validStylesheet,
} as const;
const memoryExhaustionWorker = new URL(
`data:text/javascript,${encodeURIComponent(`
const retained = [];
while (true) {
const batch = Array.from({ length: 100_000 }, (_, index) => ({ batch: retained.length, index }));
retained.push(batch);
}
`)}`,
);
const failedWorker = new URL(
`data:text/javascript,${encodeURIComponent('throw new Error("sensitive worker details");')}`,
);
const delayedSuccessfulWorker = new URL(
`data:text/javascript,${encodeURIComponent(`
import { parentPort, workerData } from "node:worker_threads";
parentPort.postMessage({ type: "ready" });
setTimeout(() => {
parentPort.postMessage({
ok: true,
pageCount: 1,
byteCount: Number(workerData.input.data.basics.name),
diagnostics: [],
});
}, 300);
`)}`,
);
const delayedReadyWorker = new URL(
`data:text/javascript,${encodeURIComponent(`
import { parentPort } from "node:worker_threads";
setTimeout(() => {
parentPort.postMessage({ type: "ready" });
setTimeout(() => {
parentPort.postMessage({
ok: true,
pageCount: 1,
byteCount: 1,
diagnostics: [],
});
}, 10);
}, 50);
`)}`,
);
const neverCompletesWorker = new URL(
`data:text/javascript,${encodeURIComponent(`
import { parentPort } from "node:worker_threads";
parentPort.postMessage({ type: "ready" });
setInterval(() => {}, 1_000);
`)}`,
);
const synchronousFailureWorker = new URL("https://example.com/stylesheet-preflight.mjs");
const numberedInput = (number: number) => ({
...input,
data: {
...input.data,
basics: {
...input.data.basics,
name: String(number),
},
},
});
const invalidInput = () => {
const data = structuredClone(defaultResumeData);
data.customSections = [
{
id: "custom-experience",
type: "experience",
title: "Experience",
icon: "",
columns: 1,
hidden: false,
keepTogether: false,
startOnNewPage: false,
items: [{ id: "summary-shaped-item", hidden: false, content: "<p>Missing company</p>" }],
} as never,
];
return { ...input, data };
};
describe("stylesheet PDF preflight worker", () => {
it("keeps the production resource policy fixed and immutable", () => {
expect(STYLESHEET_PREFLIGHT_LIMITS).toEqual({
timeoutMs: 5_000,
maxPages: 20,
maxBytes: 10_000_000,
maxPageWidthPt: 2_000,
maxPageHeightPt: 20_000,
maxPageAreaPt2: 20_000_000,
maxOldGenerationMb: 256,
maxConcurrentWorkers: 1,
maxQueuedRequests: 32,
});
expect(Object.isFrozen(STYLESHEET_PREFLIGHT_LIMITS)).toBe(true);
});
it("accepts a bounded candidate render in an isolated worker", async () => {
const runner = createStylesheetPreflightRunner({ timeoutMs: 15_000 });
const result = await runner.run(input);
expect(result).toEqual(
expect.objectContaining({
ok: true,
pageCount: 1,
byteCount: expect.any(Number),
}),
);
if (!result.ok) throw new Error(`Expected successful preflight, received ${result.code}.`);
expect(result.byteCount).toBeGreaterThan(0);
expect(runner.activeWorkerCount).toBe(0);
}, 45_000);
it("preserves structured resume-data failures across the worker boundary", async () => {
const runner = createStylesheetPreflightRunner({ timeoutMs: 15_000 });
const result = runner.run(invalidInput());
await expect(result).rejects.toMatchObject({
name: "ZodError",
issues: expect.arrayContaining([expect.objectContaining({ path: ["customSections", 0, "items", 0, "company"] })]),
});
expect(runner.activeWorkerCount).toBe(0);
expect(runner.queuedPreflightCount).toBe(0);
}, 20_000);
it("terminates a worker when the render exceeds its deadline", async () => {
const runner = createStylesheetPreflightRunner({ timeoutMs: 1 }, neverCompletesWorker);
const result = await runner.run(input);
expect(result).toEqual(expect.objectContaining({ ok: false, code: "STYLESHEET_PREFLIGHT_TIMEOUT" }));
expect(runner.activeWorkerCount).toBe(0);
expect(runner.queuedPreflightCount).toBe(0);
});
it("starts the authored render deadline after the worker runtime is ready", async () => {
const runner = createStylesheetPreflightRunner({ timeoutMs: 20 }, delayedReadyWorker);
await expect(runner.run(input)).resolves.toEqual(expect.objectContaining({ ok: true, pageCount: 1 }));
expect(runner.activeWorkerCount).toBe(0);
});
it("returns deterministic output byte and page limit codes", async () => {
const byteRunner = createStylesheetPreflightRunner({ maxBytes: 16 });
const pageRunner = createStylesheetPreflightRunner({ maxPages: 0 });
await expect(byteRunner.run(input)).resolves.toEqual(
expect.objectContaining({ ok: false, code: "STYLESHEET_PREFLIGHT_BYTE_LIMIT" }),
);
await expect(pageRunner.run(input)).resolves.toEqual(
expect.objectContaining({ ok: false, code: "STYLESHEET_PREFLIGHT_PAGE_LIMIT" }),
);
expect(byteRunner.activeWorkerCount).toBe(0);
expect(pageRunner.activeWorkerCount).toBe(0);
}, 30_000);
it("maps worker heap exhaustion to a controlled memory-limit result", async () => {
const runner = createStylesheetPreflightRunner(
{ maxOldGenerationMb: 8, timeoutMs: 10_000 },
memoryExhaustionWorker,
);
const result = await runner.run(input);
expect(result).toEqual(expect.objectContaining({ ok: false, code: "STYLESHEET_PREFLIGHT_MEMORY_LIMIT" }));
expect(runner.activeWorkerCount).toBe(0);
}, 15_000);
it("does not expose internal errors from a failed worker", async () => {
const runner = createStylesheetPreflightRunner({}, failedWorker);
const result = await runner.run(input);
expect(result).toEqual({
ok: false,
code: "STYLESHEET_PREFLIGHT_WORKER_FAILED",
message: "The PDF preflight worker failed.",
diagnostics: [],
});
expect(runner.activeWorkerCount).toBe(0);
expect(runner.queuedPreflightCount).toBe(0);
});
it("bounds concurrent workers and queued requests without charging queue time to the worker deadline", async () => {
const runner = createStylesheetPreflightRunner(
{
timeoutMs: 500,
maxConcurrentWorkers: 1,
maxQueuedRequests: 2,
},
delayedSuccessfulWorker,
);
const completionOrder: number[] = [];
const accepted = [1, 2, 3].map((number) =>
runner.run(numberedInput(number)).then((result) => {
if (result.ok) completionOrder.push(result.byteCount);
return result;
}),
);
const rejected = runner.run(numberedInput(4));
expect(runner.activeWorkerCount).toBe(1);
expect(runner.queuedPreflightCount).toBe(2);
await expect(rejected).resolves.toEqual(
expect.objectContaining({
code: "STYLESHEET_PREFLIGHT_WORKER_FAILED",
message: "The PDF preflight queue is full.",
}),
);
const results = await Promise.all(accepted);
expect(results.every((result) => result.ok)).toBe(true);
expect(completionOrder).toEqual([1, 2, 3]);
expect(runner.activeWorkerCount).toBe(0);
expect(runner.queuedPreflightCount).toBe(0);
}, 5_000);
it("does not leak a slot when the worker constructor throws synchronously", async () => {
const runner = createStylesheetPreflightRunner({}, synchronousFailureWorker);
await expect(runner.run(input)).resolves.toEqual(
expect.objectContaining({ ok: false, code: "STYLESHEET_PREFLIGHT_WORKER_FAILED" }),
);
expect(runner.activeWorkerCount).toBe(0);
expect(runner.queuedPreflightCount).toBe(0);
});
});
@@ -0,0 +1,225 @@
import type {
PdfPreflightFailure,
PdfPreflightResult,
StylesheetPreflightInput,
StylesheetPreflightRunner,
} from "@reactive-resume/pdf/server";
import { fileURLToPath } from "node:url";
import { Worker } from "node:worker_threads";
import { STYLESHEET_PREFLIGHT_LIMITS } from "@reactive-resume/pdf/preflight-reference";
export { STYLESHEET_PREFLIGHT_LIMITS } from "@reactive-resume/pdf/preflight-reference";
type StylesheetPreflightLimits = {
timeoutMs: number;
maxPages: number;
maxBytes: number;
maxPageWidthPt: number;
maxPageHeightPt: number;
maxPageAreaPt2: number;
maxOldGenerationMb: number;
maxConcurrentWorkers: number;
maxQueuedRequests: number;
};
const SOURCE_WORKER_LOADER_HEAP_MB = 256;
const SOURCE_WORKER_STARTUP_TIMEOUT_MS = 30_000;
const WORKER_STARTUP_TIMEOUT_MS = 15_000;
type SerializedPreflightCause = {
name: string;
message: string;
issues: readonly unknown[];
};
type StylesheetPreflightWorkerMessage =
| PdfPreflightResult
| { type: "ready" }
| { type: "preflight_error"; cause: SerializedPreflightCause };
export type NodeStylesheetPreflightRunner = StylesheetPreflightRunner & {
readonly activeWorkerCount: number;
readonly queuedPreflightCount: number;
};
const failure = (code: PdfPreflightFailure["code"], message: string): PdfPreflightFailure => ({
ok: false,
code,
message,
diagnostics: [],
});
const workerFailure = (error: Error): PdfPreflightFailure => {
const code = (error as NodeJS.ErrnoException).code;
return code === "ERR_WORKER_OUT_OF_MEMORY" || /heap out of memory/i.test(error.message)
? failure("STYLESHEET_PREFLIGHT_MEMORY_LIMIT", "The PDF preflight worker exceeded its memory limit.")
: failure("STYLESHEET_PREFLIGHT_WORKER_FAILED", "The PDF preflight worker failed.");
};
const sourceWorkerExecArgv = () => {
const importIndex = process.execArgv.findIndex(
(argument, index, arguments_) =>
(argument === "--import" && arguments_[index + 1]?.includes("tsx")) ||
(argument.startsWith("--import=") && argument.includes("tsx")),
);
const inherited = process.execArgv[importIndex];
if (inherited?.startsWith("--import=")) return [inherited];
if (inherited === "--import") return [inherited, process.execArgv[importIndex + 1] as string];
return ["--import", import.meta.resolve("tsx")];
};
const workerLocation = () => {
const source = import.meta.url.endsWith(".ts");
return {
source,
url: source
? new URL("../workers/stylesheet-preflight.ts", import.meta.url)
: new URL("./stylesheet-preflight-worker.mjs", import.meta.url),
...(source
? {
execArgv: sourceWorkerExecArgv(),
env: {
...process.env,
TSX_TSCONFIG_PATH: fileURLToPath(new URL("../../tsconfig.json", import.meta.url)),
},
}
: {}),
};
};
export function createStylesheetPreflightRunner(
overrides: Partial<StylesheetPreflightLimits> = {},
testWorkerUrl?: URL,
): NodeStylesheetPreflightRunner {
const limits = Object.freeze({ ...STYLESHEET_PREFLIGHT_LIMITS, ...overrides });
let activeWorkerCount = 0;
// ponytail: Keep admission process-local and bounded; upgrade to a distributed/pooled queue only for multi-process coordination.
const queue: Array<{
input: StylesheetPreflightInput;
resolve: (result: PdfPreflightResult) => void;
reject: (cause: unknown) => void;
}> = [];
const runWorker = (
input: StylesheetPreflightInput,
resolve: (result: PdfPreflightResult) => void,
reject: (cause: unknown) => void,
): boolean => {
// The URL seam is internal to the server package and keeps worker failure tests independent from the PDF renderer.
const location = testWorkerUrl ? { source: false, url: testWorkerUrl } : workerLocation();
let worker: Worker;
try {
worker = new Worker(location.url, {
name: "stylesheet-preflight",
workerData: { input, limits },
resourceLimits: {
// The source-only tsx compiler heap is outside the production render budget.
maxOldGenerationSizeMb: limits.maxOldGenerationMb + (location.source ? SOURCE_WORKER_LOADER_HEAP_MB : 0),
},
...("execArgv" in location ? { execArgv: location.execArgv } : {}),
...("env" in location ? { env: location.env } : {}),
});
} catch (error) {
resolve(workerFailure(error instanceof Error ? error : new Error("Failed to start PDF preflight worker.")));
return false;
}
activeWorkerCount += 1;
let settled = false;
let renderTimer: ReturnType<typeof setTimeout> | undefined;
let startupTimer: ReturnType<typeof setTimeout> | undefined;
const cleanup = () => {
if (renderTimer) clearTimeout(renderTimer);
if (startupTimer) clearTimeout(startupTimer);
worker.off("message", onMessage);
worker.off("error", onError);
worker.off("exit", onExit);
activeWorkerCount -= 1;
};
const finish = async (result: PdfPreflightResult) => {
if (settled) return;
settled = true;
await worker.terminate().catch(() => undefined);
cleanup();
resolve(result);
drainQueue();
};
const fail = async (cause: SerializedPreflightCause) => {
if (settled) return;
settled = true;
await worker.terminate().catch(() => undefined);
cleanup();
reject(Object.assign(new Error(cause.message), { name: cause.name, issues: cause.issues }));
drainQueue();
};
const onMessage = (message: StylesheetPreflightWorkerMessage) => {
if ("type" in message) {
if (message.type === "preflight_error") {
void fail(message.cause);
return;
}
if (startupTimer) clearTimeout(startupTimer);
renderTimer = setTimeout(() => {
void finish(failure("STYLESHEET_PREFLIGHT_TIMEOUT", "The PDF preflight exceeded its deadline."));
}, limits.timeoutMs);
return;
}
void finish(message);
};
const onError = (error: Error) => {
void finish(workerFailure(error));
};
const onExit = () => {
if (!settled) {
void finish(failure("STYLESHEET_PREFLIGHT_WORKER_FAILED", "The PDF preflight worker failed."));
}
};
worker.on("message", onMessage);
worker.once("error", onError);
worker.once("exit", onExit);
startupTimer = setTimeout(
() => {
void finish(failure("STYLESHEET_PREFLIGHT_WORKER_FAILED", "The PDF preflight worker failed."));
},
location.source ? SOURCE_WORKER_STARTUP_TIMEOUT_MS : WORKER_STARTUP_TIMEOUT_MS,
);
return true;
};
function drainQueue() {
while (activeWorkerCount < limits.maxConcurrentWorkers && queue.length > 0) {
const next = queue.shift();
if (!next) return;
runWorker(next.input, next.resolve, next.reject);
}
}
return {
get activeWorkerCount() {
return activeWorkerCount;
},
get queuedPreflightCount() {
return queue.length;
},
run(input: StylesheetPreflightInput): Promise<PdfPreflightResult> {
return new Promise<PdfPreflightResult>((resolve, reject) => {
if (activeWorkerCount < limits.maxConcurrentWorkers) {
runWorker(input, resolve, reject);
return;
}
if (queue.length >= limits.maxQueuedRequests) {
resolve(failure("STYLESHEET_PREFLIGHT_WORKER_FAILED", "The PDF preflight queue is full."));
return;
}
queue.push({ input, resolve, reject });
});
},
};
}
export const stylesheetPreflightRunner = createStylesheetPreflightRunner();
+29
View File
@@ -0,0 +1,29 @@
import { describe, expect, it } from "vitest";
import z from "zod";
import { defaultResumeData } from "@reactive-resume/schema/resume/default";
import { handleSchemaJson } from "./schema";
describe("handleSchemaJson", () => {
it("publishes the custom-section type and item correlation", async () => {
const response = handleSchemaJson();
const schema = z.fromJSONSchema((await response.json()) as Parameters<typeof z.fromJSONSchema>[0]);
const mismatched = {
...defaultResumeData,
customSections: [
{
id: "custom-experience",
type: "experience",
title: "Experience",
icon: "",
columns: 1,
hidden: false,
keepTogether: false,
startOnNewPage: false,
items: [{ id: "summary-item", hidden: false, content: "<p>Not an experience item</p>" }],
},
],
};
expect(schema.safeParse(mismatched).success).toBe(false);
});
});
+2 -5
View File
@@ -1,11 +1,8 @@
import z from "zod";
import { resumeDataSchema } from "@reactive-resume/schema/resume/data";
import { createResumeDataJsonSchema } from "@reactive-resume/schema/resume/json-schema";
import { appVersion } from "../app-version";
export function handleSchemaJson() {
const resumeDataJSONSchema = z.toJSONSchema(resumeDataSchema);
return Response.json(resumeDataJSONSchema, {
return Response.json(createResumeDataJsonSchema(), {
status: 200,
headers: {
"Content-Type": "application/schema+json; charset=utf-8",
+71 -1
View File
@@ -1,6 +1,11 @@
import fs from "node:fs/promises";
import { beforeEach, describe, expect, it, vi } from "vitest";
const mocks = vi.hoisted(() => ({
env: { APP_URL: "https://rxresu.me" },
serveStatic: vi.fn((_options?: unknown) => vi.fn()),
}));
vi.mock("node:fs", () => ({
existsSync: vi.fn(() => true),
}));
@@ -12,10 +17,25 @@ vi.mock("node:fs/promises", () => ({
}));
vi.mock("@hono/node-server/serve-static", () => ({
serveStatic: vi.fn(() => vi.fn()),
serveStatic: mocks.serveStatic,
}));
vi.mock("@reactive-resume/env/server", () => ({
env: mocks.env,
}));
type StaticOptions = {
onFound?: (
path: string,
context: {
req: { path: string };
header: (name: string, value: string) => void;
},
) => void | Promise<void>;
};
const { handleWebApp } = await import("./web");
const staticOptions = mocks.serveStatic.mock.calls[0]?.[0] as StaticOptions | undefined;
describe("web app fallback classification", () => {
beforeEach(() => {
@@ -32,6 +52,56 @@ describe("web app fallback classification", () => {
expect(await response.text()).toBe("<html>app</html>");
});
it("injects canonical metadata and structured data into tracking-parameter root requests only", async () => {
vi.mocked(fs.readFile).mockResolvedValue(`
<!doctype html>
<html>
<head>
<title>Reactive Resume — A free and open-source resume builder</title>
<meta
name="description"
content="Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
>
</head>
<body><div id="app"></div></body>
</html>
`);
const response = await handleWebApp(new Request("http://server.internal/?utm_source=search"));
const html = await response.text();
expect(html).toContain('<link rel="canonical" href="https://rxresu.me/">');
expect(html).toContain('<link rel="preload" href="/videos/timelapse-v1.webp" as="image" fetchpriority="high">');
expect(html).toContain('<meta property="og:url" content="https://rxresu.me/">');
expect(html).toContain('<meta property="og:image" content="https://rxresu.me/opengraph/banner.jpg">');
expect(html).toContain('id="reactive-resume-structured-data"');
expect(html).toContain('"@type":["SoftwareApplication","WebApplication"]');
expect(html).toContain('"url":"https://rxresu.me/"');
expect(html).not.toContain("utm_source");
const dashboardResponse = await handleWebApp(new Request("https://example.com/dashboard"));
expect(await dashboardResponse.text()).not.toContain('rel="canonical"');
});
it("caches versioned homepage media immutably", async () => {
const headers = new Headers();
await staticOptions?.onFound?.("", {
req: { path: "/videos/timelapse-v1.mp4" },
header: (name, value) => headers.set(name, value),
});
expect(headers.get("Cache-Control")).toBe("public, max-age=31536000, immutable");
const unversionedHeaders = new Headers();
await staticOptions?.onFound?.("", {
req: { path: "/videos/timelapse.mp4" },
header: (name, value) => unversionedHeaders.set(name, value),
});
expect(unversionedHeaders.get("Cache-Control")).toBeNull();
});
it.each(["/", "/alice/resume"])("sets framing and report-only CSP security headers on %s", async (pathname) => {
const response = await handleWebApp(new Request(`https://example.com${pathname}`));
+114 -3
View File
@@ -2,6 +2,7 @@ import { existsSync } from "node:fs";
import fs from "node:fs/promises";
import { fileURLToPath } from "node:url";
import { serveStatic } from "@hono/node-server/serve-static";
import { env } from "@reactive-resume/env/server";
function resolveWebDistPath() {
const candidates = [
@@ -31,8 +32,6 @@ const reservedPublicResumeSegments = new Set([
"templates",
]);
export const serveWebDistStatic = serveStatic({ root: staticRoot });
function isAssetPath(pathname: string): boolean {
return pathname.split("/").pop()?.includes(".") ?? false;
}
@@ -60,6 +59,115 @@ const BASE_SECURITY_HEADERS = {
"default-src 'self'; img-src 'self' data: blob:; font-src 'self' data:; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'; connect-src 'self'; frame-ancestors 'none'; base-uri 'self'; object-src 'none'",
};
const ROOT_TITLE = "Reactive Resume — A free and open-source resume builder";
const ROOT_DESCRIPTION =
"Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume.";
const ROOT_POSTER_PATH = "/videos/timelapse-v1.webp";
const ROOT_FAQ_ITEMS = [
{
question: "Is Reactive Resume really free?",
answer:
"Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free.",
},
{
question: "How is my data protected?",
answer:
"Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data.",
},
{
question: "Can I export my resume to PDF?",
answer:
"Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly.",
},
{
question: "Is Reactive Resume available in multiple languages?",
answer:
"Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can contribute to the translations on Crowdin.",
},
{
question: "What makes Reactive Resume different from other resume builders?",
answer:
"Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall.",
},
{
question: "How do I share my resume?",
answer:
"You can share your resume via a unique public URL, protect it with a password, or download it as a PDF to share directly. The choice is yours!",
},
] as const;
function createRootSeoMarkup(canonicalUrl: string) {
const origin = new URL(canonicalUrl).origin;
const imageUrl = `${origin}/opengraph/banner.jpg`;
const structuredData = {
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebSite",
name: "Reactive Resume",
url: canonicalUrl,
},
{
"@type": ["SoftwareApplication", "WebApplication"],
name: "Reactive Resume",
url: canonicalUrl,
description: ROOT_DESCRIPTION,
applicationCategory: "BusinessApplication",
operatingSystem: "Web",
isAccessibleForFree: true,
offers: {
"@type": "Offer",
price: "0",
priceCurrency: "USD",
},
codeRepository: "https://github.com/amruthpillai/reactive-resume",
},
{
"@type": "Project",
name: "Reactive Resume",
url: canonicalUrl,
sameAs: ["https://github.com/amruthpillai/reactive-resume"],
},
{
"@type": "FAQPage",
mainEntity: ROOT_FAQ_ITEMS.map((item) => ({
"@type": "Question",
name: item.question,
acceptedAnswer: {
"@type": "Answer",
text: item.answer,
},
})),
},
],
};
return `
<link rel="canonical" href="${canonicalUrl}">
<link rel="preload" href="${ROOT_POSTER_PATH}" as="image" fetchpriority="high">
<meta property="og:type" content="website">
<meta property="og:site_name" content="Reactive Resume">
<meta property="og:title" content="${ROOT_TITLE}">
<meta property="og:description" content="${ROOT_DESCRIPTION}">
<meta property="og:url" content="${canonicalUrl}">
<meta property="og:image" content="${imageUrl}">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="${ROOT_TITLE}">
<meta name="twitter:description" content="${ROOT_DESCRIPTION}">
<meta name="twitter:image" content="${imageUrl}">
<script id="reactive-resume-structured-data" type="application/ld+json">${JSON.stringify(structuredData)}</script>
`;
}
export const serveWebDistStatic = serveStatic({
root: staticRoot,
onFound: (_path, context) => {
if (/^\/videos\/.*-v\d+\.(?:mp4|webp)$/.test(context.req.path)) {
context.header("Cache-Control", "public, max-age=31536000, immutable");
}
},
});
function getFallbackResponseHeaders(pathname: string) {
if (pathname === "/") return { "Content-Type": "text/html; charset=UTF-8", ...BASE_SECURITY_HEADERS };
if (isNoindexShellPath(pathname) || isPublicResumePath(pathname)) {
@@ -98,5 +206,8 @@ export async function handleWebApp(request: Request) {
if (isHead) return new Response(null, { status: 200, headers });
const html = await fs.readFile(indexHtmlPath, "utf-8");
return new Response(html, { headers });
const canonicalUrl = new URL("/", env.APP_URL).toString();
const responseHtml = pathname === "/" ? html.replace("</head>", `${createRootSeoMarkup(canonicalUrl)}</head>`) : html;
return new Response(responseHtml, { headers });
}
@@ -0,0 +1,74 @@
import type { PdfPreflightPageLimits, PdfPreflightResult, RenderPreflightPdfResult } from "@reactive-resume/pdf/server";
import { getDocument } from "pdfjs-dist/legacy/build/pdf.mjs";
type StylesheetPreflightInspectionLimits = PdfPreflightPageLimits & {
maxPages: number;
maxBytes: number;
};
type PdfLoadingTask = {
promise: PromiseLike<{ numPages: number }>;
destroy(): Promise<void>;
};
type LoadPdf = (options: { data: Uint8Array }) => PdfLoadingTask;
export async function inspectPreflightPdf(
rendered: Extract<RenderPreflightPdfResult, { ok: true }>,
limits: StylesheetPreflightInspectionLimits,
loadPdf: LoadPdf = getDocument,
): Promise<PdfPreflightResult> {
if (rendered.bytes.byteLength > limits.maxBytes) {
return {
ok: false,
code: "STYLESHEET_PREFLIGHT_BYTE_LIMIT",
message: "The rendered PDF exceeds the preflight byte limit.",
diagnostics: rendered.diagnostics,
};
}
const byteCount = rendered.bytes.byteLength;
let loadingTask: PdfLoadingTask;
try {
loadingTask = loadPdf({ data: rendered.bytes });
} catch {
return {
ok: false,
code: "STYLESHEET_PREFLIGHT_PARSE_FAILED",
message: "PDF inspection failed.",
diagnostics: rendered.diagnostics,
};
}
try {
let document: { numPages: number };
try {
document = await loadingTask.promise;
} catch {
return {
ok: false,
code: "STYLESHEET_PREFLIGHT_PARSE_FAILED",
message: "PDF inspection failed.",
diagnostics: rendered.diagnostics,
};
}
if (document.numPages > limits.maxPages) {
return {
ok: false,
code: "STYLESHEET_PREFLIGHT_PAGE_LIMIT",
message: "The rendered PDF exceeds the preflight page limit.",
diagnostics: rendered.diagnostics,
};
}
return {
ok: true,
pageCount: document.numPages,
byteCount,
diagnostics: rendered.diagnostics,
};
} finally {
await loadingTask.destroy().catch(() => undefined);
}
}
@@ -0,0 +1,58 @@
import { describe, expect, it, vi } from "vitest";
import { inspectPreflightPdf } from "./stylesheet-preflight-inspection";
const warning = {
code: "EXTREME_VALUE",
severity: "warning",
message: "The authored value is unusually large.",
range: {
start: { line: 1, column: 1, offset: 0 },
end: { line: 1, column: 10, offset: 9 },
},
} as const;
const rendered = {
ok: true as const,
bytes: new TextEncoder().encode("%PDF-1.7"),
diagnostics: [warning],
};
const limits = {
maxPages: 20,
maxBytes: 10_000_000,
maxPageWidthPt: 2_000,
maxPageHeightPt: 20_000,
maxPageAreaPt2: 20_000_000,
};
describe("stylesheet preflight PDF inspection", () => {
it("preserves compiler warnings and hides parser exceptions", async () => {
const destroy = vi.fn(async () => undefined);
const result = await inspectPreflightPdf(rendered, limits, () => ({
promise: Promise.reject(new Error("sensitive parser details")),
destroy,
}));
expect(result).toEqual({
ok: false,
code: "STYLESHEET_PREFLIGHT_PARSE_FAILED",
message: "PDF inspection failed.",
diagnostics: [warning],
});
expect(destroy).toHaveBeenCalledOnce();
});
it("preserves compiler warnings when PDF.js fails before returning a loading task", async () => {
const result = await inspectPreflightPdf(rendered, limits, () => {
throw new Error("sensitive parser setup details");
});
expect(result).toEqual({
ok: false,
code: "STYLESHEET_PREFLIGHT_PARSE_FAILED",
message: "PDF inspection failed.",
diagnostics: [warning],
});
});
});
@@ -0,0 +1,60 @@
import type { PdfPreflightPageLimits, PdfPreflightResult, StylesheetPreflightInput } from "@reactive-resume/pdf/server";
import { parentPort, workerData } from "node:worker_threads";
import * as React from "react";
import { renderPreflightPdf } from "@reactive-resume/pdf/server";
import { inspectPreflightPdf } from "./stylesheet-preflight-inspection";
(globalThis as typeof globalThis & { React: typeof React }).React = React;
type StylesheetPreflightWorkerLimits = PdfPreflightPageLimits & {
maxPages: number;
maxBytes: number;
};
type StylesheetPreflightWorkerData = {
input: StylesheetPreflightInput;
limits: StylesheetPreflightWorkerLimits;
};
type SerializedPreflightCause = {
name: string;
message: string;
issues: readonly unknown[];
};
const send = (result: PdfPreflightResult) => {
parentPort?.postMessage(result);
};
const serializeZodCause = (cause: unknown): SerializedPreflightCause | undefined => {
if (!(cause instanceof Error) || cause.name !== "ZodError" || !("issues" in cause) || !Array.isArray(cause.issues)) {
return;
}
return { name: cause.name, message: cause.message, issues: cause.issues };
};
parentPort?.postMessage({ type: "ready" });
async function run(): Promise<PdfPreflightResult> {
const { input, limits } = workerData as StylesheetPreflightWorkerData;
const rendered = await renderPreflightPdf(input, limits);
return rendered.ok ? inspectPreflightPdf(rendered, limits) : rendered;
}
if (parentPort) {
void run()
.then(send)
.catch((cause: unknown) => {
const serializedCause = serializeZodCause(cause);
if (serializedCause) {
parentPort?.postMessage({ type: "preflight_error", cause: serializedCause });
return;
}
send({
ok: false,
code: "STYLESHEET_PREFLIGHT_WORKER_FAILED",
message: "The PDF preflight worker failed.",
diagnostics: [],
});
});
}
+4 -1
View File
@@ -33,7 +33,10 @@ const promptAssetsPlugin: TsdownPlugin = {
};
export default defineConfig({
entry: { index: "src/index.ts" },
entry: {
index: "src/index.ts",
"stylesheet-preflight-worker": "src/workers/stylesheet-preflight.ts",
},
format: "esm",
platform: "node",
target: "node24",
+6 -1
View File
@@ -1,4 +1,9 @@
{
"extends": ["//"],
"tags": ["app:server", "runtime:server", "role:adapter"]
"tags": ["app:server", "runtime:server", "role:adapter"],
"tasks": {
"test:ci": {
"cache": false
}
}
}
+2 -2
View File
@@ -16,7 +16,7 @@
<link rel="apple-touch-icon" href="/apple-touch-icon-180x180.png" type="image/png" sizes="180x180 any" />
<link rel="manifest" href="/manifest.webmanifest" crossorigin="use-credentials" />
<title>Reactive Resume</title>
<title>Reactive Resume — A free and open-source resume builder</title>
</head>
<body>
<!-- Keep #app empty: main.tsx only mounts React when rootElement has no children. -->
@@ -56,6 +56,6 @@
clip: rect(0 0 0 0);
}
</style>
<script type="module" src="/src/main.tsx"></script>
<script type="module" data-cfasync="false" src="/src/main.tsx"></script>
</body>
</html>
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: af\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Afrikaans\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Rekeningkieslys"
msgid "Actions"
msgstr "Aksies"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Aktiveer Semantiese CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Werklike grootte (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Aansoeke per week gestuur (laaste 8 weke)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Aansoek gedoen"
@@ -493,6 +498,10 @@ msgstr "Toegepas op"
msgid "Applied Rules"
msgstr "Toegepaste Reëls"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Toegepas met waarskuwings"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Arabies"
@@ -800,6 +809,14 @@ msgstr "Gaan jou e-pos na vir 'n skakel om jou wagwoord te herstel."
msgid "Check your email for a link to verify your account."
msgstr "Gaan jou e-pos na vir 'n skakel om jou rekening te verifieer."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Kontroleer"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Kontroleer konsep"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Chinees (Vereenvoudig)"
@@ -966,6 +983,10 @@ msgstr "Gesprek gekopieer."
msgid "Conversation JSON copied."
msgstr "Gesprek JSON gekopieer."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Omgeskakelde stylbladkonsep"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Na knipbord gekopieer."
@@ -989,6 +1010,10 @@ msgstr "Kopieer rugsteunkodes"
msgid "Copy JSON"
msgstr "Kopieer JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Kopieer stylblad"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Kopieer hierdie geheime sleutel en gebruik dit in jou toepassings om toegang tot jou data te kry."
@@ -1545,6 +1570,11 @@ msgstr "Wysig {chip}"
msgid "Edit application"
msgstr "Wysig toepassing"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Wysig kleur {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Voer jou wagwoord in om die opstel van twee-faktor-magtiging te bevestig
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Voer jou wagwoord in om twee-faktor-magtiging te deaktiveer. Jou rekening sal minder veilig wees sonder 2FA."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Fout"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Elke bydrae, groot of klein, maak 'n reuseverskil vir die projek.<0/>Dankie vir jou ondersteuning!"
@@ -1682,6 +1716,10 @@ msgstr "Elke bydrae, groot of klein, maak 'n reuseverskil vir die projek.<0/>Da
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Alles wat jy nodig het om professionele CV's te skep, te pasmaak en te deel. Gebou met privaatheid in gedagte, aangedryf deur oopbron, en heeltemal gratis vir altyd."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Verlaat fokusmodus"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Verlaat volskerm"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Formaat"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Formateer stylblad"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Gratis"
@@ -2584,6 +2626,12 @@ msgstr "Lig"
msgid "Light theme"
msgstr "Lig tema"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Lyn {0}, kolom {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Reëlhoogte"
@@ -2918,6 +2966,10 @@ msgstr "Noors"
msgid "Not connected"
msgstr "Nie gekoppel nie"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Maak KI-assistent oop"
msgid "Open Email Client"
msgstr "Maak e-posklient oop"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Maak fokusmodus oop"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Maak oop in bouer"
@@ -2992,6 +3048,7 @@ msgstr "OpenAI-versoenbaar"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Druk <0>Enter</0> om oop te maak"
msgid "Preview"
msgstr "Voorskou"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Voorskou en uitvoer gebruik die laaste geldige weergawe."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primêre kleur"
@@ -3374,10 +3435,22 @@ msgstr "Reaktiewe CV v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktiewe CV v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Lees…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Gereed om te aktiveer"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Gereed om te aktiveer met waarskuwings"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Ontvanger"
@@ -3394,6 +3467,10 @@ msgstr "Reghoek (volle breedte)"
msgid "Redo"
msgstr "Herdoen"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Herhaal stylbladwysiging"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Herstel wagwoord"
msgid "Reset Style"
msgstr "Stel styl terug"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Stel terug na toegepaste stylblad"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Herstel jou wagwoord"
@@ -3791,6 +3872,14 @@ msgstr "gekies"
msgid "Self-Host with Docker"
msgstr "Self-aanbieding met Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Semantiese CSS-stylblad"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Semantiese style bly aktief"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Stuur boodskap"
@@ -4152,6 +4241,14 @@ msgstr "Deurstreep"
msgid "Strong fit"
msgstr "Sterk pasvorm"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Stylbladredigeerder"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Stylblad bevat foute"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "Die bladsy waarna jy soek, is dalk geskuif of bestaan nie meer nie."
msgid "The password you entered is incorrect"
msgstr "Die wagwoord wat jy ingevoer het, is verkeerd"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Die CV-voorskou kon nie opgedateer word nie. Die laaste geldige voorskou word steeds gewys."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Die CV waarna jy probeer toegang kry, word met 'n wagwoord beskerm"
@@ -4381,6 +4482,10 @@ msgstr "Hierdie inskrywing sal permanent uitgevee word. Dit kan nie ongedaan gem
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Hierdie kenmerk vereis 'n gekoppelde KI-verskaffer. Stel asseblief een op in die instellings."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Hierdie instansie laat tans nie Semantiese CSS-redigering toe nie."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Dit is 'n URL-vriendelike naam vir jou CV."
@@ -4639,6 +4744,10 @@ msgstr "Onderstreep"
msgid "Undo"
msgstr "Ongedaan maak"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Maak stylbladwysiging ongedaan"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Onbeperkte CV's"
@@ -5013,6 +5122,10 @@ msgstr "Jou data word veilig gestoor en nooit met derde partye gedeel nie. Jy ka
msgid "Your latest changes could not be saved."
msgstr "Jou jongste veranderinge kon nie gestoor word nie."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Jou ouer style bly aktief totdat jy hierdie Semantiese CSS-konsep eksplisiet aktiveer."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Jou wagwoord is suksesvol herstel. Jy kan nou met jou nuwe wagwoord aanmeld."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: am\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Amharic\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -163,6 +163,10 @@ msgstr "የመለያ ምናሌ"
msgid "Actions"
msgstr "እርምጃዎች"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "የሴማንቲክ CSS ን ያግብሩ"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "ትክክለኛው መጠን (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "በሳምንት የተላኩ ማመልከቻዎች (ያለፉት 8 ሳምንታት)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "ተመልክቷል"
@@ -493,6 +498,10 @@ msgstr "የተተገበረው በ"
msgid "Applied Rules"
msgstr "የተተገበሩ ህጎች"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "ከማስጠንቀቂያዎች ጋር ተተግብሯል"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "ዓረብኛ"
@@ -800,6 +809,14 @@ msgstr "የይለፍ ቃልዎን ለመደገፍ አገናኝ በኢሜልዎ
msgid "Check your email for a link to verify your account."
msgstr "መለያዎን ለማረጋገጥ አገናኝ በኢሜልዎ ውስጥ ይፈልጉ።"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "ፍተሻ"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "ረቂቅን በመፈተሽ ላይ"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "ቻይንኛ (ቀለል ያለ)"
@@ -966,6 +983,10 @@ msgstr "ውይይት ተቀድቷል።"
msgid "Conversation JSON copied."
msgstr "ውይይት JSON ተገልብጧል።"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "የተቀየረ የቅጥ ሉህ ረቂቅ"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "ወደ ቅንጥብ ሰሌዳ ተገልብጧል።"
@@ -989,6 +1010,10 @@ msgstr "የመከላከያ ኮዶችን ቅጂ አድርግ"
msgid "Copy JSON"
msgstr "JSONን ይቅዱ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "የቅጥ ሉህን ቅዳ"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "ይህንን ሚስጥራዊ ቁልፍ ቅጂ አድርጉ እና ውስጥ በመተግበሪያዎቻችሁ መረጃዎን ለመድረስ ይጠቀሙበት።"
@@ -1545,6 +1570,11 @@ msgstr "{chip} አርትዕ"
msgid "Edit application"
msgstr "መተግበሪያን ያርትዑ"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "ቀለምን አርትዕ {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "ሁለት-ደረጃ ማረጋገጫን ስትቆጣጠሩ የሚሆን
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "ሁለት-ደረጃ ማረጋገጫን ለማቦዘን የይለፍ ቃልዎን ያስገቡ። 2FA ባቦዘነ ጊዜ መለያዎ ያነሰ ደህንነት ይኖረዋል።"
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "ስህተት"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "እያንዳንዱ መዋጮ፣ ትልቅ ወይም ትንሽ፣ በፕሮጀክቱ ላይ ትልቅ ልዩነት ያመጣል።<0/>ስለ ድጋፍዎ እናመሰግናለን!"
@@ -1682,6 +1716,10 @@ msgstr "እያንዳንዱ መዋጮ፣ ትልቅ ወይም ትንሽ፣ በፕ
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "ሙያዊ የየታሪክ ማቅረቢያዎችን ለመፍጠር፣ ለማበጀት እና ለመካፈል ያስፈልግዎትን ሁሉ ይዟል። የግላዊነትን ጥበቃ በማስቡ፣ በክፍት ምንጭ የሚነቃቃ፣ ፍጹም ነፃ የሆነ ነው።"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "ከትኩረት ሁነታ ውጣ"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "ሙሉ ስክሪን ውጣ"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "ቅርጸት"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "የቅርጸት ቅጥ ሉህ"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "ነፃ"
@@ -2584,6 +2626,12 @@ msgstr "ብርሃን"
msgid "Light theme"
msgstr "ብርሃን ገጽታ"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "መስመር {0}፣ አምድ {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "የመስመር ከፍታ"
@@ -2918,6 +2966,10 @@ msgstr "ኖርዌጂያንኛ"
msgid "Not connected"
msgstr "አልተገናኘም"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "ክፍት የ AI ረዳት"
msgid "Open Email Client"
msgstr "የኢሜል ደንበኛን ክፈት"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "የትኩረት ሁነታን ክፈት"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "በገንቢ ውስጥ ክፈት"
@@ -2992,6 +3048,7 @@ msgstr "ከ OpenAI ጋር ተኳሃኝ"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "ለመክፈት <0>Enter</0>ን ይጫኑ"
msgid "Preview"
msgstr "ቅድመ እይታ"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "ቅድመ እይታ እና ወደ ውጭ መላክ የመጨረሻውን ትክክለኛ ስሪት ይጠቀሙ።"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "ዋና ቀለም"
@@ -3374,10 +3435,22 @@ msgstr "ምላሽ ሰጪ የስራ ልምድ v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "ንባብ…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "ለማግበር ዝግጁ"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "ከማስጠንቀቂያዎች ጋር ለማግበር ዝግጁ"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "ተቀባይ"
@@ -3394,6 +3467,10 @@ msgstr "አክታ (ሙሉ ወፍር)"
msgid "Redo"
msgstr "ድገም"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "የቅጥ ሉህ አርትዖትን ድገም"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "የይለፍ ቃል ዳግም አስጀምር"
msgid "Reset Style"
msgstr "ቅጥን ዳግም አስጀምር"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "ወደ ተተገበረ የቅጥ ሉህ ዳግም አስጀምር"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "የይለፍ ቃልዎን ዳግም ያስጀምሩ"
@@ -3791,6 +3872,14 @@ msgstr "ተመርጧል"
msgid "Self-Host with Docker"
msgstr "በ Docker ራስህን አስተናግድ"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "የትርጓሜ CSS የቅጥ ሉህ"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "የትርጓሜ ቅጦች ንቁ ሆነው ይቆያሉ"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "መልእክት ላክ"
@@ -4152,6 +4241,14 @@ msgstr "መሰረዣ"
msgid "Strong fit"
msgstr "ጠንካራ መገጣጠም"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "የቅጥ ሉህ አርታኢ"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "የቅጥ ሉህ ስህተቶች አሉት"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "ሰብሬዲት"
@@ -4308,6 +4405,10 @@ msgstr "የሚፈልጉት ገጽ ተዛውሮ ወይም ከአሁን በኋላ
msgid "The password you entered is incorrect"
msgstr "ያስገቡት የይለፍ ቃል ትክክል አይደለም"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "የሪሴምዩ ቅድመ እይታ ሊዘመን አልቻለም። የመጨረሻው ትክክለኛ ቅድመ እይታ አሁንም ይታያል።"
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "መድረስ የሚሞክሩት የየታሪክ ማቅረቢያ በይለፍ ቃል የተጠበቀ ነው"
@@ -4381,6 +4482,10 @@ msgstr "ይህ ግቤት በቋሚነት ይሰረዛል። ይህን መመለ
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "ይህ ባህሪ የተገናኘ የAI አቅራቢ ያስፈልገዋል። እባክዎ በቅንብሮች ውስጥ አንድ ያዋቅሩ።"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "ይህ አጋጣሚ በአሁኑ ጊዜ የሴማንቲክ CSS አርትዖትን አይፈቅድም።"
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "ይህ ለየታሪክዎ ተመቻቹ የ URL ስም ነው።"
@@ -4639,6 +4744,10 @@ msgstr "ነጥብ ተስማሚ"
msgid "Undo"
msgstr "ቀልብስ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "የቅጥ ሉህ አርትዖትን ቀልብስ"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "ያለ ገደብ የየታሪክ ማቅረቢያዎች"
@@ -5013,6 +5122,10 @@ msgstr "መረጃዎ በደህና ይከማቻል እና ከሶስተኛ ወገ
msgid "Your latest changes could not be saved."
msgstr "የቅርብ ጊዜ ለውጦችዎ ሊቀመጡ አልቻሉም።"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "የቆዩ ቅጦችዎ ይህንን የሴማንቲክ CSS ረቂቅ በግልጽ እስኪያነቁ ድረስ ንቁ ሆነው ይቆያሉ።"
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "የይለፍ ቃልዎ በተሳካ ሁኔታ ዳግም ተጀምሯል። አሁን በአዲሱ የይለፍ ቃል መግባት ትችላላችሁ።"
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ar\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Arabic\n"
"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"
@@ -163,6 +163,10 @@ msgstr "قائمة الحساب"
msgid "Actions"
msgstr "الإجراءات"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "تفعيل CSS الدلالي"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "الحجم الفعلي (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "الطلبات المرسلة أسبوعيًا (آخر 8 أسابيع)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "تم التقديم"
@@ -493,6 +498,10 @@ msgstr "تم التقديم في"
msgid "Applied Rules"
msgstr "القواعد المطبقة"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "تم استخدامه مع التحذيرات"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "العربية"
@@ -800,6 +809,14 @@ msgstr "تحقق من بريدك الإلكتروني للحصول على راب
msgid "Check your email for a link to verify your account."
msgstr "تحقق من بريدك الإلكتروني للحصول على رابط للتحقق من حسابك."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "التحقق"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "مراجعة المسودة"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "الصينية (المبسطة)"
@@ -966,6 +983,10 @@ msgstr "تم نسخ المحادثة."
msgid "Conversation JSON copied."
msgstr "تم نسخ بيانات المحادثة بصيغة JSON."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "مسودة ورقة الأنماط المحولة"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "تم نسخها إلى الحافظة."
@@ -989,6 +1010,10 @@ msgstr "نسخ رموز النسخ الاحتياطي"
msgid "Copy JSON"
msgstr "نسخ JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "انسخ ورقة الأنماط"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "انسخ مفتاحك السري هذا واستخدمه في تطبيقاتك للوصول إلى بياناتك."
@@ -1545,6 +1570,11 @@ msgstr "تحرير {chip}"
msgid "Edit application"
msgstr "تعديل الطلب"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "تعديل اللون {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "أدخِل كلمة المرور الخاصة بك لتأكيد إعدا
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "أدخِل كلمة المرور الخاصة بك لتعطيل المصادقة الثنائية. سيكون حسابك أقل أمانًا بدون تمكين المصادقة الثنائية (2FA)."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "خطأ"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "كل مساهمة، كبيرة كانت أم صغيرة، تُحدث فارقًا كبيرًا في المشروع.<0/>شكرًا لك على دعمك!"
@@ -1682,6 +1716,10 @@ msgstr "كل مساهمة، كبيرة كانت أم صغيرة، تُحدث ف
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "كل ما تحتاجه لإنشاء سير ذاتية احترافية وتخصيصها ومشاركتها. بُني مع مراعاة الخصوصية، ومدعوم بالمصدر المفتوح، ومجاني تمامًا إلى الأبد."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "الخروج من وضع التركيز"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "الخروج من وضع ملء الشاشة"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "الصيغة"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "نمط التنسيق"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "مجاني"
@@ -2584,6 +2626,12 @@ msgstr "مضيء"
msgid "Light theme"
msgstr "سمة مضيئة"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "السطر {0}، العمود {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "ارتفاع السطر"
@@ -2918,6 +2966,10 @@ msgstr "النرويجية"
msgid "Not connected"
msgstr "غير متصل"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "مساعد الذكاء الاصطناعي المفتوح"
msgid "Open Email Client"
msgstr "فتح عميل البريد الإلكتروني"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "وضع التركيز المفتوح"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "افتح في أداة الإنشاء"
@@ -2992,6 +3048,7 @@ msgstr "متوافق مع OpenAI"
msgid "OpenRouter"
msgstr "الموجه المفتوح (OpenRouter)"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "اضغط على <0>Enter</0> لفتح"
msgid "Preview"
msgstr "معاينة"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "استخدم آخر نسخة صالحة للمعاينة والتصدير."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "اللون الأساسي"
@@ -3374,10 +3435,22 @@ msgstr "السيرة الذاتية التفاعلية v<0>{__APP_VERSION__}</0>
msgid "Reactive Resume v4 (JSON)"
msgstr "استئناف تفاعلي الإصدار 4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "قراءة…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "جاهز للتفعيل"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "جاهز للتفعيل مع التحذيرات"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "المستلم"
@@ -3394,6 +3467,10 @@ msgstr "مستطيل (عرض كامل)"
msgid "Redo"
msgstr "إعادة العمل"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "إعادة تحرير ورقة الأنماط"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "إعادة تعيين كلمة المرور"
msgid "Reset Style"
msgstr "إعادة ضبط النمط"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "إعادة ضبط نمط التنسيق المُطبق"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "إعادة تعيين كلمة المرور"
@@ -3791,6 +3872,14 @@ msgstr "تم الاختيار"
msgid "Self-Host with Docker"
msgstr "الاستضافة الذاتية مع Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "ورقة أنماط CSS الدلالية"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "لا تزال الأساليب الدلالية نشطة"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "إرسال الرسائل"
@@ -4152,6 +4241,14 @@ msgstr "شطب"
msgid "Strong fit"
msgstr "ملاءمة قوية"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "محرر أنماط CSS"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "يحتوي ملف الأنماط على أخطاء"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "سبريديت"
@@ -4308,6 +4405,10 @@ msgstr "قد تكون الصفحة التي تبحث عنها قد نُقلت أ
msgid "The password you entered is incorrect"
msgstr "كلمة المرور التي أدخلتها غير صحيحة"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "تعذر تحديث معاينة السيرة الذاتية. لا تزال آخر معاينة صالحة معروضة."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "السيرة الذاتية التي تحاول الوصول إليها محمية بكلمة مرور"
@@ -4381,6 +4482,10 @@ msgstr "سيتم حذف هذا الإدخال نهائيًا. لا يمكن ال
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "تتطلب هذه الميزة وجود موفر ذكاء اصطناعي متصل. يرجى إعداد واحد في الإعدادات."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "لا تسمح هذه النسخة حاليًا بتحرير CSS الدلالي."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "هذا اسم مناسب لعناوين URL لسيرتك الذاتية."
@@ -4639,6 +4744,10 @@ msgstr "تسطير"
msgid "Undo"
msgstr "التراجع"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "التراجع عن تعديل ورقة الأنماط"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "سير ذاتية غير محدودة"
@@ -5013,6 +5122,10 @@ msgstr "تُخزَّن بياناتك بأمان ولا تتم مشاركتها
msgid "Your latest changes could not be saved."
msgstr "لم يتم حفظ آخر التغييرات التي أجريتها."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "ستبقى أنماطك القديمة نشطة حتى تقوم بتفعيل مسودة CSS الدلالية هذه بشكل صريح."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "تمت إعادة تعيين كلمة المرور الخاصة بك بنجاح. يمكنك الآن تسجيل الدخول باستخدام كلمة المرور الجديدة."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: az\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Azerbaijani\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Hesab menyusu"
msgid "Actions"
msgstr "Əməliyyatlar"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Semantik CSS-i aktivləşdirin"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Həqiqi ölçü (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Həftəlik göndərilən müraciətlər (son 8 həftə)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Müraciət edildi"
@@ -493,6 +498,10 @@ msgstr "Tətbiq edildiyi tarix"
msgid "Applied Rules"
msgstr "Tətbiq olunan Qaydalar"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Xəbərdarlıqlarla tətbiq olunur"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Ərəb"
@@ -800,6 +809,14 @@ msgstr "Parolu sıfırlamaq üçün link üçün e‑poçtunuzu yoxlayın."
msgid "Check your email for a link to verify your account."
msgstr "Hesabınızı təsdiqləmək üçün link üçün e‑poçtunuzu yoxlayın."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Yoxlama"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Qaralama yoxlanılır"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Çin (Sadələşdirilmiş)"
@@ -966,6 +983,10 @@ msgstr "Söhbət kopyalandı."
msgid "Conversation JSON copied."
msgstr "Söhbət JSON formatında kopyalandı."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Çevirilmiş stil cədvəli qaralaması"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Panoya kopyalandı."
@@ -989,6 +1010,10 @@ msgstr "Ehtiyat Kodlarını Kopyala"
msgid "Copy JSON"
msgstr "JSON-u kopyalayın"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Stil cədvəlini kopyalayın"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Bu gizli açarı kopyalayın və verilənlərinizə daxil olmaq üçün tətbiqlərinizdə istifadə edin."
@@ -1545,6 +1570,11 @@ msgstr "Düzəliş et {chip}"
msgid "Edit application"
msgstr "Tətbiqi redaktə edin"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Rəngi redaktə edin {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "İki mərhələli autentifikasiyanı qurmağı təsdiqləmək üçün pa
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "İki mərhələli autentifikasiyanı deaktiv etmək üçün parolunuzu daxil edin. 2FA deaktiv edildikdə, hesabınız daha az təhlükəsiz olacaq."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Xəta"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Hər bir töhfə, böyük və ya kiçik olmasından asılı olmayaraq, layihə üçün böyük fərq yaradır.<0/>Dəstəyiniz üçün təşəkkür edirik!"
@@ -1682,6 +1716,10 @@ msgstr "Hər bir töhfə, böyük və ya kiçik olmasından asılı olmayaraq, l
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Peşəkar özgeçmişlər yaratmaq, fərdiləşdirmək və paylaşmaq üçün lazım olan hər şey. Məxfilik nəzərə alınaraq qurulub, açıq mənbə ilə işləyir və tamamilə pulsuzdur."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Fokus rejimindən çıxın"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Tam ekrandan çıx"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Stil cədvəlini formatlayın"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Pulsuz"
@@ -2584,6 +2626,12 @@ msgstr "Açıq"
msgid "Light theme"
msgstr "Açıq mövzu"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Sətir {0}, sütun {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Sətir Hündürlüyü"
@@ -2918,6 +2966,10 @@ msgstr "Norveç"
msgid "Not connected"
msgstr "Qoşulmamışdır"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Açıq süni intellekt köməkçisi"
msgid "Open Email Client"
msgstr "E‑poçt müştərisini aç"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Fokus rejimini açın"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Qurucuda açın"
@@ -2992,6 +3048,7 @@ msgstr "OpenAI ilə uyğun"
msgid "OpenRouter"
msgstr "AçıqRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Açmaq üçün <0>Enter düyməsini</0> basın"
msgid "Preview"
msgstr "Önizləmə"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Önizləmə və ixrac üçün son etibarlı versiyadan istifadə edin."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Əsas Rəng"
@@ -3374,10 +3435,22 @@ msgstr "Reaktiv CV v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktiv Rezume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "… oxunur"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Aktivləşdirməyə hazırdır"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Xəbərdarlıqlarla aktivləşdirməyə hazırdır"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Alıcı"
@@ -3394,6 +3467,10 @@ msgstr "Düzbucaqlı (Tam En)"
msgid "Redo"
msgstr "Təkrar et"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Stil cədvəli redaktəsini yenidən edin"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Parolu Sıfırla"
msgid "Reset Style"
msgstr "Stilini Sıfırla"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Tətbiq olunmuş stil cədvəlinə sıfırlayın"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Parolunuzu sıfırlayın"
@@ -3791,6 +3872,14 @@ msgstr "seçilmiş"
msgid "Self-Host with Docker"
msgstr "Docker ilə Özün‑host et"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Semantik CSS stil cədvəli"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Semantik üslublar aktiv olaraq qalır"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Mesaj göndərin"
@@ -4152,6 +4241,14 @@ msgstr "Üstündən xətt çək"
msgid "Strong fit"
msgstr "Güclü uyğunluq"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Stil cədvəli redaktoru"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Stil cədvəlində səhvlər var"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "Axtardığınız səhifə köçürülmüş və ya artıq mövcud olmamı
msgid "The password you entered is incorrect"
msgstr "Daxil etdiyiniz parol yanlışdır"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "CV önizləməsi yenilənə bilmədi. Son etibarlı önizləmə hələ də göstərilir."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Daxil olmağa çalışdığınız özgeçmiş parol ilə qorunur"
@@ -4381,6 +4482,10 @@ msgstr "Bu qeyd həmişəlik silinəcək. Bunu geri qaytarmaq mümkün deyil."
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Bu funksiya qoşulmuş süni intellekt provayderi tələb edir. Zəhmət olmasa, parametrlərdə birini quraşdırın."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Bu nümunə hazırda semantik CSS redaktəsinə icazə vermir."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Bu, özgeçmişiniz üçün URL‑ə uyğun bir addır."
@@ -4639,6 +4744,10 @@ msgstr "Altını Xətlə"
msgid "Undo"
msgstr "Geri al"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Stil cədvəli düzəlişini geri qaytarın"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Limitsiz Özgeçmişlər"
@@ -5013,6 +5122,10 @@ msgstr "Məlumatlarınız təhlükəsiz şəkildə saxlanılır və heç vaxt ü
msgid "Your latest changes could not be saved."
msgstr "Son dəyişiklikləriniz yadda saxlanıla bilmədi."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Bu Semantik CSS layihəsini açıq şəkildə aktivləşdirənə qədər köhnə üslublarınız aktiv qalır."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Parolunuz uğurla sıfırlandı. İndi yeni parolunuzla daxil ola bilərsiniz."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: bg\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Bulgarian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Меню на акаунта"
msgid "Actions"
msgstr "Действия"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Активиране на семантичен CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Действителен размер (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Изпратени кандидатури на седмица (последните 8 седмици)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Кандидатствано"
@@ -493,6 +498,10 @@ msgstr "Приложено на"
msgid "Applied Rules"
msgstr "Приложени правила"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Прилага се с предупреждения"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Арабски"
@@ -800,6 +809,14 @@ msgstr "Проверете имейла си за връзка за нулира
msgid "Check your email for a link to verify your account."
msgstr "Проверете имейла си за връзка за потвърждение на профила."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Проверка"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Проверка на черновата"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Китайски (опростен)"
@@ -966,6 +983,10 @@ msgstr "Разговорът е копиран."
msgid "Conversation JSON copied."
msgstr "JSON файлът на разговора е копиран."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Конвертирана чернова на стилов лист"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Копирано в клипборда."
@@ -989,6 +1010,10 @@ msgstr "Копиране на резервни кодове"
msgid "Copy JSON"
msgstr "Копиране на JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Копиране на стилов лист"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Копирайте този таен ключ и го използвайте във вашите приложения, за да получите достъп до данните си."
@@ -1545,6 +1570,11 @@ msgstr "Редактиране на {chip}"
msgid "Edit application"
msgstr "Редактиране на приложението"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Редактиране на цвят {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Въведете паролата си, за да потвърдите
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Въведете паролата си, за да изключите двуфакторното удостоверяване. Вашият профил ще бъде по-малко защитен без активирано 2FA."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Грешка"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Всеки принос, голям или малък, прави огромна разлика за проекта.<0/>Благодарим ви за подкрепата!"
@@ -1682,6 +1716,10 @@ msgstr "Всеки принос, голям или малък, прави огр
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Всичко, от което се нуждаете, за да създавате, персонализирате и споделяте професионални автобиографии. Създадено с мисъл за поверителността, базирано на отворен код и напълно безплатно завинаги."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Изход от режим на фокус"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Излизане от цял екран"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Формат"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Форматиране на стилов лист"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Безплатно"
@@ -2584,6 +2626,12 @@ msgstr "Светла"
msgid "Light theme"
msgstr "Светла тема"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Ред {0}, колона {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Междуредие"
@@ -2918,6 +2966,10 @@ msgstr "Норвежки"
msgid "Not connected"
msgstr "Няма връзка"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Отворете AI асистент"
msgid "Open Email Client"
msgstr "Отваряне на имейл клиент"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Отвори режим на фокус"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Отваряне в конструктора"
@@ -2992,6 +3048,7 @@ msgstr "Съвместим с OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Натиснете <0>Enter</0>, за да отворите"
msgid "Preview"
msgstr "Преглед"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Прегледът и експортът използват последната валидна версия."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Основен цвят"
@@ -3374,10 +3435,22 @@ msgstr "Реактивно резюме v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Четене…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Готов за активиране"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Готово за активиране с предупреждения"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Получател"
@@ -3394,6 +3467,10 @@ msgstr "Правоъгълник (пълна ширина)"
msgid "Redo"
msgstr "Преработи"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Възстановяване на редакцията на стиловия лист"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Нулиране на паролата"
msgid "Reset Style"
msgstr "Нулиране на стила"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Възстановяване към приложения стилов лист"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Нулирайте паролата си"
@@ -3791,6 +3872,14 @@ msgstr "избран"
msgid "Self-Host with Docker"
msgstr "Самостоятелно хостване с Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Семантичен CSS стилов лист"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Семантичните стилове остават активни"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Изпрати съобщение"
@@ -4152,6 +4241,14 @@ msgstr "Зачеркване"
msgid "Strong fit"
msgstr "Силно прилягане"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Редактор на стилови листове"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Стилният лист съдържа грешки"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "Страницата, която търсите, може да е бил
msgid "The password you entered is incorrect"
msgstr "Въведената от вас парола е неправилна"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Прегледът на автобиографията не можа да бъде актуализиран. Последният валиден преглед все още се показва."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Автобиографията, до която се опитвате да получите достъп, е защитена с парола"
@@ -4381,6 +4482,10 @@ msgstr "Този запис ще бъде изтрит за постоянно.
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Тази функция изисква свързан доставчик на изкуствен интелект. Моля, настройте такъв в настройките."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Този екземпляр в момента не позволява редактиране на семантичен CSS."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Това е име, подходящо за URL, за вашата автобиография."
@@ -4639,6 +4744,10 @@ msgstr "Подчертаване"
msgid "Undo"
msgstr "Отмяна"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Отмяна на редакцията на стиловия лист"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Неограничен брой автобиографии"
@@ -5013,6 +5122,10 @@ msgstr "Вашите данни се съхраняват сигурно и ни
msgid "Your latest changes could not be saved."
msgstr "Последните ви промени не можаха да бъдат запазени."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Вашите стари стилове остават активни, докато изрично не активирате този проект на Semantic CSS."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Паролата ви беше нулирана успешно. Сега можете да влезете с новата си парола."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: bn\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Bengali\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "অ্যাকাউন্ট মেনু"
msgid "Actions"
msgstr "অ্যাকশন"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "সিমান্টিক CSS সক্রিয় করুন"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "প্রকৃত আকার (১০০%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "প্রতি সপ্তাহে পাঠানো আবেদন (শেষ 8 সপ্তাহ)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "আবেদন করা হয়েছে"
@@ -493,6 +498,10 @@ msgstr "প্রয়োগ করা হয়েছে"
msgid "Applied Rules"
msgstr "প্রয়োগকৃত নিয়মাবলী"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "সতর্কতাসহ প্রয়োগ করা হয়েছে"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "আরবি"
@@ -800,6 +809,14 @@ msgstr "আপনার পাসওয়ার্ড রিসেট করা
msgid "Check your email for a link to verify your account."
msgstr "আপনার অ্যাকাউন্ট যাচাই করার লিঙ্কের জন্য ইমেইল চেক করুন।"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "চেকিং"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "খসড়া পরীক্ষা করা হচ্ছে"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "চীনা (সরলীকৃত)"
@@ -966,6 +983,10 @@ msgstr "কথোপকথনটি অনুলিপি করা হয়ে
msgid "Conversation JSON copied."
msgstr "কথোপকথনের JSON কপি করা হয়েছে।"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "রূপান্তরিত স্টাইলশীট খসড়া"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "ক্লিপবোর্ডে কপি করা হয়েছে।"
@@ -989,6 +1010,10 @@ msgstr "ব্যাকআপ কোড কপি করুন"
msgid "Copy JSON"
msgstr "JSON কপি করুন"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "স্টাইলশিট কপি করুন"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "এই সিক্রেট কী কপি করে আপনার অ্যাপ্লিকেশনগুলোতে ব্যবহার করুন আপনার ডেটায় প্রবেশ করার জন্য।"
@@ -1545,6 +1570,11 @@ msgstr "সম্পাদনা {chip}"
msgid "Edit application"
msgstr "অ্যাপ্লিকেশন সম্পাদনা করুন"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "রঙ সম্পাদনা করুন {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "টু‑ফ্যাক্টর প্রমাণীকরণ সে
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "টু‑ফ্যাক্টর প্রমাণীকরণ বন্ধ করতে আপনার পাসওয়ার্ড লিখুন। 2FA বন্ধ করলে আপনার অ্যাকাউন্ট কম সুরক্ষিত থাকবে।"
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "ত্রুটি"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "প্রতিটি অবদান, বড় বা ছোট, প্রজেক্টটিতে বিশাল পরিবর্তন আনে।<0/>আপনার সহায়তার জন্য ধন্যবাদ!"
@@ -1682,6 +1716,10 @@ msgstr "প্রতিটি অবদান, বড় বা ছোট, প
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "পেশাদার জীবনবৃত্তান্ত তৈরি, কাস্টমাইজ এবং শেয়ার করার জন্য যা যা প্রয়োজন সবই এখানে আছে। গোপনীয়তা মাথায় রেখে তৈরি, মুক্ত উৎস দ্বারা চালিত এবং চিরদিনের জন্য সম্পূর্ণ বিনামূল্যে।"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "ফোকাস মোড থেকে প্রস্থান করুন"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "পূর্ণ স্ক্রীন থেকে বের হন"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "রূপ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "ফরম্যাট স্টাইলশিট"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "বিনামূল্যে"
@@ -2584,6 +2626,12 @@ msgstr "লাইট"
msgid "Light theme"
msgstr "লাইট থিম"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "লাইন {0}, কলাম {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "লাইন হাইট"
@@ -2918,6 +2966,10 @@ msgstr "নরওয়েজিয়ান"
msgid "Not connected"
msgstr "সংযুক্ত নয়"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "ওপেন এআই অ্যাসিস্ট্যান্ট"
msgid "Open Email Client"
msgstr "ইমেইল ক্লায়েন্ট খুলুন"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "ফোকাস মোড খুলুন"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "বিল্ডারে খুলুন"
@@ -2992,6 +3048,7 @@ msgstr "ওপেনএআই-সামঞ্জস্যপূর্ণ"
msgid "OpenRouter"
msgstr "ওপেনরাউটার"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "খুলতে <0>এন্টার</0> চাপুন"
msgid "Preview"
msgstr "প্রিভিউ"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "প্রিভিউ এবং এক্সপোর্টের জন্য সর্বশেষ বৈধ সংস্করণটি ব্যবহার করা হয়।"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "প্রাথমিক রঙ"
@@ -3374,10 +3435,22 @@ msgstr "প্রতিক্রিয়াশীল জীবনবৃত্
msgid "Reactive Resume v4 (JSON)"
msgstr "প্রতিক্রিয়াশীল রিজ্যুম v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "পড়া…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "সক্রিয় করার জন্য প্রস্তুত"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "সতর্কতা সহ সক্রিয় করার জন্য প্রস্তুত"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "প্রাপক"
@@ -3394,6 +3467,10 @@ msgstr "আয়তক্ষেত্র (পূর্ণ প্রস্থ)"
msgid "Redo"
msgstr "পুনরায় করুন"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "স্টাইলশীট সম্পাদনা পুনরায় করুন"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "পাসওয়ার্ড রিসেট করুন"
msgid "Reset Style"
msgstr "স্টাইল রিসেট করুন"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "প্রয়োগকৃত স্টাইলশীটে রিসেট করুন"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "আপনার পাসওয়ার্ড রিসেট করুন"
@@ -3791,6 +3872,14 @@ msgstr "নির্বাচিত"
msgid "Self-Host with Docker"
msgstr "ডকার দিয়ে নিজে হোস্ট করুন"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "সিমান্টিক সিএসএস স্টাইলশিট"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "শব্দার্থিক শৈলী সক্রিয় থাকে"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "বার্তা পাঠান"
@@ -4152,6 +4241,14 @@ msgstr "স্ট্রাইক"
msgid "Strong fit"
msgstr "শক্তিশালী ফিট"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "স্টাইলশিট সম্পাদক"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "স্টাইলশিটে ত্রুটি আছে"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "সাবরেডিট"
@@ -4308,6 +4405,10 @@ msgstr "আপনি যে পৃষ্ঠাটি খুঁজছেন স
msgid "The password you entered is incorrect"
msgstr "আপনি যে পাসওয়ার্ড লিখেছেন তা সঠিক নয়"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "জীবনবৃত্তান্তের প্রিভিউ আপডেট করা যায়নি। সর্বশেষ বৈধ প্রিভিউটিই এখনও দেখানো হচ্ছে।"
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "আপনি যে জীবনবৃত্তান্তে প্রবেশ করার চেষ্টা করছেন তা পাসওয়ার্ড দ্বারা সুরক্ষিত"
@@ -4381,6 +4482,10 @@ msgstr "এই এন্ট্রি স্থায়ীভাবে মুছ
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "এই ফিচারটি ব্যবহারের জন্য একটি সংযুক্ত এআই প্রোভাইডার প্রয়োজন। অনুগ্রহ করে সেটিংস থেকে একটি সেট আপ করুন।"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "এই ইনস্ট্যান্সটিতে বর্তমানে সিমান্টিক সিএসএস সম্পাদনার অনুমতি নেই।"
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "এটি আপনার জীবনবৃত্তান্তের জন্য একটি URL‑বান্ধব নাম।"
@@ -4639,6 +4744,10 @@ msgstr "আন্ডারলাইন"
msgid "Undo"
msgstr "পূর্বাবস্থায় ফেরান"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "স্টাইলশীট সম্পাদনা পূর্বাবস্থায় ফেরান"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "আনলিমিটেড জীবনবৃত্তান্ত"
@@ -5013,6 +5122,10 @@ msgstr "আপনার ডেটা নিরাপদভাবে সংরক
msgid "Your latest changes could not be saved."
msgstr "আপনার সর্বশেষ পরিবর্তনগুলো সংরক্ষণ করা যায়নি।"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "যতক্ষণ না আপনি স্পষ্টভাবে এই সিম্যান্টিক সিএসএস ড্রাফটটি সক্রিয় করছেন, ততক্ষণ আপনার পুরোনো স্টাইলগুলো সক্রিয় থাকবে।"
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "আপনার পাসওয়ার্ড সফলভাবে রিসেট হয়েছে। এখন আপনি নতুন পাসওয়ার্ড দিয়ে সাইন ইন করতে পারবেন।"
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ca\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Catalan\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Menú del compte"
msgid "Actions"
msgstr "Accions"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Activa el CSS semàntic"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Mida real (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Sol·licituds enviades per setmana (darreres 8 setmanes)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Sol·licitada"
@@ -493,6 +498,10 @@ msgstr "Aplicat a"
msgid "Applied Rules"
msgstr "Normes aplicades"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Aplicat amb avisos"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Àrab"
@@ -800,6 +809,14 @@ msgstr "Comprova el correu electrònic per trobar un enllaç per restablir la co
msgid "Check your email for a link to verify your account."
msgstr "Comprova el correu electrònic per trobar un enllaç per verificar el compte."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Comprovació"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "S'està revisant l'esborrany"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Xinès (simplificat)"
@@ -966,6 +983,10 @@ msgstr "Conversa copiada."
msgid "Conversation JSON copied."
msgstr "S'ha copiat el fitxer JSON de la conversa."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Esborrany de full d'estil convertit"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Copiat al porta-retalls."
@@ -989,6 +1010,10 @@ msgstr "Copia els codis de reserva"
msgid "Copy JSON"
msgstr "Copia JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Copiar full d'estils"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Copia aquesta clau secreta i utilitza-la a les aplicacions per accedir a les dades."
@@ -1545,6 +1570,11 @@ msgstr "Edita {chip}"
msgid "Edit application"
msgstr "Edita l'aplicació"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Edita el color {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Introdueix la contrasenya per confirmar la configuració de l’autentic
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Introdueix la contrasenya per desactivar l’autenticació en dos passos. El compte serà menys segur sense l’A2F activada."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Error"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Cada contribució, gran o petita, marca una gran diferència per al projecte.<0/>Gràcies pel teu suport!"
@@ -1682,6 +1716,10 @@ msgstr "Cada contribució, gran o petita, marca una gran diferència per al proj
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Tot el que necessites per crear, personalitzar i compartir currículums professionals. Creat amb la privadesa en ment, impulsat per codi obert i completament gratuït per sempre."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Surt del mode d'enfocament"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Surt de la pantalla completa"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Full d'estils de format"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Gratuït"
@@ -2584,6 +2626,12 @@ msgstr "Clar"
msgid "Light theme"
msgstr "Tema clar"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Línia {0}, columna {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Interlineat"
@@ -2918,6 +2966,10 @@ msgstr "Noruec"
msgid "Not connected"
msgstr "No connectat"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Assistent d'IA oberta"
msgid "Open Email Client"
msgstr "Obre el client de correu"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Obre el mode d'enfocament"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Obre al constructor"
@@ -2992,6 +3048,7 @@ msgstr "Compatible amb OpenAI"
msgid "OpenRouter"
msgstr "Routador obert"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Premeu <0>Intro</0> per obrir"
msgid "Preview"
msgstr "Vista prèvia"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "La vista prèvia i l'exportació utilitzen l'última versió vàlida."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Color principal"
@@ -3374,10 +3435,22 @@ msgstr "Currículum reactiu v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Llegint…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Llest per activar"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Llest per activar amb avisos"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Destinatari"
@@ -3394,6 +3467,10 @@ msgstr "Rectangle (amplada completa)"
msgid "Redo"
msgstr "Refer"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Refés l'edició del full d'estils"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Restableix la contrasenya"
msgid "Reset Style"
msgstr "Restableix l'estil"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Restableix al full d'estils aplicat"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Restableix la contrasenya"
@@ -3791,6 +3872,14 @@ msgstr "seleccionat"
msgid "Self-Host with Docker"
msgstr "Allotjament propi amb Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Full d'estil CSS semàntic"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Els estils semàntics romanen actius"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Enviar missatge"
@@ -4152,6 +4241,14 @@ msgstr "Barrat"
msgid "Strong fit"
msgstr "Ajust fort"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Editor de fulls d'estil"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "El full d'estil té errors"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "Pot ser que la pàgina que busques s'hagi mogut o que ja no existeixi."
msgid "The password you entered is incorrect"
msgstr "La contrasenya introduïda és incorrecta"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "No s'ha pogut actualitzar la vista prèvia del currículum. Encara es mostra l'última vista prèvia vàlida."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "El currículum al qual intentes accedir està protegit amb contrasenya"
@@ -4381,6 +4482,10 @@ msgstr "Aquesta entrada se suprimirà permanentment. Això no es pot desfer."
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Aquesta funció requereix un proveïdor d'IA connectat. Configura'n un a la configuració."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Aquesta instància actualment no permet l'edició semàntica de CSS."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Aquest és un nom d’URL fàcil d’utilitzar per al currículum."
@@ -4639,6 +4744,10 @@ msgstr "Subratllat"
msgid "Undo"
msgstr "Desfer"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Desfés l'edició del full d'estils"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Currículums il·limitats"
@@ -5013,6 +5122,10 @@ msgstr "Les dades s’emmagatzemen de manera segura i mai no es comparteixen amb
msgid "Your latest changes could not be saved."
msgstr "No s'han pogut desar els darrers canvis."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Els vostres estils antics romanen actius fins que activeu explícitament aquest esborrany de CSS semàntic."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "La contrasenya s’ha restablert correctament. Ara ja pots iniciar sessió amb la contrasenya nova."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: cs\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Czech\n"
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
@@ -163,6 +163,10 @@ msgstr "Nabídka účtu"
msgid "Actions"
msgstr "Akce"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Aktivace sémantického CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Skutečná velikost (100 %)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Žádosti odeslané týdně (posledních 8 týdnů)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Podáno"
@@ -493,6 +498,10 @@ msgstr "Aplikováno na"
msgid "Applied Rules"
msgstr "Použitá pravidla"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Použito s varováním"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Arabština"
@@ -800,6 +809,14 @@ msgstr "Zkontrolujte svůj e-mail, kde najdete odkaz pro obnovení hesla."
msgid "Check your email for a link to verify your account."
msgstr "Zkontrolujte svůj e-mail, kde najdete odkaz pro ověření účtu."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Kontrola"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Kontrola návrhu"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Čínština (zjednodušená)"
@@ -966,6 +983,10 @@ msgstr "Konverzace zkopírována."
msgid "Conversation JSON copied."
msgstr "JSON konverzace zkopírován."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Konverze konceptu stylů"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Zkopírováno do schránky."
@@ -989,6 +1010,10 @@ msgstr "Zkopírovat záložní kódy"
msgid "Copy JSON"
msgstr "Kopírovat JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Kopírovat stylový list"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Zkopírujte tento tajný klíč a použijte ho ve svých aplikacích pro přístup k vašim datům."
@@ -1545,6 +1570,11 @@ msgstr "Upravit {chip}"
msgid "Edit application"
msgstr "Upravit aplikaci"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Upravit barvu {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Zadejte své heslo pro potvrzení nastavení dvoufázového ověření.
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Zadejte své heslo pro deaktivaci dvoufázového ověření. Bez aktivního 2FA bude váš účet méně zabezpečený."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Chyba"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Každý příspěvek, velký i malý, má pro projekt obrovský význam.<0/>Děkujeme za vaši podporu!"
@@ -1682,6 +1716,10 @@ msgstr "Každý příspěvek, velký i malý, má pro projekt obrovský význam.
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Vše, co potřebujete k vytvoření, přizpůsobení a sdílení profesionálních životopisů. Vytvořeno s ohledem na soukromí, poháněno open source a zcela zdarma, navždy."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Ukončit režim ostření"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Ukončit celou obrazovku"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Formát"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Formátovat stylový list"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Zdarma"
@@ -2584,6 +2626,12 @@ msgstr "Světlý"
msgid "Light theme"
msgstr "Světlý motiv"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Řádek {0}, sloupec {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Výška řádku"
@@ -2918,6 +2966,10 @@ msgstr "Norština"
msgid "Not connected"
msgstr "Nepřipojeno"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Otevřený asistent s umělou inteligencí"
msgid "Open Email Client"
msgstr "Otevřít e-mailového klienta"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Otevřít režim ostření"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Otevřít v editoru"
@@ -2992,6 +3048,7 @@ msgstr "Kompatibilní s OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Stisknutím klávesy <0>Enter</0> otevřete"
msgid "Preview"
msgstr "Náhled"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Náhled a export použijí poslední platnou verzi."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Hlavní barva"
@@ -3374,10 +3435,22 @@ msgstr "Reaktivní životopis v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktivní životopis v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Čtení…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Připraveno k aktivaci"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Připraveno k aktivaci s varováními"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Příjemce"
@@ -3394,6 +3467,10 @@ msgstr "Obdélník (plná šířka)"
msgid "Redo"
msgstr "Předělat"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Znovu upravit stylový list"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Obnovit heslo"
msgid "Reset Style"
msgstr "Obnovit styl"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Obnovit použitý stylový list"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Obnovte své heslo"
@@ -3791,6 +3872,14 @@ msgstr "vybraný"
msgid "Self-Host with Docker"
msgstr "Vlastní hosting pomocí Dockeru"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Sémantický CSS stylový list"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Sémantické styly zůstávají aktivní"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Odeslat zprávu"
@@ -4152,6 +4241,14 @@ msgstr "Přeškrtnutí"
msgid "Strong fit"
msgstr "Silné uchycení"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Editor stylů"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Stylový list obsahuje chyby"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "Stránka, kterou hledáte, mohla být přesunuta nebo již neexistuje."
msgid "The password you entered is incorrect"
msgstr "Zadané heslo je nesprávné"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Náhled životopisu se nepodařilo aktualizovat. Stále se zobrazuje poslední platný náhled."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Životopis, ke kterému se snažíte získat přístup, je chráněn heslem"
@@ -4381,6 +4482,10 @@ msgstr "Tento záznam bude trvale odstraněn. Tuto akci nelze vrátit zpět."
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Tato funkce vyžaduje připojeného poskytovatele umělé inteligence. Nastavte si ho prosím v nastavení."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Tato instance aktuálně neumožňuje úpravy sémantického CSS."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Toto je název vašeho životopisu vhodný pro URL adresu."
@@ -4639,6 +4744,10 @@ msgstr "Podtržení"
msgid "Undo"
msgstr "Zpět"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Zrušit úpravu stylového listu"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Neomezené životopisy"
@@ -5013,6 +5122,10 @@ msgstr "Vaše data jsou ukládána bezpečně a nikdy nejsou sdílena s třetím
msgid "Your latest changes could not be saved."
msgstr "Vaše poslední změny se nepodařilo uložit."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Vaše starší styly zůstanou aktivní, dokud explicitně neaktivujete tento koncept sémantického CSS."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Vaše heslo bylo úspěšně obnoveno. Nyní se můžete přihlásit pomocí nového hesla."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: da\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Danish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Kontomenu"
msgid "Actions"
msgstr "Handlinger"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Aktivér semantisk CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Faktisk størrelse (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Ansøgninger sendt pr. uge (sidste 8 uger)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Ansøgt"
@@ -493,6 +498,10 @@ msgstr "Anvendt den"
msgid "Applied Rules"
msgstr "Anvendte regler"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Anvendt med advarsler"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Arabisk"
@@ -800,6 +809,14 @@ msgstr "Tjek din e-mail for et link til at nulstille din adgangskode."
msgid "Check your email for a link to verify your account."
msgstr "Tjek din e-mail for et link til at verificere din konto."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Kontrol"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Tjekker udkast"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Kinesisk (forenklet)"
@@ -966,6 +983,10 @@ msgstr "Samtalen er kopieret."
msgid "Conversation JSON copied."
msgstr "Samtalens JSON-fil kopieret."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Konverteret stylesheet-kladde"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Kopieret til udklipsholder."
@@ -989,6 +1010,10 @@ msgstr "Kopiér backup-koder"
msgid "Copy JSON"
msgstr "Kopiér JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Kopiér stylesheet"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Kopiér denne hemmelige nøgle og brug den i dine applikationer for at få adgang til dine data."
@@ -1545,6 +1570,11 @@ msgstr "Rediger {chip}"
msgid "Edit application"
msgstr "Rediger applikation"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Rediger farve {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Indtast din adgangskode for at bekræfte opsætning af to-faktor-godkend
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Indtast din adgangskode for at deaktivere to-faktor-godkendelse. Din konto vil være mindre sikker uden 2FA aktiveret."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Fejl"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Hvert bidrag, stort som lille, gør en stor forskel for projektet.<0/>Tak for din støtte!"
@@ -1682,6 +1716,10 @@ msgstr "Hvert bidrag, stort som lille, gør en stor forskel for projektet.<0/>Ta
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Alt hvad du behøver for at oprette, tilpasse og dele professionelle CV'er. Bygget med fokus på privatliv, drevet af open source og helt gratis for altid."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Afslut fokustilstand"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Afslut fuldskærm"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Formatér typografiark"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Gratis"
@@ -2584,6 +2626,12 @@ msgstr "Lys"
msgid "Light theme"
msgstr "Lyst tema"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Linje {0}, kolonne {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Linjehøjde"
@@ -2918,6 +2966,10 @@ msgstr "Norsk"
msgid "Not connected"
msgstr "Ikke forbundet"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Åbn AI-assistent"
msgid "Open Email Client"
msgstr "Åbn e-mailklient"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Åbn fokustilstand"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Åbn i builderen"
@@ -2992,6 +3048,7 @@ msgstr "OpenAI-kompatibel"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Tryk på <0>Enter</0> for at åbne"
msgid "Preview"
msgstr "Forhåndsvisning"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Forhåndsvisning og eksport med den seneste gyldige version."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primær farve"
@@ -3374,10 +3435,22 @@ msgstr "Reaktivt CV v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktivt CV v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Læsning…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Klar til aktivering"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Klar til aktivering med advarsler"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Modtager"
@@ -3394,6 +3467,10 @@ msgstr "Rektangel (fuld bredde)"
msgid "Redo"
msgstr "Gentag"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Gentag redigering af stylesheet"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Nulstil adgangskode"
msgid "Reset Style"
msgstr "Nulstil stil"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Nulstil til anvendt stylesheet"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Nulstil din adgangskode"
@@ -3791,6 +3872,14 @@ msgstr "udvalgte"
msgid "Self-Host with Docker"
msgstr "Selvhostning med Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Semantisk CSS-stilark"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Semantiske stilarter forbliver aktive"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Send besked"
@@ -4152,6 +4241,14 @@ msgstr "Gennemstreget"
msgid "Strong fit"
msgstr "Stærk pasform"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Stylesheet-editor"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Stylesheet indeholder fejl"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "Den side, du leder efter, er muligvis blevet flyttet eller findes ikke l
msgid "The password you entered is incorrect"
msgstr "Den adgangskode, du indtastede, er forkert"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Forhåndsvisningen af CV'et kunne ikke opdateres. Den sidste gyldige forhåndsvisning vises stadig."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Det CV, du prøver at få adgang til, er beskyttet af en adgangskode"
@@ -4381,6 +4482,10 @@ msgstr "Denne post slettes permanent. Dette kan ikke fortrydes."
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Denne funktion kræver en tilsluttet AI-udbyder. Opsæt venligst en i indstillingerne."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Denne instans tillader i øjeblikket ikke semantisk CSS-redigering."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Dette er et URL-venligt navn til dit CV."
@@ -4639,6 +4744,10 @@ msgstr "Understreg"
msgid "Undo"
msgstr "Fortryd"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Fortryd redigering af stylesheet"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Ubegrænsede CV'er"
@@ -5013,6 +5122,10 @@ msgstr "Dine data lagres sikkert og deles aldrig med tredjeparter. Du kan også
msgid "Your latest changes could not be saved."
msgstr "Dine seneste ændringer kunne ikke gemmes."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Dine ældre stilarter forbliver aktive, indtil du eksplicit aktiverer denne semantiske CSS-kladde."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Din adgangskode er blevet nulstillet. Du kan nu logge ind med din nye adgangskode."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: de\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Kontomenü"
msgid "Actions"
msgstr "Aktionen"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Semantisches CSS aktivieren"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Tatsächliche Größe (100 %)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Pro Woche gesendete Bewerbungen (letzte 8 Wochen)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Beworben"
@@ -493,6 +498,10 @@ msgstr "Beworben am"
msgid "Applied Rules"
msgstr "Angewandte Regeln"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Mit Warnungen angewendet"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Arabisch"
@@ -800,6 +809,14 @@ msgstr "Bitte prüfen Sie Ihre E-Mails auf einen Link zum Zurücksetzen Ihres Pa
msgid "Check your email for a link to verify your account."
msgstr "Bitte prüfen Sie Ihre E-Mails auf einen Link, um Ihr Konto zu verifizieren."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Überprüfung"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Entwurf prüfen"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Chinesisch (vereinfacht)"
@@ -966,6 +983,10 @@ msgstr "Konversation kopiert."
msgid "Conversation JSON copied."
msgstr "Konversations-JSON kopiert."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Konvertierter Stylesheet-Entwurf"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "In die Zwischenablage kopiert."
@@ -989,6 +1010,10 @@ msgstr "Backup-Codes kopieren"
msgid "Copy JSON"
msgstr "JSON kopieren"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Stylesheet kopieren"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Kopiere diesen geheimen Schlüssel und verwende ihn in deinen Anwendungen, um auf deine Daten zuzugreifen."
@@ -1545,6 +1570,11 @@ msgstr "{chip} bearbeiten"
msgid "Edit application"
msgstr "Bewerbung bearbeiten"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Farbe bearbeiten {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Geben Sie Ihr Passwort ein, um die Einrichtung der Zwei-Faktor-Authentif
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Geben Sie Ihr Passwort ein, um die Zwei-Faktor-Authentifizierung zu deaktivieren. Ihr Konto ist ohne 2FA weniger sicher."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Fehler"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Jeder Beitrag, ob groß oder klein, macht einen riesigen Unterschied für das Projekt.<0/>Vielen Dank für deine Unterstützung!"
@@ -1682,6 +1716,10 @@ msgstr "Jeder Beitrag, ob groß oder klein, macht einen riesigen Unterschied fü
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Alles, was du brauchst, um professionelle Lebensläufe zu erstellen, anzupassen und zu teilen. Mit Blick auf Datenschutz entwickelt, von Open Source angetrieben und für immer komplett kostenlos."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Fokusmodus beenden"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Vollbild schließen"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Seitenformat"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Format-Stylesheet"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Kostenlos"
@@ -2584,6 +2626,12 @@ msgstr "Hell"
msgid "Light theme"
msgstr "Helles Design"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Zeile {0}, Spalte {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Zeilenhöhe"
@@ -2918,6 +2966,10 @@ msgstr "Norwegisch"
msgid "Not connected"
msgstr "Nicht verbunden"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Offener KI-Assistent"
msgid "Open Email Client"
msgstr "E-Mail-Programm öffnen"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Offener Fokusmodus"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Im Builder öffnen"
@@ -2992,6 +3048,7 @@ msgstr "OpenAI-kompatibel"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Drücken Sie <0>Enter</0> zum Öffnen"
msgid "Preview"
msgstr "Vorschau"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Vorschau und Export verwenden die letzte gültige Version."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primärfarbe"
@@ -3374,10 +3435,22 @@ msgstr "Reaktiver Lebenslauf v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktiver Lebenslauf v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Wird gelesen…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Bereit zur Aktivierung"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Bereit zur Aktivierung mit Warnungen"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Empfänger"
@@ -3394,6 +3467,10 @@ msgstr "Rechteck (volle Breite)"
msgid "Redo"
msgstr "Wiederholen"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Stylesheet-Bearbeitung wiederholen"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Passwort zurücksetzen"
msgid "Reset Style"
msgstr "Stil zurücksetzen"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Auf angewendetes Stylesheet zurücksetzen"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Setzen Sie Ihr Passwort zurück"
@@ -3791,6 +3872,14 @@ msgstr "ausgewählt"
msgid "Self-Host with Docker"
msgstr "Selbst hosten mit Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Semantisches CSS-Stylesheet"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Semantische Stile bleiben aktiv"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Nachricht senden"
@@ -4152,6 +4241,14 @@ msgstr "Durchgestrichen"
msgid "Strong fit"
msgstr "Starke Passung"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Stylesheet-Editor"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Das Stylesheet enthält Fehler."
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "Die gesuchte Seite wurde möglicherweise verschoben oder existiert nicht
msgid "The password you entered is incorrect"
msgstr "Das eingegebene Passwort ist falsch"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Die Lebenslaufvorschau konnte nicht aktualisiert werden. Die letzte gültige Vorschau wird weiterhin angezeigt."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Der Lebenslauf, auf den Sie zugreifen möchten, ist passwortgeschützt"
@@ -4381,6 +4482,10 @@ msgstr "Dieser Eintrag wird dauerhaft gelöscht. Das kann nicht rückgängig gem
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Diese Funktion erfordert einen verbundenen KI-Anbieter. Bitte richten Sie einen in den Einstellungen ein."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Diese Instanz erlaubt derzeit keine Bearbeitung von semantischem CSS."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Dies ist ein URL-freundlicher Name für Ihren Lebenslauf."
@@ -4639,6 +4744,10 @@ msgstr "Unterstreichen"
msgid "Undo"
msgstr "Rückgängig machen"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Stylesheet-Änderung rückgängig machen"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Unbegrenzte Lebensläufe"
@@ -5013,6 +5122,10 @@ msgstr "Deine Daten werden sicher gespeichert und niemals an Dritte weitergegebe
msgid "Your latest changes could not be saved."
msgstr "Ihre letzten Änderungen konnten nicht gespeichert werden."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Ihre bisherigen Stile bleiben aktiv, bis Sie diesen Entwurf für semantisches CSS explizit aktivieren."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Ihr Passwort wurde erfolgreich zurückgesetzt. Sie können sich nun mit Ihrem neuen Passwort anmelden."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: el\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Μενού λογαριασμού"
msgid "Actions"
msgstr "Ενέργειες"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Ενεργοποίηση Σημασιολογικού CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Πραγματικό μέγεθος (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Αιτήσεις που στάλθηκαν ανά εβδομάδα (τελευταίες 8 εβδομάδες)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Υποβλήθηκε"
@@ -493,6 +498,10 @@ msgstr "Ημερομηνία αίτησης"
msgid "Applied Rules"
msgstr "Εφαρμοσμένοι κανόνες"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Εφαρμόζεται με προειδοποιήσεις"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Αραβικά"
@@ -800,6 +809,14 @@ msgstr "Ελέγξτε το email σας για έναν σύνδεσμο επα
msgid "Check your email for a link to verify your account."
msgstr "Ελέγξτε το email σας για έναν σύνδεσμο επαλήθευσης του λογαριασμού σας."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Ελεγχος"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Έλεγχος προσχεδίου"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Κινέζικα (Απλοποιημένα)"
@@ -966,6 +983,10 @@ msgstr "Η συνομιλία αντιγράφηκε."
msgid "Conversation JSON copied."
msgstr "Το JSON συνομιλίας αντιγράφηκε."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Μετατρεπόμενο προσχέδιο φύλλου στυλ"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Αντιγράφηκε στο πρόχειρο."
@@ -989,6 +1010,10 @@ msgstr "Αντιγραφή εφεδρικών κωδικών"
msgid "Copy JSON"
msgstr "Αντιγραφή JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Αντιγραφή φύλλου στυλ"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Αντιγράψτε αυτό το μυστικό κλειδί και χρησιμοποιήστε το στις εφαρμογές σας για να αποκτήσετε πρόσβαση στα δεδομένα σας."
@@ -1545,6 +1570,11 @@ msgstr "Επεξεργασία {chip}"
msgid "Edit application"
msgstr "Επεξεργασία αίτησης"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Επεξεργασία χρώματος {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Εισαγάγετε τον κωδικό πρόσβασής σας γι
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Εισαγάγετε τον κωδικό πρόσβασής σας για να απενεργοποιήσετε τον έλεγχο ταυτότητας δύο παραγόντων. Ο λογαριασμός σας θα είναι λιγότερο ασφαλής χωρίς ενεργοποιημένο 2FA."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Σφάλμα"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Κάθε συνεισφορά, μικρή ή μεγάλη, κάνει τεράστια διαφορά στο έργο.<0/>Σας ευχαριστούμε για την υποστήριξή σας!"
@@ -1682,6 +1716,10 @@ msgstr "Κάθε συνεισφορά, μικρή ή μεγάλη, κάνει τ
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Όλα όσα χρειάζεστε για να δημιουργήσετε, να προσαρμόσετε και να μοιραστείτε επαγγελματικά βιογραφικά σημειώματα. Δημιουργήθηκε με γνώμονα το απόρρητο, βασισμένο σε ανοικτό κώδικα και εντελώς δωρεάν για πάντα."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Έξοδος από τη λειτουργία εστίασης"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Έξοδος από πλήρη οθόνη"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Μορφή"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Μορφοποίηση φύλλου στυλ"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Δωρεάν"
@@ -2584,6 +2626,12 @@ msgstr "Φωτεινό"
msgid "Light theme"
msgstr "Φωτεινό θέμα"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Γραμμή {0}, στήλη {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Ύψος γραμμής"
@@ -2918,6 +2966,10 @@ msgstr "Νορβηγικά"
msgid "Not connected"
msgstr "Δεν είναι συνδεδεμένο"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Ανοιχτός βοηθός τεχνητής νοημοσύνης"
msgid "Open Email Client"
msgstr "Άνοιγμα προγράμματος email"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Άνοιγμα λειτουργίας εστίασης"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Άνοιγμα στο Builder"
@@ -2992,6 +3048,7 @@ msgstr "Συμβατό με OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Πατήστε <0>Enter</0> για να ανοίξετε"
msgid "Preview"
msgstr "Πρεμιέρα"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Η προεπισκόπηση και η εξαγωγή χρησιμοποιούν την τελευταία έγκυρη έκδοση."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Βασικό χρώμα"
@@ -3374,10 +3435,22 @@ msgstr "Αντιδραστικό βιογραφικό v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Αντιδραστικό βιογραφικό σημείωμα v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Ανάγνωση…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Έτοιμο για ενεργοποίηση"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Έτοιμο για ενεργοποίηση με προειδοποιήσεις"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Παραλήπτης"
@@ -3394,6 +3467,10 @@ msgstr "Ορθογώνιο (πλήρους πλάτους)"
msgid "Redo"
msgstr "Ξανακάνω"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Επανάληψη επεξεργασίας φύλλου στυλ"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Επαναφορά κωδικού πρόσβασης"
msgid "Reset Style"
msgstr "Επαναφορά στυλ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Επαναφορά στο εφαρμοσμένο φύλλο στυλ"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Επαναφορά κωδικού πρόσβασης"
@@ -3791,6 +3872,14 @@ msgstr "επιλεγμένο"
msgid "Self-Host with Docker"
msgstr "Αυτο-φιλοξενία με Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Φύλλο στυλ σημασιολογικού CSS"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Τα σημασιολογικά στυλ παραμένουν ενεργά"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Αποστολή μηνύματος"
@@ -4152,6 +4241,14 @@ msgstr "Διακριτική διαγραφή"
msgid "Strong fit"
msgstr "Ισχυρή καταλληλότητα"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Επεξεργαστής φύλλου στυλ"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Το φύλλο στυλ έχει σφάλματα"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "Η σελίδα που αναζητάτε ενδέχεται να έχε
msgid "The password you entered is incorrect"
msgstr "Ο κωδικός πρόσβασης που εισάγατε είναι λανθασμένος"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Δεν ήταν δυνατή η ενημέρωση της προεπισκόπησης βιογραφικού σημειώματος. Η τελευταία έγκυρη προεπισκόπηση εξακολουθεί να εμφανίζεται."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Το βιογραφικό σημείωμα στο οποίο προσπαθείτε να αποκτήσετε πρόσβαση προστατεύεται με κωδικό πρόσβασης"
@@ -4381,6 +4482,10 @@ msgstr "Αυτή η καταχώριση θα διαγραφεί οριστικ
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Αυτή η λειτουργία απαιτεί έναν συνδεδεμένο πάροχο τεχνητής νοημοσύνης. Ορίστε έναν στις ρυθμίσεις."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Αυτή η παρουσία δεν επιτρέπει προς το παρόν την επεξεργασία σημασιολογικού CSS."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Αυτό είναι ένα φιλικό προς το URL όνομα για το βιογραφικό σας σημείωμα."
@@ -4639,6 +4744,10 @@ msgstr "Υπογράμμιση"
msgid "Undo"
msgstr "Ξεκάνω"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Αναίρεση επεξεργασίας φύλλου στυλ"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Απεριόριστα βιογραφικά σημειώματα"
@@ -5013,6 +5122,10 @@ msgstr "Τα δεδομένα σας αποθηκεύονται με ασφάλ
msgid "Your latest changes could not be saved."
msgstr "Δεν ήταν δυνατή η αποθήκευση των τελευταίων αλλαγών σας."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Τα παλαιότερα στυλ σας παραμένουν ενεργά μέχρι να ενεργοποιήσετε ρητά αυτό το προσχέδιο Semantic CSS."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Ο κωδικός πρόσβασής σας επαναφέρθηκε με επιτυχία. Τώρα μπορείτε να συνδεθείτε με τον νέο σας κωδικό πρόσβασης."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: en_GB\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: English, United Kingdom\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Account menu"
msgid "Actions"
msgstr "Actions"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Activate Semantic CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Actual size (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Applications sent per week (last 8 weeks)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Applied"
@@ -493,6 +498,10 @@ msgstr "Applied on"
msgid "Applied Rules"
msgstr "Applied Rules"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Applied with warnings"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Arabic"
@@ -800,6 +809,14 @@ msgstr "Check your email for a link to reset your password."
msgid "Check your email for a link to verify your account."
msgstr "Check your email for a link to verify your account."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Checking"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Checking draft"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Chinese (Simplified)"
@@ -966,6 +983,10 @@ msgstr "Conversation copied."
msgid "Conversation JSON copied."
msgstr "Conversation JSON copied."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Converted stylesheet draft"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Copied to clipboard."
@@ -989,6 +1010,10 @@ msgstr "Copy Backup Codes"
msgid "Copy JSON"
msgstr "Copy JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Copy stylesheet"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Copy this secret key and use it in your applications to access your data."
@@ -1545,6 +1570,11 @@ msgstr "Edit {chip}"
msgid "Edit application"
msgstr "Edit application"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Edit color {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Enter your password to confirm setting up two-factor authentication. Whe
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Error"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
@@ -1682,6 +1716,10 @@ msgstr "Every contribution, big or small, makes a huge difference to the project
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Everything you need to create, customise, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Exit focus mode"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Exit fullscreen"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Format stylesheet"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Free"
@@ -2584,6 +2626,12 @@ msgstr "Light"
msgid "Light theme"
msgstr "Light theme"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Line {0}, column {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Line Height"
@@ -2918,6 +2966,10 @@ msgstr "Norwegian"
msgid "Not connected"
msgstr "Not connected"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Open AI assistant"
msgid "Open Email Client"
msgstr "Open Email Client"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Open focus mode"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Open in builder"
@@ -2992,6 +3048,7 @@ msgstr "OpenAI-compatible"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Press <0>Enter</0> to open"
msgid "Preview"
msgstr "Preview"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Preview and export use the last valid version."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primary Colour"
@@ -3374,10 +3435,22 @@ msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Reading…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Ready to activate"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Ready to activate with warnings"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Recipient"
@@ -3394,6 +3467,10 @@ msgstr "Rectangle (Full Width)"
msgid "Redo"
msgstr "Redo"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Redo stylesheet edit"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Reset Password"
msgid "Reset Style"
msgstr "Reset Style"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Reset to applied stylesheet"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Reset your password"
@@ -3791,6 +3872,14 @@ msgstr "selected"
msgid "Self-Host with Docker"
msgstr "Self-Host with Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Semantic CSS stylesheet"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Semantic styles remain active"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Send message"
@@ -4152,6 +4241,14 @@ msgstr "Strike"
msgid "Strong fit"
msgstr "Strong fit"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Stylesheet editor"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Stylesheet has errors"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "The page you're looking for may have been moved or no longer exists."
msgid "The password you entered is incorrect"
msgstr "The password you entered is incorrect"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "The resume preview could not be updated. The last valid preview is still shown."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "The resume you are trying to access is password protected"
@@ -4381,6 +4482,10 @@ msgstr "This entry will be permanently deleted. This can't be undone."
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "This feature requires a connected AI provider. Please set one up in the settings."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "This instance does not currently allow Semantic CSS editing."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "This is a URL-friendly name for your resume."
@@ -4639,6 +4744,10 @@ msgstr "Underline"
msgid "Undo"
msgstr "Undo"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Undo stylesheet edit"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Unlimited Resumes"
@@ -5013,6 +5122,10 @@ msgstr "Your data is stored securely and is never shared with third parties. You
msgid "Your latest changes could not be saved."
msgstr "Your latest changes could not be saved."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Your password has been reset successfully. You can now sign in with your new password."
+113
View File
@@ -158,6 +158,10 @@ msgstr "Account menu"
msgid "Actions"
msgstr "Actions"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Activate Semantic CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Actual size (100%)"
@@ -477,6 +481,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Applications sent per week (last 8 weeks)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Applied"
@@ -488,6 +493,10 @@ msgstr "Applied on"
msgid "Applied Rules"
msgstr "Applied Rules"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Applied with warnings"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Arabic"
@@ -795,6 +804,14 @@ msgstr "Check your email for a link to reset your password."
msgid "Check your email for a link to verify your account."
msgstr "Check your email for a link to verify your account."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Checking"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Checking draft"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Chinese (Simplified)"
@@ -961,6 +978,10 @@ msgstr "Conversation copied."
msgid "Conversation JSON copied."
msgstr "Conversation JSON copied."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Converted stylesheet draft"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Copied to clipboard."
@@ -984,6 +1005,10 @@ msgstr "Copy Backup Codes"
msgid "Copy JSON"
msgstr "Copy JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Copy stylesheet"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Copy this secret key and use it in your applications to access your data."
@@ -1540,6 +1565,11 @@ msgstr "Edit {chip}"
msgid "Edit application"
msgstr "Edit application"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Edit color {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1669,6 +1699,10 @@ msgstr "Enter your password to confirm setting up two-factor authentication. Whe
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Error"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
@@ -1677,6 +1711,10 @@ msgstr "Every contribution, big or small, makes a huge difference to the project
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Exit focus mode"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Exit Fullscreen"
@@ -1996,6 +2034,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Format stylesheet"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Free"
@@ -2579,6 +2621,12 @@ msgstr "Light"
msgid "Light theme"
msgstr "Light theme"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Line {0}, column {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Line Height"
@@ -2913,6 +2961,10 @@ msgstr "Norwegian"
msgid "Not connected"
msgstr "Not connected"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Not sure what to write?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2963,6 +3015,10 @@ msgstr "Open AI assistant"
msgid "Open Email Client"
msgstr "Open Email Client"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Open focus mode"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Open in builder"
@@ -2987,6 +3043,7 @@ msgstr "OpenAI-compatible"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3262,6 +3319,10 @@ msgstr "Press <0>Enter</0> to open"
msgid "Preview"
msgstr "Preview"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Preview and export use the last valid version."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primary Color"
@@ -3369,10 +3430,22 @@ msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Read the Applying Custom Styles guide."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Reading…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Ready to activate"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Ready to activate with warnings"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Recipient"
@@ -3389,6 +3462,10 @@ msgstr "Rectangle (Full Width)"
msgid "Redo"
msgstr "Redo"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Redo stylesheet edit"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3490,6 +3567,10 @@ msgstr "Reset Password"
msgid "Reset Style"
msgstr "Reset Style"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Reset to applied stylesheet"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Reset your password"
@@ -3786,6 +3867,14 @@ msgstr "selected"
msgid "Self-Host with Docker"
msgstr "Self-Host with Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Semantic CSS stylesheet"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Semantic styles remain active"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Send message"
@@ -4147,6 +4236,14 @@ msgstr "Strike"
msgid "Strong fit"
msgstr "Strong fit"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Stylesheet editor"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Stylesheet has errors"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4303,6 +4400,10 @@ msgstr "The page you're looking for may have been moved or no longer exists."
msgid "The password you entered is incorrect"
msgstr "The password you entered is incorrect"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "The resume preview could not be updated. The last valid preview is still shown."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "The resume you are trying to access is password protected"
@@ -4376,6 +4477,10 @@ msgstr "This entry will be permanently deleted. This can't be undone."
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "This feature requires a connected AI provider. Please set one up in the settings."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "This instance does not currently allow Semantic CSS editing."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "This is a URL-friendly name for your resume."
@@ -4634,6 +4739,10 @@ msgstr "Underline"
msgid "Undo"
msgstr "Undo"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Undo stylesheet edit"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Unlimited Resumes"
@@ -5008,6 +5117,10 @@ msgstr "Your data is stored securely and is never shared with third parties. You
msgid "Your latest changes could not be saved."
msgstr "Your latest changes could not be saved."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Your password has been reset successfully. You can now sign in with your new password."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: es\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Menú de cuenta"
msgid "Actions"
msgstr "Acciones"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Activar CSS semántico"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Tamaño real (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Candidaturas enviadas por semana (últimas 8 semanas)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Enviada"
@@ -493,6 +498,10 @@ msgstr "Postulado el"
msgid "Applied Rules"
msgstr "Reglas aplicadas"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Aplicado con advertencias"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Árabe"
@@ -800,6 +809,14 @@ msgstr "Revisa tu correo electrónico para encontrar un enlace para restablecer
msgid "Check your email for a link to verify your account."
msgstr "Revisa tu correo electrónico para encontrar un enlace para verificar tu cuenta."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "De cheques"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Borrador de comprobación"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Chino (simplificado)"
@@ -966,6 +983,10 @@ msgstr "Conversación copiada."
msgid "Conversation JSON copied."
msgstr "JSON de conversación copiada."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Borrador de hoja de estilo convertido"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Copiado al portapapeles."
@@ -989,6 +1010,10 @@ msgstr "Copiar códigos de respaldo"
msgid "Copy JSON"
msgstr "Copiar JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Copiar hoja de estilo"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Copia esta clave secreta y úsala en tus aplicaciones para acceder a tus datos."
@@ -1545,6 +1570,11 @@ msgstr "Edite {chip}"
msgid "Edit application"
msgstr "Editar candidatura"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Editar color {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Introduce tu contraseña para confirmar la configuración de la autentic
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Introduce tu contraseña para deshabilitar la autenticación de doble factor. Tu cuenta será menos segura sin 2FA habilitada."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Error"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Cada contribución, grande o pequeña, marca una gran diferencia para el proyecto.<0/>¡Gracias por tu apoyo!"
@@ -1682,6 +1716,10 @@ msgstr "Cada contribución, grande o pequeña, marca una gran diferencia para el
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Todo lo que necesitas para crear, personalizar y compartir currículums profesionales. Creado con la privacidad en mente, impulsado por el código abierto y completamente gratis para siempre."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Salir del modo de enfoque"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Salir de pantalla completa"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Formato"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Hoja de estilo de formato"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Gratis"
@@ -2584,6 +2626,12 @@ msgstr "Claro"
msgid "Light theme"
msgstr "Tema claro"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Línea {0}, columna {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Altura de la línea"
@@ -2918,6 +2966,10 @@ msgstr "Noruego"
msgid "Not connected"
msgstr "No conectado"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "¿No sabes qué escribir?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Asistente de IA abierta"
msgid "Open Email Client"
msgstr "Abrir cliente de correo"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Modo de enfoque abierto"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Abrir en constructor"
@@ -2992,6 +3048,7 @@ msgstr "Compatible con OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Pulse <0>Intro</0> para abrir"
msgid "Preview"
msgstr "Avance"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "La vista previa y la exportación utilizan la última versión válida."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Color primario"
@@ -3374,10 +3435,22 @@ msgstr "Reanudación reactiva v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Currículum reactivo v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Leyendo…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Listo para activar"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Listo para activarse con advertencias"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Destinatario"
@@ -3394,6 +3467,10 @@ msgstr "Rectángulo (ancho completo)"
msgid "Redo"
msgstr "Rehacer"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Rehacer la edición de la hoja de estilos"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Restablecer contraseña"
msgid "Reset Style"
msgstr "Restablecer estilo"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Restablecer a la hoja de estilos aplicada"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Restablecer tu contraseña"
@@ -3791,6 +3872,14 @@ msgstr "seleccionado"
msgid "Self-Host with Docker"
msgstr "Auto alojamiento con Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Hoja de estilo CSS semántica"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Los estilos semánticos siguen activos"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Enviar mensaje"
@@ -4152,6 +4241,14 @@ msgstr "Tachado"
msgid "Strong fit"
msgstr "Buen encaje"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Editor de hojas de estilo"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "La hoja de estilos tiene errores."
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "Es posible que la página que buscas se haya movido o que ya no exista."
msgid "The password you entered is incorrect"
msgstr "La contraseña que introdujiste es incorrecta"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "No se pudo actualizar la vista previa del currículum. Todavía se muestra la última vista previa válida."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "El currículum al que intentas acceder está protegido con contraseña"
@@ -4381,6 +4482,10 @@ msgstr "Esta entrada se eliminará permanentemente. Esta acción no se puede des
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Esta función requiere un proveedor de IA conectado. Por favor, configure uno en los ajustes."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Actualmente, esta instancia no permite la edición de CSS semántico."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Este es un nombre compatible con URL para tu currículum."
@@ -4639,6 +4744,10 @@ msgstr "Subrayado"
msgid "Undo"
msgstr "Deshacer"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Deshacer la edición de la hoja de estilos"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Currículums ilimitados"
@@ -5013,6 +5122,10 @@ msgstr "Tus datos se almacenan de forma segura y nunca se comparten con terceros
msgid "Your latest changes could not be saved."
msgstr "No se pudieron guardar los últimos cambios."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Tus estilos heredados permanecerán activos hasta que actives explícitamente este borrador de CSS semántico."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Tu contraseña se ha restablecido correctamente. Ahora puedes iniciar sesión con tu nueva contraseña."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: fa\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Persian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "منوی حساب کاربری"
msgid "Actions"
msgstr "اقدامات"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "فعال کردن CSS معنایی"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "اندازه واقعی (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "درخواست‌های ارسال‌شده در هفته (۸ هفته گذشته)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "ارسال‌شده"
@@ -493,6 +498,10 @@ msgstr "تاریخ درخواست"
msgid "Applied Rules"
msgstr "قوانین کاربردی"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "با هشدارها اعمال می‌شود"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "عربی"
@@ -800,6 +809,14 @@ msgstr "ایمیل خود را برای لینکی جهت تنظیم مجدد گ
msgid "Check your email for a link to verify your account."
msgstr "ایمیل خود را برای لینکی جهت تأیید حسابتان بررسی کنید."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "بررسی"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "بررسی پیش‌نویس"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "چینی (ساده‌شده)"
@@ -966,6 +983,10 @@ msgstr "مکالمه کپی شد."
msgid "Conversation JSON copied."
msgstr "JSON مکالمه کپی شد."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "پیش‌نویس شیوه‌نامه تبدیل‌شده"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "در کلیپ‌بورد کپی شد."
@@ -989,6 +1010,10 @@ msgstr "کپی کردن کدهای پشتیبان"
msgid "Copy JSON"
msgstr "کپی کردن JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "کپی کردن شیوه‌نامه"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "این کلید مخفی را کپی کنید و برای دسترسی به داده‌های خود در اپلیکیشن‌هایتان از آن استفاده کنید."
@@ -1545,6 +1570,11 @@ msgstr "ویرایش {chip}"
msgid "Edit application"
msgstr "ویرایش درخواست"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "ویرایش رنگ {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "برای تأیید راه‌اندازی احراز هویت دو مر
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "برای غیرفعال کردن احراز هویت دو مرحله‌ای گذرواژهٔ خود را وارد کنید. بدون فعال بودن 2FA حساب شما امنیت کمتری خواهد داشت."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "خطا"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "هر مشارکت، چه بزرگ چه کوچک، تفاوت بزرگی در این پروژه ایجاد می‌کند.<0/>از حمایت شما سپاسگزاریم!"
@@ -1682,6 +1716,10 @@ msgstr "هر مشارکت، چه بزرگ چه کوچک، تفاوت بزرگی
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "همه‌چیزی که برای ایجاد، شخصی‌سازی و اشتراک‌گذاری رزومه‌های حرفه‌ای نیاز دارید. با تمرکز بر حریم خصوصی ساخته شده، با متن‌باز قدرت گرفته و برای همیشه کاملاً رایگان است."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "خروج از حالت فوکوس"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "خروج از حالت تمام‌صفحه"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "فرمت"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "قالب‌بندی برگه سبک"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "رایگان"
@@ -2584,6 +2626,12 @@ msgstr "روشن"
msgid "Light theme"
msgstr "تم روشن"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "خط {0}، ستون {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "فاصلهٔ بین خطوط"
@@ -2918,6 +2966,10 @@ msgstr "نروژی"
msgid "Not connected"
msgstr "متصل نیست"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "دستیار هوش مصنوعی را باز کنید"
msgid "Open Email Client"
msgstr "باز کردن کلاینت ایمیل"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "حالت فوکوس را باز کنید"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "باز کردن در سازنده"
@@ -2992,6 +3048,7 @@ msgstr "سازگار با OpenAI"
msgid "OpenRouter"
msgstr "روتر آزاد"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "برای باز کردن <0>Enter را</0> فشار دهید"
msgid "Preview"
msgstr "پیش‌نمایش"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "پیش‌نمایش و خروجی گرفتن از آخرین نسخه معتبر."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "رنگ اصلی"
@@ -3374,10 +3435,22 @@ msgstr "رزومه واکنشی نسخه<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "رزومهٔ واکنشی نسخهٔ ۴ (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "در حال خواندن…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "آماده فعال سازی"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "آماده فعال شدن با هشدارها"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "گیرنده"
@@ -3394,6 +3467,10 @@ msgstr "مستطیل (تمام‌عرض)"
msgid "Redo"
msgstr "از نو انجام دادن"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "ویرایش استایل‌شیت را دوباره انجام دهید"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "تنظیم مجدد گذرواژه"
msgid "Reset Style"
msgstr "تنظیم مجدد سبک"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "تنظیم مجدد به شیوه‌نامه اعمال شده"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "تنظیم مجدد گذرواژهٔ شما"
@@ -3791,6 +3872,14 @@ msgstr "انتخاب‌شده"
msgid "Self-Host with Docker"
msgstr "میزبانی خودکار با Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "شیوه‌نامه CSS معنایی"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "سبک‌های معنایی فعال می‌مانند"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "ارسال پیام"
@@ -4152,6 +4241,14 @@ msgstr "خط‌خورده"
msgid "Strong fit"
msgstr "تناسب قوی"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "ویرایشگر استایل‌شیت"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "استایل‌شیت خطا دارد"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "ردیت"
@@ -4308,6 +4405,10 @@ msgstr "ممکن است صفحه‌ای که به دنبال آن هستید،
msgid "The password you entered is incorrect"
msgstr "گذرواژه‌ای که وارد کرده‌اید نادرست است"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "پیش‌نمایش رزومه قابل به‌روزرسانی نیست. آخرین پیش‌نمایش معتبر هنوز نمایش داده می‌شود."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "رزومه‌ای که می‌خواهید به آن دسترسی پیدا کنید با گذرواژه محافظت شده است"
@@ -4381,6 +4482,10 @@ msgstr "این ورودی برای همیشه حذف خواهد شد. این ک
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "این ویژگی به یک ارائه‌دهنده هوش مصنوعی متصل نیاز دارد. لطفاً یکی را در تنظیمات تنظیم کنید."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "این نمونه در حال حاضر امکان ویرایش CSS معنایی را فراهم نمی‌کند."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "این یک نام مناسب برای URLِ رزومه شما است."
@@ -4639,6 +4744,10 @@ msgstr "زیرخط"
msgid "Undo"
msgstr "لغو"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "ویرایش برگه سبک را لغو کنید"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "رزومه‌های نامحدود"
@@ -5013,6 +5122,10 @@ msgstr "داده‌های شما به‌طور ایمن ذخیره شده و ه
msgid "Your latest changes could not be saved."
msgstr "آخرین تغییرات شما ذخیره نشد."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "سبک‌های قدیمی شما تا زمانی که صریحاً این پیش‌نویس CSS معنایی را فعال نکنید، فعال می‌مانند."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "گذرواژهٔ شما با موفقیت تنظیم مجدد شد. اکنون می‌توانید با گذرواژهٔ جدید خود وارد شوید."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: fi\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Finnish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Tilivalikko"
msgid "Actions"
msgstr "Toiminnot"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Aktivoi semanttinen CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Todellinen koko (100 %)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Lähetetyt hakemukset viikoittain (viimeiset 8 viikkoa)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Haettu"
@@ -493,6 +498,10 @@ msgstr "Haettu"
msgid "Applied Rules"
msgstr "Sovelletut säännöt"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Käytetty varoituksilla"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "arabia"
@@ -800,6 +809,14 @@ msgstr "Tarkista sähköpostisi linkin löytämiseksi salasanan palauttamiseksi.
msgid "Check your email for a link to verify your account."
msgstr "Tarkista sähköpostisi linkin löytämiseksi tilisi vahvistamiseksi."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Tarkistetaan"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Luonnoksen tarkistaminen"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "kiina (yksinkertaistettu)"
@@ -966,6 +983,10 @@ msgstr "Keskustelu kopioitu."
msgid "Conversation JSON copied."
msgstr "Keskustelun JSON-tiedosto kopioitu."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Muunnettu tyylitiedoston luonnos"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Kopioitu leikepöydälle."
@@ -989,6 +1010,10 @@ msgstr "Kopioi varmuuskoodit"
msgid "Copy JSON"
msgstr "Kopioi JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Kopioi tyylitiedosto"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Kopioi tämä salainen avain ja käytä sitä sovelluksissasi tietojesi käsittelyyn."
@@ -1545,6 +1570,11 @@ msgstr "Muokkaa {chip}"
msgid "Edit application"
msgstr "Muokkaa hakemusta"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Muokkaa väriä {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Syötä salasanasi vahvistaaksesi kaksivaiheisen todennuksen käyttöön
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Syötä salasanasi poistaaksesi kaksivaiheisen todennuksen käytöstä. Tilisi on vähemmän suojattu ilman 2FA:ta."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Virhe"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Jokainen panos, suuri tai pieni, vaikuttaa valtavasti projektiin.<0/>Kiitos tuestasi!"
@@ -1682,6 +1716,10 @@ msgstr "Jokainen panos, suuri tai pieni, vaikuttaa valtavasti projektiin.<0/>Kii
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Kaikki, mitä tarvitset ammattimaisen ansioluettelon luomiseen, mukauttamiseen ja jakamiseen. Rakennettu yksityisyys edellä, avoimen lähdekoodin voimin ja täysin ilmainen ikuisesti."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Poistu tarkennustilasta"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Poistu koko näytöstä"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Muoto"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Muotoile tyylitiedosto"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Ilmainen"
@@ -2584,6 +2626,12 @@ msgstr "Vaalea"
msgid "Light theme"
msgstr "Vaalea teema"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Rivi {0}, sarake {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Riviväli"
@@ -2918,6 +2966,10 @@ msgstr "norja"
msgid "Not connected"
msgstr "Ei yhdistetty"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Avoin tekoälyavustaja"
msgid "Open Email Client"
msgstr "Avaa sähköpostiohjelma"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Avoin tarkennustila"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Avaa rakentajassa"
@@ -2992,6 +3048,7 @@ msgstr "OpenAI-yhteensopiva"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Paina <0>Enter</0> avataksesi"
msgid "Preview"
msgstr "Esikatselu"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Esikatsele ja vie käyttämällä viimeisintä kelvollista versiota."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Pääväri"
@@ -3374,10 +3435,22 @@ msgstr "Reaktiivinen ansioluettelo v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktiivinen ansioluettelo v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Luetaan…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Valmis aktivoitavaksi"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Valmis aktivoitavaksi varoituksilla"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Vastaanottaja"
@@ -3394,6 +3467,10 @@ msgstr "Suorakulmio (täysi leveys)"
msgid "Redo"
msgstr "Tee uudelleen"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Tee tyylitiedoston muokkaus uudelleen"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Palauta salasana"
msgid "Reset Style"
msgstr "Palauta tyyli"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Palauta käytettyyn tyylitiedostoon"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Palauta salasanasi"
@@ -3791,6 +3872,14 @@ msgstr "valittu"
msgid "Self-Host with Docker"
msgstr "Itse-isännöinti Dockerilla"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Semanttinen CSS-tyylitiedosto"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Semanttiset tyylit pysyvät aktiivisina"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Lähetä viesti"
@@ -4152,6 +4241,14 @@ msgstr "Yliviivaus"
msgid "Strong fit"
msgstr "Vahva sopivuus"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Tyylitiedostoeditori"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Tyylitiedostossa on virheitä"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "Etsimäsi sivu on ehkä siirretty tai sitä ei enää ole."
msgid "The password you entered is incorrect"
msgstr "Syöttämäsi salasana on virheellinen"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Ansioluettelon esikatselua ei voitu päivittää. Viimeisin kelvollinen esikatselu näkyy edelleen."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Ansioluettelo, johon yrität päästä, on salasanalla suojattu"
@@ -4381,6 +4482,10 @@ msgstr "Tämä merkintä poistetaan pysyvästi. Tätä ei voi kumota."
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Tämä ominaisuus vaatii yhdistetyn tekoälypalveluntarjoajan. Määritä sellainen asetuksissa."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Tämä instanssi ei tällä hetkellä salli semanttisen CSS:n muokkausta."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Tämä on URL-ystävällinen nimi ansioluettelollesi."
@@ -4639,6 +4744,10 @@ msgstr "Alleviivaus"
msgid "Undo"
msgstr "Kumoa"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Kumoa tyylitiedoston muokkaus"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Rajoittamattomasti ansioluetteloita"
@@ -5013,6 +5122,10 @@ msgstr "Tietosi tallennetaan turvallisesti eikä niitä koskaan jaeta kolmansill
msgid "Your latest changes could not be saved."
msgstr "Viimeisimpiä muutoksiasi ei voitu tallentaa."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Vanhat tyylisi pysyvät aktiivisina, kunnes aktivoit tämän semanttisen CSS-luonnoksen erikseen."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Salasanasi on palautettu onnistuneesti. Voit nyt kirjautua sisään uudella salasanallasi."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: fr\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -163,6 +163,10 @@ msgstr "Menu du compte"
msgid "Actions"
msgstr "Actes"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Activer le CSS sémantique"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Taille réelle (100 %)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Candidatures envoyées par semaine (8 dernières semaines)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Candidature envoyée"
@@ -493,6 +498,10 @@ msgstr "Postulé le"
msgid "Applied Rules"
msgstr "Règles appliquées"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Appliqué avec avertissements"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Arabe"
@@ -800,6 +809,14 @@ msgstr "Consultez votre messagerie pour obtenir un lien pour réinitialiser votr
msgid "Check your email for a link to verify your account."
msgstr "Consultez votre messagerie pour obtenir un lien pour vérifier votre compte."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Vérification"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Vérification du brouillon"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Chinois (simplifié)"
@@ -966,6 +983,10 @@ msgstr "Conversation copiée."
msgid "Conversation JSON copied."
msgstr "Conversation JSON copiée."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Brouillon de feuille de style converti"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Copié dans le presse-papiers."
@@ -989,6 +1010,10 @@ msgstr "Copier les codes de secours"
msgid "Copy JSON"
msgstr "Copier le JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Copier la feuille de style"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Copiez cette clé secrète et utilisez-la dans vos applications pour accéder à vos données."
@@ -1545,6 +1570,11 @@ msgstr "Modifier {chip}"
msgid "Edit application"
msgstr "Modifier la candidature"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Modifier la couleur {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Saisissez votre mot de passe pour confirmer la configuration de l'authen
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Saisissez votre mot de passe pour désactiver l'authentification à deux facteurs. Votre compte sera moins sécurisé si l'authentification à deux facteurs n'est pas activée."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Erreur"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Chaque contribution, petite ou grande, fait une énorme différence pour le projet.<0/>Merci pour votre soutien !"
@@ -1682,6 +1716,10 @@ msgstr "Chaque contribution, petite ou grande, fait une énorme différence pour
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Tout ce dont vous avez besoin pour créer, personnaliser et partager des CV professionnels. Construit dans le respect de la vie privée, propulsé par l'open source, et entièrement gratuit pour toujours."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Quitter le mode de mise au point"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Quitter le mode plein écran"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Feuille de style de format"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Gratuit"
@@ -2584,6 +2626,12 @@ msgstr "Clair"
msgid "Light theme"
msgstr "Thème clair"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Ligne {0}, colonne {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Hauteur de ligne"
@@ -2918,6 +2966,10 @@ msgstr "Norvégien"
msgid "Not connected"
msgstr "Non connecté"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Assistant Open AI"
msgid "Open Email Client"
msgstr "Ouvrir le client de messagerie"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Mode de mise au point ouvert"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Ouvrir dans le constructeur"
@@ -2992,6 +3048,7 @@ msgstr "Compatible avec OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Appuyez sur <0>Entrée</0> pour ouvrir"
msgid "Preview"
msgstr "Aperçu"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "L'aperçu et l'exportation utilisent la dernière version valide."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Couleur principale"
@@ -3374,10 +3435,22 @@ msgstr "React Resume v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Lecture…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Prêt à activer"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Prêt à être activé avec avertissements"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Destinataire"
@@ -3394,6 +3467,10 @@ msgstr "Rectangle (pleine largeur)"
msgid "Redo"
msgstr "Refaire"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Rétablir la modification de la feuille de style"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Réinitialiser le mot de passe"
msgid "Reset Style"
msgstr "Réinitialiser le style"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Réinitialiser la feuille de style appliquée"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Réinitialisez votre mot de passe"
@@ -3791,6 +3872,14 @@ msgstr "sélectionné"
msgid "Self-Host with Docker"
msgstr "Auto-hébergement avec Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Feuille de style CSS sémantique"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Les styles sémantiques restent actifs"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Envoyer un message"
@@ -4152,6 +4241,14 @@ msgstr "Barré"
msgid "Strong fit"
msgstr "Forte adéquation"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Éditeur de feuilles de style"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "La feuille de style contient des erreurs"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "La page que vous recherchez a peut-être été déplacée ou n'existe pl
msgid "The password you entered is incorrect"
msgstr "Le mot de passe saisi est incorrect"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "L'aperçu du CV n'a pas pu être mis à jour. Le dernier aperçu valide est toujours affiché."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Le CV auquel vous essayez d'accéder est protégé par un mot de passe"
@@ -4381,6 +4482,10 @@ msgstr "Cette entrée sera supprimée définitivement. Cette action est irréver
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Cette fonctionnalité nécessite un fournisseur d'IA connecté. Veuillez en configurer un dans les paramètres."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Cette instance ne permet actuellement pas l'édition CSS sémantique."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Il s'agit d'un nom convivial pour l'URL de votre CV."
@@ -4639,6 +4744,10 @@ msgstr "Souligner"
msgid "Undo"
msgstr "Défaire"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Annuler la modification de la feuille de style"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "CVs illimités"
@@ -5013,6 +5122,10 @@ msgstr "Vos données sont stockées en toute sécurité et ne sont jamais partag
msgid "Your latest changes could not be saved."
msgstr "Vos dernières modifications n'ont pas pu être enregistrées."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Vos styles hérités restent actifs jusqu'à ce que vous activiez explicitement ce brouillon CSS sémantique."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Votre mot de passe a été réinitialisé avec succès. Vous pouvez maintenant vous connecter avec votre nouveau mot de passe."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: he\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n"
@@ -163,6 +163,10 @@ msgstr "תפריט חשבון"
msgid "Actions"
msgstr "פעולות"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "הפעלת CSS סמנטי"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "גודל אמיתי (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "מועמדויות שנשלחו בשבוע (8 השבועות האחרונים)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "הוגש"
@@ -493,6 +498,10 @@ msgstr "הוגש בתאריך"
msgid "Applied Rules"
msgstr "כללים יישומיים"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "יושם עם אזהרות"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "ערבית"
@@ -800,6 +809,14 @@ msgstr "נא לבדוק את הדוא״ל שלך לקישור לאיפוס הס
msgid "Check your email for a link to verify your account."
msgstr "נא לבדוק את הדוא״ל שלך לקישור לאימות החשבון."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "בודק"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "בודק טיוטה"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "סינית (מופשטת)"
@@ -966,6 +983,10 @@ msgstr "השיחה הועתקה."
msgid "Conversation JSON copied."
msgstr "קובץ JSON של השיחה הועתק."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "טיוטת גיליון סגנונות שהומרה"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "הועתק ללוח."
@@ -989,6 +1010,10 @@ msgstr "העתקת קודי גיבוי"
msgid "Copy JSON"
msgstr "העתקת JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "העתקת גיליון סגנונות"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "העתק את המפתח הסודי הזה והשתמש בו ביישומים שלך כדי לגשת לנתונים שלך."
@@ -1545,6 +1570,11 @@ msgstr "ערוך {chip}"
msgid "Edit application"
msgstr "ערוך מועמדות"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "עריכת צבע {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "הזן את הסיסמה שלך כדי לאשר הגדרת אימות ד
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "הזן את הסיסמה שלך כדי להשבית אימות דו־שלבי. החשבון שלך יהיה פחות מאובטח ללא אימות דו־שלבי."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "שְׁגִיאָה"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "כל תרומה, קטנה כגדולה, עושה הבדל גדול למיזם.<0/>תודה על התמיכה!"
@@ -1682,6 +1716,10 @@ msgstr "כל תרומה, קטנה כגדולה, עושה הבדל גדול למ
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "כל מה שצריך כדי ליצור, להתאים אישית ולשתף קורות חיים מקצועיים. נבנה עם דגש על פרטיות, מונע בקוד פתוח וחינמי לחלוטין לנצח."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "יציאה ממצב מיקוד"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "יציאה ממסך מלא"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "תבנית"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "עיצוב גיליון סגנונות"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "חינמי"
@@ -2584,6 +2626,12 @@ msgstr "בהירה"
msgid "Light theme"
msgstr "ערכת עיצוב בהירה"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "שורה {0}, עמודה {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "גובה שורה"
@@ -2918,6 +2966,10 @@ msgstr "נורווגית"
msgid "Not connected"
msgstr "לא מחובר"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "פתח את עוזר הבינה המלאכותית"
msgid "Open Email Client"
msgstr "פתיחת תוכנת הדוא\"ל"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "פתיחת מצב מיקוד"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "פתח בבונה"
@@ -2992,6 +3048,7 @@ msgstr "תואם ל-OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "לחץ על <0>Enter</0> כדי לפתוח"
msgid "Preview"
msgstr "תצוגה מקדימה"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "תצוגה מקדימה וייצוא משתמשים בגרסה התקינה האחרונה."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "צבע עיקרי"
@@ -3374,10 +3435,22 @@ msgstr "קורות חיים ריאקטיביים v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "קורות חיים תגובתיים גרסה 4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "קורא…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "מוכן להפעלה"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "מוכן להפעלה עם אזהרות"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "נמען"
@@ -3394,6 +3467,10 @@ msgstr "מלבן (רוחב מלא)"
msgid "Redo"
msgstr "לַעֲשׂוֹת שׁוּב"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "בצע שוב עריכת גיליון סגנונות"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "איפוס סיסמה"
msgid "Reset Style"
msgstr "איפוס סגנון"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "איפוס לגיליון הסגנונות שהוחל"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "איפוס הסיסמה שלך"
@@ -3791,6 +3872,14 @@ msgstr "נבחר"
msgid "Self-Host with Docker"
msgstr "אירוח עצמי עם Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "גיליון סגנונות CSS סמנטי"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "סגנונות סמנטיים נשארים פעילים"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "שלח הודעה"
@@ -4152,6 +4241,14 @@ msgstr "קו חוצה"
msgid "Strong fit"
msgstr "התאמה חזקה"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "עורך גיליון סגנונות"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "גיליון הסגנונות מכיל שגיאות"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "סברדיט"
@@ -4308,6 +4405,10 @@ msgstr "ייתכן שהדף שאתה מחפש הועבר או שכבר אינו
msgid "The password you entered is incorrect"
msgstr "הסיסמה שהזנת שגויה"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "לא ניתן היה לעדכן את התצוגה המקדימה של קורות החיים. התצוגה המקדימה האחרונה התקפה עדיין מוצגת."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "קורות החיים שאליהם ניסית לגשת מוגנים בסיסמה"
@@ -4381,6 +4482,10 @@ msgstr "רשומה זו תימחק לצמיתות. לא ניתן לבטל פעו
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "תכונה זו דורשת ספק בינה מלאכותית מחובר. אנא הגדר ספק כזה בהגדרות."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "מופע זה אינו מאפשר כעת עריכת CSS סמנטי."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "זהו שם ידידותי לכתובת URL עבור קורות החיים שלך."
@@ -4639,6 +4744,10 @@ msgstr "קו תחתון"
msgid "Undo"
msgstr "לְבַטֵל"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "בטל עריכת גיליון סגנונות"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "מסמכי קורות חיים ללא הגבלה"
@@ -5013,6 +5122,10 @@ msgstr "הנתונים שלך מאוחסנים בצורה מאובטחת ולע
msgid "Your latest changes could not be saved."
msgstr "לא ניתן היה לשמור את השינויים האחרונים שלך."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "סגנונות ה-Derospace שלך יישארו פעילים עד שתפעיל במפורש טיוטת CSS סמנטית זו."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "הסיסמה שלך אופסה בהצלחה. כעת אפשר להתחבר עם הסיסמה החדשה שלך."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: hi\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Hindi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "खाता मेनू"
msgid "Actions"
msgstr "कार्रवाइयाँ"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "सिमेंटिक सीएसएस को सक्रिय करें"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "वास्तविक आकार (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "प्रति सप्ताह भेजे गए आवेदन (पिछले 8 सप्ताह)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "आवेदन किया"
@@ -493,6 +498,10 @@ msgstr "आवेदन की तारीख"
msgid "Applied Rules"
msgstr "लागू नियम"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "चेतावनी सहित लागू"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "अरबी"
@@ -800,6 +809,14 @@ msgstr "अपना पासवर्ड रीसेट करने के
msgid "Check your email for a link to verify your account."
msgstr "अपना खाता सत्यापित करने के लिए लिंक के लिए अपना ईमेल जाँचें।"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "चेकिंग"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "मसौदे की जाँच"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "चीनी (सरलीकृत)"
@@ -966,6 +983,10 @@ msgstr "बातचीत कॉपी हो गई।"
msgid "Conversation JSON copied."
msgstr "वार्तालाप का JSON कॉपी हो गया।"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "रूपांतरित स्टाइलशीट ड्राफ्ट"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "क्लिपबोर्ड पर कॉपी किया गया।"
@@ -989,6 +1010,10 @@ msgstr "बैकअप कोड कॉपी करें"
msgid "Copy JSON"
msgstr "JSON कॉपी करें"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "स्टाइलशीट कॉपी करें"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "इस सीक्रेट कुंजी को कॉपी करें और अपने ऐप्लिकेशन्स में अपने डेटा तक पहुँचने के लिए इसका उपयोग करें।"
@@ -1545,6 +1570,11 @@ msgstr "संपादित करें {chip}"
msgid "Edit application"
msgstr "आवेदन संपादित करें"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "रंग संपादित करें {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "दो‑कारक प्रमाणीकरण सेटअप क
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "दो‑कारक प्रमाणीकरण अक्षम करने के लिए अपना पासवर्ड दर्ज करें। 2FA सक्षम न होने पर आपका खाता कम सुरक्षित रहेगा।"
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "गलती"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "हर योगदान, बड़ा या छोटा, प्रोजेक्ट के लिए बहुत बड़ा अंतर लाता है।<0/>आपके समर्थन के लिए धन्यवाद!"
@@ -1682,6 +1716,10 @@ msgstr "हर योगदान, बड़ा या छोटा, प्र
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "पेशेवर रेज़्यूमे बनाने, अनुकूलित करने और साझा करने के लिए आपको जो कुछ भी चाहिए। गोपनीयता को ध्यान में रखकर बनाया गया, ओपन‑सोर्स द्वारा संचालित और हमेशा के लिए पूरी तरह मुफ़्त।"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "फोकस मोड से बाहर निकलें"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "पूर्ण स्क्रीन से बाहर निकलें"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "फॉर्मेट"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "प्रारूप शैलीपत्र"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "मुफ़्त"
@@ -2584,6 +2626,12 @@ msgstr "हल्का रंग"
msgid "Light theme"
msgstr "लाइट थीम"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "पंक्ति {0}, स्तंभ {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "पंक्ति ऊँचाई"
@@ -2918,6 +2966,10 @@ msgstr "नॉर्वेजियन"
msgid "Not connected"
msgstr "जुड़े नहीं हैं"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "ओपन एआई सहायक"
msgid "Open Email Client"
msgstr "ईमेल क्लाइंट खोलें"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "ओपन फोकस मोड"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "बिल्डर में खोलें"
@@ -2992,6 +3048,7 @@ msgstr "ओपनएआई-संगत"
msgid "OpenRouter"
msgstr "ओपनराउटर"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "खोलने के लिए <0>Enter</0> दबाएँ"
msgid "Preview"
msgstr "पूर्व दर्शन"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "पूर्वावलोकन और निर्यात के लिए अंतिम मान्य संस्करण का उपयोग करें।"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "प्राथमिक रंग"
@@ -3374,10 +3435,22 @@ msgstr "रिएक्टिव रिज्यूम v<0>{__APP_VERSION__}</0>
msgid "Reactive Resume v4 (JSON)"
msgstr "प्रतिक्रियाशील रिज़्यूमे v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "पढ़ा जा रहा है…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "सक्रिय करने के लिए तैयार"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "चेतावनी सहित सक्रिय करने के लिए तैयार"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "प्राप्तकर्ता"
@@ -3394,6 +3467,10 @@ msgstr "आयत (पूर्ण चौड़ाई)"
msgid "Redo"
msgstr "फिर से करना"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "स्टाइलशीट संपादन को पुनः करें"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "पासवर्ड रीसेट करें"
msgid "Reset Style"
msgstr "शैली रीसेट करें"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "लागू स्टाइलशीट पर रीसेट करें"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "अपना पासवर्ड रीसेट करें"
@@ -3791,6 +3872,14 @@ msgstr "चुना गया"
msgid "Self-Host with Docker"
msgstr "डॉकर के साथ स्व‑मेज़बान"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "सिमेंटिक सीएसएस स्टाइलशीट"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "सिमेंटिक शैलियाँ सक्रिय रहती हैं"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "मेसेज भेजें"
@@ -4152,6 +4241,14 @@ msgstr "स्ट्राइक"
msgid "Strong fit"
msgstr "मजबूत उपयुक्तता"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "स्टाइलशीट संपादक"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "स्टाइलशीट में त्रुटियाँ हैं"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "सबरेडिट"
@@ -4308,6 +4405,10 @@ msgstr "आप जिस पेज को ढूंढ रहे हैं, व
msgid "The password you entered is incorrect"
msgstr "आपके द्वारा दर्ज किया गया पासवर्ड गलत है"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "रिज्यूमे का पूर्वावलोकन अपडेट नहीं हो सका। पिछला वैध पूर्वावलोकन अभी भी प्रदर्शित हो रहा है।"
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "जिस रेज़्यूमे तक आप पहुँचने की कोशिश कर रहे हैं वह पासवर्ड से सुरक्षित है"
@@ -4381,6 +4482,10 @@ msgstr "यह प्रविष्टि स्थायी रूप से
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "इस फ़ीचर के लिए एक कनेक्टेड एआई प्रदाता की आवश्यकता है। कृपया सेटिंग्स में जाकर इसे सेट अप करें।"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "यह इंस्टेंस फिलहाल सिमेंटिक सीएसएस संपादन की अनुमति नहीं देता है।"
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "यह आपके रेज़्यूमे के लिए एक URL‑फ्रेंडली नाम है।"
@@ -4639,6 +4744,10 @@ msgstr "रेखांकित"
msgid "Undo"
msgstr "पूर्ववत"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "स्टाइलशीट संपादन को पूर्ववत करें"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "असीमित रेज़्यूमे"
@@ -5013,6 +5122,10 @@ msgstr "आपका डेटा सुरक्षित रूप से स
msgid "Your latest changes could not be saved."
msgstr "आपके नवीनतम परिवर्तन सहेजे नहीं जा सके।"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "जब तक आप इस सिमेंटिक सीएसएस ड्राफ्ट को स्पष्ट रूप से सक्रिय नहीं करते, तब तक आपकी पुरानी शैलियाँ सक्रिय रहेंगी।"
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "आपका पासवर्ड सफलतापूर्वक रीसेट कर दिया गया है। अब आप अपने नए पासवर्ड से साइन इन कर सकते हैं।"
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: hu\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Hungarian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Fiók menü"
msgid "Actions"
msgstr "Műveletek"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Szemantikus CSS aktiválása"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Valós méret (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Hetente elküldött jelentkezések (az elmúlt 8 hét)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Jelentkezve"
@@ -493,6 +498,10 @@ msgstr "Jelentkezés dátuma"
msgid "Applied Rules"
msgstr "Alkalmazott szabályok"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Figyelmeztetésekkel alkalmazva"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "arab"
@@ -800,6 +809,14 @@ msgstr "Ellenőrizd az e‑mailedet a jelszó visszaállításához szükséges
msgid "Check your email for a link to verify your account."
msgstr "Ellenőrizd az e‑mailedet a fiókod megerősítéséhez szükséges linkért."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Ellenőrzés"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Vázlat ellenőrzése"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "kínai (egyszerűsített)"
@@ -966,6 +983,10 @@ msgstr "Beszélgetés másolva."
msgid "Conversation JSON copied."
msgstr "A beszélgetés JSON-fájlja másolva."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Stíluslap-tervezet konvertálása"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "A vágólapra másolva."
@@ -989,6 +1010,10 @@ msgstr "Biztonsági kódok másolása"
msgid "Copy JSON"
msgstr "JSON másolása"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Stíluslap másolása"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Másold ki ezt a titkos kulcsot, és használd az alkalmazásaidban az adataid eléréséhez."
@@ -1545,6 +1570,11 @@ msgstr "Szerkesztés {chip}"
msgid "Edit application"
msgstr "Jelentkezés szerkesztése"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Szín szerkesztése {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Add meg a jelszavadat a kétlépcsős hitelesítés beállításának me
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Add meg a jelszavadat a kétlépcsős hitelesítés kikapcsolásához. A fiókod kevésbé lesz biztonságos 2FA nélkül."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Hiba"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Minden hozzájárulás – legyen kicsi vagy nagy – hatalmas különbséget jelent a projekt számára.<0/>Köszönjük a támogatásodat!"
@@ -1682,6 +1716,10 @@ msgstr "Minden hozzájárulás – legyen kicsi vagy nagy – hatalmas különbs
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Minden, amire szükséged van professzionális önéletrajzok létrehozásához, testreszabásához és megosztásához. Adatvédelemre tervezve, nyílt forráskóddal működve és teljesen ingyen, örökre."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Kilépés a fókuszmódból"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Kilépés a teljes képernyőből"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Formátum"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Stíluslap formázása"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Ingyenes"
@@ -2584,6 +2626,12 @@ msgstr "Világos"
msgid "Light theme"
msgstr "Világos téma"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Sor {0}, oszlop {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Sorköz"
@@ -2918,6 +2966,10 @@ msgstr "norvég"
msgid "Not connected"
msgstr "Nincs csatlakoztatva"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Nyílt AI asszisztens"
msgid "Open Email Client"
msgstr "E‑mail kliens megnyitása"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Nyitott fókusz mód"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Megnyitás a szerkesztőben"
@@ -2992,6 +3048,7 @@ msgstr "OpenAI-kompatibilis"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Nyomja meg az <0>Entert</0> a megnyitáshoz"
msgid "Preview"
msgstr "Előnézet"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Az előnézet és az exportálás a legutóbbi érvényes verziót használja."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Elsődleges szín"
@@ -3374,10 +3435,22 @@ msgstr "Reaktív önéletrajz v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktív önéletrajz v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Olvasás…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Aktiválásra kész"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Aktiválásra kész, figyelmeztetésekkel"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Címzett"
@@ -3394,6 +3467,10 @@ msgstr "Téglalap (teljes szélesség)"
msgid "Redo"
msgstr "Újra"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Stíluslap szerkesztésének megismétlése"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Jelszó visszaállítása"
msgid "Reset Style"
msgstr "Stílus visszaállítása"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Visszaállítás az alkalmazott stíluslapra"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Jelszó visszaállítása"
@@ -3791,6 +3872,14 @@ msgstr "kijelölve"
msgid "Self-Host with Docker"
msgstr "Önálló hosztolás Dockerrel"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Szemantikus CSS stíluslap"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "A szemantikai stílusok továbbra is aktívak"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Üzenet küldése"
@@ -4152,6 +4241,14 @@ msgstr "Áthúzás"
msgid "Strong fit"
msgstr "Erős illeszkedés"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Stíluslap-szerkesztő"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "A stíluslap hibákat tartalmaz"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "Lehetséges, hogy a keresett oldal áthelyeződött, vagy már nem léte
msgid "The password you entered is incorrect"
msgstr "A megadott jelszó helytelen"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Az önéletrajz előnézetét nem sikerült frissíteni. Az utolsó érvényes előnézet továbbra is látható."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "A megnyitni kívánt önéletrajz jelszóval védett"
@@ -4381,6 +4482,10 @@ msgstr "Ez a bejegyzés véglegesen törlődik. Ezt nem lehet visszavonni."
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Ehhez a funkcióhoz csatlakoztatott MI-szolgáltató szükséges. Kérjük, állítson be egyet a beállításokban."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Ez a példány jelenleg nem engedélyezi a szemantikus CSS szerkesztést."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Ez az önéletrajzod URL‑barát neve."
@@ -4639,6 +4744,10 @@ msgstr "Aláhúzás"
msgid "Undo"
msgstr "Visszavonás"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Stíluslap szerkesztésének visszavonása"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Korlátlan önéletrajz"
@@ -5013,6 +5122,10 @@ msgstr "Az adataid biztonságosan tároljuk, és soha nem osztjuk meg harmadik f
msgid "Your latest changes could not be saved."
msgstr "A legutóbbi módosításokat nem sikerült menteni."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "A korábbi stílusok aktívak maradnak, amíg explicit módon nem aktiválja ezt a szemantikus CSS-tervezetet."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "A jelszavadat sikeresen visszaállítottuk. Mostantól az új jelszóval jelentkezhetsz be."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: id\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -163,6 +163,10 @@ msgstr "Menu Akun"
msgid "Actions"
msgstr "Tindakan"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Aktifkan CSS Semantik"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Ukuran sebenarnya (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Lamaran dikirim per minggu (8 minggu terakhir)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Dilamar"
@@ -493,6 +498,10 @@ msgstr "Dilamar pada"
msgid "Applied Rules"
msgstr "Aturan yang Diterapkan"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Diterapkan dengan peringatan"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Arab"
@@ -800,6 +809,14 @@ msgstr "Periksa email Anda untuk tautan mengatur ulang kata sandi."
msgid "Check your email for a link to verify your account."
msgstr "Periksa email Anda untuk tautan memverifikasi akun Anda."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Memeriksa"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Memeriksa draf"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Cina (Sederhana)"
@@ -966,6 +983,10 @@ msgstr "Percakapan disalin."
msgid "Conversation JSON copied."
msgstr "JSON percakapan telah disalin."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Draf stylesheet yang telah dikonversi"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Disalin ke papan klip."
@@ -989,6 +1010,10 @@ msgstr "Salin Kode Cadangan"
msgid "Copy JSON"
msgstr "Salin JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Salin stylesheet"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Salin kunci rahasia ini dan gunakan di aplikasi Anda untuk mengakses data Anda."
@@ -1545,6 +1570,11 @@ msgstr "Sunting {chip}"
msgid "Edit application"
msgstr "Edit lamaran"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Edit warna {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Masukkan kata sandi Anda untuk mengonfirmasi penyiapan autentikasi dua f
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Masukkan kata sandi Anda untuk menonaktifkan autentikasi dua faktor. Akun Anda akan menjadi kurang aman tanpa 2FA diaktifkan."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Kesalahan"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Setiap kontribusi, besar atau kecil, membuat perbedaan besar bagi proyek ini.<0/>Terima kasih atas dukungan Anda!"
@@ -1682,6 +1716,10 @@ msgstr "Setiap kontribusi, besar atau kecil, membuat perbedaan besar bagi proyek
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Segala yang Anda butuhkan untuk membuat, menyesuaikan, dan membagikan resume profesional. Dibangun dengan mengutamakan privasi, didukung oleh sumber terbuka, dan sepenuhnya gratis selamanya."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Keluar dari mode fokus"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Keluar dari Layar Penuh"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Format stylesheet"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Gratis"
@@ -2584,6 +2626,12 @@ msgstr "Terang"
msgid "Light theme"
msgstr "Tema terang"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Baris {0}, kolom {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Tinggi Baris"
@@ -2918,6 +2966,10 @@ msgstr "Norwegia"
msgid "Not connected"
msgstr "Tidak terhubung"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Asisten AI terbuka"
msgid "Open Email Client"
msgstr "Buka Klien Email"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Mode fokus terbuka"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Buka di pembangun"
@@ -2992,6 +3048,7 @@ msgstr "Kompatibel dengan OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Tekan <0>Enter</0> untuk membuka"
msgid "Preview"
msgstr "Pratinjau"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Pratinjau dan ekspor menggunakan versi valid terakhir."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Warna Utama"
@@ -3374,10 +3435,22 @@ msgstr "Reaktif Lanjutkan v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Lanjutkan Reaktif v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Membaca…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Siap diaktifkan"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Siap diaktifkan dengan peringatan"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Penerima"
@@ -3394,6 +3467,10 @@ msgstr "Persegi Panjang (Lebar Penuh)"
msgid "Redo"
msgstr "Mengulangi"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Ulangi pengeditan stylesheet"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Atur Ulang Kata Sandi"
msgid "Reset Style"
msgstr "Atur Ulang Gaya"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Atur ulang ke stylesheet yang diterapkan"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Atur ulang kata sandi Anda"
@@ -3791,6 +3872,14 @@ msgstr "dipilih"
msgid "Self-Host with Docker"
msgstr "Self-Host dengan Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Lembar gaya CSS semantik"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Gaya semantik tetap aktif."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Kirim pesan"
@@ -4152,6 +4241,14 @@ msgstr "Coret"
msgid "Strong fit"
msgstr "Sangat cocok"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Editor lembar gaya"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Stylesheet memiliki kesalahan"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "Halaman yang Anda cari mungkin telah dipindahkan atau sudah tidak ada la
msgid "The password you entered is incorrect"
msgstr "Kata sandi yang Anda masukkan salah"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Pratinjau resume tidak dapat diperbarui. Pratinjau valid terakhir masih ditampilkan."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Resume yang Anda coba akses dilindungi kata sandi"
@@ -4381,6 +4482,10 @@ msgstr "Entri ini akan dihapus secara permanen. Ini tidak dapat dibatalkan."
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Fitur ini memerlukan penyedia AI yang terhubung. Silakan atur di pengaturan."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Instansi ini saat ini tidak mengizinkan pengeditan CSS Semantik."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Ini adalah nama yang ramah URL untuk resume Anda."
@@ -4639,6 +4744,10 @@ msgstr "Garis Bawah"
msgid "Undo"
msgstr "Membuka"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Batalkan pengeditan stylesheet"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Resume Tak Terbatas"
@@ -5013,6 +5122,10 @@ msgstr "Data Anda disimpan dengan aman dan tidak pernah dibagikan dengan pihak k
msgid "Your latest changes could not be saved."
msgstr "Perubahan terbaru Anda tidak dapat disimpan."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Gaya lama Anda tetap aktif hingga Anda secara eksplisit mengaktifkan draf CSS Semantik ini."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Kata sandi Anda telah berhasil diatur ulang. Anda sekarang dapat masuk dengan kata sandi baru Anda."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: it\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Menu dell'account"
msgid "Actions"
msgstr "Azioni"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Attiva il CSS semantico"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Dimensioni reali (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Candidature inviate a settimana (ultime 8 settimane)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Candidatura inviata"
@@ -493,6 +498,10 @@ msgstr "Candidatura inviata il"
msgid "Applied Rules"
msgstr "Regole applicate"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Applicato con avvertenze"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Arabo"
@@ -800,6 +809,14 @@ msgstr "Controlla la tua email per un link per reimpostare la password."
msgid "Check your email for a link to verify your account."
msgstr "Controlla la tua email per un link per verificare il tuo account."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Controllo"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Controllo della bozza"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Cinese (semplificato)"
@@ -966,6 +983,10 @@ msgstr "Conversazione copiata."
msgid "Conversation JSON copied."
msgstr "Copia del JSON della conversazione."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Bozza del foglio di stile convertito"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Copiato negli appunti."
@@ -989,6 +1010,10 @@ msgstr "Copia codici di backup"
msgid "Copy JSON"
msgstr "Copia JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Copia foglio di stile"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Copia questa chiave segreta e usala nelle tue applicazioni per accedere ai tuoi dati."
@@ -1545,6 +1570,11 @@ msgstr "Modifica {chip}"
msgid "Edit application"
msgstr "Modifica candidatura"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Modifica colore {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Inserisci la tua password per confermare la configurazione dell'autentic
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Inserisci la tua password per disabilitare l'autenticazione a due fattori. Il tuo account sarà meno sicuro senza 2FA attiva."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Errore"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Ogni contributo, grande o piccolo, fa una grande differenza per il progetto.<0/>Grazie per il tuo supporto!"
@@ -1682,6 +1716,10 @@ msgstr "Ogni contributo, grande o piccolo, fa una grande differenza per il proge
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Tutto ciò di cui hai bisogno per creare, personalizzare e condividere curriculum professionali. Creato pensando alla privacy, alimentato dall'open source e completamente gratuito per sempre."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Esci dalla modalità di messa a fuoco"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Esci dalla modalità a schermo intero"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Formato"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Formato foglio di stile"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Gratuito"
@@ -2584,6 +2626,12 @@ msgstr "Chiaro"
msgid "Light theme"
msgstr "Tema chiaro"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Riga {0}, colonna {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Altezza linea"
@@ -2918,6 +2966,10 @@ msgstr "Norvegese"
msgid "Not connected"
msgstr "Non connesso"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Assistente Open AI"
msgid "Open Email Client"
msgstr "Apri client email"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Modalità di messa a fuoco aperta"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Apri nel generatore"
@@ -2992,6 +3048,7 @@ msgstr "Compatibile con OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Premere <0>Invio</0> per aprire"
msgid "Preview"
msgstr "Anteprima"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "L'anteprima e l'esportazione utilizzano l'ultima versione valida."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Colore primario"
@@ -3374,10 +3435,22 @@ msgstr "Ripresa reattiva v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Ripresa reattiva v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Lettura…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Pronto per l'attivazione"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Pronto per l'attivazione con avvisi"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Destinatario"
@@ -3394,6 +3467,10 @@ msgstr "Rettangolo (larghezza completa)"
msgid "Redo"
msgstr "Rifare"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Riesegui la modifica del foglio di stile"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Reimposta password"
msgid "Reset Style"
msgstr "Ripristina stile"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Ripristina il foglio di stile applicato"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Reimposta la tua password"
@@ -3791,6 +3872,14 @@ msgstr "selezionati"
msgid "Self-Host with Docker"
msgstr "Self-host con Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Foglio di stile CSS semantico"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Gli stili semantici rimangono attivi"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Invia messaggio"
@@ -4152,6 +4241,14 @@ msgstr "Barrato"
msgid "Strong fit"
msgstr "Ottima corrispondenza"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Editor di fogli di stile"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Il foglio di stile presenta degli errori"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "La pagina che stai cercando potrebbe essere stata spostata o non esister
msgid "The password you entered is incorrect"
msgstr "La password inserita non è corretta"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Impossibile aggiornare l'anteprima del curriculum. Viene ancora visualizzata l'ultima anteprima valida."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Il curriculum a cui stai cercando di accedere è protetto da password"
@@ -4381,6 +4482,10 @@ msgstr "Questa voce verrà eliminata definitivamente. L'azione non può essere a
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Questa funzionalità richiede un provider di intelligenza artificiale connesso. Configuralo nelle impostazioni."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Questa istanza al momento non consente la modifica del CSS semantico."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Questo è un nome adatto agli URL per il tuo curriculum."
@@ -4639,6 +4744,10 @@ msgstr "Sottolinea"
msgid "Undo"
msgstr "Disfare"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Annulla la modifica del foglio di stile"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Curriculum illimitati"
@@ -5013,6 +5122,10 @@ msgstr "I tuoi dati sono archiviati in modo sicuro e non vengono mai condivisi c
msgid "Your latest changes could not be saved."
msgstr "Impossibile salvare le ultime modifiche."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "I tuoi stili legacy rimarranno attivi finché non attiverai esplicitamente questa bozza di CSS semantico."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "La tua password è stata reimpostata correttamente. Ora puoi accedere con la tua nuova password."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ja\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -163,6 +163,10 @@ msgstr "アカウントメニュー"
msgid "Actions"
msgstr "操作"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "セマンティックCSSを有効にする"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "実寸大(100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "週ごとの応募送信数(直近8週間)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "応募済み"
@@ -493,6 +498,10 @@ msgstr "応募日"
msgid "Applied Rules"
msgstr "適用中のルール"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "警告付きで適用"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "アラビア語"
@@ -800,6 +809,14 @@ msgstr "パスワードをリセットするリンクを記載したメールを
msgid "Check your email for a link to verify your account."
msgstr "アカウントを認証するリンクを記載したメールを確認してください。"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "チェック中"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "下書きの確認"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "中国語(簡体字)"
@@ -966,6 +983,10 @@ msgstr "会話内容をコピーしました。"
msgid "Conversation JSON copied."
msgstr "会話のJSONデータがコピーされました。"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "変換されたスタイルシートのドラフト"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "クリップボードにコピーしました。"
@@ -989,6 +1010,10 @@ msgstr "バックアップコードをコピー"
msgid "Copy JSON"
msgstr "JSONをコピー"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "スタイルシートをコピー"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "このシークレットキーをコピーし、アプリケーションで使用してデータにアクセスしてください。"
@@ -1545,6 +1570,11 @@ msgstr "編集 {chip}"
msgid "Edit application"
msgstr "応募を編集"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "色を編集 {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "二要素認証を設定することを確定するために、パスワ
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "二要素認証を無効にするには、パスワードを入力してください。2FA を無効化すると、アカウントのセキュリティレベルは下がります。"
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "エラー"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "すべてのご支援は、大きくても小さくても、このプロジェクトにとって大きな力になります。<0/>ご支援ありがとうございます。"
@@ -1682,6 +1716,10 @@ msgstr "すべてのご支援は、大きくても小さくても、このプロ
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "プロフェッショナルな履歴書・職務経歴書を作成・カスタマイズ・共有するために必要な機能がすべて揃っています。プライバシーを重視して設計され、オープンソースによって支えられ、そして完全に無料で利用できます。"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "フォーカスモードを終了する"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "全画面表示を終了"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "フォーマット"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "書式スタイルシート"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "無料"
@@ -2584,6 +2626,12 @@ msgstr "ライト"
msgid "Light theme"
msgstr "ライトテーマ"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "行 {0}、列 {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "行の高さ"
@@ -2918,6 +2966,10 @@ msgstr "ノルウェー語"
msgid "Not connected"
msgstr "接続されていません"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "OpenAIアシスタント"
msgid "Open Email Client"
msgstr "メールクライアントを開く"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "オープンフォーカスモード"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "ビルダーで開く"
@@ -2992,6 +3048,7 @@ msgstr "OpenAI互換"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "<0>Enter</0>キーを押して開く"
msgid "Preview"
msgstr "プレビュー"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "プレビューとエクスポートには、最新の有効なバージョンを使用してください。"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "メインカラー"
@@ -3374,10 +3435,22 @@ msgstr "リアクティブレジューム v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "読み込み中…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "起動準備完了"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "警告付きで有効化準備完了"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "宛先"
@@ -3394,6 +3467,10 @@ msgstr "長方形(全幅)"
msgid "Redo"
msgstr "やり直し"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "スタイルシートの編集をやり直す"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "パスワードをリセット"
msgid "Reset Style"
msgstr "スタイルをリセット"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "適用済みのスタイルシートにリセットします"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "パスワードをリセット"
@@ -3791,6 +3872,14 @@ msgstr "選択済み"
msgid "Self-Host with Docker"
msgstr "Docker でセルフホスト"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "セマンティックCSSスタイルシート"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "セマンティックスタイルは引き続き有効です"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "メッセージを送信"
@@ -4152,6 +4241,14 @@ msgstr "取り消し線"
msgid "Strong fit"
msgstr "高い適合度"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "スタイルシートエディタ"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "スタイルシートにエラーがあります"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "お探しのページは移動されたか、既に存在しない可能
msgid "The password you entered is incorrect"
msgstr "入力されたパスワードが正しくありません。"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "履歴書のプレビューを更新できませんでした。最後に有効だったプレビューが表示されたままです。"
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "アクセスしようとしているレジュメはパスワードで保護されています"
@@ -4381,6 +4482,10 @@ msgstr "この項目は完全に削除されます。元に戻すことはでき
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "この機能を使用するには、AIプロバイダーとの接続が必要です。設定画面でプロバイダーを設定してください。"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "このインスタンスでは現在、セマンティックCSSの編集はできません。"
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "URLに使用されるレジュメの識別名です。"
@@ -4639,6 +4744,10 @@ msgstr "下線"
msgid "Undo"
msgstr "元に戻す"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "スタイルシートの編集を元に戻す"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "レジュメを無制限に作成"
@@ -5013,6 +5122,10 @@ msgstr "あなたのデータは安全に保存され、第三者と共有され
msgid "Your latest changes could not be saved."
msgstr "最新の変更内容を保存できませんでした。"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "このセマンティックCSSドラフトを明示的に有効化するまで、既存のスタイルは有効なままです。"
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "パスワードを正常にリセットしました。新しいパスワードでサインインできます。"
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: km\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Khmer\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -163,6 +163,10 @@ msgstr "ម៉ឺនុយគណនី"
msgid "Actions"
msgstr "សកម្មភាព"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "ធ្វើឱ្យ CSS ន័យវិទ្យាសកម្ម"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "ទំហំពិត (១០០%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "ពាក្យសុំបានផ្ញើក្នុងមួយសប្តាហ៍ (៨ សប្តាហ៍ចុងក្រោយ)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "បានដាក់ពាក្យ"
@@ -493,6 +498,10 @@ msgstr "បានដាក់ពាក្យនៅ"
msgid "Applied Rules"
msgstr "ច្បាប់ដែលបានអនុវត្ត"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "អនុវត្តជាមួយការព្រមាន"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Arabic"
@@ -800,6 +809,14 @@ msgstr "ពិនិត្យ​អ៊ីមែល​របស់​អ្នក
msgid "Check your email for a link to verify your account."
msgstr "ពិនិត្យ​អ៊ីមែល​របស់​អ្នក​សម្រាប់​តំណ​មួយ ដើម្បី​ផ្ទៀងផ្ទាត់​គណនី​របស់​អ្នក។"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "កំពុងត្រួតពិនិត្យ"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "កំពុងពិនិត្យមើលសេចក្តីព្រាង"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Chinese (Simplified)"
@@ -966,6 +983,10 @@ msgstr "បានចម្លងការសន្ទនា។"
msgid "Conversation JSON copied."
msgstr "បានចម្លង JSON នៃការសន្ទនា។"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "សេចក្តីព្រាងសន្លឹករចនាប័ទ្មដែលបានបម្លែង"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "បានចម្លងទៅក្ដារតម្បៀតខ្ទាស់។"
@@ -989,6 +1010,10 @@ msgstr "ចម្លង​កូដ​បម្រុងទុក"
msgid "Copy JSON"
msgstr "ចម្លង JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "ចម្លងសន្លឹករចនាប័ទ្ម"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "ចម្លង​កូនសោ​សម្ងាត់​នេះ ហើយ​ប្រើ​វា​ក្នុង​កម្មវិធី​របស់​អ្នក ដើម្បី​ចូលដំណើរការ​ទិន្នន័យ​របស់​អ្នក។"
@@ -1545,6 +1570,11 @@ msgstr "កែសម្រួល {chip}"
msgid "Edit application"
msgstr "កែសម្រួលពាក្យសុំ"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "កែសម្រួលពណ៌ {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "បញ្ចូល​ពាក្យសម្ងាត់​របស់
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "បញ្ចូល​ពាក្យសម្ងាត់​របស់​អ្នក ដើម្បី​បិទ​ការ​ផ្ទៀងផ្ទាត់​ពីរ​ជាន់។ គណនី​របស់​អ្នក​នឹង​កាន់តែ​មាន​ហានិភ័យ​នៅពេល​មិន​បាន​បើក 2FA ទៀត។"
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "កំហុស"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "រាល់​ការរួមចំណែក មួយ​ធំនោ ឬ​តូច ក៏​មាន​ឥទ្ធិពល​យ៉ាង​ច្រើន​លើ​គម្រោង​នេះ។<0/>សូម​អរគុណ​ចំពោះ​ការគាំទ្រ​របស់​អ្នក!"
@@ -1682,6 +1716,10 @@ msgstr "រាល់​ការរួមចំណែក មួយ​ធំន
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "អ្វីៗ​ដែល​អ្នក​ត្រូវការ ដើម្បី​បង្កើត ប្ដូរ​តាមបំណង និង​ចែករំលែក​ប្រវត្តិរូប​វិជ្ជាជីវៈ។ ត្រូវ​បាន​បង្កើត​ឡើង​ដោយ​គិត​ពី​ភាព​ឯកជន ប្រើ​បច្ចេកវិទ្យា​បើក​ប្រភព ហើយ​ឥត​គិតថ្លៃ​ទាំងស្រុង ជារៀងរហូត។"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "ចេញពីរបៀបផ្តោតអារម្មណ៍"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "ចេញពីអេក្រង់ពេញ"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "ទ្រង់ទ្រាយ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "សន្លឹករចនាប័ទ្មទម្រង់"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "ឥត​គិតថ្លៃ"
@@ -2584,6 +2626,12 @@ msgstr "ភ្លឺ"
msgid "Light theme"
msgstr "ស្បែកភ្លឺ"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "ជួរ {0}, ជួរឈរ {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "កម្ពស់​បន្ទាត់"
@@ -2918,6 +2966,10 @@ msgstr "Norwegian"
msgid "Not connected"
msgstr "មិនបានភ្ជាប់"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "បើកជំនួយការ AI"
msgid "Open Email Client"
msgstr "បើក​កម្មវិធី​អ៊ីមែល"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "របៀបផ្តោតអារម្មណ៍បើកចំហ"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "បើកនៅក្នុងកម្មវិធីបង្កើត"
@@ -2992,6 +3048,7 @@ msgstr "ឆបគ្នាជាមួយ OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "ចុច <0>Enter</0> ដើម្បីបើក"
msgid "Preview"
msgstr "មើលជាមុន"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "ការមើលជាមុន និងការនាំចេញប្រើប្រាស់កំណែដែលមានសុពលភាពចុងក្រោយ។"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "ពណ៌​មូលដ្ឋាន"
@@ -3374,10 +3435,22 @@ msgstr "ប្រវត្តិរូបសង្ខេបដែលមានប
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "កំពុងអាន…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "រួចរាល់ដើម្បីធ្វើឱ្យសកម្ម"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "រួចរាល់ដើម្បីធ្វើឲ្យសកម្មជាមួយនឹងការព្រមាន"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "អ្នកទទួល"
@@ -3394,6 +3467,10 @@ msgstr "ចតុកោណ (ទទឹង​ពេញ)"
msgid "Redo"
msgstr "ធ្វើឡើងវិញ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "ធ្វើការកែសម្រួលសន្លឹករចនាប័ទ្មឡើងវិញ"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "កំណត់​ពាក្យសម្ងាត់​ឡើងវិ
msgid "Reset Style"
msgstr "កំណត់រចនាប័ទ្មឡើងវិញ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "កំណត់ឡើងវិញទៅសន្លឹករចនាប័ទ្មដែលបានអនុវត្ត"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "កំណត់​ពាក្យសម្ងាត់​របស់​អ្នក​ឡើងវិញ"
@@ -3791,6 +3872,14 @@ msgstr "បានជ្រើស"
msgid "Self-Host with Docker"
msgstr "ដំឡើង​ផ្ទាល់​ខ្លួន​ដោយ​ប្រើ Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "សន្លឹករចនាប័ទ្ម CSS ន័យវិទ្យា"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "រចនាប័ទ្មន័យវិទ្យានៅតែសកម្ម"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "ផ្ញើសារ"
@@ -4152,6 +4241,14 @@ msgstr "អក្សរ​ឆូត"
msgid "Strong fit"
msgstr "សមស្របខ្លាំង"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "កម្មវិធីនិពន្ធសន្លឹករចនាប័ទ្ម"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "សន្លឹករចនាប័ទ្មមានកំហុស"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "ទំព័រដែលអ្នកកំពុងស្វែងរក
msgid "The password you entered is incorrect"
msgstr "ពាក្យសម្ងាត់​ដែល​អ្នក​បាន​បញ្ចូល មិន​ត្រឹមត្រូវ​ទេ"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "ការមើលជាមុននៃប្រវត្តិរូបសង្ខេបមិនអាចធ្វើបច្ចុប្បន្នភាពបានទេ។ ការមើលជាមុនដែលមានសុពលភាពចុងក្រោយនៅតែត្រូវបានបង្ហាញ។"
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "ប្រវត្តិរូប ដែល​អ្នក​កំពុង​ព្យាយាម​ចូល​ដំណើរការ ត្រូវ​បាន​ការពារ​ដោយ​ពាក្យសម្ងាត់"
@@ -4381,6 +4482,10 @@ msgstr "ធាតុនេះនឹងត្រូវបានលុបជាអ
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "មុខងារនេះតម្រូវឱ្យមានអ្នកផ្តល់សេវា AI ដែលបានភ្ជាប់។ សូមដំឡើងមួយនៅក្នុងការកំណត់។"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "ឧទាហរណ៍នេះមិនអនុញ្ញាតឱ្យមានការកែសម្រួល CSS តាមន័យវិទ្យានៅពេលនេះទេ។"
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "នេះ​ជា​ឈ្មោះ​ងាយ​ស្រួល​សម្រាប់​ប្រើ​នៅ​ក្នុង URL សម្រាប់​ប្រវត្តិរូប​របស់​អ្នក។"
@@ -4639,6 +4744,10 @@ msgstr "គូស​បន្ទាត់​ក្រោម"
msgid "Undo"
msgstr "មិនធ្វើវិញ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "មិនធ្វើ​ការ​កែសម្រួល​សន្លឹក​រចនាប័ទ្ម​វិញ"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "ប្រវត្តិរូប​មិន​មាន​ដែនកំណត់"
@@ -5013,6 +5122,10 @@ msgstr "ទិន្នន័យ​របស់​អ្នក​ត្រូវ
msgid "Your latest changes could not be saved."
msgstr "មិនអាចរក្សាទុកការផ្លាស់ប្តូរចុងក្រោយបំផុតរបស់អ្នកបានទេ។"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "រចនាប័ទ្មចាស់របស់អ្នកនៅតែសកម្មរហូតដល់អ្នកធ្វើឱ្យសេចក្តីព្រាង CSS Semantic នេះសកម្មយ៉ាងច្បាស់លាស់។"
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "ពាក្យសម្ងាត់​របស់​អ្នក​ត្រូវ​បាន​កំណត់​ឡើងវិញ​ដោយ​ជោគជ័យ។ ឥឡូវ​អ្នក​អាច​ចូល​ដោយ​ប្រើ​ពាក្យសម្ងាត់​ថ្មី​របស់​អ្នកបាន​ហើយ។"
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: kn\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Kannada\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "ಖಾತೆ ಮೆನು"
msgid "Actions"
msgstr "ಕ್ರಿಯೆಗಳು"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "ಲಾಕ್ಷಣಿಕ CSS ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "ನಿಜವಾದ ಗಾತ್ರ (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "ಪ್ರತಿ ವಾರ ಕಳುಹಿಸಿದ ಅರ್ಜಿಗಳು (ಕೊನೆಯ 8 ವಾರಗಳು)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "ಅರ್ಜಿಸಲಾಗಿದೆ"
@@ -493,6 +498,10 @@ msgstr "ಅರ್ಜಿ ಸಲ್ಲಿಸಿದ ದಿನಾಂಕ"
msgid "Applied Rules"
msgstr "ಅನ್ವಯವಾಗುವ ನಿಯಮಗಳು"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "ಎಚ್ಚರಿಕೆಗಳೊಂದಿಗೆ ಅನ್ವಯಿಸಲಾಗಿದೆ"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "ಅರೇಬಿಕ್"
@@ -800,6 +809,14 @@ msgstr "ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ರೀಸೆಟ್ ಮಾ
msgid "Check your email for a link to verify your account."
msgstr "ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಪರಿಶೀಲಿಸಲು ಲಿಂಕ್‌ಗಾಗಿ ನಿಮ್ಮ ಇಮೇಲ್ ಪರಿಶೀಲಿಸಿ."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "ಡ್ರಾಫ್ಟ್ ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "ಚೈನೀಸ್ (ಸರಳೀಕೃತ)"
@@ -966,6 +983,10 @@ msgstr "ಸಂಭಾಷಣೆಯನ್ನು ನಕಲಿಸಲಾಗಿದೆ."
msgid "Conversation JSON copied."
msgstr "ಸಂಭಾಷಣೆಯನ್ನು JSON ನಕಲಿಸಲಾಗಿದೆ."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "ಪರಿವರ್ತಿಸಲಾದ ಸ್ಟೈಲ್‌ಶೀಟ್ ಡ್ರಾಫ್ಟ್"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ಗೆ ನಕಲಿಸಲಾಗಿದೆ."
@@ -989,6 +1010,10 @@ msgstr "ಬ್ಯಾಕಪ್ ಕೋಡ್‌ಗಳನ್ನು ನಕಲಿಸ
msgid "Copy JSON"
msgstr "JSON ನಕಲಿಸಿ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "ಸ್ಟೈಲ್‌ಶೀಟ್ ನಕಲಿಸಿ"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "ಈ ಸೀಕ್ರೆಟ್ ಕೀ ಅನ್ನು ನಕಲಿಸಿ ಮತ್ತು ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಪ್ರವೇಶಿಸಲು ಬಳಸಿ."
@@ -1545,6 +1570,11 @@ msgstr "{chip} ಸಂಪಾದಿಸಿ"
msgid "Edit application"
msgstr "ಅರ್ಜಿಯನ್ನು ಸಂಪಾದಿಸಿ"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "ಬಣ್ಣವನ್ನು ಸಂಪಾದಿಸಿ {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "ಎರಡು ಅಂಶಗಳ ದೃಢೀಕರಣವನ್ನು ಹೊ
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "ಎರಡು ಅಂಶಗಳ ದೃಢೀಕರಣವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನಮೂದಿಸಿ. 2FA ಸಕ್ರಿಯಗೊಳಿಸದಿದ್ದರೆ ನಿಮ್ಮ ಖಾತೆ ಕಡಿಮೆ ಸುರಕ್ಷಿತವಾಗಿರುತ್ತದೆ."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "ದೋಷ"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "ಪ್ರತಿ ಕೊಡುಗೆ, ದೊಡ್ಡದಾಗಲಿ ಸಣ್ಣದಾಗಲಿ, ಯೋಜನೆಗೆ ಮಹತ್ತರವಾದ ಬದಲಾವಣೆಯನ್ನು ತರುತ್ತದೆ.<0/>ನಿಮ್ಮ ಬೆಂಬಲಕ್ಕೆ ಧನ್ಯವಾದಗಳು!"
@@ -1682,6 +1716,10 @@ msgstr "ಪ್ರತಿ ಕೊಡುಗೆ, ದೊಡ್ಡದಾಗಲಿ ಸ
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "ವೃತ್ತಿಪರ ರೆಸ್ಯೂಮ್‌ಗಳನ್ನು ರಚಿಸಲು, ಕಸ್ಟಮೈಸ್ ಮಾಡಲು ಮತ್ತು ಹಂಚಿಕೊಳ್ಳಲು ನಿಮಗೆ ಬೇಕಾದ ಎಲ್ಲವೂ ಇಲ್ಲಿ ಇದೆ. ಗೌಪ್ಯತೆಯನ್ನು ಗಮನದಲ್ಲಿಟ್ಟುಕೊಂಡು, ಮುಕ್ತ-ಮೂಲದೊಂದಿಗೆ ನಿರ್ಮಿಸಲ್ಪಟ್ಟಿದೆ ಮತ್ತು ಸಂಪೂರ್ಣವಾಗಿ ಉಚಿತವಾಗಿದೆ."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "ಫೋಕಸ್ ಮೋಡ್‌ನಿಂದ ನಿರ್ಗಮಿಸಿ"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "ಪೂರ್ಣ ಪರದೆಯಿಂದ ನಿರ್ಗಮಿಸಿ"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "ಸ್ವರೂಪ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "ಸ್ಟೈಲ್‌ಶೀಟ್ ಅನ್ನು ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಿ"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "ಉಚಿತ"
@@ -2584,6 +2626,12 @@ msgstr "ತಿಳಿ ಬಣ್ಣ"
msgid "Light theme"
msgstr "ಲೈಟ್ ಥೀಮ್"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "ಸಾಲು {0}, ಕಾಲಮ್ {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "ಗೆರೆಯ ಎತ್ತರ"
@@ -2918,6 +2966,10 @@ msgstr "ನಾರ್ವೇಜಿಯನ್"
msgid "Not connected"
msgstr "ಸಂಪರ್ಕಗೊಂಡಿಲ್ಲ"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "AI ಸಹಾಯಕವನ್ನು ತೆರೆಯಿರಿ"
msgid "Open Email Client"
msgstr "ಇಮೇಲ್ ಕ್ಲೈಂಟ್ ತೆರೆಯಿರಿ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "ಫೋಕಸ್ ಮೋಡ್ ತೆರೆಯಿರಿ"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "ಬಿಲ್ಡರ್‌ನಲ್ಲಿ ತೆರೆಯಿರಿ"
@@ -2992,6 +3048,7 @@ msgstr "OpenAI- ಹೊಂದಾಣಿಕೆ"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "ತೆರೆಯಲು <0>Enter</0> ಒತ್ತಿರಿ"
msgid "Preview"
msgstr "ಪೂರ್ವವೀಕ್ಷಣೆ"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "ಕೊನೆಯ ಮಾನ್ಯ ಆವೃತ್ತಿಯನ್ನು ಬಳಸಿಕೊಂಡು ಪೂರ್ವವೀಕ್ಷಣೆ ಮತ್ತು ರಫ್ತು ಮಾಡಿ."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "ಪ್ರಾಥಮಿಕ ಬಣ್ಣ"
@@ -3374,10 +3435,22 @@ msgstr "ಪ್ರತಿಕ್ರಿಯಾತ್ಮಕ ಪುನರಾರಂಭ v
msgid "Reactive Resume v4 (JSON)"
msgstr "ರಿಯಾಕ್ಟಿವ್ ರೆಸ್ಯೂಮೇ v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "ಓದುತ್ತಿದೆ…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "ಸಕ್ರಿಯಗೊಳಿಸಲು ಸಿದ್ಧವಾಗಿದೆ"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "ಎಚ್ಚರಿಕೆಗಳೊಂದಿಗೆ ಸಕ್ರಿಯಗೊಳಿಸಲು ಸಿದ್ಧವಾಗಿದೆ"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "ಸ್ವೀಕೃತದಾರ"
@@ -3394,6 +3467,10 @@ msgstr "ಆಯತ (ಪೂರ್ಣ ಅಗಲ)"
msgid "Redo"
msgstr "ಮತ್ತೆಮಾಡು"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "ಸ್ಟೈಲ್‌ಶೀಟ್ ಸಂಪಾದನೆಯನ್ನು ಮತ್ತೆ ಮಾಡಿ"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಮರುಹೊಂದಿ
msgid "Reset Style"
msgstr "ಶೈಲಿಯನ್ನು ಮರುಹೊಂದಿಸಿ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "ಅನ್ವಯಿಸಲಾದ ಸ್ಟೈಲ್‌ಶೀಟ್‌ಗೆ ಮರುಹೊಂದಿಸಿ"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಮರುಹೊಂದಿಸಿ"
@@ -3791,6 +3872,14 @@ msgstr "ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ"
msgid "Self-Host with Docker"
msgstr "ಡಾಕರ್ ಜೊತೆಗೆ ಸ್ವಯಂ ಹೋಸ್ಟ್"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "ಲಾಕ್ಷಣಿಕ CSS ಶೈಲಿ ಹಾಳೆ"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "ಶಬ್ದಾರ್ಥದ ಶೈಲಿಗಳು ಸಕ್ರಿಯವಾಗಿರುತ್ತವೆ"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "ಸಂದೇಶ ಕಳುಹಿಸಿ"
@@ -4152,6 +4241,14 @@ msgstr "ಸ್ಟ್ರೈಕ್"
msgid "Strong fit"
msgstr "ಬಲವಾದ ಹೊಂದಾಣಿಕೆ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "ಸ್ಟೈಲ್‌ಶೀಟ್ ಸಂಪಾದಕ"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "ಸ್ಟೈಲ್‌ಶೀಟ್ ದೋಷಗಳನ್ನು ಹೊಂದಿದೆ."
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "ಸಬ್‌ರೆಡಿಟ್"
@@ -4308,6 +4405,10 @@ msgstr "ನೀವು ಹುಡುಕುತ್ತಿರುವ ಪುಟವು ಸ
msgid "The password you entered is incorrect"
msgstr "ನೀವು ನಮೂದಿಸಿದ ಪಾಸ್‌ವರ್ಡ್ ಸರಿಯಲ್ಲ"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "ರೆಸ್ಯೂಮ್ ಪೂರ್ವವೀಕ್ಷಣೆಯನ್ನು ನವೀಕರಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಕೊನೆಯ ಮಾನ್ಯ ಪೂರ್ವವೀಕ್ಷಣೆಯನ್ನು ಇನ್ನೂ ತೋರಿಸಲಾಗಿದೆ."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "ನೀವು ಪ್ರವೇಶಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿರುವ ರೆಸ್ಯೂಮ್ ಪಾಸ್‌ವರ್ಡ್‌ರಿಂದ ರಕ್ಷಿಸಲಾಗಿದೆ"
@@ -4381,6 +4482,10 @@ msgstr "ಈ ನಮೂದನ್ನು ಶಾಶ್ವತವಾಗಿ ಅಳಿಸ
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "ಈ ವೈಶಿಷ್ಟ್ಯಕ್ಕೆ ಸಂಪರ್ಕಿತ AI ಪೂರೈಕೆದಾರರ ಅಗತ್ಯವಿದೆ. ದಯವಿಟ್ಟು ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಒಂದನ್ನು ಹೊಂದಿಸಿ."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "ಈ ನಿದರ್ಶನವು ಪ್ರಸ್ತುತ ಲಾಕ್ಷಣಿಕ CSS ಸಂಪಾದನೆಯನ್ನು ಅನುಮತಿಸುವುದಿಲ್ಲ."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "ಇದು ನಿಮ್ಮ ರೆಸ್ಯೂಮ್‌ಗಾಗಿ URL ಗೆ ಅನುಕೂಲಕರವಾದ ಹೆಸರು."
@@ -4639,6 +4744,10 @@ msgstr "ಅಂಡರ್‌ಲೈನ್"
msgid "Undo"
msgstr "ರದ್ದುಗೊಳಿಸಿ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "ಸ್ಟೈಲ್‌ಶೀಟ್ ಸಂಪಾದನೆಯನ್ನು ರದ್ದುಗೊಳಿಸಿ"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "ಅನಿಯಮಿತ ರೆಸ್ಯೂಮ್‌ಗಳು"
@@ -5013,6 +5122,10 @@ msgstr "ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸುರಕ್ಷಿತವ
msgid "Your latest changes could not be saved."
msgstr "ನಿಮ್ಮ ಇತ್ತೀಚಿನ ಬದಲಾವಣೆಗಳನ್ನು ಉಳಿಸಲಾಗಲಿಲ್ಲ."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "ಈ ಸೆಮ್ಯಾಂಟಿಕ್ CSS ಡ್ರಾಫ್ಟ್ ಅನ್ನು ನೀವು ಸ್ಪಷ್ಟವಾಗಿ ಸಕ್ರಿಯಗೊಳಿಸುವವರೆಗೆ ನಿಮ್ಮ ಲೆಗಸಿ ಶೈಲಿಗಳು ಸಕ್ರಿಯವಾಗಿರುತ್ತವೆ."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಮರುಹೊಂದಿಸಲಾಗಿದೆ. ಈಗ ನೀವು ನಿಮ್ಮ ಹೊಸ ಪಾಸ್‌ವರ್ಡ್ ಬಳಸಿಕೊಂಡು ಸೈನ್ ಇನ್ ಮಾಡಬಹುದು."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ko\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -163,6 +163,10 @@ msgstr "계정 메뉴"
msgid "Actions"
msgstr "작업"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "시맨틱 CSS 활성화"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "실제 크기(100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "주당 보낸 지원서 (최근 8주)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "지원함"
@@ -493,6 +498,10 @@ msgstr "지원일"
msgid "Applied Rules"
msgstr "적용된 규칙"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "경고와 함께 적용됨"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "아랍어"
@@ -800,6 +809,14 @@ msgstr "비밀번호를 재설정할 수 있는 링크가 이메일로 전송되
msgid "Check your email for a link to verify your account."
msgstr "계정을 인증할 수 있는 링크가 이메일로 전송되었습니다."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "확인 중"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "초안 검토"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "중국어(간체)"
@@ -966,6 +983,10 @@ msgstr "대화 내용이 복사되었습니다."
msgid "Conversation JSON copied."
msgstr "대화 JSON이 복사되었습니다."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "변환된 스타일시트 초안"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "클립보드에 복사되었습니다."
@@ -989,6 +1010,10 @@ msgstr "백업 코드 복사"
msgid "Copy JSON"
msgstr "JSON 복사"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "스타일시트 복사"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "이 비밀 키를 복사해 애플리케이션에 붙여넣어 데이터에 액세스하세요."
@@ -1545,6 +1570,11 @@ msgstr "{chip} 수정"
msgid "Edit application"
msgstr "지원 편집"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "색상 편집 {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "2단계 인증을 설정하려면 비밀번호를 입력해 확인하세
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "2단계 인증을 비활성화하려면 비밀번호를 입력하세요. 2단계 인증을 사용하지 않으면 계정 보안이 낮아집니다."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "오류"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "크든 작든 모든 기여는 프로젝트에 큰 변화를 가져옵니다.<0/>후원해 주셔서 감사합니다!"
@@ -1682,6 +1716,10 @@ msgstr "크든 작든 모든 기여는 프로젝트에 큰 변화를 가져옵
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "전문적인 이력서를 만들고, 사용자 지정하고, 공유하는 데 필요한 모든 것을 제공합니다. 개인정보 보호를 최우선으로 설계되었으며, 오픈 소스로 구동되고, 완전히 무료입니다."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "포커스 모드 종료"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "전체 화면 종료"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "용지 형식"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "서식 스타일시트"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "무료"
@@ -2584,6 +2626,12 @@ msgstr "라이트"
msgid "Light theme"
msgstr "라이트 테마"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "행 {0}, 열 {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "줄 간격"
@@ -2918,6 +2966,10 @@ msgstr "노르웨이어"
msgid "Not connected"
msgstr "연결되지 않음"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "오픈 AI 어시스턴트"
msgid "Open Email Client"
msgstr "이메일 클라이언트 열기"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "초점 모드 열기"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "빌더에서 열기"
@@ -2992,6 +3048,7 @@ msgstr "OpenAI 호환"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "<0>Enter</0> 키를 눌러 열기"
msgid "Preview"
msgstr "시사"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "미리보기 및 내보내기 시에는 마지막으로 유효한 버전을 사용합니다."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "기본 색상"
@@ -3374,10 +3435,22 @@ msgstr "반응형 재개 v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "리액티브 이력서 v4(JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "읽는 중…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "활성화 준비 완료"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "경고 메시지와 함께 활성화할 준비가 되었습니다."
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "수신인"
@@ -3394,6 +3467,10 @@ msgstr "사각형(전체 너비)"
msgid "Redo"
msgstr "다시 하다"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "스타일시트 편집 다시 실행"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "비밀번호 재설정"
msgid "Reset Style"
msgstr "스타일 재설정"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "적용된 스타일시트로 재설정"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "비밀번호 재설정"
@@ -3791,6 +3872,14 @@ msgstr "선택됨"
msgid "Self-Host with Docker"
msgstr "Docker로 자체 호스팅"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "시맨틱 CSS 스타일시트"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "의미 스타일은 계속 활성화되어 있습니다."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "메시지 보내기"
@@ -4152,6 +4241,14 @@ msgstr "취소선"
msgid "Strong fit"
msgstr "높은 적합도"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "스타일시트 편집기"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "스타일시트에 오류가 있습니다"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "서브레딧"
@@ -4308,6 +4405,10 @@ msgstr "찾으시는 페이지가 이동되었거나 더 이상 존재하지 않
msgid "The password you entered is incorrect"
msgstr "입력하신 비밀번호가 올바르지 않습니다"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "이력서 미리보기를 업데이트할 수 없습니다. 마지막으로 유효했던 미리보기가 여전히 표시됩니다."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "접근하려는 이력서는 비밀번호로 보호되어 있습니다"
@@ -4381,6 +4482,10 @@ msgstr "이 항목은 영구적으로 삭제됩니다. 되돌릴 수 없습니
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "이 기능을 사용하려면 연결된 AI 제공업체가 필요합니다. 설정에서 AI 제공업체를 설정해 주세요."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "이 인스턴스에서는 현재 시맨틱 CSS 편집을 지원하지 않습니다."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "이것은 이력서에 사용할 URL 친화적인 이름입니다."
@@ -4639,6 +4744,10 @@ msgstr "밑줄"
msgid "Undo"
msgstr "끄르다"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "스타일시트 편집 취소"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "무제한 이력서"
@@ -5013,6 +5122,10 @@ msgstr "데이터는 안전하게 저장되며 제3자와 공유되지 않습니
msgid "Your latest changes could not be saved."
msgstr "최근 변경 내용을 저장할 수 없습니다."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "이 시맨틱 CSS 초안을 명시적으로 활성화하기 전까지는 기존 스타일이 계속 유지됩니다."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "비밀번호가 성공적으로 재설정되었습니다. 이제 새 비밀번호로 로그인할 수 있습니다."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: lt\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Lithuanian\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && (n%100>19 || n%100<11) ? 0 : (n%10>=2 && n%10<=9) && (n%100>19 || n%100<11) ? 1 : n%1!=0 ? 2: 3);\n"
@@ -163,6 +163,10 @@ msgstr "Paskyros meniu"
msgid "Actions"
msgstr "Veiksmai"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Semantinio CSS aktyvavimas"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Tikrasis dydis (100 %)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Per savaitę išsiųstos paraiškos (paskutinės 8 savaitės)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Pateikta"
@@ -493,6 +498,10 @@ msgstr "Pateikta"
msgid "Applied Rules"
msgstr "Taikomos taisyklės"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Taikoma su įspėjimais"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Arabų"
@@ -800,6 +809,14 @@ msgstr "Patikrinkite el. paštą – ten rasite nuorodą slaptažodžiui atkurti
msgid "Check your email for a link to verify your account."
msgstr "Patikrinkite el. paštą – ten rasite nuorodą paskyrai patvirtinti."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Tikrinama"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Tikrinamas juodraštis"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Kinų (supaprastinta)"
@@ -966,6 +983,10 @@ msgstr "Pokalbis nukopijuotas."
msgid "Conversation JSON copied."
msgstr "Pokalbio JSON nukopijuotas."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Konvertuotas stilių lapo juodraštis"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Nukopijuota į iškarpinę."
@@ -989,6 +1010,10 @@ msgstr "Kopijuoti atsarginius kodus"
msgid "Copy JSON"
msgstr "Kopijuoti JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Kopijuoti stiliaus lapą"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Nukopijuokite šį slaptą raktą ir naudokite jį savo programose duomenims pasiekti."
@@ -1545,6 +1570,11 @@ msgstr "Redaguoti {chip}"
msgid "Edit application"
msgstr "Redaguoti paraišką"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Redaguoti spalvą {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Įveskite slaptažodį, kad patvirtintumėte dviejų veiksnių tapatumo
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Įveskite slaptažodį, kad išjungtumėte dviejų veiksnių tapatumo patvirtinimą. Be įjungto 2FA jūsų paskyra bus mažiau saugi."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Klaida"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Kiekvienas įnašas, didelis ar mažas, daro milžinišką įtaką projektui.<0/>Ačiū už jūsų palaikymą!"
@@ -1682,6 +1716,10 @@ msgstr "Kiekvienas įnašas, didelis ar mažas, daro milžinišką įtaką proje
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Viskas, ko reikia sukurti, pritaikyti ir bendrinti profesionalius gyvenimo aprašymus. Sukurta atsižvelgiant į privatumą, paremta atviruoju kodu ir visiškai nemokama visam laikui."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Išeiti iš fokusavimo režimo"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Išeiti iš viso ekrano"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Formatas"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Formatuoti stiliaus lapą"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Nemokama"
@@ -2584,6 +2626,12 @@ msgstr "Šviesi"
msgid "Light theme"
msgstr "Šviesi tema"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Eilutė {0}, stulpelis {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Tarpueilio aukštis"
@@ -2918,6 +2966,10 @@ msgstr "Norvegų"
msgid "Not connected"
msgstr "Nesusijungta"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Atidaryti dirbtinio intelekto asistentą"
msgid "Open Email Client"
msgstr "Atidaryti el. pašto programą"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Atidaryti fokusavimo režimą"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Atidaryti kūrimo priemonėje"
@@ -2992,6 +3048,7 @@ msgstr "Suderinamas su OpenAI"
msgid "OpenRouter"
msgstr "\"OpenRouter\""
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Paspauskite <0>Enter</0>, kad atidarytumėte"
msgid "Preview"
msgstr "Peržiūra"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Peržiūrai ir eksportui naudokite paskutinę galiojančią versiją."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Pagrindinė spalva"
@@ -3374,10 +3435,22 @@ msgstr "Reaktyvus gyvenimo aprašymas v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktyvusis CV v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Skaitoma…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Paruošta aktyvuoti"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Paruošta aktyvuoti su įspėjimais"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Gavėjas"
@@ -3394,6 +3467,10 @@ msgstr "Stačiakampis (visas plotis)"
msgid "Redo"
msgstr "Pakartoti"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Grąžinti stiliaus lapo redagavimą"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Atkurti slaptažodį"
msgid "Reset Style"
msgstr "Atstatyti stilių"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Atkurti pritaikytą stiliaus lapą"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Atkurkite slaptažodį"
@@ -3791,6 +3872,14 @@ msgstr "pasirinkta"
msgid "Self-Host with Docker"
msgstr "Savarankiškas talpinimas naudojant Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Semantinis CSS stiliaus lapas"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Semantiniai stiliai išlieka aktyvūs"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Siųsti žinutę"
@@ -4152,6 +4241,14 @@ msgstr "Perbraukti"
msgid "Strong fit"
msgstr "Stiprus atitikimas"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Stilių lapų redaktorius"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Stiliaus lape yra klaidų"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreditas"
@@ -4308,6 +4405,10 @@ msgstr "Puslapis, kurio ieškote, galėjo būti perkeltas arba jo nebėra."
msgid "The password you entered is incorrect"
msgstr "Neteisingas slaptažodis"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Nepavyko atnaujinti gyvenimo aprašymo peržiūros. Vis dar rodoma paskutinė galiojanti peržiūra."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Gyvenimo aprašymas, kurį bandote atidaryti, yra apsaugotas slaptažodžiu"
@@ -4381,6 +4482,10 @@ msgstr "Šis įrašas bus visam laikui ištrintas. To negalima atšaukti."
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Šiai funkcijai reikalingas prijungtas dirbtinio intelekto teikėjas. Nustatykite jį nustatymuose."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Šiuo metu šis egzempliorius neleidžia redaguoti semantinio CSS."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Tai URL draugiškas jūsų gyvenimo aprašymo pavadinimas."
@@ -4639,6 +4744,10 @@ msgstr "Pabraukti"
msgid "Undo"
msgstr "Atšaukti"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Atšaukti stiliaus lapo redagavimą"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Neriboti gyvenimo aprašymai"
@@ -5013,6 +5122,10 @@ msgstr "Jūsų duomenys saugiai laikomi ir niekada nebendrinami su trečiosiomis
msgid "Your latest changes could not be saved."
msgstr "Nepavyko išsaugoti naujausių pakeitimų."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Jūsų seni stiliai liks aktyvūs, kol aiškiai neaktyvuosite šio semantinio CSS juodraščio."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Jūsų slaptažodis sėkmingai atstatytas. Dabar galite prisijungti naudodami naują slaptažodį."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: lv\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Latvian\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n"
@@ -163,6 +163,10 @@ msgstr "Konta izvēlne"
msgid "Actions"
msgstr "Darbības"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Aktivizēt semantisko CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Faktiskais izmērs (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Nedēļā nosūtītie pieteikumi (pēdējās 8 nedēļas)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Pieteikts"
@@ -493,6 +498,10 @@ msgstr "Pieteikts"
msgid "Applied Rules"
msgstr "Piemērotie noteikumi"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Pielietots ar brīdinājumiem"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Arābu"
@@ -800,6 +809,14 @@ msgstr "Pārbaudiet savu e-pastu, lai atrastu saiti paroles atiestatīšanai."
msgid "Check your email for a link to verify your account."
msgstr "Pārbaudiet savu e-pastu, lai atrastu saiti konta verifikācijai."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Pārbaude"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Melnraksta pārbaude"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Ķīniešu (vienkāršotā)"
@@ -966,6 +983,10 @@ msgstr "Saruna nokopēta."
msgid "Conversation JSON copied."
msgstr "Sarunas JSON fails ir nokopēts."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Konvertēts stila lapas melnraksts"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Nokopēts starpliktuvē."
@@ -989,6 +1010,10 @@ msgstr "Kopēt rezerves kodus"
msgid "Copy JSON"
msgstr "Kopēt JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Kopēt stila lapu"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Nokopējiet šo slepeno atslēgu un izmantojiet to savās lietotnēs, lai piekļūtu saviem datiem."
@@ -1545,6 +1570,11 @@ msgstr "Rediģēt {chip}"
msgid "Edit application"
msgstr "Rediģēt pieteikumu"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Rediģēt krāsu {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Ievadiet savu paroli, lai apstiprinātu divu faktoru autentifikācijas i
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Ievadiet savu paroli, lai deaktivētu divu faktoru autentifikāciju. Bez ieslēgtas 2FA jūsu konts būs mazāk drošs."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Kļūda"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Katrs ieguldījums, liels vai mazs, projektam ir milzīgi nozīmīgs.<0/>Paldies par jūsu atbalstu!"
@@ -1682,6 +1716,10 @@ msgstr "Katrs ieguldījums, liels vai mazs, projektam ir milzīgi nozīmīgs.<0/
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Viss, kas jums nepieciešams, lai izveidotu, pielāgotu un kopīgotu profesionālus CV. Veidots, domājot par privātumu, darbināms ar atvērtā pirmkoda risinājumiem un pilnīgi bez maksas uz visiem laikiem."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Iziet no fokusa režīma"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Iziet no pilnekrāna"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Formāts"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Stilu lapas formatēšana"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Bezmaksas"
@@ -2584,6 +2626,12 @@ msgstr "Gaišs"
msgid "Light theme"
msgstr "Gaišā tēma"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Rinda {0}, kolonna {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Rindu augstums"
@@ -2918,6 +2966,10 @@ msgstr "Norvēģu"
msgid "Not connected"
msgstr "Nav izveidots savienojums"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Atvērt AI palīgu"
msgid "Open Email Client"
msgstr "Atvērt e-pasta klientu"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Atvērtā fokusa režīms"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Atvērt veidotājā"
@@ -2992,6 +3048,7 @@ msgstr "OpenAI saderīgs"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Nospiediet <0>Enter</0>, lai atvērtu"
msgid "Preview"
msgstr "Priekšskatījums"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Priekšskatījumā un eksportā tiek izmantota pēdējā derīgā versija."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primārā krāsa"
@@ -3374,10 +3435,22 @@ msgstr "Reaktīvs CV v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Lasa…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Gatavs aktivizēšanai"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Gatavs aktivizēšanai ar brīdinājumiem"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Saņēmējs"
@@ -3394,6 +3467,10 @@ msgstr "Taisnstūris (pilns platums)"
msgid "Redo"
msgstr "Atkārtot"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Atkārtoti veikt stila lapas rediģēšanu"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Atiestatīt paroli"
msgid "Reset Style"
msgstr "Atiestatīt stilu"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Atiestatīt uz lietoto stila lapu"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Atiestatīt paroli"
@@ -3791,6 +3872,14 @@ msgstr "atlasīts"
msgid "Self-Host with Docker"
msgstr "Pašhostēšana ar Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Semantiskā CSS stila lapa"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Semantiskie stili paliek aktīvi"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Sūtīt ziņojumu"
@@ -4152,6 +4241,14 @@ msgstr "Pārsvītrot"
msgid "Strong fit"
msgstr "Spēcīga atbilstība"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Stilu lapu redaktors"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Stilu lapā ir kļūdas"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddits"
@@ -4308,6 +4405,10 @@ msgstr "Iespējams, ka meklētā lapa ir pārvietota vai vairs nepastāv."
msgid "The password you entered is incorrect"
msgstr "Ievadītā parole ir nepareiza"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "CV priekšskatījumu nevarēja atjaunināt. Joprojām tiek rādīts pēdējais derīgais priekšskatījums."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "CV, kam mēģināt piekļūt, ir aizsargāts ar paroli"
@@ -4381,6 +4482,10 @@ msgstr "Šis ieraksts tiks neatgriezeniski dzēsts. To nevar atsaukt."
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Šai funkcijai ir nepieciešams pievienots mākslīgā intelekta pakalpojumu sniedzējs. Lūdzu, iestatiet to iestatījumos."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Šajā instancē pašlaik nav atļauta semantiskās CSS rediģēšana."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Tas ir URL-draudzīgs nosaukums jūsu CV."
@@ -4639,6 +4744,10 @@ msgstr "Pasvītrot"
msgid "Undo"
msgstr "Atsaukt"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Atsaukt stila lapas rediģēšanu"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Neierobežoti CV"
@@ -5013,6 +5122,10 @@ msgstr "Jūsu dati tiek glabāti droši un nekad netiek kopīgoti ar trešajām
msgid "Your latest changes could not be saved."
msgstr "Jūsu jaunākās izmaiņas nevarēja saglabāt."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Jūsu mantotie stili paliek aktīvi, līdz jūs skaidri aktivizējat šo semantiskās CSS melnrakstu."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Jūsu parole ir veiksmīgi atiestatīta. Tagad varat pieteikties ar jauno paroli."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ml\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Malayalam\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "അക്കൗണ്ട് മെനു"
msgid "Actions"
msgstr "പ്രവർത്തനങ്ങൾ"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "സെമാന്റിക് CSS സജീവമാക്കുക"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "യഥാർത്ഥ വലുപ്പം (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "ആഴ്ചയിൽ അയച്ച അപേക്ഷകൾ (കഴിഞ്ഞ 8 ആഴ്ച)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "അപേക്ഷിച്ചു"
@@ -493,6 +498,10 @@ msgstr "പ്രയോഗിച്ചു"
msgid "Applied Rules"
msgstr "ബാധകമായ നിയമങ്ങൾ"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "മുന്നറിയിപ്പുകൾ ഉപയോഗിച്ച് പ്രയോഗിച്ചു"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "അറബിക്"
@@ -800,6 +809,14 @@ msgstr "നിങ്ങളുടെ പാസ്‌വേഡ് റീസെറ
msgid "Check your email for a link to verify your account."
msgstr "നിങ്ങളുടെ അക്കൗണ്ട് സ്ഥിരീകരിക്കുന്നതിന് ഒരു ലിങ്കിനായി നിങ്ങളുടെ ഇമെയിൽ പരിശോധിക്കുക."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "പരിശോധിക്കുന്നു"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "ഡ്രാഫ്റ്റ് പരിശോധിക്കുന്നു"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "ചൈനീസ് (സിംപ്ലിഫൈഡ്)"
@@ -966,6 +983,10 @@ msgstr "സംഭാഷണം പകർത്തി."
msgid "Conversation JSON copied."
msgstr "സംഭാഷണം JSON പകർത്തി."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "പരിവർത്തനം ചെയ്ത സ്റ്റൈൽഷീറ്റ് ഡ്രാഫ്റ്റ്"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തി."
@@ -989,6 +1010,10 @@ msgstr "ബാക്കപ്പ് കോഡുകൾ പകർത്തുക"
msgid "Copy JSON"
msgstr "JSON പകർത്തുക"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "സ്റ്റൈൽഷീറ്റ് പകർത്തുക"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "ഈ സീക്രട്ട് കീ പകർത്തി, നിങ്ങളുടെ ആപ്പ്ലിക്കേഷനുകളിൽ നിങ്ങൾക്കുള്ള ഡാറ്റ ആക്സ്സ് ചെയ്യുന്നതിനായി ഉപയോഗിക്കുക."
@@ -1545,6 +1570,11 @@ msgstr "തിരുത്തുക {chip}"
msgid "Edit application"
msgstr "ആപ്ലിക്കേഷൻ എഡിറ്റ് ചെയ്യുക"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "നിറം എഡിറ്റ് ചെയ്യുക {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "ടു‑ഫാക്ടർ ഓത്‌ന്റിക്കേഷൻ
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "ടു‑ഫാക്ടർ ഓത്‌ന്റിക്കേഷൻ അപ്രാപ്തമാക്കാൻ നിങ്ങളുടെ പാസ്‌വേഡ് നൽകുക. 2FA പ്രാപ്തമാക്കിയിട്ടില്ലാത്തതിനാൽ നിങ്ങളുടെ അക്കൗണ്ട് കുറച്ച് കുറവായി സുരക്ഷിതമായിവരും."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "പിശക്"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "വലുതോ ചെറുതോ ആയ ഓരോ സംഭാവനയും പ്രോജക്റ്റിന് വലിയൊരു മാറ്റം സൃഷ്‌ടിക്കുന്നു.<0/>നിങ്ങളുടെ പിന്തുണയ്ക്ക് നന്ദി!"
@@ -1682,6 +1716,10 @@ msgstr "വലുതോ ചെറുതോ ആയ ഓരോ സംഭാവന
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "പ്രൊഫഷണൽ റിസ്യൂങ്ങൾ സൃഷ്‌ടിക്കാനും ഇഷ്ടാനുസൃതമാക്കാനും പങ്കിടാനും നിങ്ങൾക്ക് വേണ്ടതെല്ലാം ഇവിടെ ലഭ്യമാണ്. സ്വകാര്യത മുൻനിർത്തി നിർമ്മിച്ചതും, ഓപ്പൺ സോഴ്‌സിനാൽ കരുത്തു ലഭിച്ചതും, പൂർണ്ണമായും സൗജന്യവുമാണ്."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "ഫോക്കസ് മോഡിൽ നിന്ന് പുറത്തുകടക്കുക"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "മുഴുവൻ സ്ക്രീനിൽ നിന്ന് പുറത്തുകടക്കുക"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "ഫോർമാറ്റ്"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "സ്റ്റൈൽഷീറ്റ് ഫോർമാറ്റ് ചെയ്യുക"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "സൗജന്യം"
@@ -2584,6 +2626,12 @@ msgstr "ലൈറ്റ്"
msgid "Light theme"
msgstr "ലൈറ്റ് തീം"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "വരി {0}, നിര {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "ലൈൻ ഹൈറ്റ്"
@@ -2918,6 +2966,10 @@ msgstr "നോർവീജിയൻ"
msgid "Not connected"
msgstr "കണക്റ്റ് ചെയ്തിട്ടില്ല"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "AI അസിസ്റ്റന്റ് തുറക്കുക"
msgid "Open Email Client"
msgstr "ഇമെയിൽ ക്ലയന്റ് ഓപ്പൺ ചെയ്യുക"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "ഫോക്കസ് മോഡ് തുറക്കുക"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "ബിൽഡറിൽ തുറക്കുക"
@@ -2992,6 +3048,7 @@ msgstr "OpenAI-ക്ക് അനുയോജ്യം"
msgid "OpenRouter"
msgstr "ഓപ്പൺ റൂട്ടർ"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "തുറക്കാൻ <0>എന്റർ</0> അമർത്തുക
msgid "Preview"
msgstr "പ്രിവ്യൂ"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "അവസാനത്തെ സാധുവായ പതിപ്പ് ഉപയോഗിച്ച് പ്രിവ്യൂ ചെയ്ത് എക്സ്പോർട്ട് ചെയ്യുക."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "പ്രൈമറി നിറം"
@@ -3374,10 +3435,22 @@ msgstr "റിയാക്ടീവ് റെസ്യൂമെ v<0>{__APP_VERSI
msgid "Reactive Resume v4 (JSON)"
msgstr "റിയാക്ടീവ് റെസ്യൂമെ v4 (ജെസൺ)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "വായിക്കുന്നു..."
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "സജീവമാക്കാൻ തയ്യാറാണ്"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "മുന്നറിയിപ്പുകൾ നൽകി സജീവമാക്കാൻ തയ്യാറാണ്"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "സ്വീകർത്താവ്"
@@ -3394,6 +3467,10 @@ msgstr "ചതുരാകൃതി (പൂർണ്ണ വീതി)"
msgid "Redo"
msgstr "വീണ്ടും ചെയ്യുക"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "സ്റ്റൈൽഷീറ്റ് എഡിറ്റ് വീണ്ടും ചെയ്യുക"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "പാസ്‌വേഡ് റീസെറ്റ് ചെയ്യു
msgid "Reset Style"
msgstr "സ്റ്റൈൽ പുനഃസജ്ജമാക്കുക"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "പ്രയോഗിച്ച സ്റ്റൈൽഷീറ്റിലേക്ക് പുനഃസജ്ജമാക്കുക"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "നിങ്ങളുടെ പാസ്‌വേഡ് റീസെറ്റ് ചെയ്യുക"
@@ -3791,6 +3872,14 @@ msgstr "തിരഞ്ഞെടുത്തു"
msgid "Self-Host with Docker"
msgstr "Docker ഉപയോഗിച്ച് സ്വയം ഹോസ്റ്റ് ചെയ്യുക"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "സെമാന്റിക് CSS സ്റ്റൈൽഷീറ്റ്"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "സെമാന്റിക് ശൈലികൾ സജീവമായി തുടരുന്നു"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "സന്ദേശം അയയ്ക്കുക"
@@ -4152,6 +4241,14 @@ msgstr "സ്ട്രൈക്ക്"
msgid "Strong fit"
msgstr "ശക്തമായ ഫിറ്റ്"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "സ്റ്റൈൽഷീറ്റ് എഡിറ്റർ"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "സ്റ്റൈൽഷീറ്റിൽ പിശകുകൾ ഉണ്ട്"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "സബ്‌റെഡിറ്റ്"
@@ -4308,6 +4405,10 @@ msgstr "നിങ്ങൾ തിരയുന്ന പേജ് നീക്ക
msgid "The password you entered is incorrect"
msgstr "നിങ്ങൾ നൽകിയ പാസ്‌വേഡ് തെറ്റാണ്"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "റെസ്യൂമെ പ്രിവ്യൂ അപ്ഡേറ്റ് ചെയ്യാൻ കഴിഞ്ഞില്ല. അവസാനത്തെ സാധുവായ പ്രിവ്യൂ ഇപ്പോഴും കാണിച്ചിരിക്കുന്നു."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "നിങ്ങൾ ആക്സസ് ചെയ്യാൻ ശ്രമിക്കുന്ന റിസ്യൂം പാസ്‌വേഡ് സംരക്ഷിതമാണ്"
@@ -4381,6 +4482,10 @@ msgstr "ഈ എൻട്രി ശാശ്വതമായി ഇല്ലാത
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "ഈ ഫീച്ചറിന് കണക്റ്റുചെയ്‌ത ഒരു AI ദാതാവ് ആവശ്യമാണ്. ക്രമീകരണങ്ങളിൽ ഒന്ന് സജ്ജീകരിക്കുക."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "ഈ സന്ദർഭം നിലവിൽ സെമാന്റിക് CSS എഡിറ്റിംഗ് അനുവദിക്കുന്നില്ല."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "ഇത് നിങ്ങളുടെ റിസ്യൂമിനുള്ള URL‑സൗഹൃദമായ ഒരു പേരാണ്."
@@ -4639,6 +4744,10 @@ msgstr "അണ്ടർലൈൻ"
msgid "Undo"
msgstr "പഴയപടിയാക്കുക"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "സ്റ്റൈൽഷീറ്റ് എഡിറ്റ് പഴയപടിയാക്കുക"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "പരിമിതിയില്ലാത്ത റിസ്യൂങ്ങൾ"
@@ -5013,6 +5122,10 @@ msgstr "നിങ്ങളുടെ ഡാറ്റ സുരക്ഷിതമ
msgid "Your latest changes could not be saved."
msgstr "നിങ്ങളുടെ ഏറ്റവും പുതിയ മാറ്റങ്ങൾ സംരക്ഷിക്കാൻ കഴിഞ്ഞില്ല."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "ഈ സെമാന്റിക് CSS ഡ്രാഫ്റ്റ് വ്യക്തമായി സജീവമാക്കുന്നതുവരെ നിങ്ങളുടെ ലെഗസി സ്റ്റൈലുകൾ സജീവമായി തുടരും."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "നിങ്ങളുടെ പാസ്‌വേഡ് വിജയകരമായി റീസെറ്റ് ചെയ്തിട്ടുണ്ട്. ഇനി നിങ്ങൾക്ക് പുതിയ പാസ്‌വേഡ് ഉപയോഗിച്ച് സൈൻ ഇൻ ചെയ്യാം."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: mr\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Marathi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "खाते मेनू"
msgid "Actions"
msgstr "कृती"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "सिमँटिक CSS सक्रिय करा"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "वास्तविक आकार (१००%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "दर आठवड्याला पाठवलेले अर्ज (मागील 8 आठवडे)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "अर्ज केला"
@@ -493,6 +498,10 @@ msgstr "वर अर्ज केला"
msgid "Applied Rules"
msgstr "लागू केलेले नियम"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "इशाऱ्यांसह लागू केले"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "अरबी"
@@ -800,6 +809,14 @@ msgstr "तुमचा पासवर्ड रिसेट करण्या
msgid "Check your email for a link to verify your account."
msgstr "तुमचे खाते पडताळण्यासाठीच्या लिंकसाठी तुमचे ईमेल तपासा."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "तपासणी"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "मसुदा तपासणे"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "चीनी (सुलभ)"
@@ -966,6 +983,10 @@ msgstr "संभाषण कॉपी केले."
msgid "Conversation JSON copied."
msgstr "संभाषणाचा JSON कॉपी केला."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "रूपांतरित स्टाईलशीटचा मसुदा"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "क्लिपबोर्डवर कॉपी केले."
@@ -989,6 +1010,10 @@ msgstr "बॅकअप कोड्स कॉपी करा"
msgid "Copy JSON"
msgstr "JSON कॉपी करा"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "स्टाईलशीट कॉपी करा"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "ही गुप्त key कॉपी करा आणि तुमच्या अ‍ॅप्लिकेशन्समध्ये तुमचा डेटा अ‍ॅक्सेस करण्यासाठी वापरा."
@@ -1545,6 +1570,11 @@ msgstr "संपादन {chip}"
msgid "Edit application"
msgstr "अर्ज संपादित करा"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "रंग संपादित करा {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "दुहेरी घटक ओथेंटिकेशन सेटअ
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "दुहेरी घटक ओथेंटिकेशन अक्षम करण्यासाठी तुमचा पासवर्ड टाका. 2FA शिवाय तुमचे खाते कमी सुरक्षित राहील."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "त्रुटी"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "प्रत्येक योगदान, मोठे असो वा छोटे, प्रोजेक्टसाठी खूप मोठा फरक घडवते.<0/>तुमच्या पाठिंब्याबद्दल धन्यवाद!"
@@ -1682,6 +1716,10 @@ msgstr "प्रत्येक योगदान, मोठे असो व
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "व्यावसायिक रेझ्युमे तयार, सानुकूलित आणि शेअर करण्यासाठी लागणारे सर्व काही येथेच आहे. गोपनीयतेचा विचार करून तयार केलेले, मुक्त स्रोतावर चालणारे आणि कायमस्वरूपी पूर्णपणे मोफत."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "फोकस मोडमधून बाहेर पडा"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "पूर्ण स्क्रीनमधून बाहेर पडा"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "स्वरूप"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "फॉरमॅट स्टाईलशीट"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "मोफत"
@@ -2584,6 +2626,12 @@ msgstr "हलकी"
msgid "Light theme"
msgstr "हलकी थीम"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "ओळ {0}, स्तंभ {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "रेषेची उंची"
@@ -2918,6 +2966,10 @@ msgstr "नॉर्वेजियन"
msgid "Not connected"
msgstr "जोडलेले नाही"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "ओपन एआय असिस्टंट"
msgid "Open Email Client"
msgstr "ईमेल क्लायंट उघडा"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "फोकस मोड उघडा"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "बिल्डरमध्ये उघडा"
@@ -2992,6 +3048,7 @@ msgstr "ओपनएआय-सुसंगत"
msgid "OpenRouter"
msgstr "ओपनराऊटर"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "उघडण्यासाठी <0>Enter</0> दाबा"
msgid "Preview"
msgstr "पूर्वावलोकन"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "पूर्वावलोकन आणि निर्यातीसाठी शेवटची वैध आवृत्ती वापरली जाते."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "प्राथमिक रंग"
@@ -3374,10 +3435,22 @@ msgstr "रिॲक्टिव्ह रिझ्युमे v<0>{__APP_VERSI
msgid "Reactive Resume v4 (JSON)"
msgstr "प्रतिक्रियाशील बायोडाटा v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "वाचत आहे…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "सक्रिय करण्यासाठी तयार"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "इशाऱ्यांसह सक्रिय करण्यास तयार"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "प्राप्तकर्ता"
@@ -3394,6 +3467,10 @@ msgstr "आयत (पूर्ण रुंदी)"
msgid "Redo"
msgstr "पुन्हा करा"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "स्टाईलशीट संपादन पुन्हा करा"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "पासवर्ड रीसेट करा"
msgid "Reset Style"
msgstr "शैली रीसेट करा"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "लागू केलेल्या स्टाईलशीटवर रीसेट करा"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "तुमचा पासवर्ड रीसेट करा"
@@ -3791,6 +3872,14 @@ msgstr "निवडले"
msgid "Self-Host with Docker"
msgstr "Docker ने स्वतः होस्ट करा"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "सिमँटिक CSS स्टाईलशीट"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "अर्थात्मक शैली सक्रिय राहतात"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "संदेश पाठवा"
@@ -4152,6 +4241,14 @@ msgstr "स्ट्राइक"
msgid "Strong fit"
msgstr "मजबूत फिट"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "स्टाईलशीट संपादक"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "स्टाईलशीटमध्ये त्रुटी आहेत"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "सबरेडिट"
@@ -4308,6 +4405,10 @@ msgstr "तुम्ही शोधत असलेले पान कदा
msgid "The password you entered is incorrect"
msgstr "तुम्ही टाकलेला पासवर्ड चुकीचा आहे"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "रेझ्युमेचा प्रिव्ह्यू अद्ययावत करता आला नाही. शेवटचा वैध प्रिव्ह्यूच अजूनही दाखवला जात आहे."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "ज्या रेझ्युमेला तुम्ही अ‍ॅक्सेस करण्याचा प्रयत्न करत आहात तो पासवर्डने संरक्षित आहे"
@@ -4381,6 +4482,10 @@ msgstr "ही नोंद कायमची हटवली जाईल. ह
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "या वैशिष्ट्यासाठी एका कनेक्टेड एआय प्रोव्हायडरची आवश्यकता आहे. कृपया सेटिंग्जमध्ये त्याची नोंदणी करा."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "या इन्स्टन्समध्ये सध्या सिमेंटिक CSS संपादनास परवानगी नाही."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "हा तुमच्या रेझ्युमेसाठी URL-फ्रेंडली नाव आहे."
@@ -4639,6 +4744,10 @@ msgstr "अधोरेखा"
msgid "Undo"
msgstr "पूर्ववत करा"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "स्टाईलशीटमधील बदल पूर्ववत करा"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "अमर्यादित रेझ्युमे"
@@ -5013,6 +5122,10 @@ msgstr "तुमचा डेटा सुरक्षितपणे साठ
msgid "Your latest changes could not be saved."
msgstr "तुमचे नवीनतम बदल जतन केले जाऊ शकले नाहीत."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "जोपर्यंत तुम्ही हा सिमेंटिक CSS ड्राफ्ट स्पष्टपणे सक्रिय करत नाही, तोपर्यंत तुमच्या जुन्या स्टाईल्स सक्रिय राहतील."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "तुमचा पासवर्ड यशस्वीरित्या रिसेट केला गेला आहे. तुम्ही आता नवीन पासवर्डने साइन इन करू शकता."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ms\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Malay\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -163,6 +163,10 @@ msgstr "Menu akaun"
msgid "Actions"
msgstr "Tindakan"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Aktifkan CSS Semantik"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Saiz sebenar (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Permohonan dihantar setiap minggu (8 minggu lepas)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Dimohon"
@@ -493,6 +498,10 @@ msgstr "Digunakan pada"
msgid "Applied Rules"
msgstr "Peraturan yang Digunakan"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Digunakan dengan amaran"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Bahasa Arab"
@@ -800,6 +809,14 @@ msgstr "Semak e-mel anda untuk pautan bagi menetapkan semula kata laluan anda."
msgid "Check your email for a link to verify your account."
msgstr "Semak e-mel anda untuk pautan bagi mengesahkan akaun anda."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Memeriksa"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Memeriksa draf"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Cina (Ringkas)"
@@ -966,6 +983,10 @@ msgstr "Perbualan disalin."
msgid "Conversation JSON copied."
msgstr "JSON perbualan disalin."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Draf helaian gaya yang ditukar"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Disalin ke papan keratan."
@@ -989,6 +1010,10 @@ msgstr "Salin Kod Sandaran"
msgid "Copy JSON"
msgstr "Salin JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Salin helaian gaya"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Salin kunci rahsia ini dan gunakan dalam aplikasi anda untuk mengakses data anda."
@@ -1545,6 +1570,11 @@ msgstr "Sunting {chip}"
msgid "Edit application"
msgstr "Edit aplikasi"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Sunting warna {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Masukkan kata laluan anda untuk mengesahkan penyediaan pengesahan dua fa
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Masukkan kata laluan anda untuk melumpuhkan pengesahan dua faktor. Akaun anda akan menjadi kurang selamat tanpa 2FA diaktifkan."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Ralat"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Setiap sumbangan, besar atau kecil, memberi perbezaan besar kepada projek ini.<0/>Terima kasih atas sokongan anda!"
@@ -1682,6 +1716,10 @@ msgstr "Setiap sumbangan, besar atau kecil, memberi perbezaan besar kepada proje
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Segala yang anda perlukan untuk mencipta, menyesuaikan dan berkongsi resume profesional. Dibina dengan mengambil kira privasi, dikuasakan oleh sumber terbuka dan benar-benar percuma selama-lamanya."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Keluar dari mod fokus"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Keluar dari Skrin Penuh"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Helaian gaya format"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Percuma"
@@ -2584,6 +2626,12 @@ msgstr "Cerah"
msgid "Light theme"
msgstr "Tema cerah"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Baris {0}, lajur {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Tinggi Baris"
@@ -2918,6 +2966,10 @@ msgstr "Norwegian"
msgid "Not connected"
msgstr "Tidak bersambung"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Pembantu AI terbuka"
msgid "Open Email Client"
msgstr "Buka Klien E-mel"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Mod fokus terbuka"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Buka dalam pembina"
@@ -2992,6 +3048,7 @@ msgstr "Serasi dengan OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Tekan <0>Enter</0> untuk membuka"
msgid "Preview"
msgstr "Pratonton"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Pratonton dan eksport gunakan versi terakhir yang sah."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Warna Utama"
@@ -3374,10 +3435,22 @@ msgstr "Resume Reaktif v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktif Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Membaca…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Bersedia untuk diaktifkan"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Bersedia untuk diaktifkan dengan amaran"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Penerima"
@@ -3394,6 +3467,10 @@ msgstr "Segi empat tepat (Lebar Penuh)"
msgid "Redo"
msgstr "Buat semula"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Buat semula suntingan helaian gaya"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Tetapkan Semula Kata Laluan"
msgid "Reset Style"
msgstr "Tetapkan Semula Gaya"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Tetapkan semula kepada helaian gaya yang digunakan"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Tetapkan semula kata laluan anda"
@@ -3791,6 +3872,14 @@ msgstr "dipilih"
msgid "Self-Host with Docker"
msgstr "Hos Sendiri dengan Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Helaian gaya CSS semantik"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Gaya semantik kekal aktif"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Hantar mesej"
@@ -4152,6 +4241,14 @@ msgstr "Coret"
msgid "Strong fit"
msgstr "Kuat sesuai"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Editor helaian gaya"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Helaian gaya mempunyai ralat"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "Halaman yang anda cari mungkin telah dipindahkan atau tidak lagi wujud."
msgid "The password you entered is incorrect"
msgstr "Kata laluan yang anda masukkan adalah tidak betul"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Pratonton resume tidak dapat dikemas kini. Pratonton sah terakhir masih dipaparkan."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Resume yang anda cuba akses dilindungi kata laluan"
@@ -4381,6 +4482,10 @@ msgstr "Entri ini akan dipadam secara kekal. Ini tidak boleh dibuat asal."
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Ciri ini memerlukan penyedia AI yang disambungkan. Sila sediakan satu dalam tetapan."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Keadaan ini pada masa ini tidak membenarkan pengeditan CSS Semantik."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Ini ialah nama mesra URL untuk resume anda."
@@ -4639,6 +4744,10 @@ msgstr "Garis Bawah"
msgid "Undo"
msgstr "Buat asal"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Buat asal suntingan helaian gaya"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Resume Tanpa Had"
@@ -5013,6 +5122,10 @@ msgstr "Data anda disimpan dengan selamat dan tidak pernah dikongsi dengan pihak
msgid "Your latest changes could not be saved."
msgstr "Perubahan terkini anda tidak dapat disimpan."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Gaya legasi anda kekal aktif sehingga anda mengaktifkan draf CSS Semantik ini secara eksplisit."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Kata laluan anda telah berjaya ditetapkan semula. Anda kini boleh log masuk dengan kata laluan baharu anda."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ne\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Nepali\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "खाता मेनु"
msgid "Actions"
msgstr "कार्यहरू"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "सिमेन्टिक CSS सक्रिय गर्नुहोस्"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "वास्तविक आकार (१००%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "प्रति हप्ता पठाइएका आवेदनहरू (पछिल्ला 8 हप्ता)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "आवेदन गरियो"
@@ -493,6 +498,10 @@ msgstr "मा लागू गरियो"
msgid "Applied Rules"
msgstr "लागू नियमहरू"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "चेतावनीहरू सहित लागू गरियो"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "अरबी"
@@ -800,6 +809,14 @@ msgstr "पासवर्ड रिसेट गर्न लिङ्कको
msgid "Check your email for a link to verify your account."
msgstr "खाताको यकिन गर्न लिङ्कको लागि आफ्नो इमेल जाँच गर्नुहोस्।"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "जाँच गर्दै"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "मस्यौदा जाँच गर्दै"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "चिनियाँ (सरल)"
@@ -966,6 +983,10 @@ msgstr "कुराकानीको प्रतिलिपि बनाइ
msgid "Conversation JSON copied."
msgstr "कुराकानी JSON प्रतिलिपि गरियो।"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "रूपान्तरित स्टाइलसिट ड्राफ्ट"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "क्लिपबोर्डमा प्रतिलिपि गरियो।"
@@ -989,6 +1010,10 @@ msgstr "ब्याकअप कोडहरू प्रतिलिपि ग
msgid "Copy JSON"
msgstr "JSON प्रतिलिपि गर्नुहोस्"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "स्टाइलसिट प्रतिलिपि गर्नुहोस्"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "यो गोप्य key प्रतिलिपि गरेर आफ्ना अनुप्रयोगहरूमा प्रयोग गर्नुहोस् ताकि तपाईंको डाटामा पहुँच गर्न सकियोस्।"
@@ -1545,6 +1570,11 @@ msgstr "सम्पादन {chip}"
msgid "Edit application"
msgstr "आवेदन सम्पादन गर्नुहोस्"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "रङ सम्पादन गर्नुहोस् {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "दुई-कारक प्रमाणीकरण सेटअप
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "दुई-कारक प्रमाणीकरण अक्षम गर्न आफ्नो पासवर्ड प्रविष्ट गर्नुहोस्। २FA सक्रिय नभएको अवस्थामा तपाईंको खाता कम सुरक्षित हुनेछ।"
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "त्रुटि"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "ठुलो होस् वा सानो, प्रत्येक योगदानले परियोजनामा ठूलो फरक पार्छ।<0/>तपाईंको सहयोगका लागि धन्यवाद!"
@@ -1682,6 +1716,10 @@ msgstr "ठुलो होस् वा सानो, प्रत्येक
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "व्यावसायिक बायोडाटा बनाउन, अनुकूल बनाउन र सेयर गर्न आवश्यक सबै कुरा एकै ठाउँमा। गोपनीयतालाई प्राथमिकता दिँदै, खुला-स्रोतको सहायतामा निर्माण गरिएको, र पूर्ण रूपमा निःशुल्क, सधैंका लागि।"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "फोकस मोडबाट बाहिर निस्कनुहोस्"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "पूर्ण स्क्रिनबाट बाहिर निस्कनुहोस्"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "ढाँचा"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "शैलीपाना ढाँचाबद्ध गर्नुहोस्"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "निःशुल्क"
@@ -2584,6 +2626,12 @@ msgstr "ल्याइट"
msgid "Light theme"
msgstr "ल्याइट थिम"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "रेखा {0}, स्तम्भ {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "लाइन उचाइ (Line Height)"
@@ -2918,6 +2966,10 @@ msgstr "नर्वेजियन"
msgid "Not connected"
msgstr "जडान गरिएको छैन"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "एआई सहायक खोल्नुहोस्"
msgid "Open Email Client"
msgstr "इमेल क्लाइन्ट खोल्नुहोस्"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "फोकस मोड खोल्नुहोस्"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "बिल्डरमा खोल्नुहोस्"
@@ -2992,6 +3048,7 @@ msgstr "ओपनएआई-कम्प्याटिबल"
msgid "OpenRouter"
msgstr "ओपनराउटर"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "खोल्न <0>Enter</0> थिच्नुहोस्"
msgid "Preview"
msgstr "पूर्वावलोकन"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "पूर्वावलोकन र निर्यात अन्तिम मान्य संस्करण प्रयोग गर्नुहोस्।"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "मुख्य रङ"
@@ -3374,10 +3435,22 @@ msgstr "प्रतिक्रियाशील रिजुमे v<0>{__APP
msgid "Reactive Resume v4 (JSON)"
msgstr "प्रतिक्रियाशील बायोडाटा v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "पढ्दै…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "सक्रिय गर्न तयार छ"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "चेतावनी सहित सक्रिय गर्न तयार"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "प्राप्तकर्ता"
@@ -3394,6 +3467,10 @@ msgstr "आयत (पूर्ण चौडाइ)"
msgid "Redo"
msgstr "पुन: गर्नुहोस्"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "शैलीपत्र सम्पादन पुन: गर्नुहोस्"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "पासवर्ड रिसेट गर्नुहोस्"
msgid "Reset Style"
msgstr "शैली रिसेट गर्नुहोस्"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "लागू गरिएको शैली पानामा रिसेट गर्नुहोस्"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "तपाईंको पासवर्ड रिसेट गर्नुहोस्"
@@ -3791,6 +3872,14 @@ msgstr "चयन गरियो"
msgid "Self-Host with Docker"
msgstr "Docker प्रयोग गरेर आफैं होस्ट गर्नुहोस्"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "अर्थपूर्ण CSS शैली पाना"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "अर्थपूर्ण शैलीहरू सक्रिय रहन्छन्"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "सन्देश पठाउनुहोस्"
@@ -4152,6 +4241,14 @@ msgstr "स्ट्राइक (Strikethrough)"
msgid "Strong fit"
msgstr "बलियो फिट"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "स्टाइलसिट सम्पादक"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "स्टाइलसिटमा त्रुटिहरू छन्"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "सबरेडिट"
@@ -4308,6 +4405,10 @@ msgstr "तपाईंले खोजिरहनुभएको पृष्
msgid "The password you entered is incorrect"
msgstr "तपाईंले प्रविष्ट गर्नुभएको पासवर्ड सही छैन"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "रिजुमे पूर्वावलोकन अद्यावधिक गर्न सकिएन। अन्तिम मान्य पूर्वावलोकन अझै देखाइएको छ।"
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "तपाईं पहुँच गर्न खोजिरहनुभएको बायोडाटा पासवर्डद्वारा सुरक्षित गरिएको छ"
@@ -4381,6 +4482,10 @@ msgstr "यो प्रविष्टि स्थायी रूपमा
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "यो सुविधाको लागि जडान गरिएको AI प्रदायक आवश्यक पर्दछ। कृपया सेटिङहरूमा एउटा सेट अप गर्नुहोस्।"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "यो उदाहरणले हाल सिमेन्टिक CSS सम्पादनलाई अनुमति दिँदैन।"
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "यो तपाईंको बायोडाटाका लागि URL-मैत्री नाम हो।"
@@ -4639,6 +4744,10 @@ msgstr "अन्डरलाइन"
msgid "Undo"
msgstr "पूर्ववत गर्नुहोस्"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "शैलीपत्र सम्पादन पूर्ववत गर्नुहोस्"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "असीमित बायोडाटाहरू"
@@ -5013,6 +5122,10 @@ msgstr "तपाईंको डाटा सुरक्षित रूपम
msgid "Your latest changes could not be saved."
msgstr "तपाईंका पछिल्ला परिवर्तनहरू सुरक्षित गर्न सकिएन।"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "तपाईंले यो सिमेन्टिक CSS ड्राफ्ट स्पष्ट रूपमा सक्रिय नगरेसम्म तपाईंको लिगेसी शैलीहरू सक्रिय रहन्छन्।"
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "तपाईंको पासवर्ड सफलतापूर्वक रिसेट भयो। अब नयाँ पासवर्ड प्रयोग गरेर साइन इन गर्न सक्नुहुन्छ।"
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: nl\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Accountmenu"
msgid "Actions"
msgstr "Acties"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Activeer semantische CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Werkelijke grootte (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Sollicitaties per week verstuurd (laatste 8 weken)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Gesolliciteerd"
@@ -493,6 +498,10 @@ msgstr "Toegepast op"
msgid "Applied Rules"
msgstr "Toegepaste regels"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Toegepast met waarschuwingen"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Arabisch"
@@ -800,6 +809,14 @@ msgstr "Controleer uw e-mail voor een link om uw wachtwoord te resetten."
msgid "Check your email for a link to verify your account."
msgstr "Controleer uw e-mail voor een link om uw account te verifiëren."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Controleren"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Concept controleren"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Chinees (vereenvoudigd)"
@@ -966,6 +983,10 @@ msgstr "Gesprek gekopieerd."
msgid "Conversation JSON copied."
msgstr "Het JSON-bestand van het gesprek is gekopieerd."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Omgezette stylesheet-concept"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Gekopieerd naar klembord."
@@ -989,6 +1010,10 @@ msgstr "Back-upcodes kopiëren"
msgid "Copy JSON"
msgstr "JSON kopiëren"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Stijlpagina kopiëren"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Kopieer deze geheime sleutel en gebruik deze in uw applicaties om toegang te krijgen tot uw gegevens."
@@ -1545,6 +1570,11 @@ msgstr "Bewerk {chip}"
msgid "Edit application"
msgstr "Applicatie bewerken"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Kleur bewerken {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Voer uw wachtwoord in om het instellen van tweestapsverificatie te beves
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Voer uw wachtwoord in om tweestapsverificatie uit te schakelen. Uw account is minder goed beveiligd zonder 2FA."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Fout"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Elke bijdrage, groot of klein, maakt een enorm verschil voor het project.<0/>Bedankt voor uw steun!"
@@ -1682,6 +1716,10 @@ msgstr "Elke bijdrage, groot of klein, maakt een enorm verschil voor het project
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Alles wat u nodig heeft om professionele cv's te maken, aan te passen en te delen. Gebouwd met privacy in gedachten, aangedreven door open source en volledig gratis, voor altijd."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Focusmodus verlaten"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Volledig scherm afsluiten"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Formaat"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Stijlpagina opmaken"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Gratis"
@@ -2584,6 +2626,12 @@ msgstr "Licht"
msgid "Light theme"
msgstr "Licht thema"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Regel {0}, kolom {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Regelafstand"
@@ -2918,6 +2966,10 @@ msgstr "Noors"
msgid "Not connected"
msgstr "Niet verbonden"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Open AI-assistent"
msgid "Open Email Client"
msgstr "E-mailclient openen"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Focusmodus openen"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Openen in builder"
@@ -2992,6 +3048,7 @@ msgstr "OpenAI-compatibel"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Druk op <0>Enter</0> om te openen"
msgid "Preview"
msgstr "Voorbeeld"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Voor het bekijken en exporteren wordt de laatst geldige versie gebruikt."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primaire kleur"
@@ -3374,10 +3435,22 @@ msgstr "Reactief hervatten v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactieve cv v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Lezen…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Klaar om te activeren"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Klaar voor activering met waarschuwingen"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Ontvanger"
@@ -3394,6 +3467,10 @@ msgstr "Rechthoek (volledige breedte)"
msgid "Redo"
msgstr "Opnieuw doen"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Stijlpagina bewerken opnieuw uitvoeren"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Wachtwoord resetten"
msgid "Reset Style"
msgstr "Stijl opnieuw instellen"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Terugzetten naar toegepaste stijlblad"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Reset uw wachtwoord"
@@ -3791,6 +3872,14 @@ msgstr "geselecteerd"
msgid "Self-Host with Docker"
msgstr "Zelf hosten met Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Semantische CSS-stijlpagina"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Semantische stijlen blijven actief."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Bericht verzenden"
@@ -4152,6 +4241,14 @@ msgstr "Doorhalen"
msgid "Strong fit"
msgstr "Sterke pasvorm"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Stijlpagina-editor"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Het stylesheet bevat fouten."
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "De pagina die u zoekt is mogelijk verplaatst of bestaat niet meer."
msgid "The password you entered is incorrect"
msgstr "Het ingevoerde wachtwoord is onjuist"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "De cv-preview kon niet worden bijgewerkt. De laatst geldige preview wordt nog steeds weergegeven."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Het cv dat u probeert te openen, is met een wachtwoord beveiligd"
@@ -4381,6 +4482,10 @@ msgstr "Deze vermelding wordt permanent verwijderd. Dit kan niet ongedaan worden
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Voor deze functie is een gekoppelde AI-provider vereist. Stel er een in via de instellingen."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Deze instantie staat momenteel geen semantische CSS-bewerking toe."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Dit is een URL-vriendelijke naam voor uw cv."
@@ -4639,6 +4744,10 @@ msgstr "Onderstrepen"
msgid "Undo"
msgstr "Ongedaan maken"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Stijlbewerking ongedaan maken"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Onbeperkte cv's"
@@ -5013,6 +5122,10 @@ msgstr "Uw gegevens worden veilig opgeslagen en nooit met derden gedeeld. U kunt
msgid "Your latest changes could not be saved."
msgstr "Je laatste wijzigingen konden niet worden opgeslagen."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Uw oude stijlen blijven actief totdat u dit concept van Semantische CSS expliciet activeert."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Uw wachtwoord is succesvol gereset. U kunt nu met uw nieuwe wachtwoord inloggen."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: no\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Konto-meny"
msgid "Actions"
msgstr "Handlinger"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Aktiver semantisk CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Faktisk størrelse (100 %)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Søknader sendt per uke (siste 8 uker)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Søkt"
@@ -493,6 +498,10 @@ msgstr "Påført på"
msgid "Applied Rules"
msgstr "Anvendte regler"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Brukes med advarsler"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Arabisk"
@@ -800,6 +809,14 @@ msgstr "Sjekk e-posten din for en lenke for å tilbakestille passordet."
msgid "Check your email for a link to verify your account."
msgstr "Sjekk e-posten din for en lenke for å bekrefte kontoen din."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Sjekker"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Sjekker utkast"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Kinesisk (forenklet)"
@@ -966,6 +983,10 @@ msgstr "Samtalen er kopiert."
msgid "Conversation JSON copied."
msgstr "Samtalens JSON-fil er kopiert."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Konvertert stilarkutkast"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Kopiert til utklippstavlen."
@@ -989,6 +1010,10 @@ msgstr "Kopier sikkerhetskopieringskoder"
msgid "Copy JSON"
msgstr "Kopier JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Kopier stilark"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Kopier denne hemmelige nøkkelen og bruk den i applikasjonene dine for å få tilgang til dataene dine."
@@ -1545,6 +1570,11 @@ msgstr "Rediger {chip}"
msgid "Edit application"
msgstr "Rediger søknad"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Rediger farge {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Skriv inn passordet ditt for å bekrefte at du vil sette opp tofaktoraut
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Skriv inn passordet ditt for å deaktivere tofaktorautentisering. Kontoen din vil være mindre sikker uten aktivert 2FA."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Feil"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Hvert bidrag, stort eller lite, gjør en enorm forskjell for prosjektet.<0/>Takk for støtten!"
@@ -1682,6 +1716,10 @@ msgstr "Hvert bidrag, stort eller lite, gjør en enorm forskjell for prosjektet.
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Alt du trenger for å opprette, tilpasse og dele profesjonelle CV-er. Bygget med personvern i fokus, drevet av åpen kildekode og helt gratis for alltid."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Gå ut av fokusmodus"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Avslutt fullskjerm"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Formater stilark"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Gratis"
@@ -2584,6 +2626,12 @@ msgstr "Lyst"
msgid "Light theme"
msgstr "Lyst tema"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Linje {0}, kolonne {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Linjehøyde"
@@ -2918,6 +2966,10 @@ msgstr "Norsk"
msgid "Not connected"
msgstr "Ikke tilkoblet"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Åpne AI-assistenten"
msgid "Open Email Client"
msgstr "Åpne e-postklient"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Åpne fokusmodus"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Åpne i byggeren"
@@ -2992,6 +3048,7 @@ msgstr "OpenAI-kompatibel"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Trykk <0>Enter</0> for å åpne"
msgid "Preview"
msgstr "Forhåndsvisning"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Forhåndsvisning og eksport med den siste gyldige versjonen."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Hovedfarge"
@@ -3374,10 +3435,22 @@ msgstr "Reaktiv CV v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Leser …"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Klar til å aktiveres"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Klar til aktivering med advarsler"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Mottaker"
@@ -3394,6 +3467,10 @@ msgstr "Rektangel (full bredde)"
msgid "Redo"
msgstr "Gjør om"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Gjør om redigeringen av stilark"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Tilbakestill passord"
msgid "Reset Style"
msgstr "Tilbakestill stil"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Tilbakestill til brukt stilark"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Tilbakestill passordet ditt"
@@ -3791,6 +3872,14 @@ msgstr "valgt"
msgid "Self-Host with Docker"
msgstr "Selvhosting med Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Semantisk CSS-stilark"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Semantiske stiler forblir aktive"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Send melding"
@@ -4152,6 +4241,14 @@ msgstr "Gjennomstreking"
msgid "Strong fit"
msgstr "Sterk passform"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Stilarkredigeringsprogram"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Stilarket inneholder feil"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "Siden du leter etter kan ha blitt flyttet eller finnes ikke lenger."
msgid "The password you entered is incorrect"
msgstr "Passordet du skrev inn er feil"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Forhåndsvisningen av CV-en kunne ikke oppdateres. Den siste gyldige forhåndsvisningen vises fortsatt."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "CV-en du prøver å få tilgang til er passordbeskyttet"
@@ -4381,6 +4482,10 @@ msgstr "Denne oppføringen slettes permanent. Dette kan ikke angres."
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Denne funksjonen krever en tilkoblet AI-leverandør. Vennligst konfigurer en i innstillingene."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Denne instansen tillater for øyeblikket ikke semantisk CSS-redigering."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Dette er et URL-vennlig navn på CV-en din."
@@ -4639,6 +4744,10 @@ msgstr "Understrek"
msgid "Undo"
msgstr "Angre"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Angre redigering av stilark"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Ubegrenset antall CV-er"
@@ -5013,6 +5122,10 @@ msgstr "Dataene dine lagres sikkert og deles aldri med tredjeparter. Du kan ogs
msgid "Your latest changes could not be saved."
msgstr "De siste endringene dine kunne ikke lagres."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Dine eldre stiler forblir aktive inntil du eksplisitt aktiverer dette semantiske CSS-utkastet."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Passordet ditt er tilbakestilt. Du kan nå logge inn med det nye passordet ditt."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: or\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Odia\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "ଆକାଉଣ୍ଟ ମେନୁ"
msgid "Actions"
msgstr "କାର୍ଯ୍ୟଗୁଡ଼ିକ"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "ସିମାଣ୍ଟିକ୍ CSS ସକ୍ରିୟ କରନ୍ତୁ"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "ପ୍ରକୃତ ଆକାର (୧୦୦%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "ପ୍ରତି ସପ୍ତାହରେ ପଠାଯାଇଥିବା ଆବେଦନ (ଗତ 8 ସପ୍ତାହ)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "ଆବେଦନ କରାଯାଇଛି"
@@ -493,6 +498,10 @@ msgstr "ପ୍ରୟୋଗ ହୋଇଛି |"
msgid "Applied Rules"
msgstr "ଲାଗୁ ହୋଇଥିବା ନିୟମଗୁଡ଼ିକ"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "ଚେତାବନୀ ସହିତ ଲାଗୁ କରାଯାଇଛି"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "ଆରବୀ"
@@ -800,6 +809,14 @@ msgstr "ଆପଣଙ୍କ ପାସୱାର୍ଡ ପୁନଃସେଟ୍ କ
msgid "Check your email for a link to verify your account."
msgstr "ଆପଣଙ୍କ ଆକାଉଣ୍ଟ ସତ୍ୟାପନ କରିବା ପାଇଁ ଲିଙ୍କ ପାଇଁ ଆପଣଙ୍କ ଇମେଲ୍ ଯାଞ୍ଚ କରନ୍ତୁ।"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "ଯାଞ୍ଚ କରାଯାଉଛି"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "ଡ୍ରାଫ୍ଟ ଯାଞ୍ଚ କରାଯାଉଛି"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "ଚାଇନିଜ୍ (ସରଳୀକୃତ)"
@@ -966,6 +983,10 @@ msgstr "ବାର୍ତ୍ତାଳାପ କପି କରାଯାଇଛି।"
msgid "Conversation JSON copied."
msgstr "ବାର୍ତ୍ତାଳାପ JSON କପି କରାଯାଇଛି।"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "ରୂପାନ୍ତରିତ ଷ୍ଟାଇଲସିଟ୍ ଡ୍ରାଫ୍ଟ"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "କ୍ଲିପବୋର୍ଡରେ କପି କରାଯାଇଛି |"
@@ -989,6 +1010,10 @@ msgstr "ବ୍ୟାକଅପ୍ କୋଡଗୁଡିକ କପି କରନ୍
msgid "Copy JSON"
msgstr "JSON କପି କରନ୍ତୁ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "ଷ୍ଟାଇଲସିଟ୍ କପି କରନ୍ତୁ"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "ଏହି ଗୁପ୍ତ କିକୁ କପି କରନ୍ତୁ ଏବଂ ଆପଣଙ୍କ ଆପ୍ଲିକେସନ୍‌ରେ ଆପଣଙ୍କ ତଥ୍ୟ ଆକ୍ସେସ୍ କରିବା ପାଇଁ ବ୍ୟବହାର କରନ୍ତୁ।"
@@ -1545,6 +1570,11 @@ msgstr "{chip} ସମ୍ପାଦନ କରନ୍ତୁ"
msgid "Edit application"
msgstr "ପ୍ରୟୋଗ ସଂପାଦନ କରନ୍ତୁ |"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "ରଙ୍ଗ ସମ୍ପାଦନ କରନ୍ତୁ {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "ଦ୍ୱି-ଘଟକ ପରିଚୟ ପ୍ରମାଣିକରଣ
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "ଦ୍ୱି-ଘଟକ ପରିଚୟ ପ୍ରମାଣିକରଣ ଅସକ୍ରିୟ କରିବା ପାଇଁ ଆପଣଙ୍କ ପାସୱାର୍ଡ ପ୍ରବେଶ କରନ୍ତୁ। 2FA ସକ୍ରିୟ ନ ଥିଲେ ଆପଣଙ୍କ ଆକାଉଣ୍ଟ କମ୍ ସୁରକ୍ଷିତ ହେବ।"
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "ତ୍ରୁଟି"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "ପ୍ରତ୍ୟେକ ଅବଦାନ, ବଡ଼ କିମ୍ବା ଛୋଟ, ପ୍ରକଳ୍ପ ପାଇଁ ବିଶେଷ ପରିବର୍ତ୍ତନ ଆଣେ।<0/>ଆପଣଙ୍କ ସମର୍ଥନ ପାଇଁ ଧନ୍ୟବାଦ!"
@@ -1682,6 +1716,10 @@ msgstr "ପ୍ରତ୍ୟେକ ଅବଦାନ, ବଡ଼ କିମ୍ବା
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "ପେଶାଦାର ରେଜ୍ୟୁମେ ତିଆରି, କଷ୍ଟମାଇଜ୍ ଏବଂ ସେୟାର କରିବାକୁ ଆପଣଙ୍କୁ ଯାହା କିଛି ଆବଶ୍ୟକ ସମସ୍ତ ଏଥିରେ ଅଛି। ଗୋପନୀୟତା ଧ୍ୟାନରେ ରଖି ନିର୍ମିତ, ଖୋଲା‑ମୂଳ ଦ୍ୱାରା ଶକ୍ତିଶାଳୀ ହୋଇଛି, ଏବଂ ସଂପୂର୍ଣ୍ଣ ଭାବରେ ସଦା ପାଇଁ ନିଶୁଳ୍କ।"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "ଫୋକସ୍ ମୋଡ୍‌ରୁ ବାହାରି ଯାଆନ୍ତୁ"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନରୁ ବାହାରକୁ ଆସନ୍ତୁ"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "ରୂପରେଖା (Format)"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "ଷ୍ଟାଇଲସିଟ୍ ଫର୍ମାଟ୍ କରନ୍ତୁ"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "ନିଶୁଳ୍କ"
@@ -2584,6 +2626,12 @@ msgstr "ଲାଇଟ୍"
msgid "Light theme"
msgstr "ଲାଇଟ୍ ଥିମ୍"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "ଧାଡି {0}, ସ୍ତମ୍ଭ {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "ଲାଇନ୍ ଉଚ୍ଚତା"
@@ -2918,6 +2966,10 @@ msgstr "ନରୱେଜିଆନ୍"
msgid "Not connected"
msgstr "ସଂଯୁକ୍ତ ହୋଇନାହିଁ"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "AI ଆସିଷ୍ଟାଣ୍ଟ ଖୋଲନ୍ତୁ"
msgid "Open Email Client"
msgstr "ଇମେଲ୍ କ୍ଲାୟେଣ୍ଟ ଖୋଲନ୍ତୁ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "ଫୋକସ୍ ମୋଡ୍ ଖୋଲନ୍ତୁ"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "ବିଲ୍ଡରରେ ଖୋଲନ୍ତୁ"
@@ -2992,6 +3048,7 @@ msgstr "OpenAI-ସୁସଙ୍ଗତ"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "ଖୋଲିବା ପାଇଁ <0>Enter</0> ଦବାନ୍ତୁ"
msgid "Preview"
msgstr "ପୂର୍ବାବଲୋକନ"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "ପୂର୍ବାବଲୋକନ ଏବଂ ରପ୍ତାନି ଶେଷ ବୈଧ ସଂସ୍କରଣ ବ୍ୟବହାର କରନ୍ତୁ।"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "ମୁଖ୍ୟ ରଙ୍ଗ"
@@ -3374,10 +3435,22 @@ msgstr "ପ୍ରତିକ୍ରିୟାଶୀଳ ରିଜ୍ୟୁମ୍ v<0>
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "ପ Reading ିବା…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "ସକ୍ରିୟ କରିବାକୁ ପ୍ରସ୍ତୁତ"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "ଚେତାବନୀ ସହିତ ସକ୍ରିୟ କରିବାକୁ ପ୍ରସ୍ତୁତ"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "ପ୍ରାପ୍ତକର୍ତ୍ତା"
@@ -3394,6 +3467,10 @@ msgstr "ଆୟାତାକାର (ପୁରା ପ୍ରସ୍ଥ)"
msgid "Redo"
msgstr "ପୁନଃକରିଦିଅନ୍ତୁ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "ଷ୍ଟାଇଲସିଟ୍ ସମ୍ପାଦନ ପୁନଃକରିବା"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "ପାସୱାର୍ଡ ରିସେଟ୍ କରନ୍ତୁ"
msgid "Reset Style"
msgstr "ଷ୍ଟାଇଲ୍ ରିସେଟ୍ କରନ୍ତୁ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "ଲାଗୁ ହୋଇଥିବା ଷ୍ଟାଇଲସିଟକୁ ରିସେଟ୍ କରନ୍ତୁ"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "ଆପଣଙ୍କ ପାସୱାର୍ଡ ରିସେଟ୍ କରନ୍ତୁ"
@@ -3791,6 +3872,14 @@ msgstr "ମନୋନୀତ |"
msgid "Self-Host with Docker"
msgstr "Docker ସହ ସ୍ୱୟଂ‑ହୋଷ୍ଟ କରନ୍ତୁ"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "ଅର୍ଥଗତ CSS ଷ୍ଟାଇଲସିଟ୍"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "ଅର୍ଥାତ୍ମକ ଶୈଳୀ ସକ୍ରିୟ ରହିଥାଏ"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "ମେସେଜ୍ ପଠାନ୍ତୁ"
@@ -4152,6 +4241,14 @@ msgstr "ଷ୍ଟ୍ରାଇକ୍"
msgid "Strong fit"
msgstr "ଶକ୍ତିଶାଳୀ ଫିଟ୍ |"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "ଷ୍ଟାଇଲସିଟ୍ ଏଡିଟର୍"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "ଷ୍ଟାଇଲସିଟରେ ତ୍ରୁଟି ଅଛି"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "ସବ୍ରେଡିଟ୍ (Subreddit)"
@@ -4308,6 +4405,10 @@ msgstr "ଆପଣ ଖୋଜୁଥିବା ପୃଷ୍ଠାଟି ହୁଏତ
msgid "The password you entered is incorrect"
msgstr "ଆପଣ ଯେ ପାସୱାର୍ଡ ପ୍ରବେଶ କରିଛନ୍ତି ସେଥା ଭୁଲ୍"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "ରିଜ୍ୟୁମ୍ ପ୍ରିଭ୍ୟୁ ଅପଡେଟ୍ କରାଯାଇପାରିଲା ନାହିଁ। ଶେଷ ବୈଧ ପ୍ରିଭ୍ୟୁ ଏବେ ବି ଦେଖାଯାଉଛି।"
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "ଯେ ରେଜ୍ୟୁମେକୁ ଆପଣ ଆକ୍ସେସ୍ କରିବାକୁ ଚେଷ୍ଟା କରୁଛନ୍ତି ଏହା ପାସୱାର୍ଡ ସୁରକ୍ଷିତ"
@@ -4381,6 +4482,10 @@ msgstr "ଏହି ପ୍ରବେଶ ସ୍ଥାୟୀଭାବେ ଡିଲି
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "ଏହି ବୈଶିଷ୍ଟ୍ୟ ପାଇଁ ଏକ ସଂଯୁକ୍ତ AI ପ୍ରଦାତା ଆବଶ୍ୟକ। ଦୟାକରି ସେଟିଂସରେ ଗୋଟିଏ ସେଟ୍ ଅପ୍ କରନ୍ତୁ।"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "ଏହି ଉଦାହରଣ ବର୍ତ୍ତମାନ ସିମାଣ୍ଟିକ୍ CSS ସମ୍ପାଦନାକୁ ଅନୁମତି ଦିଏ ନାହିଁ।"
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "ଏହା ଆପଣଙ୍କ ରେଜ୍ୟୁମେ ପାଇଁ URL‑ଫ୍ରେଣ୍ଡଲି ନାମ।"
@@ -4639,6 +4744,10 @@ msgstr "ଅଣ୍ଡର୍ଲାଇନ୍"
msgid "Undo"
msgstr "ପୂର୍ବବତ୍ କରନ୍ତୁ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "ଷ୍ଟାଇଲସିଟ୍ ସମ୍ପାଦନକୁ ପୂର୍ବବତ୍ କରନ୍ତୁ"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "ଅସୀମିତ ରେଜ୍ୟୁମେଗୁଡିକ"
@@ -5013,6 +5122,10 @@ msgstr "ଆପଣଙ୍କ ତଥ୍ୟ ସୁରକ୍ଷିତ ଭାବରେ
msgid "Your latest changes could not be saved."
msgstr "ଆପଣଙ୍କର ନବୀନତମ ପରିବର୍ତ୍ତନଗୁଡ଼ିକୁ ସେଭ୍ କରାଯାଇପାରିଲା ନାହିଁ।"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "ଆପଣ ଏହି ସେମାଣ୍ଟିକ୍ CSS ଡ୍ରାଫ୍ଟକୁ ସ୍ପଷ୍ଟ ଭାବରେ ସକ୍ରିୟ ନକରିବା ପର୍ଯ୍ୟନ୍ତ ଆପଣଙ୍କର ଲିଗାସୀ ଷ୍ଟାଇଲ୍ ସକ୍ରିୟ ରହିବ।"
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "ଆପଣଙ୍କ ପାସୱାର୍ଡ ସଫଳତାର ସହ ପୁନଃ ସେଟ୍ କରାଯାଇଛି। ଆପଣ ଏବେ ନୂତନ ପାସୱାର୍ଡ ସହ ସାଇନ୍ ଇନ୍ କରିପାରିବେ।"
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: pl\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
@@ -163,6 +163,10 @@ msgstr "Menu konta"
msgid "Actions"
msgstr "Działania"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Aktywuj semantyczny CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Rzeczywisty rozmiar (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Aplikacje wysłane tygodniowo (ostatnie 8 tygodni)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Złożono aplikację"
@@ -493,6 +498,10 @@ msgstr "Zastosowano"
msgid "Applied Rules"
msgstr "Zastosowane zasady"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Zastosowano z ostrzeżeniami"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Arabski"
@@ -800,6 +809,14 @@ msgstr "Sprawdź swoją skrzynkę e-mail, aby znaleźć link do zresetowania has
msgid "Check your email for a link to verify your account."
msgstr "Sprawdź swoją skrzynkę e-mail, aby znaleźć link do weryfikacji konta."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Kontrola"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Sprawdzanie wersji roboczej"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Chiński (uproszczony)"
@@ -966,6 +983,10 @@ msgstr "Skopiowano konwersację."
msgid "Conversation JSON copied."
msgstr "Skopiowano plik JSON rozmowy."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Przekonwertowany projekt arkusza stylów"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Skopiowano do schowka."
@@ -989,6 +1010,10 @@ msgstr "Skopiuj kody zapasowe"
msgid "Copy JSON"
msgstr "Kopiuj JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Kopiuj arkusz stylów"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Skopiuj ten tajny klucz i użyj go w swoich aplikacjach, aby uzyskać dostęp do swoich danych."
@@ -1545,6 +1570,11 @@ msgstr "Proszę edytować {chip}"
msgid "Edit application"
msgstr "Edytuj aplikację"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Edytuj kolor {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Wprowadź hasło, aby potwierdzić konfigurację uwierzytelniania dwusk
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Wprowadź hasło, aby wyłączyć uwierzytelnianie dwuskładnikowe. Twoje konto będzie mniej bezpieczne bez włączonego 2FA."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Błąd"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Każdy wkład, mały czy duży, ma ogromne znaczenie dla projektu.<0/>Dziękujemy za wsparcie!"
@@ -1682,6 +1716,10 @@ msgstr "Każdy wkład, mały czy duży, ma ogromne znaczenie dla projektu.<0/>Dz
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Wszystko, czego potrzebujesz, aby tworzyć, dostosowywać i udostępniać profesjonalne CV. Zbudowane z myślą o prywatności, oparte na open source i całkowicie darmowe na zawsze."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Wyjdź z trybu ostrości"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Wyjdź z trybu pełnoekranowego"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Formatuj arkusz stylów"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Darmowe"
@@ -2584,6 +2626,12 @@ msgstr "Jasny"
msgid "Light theme"
msgstr "Jasny motyw"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Linia {0}, kolumna {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Wysokość wiersza"
@@ -2918,6 +2966,10 @@ msgstr "Norweski"
msgid "Not connected"
msgstr "Nie połączony"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Otwarty asystent AI"
msgid "Open Email Client"
msgstr "Otwórz klienta poczty e-mail"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Otwórz tryb ostrości"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Otwórz w kreatorze"
@@ -2992,6 +3048,7 @@ msgstr "Zgodny z OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Proszę wcisnąć <0>Enter</0>, aby otworzyć"
msgid "Preview"
msgstr "Zapowiedź"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Podczas podglądu i eksportu użyj ostatniej ważnej wersji."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Kolor główny"
@@ -3374,10 +3435,22 @@ msgstr "Reaktywne CV v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Czytanie…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Gotowy do aktywacji"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Gotowy do aktywacji z ostrzeżeniami"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Odbiorca"
@@ -3394,6 +3467,10 @@ msgstr "Prostokąt (pełna szerokość)"
msgid "Redo"
msgstr "Przerobić"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Ponów edycję arkusza stylów"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Zresetuj hasło"
msgid "Reset Style"
msgstr "Resetuj styl"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Resetuj do zastosowanego arkusza stylów"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Zresetuj swoje hasło"
@@ -3791,6 +3872,14 @@ msgstr "wybrane"
msgid "Self-Host with Docker"
msgstr "Samodzielny hosting z Dockerem"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Arkusz stylów CSS semantyczny"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Style semantyczne pozostają aktywne"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Wyślij wiadomość"
@@ -4152,6 +4241,14 @@ msgstr "Przekreślenie"
msgid "Strong fit"
msgstr "Mocne dopasowanie"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Edytor arkuszy stylów"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Arkusz stylów zawiera błędy"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "Strona, której szukasz, mogła zostać przeniesiona lub już nie istnie
msgid "The password you entered is incorrect"
msgstr "Wprowadzone hasło jest nieprawidłowe"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Nie udało się zaktualizować podglądu CV. Nadal wyświetlany jest ostatni prawidłowy podgląd."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "CV, do którego próbujesz uzyskać dostęp, jest chronione hasłem"
@@ -4381,6 +4482,10 @@ msgstr "Ten wpis zostanie trwale usunięty. Tej czynności nie można cofnąć."
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Ta funkcja wymaga podłączonego dostawcy sztucznej inteligencji. Skonfiguruj go w ustawieniach."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "W tej instancji edycja semantycznego kodu CSS nie jest obecnie możliwa."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "To przyjazna dla adresu URL nazwa Twojego CV."
@@ -4639,6 +4744,10 @@ msgstr "Podkreślenie"
msgid "Undo"
msgstr "Anulować"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Cofnij edycję arkusza stylów"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Nielimitowana liczba CV"
@@ -5013,6 +5122,10 @@ msgstr "Twoje dane są przechowywane w bezpieczny sposób i nigdy nie są udost
msgid "Your latest changes could not be saved."
msgstr "Nie udało się zapisać ostatnich zmian."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Twoje starsze style pozostaną aktywne, dopóki wyraźnie nie aktywujesz tego projektu semantycznego CSS."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Twoje hasło zostało pomyślnie zresetowane. Możesz teraz zalogować się przy użyciu nowego hasła."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: pt\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Portuguese, Brazilian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Menu da conta"
msgid "Actions"
msgstr "Ações"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Ativar CSS Semântico"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Tamanho real (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Candidaturas enviadas por semana (últimas 8 semanas)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Aplicado"
@@ -493,6 +498,10 @@ msgstr "Aplicado em"
msgid "Applied Rules"
msgstr "Regras Aplicadas"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Aplicado com ressalvas."
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Árabe"
@@ -800,6 +809,14 @@ msgstr "Verifique seu email em busca de um link para redefinir sua senha."
msgid "Check your email for a link to verify your account."
msgstr "Verifique seu email em busca de um link para verificar sua conta."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Verificando"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Verificando rascunho"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Chinês (Simplificado)"
@@ -966,6 +983,10 @@ msgstr "Conversa copiada."
msgid "Conversation JSON copied."
msgstr "JSON da conversa copiado."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Rascunho da folha de estilo convertida"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Copiado para a área de transferência."
@@ -989,6 +1010,10 @@ msgstr "Copiar códigos de backup"
msgid "Copy JSON"
msgstr "Copiar JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Copiar folha de estilo"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Copie esta chave secreta e use-a em seus aplicativos para acessar seus dados."
@@ -1545,6 +1570,11 @@ msgstr "Editar {chip}"
msgid "Edit application"
msgstr "Editar aplicativo"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Editar cor {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Digite sua senha para confirmar a configuração da autenticação de do
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Digite sua senha para desativar a autenticação de dois fatores. Sua conta ficará menos segura sem o 2FA ativado."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Erro"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Cada contribuição, grande ou pequena, faz uma enorme diferença para o projeto.<0/>Obrigado pelo seu apoio!"
@@ -1682,6 +1716,10 @@ msgstr "Cada contribuição, grande ou pequena, faz uma enorme diferença para o
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Tudo o que você precisa para criar, personalizar e compartilhar currículos profissionais. Construído com foco na privacidade, impulsionado por código aberto e completamente gratuito para sempre."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Sair do modo de foco"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Sair da tela cheia"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Formatar"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Formatar folha de estilo"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Gratuito"
@@ -2584,6 +2626,12 @@ msgstr "Claro"
msgid "Light theme"
msgstr "Tema claro"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Linha {0}, coluna {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Altura da linha"
@@ -2918,6 +2966,10 @@ msgstr "Norueguês"
msgid "Not connected"
msgstr "Não conectado"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Assistente de IA aberta"
msgid "Open Email Client"
msgstr "Abrir cliente de email"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Modo de foco aberto"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Abrir no construtor"
@@ -2992,6 +3048,7 @@ msgstr "Compatível com OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Pressione <0>Enter</0> para abrir"
msgid "Preview"
msgstr "Pré-visualização"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "A pré-visualização e a exportação utilizam a última versão válida."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Cor primária"
@@ -3374,10 +3435,22 @@ msgstr "Retomar reativo v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Currículo reativo v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Lendo…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Pronto para ativar"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Pronto para ativar com avisos"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Destinatário"
@@ -3394,6 +3467,10 @@ msgstr "Retângulo (largura total)"
msgid "Redo"
msgstr "Refazer"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Refazer edição da folha de estilo"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Redefinir senha"
msgid "Reset Style"
msgstr "Redefinir estilo"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Redefinir para a folha de estilo aplicada"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Redefinir a sua senha"
@@ -3791,6 +3872,14 @@ msgstr "selecionado"
msgid "Self-Host with Docker"
msgstr "Auto-hospedagem com Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Folha de estilo CSS semântica"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Os estilos semânticos permanecem ativos"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Enviar mensagem"
@@ -4152,6 +4241,14 @@ msgstr "Tachar"
msgid "Strong fit"
msgstr "Ajuste forte"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Editor de folhas de estilo"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "A folha de estilo contém erros."
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "A página que você está procurando pode ter sido movida ou não existi
msgid "The password you entered is incorrect"
msgstr "A senha que você digitou está incorreta"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Não foi possível atualizar a pré-visualização do currículo. A última pré-visualização válida ainda está sendo exibida."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "O currículo que você está tentando acessar está protegido por senha"
@@ -4381,6 +4482,10 @@ msgstr "Esta entrada será excluída permanentemente. Isso não pode ser desfeit
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Este recurso requer um provedor de IA conectado. Configure um nas configurações."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Esta instância não permite, no momento, a edição de CSS semântico."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Este é um nome amigável para URL do seu currículo."
@@ -4639,6 +4744,10 @@ msgstr "Sublinhar"
msgid "Undo"
msgstr "Desfazer"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Desfazer edição da folha de estilo"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Currículos ilimitados"
@@ -5013,6 +5122,10 @@ msgstr "Seus dados são armazenados com segurança e nunca são compartilhados c
msgid "Your latest changes could not be saved."
msgstr "Não foi possível salvar suas últimas alterações."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Seus estilos legados permanecerão ativos até que você ative explicitamente este rascunho de CSS Semântico."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Sua senha foi redefinida com sucesso. Agora você pode entrar com sua nova senha."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: pt\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Portuguese\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Menu da conta"
msgid "Actions"
msgstr "Ações"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Ativar CSS Semântico"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Tamanho real (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Candidaturas enviadas por semana (últimas 8 semanas)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Candidatura enviada"
@@ -493,6 +498,10 @@ msgstr "Aplicado em"
msgid "Applied Rules"
msgstr "Regras Aplicadas"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Aplicado com reservas."
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Árabe"
@@ -800,6 +809,14 @@ msgstr "Verifique o seu email para obter um link para repor a sua senha."
msgid "Check your email for a link to verify your account."
msgstr "Verifique o seu email para obter um link para verificar a sua conta."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Verificando"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Verificando rascunho"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Chinês (simplificado)"
@@ -966,6 +983,10 @@ msgstr "Conversa copiada."
msgid "Conversation JSON copied."
msgstr "JSON da conversa copiado."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Rascunho da folha de estilo convertida"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Copiado para a área de transferência."
@@ -989,6 +1010,10 @@ msgstr "Copiar códigos de backup"
msgid "Copy JSON"
msgstr "Copiar JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Copiar folha de estilo"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Copie esta chave secreta e utilize-a nas suas aplicações para aceder aos seus dados."
@@ -1545,6 +1570,11 @@ msgstr "Edite {chip}"
msgid "Edit application"
msgstr "Editar aplicação"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Editar cor {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Introduza a sua senha para confirmar a configuração da autenticação
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Introduza a sua senha para desativar a autenticação de dois fatores. A sua conta ficará menos segura sem a 2FA ativada."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Erro"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Cada contribuição, grande ou pequena, faz uma enorme diferença para o projeto.<0/>Obrigado pelo seu apoio!"
@@ -1682,6 +1716,10 @@ msgstr "Cada contribuição, grande ou pequena, faz uma enorme diferença para o
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Tudo o que precisa para criar, personalizar e partilhar currículos profissionais. Criado com a privacidade em mente, alimentado por código aberto e completamente gratuito para sempre."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Sair do modo de focagem"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Sair do ecrã inteiro"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Formato"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Formatar folha de estilos"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Grátis"
@@ -2584,6 +2626,12 @@ msgstr "Modo claro"
msgid "Light theme"
msgstr "Tema claro"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Linha {0}, coluna {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Altura da linha"
@@ -2918,6 +2966,10 @@ msgstr "Norueguês"
msgid "Not connected"
msgstr "Não conectado"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Assistente de IA aberta"
msgid "Open Email Client"
msgstr "Abrir cliente de email"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Modo de focagem aberta"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Abrir no construtor"
@@ -2992,6 +3048,7 @@ msgstr "Compatível com OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Prima <0>Enter</0> para abrir"
msgid "Preview"
msgstr "Pré-visualização"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "A pré-visualização e a exportação utilizam a última versão válida."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Cor principal"
@@ -3374,10 +3435,22 @@ msgstr "Reativo reativo v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Currículo reativo v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Leitura…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Pronto para ativar"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Pronto para ativar com avisos"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Destinatário"
@@ -3394,6 +3467,10 @@ msgstr "Retângulo (largura total)"
msgid "Redo"
msgstr "Refazer"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Refazer edição da folha de estilos"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Repor senha"
msgid "Reset Style"
msgstr "Redefinir estilo"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Repor para a folha de estilo aplicada"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Repor a sua senha"
@@ -3791,6 +3872,14 @@ msgstr "selecionado"
msgid "Self-Host with Docker"
msgstr "Faça auto-hospedagem com o Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Folha de estilo CSS semântica"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Os estilos semânticos permanecem ativos"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Enviar mensagem"
@@ -4152,6 +4241,14 @@ msgstr "Rasurar"
msgid "Strong fit"
msgstr "Ajuste forte"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Editor de folhas de estilo"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "A folha de estilos contém erros."
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "A página que procura pode ter sido movida ou já não existir."
msgid "The password you entered is incorrect"
msgstr "A senha que introduziu está incorreta"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Não foi possível atualizar a pré-visualização do currículo. A última pré-visualização válida ainda está a ser apresentada."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "O currículo a que está a tentar aceder está protegido por senha"
@@ -4381,6 +4482,10 @@ msgstr "Esta entrada será eliminada permanentemente. Isto não pode ser anulado
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Este recurso requer um fornecedor de IA conectado. Configure um nas definições."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Esta instância não permite, de momento, a edição de CSS semântico."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Este é um nome compatível com URL para o seu currículo."
@@ -4639,6 +4744,10 @@ msgstr "Sublinhar"
msgid "Undo"
msgstr "Desfazer"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Desfazer edição da folha de estilos"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Currículos ilimitados"
@@ -5013,6 +5122,10 @@ msgstr "Os seus dados são armazenados em segurança e nunca são partilhados co
msgid "Your latest changes could not be saved."
msgstr "Não foi possível guardar as suas últimas alterações."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Os seus estilos legados permanecerão ativos até que ative explicitamente este rascunho de CSS Semântico."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "A sua senha foi reposta com sucesso. Já pode iniciar sessão com a sua nova senha."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ro\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Romanian\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100>0 && n%100<20)) ? 1 : 2);\n"
@@ -163,6 +163,10 @@ msgstr "Meniul Cont"
msgid "Actions"
msgstr "Acțiuni"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Activează CSS-ul semantic"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Dimensiune reală (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Candidaturi trimise pe săptămână (ultimele 8 săptămâni)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Candidatură trimisă"
@@ -493,6 +498,10 @@ msgstr "Aplicat pe"
msgid "Applied Rules"
msgstr "Reguli aplicate"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Aplicat cu avertismente"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Arabă"
@@ -800,6 +809,14 @@ msgstr "Verificați-vă e-mailul pentru un link de resetare a parolei."
msgid "Check your email for a link to verify your account."
msgstr "Verificați-vă e-mailul pentru un link de verificare a contului."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Control"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Verificare schiță"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Chineză (simplificată)"
@@ -966,6 +983,10 @@ msgstr "Conversație copiată."
msgid "Conversation JSON copied."
msgstr "JSON-ul conversației a fost copiat."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Schiță de foaie de stil convertită"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Copiat în clipboard."
@@ -989,6 +1010,10 @@ msgstr "Copiază codurile de rezervă"
msgid "Copy JSON"
msgstr "Copiază JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Copiați foaia de stil"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Copiați această cheie secretă și folosiți-o în aplicațiile dvs. pentru a vă accesa datele."
@@ -1545,6 +1570,11 @@ msgstr "Editează {chip}"
msgid "Edit application"
msgstr "Editați aplicația"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Editează culoarea {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Introduceți parola pentru a confirma configurarea autentificării cu do
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Introduceți parola pentru a dezactiva autentificarea cu doi factori. Contul va fi mai puțin sigur fără 2FA activat."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Eroare"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Fiecare contribuție, mare sau mică, face o diferență uriașă pentru proiect.<0/>Vă mulțumim pentru sprijin!"
@@ -1682,6 +1716,10 @@ msgstr "Fiecare contribuție, mare sau mică, face o diferență uriașă pentru
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Tot ce aveți nevoie pentru a crea, personaliza și partaja CV-uri profesionale. Construit având confidențialitatea în minte, bazat pe open source și complet gratuit pentru totdeauna."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Ieșiți din modul de focalizare"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Ieșire din ecran complet"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Foaie de stil de format"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Gratuit"
@@ -2584,6 +2626,12 @@ msgstr "Deschisă"
msgid "Light theme"
msgstr "Temă deschisă"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Linia {0}, coloana {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Înălțimea liniei"
@@ -2918,6 +2966,10 @@ msgstr "Norvegiană"
msgid "Not connected"
msgstr "Neconectat"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Nu ești sigur ce să scrii?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Asistent AI deschis"
msgid "Open Email Client"
msgstr "Deschide clientul de e-mail"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Deschide modul de focalizare"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Deschide în constructor"
@@ -2992,6 +3048,7 @@ msgstr "Compatibil cu OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Apăsați <0>Enter</0> pentru a deschide"
msgid "Preview"
msgstr "Previzualizare"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Previzualizarea și exportarea utilizează ultima versiune validă."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Culoare primară"
@@ -3374,10 +3435,22 @@ msgstr "CV reactiv v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "CV reactiv v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Citiți ghidul Aplicarea stilurilor personalizate."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Lectură…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Gata de activare"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Gata de activare cu avertismente"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Destinatar"
@@ -3394,6 +3467,10 @@ msgstr "Dreptunghi (lățime completă)"
msgid "Redo"
msgstr "Refaceți"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Refaceți editarea foii de stil"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Resetați parola"
msgid "Reset Style"
msgstr "Resetare stil"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Resetare la foaia de stil aplicată"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Resetați-vă parola"
@@ -3791,6 +3872,14 @@ msgstr "selectat"
msgid "Self-Host with Docker"
msgstr "Self-host cu Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Foaie de stil CSS semantică"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Stilurile semantice rămân active"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Trimite mesaj"
@@ -4152,6 +4241,14 @@ msgstr "Tăiat"
msgid "Strong fit"
msgstr "Potrivire puternică"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Editor de foi de stil"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Foaia de stil conține erori"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "Pagina pe care o căutați s-ar putea să fi fost mutată sau să nu mai
msgid "The password you entered is incorrect"
msgstr "Parola introdusă este incorectă"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Previzualizarea CV-ului nu a putut fi actualizată. Ultima previzualizare validă este încă afișată."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "CV-ul la care încercați să accesați este protejat prin parolă"
@@ -4381,6 +4482,10 @@ msgstr "Această intrare va fi ștearsă definitiv. Această acțiune nu poate f
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Această funcție necesită un furnizor de inteligență artificială conectat. Vă rugăm să configurați unul în setări."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Această instanță nu permite în prezent editarea CSS semantică."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Acesta este un nume prietenos cu URL-ul pentru CV."
@@ -4639,6 +4744,10 @@ msgstr "Subliniat"
msgid "Undo"
msgstr "Anula"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Anulează editarea foii de stil"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "CV-uri nelimitate"
@@ -5013,6 +5122,10 @@ msgstr "Datele dvs. sunt stocate în siguranță și nu sunt niciodată partajat
msgid "Your latest changes could not be saved."
msgstr "Ultimele modificări ale dvs. nu au putut fi salvate."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Stilurile tale vechi rămân active până când activezi explicit această schiță CSS semantică."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Parola a fost resetată cu succes. Vă puteți autentifica acum cu noua parolă."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ru\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
@@ -163,6 +163,10 @@ msgstr "Меню учетной записи"
msgid "Actions"
msgstr "Действия"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Активировать семантический CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Фактический размер (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Заявки, отправленные за неделю (последние 8 недель)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Отклик отправлен"
@@ -493,6 +498,10 @@ msgstr "Применяется на"
msgid "Applied Rules"
msgstr "Применяемые правила"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Применяется с предупреждениями."
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Арабский"
@@ -800,6 +809,14 @@ msgstr "Проверьте свою электронную почту: в пис
msgid "Check your email for a link to verify your account."
msgstr "Проверьте свою электронную почту: в письме есть ссылка для подтверждения учетной записи."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Проверка"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Проверка черновика"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Китайский (упрощенный)"
@@ -966,6 +983,10 @@ msgstr "Переписка скопирована."
msgid "Conversation JSON copied."
msgstr "JSON-данные диалога скопированы."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Преобразованный черновик таблицы стилей"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Скопировано в буфер обмена."
@@ -989,6 +1010,10 @@ msgstr "Скопировать резервные коды"
msgid "Copy JSON"
msgstr "Скопировать JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Скопировать таблицу стилей"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Скопируйте этот секретный ключ и используйте его в своих приложениях для доступа к данным."
@@ -1545,6 +1570,11 @@ msgstr "Редактировать {chip}"
msgid "Edit application"
msgstr "Редактировать заявку"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Изменить цвет {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Введите пароль, чтобы подтвердить наст
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Введите пароль, чтобы отключить двухфакторную аутентификацию. Без 2FA ваша учетная запись будет менее защищена."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Ошибка"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Каждый вклад, большой или маленький, имеет огромное значение для проекта.<0/>Спасибо за вашу поддержку!"
@@ -1682,6 +1716,10 @@ msgstr "Каждый вклад, большой или маленький, им
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Все, что нужно для создания, настройки и обмена профессиональными резюме. Создано с заботой о конфиденциальности, работает на базе открытого исходного кода и навсегда останется полностью бесплатным."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Выйти из режима фокусировки"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Выйти из полноэкранного режима"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Формат"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Формат таблицы стилей"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Бесплатно"
@@ -2584,6 +2626,12 @@ msgstr "Светлая"
msgid "Light theme"
msgstr "Светлая тема"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Строка {0}, столбец {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Высота строки"
@@ -2918,6 +2966,10 @@ msgstr "Норвежский"
msgid "Not connected"
msgstr "Не подключено"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Открытый ИИ-помощник"
msgid "Open Email Client"
msgstr "Открыть почтовый клиент"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Открытый режим фокусировки"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Открыть в конструкторе"
@@ -2992,6 +3048,7 @@ msgstr "Совместимость с OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Нажмите <0>Enter</0>, чтобы открыть"
msgid "Preview"
msgstr "Предварительный просмотр"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Для предварительного просмотра и экспорта используется последняя действующая версия."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Основной цвет"
@@ -3374,10 +3435,22 @@ msgstr "Реактивное возобновление v<0>{__APP_VERSION__}</0
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Чтение…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Готово к активации"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Готов к активации с предупреждениями."
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Получатель"
@@ -3394,6 +3467,10 @@ msgstr "Прямоугольник (на всю ширину)"
msgid "Redo"
msgstr "Переделать"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Повторить редактирование таблицы стилей"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Сбросить пароль"
msgid "Reset Style"
msgstr "Сбросить стиль"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Сбросить до примененной таблицы стилей"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Сбросить пароль"
@@ -3791,6 +3872,14 @@ msgstr "выбрано"
msgid "Self-Host with Docker"
msgstr "Хостинг на Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Семантическая таблица стилей CSS"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Семантические стили остаются активными."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Отправить сообщение"
@@ -4152,6 +4241,14 @@ msgstr "Зачеркнутый"
msgid "Strong fit"
msgstr "Сильная посадка"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Редактор таблиц стилей"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "В таблице стилей обнаружены ошибки."
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Сабреддит"
@@ -4308,6 +4405,10 @@ msgstr "Возможно, искомая вами страница была пе
msgid "The password you entered is incorrect"
msgstr "Введенный пароль неверен"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Не удалось обновить предварительный просмотр резюме. По-прежнему отображается последний корректный предварительный просмотр."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Резюме, к которому вы пытаетесь получить доступ, защищено паролем"
@@ -4381,6 +4482,10 @@ msgstr "Эта запись будет удалена навсегда. Это
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Для работы этой функции требуется подключенный поставщик ИИ. Пожалуйста, настройте его в параметрах."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "В настоящее время данная версия не позволяет редактировать семантические CSS-стили."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Это удобное для URL название вашего резюме."
@@ -4639,6 +4744,10 @@ msgstr "Подчеркивание"
msgid "Undo"
msgstr "Отменить"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Отменить редактирование таблицы стилей"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Неограниченное количество резюме"
@@ -5013,6 +5122,10 @@ msgstr "Ваши данные надежно хранятся и никогда
msgid "Your latest changes could not be saved."
msgstr "Ваши последние изменения не удалось сохранить."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Ваши устаревшие стили останутся активными до тех пор, пока вы явно не активируете этот черновой вариант семантического CSS."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Ваш пароль был успешно сброшен. Теперь вы можете войти с новым паролем."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: sk\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Slovak\n"
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
@@ -163,6 +163,10 @@ msgstr "Ponuka účtu"
msgid "Actions"
msgstr "Akcie"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Aktivovať sémantický CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Skutočná veľkosť (100 %)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Žiadosti odoslané za týždeň (posledných 8 týždňov)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Odoslané"
@@ -493,6 +498,10 @@ msgstr "Aplikované dňa"
msgid "Applied Rules"
msgstr "Použité pravidlá"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Použité s upozorneniami"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Arabčina"
@@ -800,6 +809,14 @@ msgstr "Skontroluj svoj e‑mail, nájdeš tam odkaz na obnovenie hesla."
msgid "Check your email for a link to verify your account."
msgstr "Skontroluj svoj e‑mail, nájdeš tam odkaz na overenie účtu."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Kontrola"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Kontrola konceptu"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Čínština (zjednodušená)"
@@ -966,6 +983,10 @@ msgstr "Konverzácia bola skopírovaná."
msgid "Conversation JSON copied."
msgstr "JSON konverzácie bol skopírovaný."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Konvertovaný koncept štýlového hárka"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Skopírované do schránky."
@@ -989,6 +1010,10 @@ msgstr "Skopírovať záložné kódy"
msgid "Copy JSON"
msgstr "Kopírovať JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Kopírovať šablónu so štýlmi"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Skopíruj tento tajný kľúč a použi ho vo svojich aplikáciách na prístup k svojim dátam."
@@ -1545,6 +1570,11 @@ msgstr "Upraviť {chip}"
msgid "Edit application"
msgstr "Upraviť aplikáciu"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Upraviť farbu {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Zadaj svoje heslo na potvrdenie nastavenia dvojfaktorového overenia. Po
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Zadaj svoje heslo na vypnutie dvojfaktorového overenia. Bez zapnutého 2FA bude tvoj účet menej zabezpečený."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Chyba"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Každý príspevok, veľký či malý, má pre projekt obrovský význam.<0/>Ďakujeme za tvoju podporu!"
@@ -1682,6 +1716,10 @@ msgstr "Každý príspevok, veľký či malý, má pre projekt obrovský význam
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Všetko, čo potrebuješ na vytvorenie, prispôsobenie a zdieľanie profesionálnych životopisov. Vytvorené s dôrazom na súkromie, poháňané open source a úplne zadarmo – navždy."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Ukončiť režim zaostrenia"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Ukončiť celú obrazovku"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Formát"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Formátovať štýlový hárok"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Zadarmo"
@@ -2584,6 +2626,12 @@ msgstr "Svetlá"
msgid "Light theme"
msgstr "Svetlá téma"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Riadok {0}, stĺpec {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Riadkovanie"
@@ -2918,6 +2966,10 @@ msgstr "Nórčina"
msgid "Not connected"
msgstr "Nepripojené"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Otvorený asistent s umelou inteligenciou"
msgid "Open Email Client"
msgstr "Otvoriť e‑mailového klienta"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Otvoriť režim zaostrenia"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Otvoriť v editore"
@@ -2992,6 +3048,7 @@ msgstr "Kompatibilné s OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Stlačením tlačidla <0>Enter</0> otvoríte"
msgid "Preview"
msgstr "Náhľad"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Pri ukážke a exporte sa použije posledná platná verzia."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Hlavná farba"
@@ -3374,10 +3435,22 @@ msgstr "Reaktívny životopis v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktívny životopis v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Číta sa…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Pripravené na aktiváciu"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Pripravené na aktiváciu s upozorneniami"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Príjemca"
@@ -3394,6 +3467,10 @@ msgstr "Obdĺžnik (plná šírka)"
msgid "Redo"
msgstr "Znovu"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Znovu upraviť štýlový hárok"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Obnoviť heslo"
msgid "Reset Style"
msgstr "Obnoviť štýl"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Obnoviť na použitý štýlový hárok"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Obnov svoje heslo"
@@ -3791,6 +3872,14 @@ msgstr "vybrané"
msgid "Self-Host with Docker"
msgstr "Vlastný hosting cez Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Sémantický CSS štýlový hárok"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Sémantické štýly zostávajú aktívne"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Odoslať správu"
@@ -4152,6 +4241,14 @@ msgstr "Prečiarknuté"
msgid "Strong fit"
msgstr "Silný strih"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Editor štýlov"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Štýlový hárok obsahuje chyby"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "Stránka, ktorú hľadáte, mohla byť presunutá alebo už neexistuje."
msgid "The password you entered is incorrect"
msgstr "Zadané heslo je nesprávne"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Ukážku životopisu sa nepodarilo aktualizovať. Stále sa zobrazuje posledná platná ukážka."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Životopis, ku ktorému sa snažíš pristúpiť, je chránený heslom"
@@ -4381,6 +4482,10 @@ msgstr "Tento záznam bude natrvalo odstránený. Túto akciu nie je možné vr
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Táto funkcia vyžaduje pripojeného poskytovateľa umelej inteligencie. Nastavte si ho v nastaveniach."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Táto inštancia momentálne neumožňuje úpravu sémantického CSS."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Toto je URL‑prívetivý názov tvojho životopisu."
@@ -4639,6 +4744,10 @@ msgstr "Podčiarknuté"
msgid "Undo"
msgstr "Späť"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Vrátiť späť úpravu štýlového hárka"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Neobmedzený počet životopisov"
@@ -5013,6 +5122,10 @@ msgstr "Tvoje dáta sú bezpečne uložené a nikdy sa nezdieľajú s tretími s
msgid "Your latest changes could not be saved."
msgstr "Vaše posledné zmeny sa nepodarilo uložiť."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Vaše staršie štýly zostanú aktívne, kým explicitne neaktivujete tento koncept sémantického CSS."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Tvoje heslo bolo úspešne obnovené. Teraz sa môžeš prihlásiť s novým heslom."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: sl\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Slovenian\n"
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n"
@@ -163,6 +163,10 @@ msgstr "Meni računa"
msgid "Actions"
msgstr "Dejanja"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Aktiviraj semantični CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Dejanska velikost (100 %)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Prijave, poslane na teden (zadnjih 8 tednov)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Prijavljeno"
@@ -493,6 +498,10 @@ msgstr "Uporabljeno na"
msgid "Applied Rules"
msgstr "Uporabljena pravila"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Uporabljeno z opozorili"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Arabščina"
@@ -800,6 +809,14 @@ msgstr "Preverite svoj e-poštni naslov za povezavo za ponastavitev gesla."
msgid "Check your email for a link to verify your account."
msgstr "Preverite svoj e-poštni naslov za povezavo za potrditev računa."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Preverjanje"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Preverjanje osnutka"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Kitajščina (poenostavljena)"
@@ -966,6 +983,10 @@ msgstr "Pogovor je kopiran."
msgid "Conversation JSON copied."
msgstr "JSON pogovora je bil kopiran."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Pretvorjen osnutek slogovne predloge"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Kopirano v odložišče."
@@ -989,6 +1010,10 @@ msgstr "Kopiraj rezervne kode"
msgid "Copy JSON"
msgstr "Kopiraj JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Kopiraj slogovno predlogo"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Kopirajte to skrivno kodo in jo uporabite v svojih aplikacijah za dostop do svojih podatkov."
@@ -1545,6 +1570,11 @@ msgstr "Uredi {chip}"
msgid "Edit application"
msgstr "Uredi aplikacijo"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Uredi barvo {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Vnesite svoje geslo, da potrdite nastavitev dvostopenjskega preverjanja
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Vnesite svoje geslo za onemogočanje dvostopenjskega preverjanja pristnosti. Vaš račun bo brez omogočenega 2FA manj varen."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Napaka"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Vsak prispevek, velik ali majhen, veliko pomeni projektu.<0/>Hvala za vašo podporo!"
@@ -1682,6 +1716,10 @@ msgstr "Vsak prispevek, velik ali majhen, veliko pomeni projektu.<0/>Hvala za va
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Vse, kar potrebujete za ustvarjanje, prilagajanje in deljenje strokovnih življenjepisov. Zgrajeno z mislijo na zasebnost, temelji na odprti kodi in je popolnoma brezplačno za vedno."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Izhod iz načina ostrenja"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Izhod iz celozaslonskega načina"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Oblikovanje slogovne predloge"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Brezplačno"
@@ -2584,6 +2626,12 @@ msgstr "Svetlo"
msgid "Light theme"
msgstr "Svetla tema"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Vrstica {0}, stolpec {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Višina vrstice"
@@ -2918,6 +2966,10 @@ msgstr "norveščina"
msgid "Not connected"
msgstr "Ni povezano"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Odprti pomočnik umetne inteligence"
msgid "Open Email Client"
msgstr "Odpri e-poštni odjemalec"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Odpri način ostrenja"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Odpri v graditelju"
@@ -2992,6 +3048,7 @@ msgstr "Združljivo z OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Pritisnite <0>Enter</0>, da odprete"
msgid "Preview"
msgstr "Predogled"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Predogled in izvoz uporabljata zadnjo veljavno različico."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primarna barva"
@@ -3374,10 +3435,22 @@ msgstr "Reaktivni življenjepis v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktivni življenjepis v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Branje ..."
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Pripravljeno za aktivacijo"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Pripravljeno za aktivacijo z opozorili"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Prejemnik"
@@ -3394,6 +3467,10 @@ msgstr "Pravokotnik (polna širina)"
msgid "Redo"
msgstr "Ponovi"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Ponovi urejanje slogovne predloge"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Ponastavi geslo"
msgid "Reset Style"
msgstr "Ponastavi slog"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Ponastavi na uporabljeno slogovno predlogo"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Ponastavite svoje geslo"
@@ -3791,6 +3872,14 @@ msgstr "izbrano"
msgid "Self-Host with Docker"
msgstr "Lastno gostovanje z Dockerjem"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Semantični CSS slogovni predlog"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Semantični slogi ostajajo aktivni"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Pošlji sporočilo"
@@ -4152,6 +4241,14 @@ msgstr "Prečrtano"
msgid "Strong fit"
msgstr "Močno prileganje"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Urejevalnik slogovnih predlog"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Slogovna predloga vsebuje napake"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Podreddit"
@@ -4308,6 +4405,10 @@ msgstr "Stran, ki jo iščete, je bila morda premaknjena ali pa ne obstaja več.
msgid "The password you entered is incorrect"
msgstr "Vnesli ste napačno geslo"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Predogleda življenjepisa ni bilo mogoče posodobiti. Še vedno je prikazan zadnji veljaven predogled."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Življenjepis, do katerega želite dostopati, je zaščiten z geslom"
@@ -4381,6 +4482,10 @@ msgstr "Ta vnos bo trajno izbrisan. Tega ni mogoče razveljaviti."
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Ta funkcija zahteva povezanega ponudnika umetne inteligence. Nastavite ga v nastavitvah."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Ta primerek trenutno ne dovoljuje urejanja semantičnega CSS-ja."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "To je ime vašega življenjepisa, ki je prijazno do URL-jev."
@@ -4639,6 +4744,10 @@ msgstr "Podčrtano"
msgid "Undo"
msgstr "Razveljavi"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Razveljavi urejanje slogovne predloge"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Neomejeni življenjepisi"
@@ -5013,6 +5122,10 @@ msgstr "Vaši podatki so varno shranjeni in se nikoli ne delijo s tretjimi oseba
msgid "Your latest changes could not be saved."
msgstr "Vaših zadnjih sprememb ni bilo mogoče shraniti."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Vaši podedovani slogi ostanejo aktivni, dokler izrecno ne aktivirate tega osnutka semantičnega CSS-ja."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Vaše geslo je bilo uspešno ponastavljeno. Zdaj se lahko prijavite z novim geslom."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: sq\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Albanian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Menuja e llogarisë"
msgid "Actions"
msgstr "Veprime"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Aktivizo CSS-në Semantike"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Madhësia reale (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Aplikimet e dërguara për javë (8 javët e fundit)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Aplikuar"
@@ -493,6 +498,10 @@ msgstr "Aplikuar në"
msgid "Applied Rules"
msgstr "Rregullat e zbatuara"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Zbatuar me paralajmërime"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Arabisht"
@@ -800,6 +809,14 @@ msgstr "Kontrolloni emailin tuaj për një link për të rivendosur fjalëkalimi
msgid "Check your email for a link to verify your account."
msgstr "Kontrolloni emailin tuaj për një link për të verifikuar llogarinë tuaj."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Duke kontrolluar"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Duke kontrolluar draftin"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Kinezçe (E thjeshtuar)"
@@ -966,6 +983,10 @@ msgstr "Biseda u kopjua."
msgid "Conversation JSON copied."
msgstr "JSON i bisedës u kopjua."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Drafti i konvertuar i fletës së stilit"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Kopjuar në kujtesën e fragmenteve."
@@ -989,6 +1010,10 @@ msgstr "Kopjo kodet rezervë"
msgid "Copy JSON"
msgstr "Kopjo JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Kopjo fletën e stilit"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Kopjoni këtë çelës sekret dhe përdoreni në aplikacionet tuaja për të aksesuar të dhënat tuaja."
@@ -1545,6 +1570,11 @@ msgstr "Redakto {chip}"
msgid "Edit application"
msgstr "Redakto aplikacionin"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Modifiko ngjyrën {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Shkruani fjalëkalimin tuaj për të konfirmuar konfigurimin e vërtetim
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Shkruani fjalëkalimin tuaj për të çaktivizuar vërtetimin me dy faktorë. Llogaria juaj do të jetë më pak e sigurt pa 2FA të aktivizuar."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Gabim"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Çdo kontribut, i madh apo i vogël, bën një ndryshim të madh për projektin.<0/>Faleminderit për mbështetjen tuaj!"
@@ -1682,6 +1716,10 @@ msgstr "Çdo kontribut, i madh apo i vogël, bën një ndryshim të madh për pr
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Gjithçka që ju nevojitet për të krijuar, personalizuar dhe shpërndarë CV profesionale. Ndërtuar me fokus privatësinë, i fuqizuar nga burimi i hapur dhe krejtësisht falas përgjithmonë."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Dil nga modaliteti i fokusit"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Dil nga ekrani i plotë"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Formati"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Formato fletën e stilit"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Falas"
@@ -2584,6 +2626,12 @@ msgstr "E çelët"
msgid "Light theme"
msgstr "Temë e çelët"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Rreshti {0}, kolona {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Lartësia e rreshtit"
@@ -2918,6 +2966,10 @@ msgstr "Norvegjisht"
msgid "Not connected"
msgstr "I palidhur"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Asistent i hapur i inteligjencës artificiale"
msgid "Open Email Client"
msgstr "Hap klientin e emailit"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Hap modalitetin e fokusit"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Hap në ndërtues"
@@ -2992,6 +3048,7 @@ msgstr "I pajtueshëm me OpenAI"
msgid "OpenRouter"
msgstr "Ruter i hapur"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Shtypni <0>Enter</0> për të hapur"
msgid "Preview"
msgstr "Pamje paraprake"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Parapamja dhe eksportimi përdorin versionin e fundit të vlefshëm."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Ngjyra kryesore"
@@ -3374,10 +3435,22 @@ msgstr "Rezyme Reaktive v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Duke lexuar…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Gati për t'u aktivizuar"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Gati për t'u aktivizuar me paralajmërime"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Marrësi"
@@ -3394,6 +3467,10 @@ msgstr "Drejtkëndësh (gjerësi e plotë)"
msgid "Redo"
msgstr "Ribëj"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Ribëj ndryshimin e fletës së stilit"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Rivendos fjalëkalimin"
msgid "Reset Style"
msgstr "Rivendos stilin"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Rivendos në fletën e stilit të aplikuar"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Rivendosni fjalëkalimin tuaj"
@@ -3791,6 +3872,14 @@ msgstr "të zgjedhura"
msgid "Self-Host with Docker"
msgstr "Self-host me Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Fletë stili semantike CSS"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Stilet semantike mbeten aktive"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Dërgo mesazh"
@@ -4152,6 +4241,14 @@ msgstr "Heqje"
msgid "Strong fit"
msgstr "Përshtatje e fortë"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Redaktuesi i fletës së stilit"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Fleta e stilit ka gabime"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "Faqja që po kërkoni mund të jetë zhvendosur ose nuk ekziston më."
msgid "The password you entered is incorrect"
msgstr "Fjalëkalimi që keni futur është i pasaktë"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Pamja paraprake e CV-së nuk mund të përditësohej. Pamja paraprake e fundit e vlefshme shfaqet ende."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "CV-ja që po përpiqeni të aksesoni është e mbrojtur me fjalëkalim"
@@ -4381,6 +4482,10 @@ msgstr "Kjo hyrje do të fshihet përgjithmonë. Kjo nuk mund të zhbëhet."
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Kjo veçori kërkon një ofrues të lidhur të inteligjencës artificiale. Ju lutemi konfiguroni një të tillë në cilësime."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Kjo instancë aktualisht nuk lejon redaktimin semantik të CSS-së."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Ky është një emër miqësor për URL për CV-në tuaj."
@@ -4639,6 +4744,10 @@ msgstr "Nënvizo"
msgid "Undo"
msgstr "Anulo"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Anulo ndryshimin e fletës së stilit"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "CV të pakufizuara"
@@ -5013,6 +5122,10 @@ msgstr "Të dhënat tuaja ruhen në mënyrë të sigurt dhe nuk ndahen kurrë me
msgid "Your latest changes could not be saved."
msgstr "Ndryshimet tuaja të fundit nuk mund të ruheshin."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Stilet tuaja të trashëguara mbeten aktive derisa ta aktivizoni në mënyrë të qartë këtë draft Semantic CSS."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Fjalëkalimi juaj u rivendos me sukses. Tani mund të hyni me fjalëkalimin tuaj të ri."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: sr\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Serbian (Cyrillic)\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
@@ -163,6 +163,10 @@ msgstr "Мени налога"
msgid "Actions"
msgstr "Радње"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Активирајте семантички CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Стварна величина (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Пријаве послате недељно (последњих 8 недеља)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Пријављено"
@@ -493,6 +498,10 @@ msgstr "Примењено на"
msgid "Applied Rules"
msgstr "Примењена правила"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Примењено са упозорењима"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Арапски"
@@ -800,6 +809,14 @@ msgstr "Проверите е-пошту за везу за ресетовање
msgid "Check your email for a link to verify your account."
msgstr "Проверите е-пошту за везу да верификујете налог."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Провера"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Текућа верзија"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Кинески (поједностављени)"
@@ -966,6 +983,10 @@ msgstr "Разговор је копиран."
msgid "Conversation JSON copied."
msgstr "JSON датотека разговора је копирана."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Конвертована нацртна верзија стилског листа"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Копирано у међуспремник."
@@ -989,6 +1010,10 @@ msgstr "Копирај резервне кодове"
msgid "Copy JSON"
msgstr "Копирај JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Копирај стилски лист"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Копирајте овај тајни кључ и користите га у својим апликацијама за приступ вашим подацима."
@@ -1545,6 +1570,11 @@ msgstr "Уреди {chip}"
msgid "Edit application"
msgstr "Уреди апликацију"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Измени боју {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Унесите своју лозинку да потврдите под
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Унесите своју лозинку да бисте онемогућили двофакторску аутентификацију. Ваш налог ће бити мање безбедан без омогућеног 2FA."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Грешка"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Сваки допринос, велики или мали, прави велику разлику за пројекат.<0/>Хвала вам на подршци!"
@@ -1682,6 +1716,10 @@ msgstr "Сваки допринос, велики или мали, прави в
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Све што вам је потребно да креирате, прилагодите и делите професионалне резимее. Направљено имајући у виду приватност, базирано на отвореном коду и потпуно бесплатно заувек."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Изађи из режима фокусирања"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Изађи из целог екрана"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Формат"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Форматирање стилског листа"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Бесплатно"
@@ -2584,6 +2626,12 @@ msgstr "Светла"
msgid "Light theme"
msgstr "Светла тема"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Ред {0}, колона {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Висина реда"
@@ -2918,6 +2966,10 @@ msgstr "Норвешки"
msgid "Not connected"
msgstr "Није повезано"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Отворите AI асистент"
msgid "Open Email Client"
msgstr "Отвори клијент за е-пошту"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Отвори режим фокуса"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Отвори у креатору"
@@ -2992,6 +3048,7 @@ msgstr "Компатибилно са OpenAI-ом"
msgid "OpenRouter"
msgstr "Отворени рутер"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Притисните <0>Enter</0> да бисте отворили"
msgid "Preview"
msgstr "Преглед"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Преглед и извоз користе последњу важећу верзију."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Примарна боја"
@@ -3374,10 +3435,22 @@ msgstr "Реактивни резиме v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Реактивни резиме v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Читање…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Спремно за активирање"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Спремно за активирање са упозорењима"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Прималац"
@@ -3394,6 +3467,10 @@ msgstr "Правоугаоник (пуна ширина)"
msgid "Redo"
msgstr "Понови"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Понови измену стилског листа"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Ресетуј лозинку"
msgid "Reset Style"
msgstr "Ресетуј стил"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Врати на примењени стилски лист"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Ресетујте своју лозинку"
@@ -3791,6 +3872,14 @@ msgstr "изабрани"
msgid "Self-Host with Docker"
msgstr "Самохостовање помоћу Docker-а"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Семантички CSS стилски лист"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Семантички стилови остају активни"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Пошаљи поруку"
@@ -4152,6 +4241,14 @@ msgstr "Прецртано"
msgid "Strong fit"
msgstr "Снажно уклапање"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Уређивач стилских листова"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Стилски лист садржи грешке"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Субредит"
@@ -4308,6 +4405,10 @@ msgstr "Страница коју тражите је можда премешт
msgid "The password you entered is incorrect"
msgstr "Лозинка коју сте унели је нетачна"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Преглед резимеа није могао бити ажуриран. Последњи важећи преглед је и даље приказан."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Резиме коме покушавате да приступите је заштићен лозинком"
@@ -4381,6 +4482,10 @@ msgstr "Овај унос ће бити трајно избрисан. Ово с
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Ова функција захтева повезаног добављача вештачке интелигенције. Молимо вас да га подесите у подешавањима."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Ова инстанца тренутно не дозвољава уређивање семантичког CSS-а."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Ово је URL-пријатељско име за ваш резиме."
@@ -4639,6 +4744,10 @@ msgstr "Подвучено"
msgid "Undo"
msgstr "Поништи"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Поништи измену стилског листа"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Неограничени резимеи"
@@ -5013,6 +5122,10 @@ msgstr "Ваши подаци се чувају безбедно и никада
msgid "Your latest changes could not be saved."
msgstr "Ваше последње измене нису могле бити сачуване."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Ваши старији стилови остају активни док експлицитно не активирате ову семантичку CSS верзију."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Ваша лозинка је успешно ресетована. Сада можете да се пријавите новом лозинком."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: sv\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Konto-meny"
msgid "Actions"
msgstr "Åtgärder"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Aktivera semantisk CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Verklig storlek (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Ansökningar skickade per vecka (senaste 8 veckorna)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Ansökt"
@@ -493,6 +498,10 @@ msgstr "Tillämpas på"
msgid "Applied Rules"
msgstr "Tillämpade regler"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Tillämpas med varningar"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Arabiska"
@@ -800,6 +809,14 @@ msgstr "Kontrollera din e-post för en länk för att återställa ditt lösenor
msgid "Check your email for a link to verify your account."
msgstr "Kontrollera din e-post för en länk för att verifiera ditt konto."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Kontroll"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Kontrollerar utkast"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Kinesiska (förenklad)"
@@ -966,6 +983,10 @@ msgstr "Konversationen kopierades."
msgid "Conversation JSON copied."
msgstr "Konversationens JSON kopierades."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Konverterat utkast till stilark"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Kopierade till urklipp."
@@ -989,6 +1010,10 @@ msgstr "Kopiera säkerhetskoder"
msgid "Copy JSON"
msgstr "Kopiera JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Kopiera stilark"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Kopiera denna hemliga nyckel och använd den i dina applikationer för att komma åt din data."
@@ -1545,6 +1570,11 @@ msgstr "Redigera {chip}"
msgid "Edit application"
msgstr "Redigera ansökan"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Redigera färg {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Ange ditt lösenord för att bekräfta att du vill ställa in tvåfaktor
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Ange ditt lösenord för att inaktivera tvåfaktorsautentisering. Ditt konto blir mindre säkert utan aktiverad 2FA."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Fel"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Varje bidrag, stort som litet, gör en enorm skillnad för projektet.<0/>Tack för ditt stöd!"
@@ -1682,6 +1716,10 @@ msgstr "Varje bidrag, stort som litet, gör en enorm skillnad för projektet.<0/
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Allt du behöver för att skapa, anpassa och dela professionella CV:n. Byggt med fokus på integritet, drivet av öppen källkod och helt gratis för alltid."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Avsluta fokusläge"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Avsluta helskärm"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Formatera stilark"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Gratis"
@@ -2584,6 +2626,12 @@ msgstr "Ljus"
msgid "Light theme"
msgstr "Ljust tema"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Rad {0}, kolumn {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Radavstånd"
@@ -2918,6 +2966,10 @@ msgstr "Norska"
msgid "Not connected"
msgstr "Inte ansluten"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Öppna AI-assistenten"
msgid "Open Email Client"
msgstr "Öppna e-postklient"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Öppna fokusläge"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Öppna i verktyget"
@@ -2992,6 +3048,7 @@ msgstr "OpenAI-kompatibel"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Tryck på <0>Enter</0> för att öppna"
msgid "Preview"
msgstr "Förhandsvisning"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Förhandsgranska och exportera med den senast giltiga versionen."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primärfärg"
@@ -3374,10 +3435,22 @@ msgstr "Reaktivt CV v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktivt CV v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Läsning…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Klar att aktiveras"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Klar att aktiveras med varningar"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Mottagare"
@@ -3394,6 +3467,10 @@ msgstr "Rektangel (full bredd)"
msgid "Redo"
msgstr "Göra om"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Gör om redigeringen av stilmall"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Återställ lösenord"
msgid "Reset Style"
msgstr "Återställ stil"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Återställ till tillämpat formatmall"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Återställ ditt lösenord"
@@ -3791,6 +3872,14 @@ msgstr "vald"
msgid "Self-Host with Docker"
msgstr "Självhosting med Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Semantisk CSS-stilmall"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Semantiska stilar förblir aktiva"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Skicka meddelande"
@@ -4152,6 +4241,14 @@ msgstr "Genomstrykning"
msgid "Strong fit"
msgstr "Stark passform"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Stilarksredigerare"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Stilarket innehåller fel"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "Sidan du letar efter kan ha flyttats eller inte längre existera."
msgid "The password you entered is incorrect"
msgstr "Lösenordet du angav är felaktigt"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Förhandsgranskningen av CV:t kunde inte uppdateras. Den senast giltiga förhandsgranskningen visas fortfarande."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "CV:t du försöker komma åt är lösenordsskyddat"
@@ -4381,6 +4482,10 @@ msgstr "Den här posten tas bort permanent. Det går inte att ångra."
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Den här funktionen kräver en ansluten AI-leverantör. Vänligen konfigurera en i inställningarna."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Den här instansen tillåter för närvarande inte semantisk CSS-redigering."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Detta är ett URL-vänligt namn för ditt CV."
@@ -4639,6 +4744,10 @@ msgstr "Understrykning"
msgid "Undo"
msgstr "Ångra"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Ångra redigering av stilark"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Obegränsat antal CV:n"
@@ -5013,6 +5122,10 @@ msgstr "Dina data lagras säkert och delas aldrig med tredje part. Du kan också
msgid "Your latest changes could not be saved."
msgstr "Dina senaste ändringar kunde inte sparas."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Dina äldre stilar förblir aktiva tills du uttryckligen aktiverar detta semantiska CSS-utkast."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Ditt lösenord har återställts. Du kan nu logga in med ditt nya lösenord."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ta\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Tamil\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "கணக்கு மெனு"
msgid "Actions"
msgstr "செயல்கள்"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "செமாண்டிக் CSS-ஐ செயல்படுத்துக"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "உண்மையான அளவு (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "வாரத்திற்கு அனுப்பப்பட்ட விண்ணப்பங்கள் (கடைசி 8 வாரங்கள்)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "விண்ணப்பிக்கப்பட்டது"
@@ -493,6 +498,10 @@ msgstr "அன்று விண்ணப்பித்தது"
msgid "Applied Rules"
msgstr "பயன்படுத்தப்பட்ட விதிகள்"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "எச்சரிக்கைகளுடன் கூடிய அறிவு"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "அரபிக்"
@@ -800,6 +809,14 @@ msgstr "உங்கள் கடவுச்சொல்லை மீட்ட
msgid "Check your email for a link to verify your account."
msgstr "உங்கள் கணக்கை சரிபார்க்க ஒரு இணைப்புக்காக உங்கள் மின்னஞ்சலைச் சரிபார்க்கவும்."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "சரிபார்த்தல்"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "வரைவைச் சரிபார்த்தல்"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "சீனம் (எளிய)"
@@ -966,6 +983,10 @@ msgstr "உரையாடல் நகலெடுக்கப்பட்ட
msgid "Conversation JSON copied."
msgstr "உரையாடல் JSON நகலெடுக்கப்பட்டது."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "மாற்றப்பட்ட ஸ்டைல்ஷீட் வரைவு"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "கிளிப்போர்டுக்கு நகலெடுக்கப்பட்டது."
@@ -989,6 +1010,10 @@ msgstr "காப்பு குறியீடுகளை நகலெடு"
msgid "Copy JSON"
msgstr "JSON-ஐ நகலெடுக்கவும்"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "பாணித்தாளை நகலெடுக்கவும்"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "இந்த ரகசிய விசையை நகலெடுத்து, உங்கள் பயன்பாடுகளில் உங்கள் தரவினை அணுக பயன்படுத்தவும்."
@@ -1545,6 +1570,11 @@ msgstr "திருத்து {chip}"
msgid "Edit application"
msgstr "பயன்பாட்டைத் திருத்தவும்"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "வண்ணத்தைத் திருத்து {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "இரண்டு நிலை அங்கீகாரத்தை அ
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "இரண்டு நிலை அங்கீகாரத்தை முடக்க உங்கள் கடவுச்சொல்லை உள்ளிடவும். 2FA இயங்காவிட்டால் உங்கள் கணக்கு குறைந்த பாதுகாப்புடன் இருக்கும்."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "பிழை"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "ஒவ்வொரு பங்களிப்பும், பெரியதோ சிறியதோ, இந்த திட்டத்திற்கு மிகப் பெரிய மாற்றத்தை கொண்டுவந்து விடுகிறது.<0/>உங்கள் ஆதரவுக்கு நன்றி!"
@@ -1682,6 +1716,10 @@ msgstr "ஒவ்வொரு பங்களிப்பும், பெரி
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "தொழில்முறை ரெஸ்யூமிகளை உருவாக்க, விருப்பத்துக்கு உருப்பெற்றி, பகிர்வதற்குத் தேவையான அனைத்தும் இங்கே. தனியுரிமையை கருத்தில் கொண்டு உருவாக்கப்பட்டதால், திறந்த மூலத்தால் இயக்கப்படுகிறது மற்றும் எப்போதும் முழுவதுமாக இலவசம்."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "கவனப் பயன்முறையிலிருந்து வெளியேறு"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "முழுத்திரையிலிருந்து வெளியேறு"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "வடிவம்"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "வடிவமைப்பு பாணித்தாள்"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "இலவசம்"
@@ -2584,6 +2626,12 @@ msgstr "லைட்"
msgid "Light theme"
msgstr "லைட் தீம்"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "வரி {0}, நெடுவரிசை {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "வரி உயரம்"
@@ -2918,6 +2966,10 @@ msgstr "நார்வேஜியன்"
msgid "Not connected"
msgstr "இணைப்பு இல்லை"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "திறந்த AI உதவியாளர்"
msgid "Open Email Client"
msgstr "மின்னஞ்சல் பயன்பாட்டை திறக்கவும்"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "திறந்த குவிய முறை"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "பில்டரில் திறக்கவும்"
@@ -2992,6 +3048,7 @@ msgstr "OpenAI-இணக்கமானது"
msgid "OpenRouter"
msgstr "ஓப்பன்ரவுட்டர்"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "திறக்க <0>Enter ஐ</0> அழுத்தவும்"
msgid "Preview"
msgstr "முன்னோட்டம்"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "முன்னோட்டம் மற்றும் ஏற்றுமதிக்கு, கடைசியாகச் செல்லுபடியாகும் பதிப்பைப் பயன்படுத்தவும்."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "முதன்மை நிறம்"
@@ -3374,10 +3435,22 @@ msgstr "ரியாக்டிவ் ரெஸ்யூம் v<0>{__APP_VERSI
msgid "Reactive Resume v4 (JSON)"
msgstr "எதிர்வினை ரெஸ்யூம் v4 (ஜேசன்)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "படிக்கிறது…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "செயல்படுத்தத் தயார்"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "எச்சரிக்கைகளுடன் செயல்படுத்தத் தயார்"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "பெறுநர்"
@@ -3394,6 +3467,10 @@ msgstr "சதுரம் (முழு அகலம்)"
msgid "Redo"
msgstr "மீண்டும் செய்"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "ஸ்டைல்ஷீட் திருத்தத்தை மீண்டும் செய்"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "கடவுச்சொல்லை மீட்டமைக்கவ
msgid "Reset Style"
msgstr "பாணியை மீட்டமைக்கவும்"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "பயன்படுத்தப்பட்ட பாணித் தாளுக்கு மீட்டமைக்கவும்"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "உங்கள் கடவுச்சொல்லை மீட்டமைக்கவும்"
@@ -3791,6 +3872,14 @@ msgstr "தேர்ந்தெடுக்கப்பட்டது"
msgid "Self-Host with Docker"
msgstr "Docker-இன் உதவியுடன் தானே ஹோஸ்ட் செய்யவும்"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "செமாண்டிக் CSS ஸ்டைல்ஷீட்"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "சொற்பொருள் பாணிகள் செயலில் உள்ளன"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "செய்திகளை அனுப்பு"
@@ -4152,6 +4241,14 @@ msgstr "கோடு கிழித்தல்"
msgid "Strong fit"
msgstr "வலுவான பொருத்தம்"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "ஸ்டைல்ஷீட் எடிட்டர்"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "ஸ்டைல்ஷீட்டில் பிழைகள் உள்ளன"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "சப்ரெட்டிட்"
@@ -4308,6 +4405,10 @@ msgstr "நீங்கள் தேடும் பக்கம் வேறு
msgid "The password you entered is incorrect"
msgstr "நீங்கள் உள்ளிட்ட கடவுச்சொல் தவறானது"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "சுயவிவர முன்னோட்டத்தைப் புதுப்பிக்க முடியவில்லை. கடைசியாகச் செல்லுபடியான முன்னோட்டம் இன்னும் காட்டப்படுகிறது."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "நீங்கள் அணுக முயற்சிக்கும் ரெஸ்யூமி கடவுச்சொல் பாதுகாப்புடன் உள்ளது"
@@ -4381,6 +4482,10 @@ msgstr "இந்த உள்ளீடு நிரந்தரமாக நீ
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "இந்த அம்சத்திற்கு இணைக்கப்பட்ட AI வழங்குநர் தேவைப்படுகிறது. அமைப்புகளில் ஒன்றை அமைக்கவும்."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "இந்த இன்ஸ்டன்ஸ் தற்போது செமாண்டிக் CSS திருத்தத்தை அனுமதிக்காது."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "இது உங்கள் ரெஸ்யூமிக்கான URL-க்கு உகந்த பெயராகும்."
@@ -4639,6 +4744,10 @@ msgstr "அடைமுறை கோடு"
msgid "Undo"
msgstr "செயல்தவிர்"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "ஸ்டைல்ஷீட் திருத்தத்தை செயல்தவிர்க்கவும்"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "வரம்பற்ற ரெஸ்யூமிகள்"
@@ -5013,6 +5122,10 @@ msgstr "உங்கள் தரவு பாதுகாப்பாக சே
msgid "Your latest changes could not be saved."
msgstr "உங்கள் சமீபத்திய மாற்றங்களைச் சேமிக்க முடியவில்லை."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "நீங்கள் இந்த செமாண்டிக் CSS வரைவை வெளிப்படையாகச் செயல்படுத்தும் வரை, உங்கள் மரபுப் பாணிகள் செயலில் இருக்கும்."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "உங்கள் கடவுச்சொல் வெற்றிகரமாக மீட்டமைக்கப்பட்டுள்ளது. இப்போது உங்கள் புதிய கடவுச்சொல்லைப் பயன்படுத்தி உள்நுழையலாம்."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: te\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Telugu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "ఖాతా మెనూ"
msgid "Actions"
msgstr "చర్యలు"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "సెమాంటిక్ CSSని యాక్టివేట్ చేయండి"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "వాస్తవ పరిమాణం (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "వారానికి పంపిన దరఖాస్తులు (చివరి 8 వారాలు)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "దరఖాస్తు చేశారు"
@@ -493,6 +498,10 @@ msgstr "దరఖాస్తు చేసిన తేదీ"
msgid "Applied Rules"
msgstr "వర్తింపజేసిన నియమాలు"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "హెచ్చరికలతో వర్తింపజేయబడింది"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "అరబిక్"
@@ -800,6 +809,14 @@ msgstr "మీ పాస్‌వర్డ్‌ను రీసెట్ చే
msgid "Check your email for a link to verify your account."
msgstr "మీ అకౌంట్‌ను ధృవీకరించడానికి లింక్ కోసం మీ ఇమెయిల్‌ను తనిఖీ చేయండి."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "తనిఖీ"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "డ్రాఫ్ట్‌ను తనిఖీ చేయడం"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "చైనీస్ (సరళీకృత)"
@@ -966,6 +983,10 @@ msgstr "సంభాషణ నకలు చేయబడింది."
msgid "Conversation JSON copied."
msgstr "సంభాషణ JSON కాపీ చేయబడింది."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "మార్చబడిన స్టైల్‌షీట్ డ్రాఫ్ట్"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "క్లిప్‌బోర్డ్‌కు కాపీ చేయబడింది."
@@ -989,6 +1010,10 @@ msgstr "బ్యాకప్ కోడ్‌లను కాపీ చేయం
msgid "Copy JSON"
msgstr "JSONని కాపీ చేయండి"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "స్టైల్‌షీట్‌ను కాపీ చేయండి"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "ఈ సీక్రెట్ కీని కాపీ చేసి మీ యాప్‌లలో మీరు మీ డేటాను యాక్సెస్ చేయడానికి ఉపయోగించండి."
@@ -1545,6 +1570,11 @@ msgstr "సవరించు {chip}"
msgid "Edit application"
msgstr "దరఖాస్తును సవరించు"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "రంగును సవరించండి {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "రెండు దశల ధృవీకరణ ఏర్పాటున
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "రెండు దశల ధృవీకరణను నిలిపివేయడానికి మీ పాస్‌వర్డ్‌ని నమోదు చేయండి. 2FA ప్రారంభించబడకుండా ఉంటే మీ ఖాతా తక్కువ భద్రతగా ఉంటుంది."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "లోపం"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "ప్రతి సహకారం, చిన్నదైనా పెద్దదైనా, ప్రాజెక్టులో గొప్ప మార్పును తీసుకురాగలదు.<0/>మీ మద్దతుకు ధన్యవాదాలు!"
@@ -1682,6 +1716,10 @@ msgstr "ప్రతి సహకారం, చిన్నదైనా పె
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "ప్రొఫెషనల్ రిజ్యూమ్‌లు సృష్టించడానికి, అనుకూలీకరించడానికి, మరియు పంచుకోవడానికి మీకు కావాల్సిన ప్రతిదీ. ప్రైవసీని దృష్టిలో పెట్టుకొని, ఓపెన్ సోర్స్‌తో నిర్మించబడింది, ఎప్పటికీ ఉచితం."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "ఫోకస్ మోడ్ నుండి నిష్క్రమించండి"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "పూర్తి స్క్రీన్ నుండి నిష్క్రమించు"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "ఫార్మాట్"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "ఫార్మాట్ స్టైల్‌షీట్"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "ఉచితం"
@@ -2584,6 +2626,12 @@ msgstr "లైట్"
msgid "Light theme"
msgstr "లైట్ థీమ్"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "లైన్ {0}, కాలమ్ {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "లైన్ హైట్"
@@ -2918,6 +2966,10 @@ msgstr "నార్వేజియన్"
msgid "Not connected"
msgstr "కనెక్ట్ కాలేదు"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "ఓపెన్ AI అసిస్టెంట్"
msgid "Open Email Client"
msgstr "ఈమెయిల్ క్లైంట్ తెరవండి"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "ఫోకస్ మోడ్‌ను తెరవండి"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "బిల్డర్‌లో తెరవండి"
@@ -2992,6 +3048,7 @@ msgstr "OpenAI-అనుకూలమైనది"
msgid "OpenRouter"
msgstr "ఓపెన్‌రౌటర్"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "తెరవడానికి <0>ఎంటర్</0> నొక్కం
msgid "Preview"
msgstr "ప్రివ్యూ"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "ప్రివ్యూ మరియు ఎక్స్‌పోర్ట్ చివరి చెల్లుబాటు అయ్యే వెర్షన్‌ను ఉపయోగిస్తాయి."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "ప్రాథమిక రంగు"
@@ -3374,10 +3435,22 @@ msgstr "రియాక్టివ్ రెజ్యూమ్ v<0>{__APP_VERSI
msgid "Reactive Resume v4 (JSON)"
msgstr "రియాక్టివ్ రెజ్యూమ్ v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "చదువుతోంది…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "యాక్టివేట్ చేయడానికి సిద్ధంగా ఉంది"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "హెచ్చరికలతో యాక్టివేట్ చేయడానికి సిద్ధంగా ఉంది"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "గ్రహీత"
@@ -3394,6 +3467,10 @@ msgstr "ఆయతం (పూర్తి వెడల్పు)"
msgid "Redo"
msgstr "మళ్ళీ చేయండి"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "స్టైల్‌షీట్ సవరణను మళ్లీ చేయండి"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "పాస్‌వర్డ్ రీసెట్ చేయండి"
msgid "Reset Style"
msgstr "శైలిని రీసెట్ చేయండి"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "వర్తింపజేసిన స్టైల్‌షీట్‌కు రీసెట్ చేయండి"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "మీ పాస్‌వర్డ్‌ను రీసెట్ చేయండి"
@@ -3791,6 +3872,14 @@ msgstr "ఎంచుకోబడ్డాయి"
msgid "Self-Host with Docker"
msgstr "డాకర్‌తో స్వయంగా హోస్ట్ చేయండి"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "సెమాంటిక్ CSS స్టైల్‌షీట్"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "సెమాంటిక్ శైలులు చురుకుగా ఉంటాయి"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "సందేశం పంపండి"
@@ -4152,6 +4241,14 @@ msgstr "స్ట్రైక్"
msgid "Strong fit"
msgstr "బలమైన సరిపోలిక"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "స్టైల్‌షీట్ ఎడిటర్"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "స్టైల్‌షీట్‌లో లోపాలు ఉన్నాయి"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "సబ్రెడిట్"
@@ -4308,6 +4405,10 @@ msgstr "మీరు వెతుకుతున్న పేజీ తరలి
msgid "The password you entered is incorrect"
msgstr "మీరు నమోదు చేసిన పాస్‌వర్డ్ సరియైనది కాదు"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "రెస్యూమ్ ప్రివ్యూను అప్‌డేట్ చేయలేకపోయింది. చివరి చెల్లుబాటు అయ్యే ప్రివ్యూ ఇప్పటికీ చూపబడుతోంది."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "మీరు యాక్సెస్ చేయడానికి ప్రయత్నిస్తున్న రెజ్యూమే పాస్‌వర్డ్ ద్వారా రక్షించబడింది"
@@ -4381,6 +4482,10 @@ msgstr "ఈ ఎంట్రీ శాశ్వతంగా తొలగించ
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "ఈ ఫీచర్‌కు అనుసంధానించబడిన AI ప్రొవైడర్ అవసరం. దయచేసి సెట్టింగ్స్‌లో ఒకదాన్ని ఏర్పాటు చేసుకోండి."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "ఈ ఇన్‌స్టాన్స్ ప్రస్తుతం సెమాంటిక్ CSS ఎడిటింగ్‌ను అనుమతించదు."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "ఇది మీ రెజ్యూమ్‌కి URL-ప్రియమైన పేరు."
@@ -4639,6 +4744,10 @@ msgstr "అండర్‌లైన్"
msgid "Undo"
msgstr "రద్దు చేయి"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "స్టైల్‌షీట్ సవరణను రద్దు చేయండి"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "అనంత రెజ్యూమ్లు"
@@ -5013,6 +5122,10 @@ msgstr "మీ డేటా భద్రంగా నిల్వ చేయబ
msgid "Your latest changes could not be saved."
msgstr "మీ తాజా మార్పులు సేవ్ చేయబడలేదు."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "మీరు ఈ సెమాంటిక్ CSS డ్రాఫ్ట్‌ను స్పష్టంగా యాక్టివేట్ చేసే వరకు మీ పాత స్టైల్స్ చురుకుగా ఉంటాయి."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "మీ పాస్‌వర్డ్ విజయవంతంగా రీసెట్ చేయబడింది. ఇప్పుడు మీ కొత్త పాస్‌వర్డ్‌తో సైన్ ఇన్ చేయవచ్చు."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: th\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -163,6 +163,10 @@ msgstr "เมนูบัญชี"
msgid "Actions"
msgstr "การดำเนินการ"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "เปิดใช้งาน Semantic CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "ขนาดจริง (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "ใบสมัครที่ส่งต่อสัปดาห์ (8 สัปดาห์ล่าสุด)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "สมัครแล้ว"
@@ -493,6 +498,10 @@ msgstr "สมัครเมื่อ"
msgid "Applied Rules"
msgstr "กฎที่ใช้"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "ใช้งานโดยมีคำเตือน"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "อารบิก"
@@ -800,6 +809,14 @@ msgstr "ตรวจสอบอีเมลของคุณสำหรับ
msgid "Check your email for a link to verify your account."
msgstr "ตรวจสอบอีเมลของคุณสำหรับลิงก์ยืนยันบัญชีของคุณ"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "กำลังตรวจสอบ"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "ตรวจสอบร่าง"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "จีน (ตัวย่อ)"
@@ -966,6 +983,10 @@ msgstr "บทสนทนานี้ถูกคัดลอกแล้ว"
msgid "Conversation JSON copied."
msgstr "คัดลอกข้อมูล JSON ของบทสนทนาแล้ว"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "แปลงร่างสไตล์ชีตแล้ว"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "คัดลอกไปยังคลิปบอร์ดแล้ว"
@@ -989,6 +1010,10 @@ msgstr "คัดลอกรหัสสำรอง"
msgid "Copy JSON"
msgstr "คัดลอก JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "คัดลอกสไตล์ชีต"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "คัดลอกคีย์ลับนี้และใช้ในแอปพลิเคชันของคุณเพื่อเข้าถึงข้อมูลของคุณ"
@@ -1545,6 +1570,11 @@ msgstr "แก้ไข {chip}"
msgid "Edit application"
msgstr "แก้ไขใบสมัคร"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "แก้ไขสี {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "กรอกรหัสผ่านของคุณเพื่อย
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "กรอกรหัสผ่านของคุณเพื่อปิดการใช้งานการยืนยันตัวตนสองขั้นตอน บัญชีของคุณจะไม่ปลอดภัยเท่าเดิมหากไม่ได้เปิดใช้งาน 2FA"
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "ข้อผิดพลาด"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "ทุกการสนับสนุน ไม่ว่ามากหรือน้อย มีความสำคัญอย่างยิ่งต่อโปรเจกต์นี้<0/>ขอขอบคุณที่สนับสนุน!"
@@ -1682,6 +1716,10 @@ msgstr "ทุกการสนับสนุน ไม่ว่ามาก
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "ทุกสิ่งที่คุณต้องการในการสร้าง ปรับแต่ง และแบ่งปันเรซูเม่มืออาชีพ สร้างขึ้นโดยคำนึงถึงความเป็นส่วนตัว เปิดบริการด้วยโอเพ่นซอร์ส และฟรีตลอดไป"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "ออกจากโหมดโฟกัส"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "ออกจากเต็มหน้าจอ"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "รูปแบบ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "จัดรูปแบบสไตล์ชีต"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "ฟรี"
@@ -2584,6 +2626,12 @@ msgstr "สว่าง"
msgid "Light theme"
msgstr "ธีมสว่าง"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "แถว {0}, คอลัมน์ {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "ความสูงของเส้น"
@@ -2918,6 +2966,10 @@ msgstr "นอร์เวย์"
msgid "Not connected"
msgstr "ไม่ได้เชื่อมต่อ"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "เปิดผู้ช่วย AI"
msgid "Open Email Client"
msgstr "เปิดโปรแกรมอีเมล"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "โหมดเปิดโฟกัส"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "เปิดในโปรแกรมสร้าง"
@@ -2992,6 +3048,7 @@ msgstr "เข้ากันได้กับ OpenAI"
msgid "OpenRouter"
msgstr "โอเพ่นรูเตอร์"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "กด<0>Enter</0>เพื่อเปิด"
msgid "Preview"
msgstr "ตัวอย่าง"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "ให้ใช้เวอร์ชันล่าสุดที่ถูกต้องในการแสดงตัวอย่างและการส่งออก"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "สีหลัก"
@@ -3374,10 +3435,22 @@ msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "เรแอคทีฟ เรซูเม่ v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "กำลังอ่าน…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "พร้อมใช้งานแล้ว"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "พร้อมใช้งานพร้อมคำเตือน"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "ผู้รับ"
@@ -3394,6 +3467,10 @@ msgstr "สี่เหลี่ยมผืนผ้า (เต็มควา
msgid "Redo"
msgstr "ทำซ้ำ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "แก้ไขสไตล์ชีตใหม่"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "รีเซ็ตรหัสผ่าน"
msgid "Reset Style"
msgstr "รีเซ็ตสไตล์"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "รีเซ็ตเป็นสไตล์ชีตที่ใช้งานอยู่"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "รีเซ็ตรหัสผ่านของคุณ"
@@ -3791,6 +3872,14 @@ msgstr "เลือกแล้ว"
msgid "Self-Host with Docker"
msgstr "โฮสต์ด้วยตนเองบน Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "สไตล์ชีต CSS เชิงความหมาย"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "รูปแบบความหมายยังคงใช้งานอยู่"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "ส่งข้อความ"
@@ -4152,6 +4241,14 @@ msgstr "ขีดฆ่า"
msgid "Strong fit"
msgstr "เหมาะสมมาก"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "ตัวแก้ไขสไตล์ชีต"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "ไฟล์สไตล์ชีตมีข้อผิดพลาด"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "ซับเรดดิต"
@@ -4308,6 +4405,10 @@ msgstr "หน้าที่คุณกำลังมองหาอาจถ
msgid "The password you entered is incorrect"
msgstr "รหัสผ่านที่คุณกรอกไม่ถูกต้อง"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "ไม่สามารถอัปเดตตัวอย่างประวัติย่อได้ ตัวอย่างที่ถูกต้องล่าสุดยังคงแสดงอยู่"
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "เรซูเม่ที่คุณพยายามเข้าถึงถูกป้องกันด้วยรหัสผ่าน"
@@ -4381,6 +4482,10 @@ msgstr "รายการนี้จะถูกลบอย่างถาว
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "ฟังก์ชันนี้ต้องใช้ผู้ให้บริการ AI ที่เชื่อมต่ออยู่ โปรดตั้งค่าผู้ให้บริการในส่วนการตั้งค่า"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "ขณะนี้ระบบยังไม่รองรับการแก้ไข CSS แบบ Semantic"
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "นี่คือชื่อเรซูเม่ที่เหมาะสำหรับใช้ใน URL"
@@ -4639,6 +4744,10 @@ msgstr "ขีดเส้นใต้"
msgid "Undo"
msgstr "เลิกทำ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "ยกเลิกการแก้ไขสไตล์ชีต"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "เรซูเม่ไม่จำกัดจำนวน"
@@ -5013,6 +5122,10 @@ msgstr "ข้อมูลของคุณถูกจัดเก็บไว
msgid "Your latest changes could not be saved."
msgstr "ไม่สามารถบันทึกการเปลี่ยนแปลงล่าสุดของคุณได้"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "สไตล์เดิมของคุณจะยังคงใช้งานได้จนกว่าคุณจะเปิดใช้งานร่าง CSS เชิงความหมายนี้อย่างชัดเจน"
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "รหัสผ่านของคุณถูกรีเซ็ตเรียบร้อยแล้ว ตอนนี้คุณสามารถเข้าสู่ระบบด้วยรหัสผ่านใหม่ของคุณได้."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: tr\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Hesap menüsü"
msgid "Actions"
msgstr "Eylemler"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Semantik CSS'i Etkinleştir"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Gerçek boyut (%100)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Haftalık gönderilen başvurular (son 8 hafta)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Başvuruldu"
@@ -493,6 +498,10 @@ msgstr "Başvuru tarihi"
msgid "Applied Rules"
msgstr "Uygulanan Kurallar"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Uyarılarla birlikte uygulandı."
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Arapça"
@@ -800,6 +809,14 @@ msgstr "Şifrenizi sıfırlamak için bağlantı içeren e-postanızı kontrol e
msgid "Check your email for a link to verify your account."
msgstr "Hesabınızı doğrulamak için bağlantı içeren e-postanızı kontrol edin."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Kontrol Etme"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Taslağı kontrol etme"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Çince (Basitleştirilmiş)"
@@ -966,6 +983,10 @@ msgstr "Konuşma kopyalandı."
msgid "Conversation JSON copied."
msgstr "Konuşma JSON'u kopyalandı."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Dönüştürülmüş stil sayfası taslağı"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Panoya kopyalandı."
@@ -989,6 +1010,10 @@ msgstr "Yedekleme Kodlarını Kopyala"
msgid "Copy JSON"
msgstr "JSON'u kopyala"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Stil sayfasını kopyala"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Bu gizli anahtarı kopyalayıp uygulamalarınızda verilerinize erişmek için kullanın."
@@ -1545,6 +1570,11 @@ msgstr "Düzenle {chip}"
msgid "Edit application"
msgstr "Başvuruyu düzenle"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Renk düzenleme {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "İki faktörlü kimlik doğrulamayı kurmayı onaylamak için şifrenizi
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "İki faktörlü kimlik doğrulamayı devre dışı bırakmak için şifrenizi girin. 2FA etkin olmadığında hesabınız daha az güvenli olur."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Hata"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Her katkı, büyük ya da küçük, projeye önemli bir katkı sağlar.<0/>Desteğiniz için teşekkürler!"
@@ -1682,6 +1716,10 @@ msgstr "Her katkı, büyük ya da küçük, projeye önemli bir katkı sağlar.<
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Profesyonel özgeçmişler oluşturmak, özelleştirmek ve paylaşmak için ihtiyacınız olan her şey. Gizlilik odaklı, açık kaynaklı ve sonsuza dek tamamen ücretsiz."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Odak modundan çık"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Tam Ekrandan Çık"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Biçimlendirme stili sayfası"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Ücretsiz"
@@ -2584,6 +2626,12 @@ msgstr "Açık"
msgid "Light theme"
msgstr "Açık tema"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Satır {0}, sütun {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Satır Yüksekliği"
@@ -2918,6 +2966,10 @@ msgstr "Norveççe"
msgid "Not connected"
msgstr "Bağlı değil"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Açık yapay zeka asistanı"
msgid "Open Email Client"
msgstr "E-posta İstemcisini Aç"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Açık odak modu"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Yapıcıda aç"
@@ -2992,6 +3048,7 @@ msgstr "OpenAI uyumlu"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Açmak için <0>Enter</0> tuşuna basın"
msgid "Preview"
msgstr "Önizleme"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Önizleme ve dışa aktarma işlemleri için en son geçerli sürüm kullanılır."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Birincil Renk"
@@ -3374,10 +3435,22 @@ msgstr "Reaktif Özgeçmiş v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktif Özgeçmiş v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Okunuyor…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Etkinleştirmeye hazır"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Uyarılarla birlikte etkinleştirmeye hazır."
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Alıcı"
@@ -3394,6 +3467,10 @@ msgstr "Dikdörtgen (Tam Genişlik)"
msgid "Redo"
msgstr "Tekrarla"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Stil sayfası düzenlemesini yeniden yap"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Şifreyi Sıfırla"
msgid "Reset Style"
msgstr "Stili Sıfırla"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Uygulanan stil sayfasına sıfırla"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Şifrenizi sıfırlayın"
@@ -3791,6 +3872,14 @@ msgstr "seçildi"
msgid "Self-Host with Docker"
msgstr "Docker ile kendi kendine barındırma"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Anlamsal CSS stil sayfası"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Semantik stiller aktif kalmaya devam ediyor."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Mesaj gönder"
@@ -4152,6 +4241,14 @@ msgstr "Üstü Çizili"
msgid "Strong fit"
msgstr "Güçlü uyum"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Stil sayfası düzenleyici"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Stil dosyasında hatalar var."
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Alt Reddit"
@@ -4308,6 +4405,10 @@ msgstr "Aradığınız sayfa taşınmış olabilir veya artık mevcut olmayabili
msgid "The password you entered is incorrect"
msgstr "Girdiğiniz şifre yanlış"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Özgeçmiş önizlemesi güncellenemedi. Son geçerli önizleme hala gösteriliyor."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Erişmeye çalıştığınız özgeçmiş şifre korumalıdır"
@@ -4381,6 +4482,10 @@ msgstr "Bu girdi kalıcı olarak silinecek. Bu işlem geri alınamaz."
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Bu özellik için bağlantılı bir yapay zeka sağlayıcısı gereklidir. Lütfen ayarlardan bir tane kurun."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Bu örnek şu anda Semantik CSS düzenlemesine izin vermiyor."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Bu, özgeçmişiniz için URL dostu bir isimdir."
@@ -4639,6 +4744,10 @@ msgstr "Altı Çizili"
msgid "Undo"
msgstr "Geri al"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Stil sayfası düzenlemesini geri al"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Sınırsız Özgeçmiş"
@@ -5013,6 +5122,10 @@ msgstr "Verileriniz güvenli bir şekilde saklanır ve asla üçüncü partilerl
msgid "Your latest changes could not be saved."
msgstr "Son değişiklikleriniz kaydedilemedi."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Eski stilleriniz, bu Semantik CSS taslağını açıkça etkinleştirene kadar aktif kalacaktır."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Şifreniz başarıyla sıfırlandı. Artık yeni şifrenizle giriş yapabilirsiniz."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: uk\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Ukrainian\n"
"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
@@ -163,6 +163,10 @@ msgstr "Меню облікового запису"
msgid "Actions"
msgstr "Дії"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Активуйте семантичний CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Фактичний розмір (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Заявки, надіслані за тиждень (останні 8 тижнів)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Подано"
@@ -493,6 +498,10 @@ msgstr "Подано"
msgid "Applied Rules"
msgstr "Застосовані правила"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Застосовується з попередженнями"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Арабська"
@@ -800,6 +809,14 @@ msgstr "Перевірте свою електронну пошту для по
msgid "Check your email for a link to verify your account."
msgstr "Перевірте свою електронну пошту для підтвердження облікового запису."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Перевірка"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Перевірка чернетки"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Китайська (спрощена)"
@@ -966,6 +983,10 @@ msgstr "Розмову скопійовано."
msgid "Conversation JSON copied."
msgstr "JSON розмови скопійовано."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Конвертований чернетка таблиці стилів"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Скопійовано до буфера обміну."
@@ -989,6 +1010,10 @@ msgstr "Скопіювати резервні коди"
msgid "Copy JSON"
msgstr "Копіювати JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Копіювати таблицю стилів"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Скопіюйте цей секретний ключ та використовуйте його у своїх додатках для доступу до своїх даних."
@@ -1545,6 +1570,11 @@ msgstr "Редагувати {chip}"
msgid "Edit application"
msgstr "Редагувати заявку"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Редагувати колір {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Введіть пароль для підтвердження налаш
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Введіть свій пароль для вимикання двофакторної автентифікації. Ваш профіль буде менш захищений без увімкненого 2FA."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Помилка"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Кожен внесок, великий чи малий, має величезне значення для проєкту.<0/>Дякуємо за вашу підтримку!"
@@ -1682,6 +1716,10 @@ msgstr "Кожен внесок, великий чи малий, має вели
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Все необхідне для створення, налаштування та поширення професійних резюме. Створено з урахуванням приватності, на основі відкритих вихідних кодів і назавжди безкоштовно."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Вийти з режиму фокусування"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Вийти з повноекранного режиму"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Формат"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Формат таблиці стилів"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Безкоштовно"
@@ -2584,6 +2626,12 @@ msgstr "Світлий"
msgid "Light theme"
msgstr "Світла тема"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Рядок {0}, стовпець {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Інтервал між рядками"
@@ -2918,6 +2966,10 @@ msgstr "Норвезька"
msgid "Not connected"
msgstr "Не підключено"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Відкритий помічник зі штучним інтелект
msgid "Open Email Client"
msgstr "Відкрити поштовий клієнт"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Відкрити режим фокусування"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Відкрити в конструкторі"
@@ -2992,6 +3048,7 @@ msgstr "Сумісний з OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Натисніть <0>Enter</0>, щоб відкрити"
msgid "Preview"
msgstr "Попередній перегляд"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Для попереднього перегляду та експорту використовується остання дійсна версія."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Основний колір"
@@ -3374,10 +3435,22 @@ msgstr "Реактивне резюме v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Реактивне резюме v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Читання…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Готовий до активації"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Готовий до активації з попередженнями"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Одержувач"
@@ -3394,6 +3467,10 @@ msgstr "Прямокутник (на всю ширину)"
msgid "Redo"
msgstr "Повторити"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Повторити редагування таблиці стилів"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Скинути пароль"
msgid "Reset Style"
msgstr "Скинути стиль"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Скинути до застосованого таблиці стилів"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Скинути пароль"
@@ -3791,6 +3872,14 @@ msgstr "вибрано"
msgid "Self-Host with Docker"
msgstr "Самостійний хостинг з Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Семантична таблиця стилів CSS"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Семантичні стилі залишаються активними"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Надіслати повідомлення"
@@ -4152,6 +4241,14 @@ msgstr "Закреслення"
msgid "Strong fit"
msgstr "Висока відповідність"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Редактор таблиць стилів"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Таблиця стилів містить помилки"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Сабреддіт"
@@ -4308,6 +4405,10 @@ msgstr "Можливо, сторінку, яку ви шукаєте, було
msgid "The password you entered is incorrect"
msgstr "Введений вами пароль невірний"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Не вдалося оновити попередній перегляд резюме. Останній дійсний попередній перегляд все ще відображається."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Резюме, до якого ви намагаєтеся отримати доступ, захищене паролем"
@@ -4381,6 +4482,10 @@ msgstr "Цей запис буде видалено назавжди. Цю ді
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Ця функція вимагає підключеного постачальника штучного інтелекту. Будь ласка, налаштуйте його в налаштуваннях."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Цей екземпляр наразі не дозволяє редагування семантичного CSS."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Це ім'я вашого резюме, пристосоване для використання у URL."
@@ -4639,6 +4744,10 @@ msgstr "Підкреслення"
msgid "Undo"
msgstr "Скасувати"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Скасувати редагування таблиці стилів"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Необмежена кількість резюме"
@@ -5013,6 +5122,10 @@ msgstr "Ваші дані зберігаються безпечно і ніко
msgid "Your latest changes could not be saved."
msgstr "Не вдалося зберегти ваші останні зміни."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Ваші застарілі стилі залишаються активними, доки ви явно не активуєте цей черновик семантичного CSS."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Ваш пароль було успішно скинуто. Тепер ви можете увійти з новим паролем."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: uz\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Uzbek\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -163,6 +163,10 @@ msgstr "Hisob menyusi"
msgid "Actions"
msgstr "Amallar"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Semantik CSS-ni faollashtirish"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Haqiqiy o'lcham (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Haftasiga yuborilgan arizalar (so‘nggi 8 hafta)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Topshirildi"
@@ -493,6 +498,10 @@ msgstr "Ariza sanasi"
msgid "Applied Rules"
msgstr "Amaliy qoidalar"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Ogohlantirishlar bilan qo'llanildi"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Arab tili"
@@ -800,6 +809,14 @@ msgstr "Parolingizni tiklash uchun havola yuborilganligini emailingizni tekshiri
msgid "Check your email for a link to verify your account."
msgstr "Hisobingizni tasdiqlash uchun havola yuborilganligini emailingizni tekshiring."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Tekshirish"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Qoralama tekshirilmoqda"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Xitoy (Soddalashtirilgan)"
@@ -966,6 +983,10 @@ msgstr "Suhbat nusxalandi."
msgid "Conversation JSON copied."
msgstr "JSON suhbatidan nusxa ko'chirildi."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "O'zgartirilgan uslublar jadvali qoralamasi"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Buferga nusxalandi."
@@ -989,6 +1010,10 @@ msgstr "Zaxira kodlarini nusxalash"
msgid "Copy JSON"
msgstr "JSON nusxasini olish"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Uslublar jadvalini nusxalash"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Ushbu maxfiy kalitni nusxalab, maʼlumotlaringizga kirish uchun ilovalaringizda foydalaning."
@@ -1545,6 +1570,11 @@ msgstr "Tahrir qilish {chip}"
msgid "Edit application"
msgstr "Arizani tahrirlash"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "{0} rangini tahrirlash"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Ikki bosqichli autentifikatsiyani yoqishni tasdiqlash uchun parolingizni
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Ikki bosqichli autentifikatsiyani o‘chirishni tasdiqlash uchun parolingizni kiriting. 2BShT yoqilmagan holda hisobingiz kamroq xavfsiz boʻladi."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Xato"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Har bir hissa, kichik yoki katta bo‘lishidan qat’i nazar, loyiha uchun katta ahamiyatga ega.<0/>Qo‘llab-quvvatlaganingiz uchun rahmat!"
@@ -1682,6 +1716,10 @@ msgstr "Har bir hissa, kichik yoki katta bo‘lishidan qat’i nazar, loyiha uch
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Professional rezyumelar yaratish, sozlash va ulashish uchun kerakli barcha narsa. Maxfiylik tamoyiliga asoslangan, ochiq manba asosida qurilgan va doimiy ravishda butunlay bepul."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Fokus rejimidan chiqish"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Toʻliq ekrandan chiqish"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Uslublar jadvalini formatlash"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Bepul"
@@ -2584,6 +2626,12 @@ msgstr "Yorugʻ"
msgid "Light theme"
msgstr "Yorugʻ mavzu"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "{0}qatori, {1} ustuni"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Satr balandligi"
@@ -2918,6 +2966,10 @@ msgstr "Norveg tili"
msgid "Not connected"
msgstr "Ulanmagan"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Ochiq AI yordamchisi"
msgid "Open Email Client"
msgstr "Pochta dasturini ochish"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Fokus rejimini ochish"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Quruvchida ochish"
@@ -2992,6 +3048,7 @@ msgstr "OpenAI bilan mos keladi"
msgid "OpenRouter"
msgstr "Ochiq marshrutizator"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Ochish uchun <0>Enter tugmasini</0> bosing"
msgid "Preview"
msgstr "Oldindan ko'rish"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Oldindan ko'rish va eksport qilish uchun oxirgi amaldagi versiyadan foydalaning."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Asosiy rang"
@@ -3374,10 +3435,22 @@ msgstr "Reaktiv rezyume v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktiv Rezume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "O'qilmoqda…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Faollashtirishga tayyor"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Ogohlantirishlar bilan faollashtirishga tayyor"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Qabul qiluvchi"
@@ -3394,6 +3467,10 @@ msgstr "Toʻgʻri burchakli (toʻliq kenglik)"
msgid "Redo"
msgstr "Qayta bajarish"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Uslublar jadvalini tahrirlashni qayta bajarish"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Parolni tiklash"
msgid "Reset Style"
msgstr "Uslubni tiklash"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Qo'llanilgan uslublar jadvaliga qayta o'rnatish"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Parolingizni tiklang"
@@ -3791,6 +3872,14 @@ msgstr "tanlandi"
msgid "Self-Host with Docker"
msgstr "Docker bilan mustaqil joylashtirish"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Semantik CSS uslublar jadvali"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Semantik uslublar faol bo'lib qolmoqda"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Xabar yuborish"
@@ -4152,6 +4241,14 @@ msgstr "Ustiga chizish"
msgid "Strong fit"
msgstr "Kuchli moslik"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Uslublar jadvali muharriri"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Uslublar jadvalida xatolar mavjud"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "Siz izlayotgan sahifa boshqa joyga ko'chirilgan yoki endi mavjud emas bo
msgid "The password you entered is incorrect"
msgstr "Kiritilgan parol noto'g'ri"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Rezyume oldindan ko'rish versiyasini yangilab bo'lmadi. Oxirgi haqiqiy oldindan ko'rish versiyasi hali ham ko'rsatilmoqda."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Siz kirishga harakat qilayotgan rezyume parol bilan himoyalangan"
@@ -4381,6 +4482,10 @@ msgstr "Bu yozuv butunlay o‘chiriladi. Buni ortga qaytarib bo‘lmaydi."
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Bu funksiya ulangan AI provayderini talab qiladi. Iltimos, sozlamalarda bittasini sozlang."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Bu misol hozirda semantik CSS tahrirlashga ruxsat bermaydi."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Bu rezyume uchun URL uchun qulay ism."
@@ -4639,6 +4744,10 @@ msgstr "Tagiga chizilgan"
msgid "Undo"
msgstr "Bekor qilish"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Uslublar jadvali tahririni bekor qilish"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Cheksiz rezyumelar"
@@ -5013,6 +5122,10 @@ msgstr "Maʼlumotlaringiz xavfsiz saqlanadi va uchinchi tomonlarga hech qachon u
msgid "Your latest changes could not be saved."
msgstr "So'nggi o'zgarishlaringizni saqlab bo'lmadi."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Sizning eski uslublaringiz ushbu Semantik CSS qoralamasini aniq faollashtirmaguningizcha faol bo'lib qoladi."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Parolingiz muvaffaqiyatli tiklandi. Endi yangi parolingiz bilan tizimga kirishingiz mumkin."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: vi\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -163,6 +163,10 @@ msgstr "Menu tài khoản"
msgid "Actions"
msgstr "Hành động"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Kích hoạt CSS ngữ nghĩa"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Kích thước thật (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Đơn ứng tuyển đã gửi mỗi tuần (8 tuần gần nhất)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Đã ứng tuyển"
@@ -493,6 +498,10 @@ msgstr "Đã ứng tuyển vào"
msgid "Applied Rules"
msgstr "Quy tắc áp dụng"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Được áp dụng kèm theo cảnh báo"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "Tiếng Ả Rập"
@@ -800,6 +809,14 @@ msgstr "Hãy kiểm tra email của bạn để lấy đường link đặt lạ
msgid "Check your email for a link to verify your account."
msgstr "Hãy kiểm tra email của bạn để lấy liên kết xác minh tài khoản."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Kiểm tra"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Kiểm tra bản nháp"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Tiếng Trung (Giản thể)"
@@ -966,6 +983,10 @@ msgstr "Cuộc hội thoại đã được sao chép."
msgid "Conversation JSON copied."
msgstr "Đã sao chép JSON hội thoại."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Bản nháp bảng định kiểu đã chuyển đổi"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Đã sao chép vào bảng nhớ tạm."
@@ -989,6 +1010,10 @@ msgstr "Sao chép mã Backup"
msgid "Copy JSON"
msgstr "Sao chép JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Sao chép bảng định kiểu"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Sao chép khóa bí mật này và sử dụng trong ứng dụng của bạn để truy cập dữ liệu."
@@ -1545,6 +1570,11 @@ msgstr "Chỉnh sửa {chip}"
msgid "Edit application"
msgstr "Chỉnh sửa hồ sơ ứng tuyển"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Chỉnh sửa màu {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "Nhập mật khẩu của bạn để xác nhận thiết lập xác th
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Nhập mật khẩu của bạn để tắt xác thực hai yếu tố. Tài khoản của bạn sẽ kém an toàn hơn nếu không bật 2FA."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Lỗi"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Mỗi đóng góp, dù lớn hay nhỏ, đều tạo nên sự khác biệt lớn cho dự án.<0/>Cảm ơn sự ủng hộ của bạn!"
@@ -1682,6 +1716,10 @@ msgstr "Mỗi đóng góp, dù lớn hay nhỏ, đều tạo nên sự khác bi
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Mọi thứ bạn cần để tạo, tùy chỉnh và chia sẻ bản lý lịch chuyên nghiệp. Được xây dựng với tính riêng tư, mã nguồn mở và hoàn toàn miễn phí mãi mãi."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Thoát chế độ lấy nét"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Thoát toàn màn hình"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Định dạng"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Định dạng bảng định kiểu"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Miễn phí"
@@ -2584,6 +2626,12 @@ msgstr "Sáng"
msgid "Light theme"
msgstr "Chủ đề sáng"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Dòng {0}, cột {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Chiều cao giữa các dòng"
@@ -2918,6 +2966,10 @@ msgstr "Na Uy"
msgid "Not connected"
msgstr "Không kết nối"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "Trợ lý AI mở"
msgid "Open Email Client"
msgstr "Mở ứng dụng Email"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Chế độ lấy nét mở"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Mở trong trình soạn thảo"
@@ -2992,6 +3048,7 @@ msgstr "Tương thích với OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "Nhấn <0>phím Enter</0> để mở"
msgid "Preview"
msgstr "Xem trước"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Chức năng xem trước và xuất khẩu sử dụng phiên bản hợp lệ mới nhất."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Màu chủ đạo"
@@ -3374,10 +3435,22 @@ msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Sơ yếu lý lịch phản hồi phiên bản 4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Đang đọc…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Sẵn sàng kích hoạt"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Sẵn sàng kích hoạt kèm cảnh báo"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Người nhận"
@@ -3394,6 +3467,10 @@ msgstr "Hình chữ nhật (Toàn bộ chiều rộng)"
msgid "Redo"
msgstr "Làm lại"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Chỉnh sửa lại bảng định kiểu"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "Đặt mật khẩu mới"
msgid "Reset Style"
msgstr "Đặt lại kiểu"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Đặt lại về kiểu định dạng đã áp dụng"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "Đặt lại mật khẩu"
@@ -3791,6 +3872,14 @@ msgstr "đã chọn"
msgid "Self-Host with Docker"
msgstr "Tự dựng với Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Bảng định kiểu CSS ngữ nghĩa"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "Các kiểu ngữ nghĩa vẫn còn hiệu lực"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Gửi tin nhắn"
@@ -4152,6 +4241,14 @@ msgstr "Gạch ngang"
msgid "Strong fit"
msgstr "Rất phù hợp"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Trình chỉnh sửa bảng định kiểu"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Tệp định kiểu có lỗi"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "Trang bạn đang tìm có thể đã được di chuyển hoặc không
msgid "The password you entered is incorrect"
msgstr "Mật khẩu bạn đã nhập không đúng"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Không thể cập nhật bản xem trước sơ yếu lý lịch. Bản xem trước hợp lệ cuối cùng vẫn được hiển thị."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Hồ sơ bạn đang cố truy cập đã được bảo vệ bằng mật khẩu"
@@ -4381,6 +4482,10 @@ msgstr "Mục này sẽ bị xóa vĩnh viễn. Không thể hoàn tác."
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "Tính năng này yêu cầu kết nối với nhà cung cấp AI. Vui lòng thiết lập nhà cung cấp này trong phần cài đặt."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "Hiện tại, phiên bản này không cho phép chỉnh sửa CSS ngữ nghĩa."
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "Đây là tên thân thiện với URL cho hồ sơ của bạn."
@@ -4639,6 +4744,10 @@ msgstr "Gạch chân"
msgid "Undo"
msgstr "Hoàn tác"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Hoàn tác chỉnh sửa bảng định kiểu"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Không giới hạn hồ sơ"
@@ -5013,6 +5122,10 @@ msgstr "Dữ liệu của bạn được lưu trữ an toàn và không bao gi
msgid "Your latest changes could not be saved."
msgstr "Những thay đổi gần đây của bạn không thể được lưu lại."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Các kiểu định dạng cũ của bạn vẫn hoạt động cho đến khi bạn kích hoạt bản nháp CSS ngữ nghĩa này một cách rõ ràng."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Mật khẩu của bạn đã được đặt lại thành công. Bây giờ bạn có thể đăng nhập bằng mật khẩu mới."
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: zh\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -163,6 +163,10 @@ msgstr "帐户菜单"
msgid "Actions"
msgstr "操作"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "启用语义化 CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "实际尺寸(100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "每周发送的申请(最近 8 周)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "已申请"
@@ -493,6 +498,10 @@ msgstr "申请日期"
msgid "Applied Rules"
msgstr "应用规则"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "附带警告"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "阿拉伯语"
@@ -800,6 +809,14 @@ msgstr "请检查你的电子邮件,点击邮件中的链接重置密码。"
msgid "Check your email for a link to verify your account."
msgstr "请检查你的电子邮件,点击邮件中的链接验证账号。"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "检查"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "检查草稿"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "中文(简体)"
@@ -966,6 +983,10 @@ msgstr "对话已复制。"
msgid "Conversation JSON copied."
msgstr "对话JSON已复制。"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "已转换的样式表草稿"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "已复制到剪贴板。"
@@ -989,6 +1010,10 @@ msgstr "复制备份码"
msgid "Copy JSON"
msgstr "复制 JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "复制样式表"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "复制此密钥,并在你的应用程序中使用它来访问你的数据。"
@@ -1545,6 +1570,11 @@ msgstr "编辑 {chip}"
msgid "Edit application"
msgstr "编辑申请"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "编辑颜色 {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "请输入你的密码以确认设置双重身份验证。启用后,你
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "请输入你的密码以禁用双重身份验证。关闭 2FA 后,你的账号将不再那么安全。"
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "错误"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "每一笔捐助,无论多少,都会对项目产生巨大的积极影响。<0/>感谢你的支持!"
@@ -1682,6 +1716,10 @@ msgstr "每一笔捐助,无论多少,都会对项目产生巨大的积极影
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "你创建、定制和分享专业简历所需的一切。以隐私为核心设计,由开源驱动,并且永久免费。"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "退出对焦模式"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "退出全屏"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "格式"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "格式样式表"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "免费"
@@ -2584,6 +2626,12 @@ msgstr "浅色"
msgid "Light theme"
msgstr "浅色主题"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "行 {0},列 {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "行高"
@@ -2918,6 +2966,10 @@ msgstr "挪威语"
msgid "Not connected"
msgstr "未连接"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "OpenAI助手"
msgid "Open Email Client"
msgstr "打开邮件客户端"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "打开对焦模式"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "在构建器中打开"
@@ -2992,6 +3048,7 @@ msgstr "兼容 OpenAI"
msgid "OpenRouter"
msgstr "开放路由器"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "按<0>Enter 键</0>打开"
msgid "Preview"
msgstr "预览"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "预览和导出时请使用最新有效版本。"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "主颜色"
@@ -3374,10 +3435,22 @@ msgstr "响应式恢复 v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "反应式简历 v4(JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "正在读取…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "准备激活"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "准备激活并发出警告"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "收件人"
@@ -3394,6 +3467,10 @@ msgstr "矩形(全宽)"
msgid "Redo"
msgstr "重做"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "重新编辑样式表"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "重置密码"
msgid "Reset Style"
msgstr "重置样式"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "重置为已应用的样式表"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "重置密码"
@@ -3791,6 +3872,14 @@ msgstr "已选择"
msgid "Self-Host with Docker"
msgstr "使用 Docker 自托管"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "语义化 CSS 样式表"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "语义风格仍然活跃"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "发送消息"
@@ -4152,6 +4241,14 @@ msgstr "删除线"
msgid "Strong fit"
msgstr "高度匹配"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "样式表编辑器"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "样式表存在错误"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit 论坛"
@@ -4308,6 +4405,10 @@ msgstr "您要查找的页面可能已被移动或已不存在。"
msgid "The password you entered is incorrect"
msgstr "你输入的密码不正确"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "简历预览无法更新,仍显示上次有效的预览版本。"
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "你尝试访问的这份简历已启用密码保护"
@@ -4381,6 +4482,10 @@ msgstr "此条目将被永久删除。此操作无法撤销。"
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "此功能需要连接人工智能服务提供商。请在设置中进行设置。"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "此实例目前不支持语义化 CSS 编辑。"
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "这是一个适合放在 URL 中的简历名称。"
@@ -4639,6 +4744,10 @@ msgstr "下划线"
msgid "Undo"
msgstr "撤销"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "撤销样式表编辑"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "无限简历"
@@ -5013,6 +5122,10 @@ msgstr "你的数据会被安全存储,且绝不会与第三方共享。你也
msgid "Your latest changes could not be saved."
msgstr "您所做的最新更改未能保存。"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "在您明确激活此语义化 CSS 草案之前,您的旧版样式仍将保持有效。"
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "你的密码已成功重置。你现在可以使用新密码登录。"
+114 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: zh\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-07-30 10:57\n"
"Last-Translator: \n"
"Language-Team: Chinese Traditional\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -163,6 +163,10 @@ msgstr "帳戶選單"
msgid "Actions"
msgstr "動作"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "啟用語意化 CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "實際尺寸(100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "每週送出的申請(最近 8 週)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "已申請"
@@ -493,6 +498,10 @@ msgstr "應徵日期"
msgid "Applied Rules"
msgstr "應用規則"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "附帶警告"
#: src/libs/locale.ts
msgid "Arabic"
msgstr "阿拉伯文"
@@ -800,6 +809,14 @@ msgstr "請到電子郵件收件匣查看重設密碼的連結。"
msgid "Check your email for a link to verify your account."
msgstr "請到電子郵件收件匣查看用於驗證帳戶的連結。"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "檢查"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "檢查草稿"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "中文(簡體)"
@@ -966,6 +983,10 @@ msgstr "對話已複製。"
msgid "Conversation JSON copied."
msgstr "對話JSON已複製。"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "已轉換的樣式表草稿"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "已複製到剪貼簿。"
@@ -989,6 +1010,10 @@ msgstr "複製備份代碼"
msgid "Copy JSON"
msgstr "複製 JSON"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "複製樣式表"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "複製這組私密金鑰,並在您的應用程式中使用它來存取您的資料。"
@@ -1545,6 +1570,11 @@ msgstr "編輯 {chip}"
msgid "Edit application"
msgstr "編輯應徵紀錄"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "編輯顏色 {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1704,10 @@ msgstr "請輸入您的密碼以確認設定雙因子驗證。啟用後,每次
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "請輸入您的密碼以停用雙因子驗證。停用後,您的帳戶將會比較不安全。"
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "錯誤"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "每一筆捐款,不論大小,都能為此專案帶來巨大的幫助。<0/>感謝您的支持!"
@@ -1682,6 +1716,10 @@ msgstr "每一筆捐款,不論大小,都能為此專案帶來巨大的幫助
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "建立、客製化與分享專業履歷所需的一切功能一應俱全。以隱私為出發點,由開放原始碼驅動,而且永遠完全免費。"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "退出對焦模式"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "退出全螢幕"
@@ -2001,6 +2039,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "格式"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "格式樣式表"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "免費"
@@ -2584,6 +2626,12 @@ msgstr "亮色"
msgid "Light theme"
msgstr "淺色主題"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "行 {0},列 {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "行高"
@@ -2918,6 +2966,10 @@ msgstr "挪威語"
msgid "Not connected"
msgstr "未連接"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3020,10 @@ msgstr "OpenAI助手"
msgid "Open Email Client"
msgstr "開啟電子郵件用戶端"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "開啟對焦模式"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "在建構器中開啟"
@@ -2992,6 +3048,7 @@ msgstr "相容 OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3324,10 @@ msgstr "按<0>Enter</0>開啟"
msgid "Preview"
msgstr "預覽"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "預覽和匯出時請使用最新有效版本。"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "主要顏色"
@@ -3374,10 +3435,22 @@ msgstr "響應式恢復 v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "反應式履歷 v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "正在讀取…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "準備啟用"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "準備啟動並發出警告"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "收件人"
@@ -3394,6 +3467,10 @@ msgstr "長方形(全幅寬)"
msgid "Redo"
msgstr "重做"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "重新編輯樣式表"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3495,6 +3572,10 @@ msgstr "重設密碼"
msgid "Reset Style"
msgstr "重設樣式"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "重設為已套用的樣式表"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr "重設您的密碼"
@@ -3791,6 +3872,14 @@ msgstr "已選取"
msgid "Self-Host with Docker"
msgstr "使用 Docker 自行託管"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "語意化 CSS 樣式表"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr "語義風格仍然活躍"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "發送訊息"
@@ -4152,6 +4241,14 @@ msgstr "刪除線"
msgid "Strong fit"
msgstr "高度適配"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "樣式表編輯器"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "樣式表存在錯誤"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4405,10 @@ msgstr "您要尋找的頁面可能已被移動或已不存在。"
msgid "The password you entered is incorrect"
msgstr "您輸入的密碼不正確"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "履歷預覽無法更新,仍顯示上次有效的預覽版本。"
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "您嘗試存取的履歷已啟用密碼保護"
@@ -4381,6 +4482,10 @@ msgstr "此項目將永久刪除。此操作無法復原。"
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr "此功能需要連接人工智慧服務提供者。請在設定中進行設定。"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr "此實例目前不支援語義化 CSS 編輯。"
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr "這是用於履歷的 URL 友善名稱。"
@@ -4639,6 +4744,10 @@ msgstr "底線"
msgid "Undo"
msgstr "撤銷"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "撤銷樣式表編輯"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "無限履歷"
@@ -5013,6 +5122,10 @@ msgstr "您的資料會被安全保存,且絕不會分享給第三方。您也
msgid "Your latest changes could not be saved."
msgstr "您所做的最新變更未能儲存。"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "在您明確啟動此語意化 CSS 草稿之前,您的舊版樣式仍將保持有效。"
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "您的密碼已成功重設。您現在可以使用新密碼登入。"
+113
View File
@@ -158,6 +158,10 @@ msgstr ""
msgid "Actions"
msgstr ""
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr ""
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr ""
@@ -477,6 +481,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr ""
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr ""
@@ -488,6 +493,10 @@ msgstr ""
msgid "Applied Rules"
msgstr ""
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr ""
#: src/libs/locale.ts
msgid "Arabic"
msgstr ""
@@ -795,6 +804,14 @@ msgstr ""
msgid "Check your email for a link to verify your account."
msgstr ""
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr ""
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr ""
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr ""
@@ -961,6 +978,10 @@ msgstr ""
msgid "Conversation JSON copied."
msgstr ""
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr ""
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr ""
@@ -984,6 +1005,10 @@ msgstr ""
msgid "Copy JSON"
msgstr ""
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr ""
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr ""
@@ -1540,6 +1565,11 @@ msgstr ""
msgid "Edit application"
msgstr ""
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr ""
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1669,6 +1699,10 @@ msgstr ""
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr ""
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr ""
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr ""
@@ -1677,6 +1711,10 @@ msgstr ""
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr ""
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr ""
@@ -1996,6 +2034,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr ""
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr ""
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr ""
@@ -2579,6 +2621,12 @@ msgstr ""
msgid "Light theme"
msgstr ""
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr ""
@@ -2913,6 +2961,10 @@ msgstr ""
msgid "Not connected"
msgstr ""
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2963,6 +3015,10 @@ msgstr ""
msgid "Open Email Client"
msgstr ""
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr ""
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr ""
@@ -2987,6 +3043,7 @@ msgstr ""
msgid "OpenRouter"
msgstr ""
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3262,6 +3319,10 @@ msgstr ""
msgid "Preview"
msgstr ""
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr ""
@@ -3369,10 +3430,22 @@ msgstr ""
msgid "Reactive Resume v4 (JSON)"
msgstr ""
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr ""
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr ""
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr ""
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr ""
@@ -3389,6 +3462,10 @@ msgstr ""
msgid "Redo"
msgstr ""
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr ""
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3490,6 +3567,10 @@ msgstr ""
msgid "Reset Style"
msgstr ""
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr ""
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
msgstr ""
@@ -3786,6 +3867,14 @@ msgstr ""
msgid "Self-Host with Docker"
msgstr ""
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr ""
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Semantic styles remain active"
msgstr ""
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr ""
@@ -4147,6 +4236,14 @@ msgstr ""
msgid "Strong fit"
msgstr ""
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr ""
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr ""
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr ""
@@ -4303,6 +4400,10 @@ msgstr ""
msgid "The password you entered is incorrect"
msgstr ""
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr ""
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr ""
@@ -4376,6 +4477,10 @@ msgstr ""
msgid "This feature requires a connected AI provider. Please set one up in the settings."
msgstr ""
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "This instance does not currently allow Semantic CSS editing."
msgstr ""
#: src/dialogs/resume/index.tsx
msgid "This is a URL-friendly name for your resume."
msgstr ""
@@ -4634,6 +4739,10 @@ msgstr ""
msgid "Undo"
msgstr ""
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr ""
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr ""
@@ -5008,6 +5117,10 @@ msgstr ""
msgid "Your latest changes could not be saved."
msgstr ""
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr ""
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr ""
+25 -15
View File
@@ -16,20 +16,28 @@
"lingui:extract": "lingui extract --clean --overwrite"
},
"dependencies": {
"@ai-sdk/react": "^4.0.40",
"@ai-sdk/react": "^4.0.45",
"@base-ui/react": "^1.6.0",
"@better-auth/api-key": "^1.6.25",
"@better-auth/infra": "^0.3.7",
"@better-auth/oauth-provider": "^1.6.25",
"@better-auth/passkey": "^1.6.25",
"@codemirror/autocomplete": "^6.20.3",
"@codemirror/commands": "^6.10.4",
"@codemirror/lang-css": "^6.3.1",
"@codemirror/language": "^6.12.4",
"@codemirror/lint": "^6.9.7",
"@codemirror/search": "^6.7.1",
"@codemirror/state": "^6.7.1",
"@codemirror/view": "^6.43.7",
"@dnd-kit/core": "^6.3.1",
"@dnd-kit/sortable": "^10.0.0",
"@dnd-kit/utilities": "^3.2.2",
"@lingui/core": "^6.6.0",
"@lingui/react": "^6.6.0",
"@orpc/client": "^1.14.12",
"@orpc/server": "^1.14.12",
"@orpc/tanstack-query": "^1.14.12",
"@orpc/client": "^1.14.13",
"@orpc/server": "^1.14.13",
"@orpc/tanstack-query": "^1.14.13",
"@phosphor-icons/react": "^2.1.10",
"@react-pdf/renderer": "^4.5.1",
"@reactive-resume/ai": "workspace:*",
@@ -48,27 +56,29 @@
"@tanstack/react-hotkeys": "^0.10.0",
"@tanstack/react-query": "^5.101.4",
"@tanstack/react-router": "^1.170.18",
"@tiptap/extension-color": "^3.29.1",
"@tiptap/extension-highlight": "^3.29.1",
"@tiptap/extension-text-align": "^3.29.1",
"@tiptap/extension-text-style": "^3.29.1",
"@tiptap/pm": "^3.29.1",
"@tiptap/react": "^3.29.1",
"@tiptap/starter-kit": "^3.29.1",
"@tiptap/extension-color": "^3.29.2",
"@tiptap/extension-highlight": "^3.29.2",
"@tiptap/extension-text-align": "^3.29.2",
"@tiptap/extension-text-style": "^3.29.2",
"@tiptap/pm": "^3.29.2",
"@tiptap/react": "^3.29.2",
"@tiptap/starter-kit": "^3.29.2",
"@types/js-cookie": "^3.0.6",
"@uiw/color-convert": "^2.10.3",
"@uiw/react-color-colorful": "^2.10.3",
"ai": "^7.0.37",
"ai": "^7.0.42",
"better-auth": "1.6.25",
"buffer": "^6.0.3",
"cmdk": "^1.1.1",
"drizzle-orm": "1.0.0-rc.4",
"es-toolkit": "^1.50.0",
"fuse.js": "^7.5.0",
"immer": "^11.1.15",
"js-cookie": "^3.0.8",
"motion": "^12.42.2",
"pdfjs-dist": "6.1.200",
"motion": "^12.43.0",
"pdfjs-dist": "6.2.108",
"pg": "^8.22.0",
"prettier": "^3.9.6",
"qrcode.react": "^4.2.0",
"react": "^19.2.8",
"react-dom": "^19.2.8",
@@ -102,7 +112,7 @@
"@types/react": "^19.2.17",
"@types/react-dom": "^19.2.3",
"@typescript/native-preview": "7.0.0-dev.20260707.2",
"@vitejs/plugin-react": "^6.0.4",
"@vitejs/plugin-react": "^6.0.5",
"babel-plugin-macros": "^3.1.0",
"babel-plugin-react-compiler": "^1.0.0",
"rimraf": "^6.1.3",
Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

@@ -1,6 +1,33 @@
// @vitest-environment happy-dom
import { describe, expect, it } from "vitest";
import { Editor } from "@tiptap/react";
import StarterKit from "@tiptap/starter-kit";
import { resolveHighlightToolbarState } from "./rich-input.utils";
describe("Tiptap editing", () => {
it("creates a new paragraph when Enter is pressed", () => {
const editor = new Editor({ extensions: [StarterKit], content: "<p>First</p>" });
editor.commands.setTextSelection(editor.state.doc.content.size - 1);
editor.commands.enter();
expect(editor.getHTML()).toBe("<p>First</p><p></p>");
editor.destroy();
});
it("creates and splits list items", () => {
const editor = new Editor({ extensions: [StarterKit], content: "<p>First</p>" });
editor.commands.setTextSelection(editor.state.doc.content.size - 1);
editor.commands.toggleBulletList();
editor.commands.enter();
expect(editor.getHTML()).toBe("<ul><li><p>First</p></li><li><p></p></li></ul><p></p>");
editor.destroy();
});
});
describe("resolveHighlightToolbarState", () => {
it("shows legacy colorless highlights as default yellow and clearable", () => {
expect(resolveHighlightToolbarState(true, null)).toEqual({
@@ -6,7 +6,12 @@ import { act, renderHook } from "@testing-library/react";
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
import { i18n } from "@lingui/core";
import { defaultResumeData } from "@reactive-resume/schema/resume/default";
import { useBuilderResumeUpdateSubscription, useResumeStore, useResumeUpdateSubscription } from "./draft";
import {
isEditableElementFocused,
useBuilderResumeUpdateSubscription,
useResumeStore,
useResumeUpdateSubscription,
} from "./draft";
const orpcMocks = vi.hoisted(() => ({
getResumeById: vi.fn(),
@@ -30,6 +35,10 @@ const toastMocks = vi.hoisted(() => ({
error: vi.fn(() => "sync-error-toast"),
}));
const stylesheetMocks = vi.hoisted(() => ({
refresh: vi.fn(),
}));
vi.mock("@orpc/client", () => ({
consumeEventIterator: consumeEventIteratorMock,
}));
@@ -72,6 +81,10 @@ vi.mock("sonner", () => ({
toast: toastMocks,
}));
vi.mock("@/features/resume/stylesheet/store", () => ({
refreshStylesheetStore: stylesheetMocks.refresh,
}));
function cloneResumeData(data: ResumeData): ResumeData {
return structuredClone(data);
}
@@ -122,6 +135,7 @@ describe("builder resume autosave", () => {
i18n.loadAndActivate({ locale: "en-US", messages: {} });
toastMocks.dismiss.mockClear();
toastMocks.error.mockClear();
stylesheetMocks.refresh.mockReset();
useResumeStore.getState().reset();
});
@@ -251,6 +265,21 @@ describe("builder resume autosave", () => {
});
});
describe("editable focus detection", () => {
it("treats CodeMirror descendants as editable", () => {
const editor = document.createElement("div");
editor.className = "cm-editor";
const content = document.createElement("div");
content.tabIndex = 0;
editor.append(content);
document.body.append(editor);
content.focus();
expect(isEditableElementFocused()).toBe(true);
editor.remove();
});
});
describe("builder resume undo/redo", () => {
beforeEach(() => {
vi.useFakeTimers();
@@ -477,4 +506,37 @@ describe("resume update stream subscription", () => {
expect(queryClientMock.setQueryData).toHaveBeenCalledWith(["resume", "getById", initial.id], remote);
expect(useResumeStore.getState().resume?.data.basics.name).toBe("Local Name");
});
it("refetches canonical stylesheet state for stylesheet SSE events", async () => {
const initial = makeResume("resume-stylesheet");
consumeEventIteratorMock.mockReturnValue(vi.fn().mockResolvedValue(undefined));
routerParamsMock.value = { resumeId: initial.id };
useResumeStore.getState().initialize(initial);
renderHook(() => useBuilderResumeUpdateSubscription());
const handlers = consumeEventIteratorMock.mock.calls[0]?.[1] as {
onEvent: (event: { mutation: string }) => Promise<void>;
};
await act(async () => handlers.onEvent({ mutation: "stylesheet" }));
expect(stylesheetMocks.refresh).toHaveBeenCalledWith(initial.id);
expect(orpcMocks.getResumeById).not.toHaveBeenCalled();
});
it("refreshes the render-data version after content SSE events", async () => {
const initial = makeResume("resume-content");
const remote = withBasicsName(initial, "Remote");
consumeEventIteratorMock.mockReturnValue(vi.fn().mockResolvedValue(undefined));
orpcMocks.getResumeById.mockResolvedValue(remote);
routerParamsMock.value = { resumeId: initial.id };
useResumeStore.getState().initialize(initial);
renderHook(() => useBuilderResumeUpdateSubscription());
const handlers = consumeEventIteratorMock.mock.calls[0]?.[1] as {
onEvent: (event: { mutation: string }) => Promise<void>;
};
await act(async () => handlers.onEvent({ mutation: "update" }));
expect(stylesheetMocks.refresh).toHaveBeenCalledWith(initial.id, remote.data);
});
});
@@ -10,6 +10,7 @@ import { useCallback, useEffect, useState } from "react";
import { toast } from "sonner";
import { immer } from "zustand/middleware/immer";
import { create } from "zustand/react";
import { refreshStylesheetStore } from "@/features/resume/stylesheet/store";
import { orpc, streamClient } from "@/libs/orpc/client";
export type Resume = {
@@ -25,7 +26,7 @@ export type Resume = {
};
// Mirrors the server-side ResumeUpdatedEvent discriminator (packages/api resume/events.ts).
type ResumeUpdateMutation = "sync" | "create" | "update" | "patch" | "lock" | "password" | "delete";
type ResumeUpdateMutation = "sync" | "create" | "update" | "patch" | "lock" | "password" | "delete" | "stylesheet";
type ResumeUpdateEvent = { mutation: ResumeUpdateMutation };
type SaveStatus = "idle" | "saving" | "saved" | "error";
@@ -114,7 +115,8 @@ export function isEditableElementFocused(): boolean {
element.tagName === "INPUT" ||
element.tagName === "TEXTAREA" ||
element.tagName === "SELECT" ||
element.isContentEditable
element.isContentEditable ||
element.closest(".cm-editor") !== null
);
}
@@ -614,9 +616,14 @@ export function useBuilderResumeUpdateSubscription() {
if (!resumeId) return;
bindRuntimeQueryClient(resumeId, queryClient);
if (event.mutation === "stylesheet") {
await refreshStylesheetStore(resumeId);
return;
}
const resume = (await orpc.resume.getById.call({ id: resumeId })) as Resume;
queryClient.setQueryData(getResumeQueryKey(resumeId), resume);
await refreshStylesheetStore(resumeId, resume.data);
if (hasPendingLocalChanges(resumeId)) {
useResumeStore.getState().mergeResumeMetadata(resume);
@@ -1,4 +1,6 @@
import type { PublicStyleProjection } from "@reactive-resume/pdf/public-projection";
import type { ResumeData } from "@reactive-resume/schema/resume/data";
import type { SemanticStylesheet, StylesheetSource } from "@reactive-resume/schema/resume/stylesheet";
import type { Template } from "@reactive-resume/schema/templates";
import { useMemo } from "react";
import { createResumePdfBlob as createPdfBlob } from "@reactive-resume/pdf/browser";
@@ -9,6 +11,22 @@ type ResumePdfRenderOptions = {
includeCoverLetterHeader?: boolean;
};
export type ResumePdfPresentation =
| { stylesheet: Pick<SemanticStylesheet, "mode"> & { applied: StylesheetSource } }
| { publicStyleProjection: PublicStyleProjection };
const withAppliedStylesheet = (data: ResumeData, presentation?: ResumePdfPresentation): ResumeData => {
if (!presentation || !("stylesheet" in presentation)) return data;
const { mode, applied } = presentation.stylesheet;
return {
...data,
metadata: {
...data.metadata,
stylesheet: { mode, source: applied, applied },
},
};
};
export const useLocalizedResumeDocument = (data?: ResumeData, template?: Template) => {
const sectionTitleResolver = useSectionTitleResolver(data?.metadata.page.locale);
@@ -29,13 +47,17 @@ export const createResumePdfBlob = async (
data: ResumeData,
template?: Template,
renderOptions?: ResumePdfRenderOptions,
presentation?: ResumePdfPresentation,
) => {
const sectionTitleResolver = await createSectionTitleResolverForLocale(data.metadata.page.locale);
return createPdfBlob({
data,
data: withAppliedStylesheet(data, presentation),
template,
...(renderOptions ? { renderOptions } : {}),
...(presentation && "publicStyleProjection" in presentation
? { publicStyleProjection: presentation.publicStyleProjection }
: {}),
resolveSectionTitle: sectionTitleResolver,
});
};
@@ -0,0 +1,95 @@
// @vitest-environment happy-dom
import { act, renderHook } from "@testing-library/react";
import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
import { i18n } from "@lingui/core";
import { createPublicStyleProjection } from "@reactive-resume/pdf/public-projection";
import { sampleResumeData } from "@reactive-resume/schema/resume/sample";
import { useResumeExport } from "./use-resume-export";
const mocks = vi.hoisted(() => ({
createResumePdfBlob: vi.fn(async () => new Blob(["local"], { type: "application/pdf" })),
downloadWithAnchor: vi.fn(),
fetch: vi.fn(async (_input: string | URL) => new Response(new Blob(["server"], { type: "application/pdf" }))),
toastError: vi.fn(),
}));
vi.mock("./pdf-document", () => ({
createResumePdfBlob: mocks.createResumePdfBlob,
}));
vi.mock("@reactive-resume/utils/file", () => ({
downloadWithAnchor: mocks.downloadWithAnchor,
generateFilename: (name: string, extension: string) => `${name}.${extension}`,
}));
vi.mock("@/features/resume/stylesheet/store", () => ({
useStylesheetStore: (selector: (state: object) => unknown) =>
selector({
resumeId: undefined,
mode: "legacy",
source: { languageVersion: 1, text: "@version 1;\n" },
applied: { languageVersion: 1, text: "@version 1;\n" },
}),
}));
vi.mock("sonner", () => ({
toast: {
loading: vi.fn(() => "toast"),
error: mocks.toastError,
dismiss: vi.fn(),
},
}));
beforeAll(() => i18n.loadAndActivate({ locale: "en", messages: {} }));
beforeEach(() => {
mocks.createResumePdfBlob.mockClear();
mocks.downloadWithAnchor.mockClear();
mocks.fetch.mockClear();
mocks.toastError.mockClear();
vi.stubGlobal("fetch", mocks.fetch);
});
describe("useResumeExport public PDF", () => {
it("downloads the authorized server blob after one mismatched-projection refetch", async () => {
const semanticData = structuredClone(sampleResumeData);
const source = { languageVersion: 1, text: "@version 1;\nname { color: #123456; }\n" };
semanticData.metadata.stylesheet = { mode: "semantic", source, applied: source };
const projection = await createPublicStyleProjection({ data: semanticData });
const mismatchedProjection = { ...projection, renderDataHash: "0".repeat(64) };
const refetchStyleProjection = vi.fn(async () => mismatchedProjection);
const { result } = renderHook(() =>
useResumeExport(
{ name: "Sample", slug: "sample", data: sampleResumeData },
{
publicResumePdf: {
stylesheetMode: "semantic",
styleProjection: mismatchedProjection,
refetchStyleProjection,
publicResume: { username: "amruth", slug: "sample" },
},
},
),
);
await act(() => result.current.onDownloadPDF());
expect(refetchStyleProjection).toHaveBeenCalledTimes(1);
expect(mocks.fetch).toHaveBeenCalledTimes(1);
expect(mocks.createResumePdfBlob).not.toHaveBeenCalled();
const blob = mocks.downloadWithAnchor.mock.calls[0]?.[0] as Blob;
expect(await blob.text()).toBe("server");
});
it("does not download an unstyled PDF when semantic rendering rejects", async () => {
mocks.createResumePdfBlob.mockRejectedValueOnce(
new Error("The semantic stylesheet could not be rendered.", {
cause: [{ code: "RESOURCE_LIMIT", severity: "error" }],
}),
);
const { result } = renderHook(() => useResumeExport({ name: "Sample", slug: "sample", data: sampleResumeData }));
await act(() => result.current.onDownloadPDF());
expect(mocks.downloadWithAnchor).not.toHaveBeenCalled();
expect(mocks.toastError).toHaveBeenCalledTimes(1);
});
});
@@ -1,13 +1,18 @@
import type { ResumeExportTarget } from "@reactive-resume/resume/export-sections";
import type { ResumeData } from "@reactive-resume/schema/resume/data";
import type { SemanticStylesheet } from "@reactive-resume/schema/resume/stylesheet";
import type { PublicResumePdfOptions } from "@/features/resume/public/public-pdf";
import type { ResumePdfPresentation } from "./pdf-document";
import { t } from "@lingui/core/macro";
import { useCallback, useState } from "react";
import { useCallback, useMemo, useState } from "react";
import { toast } from "sonner";
import { buildDocx } from "@reactive-resume/docx";
import { getResumeSectionTitle } from "@reactive-resume/pdf/section-title";
import { getResumeExportData, resumeHasCoverLetter } from "@reactive-resume/resume/export-sections";
import { buildMarkdown } from "@reactive-resume/resume/markdown";
import { downloadWithAnchor, generateFilename } from "@reactive-resume/utils/file";
import { resolvePublicResumePdfBlob } from "@/features/resume/public/public-pdf";
import { useStylesheetStore } from "@/features/resume/stylesheet/store";
import { createSectionTitleResolverForLocale } from "@/libs/resume/section-title-locale";
import { createResumePdfBlob } from "./pdf-document";
@@ -24,11 +29,16 @@ const createSectionTitleResolver = async (data: ResumeData) => {
// ponytail: loosened from Resume to Pick so public-resume (where name may be "" for non-owners) can reuse
type ExportableResume = {
id?: string;
name: string;
slug: string;
data: ResumeData;
};
type UseResumeExportOptions = {
publicResumePdf?: PublicResumePdfOptions;
};
const getExportName = (resume: ExportableResume) => resume.name || resume.data.basics.name || resume.slug;
const getTargetExportName = (resume: ExportableResume, target: ResumeExportTarget) =>
target === "cover-letter" ? `${getExportName(resume)} Cover Letter` : getExportName(resume);
@@ -41,15 +51,46 @@ type DownloadPdfOptions = {
* Single source of truth for resume export (PDF / DOCX / JSON / Print). Previously duplicated verbatim
* between the builder dock and the right-panel Export section (#17).
*/
export function useResumeExport(resume: ExportableResume | undefined) {
export function useResumeExport(resume: ExportableResume | undefined, exportOptions: UseResumeExportOptions = {}) {
const [isExporting, setIsExporting] = useState(false);
const hasCoverLetter = resume ? resumeHasCoverLetter(resume.data) : false;
const stylesheetResumeId = useStylesheetStore((state) => state.resumeId);
const stylesheetMode = useStylesheetStore((state) => state.mode);
const stylesheetSource = useStylesheetStore((state) => state.source);
const stylesheetApplied = useStylesheetStore((state) => state.applied);
const canonicalStylesheet = useMemo<SemanticStylesheet | undefined>(
() =>
resume?.id && resume.id === stylesheetResumeId
? {
mode: stylesheetMode,
source: stylesheetSource,
applied: stylesheetApplied,
}
: undefined,
[resume?.id, stylesheetApplied, stylesheetMode, stylesheetResumeId, stylesheetSource],
);
const pdfPresentation = useMemo<ResumePdfPresentation | undefined>(
() =>
canonicalStylesheet
? { stylesheet: { mode: canonicalStylesheet.mode, applied: canonicalStylesheet.applied } }
: undefined,
[canonicalStylesheet],
);
const onDownloadJSON = useCallback(() => {
if (!resume) return;
const blob = new Blob([JSON.stringify(resume.data, null, 2)], { type: "application/json" });
const data = canonicalStylesheet
? {
...resume.data,
metadata: {
...resume.data.metadata,
stylesheet: canonicalStylesheet,
},
}
: resume.data;
const blob = new Blob([JSON.stringify(data, null, 2)], { type: "application/json" });
downloadWithAnchor(blob, generateFilename(getExportName(resume), "json"));
}, [resume]);
}, [canonicalStylesheet, resume]);
const onDownloadMarkdown = useCallback(
async (target: ResumeExportTarget = "resume") => {
@@ -80,18 +121,23 @@ export function useResumeExport(resume: ExportableResume | undefined) {
);
const onDownloadPDF = useCallback(
async (target: ResumeExportTarget = "resume", options?: DownloadPdfOptions) => {
async (target: ResumeExportTarget = "resume", downloadOptions?: DownloadPdfOptions) => {
if (!resume) return;
if (target === "cover-letter" && !resumeHasCoverLetter(resume.data)) return;
const toastId = toast.loading(t`Please wait while your PDF is being generated...`);
setIsExporting(true);
try {
const data = getResumeExportData(resume.data, target);
const blob = await createResumePdfBlob(
data,
undefined,
target === "cover-letter" ? { includeCoverLetterHeader: options?.includeCoverLetterHeader } : undefined,
);
const data = exportOptions.publicResumePdf ? resume.data : getResumeExportData(resume.data, target);
const blob = exportOptions.publicResumePdf
? await resolvePublicResumePdfBlob({ data, ...exportOptions.publicResumePdf })
: await createResumePdfBlob(
data,
undefined,
target === "cover-letter"
? { includeCoverLetterHeader: downloadOptions?.includeCoverLetterHeader }
: undefined,
pdfPresentation,
);
downloadWithAnchor(blob, generateFilename(getTargetExportName(resume, target), "pdf"));
} catch {
toast.error(t`There was a problem while generating the PDF, please try again.`);
@@ -100,7 +146,7 @@ export function useResumeExport(resume: ExportableResume | undefined) {
toast.dismiss(toastId);
}
},
[resume],
[exportOptions.publicResumePdf, pdfPresentation, resume],
);
const onPrint = useCallback(async () => {
@@ -108,7 +154,9 @@ export function useResumeExport(resume: ExportableResume | undefined) {
const toastId = toast.loading(t`Preparing your resume for printing...`);
setIsExporting(true);
try {
const blob = await createResumePdfBlob(resume.data);
const blob = exportOptions.publicResumePdf
? await resolvePublicResumePdfBlob({ data: resume.data, ...exportOptions.publicResumePdf })
: await createResumePdfBlob(resume.data, undefined, undefined, pdfPresentation);
const url = URL.createObjectURL(blob);
// ponytail: print the generated PDF via a hidden iframe (reliable in Chromium). If the browser
// blocks iframe printing, fall back to opening the PDF in a new tab so the user can print manually.
@@ -134,7 +182,7 @@ export function useResumeExport(resume: ExportableResume | undefined) {
setIsExporting(false);
toast.dismiss(toastId);
}
}, [resume]);
}, [exportOptions.publicResumePdf, pdfPresentation, resume]);
return { onDownloadJSON, onDownloadMarkdown, onDownloadDOCX, onDownloadPDF, onPrint, isExporting, hasCoverLetter };
}
@@ -8,7 +8,15 @@ import { sampleResumeData } from "@reactive-resume/schema/resume/sample";
import { ResumePreviewClient } from "./preview.browser";
const previewMock = vi.hoisted(() => ({
builderResumeId: undefined as string | undefined,
builderResumeData: undefined as ResumeData | undefined,
stylesheet: {
resumeId: undefined as string | undefined,
mode: "legacy" as "legacy" | "semantic",
source: { languageVersion: 1, text: "@version 1;\n" },
applied: { languageVersion: 1, text: "@version 1;\n" },
},
toastError: vi.fn(),
toBlob: vi.fn(async () => new Blob(["%PDF"], { type: "application/pdf" })),
}));
@@ -39,11 +47,28 @@ vi.mock("@/features/resume/export/pdf-document", () => ({
createResumePdfBlob: previewMock.toBlob,
}));
vi.mock("sonner", () => ({
toast: { error: previewMock.toastError },
}));
vi.mock("../builder/draft", () => ({
useResumeData: () => previewMock.builderResumeData,
useResumeStore: (selector: (state: { resumeId?: string }) => unknown) =>
selector({ resumeId: previewMock.builderResumeId }),
usePreviewPausedStore: (selector: (state: { paused: boolean }) => unknown) => selector({ paused: false }),
}));
vi.mock("@/features/resume/stylesheet/store", () => ({
useStylesheetStore: (
selector: (state: {
resumeId?: string;
mode: "legacy" | "semantic";
source: { languageVersion: number; text: string };
applied: { languageVersion: number; text: string };
}) => unknown,
) => selector(previewMock.stylesheet),
}));
vi.mock("./pdf-canvas", async () => {
const React = await import("react");
const pdfDocument = { numPages: 1 };
@@ -52,7 +77,7 @@ vi.mock("./pdf-canvas", async () => {
PdfCanvasDocument: ({ children, onLoadSuccess }: PdfCanvasDocumentProps) => {
React.useEffect(() => {
onLoadSuccess(pdfDocument);
}, [onLoadSuccess]);
}, []);
return React.createElement(React.Fragment, null, children(pdfDocument));
},
@@ -60,7 +85,7 @@ vi.mock("./pdf-canvas", async () => {
React.useEffect(() => {
onLoadSuccess(pageNumber, { height: 200, width: 100 });
onRenderSuccess?.();
}, [onLoadSuccess, onRenderSuccess, pageNumber]);
}, [pageNumber]);
return React.createElement(
"div",
@@ -77,9 +102,17 @@ describe("ResumePreviewClient", () => {
});
beforeEach(() => {
previewMock.builderResumeId = undefined;
previewMock.builderResumeData = undefined;
previewMock.stylesheet = {
resumeId: undefined,
mode: "legacy",
source: { languageVersion: 1, text: "@version 1;\n" },
applied: { languageVersion: 1, text: "@version 1;\n" },
};
previewMock.toBlob.mockReset();
previewMock.toBlob.mockImplementation(async () => new Blob(["%PDF"], { type: "application/pdf" }));
previewMock.toastError.mockReset();
});
it("renders a loading placeholder for each builder layout page while the PDF is generated", () => {
@@ -102,6 +135,76 @@ describe("ResumePreviewClient", () => {
expect(previewMock.toBlob).toHaveBeenCalledTimes(1);
});
expect(previewMock.toBlob).toHaveBeenCalledWith(sampleResumeData);
expect(previewMock.toBlob).toHaveBeenCalledWith(sampleResumeData, undefined, undefined, undefined);
});
it("keeps the rendered template identity on the active layer while its replacement renders", async () => {
const view = render(
<ResumePreviewClient data={sampleResumeData} pageLayout="vertical" pageScale={1.25} showPageNumbers={false} />,
);
const page = await screen.findByRole("img", { name: "Resume page 1 of 1" });
const activeLayer = page.closest('[aria-hidden="false"]');
expect(activeLayer?.getAttribute("data-resume-preview-template")).toBe("azurill");
previewMock.toBlob.mockImplementationOnce(() => new Promise<Blob>(() => {}));
const glalieData: ResumeData = {
...sampleResumeData,
metadata: { ...sampleResumeData.metadata, template: "glalie" },
};
view.rerender(
<ResumePreviewClient data={glalieData} pageLayout="vertical" pageScale={1.25} showPageNumbers={false} />,
);
await waitFor(() => expect(previewMock.toBlob).toHaveBeenCalledTimes(2));
expect(activeLayer?.getAttribute("data-resume-preview-template")).toBe("azurill");
});
it("renders the canonical applied stylesheet and ignores invalid editable source", async () => {
const validApplied = { languageVersion: 1, text: "@version 1;\nname { color: #123456; }\n" };
previewMock.builderResumeId = "resume-1";
previewMock.builderResumeData = sampleResumeData;
previewMock.stylesheet = {
resumeId: "resume-1",
mode: "semantic",
source: { languageVersion: 1, text: "section {" },
applied: validApplied,
};
render(<ResumePreviewClient pageLayout="vertical" pageScale={1.25} showPageNumbers={false} />);
await waitFor(() => expect(previewMock.toBlob).toHaveBeenCalledTimes(1));
expect(previewMock.toBlob).toHaveBeenCalledWith(sampleResumeData, undefined, undefined, {
stylesheet: { mode: "semantic", applied: validApplied },
});
expect(previewMock.toBlob).toHaveBeenCalledTimes(1);
});
it("keeps the active PDF visible and reports later semantic render diagnostics", async () => {
previewMock.builderResumeId = "resume-1";
previewMock.builderResumeData = sampleResumeData;
previewMock.stylesheet = {
resumeId: "resume-1",
mode: "semantic",
source: { languageVersion: 1, text: "@version 1;\n" },
applied: { languageVersion: 1, text: "@version 1;\nname { color: #123456; }\n" },
};
const view = render(<ResumePreviewClient pageLayout="vertical" pageScale={1.25} showPageNumbers={false} />);
expect(await screen.findByRole("img", { name: "Resume page 1 of 1" })).toBeTruthy();
previewMock.toBlob.mockRejectedValueOnce(
new Error("The semantic stylesheet could not be rendered.", {
cause: [{ code: "RESOURCE_LIMIT", severity: "error" }],
}),
);
previewMock.stylesheet.applied = {
languageVersion: 1,
text: "@version 1;\nname { color: #654321; }\n",
};
view.rerender(<ResumePreviewClient pageLayout="vertical" pageScale={1.25} showPageNumbers={false} />);
await waitFor(() => expect(previewMock.toBlob).toHaveBeenCalledTimes(2));
await waitFor(() => expect(previewMock.toastError).toHaveBeenCalledTimes(1));
expect(screen.getByRole("img", { name: "Resume page 1 of 1" })).toBeTruthy();
});
});
@@ -1,12 +1,16 @@
import type { Template } from "@reactive-resume/schema/templates";
import type { CSSProperties } from "react";
import type { ResolvedResumePreviewProps } from "./preview.shared";
import type { PreviewPageSize } from "./preview.shared.utils";
import { t } from "@lingui/core/macro";
import { AnimatePresence, m } from "motion/react";
import { useEffect, useRef, useState } from "react";
import { useEffect, useMemo, useRef, useState } from "react";
import { toast } from "sonner";
import { isRTL } from "@reactive-resume/utils/locale";
import { cn } from "@reactive-resume/utils/style";
import { createResumePdfBlob } from "@/features/resume/export/pdf-document";
import { usePreviewPausedStore, useResumeData } from "../builder/draft";
import { useStylesheetStore } from "@/features/resume/stylesheet/store";
import { usePreviewPausedStore, useResumeData, useResumeStore } from "../builder/draft";
import { PdfCanvasDocument, PdfCanvasPage } from "./pdf-canvas";
import { ResumePreviewLoader } from "./preview.shared";
import { getResumePreviewGapValue, getResumePreviewPageCount } from "./preview.shared.utils";
@@ -19,18 +23,20 @@ type PreviewPdf = {
pageSizes: Record<number, PreviewPageSize>;
phase: "active" | "exiting" | "staged";
renderedPages: number[];
template: Template;
};
const UPDATE_DEBOUNCE_MS = 100;
const CROSSFADE_DURATION_MS = 180;
const createPreviewPdf = (file: Blob, id: number, hasExistingPreview: boolean): PreviewPdf => ({
const createPreviewPdf = (file: Blob, id: number, hasExistingPreview: boolean, template: Template): PreviewPdf => ({
file,
id,
numPages: 0,
pageSizes: {},
phase: hasExistingPreview ? "staged" : "active",
renderedPages: [],
template,
});
const addPreviewLayer = (layers: PreviewPdf[], nextPdf: PreviewPdf) => {
@@ -96,6 +102,17 @@ export function ResumePreviewClient({
}: ResolvedResumePreviewProps) {
const builderResumeData = useResumeData();
const resumeData = data ?? builderResumeData;
const builderResumeId = useResumeStore((state) => state.resumeId);
const stylesheetResumeId = useStylesheetStore((state) => state.resumeId);
const mode = useStylesheetStore((state) => state.mode);
const applied = useStylesheetStore((state) => state.applied);
const presentation = useMemo(
() =>
data === undefined && builderResumeId !== undefined && stylesheetResumeId === builderResumeId
? { stylesheet: { mode, applied } }
: undefined,
[applied, builderResumeId, data, mode, stylesheetResumeId],
);
const paused = usePreviewPausedStore((state) => state.paused);
const [previewLayers, setPreviewLayers] = useState<PreviewPdf[]>([]);
@@ -116,15 +133,25 @@ export function ResumePreviewClient({
const generatePdfPreview = async () => {
try {
if (cancelled || requestId !== requestIdRef.current) return;
const blob = await createResumePdfBlob(resumeData);
const blob = await createResumePdfBlob(resumeData, undefined, undefined, presentation);
if (!cancelled && requestId === requestIdRef.current) {
const nextPdf = createPreviewPdf(blob, pdfIdRef.current++, hasPreviewRef.current);
const nextPdf = createPreviewPdf(
blob,
pdfIdRef.current++,
hasPreviewRef.current,
resumeData.metadata.template,
);
hasPreviewRef.current = true;
setPreviewLayers((current) => addPreviewLayer(current, nextPdf));
}
} catch {}
} catch {
if (cancelled || requestId !== requestIdRef.current) return;
toast.error(t`The resume preview could not be updated. The last valid preview is still shown.`, {
id: "resume-preview-render-error",
});
}
};
const timeoutId = window.setTimeout(() => {
@@ -135,7 +162,7 @@ export function ResumePreviewClient({
cancelled = true;
window.clearTimeout(timeoutId);
};
}, [resumeData, paused]);
}, [paused, presentation, resumeData]);
if (!resumeData) return null;
@@ -166,6 +193,7 @@ export function ResumePreviewClient({
<m.div
key={visiblePdf.id}
aria-hidden={visiblePdf.phase !== "active"}
data-resume-preview-template={visiblePdf.template}
style={{ "--resume-preview-page-gap": resolvedPageGap } as CSSProperties}
className={cn("col-start-1 row-start-1", visiblePdf.phase !== "active" && "pointer-events-none")}
initial={{ opacity: visiblePdf.phase === "active" ? 1 : 0 }}
@@ -2,6 +2,7 @@
import { render, waitFor } from "@testing-library/react";
import { beforeEach, describe, expect, it, vi } from "vitest";
import { createPublicStyleProjection } from "@reactive-resume/pdf/public-projection";
import { sampleResumeData } from "@reactive-resume/schema/resume/sample";
const pdfViewerMock = vi.hoisted(() => {
@@ -18,6 +19,9 @@ const pdfViewerMock = vi.hoisted(() => {
constructorOptions: [] as Array<{ abortSignal?: AbortSignal; container: HTMLDivElement }>,
createResumePdfBlob: vi.fn(async () => new Blob(["%PDF"], { type: "application/pdf" })),
getDocument: vi.fn(() => loadingTask),
fetch: vi.fn(
async (_input: string | URL) => new Response(new Blob(["%PDF-fallback"], { type: "application/pdf" })),
),
instances: [] as Array<{
abortSignal?: AbortSignal;
setDocument: ReturnType<typeof vi.fn>;
@@ -92,6 +96,8 @@ beforeEach(() => {
pdfViewerMock.createResumePdfBlob.mockClear();
pdfViewerMock.getDocument.mockClear();
pdfViewerMock.loadingTask.destroy.mockClear();
pdfViewerMock.fetch.mockClear();
vi.stubGlobal("fetch", pdfViewerMock.fetch);
});
describe("PdfViewer", () => {
@@ -113,4 +119,68 @@ describe("PdfViewer", () => {
expect(viewer.setDocument).toHaveBeenCalledWith(null);
expect(pdfViewerMock.loadingTask.destroy).toHaveBeenCalledTimes(1);
});
it("renders a valid public projection through the shared PDF entrypoint", async () => {
const semanticData = structuredClone(sampleResumeData);
const applied = { languageVersion: 1, text: "@version 1;\nname { color: #123456; }\n" };
semanticData.metadata.stylesheet = { mode: "semantic", source: applied, applied };
const projection = await createPublicStyleProjection({ data: semanticData });
const refetchStyleProjection = vi.fn();
render(
<PdfViewer
data={sampleResumeData}
stylesheetMode="semantic"
styleProjection={projection}
refetchStyleProjection={refetchStyleProjection}
publicResume={{ username: "amruth", slug: "sample" }}
/>,
);
await waitFor(() =>
expect(pdfViewerMock.createResumePdfBlob).toHaveBeenCalledWith(sampleResumeData, undefined, undefined, {
publicStyleProjection: projection,
}),
);
expect(refetchStyleProjection).not.toHaveBeenCalled();
expect(pdfViewerMock.fetch).not.toHaveBeenCalled();
});
it("refetches a mismatched projection once before using the authorized PDF fallback", async () => {
const semanticData = structuredClone(sampleResumeData);
const applied = { languageVersion: 1, text: "@version 1;\nname { color: #123456; }\n" };
semanticData.metadata.stylesheet = { mode: "semantic", source: applied, applied };
const projection = await createPublicStyleProjection({ data: semanticData });
const mismatchedProjection = { ...projection, renderDataHash: "0".repeat(64) };
const refetchStyleProjection = vi.fn(async () => mismatchedProjection);
const view = render(
<PdfViewer
data={sampleResumeData}
stylesheetMode="semantic"
styleProjection={mismatchedProjection}
refetchStyleProjection={refetchStyleProjection}
publicResume={{ username: "amruth", slug: "sample" }}
/>,
);
await waitFor(() => expect(refetchStyleProjection).toHaveBeenCalledTimes(1));
await waitFor(() => expect(pdfViewerMock.fetch).toHaveBeenCalledTimes(1));
expect(String(pdfViewerMock.fetch.mock.calls[0]?.[0])).toContain("/api/resumes/amruth/sample/pdf");
expect(String(pdfViewerMock.fetch.mock.calls[0]?.[0])).toContain("reason=render-data-hash");
expect(pdfViewerMock.createResumePdfBlob).not.toHaveBeenCalled();
view.rerender(
<PdfViewer
data={sampleResumeData}
stylesheetMode="semantic"
styleProjection={{ ...mismatchedProjection, renderDataHash: "1".repeat(64) }}
refetchStyleProjection={refetchStyleProjection}
publicResume={{ username: "amruth", slug: "sample" }}
/>,
);
await waitFor(() => expect(pdfViewerMock.fetch).toHaveBeenCalledTimes(2));
expect(refetchStyleProjection).toHaveBeenCalledTimes(1);
});
});
@@ -1,4 +1,6 @@
import type { PublicStyleProjection } from "@reactive-resume/pdf/public-projection";
import type { ResumeData } from "@reactive-resume/schema/resume/data";
import type { SemanticStylesheet } from "@reactive-resume/schema/resume/stylesheet";
import type { PDFDocumentLoadingTask, PDFDocumentProxy } from "pdfjs-dist/legacy/build/pdf.mjs";
import { AnnotationMode, GlobalWorkerOptions, getDocument } from "pdfjs-dist/legacy/build/pdf.mjs";
import { EventBus, LinkTarget, PDFLinkService, PDFViewer } from "pdfjs-dist/legacy/web/pdf_viewer.mjs";
@@ -6,6 +8,7 @@ import { useEffect, useReducer, useRef } from "react";
import { Spinner } from "@reactive-resume/ui/components/spinner";
import { cn } from "@reactive-resume/utils/style";
import { createResumePdfBlob } from "@/features/resume/export/pdf-document";
import { resolvePublicResumePdfBlob } from "./public-pdf";
import "pdfjs-dist/legacy/web/pdf_viewer.css";
import "./pdf-viewer.css";
@@ -14,6 +17,13 @@ GlobalWorkerOptions.workerSrc = new URL("pdfjs-dist/legacy/build/pdf.worker.min.
type PdfViewerProps = {
className?: string;
data: ResumeData;
stylesheetMode?: SemanticStylesheet["mode"];
styleProjection?: PublicStyleProjection;
refetchStyleProjection?: () => Promise<PublicStyleProjection | undefined>;
publicResume?: {
username: string;
slug: string;
};
};
type PdfViewerOptions = ConstructorParameters<typeof PDFViewer>[0] & {
@@ -67,11 +77,21 @@ function pdfViewerReducer(state: PdfViewerState, action: PdfViewerAction): PdfVi
}
}
export function PdfViewer({ className, data }: PdfViewerProps) {
export function PdfViewer({
className,
data,
stylesheetMode,
styleProjection,
refetchStyleProjection,
publicResume,
}: PdfViewerProps) {
const rootRef = useRef<HTMLDivElement>(null);
const containerRef = useRef<HTMLDivElement>(null);
const viewerRef = useRef<HTMLDivElement>(null);
const fileRef = useRef<Blob | null>(null);
const projectionRetryRef = useRef<{ data?: ResumeData; publicKey?: string; retried: boolean }>({
retried: false,
});
const [{ error, fileVersion, isReady, viewerHeight }, dispatch] = useReducer(
pdfViewerReducer,
INITIAL_PDF_VIEWER_STATE,
@@ -83,7 +103,29 @@ export function PdfViewer({ className, data }: PdfViewerProps) {
fileRef.current = null;
dispatch({ type: "resetForData" });
void createResumePdfBlob(data)
const createPdf = () => {
if (!stylesheetMode || !publicResume) return createResumePdfBlob(data);
const publicKey = `${publicResume.username}/${publicResume.slug}`;
if (projectionRetryRef.current.data !== data || projectionRetryRef.current.publicKey !== publicKey) {
projectionRetryRef.current = { data, publicKey, retried: false };
}
const retryProjection =
refetchStyleProjection && !projectionRetryRef.current.retried
? () => {
projectionRetryRef.current.retried = true;
return refetchStyleProjection();
}
: undefined;
return resolvePublicResumePdfBlob({
data,
stylesheetMode,
publicResume,
...(styleProjection ? { styleProjection } : {}),
...(retryProjection ? { refetchStyleProjection: retryProjection } : {}),
});
};
void createPdf()
.then((blob) => {
if (isCancelled) return;
@@ -100,7 +142,7 @@ export function PdfViewer({ className, data }: PdfViewerProps) {
return () => {
isCancelled = true;
};
}, [data]);
}, [data, publicResume, refetchStyleProjection, styleProjection, stylesheetMode]);
useEffect(() => {
void fileVersion;
@@ -0,0 +1,72 @@
import { beforeEach, describe, expect, it, vi } from "vitest";
import { createPublicStyleProjection } from "@reactive-resume/pdf/public-projection";
import { sampleResumeData } from "@reactive-resume/schema/resume/sample";
import { resolvePublicResumePdfBlob } from "./public-pdf";
const mocks = vi.hoisted(() => ({
createResumePdfBlob: vi.fn(async () => new Blob(["local"], { type: "application/pdf" })),
fetch: vi.fn(async (_input: string | URL) => new Response(new Blob(["server"], { type: "application/pdf" }))),
}));
vi.mock("@/features/resume/export/pdf-document", () => ({
createResumePdfBlob: mocks.createResumePdfBlob,
}));
const publicResume = { username: "amruth", slug: "sample" };
beforeEach(() => {
mocks.createResumePdfBlob.mockClear();
mocks.fetch.mockClear();
vi.stubGlobal("fetch", mocks.fetch);
});
describe("resolvePublicResumePdfBlob", () => {
it("keeps legitimate legacy resumes on the local PDF path", async () => {
await resolvePublicResumePdfBlob({
data: sampleResumeData,
stylesheetMode: "legacy",
publicResume,
});
expect(mocks.createResumePdfBlob).toHaveBeenCalledWith(sampleResumeData);
expect(mocks.fetch).not.toHaveBeenCalled();
});
it("uses the authorized server fallback when a semantic projection is unavailable", async () => {
const refetchStyleProjection = vi.fn().mockRejectedValue(new Error("projection unavailable"));
await resolvePublicResumePdfBlob({
data: sampleResumeData,
stylesheetMode: "semantic",
publicResume,
refetchStyleProjection,
});
expect(refetchStyleProjection).toHaveBeenCalledTimes(1);
expect(String(mocks.fetch.mock.calls[0]?.[0])).toContain("/api/resumes/amruth/sample/pdf");
expect(String(mocks.fetch.mock.calls[0]?.[0])).toContain("reason=missing-projection");
expect(mocks.createResumePdfBlob).not.toHaveBeenCalled();
});
it("refetches a mismatched projection once before returning the authorized server blob", async () => {
const semanticData = structuredClone(sampleResumeData);
const source = { languageVersion: 1, text: "@version 1;\nname { color: #123456; }\n" };
semanticData.metadata.stylesheet = { mode: "semantic", source, applied: source };
const projection = await createPublicStyleProjection({ data: semanticData });
const mismatchedProjection = { ...projection, renderDataHash: "0".repeat(64) };
const refetchStyleProjection = vi.fn(async () => mismatchedProjection);
const blob = await resolvePublicResumePdfBlob({
data: sampleResumeData,
stylesheetMode: "semantic",
styleProjection: mismatchedProjection,
publicResume,
refetchStyleProjection,
});
expect(refetchStyleProjection).toHaveBeenCalledTimes(1);
expect(mocks.fetch).toHaveBeenCalledTimes(1);
expect(await blob.text()).toBe("server");
expect(mocks.createResumePdfBlob).not.toHaveBeenCalled();
});
});
@@ -0,0 +1,97 @@
import type { PublicStyleProjection } from "@reactive-resume/pdf/public-projection";
import type { ResumeData } from "@reactive-resume/schema/resume/data";
import type { SemanticStylesheet } from "@reactive-resume/schema/resume/stylesheet";
import {
getPublicStyleProjectionFingerprints,
PUBLIC_STYLE_PROJECTION_FORMAT_VERSION,
SEMANTIC_TREE_VERSION,
validatePublicStyleProjection,
} from "@reactive-resume/pdf/public-projection";
import { createResumePdfBlob } from "@/features/resume/export/pdf-document";
export type PublicResumePdfOptions = {
stylesheetMode: SemanticStylesheet["mode"];
styleProjection?: PublicStyleProjection;
refetchStyleProjection?: () => Promise<PublicStyleProjection | undefined>;
publicResume: {
username: string;
slug: string;
};
};
type ProjectionMismatchReason =
| "format-version"
| "language-version"
| "semantic-tree-version"
| "registry-fingerprint"
| "adapter-fingerprint"
| "render-data-hash"
| "invalid-projection";
const projectionMismatchReason = async (
data: ResumeData,
projection: PublicStyleProjection,
): Promise<ProjectionMismatchReason | null> => {
if (projection.formatVersion !== PUBLIC_STYLE_PROJECTION_FORMAT_VERSION) return "format-version";
if (projection.languageVersion !== 1) return "language-version";
if (projection.semanticTreeVersion !== SEMANTIC_TREE_VERSION) return "semantic-tree-version";
const fingerprints = await getPublicStyleProjectionFingerprints();
if (projection.registryFingerprint !== fingerprints.registryFingerprint) return "registry-fingerprint";
if (projection.adapterFingerprint !== fingerprints.adapterFingerprint) return "adapter-fingerprint";
return (await validatePublicStyleProjection(data, projection)) ? null : "render-data-hash";
};
const fetchPublicResumePdf = async (
publicResume: PublicResumePdfOptions["publicResume"],
reason: ProjectionMismatchReason | "missing-projection",
projection?: PublicStyleProjection,
) => {
const search = new URLSearchParams({
reason,
...(projection
? {
registryFingerprint: projection.registryFingerprint,
adapterFingerprint: projection.adapterFingerprint,
}
: {}),
});
const response = await fetch(
`/api/resumes/${encodeURIComponent(publicResume.username)}/${encodeURIComponent(publicResume.slug)}/pdf?${search}`,
{ credentials: "include" },
);
if (!response.ok) throw new Error(`Public PDF fallback failed with ${response.status}`);
return response.blob();
};
export async function resolvePublicResumePdfBlob({
data,
...options
}: PublicResumePdfOptions & { data: ResumeData }): Promise<Blob> {
if (options.stylesheetMode === "legacy") return createResumePdfBlob(data);
let projection = options.styleProjection;
let refetched = false;
const refetch = async () => {
if (!options.refetchStyleProjection || refetched) return;
refetched = true;
try {
projection = await options.refetchStyleProjection();
} catch {
projection = undefined;
}
};
if (!projection) await refetch();
if (!projection) return fetchPublicResumePdf(options.publicResume, "missing-projection");
let reason = await projectionMismatchReason(data, projection).catch(() => "invalid-projection" as const);
if (reason) {
await refetch();
if (!projection) return fetchPublicResumePdf(options.publicResume, "missing-projection");
reason = await projectionMismatchReason(data, projection).catch(() => "invalid-projection" as const);
}
return reason
? fetchPublicResumePdf(options.publicResume, reason, projection)
: createResumePdfBlob(data, undefined, undefined, { publicStyleProjection: projection });
}
@@ -1,5 +1,6 @@
// @vitest-environment happy-dom
import type { PublicStyleProjection } from "@reactive-resume/pdf/public-projection";
import type { ResumeData } from "@reactive-resume/schema/resume/data";
import type { ReactNode } from "react";
import { render, screen } from "@testing-library/react";
@@ -11,24 +12,46 @@ import { sampleResumeData } from "@reactive-resume/schema/resume/sample";
type PdfViewerProps = {
className?: string;
data: ResumeData;
stylesheetMode?: "legacy" | "semantic";
styleProjection?: PublicStyleProjection;
refetchStyleProjection?: () => Promise<PublicStyleProjection | undefined>;
publicResume?: { username: string; slug: string };
};
const publicResumeMock = vi.hoisted(() => ({
createResumePdfBlob: vi.fn(async () => new Blob(["%PDF"], { type: "application/pdf" })),
downloadWithAnchor: vi.fn(),
generateFilename: vi.fn((name: string, extension: string) => `${name}.${extension}`),
onDownloadPDF: vi.fn(),
PdfViewer: vi.fn<(_props: PdfViewerProps) => ReactNode>(() => null),
projection: {
formatVersion: 1,
languageVersion: 1,
semanticTreeVersion: 1,
registryFingerprint: "1".repeat(64),
adapterFingerprint: "2".repeat(64),
renderDataHash: "3".repeat(64),
nodes: { resume: {} },
} as PublicStyleProjection,
refetchProjection: vi.fn(),
projectionResult: {
data: undefined as PublicStyleProjection | undefined,
isError: false,
isPending: false,
},
useResumeExport: vi.fn(),
resume: undefined as
| undefined
| {
data: ResumeData;
name: string;
slug: string;
stylesheetMode: "legacy" | "semantic";
},
}));
vi.mock("@tanstack/react-query", () => ({
useQuery: () => ({ data: publicResumeMock.resume }),
useQuery: (options: { query: "resume" | "projection" }) =>
options.query === "resume"
? { data: publicResumeMock.resume }
: { ...publicResumeMock.projectionResult, refetch: publicResumeMock.refetchProjection },
}));
vi.mock("@tanstack/react-router", () => ({
@@ -37,21 +60,21 @@ vi.mock("@tanstack/react-router", () => ({
}),
}));
vi.mock("@reactive-resume/utils/file", () => ({
downloadWithAnchor: publicResumeMock.downloadWithAnchor,
generateFilename: publicResumeMock.generateFilename,
}));
vi.mock("./pdf-viewer", () => ({
PdfViewer: publicResumeMock.PdfViewer,
}));
vi.mock("@/libs/orpc/client", () => ({
orpc: { resume: { getBySlug: { queryOptions: () => ({}) } } },
orpc: {
resume: {
getBySlug: { queryOptions: () => ({ query: "resume" }) },
getStyleProjection: { queryOptions: () => ({ query: "projection" }) },
},
},
}));
vi.mock("@/features/resume/export/pdf-document", () => ({
createResumePdfBlob: publicResumeMock.createResumePdfBlob,
vi.mock("@/features/resume/export/use-resume-export", () => ({
useResumeExport: publicResumeMock.useResumeExport,
}));
const { PublicResumeRoute } = await import("./public-resume");
@@ -65,8 +88,21 @@ beforeEach(() => {
data: sampleResumeData,
name: "Sample Resume",
slug: "sample",
stylesheetMode: "semantic",
};
publicResumeMock.projectionResult = {
data: publicResumeMock.projection,
isError: false,
isPending: false,
};
publicResumeMock.PdfViewer.mockClear();
publicResumeMock.refetchProjection.mockReset();
publicResumeMock.refetchProjection.mockResolvedValue({ data: publicResumeMock.projection });
publicResumeMock.useResumeExport.mockReset();
publicResumeMock.useResumeExport.mockReturnValue({
onDownloadPDF: publicResumeMock.onDownloadPDF,
isExporting: false,
});
publicResumeMock.PdfViewer.mockImplementation(({ className }) => (
<div className={className} data-testid="pdf-viewer" />
));
@@ -88,6 +124,62 @@ describe("PublicResumeRoute", () => {
expect.objectContaining({ data: sampleResumeData }),
undefined,
);
expect(publicResumeMock.useResumeExport).toHaveBeenCalledWith(publicResumeMock.resume, {
publicResumePdf: expect.objectContaining({
stylesheetMode: "semantic",
styleProjection: publicResumeMock.projection,
publicResume: { username: "amruth", slug: "sample" },
}),
});
});
it("routes a missing semantic projection to the shared fallback seam", () => {
publicResumeMock.projectionResult = { data: undefined, isError: true, isPending: false };
renderPublicResumeRoute();
expect(publicResumeMock.PdfViewer).toHaveBeenCalledWith(
expect.objectContaining({
stylesheetMode: "semantic",
styleProjection: undefined,
refetchStyleProjection: expect.any(Function),
publicResume: { username: "amruth", slug: "sample" },
}),
undefined,
);
expect(publicResumeMock.useResumeExport).toHaveBeenCalledWith(
publicResumeMock.resume,
expect.objectContaining({
publicResumePdf: expect.objectContaining({
stylesheetMode: "semantic",
}),
}),
);
});
it("keeps missing legacy projections on the local rendering path", () => {
if (publicResumeMock.resume) publicResumeMock.resume.stylesheetMode = "legacy";
publicResumeMock.projectionResult = { data: undefined, isError: false, isPending: false };
renderPublicResumeRoute();
expect(publicResumeMock.PdfViewer).toHaveBeenCalledWith(
expect.objectContaining({ stylesheetMode: "legacy", styleProjection: undefined }),
undefined,
);
});
it("loads the public projection and passes it to the shared viewer", () => {
renderPublicResumeRoute();
expect(publicResumeMock.PdfViewer).toHaveBeenCalledWith(
expect.objectContaining({
styleProjection: publicResumeMock.projection,
refetchStyleProjection: expect.any(Function),
publicResume: { username: "amruth", slug: "sample" },
}),
undefined,
);
});
it("lets the public resume page grow to the full PDF length", () => {
@@ -3,6 +3,7 @@ import { Trans } from "@lingui/react/macro";
import { CircleNotchIcon, DownloadSimpleIcon } from "@phosphor-icons/react";
import { useQuery } from "@tanstack/react-query";
import { getRouteApi } from "@tanstack/react-router";
import { useCallback, useMemo } from "react";
import { BrandIcon } from "@reactive-resume/ui/components/brand-icon";
import { Button } from "@reactive-resume/ui/components/button";
import { LoadingScreen } from "@/components/layout/loading-screen";
@@ -16,9 +17,30 @@ export function PublicResumeRoute() {
const { username, slug } = publicResumeRoute.useParams();
const { data: resume } = useQuery(orpc.resume.getBySlug.queryOptions({ input: { username, slug } }));
const { onDownloadPDF, isExporting } = useResumeExport(resume);
const projectionQuery = useQuery(
orpc.resume.getStyleProjection.queryOptions({ input: { username, slug }, enabled: resume !== undefined }),
);
const styleProjection =
projectionQuery.data && Object.keys(projectionQuery.data.nodes).length > 0 ? projectionQuery.data : undefined;
const publicResume = useMemo(() => ({ username, slug }), [slug, username]);
const refetchStyleProjection = useCallback(async () => {
const result = await projectionQuery.refetch();
return result.data;
}, [projectionQuery.refetch]);
const { onDownloadPDF, isExporting } = useResumeExport(resume, {
...(resume
? {
publicResumePdf: {
stylesheetMode: resume.stylesheetMode,
publicResume,
refetchStyleProjection,
...(styleProjection ? { styleProjection } : {}),
},
}
: {}),
});
if (!resume) return <LoadingScreen />;
if (!resume || projectionQuery.isPending) return <LoadingScreen />;
const { basics, picture } = resume.data;
@@ -44,7 +66,14 @@ export function PublicResumeRoute() {
</header>
<main className="w-full max-w-5xl bg-white print:max-w-full">
<PdfViewer data={resume.data} className="block w-full" />
<PdfViewer
data={resume.data}
className="block w-full"
stylesheetMode={resume.stylesheetMode}
styleProjection={styleProjection}
publicResume={publicResume}
refetchStyleProjection={refetchStyleProjection}
/>
</main>
<footer className="flex justify-center print:hidden">
@@ -0,0 +1,37 @@
import type { StyleProgram } from "@reactive-resume/resume/stylesheet";
import { PROPERTY_REGISTRY_V1 } from "@reactive-resume/resume/stylesheet";
export type SemanticCssColorToken = {
from: number;
to: number;
value: string;
};
const colorValue =
/^(?:#[\da-f]{3,8}|(?:rgb|rgba|hsl|hsla)\([^)]*\)|(?:aqua|black|blue|currentcolor|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|transparent|white|yellow))$/i;
const isColorProperty = (property: string) =>
PROPERTY_REGISTRY_V1[property] !== undefined &&
(PROPERTY_REGISTRY_V1[property]?.category === "color" || property.endsWith("-color"));
export function collectCompiledColorTokens(
source: string,
program: StyleProgram | null,
): readonly SemanticCssColorToken[] {
if (!program) return [];
const tokens = new Map<string, SemanticCssColorToken>();
for (const rule of program.rules) {
for (const declaration of rule.declarations) {
if (!isColorProperty(declaration.property) || !colorValue.test(declaration.value)) continue;
const declarationSource = source.slice(declaration.range.start.offset, declaration.range.end.offset);
const valueOffset = declarationSource.indexOf(declaration.value, declarationSource.indexOf(":") + 1);
if (valueOffset < 0) continue;
const from = declaration.range.start.offset + valueOffset;
const token = { from, to: from + declaration.value.length, value: declaration.value };
tokens.set(`${token.from}:${token.to}`, token);
}
}
return [...tokens.values()].sort((left, right) => left.from - right.from);
}

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