Compare commits

..
31 Commits
Author SHA1 Message Date
Amruth Pillai dcf1b28c22 chore: release v5.1.9 2026-06-18 18:57:09 +02:00
Amruth Pillai f14d8ce693 feat: add Atlas Cloud sponsorship placements 2026-06-18 18:53:01 +02:00
robertoandAmruth Pillai 2317a82106 fix: register language-specific Noto fallback fonts for non-Latin scripts (#3158)
* fix: use language-specific Noto fonts for CJK PDF fallback

* feat: extend fallback to Arabic/Hebrew/Thai

---------

Co-authored-by: Amruth Pillai <im.amruth@gmail.com>
2026-06-17 13:37:09 +02:00
Cantale08andsantino cantale a523e13bfd Problem in word wrapping in the templates (#3136)
Co-authored-by: santino cantale <sopor@ARBA-TSM-WS020.tsm.local>
2026-06-17 13:28:19 +02:00
albanofazzitoandAlbano 1be75240dd fix: use non-empty placeholder for redacted resume name (#3138)
* fix: use non-empty placeholder for redacted resume name

* fix: update stale test title to match new placeholder behavior

---------

Co-authored-by: Albano <alumno26.fazzito.albano@ipm.edu.ar>
2026-06-17 13:27:39 +02:00
sdeonvacation 7275da7303 fix(ai): handle markdown-fenced JSON in analyzeResume response (#3142)
Some providers (notably Anthropic via proxies) wrap JSON output in
markdown code fences (```json ... ```), causing Output.object to
throw NoObjectGeneratedError / JSONParseError.

Replace Output.object with manual JSON boundary extraction that works
regardless of fencing. Also propagate the original AISDKError as cause
in throwAiProviderGatewayError for better diagnostics.
2026-06-17 13:27:06 +02:00
Lihan YANG bc498449d3 Fix MCP PDF download test mock (#3144) 2026-06-17 13:26:42 +02:00
Andrea Accardo 3937f7ed2b feat: add flag to disable api rate limit (#3149)
Signed-off-by: aaccardo <hackardo@gmail.com>
2026-06-17 13:26:27 +02:00
github-actions[bot]andCrowdin Bot d6de3f830f Sync Translations from Crowdin (#3162)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-06-17 13:18:31 +02:00
Amruth Pillai ef5ff30b13 chore: update linter configuration and add rimraf dependency 2026-06-17 10:51:10 +02:00
Amruth Pillai 37faf592b7 chore: update dependencies 2026-06-17 10:40:23 +02:00
github-actions[bot]andCrowdin Bot 76bd1e80f7 [skip ci] chore(i18n): sync translations from crowdin (#3148)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-06-06 09:33:09 +02:00
Amruth Pillai 042d076efa chore: update dependencies 2026-06-05 23:35:23 +02:00
github-actions[bot]andCrowdin Bot b9e4ab78ef Sync Translations from Crowdin (#3135)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-06-01 15:32:53 +02:00
Amruth Pillai 90a9bb9cf1 feat: add "Hide Link Underline" translation for multiple languages 2026-06-01 15:31:39 +02:00
Amruth Pillai 5fb4976ec9 feat: add hide link underline option to resume settings, resolves #3134 2026-06-01 15:30:49 +02:00
github-actions[bot]andCrowdin Bot d6a9bc6c4b Sync Translations from Crowdin (#3132)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-06-01 15:09:18 +02:00
Amruth Pillai 0dcdcd2960 chore(release): v5.1.8 2026-06-01 15:08:22 +02:00
JamesGoslingsandAmruth Pillai e96a51f31c feat(editor): add multicolor highlight with auto-contrast text (#3110)
* feat(editor): add multicolor highlight with auto-contrast text

Enable the Tiptap Highlight extension in multicolor mode, replacing the
single-color yellow toggle with a full color picker (16 presets + custom).
When the chosen highlight color is perceptually dark, text inside the mark
automatically renders white for readability.

Changes span the full pipeline:
- Editor: ColorPicker UI, extended renderHTML for contrast detection
- PDF: normalizeMarkElements preserves data-color as inline style
- DOCX: mergeStyle reads actual background-color from <mark>
- Utils: new isDarkColor() luminance helper

Backward-compatible: legacy <mark> without data-color still renders yellow.

Resolves #3109

* fix: handle multicolor highlight edge cases

---------

Co-authored-by: Amruth Pillai <im.amruth@gmail.com>
2026-06-01 14:58:15 +02:00
github-actions[bot]andCrowdin Bot 1507d869c7 Sync Translations from Crowdin (#3131)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-06-01 14:05:01 +02:00
JamesGoslingscoderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>Amruth Pillai
b932711f08 feat: add section heading icons to PDF templates (#3127)
* feat: add section heading icons to PDF templates

Add customizable Phosphor icons before section titles in PDF output.
Users can toggle visibility globally via a new "Hide section heading icons"
switch (independent of item-level icons) and customize individual section
icons through the builder sidebar icon picker.

- Add `icon` field to `baseSectionSchema` and `summarySchema`
- Add `hideSectionIcons` to `pageSchema` (defaults to true for backward compat)
- Implement `SectionHeadingIcon` component with heading font-size scaling
- Support "none" sentinel for per-section icon hiding
- Fallback to sensible defaults (briefcase, graduation-cap, etc.) for legacy data
- Add icon picker to builder sidebar sections and custom section dialogs

Closes #2632

* test: add unit tests for section heading icons

- Add tests for getResumeSectionIcon() covering built-in sections,
  summary, custom sections, "none" sentinel, and default fallbacks
- Add schema tests for baseSectionSchema icon field, summarySchema icon,
  and pageSchema hideSectionIcons default behavior

* refactor: minor updates to icon display

* Update apps/web/locales/es-ES.po

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: Amruth Pillai <im.amruth@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-06-01 14:02:42 +02:00
Amruth Pillai 1522794733 fix: typecheck 2026-06-01 10:41:37 +02:00
Lihan YANG e00ff8ceca fix(pdf): avoid toReversed in icon size resolution (#3129) 2026-06-01 10:33:04 +02:00
Amruth Pillai 8e72311bc6 Merge branch 'main' of github.com:amruthpillai/reactive-resume 2026-06-01 10:31:53 +02:00
Amruth Pillai a8c70d784c fix: typecheck 2026-06-01 10:31:25 +02:00
Amruth Pillai 0df7f21130 feat: implement download_resume_pdf mcp tool 2026-06-01 10:26:28 +02:00
Amruth PillaiandCursor Agent 6852f586ea ci: purge Cloudflare cache after release Docker image deploy (#3122)
* ci: purge Cloudflare cache after release Docker image deploy

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

* ci: add timeout and retries to Cloudflare cache purge

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

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-05-29 01:44:30 +02:00
Amruth PillaiandCursor Agent 1414fecade fix(pdf): apply custom style fontSize to icons and level indicators (#3120) and
* fix(pdf): apply custom style fontSize to icon and level indicator sizes

Map fontSize from Icon and Level Indicator custom style slots to Phosphor
icon size and level indicator dimensions, since react-pdf icons ignore
fontSize in favor of the size prop.

* fix: separate global icon and scoped level indicator font sizes

Icon slot fontSize now drives all resume icons plus level display
decorations. Level indicator fontSize overrides only within level display.
Shared sizing logic lives in schema; design sidebar preview uses global rules.

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-05-29 00:41:21 +02:00
Amruth PillaiandCursor Agent c1d11236ae fix(pdf): keep Glalie contact list border box square (#3121)
The decorative border around contact items must not inherit
picture border radius. Set contactList borderRadius to 0.

Fixes amruthpillai/reactive-resume#3119

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-05-29 00:22:51 +02:00
Lihan YANG d09ad2cdc0 Urgent fix server app version dev (#3117)
* fix(server): avoid app version global in MCP dev

* fix(server): use runtime-safe app version metadata
2026-05-29 00:13:45 +02:00
Amruth Pillai 9ce5bacd22 Show experience position with role progression (#3116) 2026-05-28 13:51:02 +02:00
198 changed files with 10901 additions and 4053 deletions
+7
View File
@@ -93,6 +93,13 @@ FLAG_DISABLE_EMAIL_AUTH="false"
# This is useful if you are using a machine with limited resources, like a Raspberry Pi.
FLAG_DISABLE_IMAGE_PROCESSING="false"
# This flag disables API rate limiting for authentication endpoints.
# Rate limiting is enabled by default in production to prevent abuse.
FLAG_DISABLE_API_RATE_LIMIT="false"
# This flag shows sponsor placements on the public landing page.
FLAG_SHOW_SPONSORS="false"
# Allows dynamic OAuth client registration to use any parseable redirect URI,
# including custom schemes, private hosts, and non-loopback http:// URLs.
# WARNING: Enabling this on a public or multi-tenant deployment can enable phishing
+21
View File
@@ -249,3 +249,24 @@ jobs:
script: |
cd docker
./manage_stack.sh up reactive_resume
- name: Purge Cloudflare cache
if: ${{ needs.mode.outputs.release == 'true' }}
env:
CLOUDFLARE_ZONE_ID: ${{ secrets.CLOUDFLARE_ZONE_ID }}
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
run: |
set -euo pipefail
response=$(curl -fsS --max-time 10 --retry 3 --retry-delay 5 --retry-connrefused -X POST \
"https://api.cloudflare.com/client/v4/zones/${CLOUDFLARE_ZONE_ID}/purge_cache" \
-H "Authorization: Bearer ${CLOUDFLARE_API_TOKEN}" \
-H "Content-Type: application/json" \
--data '{"purge_everything":true}')
if [ "$(jq -r '.success' <<< "$response")" != "true" ]; then
echo "$response" | jq .
exit 1
fi
echo "Cloudflare cache purged successfully."
+14
View File
@@ -31,6 +31,20 @@ Reactive Resume makes building resumes straightforward. Pick a template, fill in
Built with privacy as a core principle, Reactive Resume gives you complete ownership of your data. The codebase is fully open-source under the MIT license, with no tracking, no ads, and no hidden costs.
## Sponsors
Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Thank you to every sponsor who helps fund hosting, maintenance, and continued development for the community.
<p>
<a href="https://www.atlascloud.ai/?utm_source=github&utm_medium=link&utm_campaign=reactive-resume">
<img src="apps/web/public/sponsors/atlas-cloud-logo-white.svg" alt="Atlas Cloud" width="320" />
</a>
</p>
[Atlas Cloud](https://www.atlascloud.ai/?utm_source=github&utm_medium=link&utm_campaign=reactive-resume) supports Reactive Resume as a project sponsor. Atlas Cloud provides a unified AI platform for developers, with access to hundreds of models for chat, image generation, video generation, media processing, and GPU cloud workloads through one API key, one endpoint, and one billing account.
If your company would like to sponsor Reactive Resume, email [hello@amruthpillai.com](mailto:hello@amruthpillai.com).
## Features
**Resume Building**
+33 -33
View File
@@ -17,24 +17,24 @@
"#react-pdf-renderer": "@react-pdf/renderer"
},
"dependencies": {
"@ai-sdk/anthropic": "^3.0.80",
"@ai-sdk/google": "^3.0.80",
"@ai-sdk/openai": "^3.0.65",
"@ai-sdk/openai-compatible": "^2.0.48",
"@aws-sdk/client-s3": "^3.1055.0",
"@better-auth/api-key": "^1.6.11",
"@better-auth/drizzle-adapter": "^1.6.11",
"@better-auth/infra": "^0.2.10",
"@better-auth/oauth-provider": "^1.6.11",
"@better-auth/passkey": "^1.6.11",
"@hono/node-server": "^2.0.4",
"@ai-sdk/anthropic": "^3.0.85",
"@ai-sdk/google": "^3.0.83",
"@ai-sdk/openai": "^3.0.72",
"@ai-sdk/openai-compatible": "^2.0.51",
"@aws-sdk/client-s3": "^3.1070.0",
"@better-auth/api-key": "^1.6.19",
"@better-auth/drizzle-adapter": "^1.6.19",
"@better-auth/infra": "^0.2.14",
"@better-auth/oauth-provider": "^1.6.19",
"@better-auth/passkey": "^1.6.19",
"@hono/node-server": "^2.0.5",
"@modelcontextprotocol/sdk": "^1.29.0",
"@orpc/client": "^1.14.3",
"@orpc/experimental-ratelimit": "^1.14.3",
"@orpc/json-schema": "^1.14.3",
"@orpc/openapi": "^1.14.3",
"@orpc/server": "^1.14.3",
"@orpc/zod": "^1.14.3",
"@orpc/client": "^1.14.6",
"@orpc/experimental-ratelimit": "^1.14.6",
"@orpc/json-schema": "^1.14.6",
"@orpc/openapi": "^1.14.6",
"@orpc/server": "^1.14.6",
"@orpc/zod": "^1.14.6",
"@react-pdf/renderer": "^4.5.1",
"@reactive-resume/api": "workspace:*",
"@reactive-resume/auth": "workspace:*",
@@ -46,29 +46,29 @@
"@sindresorhus/slugify": "^3.0.0",
"@t3-oss/env-core": "^0.13.11",
"@uiw/color-convert": "^2.10.3",
"ai": "^6.0.191",
"ai": "^6.0.207",
"bcrypt": "^6.0.0",
"better-auth": "1.6.11",
"better-auth": "1.6.19",
"cjk-regex": "^3.4.0",
"deepmerge-ts": "^7.1.5",
"dompurify": "^3.4.7",
"dompurify": "^3.4.10",
"dotenv": "^17.4.2",
"drizzle-orm": "1.0.0-rc.3",
"drizzle-zod": "1.0.0-beta.14-a36c63d",
"es-toolkit": "^1.47.0",
"es-toolkit": "^1.47.1",
"fast-json-patch": "^3.1.1",
"hono": "^4.12.23",
"hono": "^4.12.25",
"jsonrepair": "^3.14.0",
"node-html-parser": "^7.1.0",
"nodemailer": "^8.0.9",
"ollama-ai-provider-v2": "^3.5.1",
"nodemailer": "^9.0.0",
"ollama-ai-provider-v2": "^3.6.0",
"pg": "^8.21.0",
"phosphor-icons-react-pdf": "^0.1.3",
"react": "^19.2.6",
"react-email": "^6.5.0",
"react": "^19.2.7",
"react-email": "^6.6.3",
"react-pdf-html": "^2.1.5",
"resumable-stream": "^2.2.12",
"sharp": "^0.34.5",
"sharp": "^0.35.1",
"ts-pattern": "^5.9.0",
"unique-names-generator": "^4.7.1",
"uuid": "^14.0.0",
@@ -76,13 +76,13 @@
},
"devDependencies": {
"@reactive-resume/config": "workspace:*",
"@types/node": "^25.9.1",
"@types/node": "^25.9.3",
"@types/pg": "^8.20.0",
"@types/react": "^19.2.15",
"@typescript/native-preview": "7.0.0-dev.20260527.1",
"tsdown": "^0.22.0",
"tsx": "^4.22.3",
"@types/react": "^19.2.17",
"@typescript/native-preview": "7.0.0-dev.20260617.2",
"tsdown": "^0.22.3",
"tsx": "^4.22.4",
"typescript": "^6.0.3",
"vitest": "^4.1.7"
"vitest": "^4.1.9"
}
}
+1
View File
@@ -0,0 +1 @@
export const appVersion = typeof __APP_VERSION__ === "undefined" ? "0.0.0" : __APP_VERSION__;
+19
View File
@@ -8,6 +8,7 @@ const mocks = vi.hoisted(() => ({
handleHealth: vi.fn(),
handleUpload: vi.fn(),
handleMcp: vi.fn(),
handleResumePdfDownload: vi.fn(),
handleMcpServerCard: vi.fn(),
handleOAuthAuthorizationServer: vi.fn(),
handleOAuthProtectedResource: vi.fn(),
@@ -66,6 +67,10 @@ vi.mock("../mcp/handler", () => ({
handleMcp: mocks.handleMcp,
}));
vi.mock("./resume-pdf", () => ({
handleResumePdfDownload: mocks.handleResumePdfDownload,
}));
beforeEach(() => {
vi.clearAllMocks();
mocks.handleAuth.mockResolvedValue(new Response("auth"));
@@ -75,6 +80,7 @@ beforeEach(() => {
mocks.handleHealth.mockReturnValue(new Response("health"));
mocks.handleUpload.mockResolvedValue(new Response("upload"));
mocks.handleMcp.mockResolvedValue(new Response("mcp"));
mocks.handleResumePdfDownload.mockResolvedValue(new Response("pdf"));
mocks.handleMcpServerCard.mockReturnValue(new Response("server-card"));
mocks.handleOAuthAuthorizationServer.mockReturnValue(new Response("oauth-authorization-server"));
mocks.handleOAuthProtectedResource.mockReturnValue(new Response("oauth-protected-resource"));
@@ -101,6 +107,19 @@ describe("createApp", () => {
expect(mocks.handleAuth).not.toHaveBeenCalled();
});
it("routes signed resume PDF downloads before the web fallback", async () => {
const { createApp } = await import("./app");
const app = createApp();
const request = new Request("http://localhost:3001/api/resumes/resume-1/pdf?token=signed");
const response = await app.fetch(request);
await expect(response.text()).resolves.toBe("pdf");
expect(mocks.handleResumePdfDownload).toHaveBeenCalledWith(request, "resume-1");
expect(mocks.serveWebDistStatic).not.toHaveBeenCalled();
expect(mocks.handleWebApp).not.toHaveBeenCalled();
});
it.each([
["GET", "/robots.txt", "robots", mocks.handleRobots],
["HEAD", "/robots.txt", "", mocks.handleRobots],
+2
View File
@@ -15,6 +15,7 @@ import { handleUpload } from "../static/uploads";
import { handleWebApp, handleWebAppHead, serveWebDistStatic } from "../static/web";
import { handleAuth, handleOAuth } from "./auth";
import { handleHealth } from "./health";
import { handleResumePdfDownload } from "./resume-pdf";
export function createApp() {
const app = new Hono();
@@ -26,6 +27,7 @@ export function createApp() {
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/: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));
app.get("/schema.json", () => handleSchemaJson());
+70
View File
@@ -0,0 +1,70 @@
import { beforeEach, describe, expect, it, vi } from "vitest";
const mocks = vi.hoisted(() => ({
createResumePdfDownload: vi.fn(),
verifyResumePdfDownloadToken: vi.fn(),
}));
vi.mock("@reactive-resume/api/features/resume/export", () => ({
createResumePdfDownload: mocks.createResumePdfDownload,
verifyResumePdfDownloadToken: mocks.verifyResumePdfDownloadToken,
}));
const { handleResumePdfDownload } = await import("./resume-pdf");
describe("handleResumePdfDownload", () => {
beforeEach(() => {
vi.clearAllMocks();
});
it("renders the PDF when the signed URL token is valid", async () => {
const pdf = new File([new Uint8Array([37, 80, 68, 70])], "Scizor.pdf", { type: "application/pdf" });
mocks.verifyResumePdfDownloadToken.mockReturnValueOnce({
ok: true,
resumeId: "resume-1",
userId: "user-1",
expiresAt: "2026-06-01T10:10:00.000Z",
});
mocks.createResumePdfDownload.mockResolvedValueOnce({
headers: { "content-disposition": 'attachment; filename="Scizor.pdf"' },
body: pdf,
});
const response = await handleResumePdfDownload(
new Request("https://example.com/api/resumes/resume-1/pdf?token=signed"),
"resume-1",
);
expect(response.status).toBe(200);
expect(response.headers.get("Content-Type")).toBe("application/pdf");
expect(response.headers.get("Content-Disposition")).toBe('attachment; filename="Scizor.pdf"');
expect(response.headers.get("Cache-Control")).toBe("private, no-store");
expect(await response.text()).toBe("%PDF");
expect(mocks.createResumePdfDownload).toHaveBeenCalledWith({ id: "resume-1", userId: "user-1" });
});
it("rejects missing, invalid, and expired tokens before rendering", async () => {
let response = await handleResumePdfDownload(
new Request("https://example.com/api/resumes/resume-1/pdf"),
"resume-1",
);
expect(response.status).toBe(401);
expect(mocks.createResumePdfDownload).not.toHaveBeenCalled();
mocks.verifyResumePdfDownloadToken.mockReturnValueOnce({ ok: false, reason: "invalid_signature" });
response = await handleResumePdfDownload(
new Request("https://example.com/api/resumes/resume-1/pdf?token=bad"),
"resume-1",
);
expect(response.status).toBe(401);
expect(mocks.createResumePdfDownload).not.toHaveBeenCalled();
mocks.verifyResumePdfDownloadToken.mockReturnValueOnce({ ok: false, reason: "expired" });
response = await handleResumePdfDownload(
new Request("https://example.com/api/resumes/resume-1/pdf?token=expired"),
"resume-1",
);
expect(response.status).toBe(410);
expect(mocks.createResumePdfDownload).not.toHaveBeenCalled();
});
});
+53
View File
@@ -0,0 +1,53 @@
import { createResumePdfDownload, verifyResumePdfDownloadToken } from "@reactive-resume/api/features/resume/export";
function unauthorizedResponse() {
return new Response("Unauthorized", {
status: 401,
headers: {
"Cache-Control": "private, no-store",
},
});
}
function expiredResponse() {
return new Response("Download link expired", {
status: 410,
headers: {
"Cache-Control": "private, no-store",
},
});
}
function errorStatus(error: unknown) {
const code = typeof error === "object" && error && "code" in error ? (error as { code?: unknown }).code : undefined;
return code === "NOT_FOUND" ? 404 : 500;
}
export async function handleResumePdfDownload(request: Request, id: string) {
const token = new URL(request.url).searchParams.get("token");
if (!token) return unauthorizedResponse();
const verification = verifyResumePdfDownloadToken({ resumeId: id, token });
if (!verification.ok) return verification.reason === "expired" ? expiredResponse() : unauthorizedResponse();
try {
const download = await createResumePdfDownload({ id, userId: verification.userId });
return new Response(download.body, {
headers: {
"Content-Type": download.body.type || "application/pdf",
"Content-Disposition": download.headers["content-disposition"],
"Cache-Control": "private, no-store",
"X-Content-Type-Options": "nosniff",
},
});
} catch (error) {
console.error("[PDF Download]", error);
return new Response("Failed to generate resume PDF", {
status: errorStatus(error),
headers: {
"Cache-Control": "private, no-store",
},
});
}
}
+3 -1
View File
@@ -4,6 +4,7 @@ import { onError } from "@orpc/client";
import { createRouterClient } from "@orpc/server";
import router from "@reactive-resume/api/routers";
import { MCP_TOOL_NAME, registerPrompts, registerResources, registerTools } from "@reactive-resume/mcp";
import { appVersion } from "../app-version";
import { getRequestLocale } from "../rpc/locale";
function createRequestClient(request: Request): RouterClient<typeof router> {
@@ -25,7 +26,7 @@ export async function createMcpServer(request: Request) {
const server = new McpServer(
{
name: "reactive-resume",
version: __APP_VERSION__,
version: appVersion,
title: "Reactive Resume",
websiteUrl: "https://rxresu.me",
description:
@@ -52,6 +53,7 @@ export async function createMcpServer(request: Request) {
`Read schema at \`resume://_meta/schema\`; read resume JSON via \`resume://{id}\` or \`${MCP_TOOL_NAME.getResume}\`.`,
`Apply body edits with JSON Patch through \`${MCP_TOOL_NAME.patchResume}\`.`,
`Change name, slug, tags, or public visibility with \`${MCP_TOOL_NAME.updateResume}\` (returns canonical share URL; anonymous access only when \`isPublic\` is true; passwords are managed in the web app only).`,
`Create short-lived authenticated PDF download URLs with \`${MCP_TOOL_NAME.downloadResumePdf}\`.`,
`Import full ResumeData JSON with \`${MCP_TOOL_NAME.importResume}\`; read saved AI analysis with \`${MCP_TOOL_NAME.getResumeAnalysis}\`.`,
].join(" "),
},
+2 -1
View File
@@ -8,6 +8,7 @@ import { downloadResumePdfProcedure } from "@reactive-resume/api/features/resume
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";
@@ -44,7 +45,7 @@ export async function handleOpenApi(request: Request) {
const spec = await openAPIGenerator.generate(openAPIRouter, {
info: {
title: "Reactive Resume",
version: __APP_VERSION__,
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" },
+2 -1
View File
@@ -2,6 +2,7 @@ import { oauthProviderAuthServerMetadata, oauthProviderOpenIdConfigMetadata } fr
import { auth } from "@reactive-resume/auth/config";
import { env } from "@reactive-resume/env/server";
import { buildMcpServerCard } from "@reactive-resume/mcp/server-card";
import { appVersion } from "../app-version";
const oauthAuthorizationServerHandler = oauthProviderAuthServerMetadata(auth);
const openIdConfigurationHandler = oauthProviderOpenIdConfigMetadata(auth);
@@ -11,7 +12,7 @@ export function handleWellKnownFallback() {
}
export function handleMcpServerCard() {
return Response.json(buildMcpServerCard(__APP_VERSION__), {
return Response.json(buildMcpServerCard(appVersion), {
headers: {
"Content-Type": "application/json",
"Cache-Control": "public, max-age=60, stale-while-revalidate=120",
+2 -1
View File
@@ -1,5 +1,6 @@
import z from "zod";
import { resumeDataSchema } from "@reactive-resume/schema/resume/data";
import { appVersion } from "../app-version";
export function handleSchemaJson() {
const resumeDataJSONSchema = z.toJSONSchema(resumeDataSchema);
@@ -12,7 +13,7 @@ export function handleSchemaJson() {
"Surrogate-Control": "max-age=86400",
"X-Content-Type-Options": "nosniff",
"X-Robots-Tag": "index, follow",
ETag: __APP_VERSION__,
ETag: appVersion,
Vary: "Accept",
},
});
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: af\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:31\n"
"Last-Translator: \n"
"Language-Team: Afrikaans\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -442,6 +442,10 @@ msgstr "Vra enigiets oor hierdie CV"
msgid "Aspect Ratio"
msgstr "Aspekverhouding"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Heg lêers aan"
@@ -653,6 +657,7 @@ msgstr "Chinees (Tradisioneel)"
msgid "Choose a model and resume draft."
msgstr "Kies 'n model en CV-konsep."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Kies 'n bestaande gesprek vanaf die sybalk, of begin 'n nuwe konsep-gefo
msgid "Circle"
msgstr "Sirkel"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Wys"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Versteek alle ikone op die CV"
msgid "Hide Icons"
msgstr "Versteek ikone"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Versteek skakelonderstreep"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Versteek alle ikone op die CV"
msgid "Hide password"
msgstr "Verberg wagwoord"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Versteek Afdelingsikone"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Hoog"
msgid "Highlight"
msgstr "Merk"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Kleurmerk"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Hindi"
@@ -2639,6 +2657,10 @@ msgstr "Reaktiewe CV is gratis en oopbron. As dit jou gehelp het, oorweeg dit as
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume is oopbron, privaatheid-gefokus en heeltemal gratis. Anders as ander hervatbouers, wys dit nie advertensies nie, spoor nie jou data na nie en sluit nie funksies agter 'n betaalmuur nie."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Tekskleur"
msgid "Thai"
msgstr "Thai"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "Die agent benodig jou insette."
@@ -3991,4 +4017,3 @@ msgstr "Zoem uit"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zoeloe"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: am\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Amharic\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -442,6 +442,10 @@ msgstr "ስለዚህ የስራ ልምድ መግለጫ ማንኛውንም ነገ
msgid "Aspect Ratio"
msgstr "የመገናኛ መጠን"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "ፋይሎችን አያይዝ"
@@ -653,6 +657,7 @@ msgstr "ቻይንኛ (ባለባለት)"
msgid "Choose a model and resume draft."
msgstr "ሞዴል ይምረጡ እና የሪዚሜ ረቂቅ ይምረጡ።"
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "ከጎን አሞሌው ላይ አንድ ነባር ውይይት ይምረ
msgid "Circle"
msgstr "ክብ"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "አሳይ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "በየታሪክ ማቅረቢያው ላይ ያሉ ሁሉንም አዶዎች ደብቅ"
msgid "Hide Icons"
msgstr "አዶዎችን ደብቅ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "የአገናኝ መስመሩን ደብቅ"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "በየታሪክ ማቅረቢያው ላይ ያሉ ሁሉንም አዶዎ
msgid "Hide password"
msgstr "የይለፍ ቃል ደብቅ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "የክፍል አዶዎችን ደብቅ"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "ከፍተኛ"
msgid "Highlight"
msgstr "አብራጭ"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "የድምቀት ቀለም"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "ሒንዱኛ"
@@ -2639,6 +2657,10 @@ msgstr "ምላሽ ሰጪ የስራ ልምድ (Reactive) ነፃ እና ክፍት
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume ክፍት ምንጭ፣ ግላዊነትን የሚመርጥ እና ፍጹም ነፃ ነው። ከሌሎች የየታሪክ ማቅረቢያዎች የተለየ ምክንያቱ ማስታወቂያ አያሳይም፣ መረጃዎን አይከታተልም፣ ባህሪዎችንም በክፍያ ግድግዳ አያስገባም።"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "የጽሁፍ ቀለም"
msgid "Thai"
msgstr "ታይኛ"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "ወኪሉ የእርስዎን ግብዓት ይፈልጋል።"
@@ -3991,4 +4017,3 @@ msgstr "አጉር"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "ዙሉ"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ar\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:31\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"
@@ -442,6 +442,10 @@ msgstr "اسأل عن أي شيء بخصوص هذه السيرة الذاتية"
msgid "Aspect Ratio"
msgstr "نسبة الأبعاد"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "إرفاق الملفات"
@@ -653,6 +657,7 @@ msgstr "الصينية (التقليدية)"
msgid "Choose a model and resume draft."
msgstr "اختر نموذجًا واكتب مسودة سيرة ذاتية."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "اختر محادثة موجودة من الشريط الجانبي، أ
msgid "Circle"
msgstr "دائرة"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "إخفاء"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "إخفاء جميع الأيقونات في السيرة الذاتية"
msgid "Hide Icons"
msgstr "إخفاء الأيقونات"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "إخفاء الرابط (تسطير)"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "إخفاء جميع الأيقونات في السيرة الذاتية"
msgid "Hide password"
msgstr "إخفاء كلمة المرور"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "إخفاء أيقونات الأقسام"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "عالية"
msgid "Highlight"
msgstr "تمييز"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "لون مميز"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "الهندية"
@@ -2639,6 +2657,10 @@ msgstr "برنامج Reactive Resume مجاني ومفتوح المصدر. إذ
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume مفتوح المصدر ويركز على الخصوصية ومجاني تمامًا. وعلى عكس أدوات إنشاء السير الذاتية الأخرى، لا يعرض إعلانات، ولا يتتبع بياناتك، ولا يقيّد ميزاتك خلف جدار دفع."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "لون النص"
msgid "Thai"
msgstr "التايلاندية"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "يحتاج الوكيل إلى رأيك."
@@ -3991,4 +4017,3 @@ msgstr "تصغير"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "الزولو"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: az\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Azerbaijani\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -442,6 +442,10 @@ msgstr "Bu CV haqqında hər hansı bir sual verin"
msgid "Aspect Ratio"
msgstr "Propor­siya"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Faylları əlavə edin"
@@ -653,6 +657,7 @@ msgstr "Çin (Ənənəvi)"
msgid "Choose a model and resume draft."
msgstr "Bir model seçin və qaralamanı davam etdirin."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Yan paneldən mövcud bir söhbət seçin və ya qaralamaya yönəlmiş
msgid "Circle"
msgstr "Dairə"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Gizlət"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Özgeçmişdəki bütün ikonları gizlət"
msgid "Hide Icons"
msgstr "Nişanları gizlət"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Linkin Alt Xəttini Gizlət"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Özgeçmişdəki bütün ikonları gizlət"
msgid "Hide password"
msgstr "Şifrəni gizlət"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Bölmə İkonlarını Gizlət"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Yüksək"
msgid "Highlight"
msgstr "Vurğula"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Vurğulama Rəngi"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Hind"
@@ -2639,6 +2657,10 @@ msgstr "Reactive Resume pulsuz və açıq mənbəlidir. Əgər sizə kömək edi
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume açıq mənbəlidir, məxfilik yönümlüdür və tamamilə pulsuzdur. Digər özgeçmiş qurucularından fərqli olaraq, o reklamlara yer vermir, məlumatınızı izləmir və funksiyaları ödəniş divarının arxasında məhdudlaşdırmır."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Mətn Rəngi"
msgid "Thai"
msgstr "Tay"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "Agentin sizin fikrinizə ehtiyacı var."
@@ -3991,4 +4017,3 @@ msgstr "Uzaqlaşdır"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: bg\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:31\n"
"Last-Translator: \n"
"Language-Team: Bulgarian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -442,6 +442,10 @@ msgstr "Попитайте нещо относно тази автобиогра
msgid "Aspect Ratio"
msgstr "Съотношение на страните"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Прикачи файлове"
@@ -653,6 +657,7 @@ msgstr "Китайски (традиционен)"
msgid "Choose a model and resume draft."
msgstr "Изберете модел и чернова на автобиография."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Изберете съществуващ разговор от стран
msgid "Circle"
msgstr "Кръг"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Скриване"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Скриване на всички икони в автобиографията"
msgid "Hide Icons"
msgstr "Скриване на икони"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Скриване на подчертаната връзка"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Скриване на всички икони в автобиограф
msgid "Hide password"
msgstr "Скриване на паролата"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Скриване на иконите на секциите"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Висока"
msgid "Highlight"
msgstr "Маркер за подчертаване"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Цвят на акцента"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Хинди"
@@ -2639,6 +2657,10 @@ msgstr "Reactive Resume е безплатен и с отворен код. Ак
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume е с отворен код, фокусиран върху поверителността и напълно безплатен. За разлика от други конструктори на автобиографии, той не показва реклами, не проследява данните ви и не ограничава функциите зад платена стена."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Цвят на текста"
msgid "Thai"
msgstr "Тайландски"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "Агентът се нуждае от вашето мнение."
@@ -3991,4 +4017,3 @@ msgstr "Намаляване"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Зулуски"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: bn\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Bengali\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -442,6 +442,10 @@ msgstr "এই জীবনবৃত্তান্ত সম্পর্কে
msgid "Aspect Ratio"
msgstr "আকারের অনুপাত"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "ফাইলগুলো সংযুক্ত করুন"
@@ -653,6 +657,7 @@ msgstr "চীনা (প্রচলিত)"
msgid "Choose a model and resume draft."
msgstr "একটি মডেল বেছে নিন এবং জীবনবৃত্তান্তের খসড়া তৈরি করুন।"
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "সাইডবার থেকে একটি চলমান আল
msgid "Circle"
msgstr "বৃত্ত"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "লুকান"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "জীবনবৃত্তান্তে সব আইকন লুকিয়ে রাখুন"
msgid "Hide Icons"
msgstr "আইকন লুকান"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "লিঙ্ক আন্ডারলাইন লুকান"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "জীবনবৃত্তান্তে সব আইকন লুক
msgid "Hide password"
msgstr "পাসওয়ার্ড লুকান"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "সেকশন আইকন লুকান"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "উচ্চ"
msgid "Highlight"
msgstr "হাইলাইট"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "হাইলাইট রঙ"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "হিন্দি"
@@ -2639,6 +2657,10 @@ msgstr "রিঅ্যাক্টিভ রেজ্যুমে বিনা
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume মুক্ত উৎস, গোপনীয়তা-কেন্দ্রিক এবং সম্পূর্ণ বিনামূল্যে। অন্য জীবনবৃত্তান্ত নির্মাতাদের মতো এটি কোনো বিজ্ঞাপন দেখায় না, আপনার ডেটা ট্র্যাক করে না, বা ফিচারগুলো পেওয়ালের আড়ালে আটকে রাখে না।"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "টেক্সটের রঙ"
msgid "Thai"
msgstr "থাই"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "এজেন্টের আপনার মতামত প্রয়োজন।"
@@ -3991,4 +4017,3 @@ msgstr "জুম আউট"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "জুলু"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ca\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:31\n"
"Last-Translator: \n"
"Language-Team: Catalan\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -442,6 +442,10 @@ msgstr "Pregunta qualsevol cosa sobre aquest currículum"
msgid "Aspect Ratio"
msgstr "Relació d’aspecte"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Adjunta fitxers"
@@ -653,6 +657,7 @@ msgstr "Xinès (tradicional)"
msgid "Choose a model and resume draft."
msgstr "Trieu un model i un esborrany de currículum."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Trieu una conversa existent de la barra lateral o inicieu un fil nou cen
msgid "Circle"
msgstr "Cercle"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Amaga"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Amaga totes les icones del currículum"
msgid "Hide Icons"
msgstr "Amaga les icones"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Amaga el subratllat d'enllaços"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Amaga totes les icones del currículum"
msgid "Hide password"
msgstr "Amagar contrasenya"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Amaga les icones de secció"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Alt"
msgid "Highlight"
msgstr "Ressaltat"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Color de ressaltat"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Hindi"
@@ -2639,6 +2657,10 @@ msgstr "Reactive Resume és gratuït i de codi obert. Si t'ha ajudat, considera
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume és de codi obert, centrat en la privadesa i completament gratuït. A diferència d’altres creadors de currículums, no mostra anuncis, no rastreja les dades ni limita les funcions darrere d’un mur de pagament."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Color del text"
msgid "Thai"
msgstr "Tai"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "L'agent necessita la teva opinió."
@@ -3991,4 +4017,3 @@ msgstr "Allunya"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulú"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: cs\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:31\n"
"Last-Translator: \n"
"Language-Team: Czech\n"
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
@@ -442,6 +442,10 @@ msgstr "Zeptejte se na cokoli ohledně tohoto životopisu"
msgid "Aspect Ratio"
msgstr "Poměr stran"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Přiložit soubory"
@@ -653,6 +657,7 @@ msgstr "Čínština (tradiční)"
msgid "Choose a model and resume draft."
msgstr "Vyberte si model a návrh životopisu."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Vyberte existující konverzaci z postranního panelu nebo začněte nov
msgid "Circle"
msgstr "Kruh"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Skrýt"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Skrýt všechny ikony v životopisu"
msgid "Hide Icons"
msgstr "Skrýt ikony"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Skrýt podtržení odkazu"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Skrýt všechny ikony v životopisu"
msgid "Hide password"
msgstr "Skrýt heslo"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Skrýt ikony sekcí"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Vysoká"
msgid "Highlight"
msgstr "Zvýraznění"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Barva zvýraznění"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Hindština"
@@ -2639,6 +2657,10 @@ msgstr "Reactive Resume je zdarma a má otevřený zdrojový kód. Pokud vám po
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume je open source, zaměřené na soukromí a zcela zdarma. Na rozdíl od jiných nástrojů pro tvorbu životopisů nezobrazuje reklamy, nesleduje vaše data a neomezuje funkce za paywallem."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Barva textu"
msgid "Thai"
msgstr "Thajština"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "Agent potřebuje váš vstup."
@@ -3991,4 +4017,3 @@ msgstr "Oddálit"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: da\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:31\n"
"Last-Translator: \n"
"Language-Team: Danish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -442,6 +442,10 @@ msgstr "Spørg om noget om dette CV"
msgid "Aspect Ratio"
msgstr "Billedformat"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Vedhæft filer"
@@ -653,6 +657,7 @@ msgstr "Kinesisk (traditionelt)"
msgid "Choose a model and resume draft."
msgstr "Vælg en model og et udkast til CV."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Vælg en eksisterende samtale fra sidebjælken, eller start en ny tråd
msgid "Circle"
msgstr "Cirkel"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Skjul"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Skjul alle ikoner på CV'et"
msgid "Hide Icons"
msgstr "Skjul ikoner"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Skjul linkunderstregning"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Skjul alle ikoner på CV'et"
msgid "Hide password"
msgstr "Skjul adgangskode"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Skjul sektionsikoner"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Høj"
msgid "Highlight"
msgstr "Fremhæv"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Fremhævelsesfarve"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Hindi"
@@ -2639,6 +2657,10 @@ msgstr "Reactive Resume er gratis og open source. Hvis det har hjulpet dig, så
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume er open-source, fokuserer på privatliv og er helt gratis. I modsætning til andre CV-byggere viser det ingen reklamer, sporer ikke dine data og begrænser ikke funktioner bag en betalingsmur."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Tekstfarve"
msgid "Thai"
msgstr "Thai"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "Agenten har brug for din input."
@@ -3991,4 +4017,3 @@ msgstr "Zoom ud"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: de\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:31\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -442,6 +442,10 @@ msgstr "Fragen Sie alles zu diesem Lebenslauf"
msgid "Aspect Ratio"
msgstr "Seitenverhältnis"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Anhängen von Dateien"
@@ -653,6 +657,7 @@ msgstr "Chinesisch (traditionell)"
msgid "Choose a model and resume draft."
msgstr "Wählen Sie ein Modell und erstellen Sie einen Lebenslaufentwurf."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Wählen Sie eine bestehende Konversation aus der Seitenleiste oder start
msgid "Circle"
msgstr "Kreis"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Ausblenden"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Alle Icons im Lebenslauf ausblenden"
msgid "Hide Icons"
msgstr "Symbole ausblenden"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Link ausblenden Unterstreichung"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Alle Icons im Lebenslauf ausblenden"
msgid "Hide password"
msgstr "Passwort verbergen"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Abschnittssymbole ausblenden"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Hoch"
msgid "Highlight"
msgstr "Hervorheben"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Hervorhebungsfarbe"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Hindi"
@@ -2639,6 +2657,10 @@ msgstr "Reactive Resume ist kostenlos und Open Source. Wenn es Ihnen geholfen ha
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume ist Open Source, datenschutzorientiert und vollständig kostenlos. Anders als andere Lebenslauf-Builder zeigt es keine Werbung an, trackt deine Daten nicht und versteckt keine Funktionen hinter einer Bezahlschranke."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Textfarbe"
msgid "Thai"
msgstr "Thailändisch"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "Der Agent benötigt Ihre Mithilfe."
@@ -3991,4 +4017,3 @@ msgstr "Herauszoomen"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: el\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:31\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -442,6 +442,10 @@ msgstr "Ρωτήστε οτιδήποτε σχετικά με αυτό το βι
msgid "Aspect Ratio"
msgstr "Αναλογία διαστάσεων"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Επισύναψη αρχείων"
@@ -653,6 +657,7 @@ msgstr "Κινέζικα (Παραδοσιακά)"
msgid "Choose a model and resume draft."
msgstr "Επιλέξτε ένα μοντέλο και γράψτε το βιογραφικό σας ως προσχέδιο."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Επιλέξτε μια υπάρχουσα συζήτηση από τη
msgid "Circle"
msgstr "Κύκλος"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Απόκρυψη"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Απόκρυψη όλων των εικονιδίων στο βιογραφικό σημείωμα"
msgid "Hide Icons"
msgstr "Απόκρυψη εικονιδίων"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Απόκρυψη υπογράμμισης συνδέσμου"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Απόκρυψη όλων των εικονιδίων στο βιογρ
msgid "Hide password"
msgstr "Απόκρυψη κωδικού πρόσβασης"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Απόκρυψη εικονιδίων ενότητας"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Υψηλή"
msgid "Highlight"
msgstr "Επισήμανση"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Χρώμα επισήμανσης"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Χίντι"
@@ -2639,6 +2657,10 @@ msgstr "Το Reactive Resume είναι δωρεάν και ανοιχτού κ
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Το Reactive Resume είναι ανοικτού κώδικα, με έμφαση στο απόρρητο και εντελώς δωρεάν. Σε αντίθεση με άλλους κατασκευαστές βιογραφικών σημειωμάτων, δεν εμφανίζει διαφημίσεις, δεν παρακολουθεί τα δεδομένα σας και δεν περιορίζει τις λειτουργίες του πίσω από paywall."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Χρώμα κειμένου"
msgid "Thai"
msgstr "Ταϊλανδικά"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "Ο πράκτορας χρειάζεται τη συμβολή σας."
@@ -3991,4 +4017,3 @@ msgstr "Σμίκρυνση"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Ζουλού"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: en_GB\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:31\n"
"Last-Translator: \n"
"Language-Team: English, United Kingdom\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -442,6 +442,10 @@ msgstr "Ask anything about this resume"
msgid "Aspect Ratio"
msgstr "Aspect Ratio"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Attach files"
@@ -653,6 +657,7 @@ msgstr "Chinese (Traditional)"
msgid "Choose a model and resume draft."
msgstr "Choose a model and resume draft."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Choose an existing conversation from the sidebar, or start a new draft-f
msgid "Circle"
msgstr "Circle"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Hide"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Hide all icons on the resume"
msgid "Hide Icons"
msgstr "Hide Icons"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Hide Link Underline"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Hide all icons on the resume"
msgid "Hide password"
msgstr "Hide password"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Hide Section Icons"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "High"
msgid "Highlight"
msgstr "Highlight"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Highlight Color"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Hindi"
@@ -2639,6 +2657,10 @@ msgstr "Reactive Resume is free and open source. If it has helped you, please co
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Text Colour"
msgid "Thai"
msgstr "Thai"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "The agent needs your input."
@@ -3991,4 +4017,3 @@ msgstr "Zoom out"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+28 -2
View File
@@ -437,6 +437,10 @@ msgstr "Ask anything about this resume"
msgid "Aspect Ratio"
msgstr "Aspect Ratio"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Attach files"
@@ -648,6 +652,7 @@ msgstr "Chinese (Traditional)"
msgid "Choose a model and resume draft."
msgstr "Choose a model and resume draft."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -665,6 +670,7 @@ msgstr "Choose an existing conversation from the sidebar, or start a new draft-f
msgid "Circle"
msgstr "Circle"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1740,8 +1746,12 @@ msgid "Hide"
msgstr "Hide"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Hide all icons on the resume"
msgid "Hide Icons"
msgstr "Hide Icons"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Hide Link Underline"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1761,6 +1771,10 @@ msgstr "Hide all icons on the resume"
msgid "Hide password"
msgstr "Hide password"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Hide Section Icons"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1770,6 +1784,10 @@ msgstr "High"
msgid "Highlight"
msgstr "Highlight"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Highlight Color"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Hindi"
@@ -2634,6 +2652,10 @@ msgstr "Reactive Resume is free and open source. If it has helped you, please co
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3300,6 +3322,10 @@ msgstr "Text Color"
msgid "Thai"
msgstr "Thai"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "The agent needs your input."
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: es\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:31\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -442,6 +442,10 @@ msgstr "Haz cualquier pregunta sobre este currículum."
msgid "Aspect Ratio"
msgstr "Relación de aspecto"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Adjuntar archivos"
@@ -653,6 +657,7 @@ msgstr "Chino (tradicional)"
msgid "Choose a model and resume draft."
msgstr "Elige un modelo y un borrador de currículum."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Selecciona una conversación existente en la barra lateral o inicia un n
msgid "Circle"
msgstr "Círculo"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Ocultar"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Ocultar todos los iconos en el currículum"
msgid "Hide Icons"
msgstr "Ocultar iconos"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Ocultar enlace subrayado"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Ocultar todos los iconos en el currículum"
msgid "Hide password"
msgstr "Ocultar contraseña"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Iconos de ocultar sección"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Alta"
msgid "Highlight"
msgstr "Resaltado"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Color de resaltado"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Hindi"
@@ -2639,6 +2657,10 @@ msgstr "Reactive Resume es gratuito y de código abierto. Si te ha sido útil, c
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume es de código abierto, centrado en la privacidad y completamente gratuito. A diferencia de otros creadores de currículums, no muestra anuncios, no rastrea tus datos ni limita tus funciones tras un muro de pago."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Color del texto"
msgid "Thai"
msgstr "Tailandés"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "El agente necesita tu opinión."
@@ -3991,4 +4017,3 @@ msgstr "Alejar"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulú"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: fa\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Persian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -442,6 +442,10 @@ msgstr "در مورد این رزومه هر سوالی دارید بپرسید"
msgid "Aspect Ratio"
msgstr "نسبت تصویر"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "پیوست کردن فایل‌ها"
@@ -653,6 +657,7 @@ msgstr "چینی (سنتی)"
msgid "Choose a model and resume draft."
msgstr "یک مدل انتخاب کنید و پیش‌نویس رزومه را بنویسید."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "یک مکالمه موجود را از نوار کناری انتخاب
msgid "Circle"
msgstr "دایره"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "پنهان کردن"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "تمام آیکون‌ها را روی رزومه مخفی کن"
msgid "Hide Icons"
msgstr "پنهان کردن آیکون‌ها"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "پنهان کردن زیرخط لینک"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "تمام آیکون‌ها را روی رزومه مخفی کن"
msgid "Hide password"
msgstr "پنهان کردن رمز عبور"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "پنهان کردن آیکن‌های بخش"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "بالا"
msgid "Highlight"
msgstr "هایلایت"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "رنگ برجسته"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "هندی"
@@ -2639,6 +2657,10 @@ msgstr "رزومه واکنشی رایگان و متن‌باز است. اگر
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume متن‌باز، حریم‌خصوصی‌محور و کاملاً رایگان است. برخلاف سایر رزومه‌سازها، هیچ تبلیغی نشان نمی‌دهد، داده‌های شما را رهگیری نمی‌کند و قابلیت‌هایتان را پشت دیوار پرداخت محدود نمی‌کند."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "رنگ متن"
msgid "Thai"
msgstr "تایلندی"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "نماینده به نظرات شما نیاز دارد."
@@ -3991,4 +4017,3 @@ msgstr "کوچک‌نمایی"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "زولو"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: fi\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Finnish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -442,6 +442,10 @@ msgstr "Kysy mitä tahansa tästä ansioluettelosta"
msgid "Aspect Ratio"
msgstr "Kuvasuhde"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Liitä tiedostoja"
@@ -653,6 +657,7 @@ msgstr "kiina (perinteinen)"
msgid "Choose a model and resume draft."
msgstr "Valitse malli ja ansioluettelon luonnos."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Valitse olemassa oleva keskustelu sivupalkista tai aloita uusi luonnosty
msgid "Circle"
msgstr "Ympyrä"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Piilota"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Piilota kaikki ansioluettelon ikonit"
msgid "Hide Icons"
msgstr "Piilota kuvakkeet"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Piilota linkin alleviivaus"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Piilota kaikki ansioluettelon ikonit"
msgid "Hide password"
msgstr "Piilota salasana"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Piilota osiokuvakkeet"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Korkea"
msgid "Highlight"
msgstr "Korostus"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Korostusväri"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "hindi"
@@ -2639,6 +2657,10 @@ msgstr "Reactive Resume on ilmainen ja avoimen lähdekoodin työkalu. Jos siitä
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume on avoimen lähdekoodin, yksityisyyteen keskittyvä ja täysin ilmainen. Toisin kuin monet muut ansioluettelon laatijat, se ei näytä mainoksia, seuraa tietojasi tai piilota ominaisuuksia maksumuurin taakse."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Tekstiväri"
msgid "Thai"
msgstr "thai"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "Välittäjä tarvitsee panostasi."
@@ -3991,4 +4017,3 @@ msgstr "Loitonna"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: fr\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:31\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -442,6 +442,10 @@ msgstr "Posez toutes vos questions concernant ce CV"
msgid "Aspect Ratio"
msgstr "Format d'image"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Joindre des fichiers"
@@ -653,6 +657,7 @@ msgstr "Chinois (traditionnel)"
msgid "Choose a model and resume draft."
msgstr "Choisissez un modèle et un brouillon de CV."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Choisissez une conversation existante dans la barre latérale, ou créez
msgid "Circle"
msgstr "Cercle"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Masquer"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Masquer toutes les icônes du CV"
msgid "Hide Icons"
msgstr "Masquer les icônes"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Masquer le lien Souligner"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Masquer toutes les icônes du CV"
msgid "Hide password"
msgstr "Cacher le mot de passe"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Masquer les icônes de section"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Haut"
msgid "Highlight"
msgstr "Mettre en surbrillance"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Couleur de surbrillance"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Hindi"
@@ -2639,6 +2657,10 @@ msgstr "Reactive Resume est un logiciel libre et gratuit. S'il vous a été util
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume est un logiciel libre, respectueux de la vie privée et entièrement gratuit. Contrairement à d'autres outils de création de CV, il n'affiche pas de publicité, ne suit pas vos données et ne limite pas vos fonctionnalités derrière un mur payant."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Couleur du texte"
msgid "Thai"
msgstr "Thaïlandais"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "L'agent a besoin de votre contribution."
@@ -3991,4 +4017,3 @@ msgstr "Zoom arrière"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zoulou"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: he\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:31\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"
@@ -442,6 +442,10 @@ msgstr "שאלו כל דבר בנוגע לקורות חיים אלה"
msgid "Aspect Ratio"
msgstr "יחס גובה־רוחב"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "צרף קבצים"
@@ -653,6 +657,7 @@ msgstr "סינית (מסורתית)"
msgid "Choose a model and resume draft."
msgstr "בחר מודל וטיוטת קורות חיים."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "בחר שיחה קיימת מסרגל הצד, או התחל שרשור
msgid "Circle"
msgstr "עיגול"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "הסתרה"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "הסתרת כל הסמלים בקורות החיים"
msgid "Hide Icons"
msgstr "הסתר סמלים"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "הסתר קו תחתון של קישור"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "הסתרת כל הסמלים בקורות החיים"
msgid "Hide password"
msgstr "הסתר סיסמה"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "הסתר סמלי מדור"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "גבוה"
msgid "Highlight"
msgstr "סימון"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "צבע סימון"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "הינדי"
@@ -2639,6 +2657,10 @@ msgstr "ריאקטיבי קורות חיים הם חינמיים ובקוד פת
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume הוא בקוד פתוח, ממוקד פרטיות וחינמי לחלוטין. בניגוד לבוני קורות חיים אחרים, הוא לא מציג פרסומות, לא עוקב אחרי הנתונים שלך ולא נועל יכולות מאחורי חומת תשלום."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "צבע כתב"
msgid "Thai"
msgstr "תאית"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "הסוכן זקוק לתשומתך."
@@ -3991,4 +4017,3 @@ msgstr "התרחקות"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "זולו"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: hi\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Hindi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -442,6 +442,10 @@ msgstr "इस रिज्यूमे के बारे में कुछ
msgid "Aspect Ratio"
msgstr "आकार अनुपात"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "फ़ाइलों को संलग्न करें"
@@ -653,6 +657,7 @@ msgstr "चीनी (परंपरागत)"
msgid "Choose a model and resume draft."
msgstr "एक मॉडल चुनें और रिज्यूमे का ड्राफ्ट तैयार करें।"
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "साइडबार से किसी मौजूदा बात
msgid "Circle"
msgstr "गोला"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "छुपायें"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "रेज़्यूमे पर सभी आइकॉन छुपाएँ"
msgid "Hide Icons"
msgstr "आइकन छिपाएँ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "लिंक के नीचे की रेखा छिपाएँ"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "रेज़्यूमे पर सभी आइकॉन छुप
msgid "Hide password"
msgstr "पासवर्ड छिपाएँ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "सेक्शन आइकन छिपाएँ"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "उच्च"
msgid "Highlight"
msgstr "हाइलाइट"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "हाइलाइट रंग"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "हिन्दी"
@@ -2639,6 +2657,10 @@ msgstr "रिएक्टिव रिज्यूम मुफ़्त और
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume ओपन‑सोर्स, गोपनीयता‑केंद्रित और पूरी तरह मुफ़्त है। अन्य रेज़्यूमे बिल्डर के विपरीत, यह विज्ञापन नहीं दिखाता, आपका डेटा ट्रैक नहीं करता और न ही आपकी सुविधाओं को पेवॉल के पीछे सीमित करता है।"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "अक्षरों का रंग"
msgid "Thai"
msgstr "थाई"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "एजेंट को आपके सुझाव की आवश्यकता है।"
@@ -3991,4 +4017,3 @@ msgstr "ज़ूम आउट"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "ज़ुलु"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: hu\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Hungarian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -442,6 +442,10 @@ msgstr "Kérdezzen bármit erről az önéletrajzról"
msgid "Aspect Ratio"
msgstr "Méretarány"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Fájlok csatolása"
@@ -653,6 +657,7 @@ msgstr "kínai (hagyományos)"
msgid "Choose a model and resume draft."
msgstr "Válasszon egy modellt és önéletrajz-tervezetet."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Válasszon egy meglévő beszélgetést az oldalsávon, vagy indítson e
msgid "Circle"
msgstr "Kör"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Elrejtés"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Az önéletrajz összes ikonjának elrejtése"
msgid "Hide Icons"
msgstr "Ikonok elrejtése"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Hivatkozás aláhúzásának elrejtése"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Az önéletrajz összes ikonjának elrejtése"
msgid "Hide password"
msgstr "Jelszó elrejtése"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Szakasz ikonok elrejtése"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Magas"
msgid "Highlight"
msgstr "Kiemelés"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Kiemelő szín"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "hindi"
@@ -2639,6 +2657,10 @@ msgstr "A Reactive Resume ingyenes és nyílt forráskódú. Ha segített, kérj
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "A Reactive Resume nyílt forráskódú, adatvédelem‑központú és teljesen ingyenes. Más önéletrajz‑készítőkkel ellentétben nem jelenít meg hirdetéseket, nem követi az adataidat, és nem zár funkciókat fizetős fal mögé."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Szövegszín"
msgid "Thai"
msgstr "thai"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "Az ügynöknek szüksége van az Ön közreműködésére."
@@ -3991,4 +4017,3 @@ msgstr "Kicsinyítés"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: id\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -442,6 +442,10 @@ msgstr "Tanyakan apa pun tentang resume ini."
msgid "Aspect Ratio"
msgstr "Rasio Aspek"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Lampirkan file"
@@ -653,6 +657,7 @@ msgstr "Cina (Tradisional)"
msgid "Choose a model and resume draft."
msgstr "Pilih model dan draf resume."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Pilih percakapan yang sudah ada dari bilah sisi, atau mulai utas baru ya
msgid "Circle"
msgstr "Lingkaran"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Sembunyikan"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Sembunyikan semua ikon di resume"
msgid "Hide Icons"
msgstr "Sembunyikan Ikon"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Sembunyikan Garis Bawah Tautan"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Sembunyikan semua ikon di resume"
msgid "Hide password"
msgstr "Sembunyikan kata sandi"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Sembunyikan Ikon Bagian"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Tinggi"
msgid "Highlight"
msgstr "Sorot"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Warna Sorot"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Hindi"
@@ -2639,6 +2657,10 @@ msgstr "Reactive Resume gratis dan bersifat open source. Jika aplikasi ini berma
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume bersifat sumber terbuka, berfokus pada privasi, dan sepenuhnya gratis. Tidak seperti pembuat resume lainnya, aplikasi ini tidak menampilkan iklan, melacak data Anda, atau membatasi fitur di balik paywall."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Warna Teks"
msgid "Thai"
msgstr "Thai"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "Agen tersebut membutuhkan masukan Anda."
@@ -3991,4 +4017,3 @@ msgstr "Perkecil"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: it\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -442,6 +442,10 @@ msgstr "Chiedi qualsiasi cosa su questo curriculum"
msgid "Aspect Ratio"
msgstr "Proporzioni"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Allega i file"
@@ -653,6 +657,7 @@ msgstr "Cinese (tradizionale)"
msgid "Choose a model and resume draft."
msgstr "Scegli un modello e una bozza di curriculum."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Scegli una conversazione esistente dalla barra laterale oppure avvia una
msgid "Circle"
msgstr "Cerchio"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Nascondi"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Nascondi tutte le icone sul curriculum"
msgid "Hide Icons"
msgstr "Nascondi icone"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Nascondi il collegamento sottolineato"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Nascondi tutte le icone sul curriculum"
msgid "Hide password"
msgstr "Nascondere la password"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Nascondi le icone della sezione"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Alto"
msgid "Highlight"
msgstr "Evidenzia"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Colore di evidenziazione"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Hindi"
@@ -2639,6 +2657,10 @@ msgstr "Reactive Resume è gratuito e open source. Se ti è stato utile, conside
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume è open source, incentrato sulla privacy e completamente gratuito. A differenza di altri generatori di curriculum, non mostra annunci, non traccia i tuoi dati e non limita le funzionalità dietro un paywall."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Colore del testo"
msgid "Thai"
msgstr "Thai"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "L'agente ha bisogno del tuo contributo."
@@ -3991,4 +4017,3 @@ msgstr "Rimpicciolisci"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+213 -188
View File
File diff suppressed because it is too large Load Diff
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: km\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Khmer\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -442,6 +442,10 @@ msgstr "សួរអ្វីមួយអំពីប្រវត្តិរូ
msgid "Aspect Ratio"
msgstr "សមាមាត្រទ្រង់ទ្រាយ"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "ភ្ជាប់ឯកសារ"
@@ -653,6 +657,7 @@ msgstr "Chinese (Traditional)"
msgid "Choose a model and resume draft."
msgstr "ជ្រើសរើសគំរូ និងប្រវត្តិរូបសង្ខេប។"
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "ជ្រើសរើសការសន្ទនាដែលមានស
msgid "Circle"
msgstr "រង្វង់"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "លាក់"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "លាក់​រូបតំណាង​ទាំងអស់​លើ​ប្រវត្តិរូប"
msgid "Hide Icons"
msgstr "លាក់រូបតំណាង"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "លាក់​បន្ទាត់​ក្រោម​តំណ"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "លាក់​រូបតំណាង​ទាំងអស់​លើ
msgid "Hide password"
msgstr "លាក់ពាក្យសម្ងាត់"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "លាក់រូបតំណាងផ្នែក"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "ខ្ពស់"
msgid "Highlight"
msgstr "រំលេច"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "ពណ៌​បន្លិច"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Hindi"
@@ -2639,6 +2657,10 @@ msgstr "Reactive Resume គឺឥតគិតថ្លៃ និងជាប្
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume គឺ​បើក​ប្រភព ផ្តោតលើ​ភាព​ឯកជន និង​ឥតគិតថ្លៃ​ទាំងស្រុង។ ខុស​ពី​កម្មវិធី​បង្កើត​ប្រវត្តិរូប​ផ្សេងៗ វា​មិន​បង្ហាញ​ពាណិជ្ជកម្ម មិន​តាមដាន​ទិន្នន័យ​របស់​អ្នក ហើយ​មិន​កំណត់​មុខងារ​ពីក្រោយ paywall ឡើយ។"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "ពណ៌​អត្ថបទ"
msgid "Thai"
msgstr "Thai"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "ភ្នាក់ងារត្រូវការមតិយោបល់ពីអ្នក។"
@@ -3991,4 +4017,3 @@ msgstr "បង្រួម"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: kn\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Kannada\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -442,6 +442,10 @@ msgstr "ಈ ರೆಸ್ಯೂಮ್ ಬಗ್ಗೆ ಏನಾದರೂ ಕೇ
msgid "Aspect Ratio"
msgstr "ಆಕಾರ ಅನುಪಾತ"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "ಫೈಲ್‌ಗಳನ್ನು ಲಗತ್ತಿಸಿ"
@@ -653,6 +657,7 @@ msgstr "ಚೈನೀಸ್ (ಸಾಂಪ್ರದಾಯಿಕ)"
msgid "Choose a model and resume draft."
msgstr "ಮಾದರಿ ಮತ್ತು ಪುನರಾರಂಭದ ಡ್ರಾಫ್ಟ್ ಅನ್ನು ಆರಿಸಿ."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "ಸೈಡ್‌ಬಾರ್‌ನಿಂದ ಅಸ್ತಿತ್ವದ
msgid "Circle"
msgstr "ವೃತ್ತ"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "ಮರೆಮಾಡಿ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "ರೆಸ್ಯೂಮ್‌ನಲ್ಲಿನ ಎಲ್ಲಾ ಐಕಾನ್‌ಗಳನ್ನು ಮರೆಮಾಡಿ"
msgid "Hide Icons"
msgstr "ಐಕಾನ್‌ಗಳನ್ನು ಮರೆಮಾಡಿ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "ಲಿಂಕ್ ಅಂಡರ್‌ಲೈನ್ ಅನ್ನು ಮರೆಮಾಡಿ"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "ರೆಸ್ಯೂಮ್‌ನಲ್ಲಿನ ಎಲ್ಲಾ ಐಕಾ
msgid "Hide password"
msgstr "ಪಾಸ್‌ವರ್ಡ್ ಮರೆಮಾಡಿ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "ವಿಭಾಗ ಐಕಾನ್‌ಗಳನ್ನು ಮರೆಮಾಡಿ"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "ಹೆಚ್ಚು"
msgid "Highlight"
msgstr "ಹೈಲೈಟ್ ಮಾಡಿ"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "ಬಣ್ಣವನ್ನು ಹೈಲೈಟ್ ಮಾಡಿ"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "ಹಿಂದಿ"
@@ -2639,6 +2657,10 @@ msgstr "ರಿಯಾಕ್ಟಿವ್ ರೆಸ್ಯೂಮ್ ಉಚಿತ ಮ
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume ಮುಕ್ತ-ಮೂಲ, ಗೌಪ್ಯತಿಗೆ ಪ್ರಾಧಾನ್ಯ ನೀಡುವ ಹಾಗು ಸಂಪೂರ್ಣವಾಗಿ ಉಚಿತವಾಗಿದೆ. ಇತರೆ ರೆಸ್ಯೂಮ್ ನಿರ್ಮಾಪಕರಿಗಿಂತ ವಿಭಿನ್ನವಾಗಿ, ಇದು ಜಾಹೀರಾತುಗಳನ್ನು ತೋರಿಸುವುದಿಲ್ಲ, ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡುವುದಿಲ್ಲ, ಅಥವಾ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಪೇಯ್‌ವಾಲ್ ಹಿಂದೆ ಮಿತಿ ಮಾಡುವುದಿಲ್ಲ."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "ಅಕ್ಷರದ ಬಣ್ಣ"
msgid "Thai"
msgstr "ಥಾಯ್"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "ಏಜೆಂಟ್‌ಗೆ ನಿಮ್ಮ ಸಲಹೆಯ ಅಗತ್ಯವಿದೆ."
@@ -3991,4 +4017,3 @@ msgstr "ಗಾತ್ರ ಕುಗ್ಗಿಸಿ"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "ಜೂಲೂ"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ko\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -442,6 +442,10 @@ msgstr "이력서에 대해 궁금한 점이 있으면 무엇이든 물어보세
msgid "Aspect Ratio"
msgstr "가로세로 비율"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "파일 첨부"
@@ -653,6 +657,7 @@ msgstr "중국어(번체)"
msgid "Choose a model and resume draft."
msgstr "모델을 선택하고 이력서 초안을 작성하세요."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "사이드바에서 기존 대화를 선택하거나, 초안 작성에
msgid "Circle"
msgstr "원"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "숨기기"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "이력서의 모든 아이콘 숨기기"
msgid "Hide Icons"
msgstr "아이콘 숨기기"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "링크 밑줄 숨기기"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "이력서의 모든 아이콘 숨기기"
msgid "Hide password"
msgstr "비밀번호 숨기기"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "섹션 아이콘 숨기기"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "높음"
msgid "Highlight"
msgstr "형광펜"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "하이라이트 색상"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "힌디어"
@@ -2639,6 +2657,10 @@ msgstr "Reactive Resume는 무료 오픈 소스 소프트웨어입니다. 도움
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume는 오픈 소스, 개인정보 보호 중심, 완전 무료 서비스입니다. 다른 이력서 작성 도구와 달리 광고를 표시하지 않고, 데이터를 추적하지 않으며, 기능을 페이월 뒤에 숨기지도 않습니다."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "텍스트 색상"
msgid "Thai"
msgstr "태국어"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "상담원이 고객님의 입력을 필요로 합니다."
@@ -3991,4 +4017,3 @@ msgstr "축소"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "줄루어"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: lt\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\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"
@@ -442,6 +442,10 @@ msgstr "Klauskite bet ko apie šį gyvenimo aprašymą"
msgid "Aspect Ratio"
msgstr "Vaizdo santykis"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Pridėti failus"
@@ -653,6 +657,7 @@ msgstr "Kinų (tradicinė)"
msgid "Choose a model and resume draft."
msgstr "Pasirinkite modelį ir gyvenimo aprašymo juodraštį."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Šoninėje juostoje pasirinkite esamą pokalbį arba pradėkite naują,
msgid "Circle"
msgstr "Apskritimas"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Paslėpti"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Paslėpti visas ikonas gyvenimo aprašyme"
msgid "Hide Icons"
msgstr "Slėpti piktogramas"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Slėpti nuorodos pabraukimą"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Paslėpti visas ikonas gyvenimo aprašyme"
msgid "Hide password"
msgstr "Paslėpti slaptažodį"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Slėpti skyrių piktogramas"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Aukštas"
msgid "Highlight"
msgstr "Paryškinti"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Paryškinimo spalva"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Hindi"
@@ -2639,6 +2657,10 @@ msgstr "„Reactive Resume“ yra nemokamas ir atvirojo kodo. Jei jis jums padė
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "„Reactive Resume“ yra atvirojo kodo, orientuota į privatumą ir visiškai nemokama. Skirtingai nei kiti gyvenimo aprašymų kūrėjai, ji nerodo reklamų, nerenka jūsų duomenų ir neapriboja funkcijų už mokamos sienos."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Teksto spalva"
msgid "Thai"
msgstr "Tajų"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "Agentui reikia jūsų indėlio."
@@ -3991,4 +4017,3 @@ msgstr "Tolinti"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulų"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: lv\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\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"
@@ -442,6 +442,10 @@ msgstr "Jautājiet jebko par šo CV"
msgid "Aspect Ratio"
msgstr "Proporcijas"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Pievienot failus"
@@ -653,6 +657,7 @@ msgstr "Ķīniešu (tradicionālā)"
msgid "Choose a model and resume draft."
msgstr "Izvēlieties modeli un CV melnrakstu."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Sānjoslā izvēlieties esošu sarunu vai sāciet jaunu, uz melnrakstu o
msgid "Circle"
msgstr "Aplis"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Slēpt"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Paslēpt visas ikonas CV"
msgid "Hide Icons"
msgstr "Slēpt ikonas"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Slēpt saites pasvītrojumu"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Paslēpt visas ikonas CV"
msgid "Hide password"
msgstr "Paslēpt paroli"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Slēpt sadaļu ikonas"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Augsts"
msgid "Highlight"
msgstr "Izcelt"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Izcelt krāsu"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Hindi"
@@ -2639,6 +2657,10 @@ msgstr "Reactive CV ir bezmaksas un atvērtā koda resurss. Ja tas jums ir palī
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume ir atvērtā pirmkoda, uz privātumu vērsts un pilnīgi bezmaksas. Atšķirībā no citiem CV veidotājiem tas nerāda reklāmas, neizseko jūsu datus un neierobežo funkcijas ar maksas sienu."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Teksta krāsa"
msgid "Thai"
msgstr "Taju"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "Aģentam ir nepieciešama jūsu ieguldījums."
@@ -3991,4 +4017,3 @@ msgstr "Tālināt"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ml\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Malayalam\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -442,6 +442,10 @@ msgstr "ഈ റെസ്യൂമെയെക്കുറിച്ച് എന
msgid "Aspect Ratio"
msgstr "ആസ്പെക്ട് റേഷ്യോ"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "ഫയലുകൾ അറ്റാച്ചുചെയ്യുക"
@@ -653,6 +657,7 @@ msgstr "ചൈനീസ് (ട്രഡീഷണൽ)"
msgid "Choose a model and resume draft."
msgstr "ഒരു മോഡൽ തിരഞ്ഞെടുത്ത് ഡ്രാഫ്റ്റ് റെസ്യൂമെ ചെയ്യുക."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "സൈഡ്‌ബാറിൽ നിന്ന് നിലവിലു
msgid "Circle"
msgstr "വൃത്തം"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "മറയ്ക്കുക"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "റിസ്യൂമിലെ എല്ലാ ഐക്കണുകളും മറയ്ക്കുക"
msgid "Hide Icons"
msgstr "ഐക്കണുകൾ മറയ്ക്കുക"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "ലിങ്ക് അടിവര മറയ്ക്കുക"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "റിസ്യൂമിലെ എല്ലാ ഐക്കണുകള
msgid "Hide password"
msgstr "പാസ്‌വേഡ് മറയ്ക്കുക"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "വിഭാഗ ഐക്കണുകൾ മറയ്ക്കുക"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "ഉയർന്ന"
msgid "Highlight"
msgstr "ഹൈലൈറ്റ്"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "നിറം ഹൈലൈറ്റ് ചെയ്യുക"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "ഹിന്ദി"
@@ -2639,6 +2657,10 @@ msgstr "റിയാക്ടീവ് റെസ്യൂമെ സൌജന്
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume ഓപ്പൺ സോഴ്‌സും സ്വകാര്യത കേന്ദ്രീകൃതവുമായ, പൂർണ്ണമായും സൗജന്യമായൊരു ആപ്പാണ്. മറ്റ് റിസ്യൂം ബിൽഡറുകളെ അപേക്ഷിച്ച്, ഇത് പരസ്യങ്ങൾ കാണിക്കുകയോ, നിങ്ങളുടെ ഡാറ്റ ട്രാക്ക് ചെയ്യുകയോ, സവിശേഷതകൾ പേയ്വാളിന് പിന്നിൽ ഒതുക്കുകയോ ചെയ്യുന്നില്ല."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "ടെക്സ്റ്റ് നിറം"
msgid "Thai"
msgstr "തായ്"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "ഏജന്റിന് നിങ്ങളുടെ അഭിപ്രായം ആവശ്യമാണ്."
@@ -3991,4 +4017,3 @@ msgstr "സൂം ഔട്ട് ചെയ്യുക"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "സൂളു"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: mr\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Marathi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -442,6 +442,10 @@ msgstr "या रिझ्युमेबद्दल काहीही वि
msgid "Aspect Ratio"
msgstr "प्रसर गुणोत्तर"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "फाईल्स जोडा"
@@ -653,6 +657,7 @@ msgstr "चीनी (परंपरागत)"
msgid "Choose a model and resume draft."
msgstr "मॉडेल आणि रिझ्युमेचा मसुदा निवडा."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "साइडबारमधून आधीपासून सुरू
msgid "Circle"
msgstr "गोलाकार"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "लपवा"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "रेझ्युमेवरील सर्व आयकन्स लपवा"
msgid "Hide Icons"
msgstr "चिन्हे लपवा"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "लिंक लपवा"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "रेझ्युमेवरील सर्व आयकन्स ल
msgid "Hide password"
msgstr "पासवर्ड लपवा"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "विभाग चिन्हे लपवा"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "उच्च"
msgid "Highlight"
msgstr "हायलाइट"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "हायलाइट रंग"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "हिंदी"
@@ -2639,6 +2657,10 @@ msgstr "रिॲक्टिव्ह रिझ्युमे मोफत आ
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume हे मुक्त-स्रोत, गोपनीयता-केंद्रित आणि पूर्णपणे मोफत आहे. इतर रेझ्युमे बिल्डर्सप्रमाणेच नाही, हे जाहिराती दाखवत नाही, तुमचा डेटा ट्रॅक करत नाही किंवा फिचर्स पेवॉलच्या मागे मर्यादित करत नाही."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "मजकुराचा रंग"
msgid "Thai"
msgstr "थाई"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "एजंटला तुमच्या माहितीची आवश्यकता आहे."
@@ -3991,4 +4017,3 @@ msgstr "बाहेर झूम करा"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "झुलू"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ms\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Malay\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -442,6 +442,10 @@ msgstr "Tanya apa-apa sahaja tentang resume ini"
msgid "Aspect Ratio"
msgstr "Nisbah Aspek"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Lampirkan fail"
@@ -653,6 +657,7 @@ msgstr "Cina (Tradisional)"
msgid "Choose a model and resume draft."
msgstr "Pilih model dan draf resume."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Pilih perbualan sedia ada daripada bar sisi atau mulakan thread berfokus
msgid "Circle"
msgstr "Bulatan"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Sembunyi"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Sembunyikan semua ikon pada resume"
msgid "Hide Icons"
msgstr "Sembunyikan Ikon"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Sembunyikan Garis Bawah Pautan"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Sembunyikan semua ikon pada resume"
msgid "Hide password"
msgstr "Sembunyikan kata laluan"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Sembunyikan Ikon Bahagian"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Tinggi"
msgid "Highlight"
msgstr "Sorot"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Warna Serlahan"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Hindi"
@@ -2639,6 +2657,10 @@ msgstr "Resume Reaktif adalah percuma dan sumber terbuka. Jika ia telah membantu
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume ialah sumber terbuka, berfokuskan privasi dan benar-benar percuma. Tidak seperti pembina resume yang lain, ia tidak memaparkan iklan, menjejak data anda atau mengehadkan ciri di sebalik dinding bayaran."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Warna Teks"
msgid "Thai"
msgstr "Thai"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "Ejen memerlukan input anda."
@@ -3991,4 +4017,3 @@ msgstr "Zum keluar"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ne\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Nepali\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -442,6 +442,10 @@ msgstr "यो बायोडाटा बारे केहि सोध्
msgid "Aspect Ratio"
msgstr "आकार अनुपात (Aspect Ratio)"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "फाइलहरू संलग्न गर्नुहोस्"
@@ -653,6 +657,7 @@ msgstr "चिनियाँ (परम्परागत)"
msgid "Choose a model and resume draft."
msgstr "एउटा मोडेल छान्नुहोस् र मस्यौदा पुनः सुरु गर्नुहोस्।"
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "साइडबारबाट अवस्थित कुराका
msgid "Circle"
msgstr "वृत्त"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "ल्यুকाउनुहोस्"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "बायोडाटाबाट सबै आइकनहरू लुकाउनुहोस्"
msgid "Hide Icons"
msgstr "आइकनहरू लुकाउनुहोस्"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "लिङ्क अन्डरलाइन लुकाउनुहोस्"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "बायोडाटाबाट सबै आइकनहरू लु
msgid "Hide password"
msgstr "पासवर्ड लुकाउनुहोस्"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "खण्ड आइकनहरू लुकाउनुहोस्"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "उच्च"
msgid "Highlight"
msgstr "हाइलाइट"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "हाइलाइट रङ"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "हिन्दी"
@@ -2639,6 +2657,10 @@ msgstr "प्रतिक्रियाशील रिजुमे नि:श
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume खुला-स्रोत, गोपनीयता-केन्द्रित र पूर्ण रूपमा निःशुल्क छ। अन्य बायोडाटा निर्माण गर्ने साधनहरूको विपरीत, यसले विज्ञापन देखाउँदैन, तपाईंको डाटा ट्र्याक गर्दैन, वा सुविधालाई भुक्तानी पछाडि थुन्न्दैन।"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "पाठ रङ"
msgid "Thai"
msgstr "थाइ"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "एजेन्टलाई तपाईंको सुझाव चाहिन्छ।"
@@ -3991,4 +4017,3 @@ msgstr "जूम आउट"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "जुलु"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: nl\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -442,6 +442,10 @@ msgstr "Stel gerust al je vragen over dit cv."
msgid "Aspect Ratio"
msgstr "Beeldverhouding"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Voeg bestanden toe"
@@ -653,6 +657,7 @@ msgstr "Chinees (traditioneel)"
msgid "Choose a model and resume draft."
msgstr "Kies een model en stel een concept-cv op."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Kies een bestaand gesprek uit de zijbalk of start een nieuw discussieond
msgid "Circle"
msgstr "Cirkel"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Verbergen"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Alle pictogrammen op het cv verbergen"
msgid "Hide Icons"
msgstr "Pictogrammen verbergen"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Link onderstrepen verbergen"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Alle pictogrammen op het cv verbergen"
msgid "Hide password"
msgstr "Wachtwoord verbergen"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Sectiepictogrammen verbergen"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Hoog"
msgid "Highlight"
msgstr "Markeren"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Markeer de kleur"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Hindi"
@@ -2639,6 +2657,10 @@ msgstr "Reactive Resume is gratis en open source. Als het je geholpen heeft, ove
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume is open-source, privacygericht en volledig gratis. In tegenstelling tot andere cv-bouwers toont het geen advertenties, volgt het uw gegevens niet en beperkt het uw functies niet achter een betaalmuur."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Tekstkleur"
msgid "Thai"
msgstr "Thais"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "De agent heeft uw input nodig."
@@ -3991,4 +4017,3 @@ msgstr "Uitzoomen"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: no\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -442,6 +442,10 @@ msgstr "Spør om hva som helst om denne CV-en"
msgid "Aspect Ratio"
msgstr "Størrelsesforhold"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Legg ved filer"
@@ -653,6 +657,7 @@ msgstr "Kinesisk (tradisjonell)"
msgid "Choose a model and resume draft."
msgstr "Velg en modell og et utkast til CV."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Velg en eksisterende samtale fra sidefeltet, eller start en ny utkastfok
msgid "Circle"
msgstr "Sirkel"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Skjul"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Skjul alle ikoner på CV-en"
msgid "Hide Icons"
msgstr "Skjul ikoner"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Skjul lenkeunderstrek"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Skjul alle ikoner på CV-en"
msgid "Hide password"
msgstr "Skjul passord"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Skjul seksjonsikoner"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Høy"
msgid "Highlight"
msgstr "Fremhev"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Uthevingsfarge"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Hindi"
@@ -2639,6 +2657,10 @@ msgstr "Reactive Resume er gratis og har åpen kildekode. Hvis det har hjulpet d
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume er åpen kildekode, personvernfokusert og helt gratis. I motsetning til andre CV-byggere viser den ikke annonser, sporer ikke dataene dine og begrenser ikke funksjoner bak en betalingsmur."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Tekstfarge"
msgid "Thai"
msgstr "Thai"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "Agenten trenger din innspill."
@@ -3991,4 +4017,3 @@ msgstr "Zoom ut"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: or\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Odia\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -442,6 +442,10 @@ msgstr "ଏହି ରିଜ୍ୟୁମ୍ ବିଷୟରେ କିଛି ବ
msgid "Aspect Ratio"
msgstr "ଆସ୍ପେକ୍ଟ ଅନୁପାତ"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "ଫାଇଲ୍ ସଂଲଗ୍ନ କରନ୍ତୁ"
@@ -653,6 +657,7 @@ msgstr "ଚାଇନିଜ୍ (ପାରମ୍ପରିକ)"
msgid "Choose a model and resume draft."
msgstr "ଏକ ମଡେଲ୍ ବାଛନ୍ତୁ ଏବଂ ଡ୍ରାଫ୍ଟ ପୁଣି ଆରମ୍ଭ କରନ୍ତୁ।"
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "ସାଇଡବାରରୁ ଏକ ପୂର୍ବରୁ ଥିବା
msgid "Circle"
msgstr "ବୃତ୍ତ"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "ଲୁଚାନ୍ତୁ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "ରେଜ୍ୟୁମେର ସମସ୍ତ ଆଇକନ୍ ଲୁଚାନ୍ତୁ"
msgid "Hide Icons"
msgstr "ଚିତ୍ରସଂକେତଗୁଡିକୁ ଲୁଚାନ୍ତୁ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "ଲିଙ୍କ ଅଣ୍ଡରଲାଇନ୍ ଲୁଚାନ୍ତୁ"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "ରେଜ୍ୟୁମେର ସମସ୍ତ ଆଇକନ୍ ଲୁଚା
msgid "Hide password"
msgstr "ପାସୱାର୍ଡ ଲୁଚାନ୍ତୁ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "ବିଭାଗ ଆଇକନଗୁଡ଼ିକୁ ଲୁଚାନ୍ତୁ"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "ଉଚ୍ଚ"
msgid "Highlight"
msgstr "ହାଇଲାଇଟ୍"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "ହାଇଲାଇଟ୍ ରଙ୍ଗ"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "ହିନ୍ଦୀ"
@@ -2639,6 +2657,10 @@ msgstr "ପ୍ରତିକ୍ରିୟାଶୀଳ ରିଜ୍ୟୁମ୍ ମ
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume ଖୋଲା‑ମୂଳ, ଗୋପନୀୟତା‑କେନ୍ଦ୍ରିତ ଏବଂ ସଂପୂର୍ଣ୍ଣ ଭାବରେ ନିଶୁଳ୍କ। ଅନ୍ୟ ରେଜ୍ୟୁମେ ବିଲ୍ଡରଗୁଡିକ ଭଳି ଏହା ବିଜ୍ଞାପନ ଦେଖାଏ ନାହିଁ, ଆପଣଙ୍କ ତଥ୍ୟକୁ ଟ୍ରାକ୍ କରେ ନାହିଁ, କିମ୍ବା ପେୱାଲ୍ ପଛରେ ବିଶେଷତାଗୁଡିକୁ ଆଟକାଇ ରଖେ ନାହିଁ।"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "ପାଠ୍ୟ ରଙ୍ଗ"
msgid "Thai"
msgstr "ଥାଇ"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "ଏଜେଣ୍ଟଙ୍କୁ ଆପଣଙ୍କ ମତାମତ ଆବଶ୍ୟକ।"
@@ -3991,4 +4017,3 @@ msgstr "ଜୁମ୍ ଆଉଟ୍ କରନ୍ତୁ"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "ଜୁଲୁ"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: pl\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\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"
@@ -442,6 +442,10 @@ msgstr "Zapytaj o wszystko na temat tego CV"
msgid "Aspect Ratio"
msgstr "Proporcje obrazu"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Dołącz pliki"
@@ -653,6 +657,7 @@ msgstr "Chiński (tradycyjny)"
msgid "Choose a model and resume draft."
msgstr "Wybierz model i szkic CV."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Wybierz istniejącą konwersację z paska bocznego lub rozpocznij nowy w
msgid "Circle"
msgstr "Koło"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Ukryj"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Ukryj wszystkie ikony w CV"
msgid "Hide Icons"
msgstr "Ukryj ikony"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Ukryj podkreślenie linku"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Ukryj wszystkie ikony w CV"
msgid "Hide password"
msgstr "Proszę ukryć hasło"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Ukryj ikony sekcji"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Wysoki"
msgid "Highlight"
msgstr "Zakreślenie"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Podświetl kolor"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Hindi"
@@ -2639,6 +2657,10 @@ msgstr "Reactive Resume jest darmowy i ma otwarte oprogramowanie. Jeśli Ci pomo
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume jest open-source, skupione na prywatności i całkowicie darmowe. W przeciwieństwie do innych kreatorów CV nie wyświetla reklam, nie śledzi Twoich danych ani nie ukrywa funkcji za paywallem."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Kolor tekstu"
msgid "Thai"
msgstr "Tajski"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "Agent potrzebuje Twojej opinii."
@@ -3991,4 +4017,3 @@ msgstr "Pomniejsz"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: pt\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Portuguese, Brazilian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -442,6 +442,10 @@ msgstr "Pergunte qualquer coisa sobre este currículo."
msgid "Aspect Ratio"
msgstr "Proporção da imagem"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Anexar arquivos"
@@ -653,6 +657,7 @@ msgstr "Chinês (Tradicional)"
msgid "Choose a model and resume draft."
msgstr "Escolha um modelo e um rascunho de currículo."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Escolha uma conversa existente na barra lateral ou inicie uma nova discu
msgid "Circle"
msgstr "Círculo"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Ocultar"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Ocultar todos os ícones no currículo"
msgid "Hide Icons"
msgstr "Ocultar ícones"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Ocultar link sublinhado"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Ocultar todos os ícones no currículo"
msgid "Hide password"
msgstr "Ocultar senha"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Ocultar ícones de seção"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Alta"
msgid "Highlight"
msgstr "Realce"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Cor de destaque"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Hindi"
@@ -2639,6 +2657,10 @@ msgstr "O Reactive Resume é gratuito e de código aberto. Se ele lhe foi útil,
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "O Reactive Resume é de código aberto, focado em privacidade e completamente gratuito. Ao contrário de outros criadores de currículos, ele não exibe anúncios, não rastreia seus dados e não limita recursos atrás de um paywall."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Cor do texto"
msgid "Thai"
msgstr "Tailandês"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "O agente precisa da sua opinião."
@@ -3991,4 +4017,3 @@ msgstr "Diminuir zoom"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: pt\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Portuguese\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -442,6 +442,10 @@ msgstr "Pergunte qualquer coisa sobre este currículo."
msgid "Aspect Ratio"
msgstr "Proporção"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Anexar ficheiros"
@@ -653,6 +657,7 @@ msgstr "Chinês (tradicional)"
msgid "Choose a model and resume draft."
msgstr "Escolha um modelo e um esboço de currículo."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Escolha uma conversa existente na barra lateral ou inicie uma nova discu
msgid "Circle"
msgstr "Círculo"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Ocultar"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Ocultar todos os ícones no currículo"
msgid "Hide Icons"
msgstr "Ocultar ícones"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Ocultar link sublinhado"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Ocultar todos os ícones no currículo"
msgid "Hide password"
msgstr "Ocultar palavra-passe"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Ocultar ícones de secção"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Elevado"
msgid "Highlight"
msgstr "Realce"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Cor de destaque"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Hindi"
@@ -2639,6 +2657,10 @@ msgstr "O Reactive Resume é gratuito e de código aberto. Se ele lhe foi útil,
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "O Reactive Resume é de código aberto, focado na privacidade e completamente gratuito. Ao contrário de outros criadores de currículos, não mostra anúncios, não rastreia os seus dados nem limita funcionalidades atrás de um paywall."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Cor do texto"
msgid "Thai"
msgstr "Tailandês"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "O agente precisa da sua opinião."
@@ -3991,4 +4017,3 @@ msgstr "Afastar"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ro\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:31\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"
@@ -442,6 +442,10 @@ msgstr "Întreabă orice despre acest CV"
msgid "Aspect Ratio"
msgstr "Raport de aspect"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Atașați fișiere"
@@ -653,6 +657,7 @@ msgstr "Chineză (tradițională)"
msgid "Choose a model and resume draft."
msgstr "Alegeți un model și o schiță de CV."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Alege o conversație existentă din bara laterală sau începe un nou fi
msgid "Circle"
msgstr "Cerc"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Ascunde"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Ascunde toate iconițele de pe CV"
msgid "Hide Icons"
msgstr "Ascunde pictogramele"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Ascunde sublinierea linkului"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Ascunde toate iconițele de pe CV"
msgid "Hide password"
msgstr "Ascundeți parola"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Ascundeți pictogramele secțiunii"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Înaltă"
msgid "Highlight"
msgstr "Evidențiere"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Culoare evidențiere"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Hindi"
@@ -2639,6 +2657,10 @@ msgstr "Reactive Resume este gratuit și open source. Dacă te-a ajutat, te rug
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume este open-source, axat pe confidențialitate și complet gratuit. Spre deosebire de alți constructori de CV-uri, nu afișează reclame, nu vă urmărește datele și nu limitează funcționalitățile în spatele unui paywall."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Culoare text"
msgid "Thai"
msgstr "Thailandeză"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "Agentul are nevoie de contribuția dumneavoastră."
@@ -3991,4 +4017,3 @@ msgstr "Micșorează"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ru\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\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"
@@ -442,6 +442,10 @@ msgstr "Задайте любой вопрос по поводу этого ре
msgid "Aspect Ratio"
msgstr "Соотношение сторон"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Прикрепить файлы"
@@ -653,6 +657,7 @@ msgstr "Китайский (традиционный)"
msgid "Choose a model and resume draft."
msgstr "Выберите образец и черновик резюме."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Выберите существующую беседу на боково
msgid "Circle"
msgstr "Круг"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Скрыть"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Скрыть все иконки в резюме"
msgid "Hide Icons"
msgstr "Скрыть значки"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Скрыть подчеркивание ссылки"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Скрыть все иконки в резюме"
msgid "Hide password"
msgstr "Скрыть пароль"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Скрыть значки разделов"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Высокий"
msgid "Highlight"
msgstr "Подсветка"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Цвет выделения"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Хинди"
@@ -2639,6 +2657,10 @@ msgstr "Reactive Resume — бесплатный проект с открыты
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume — это проект с открытым исходным кодом, ориентированный на конфиденциальность и полностью бесплатный. В отличие от других конструкторов резюме, он не показывает рекламу, не отслеживает ваши данные и не ограничивает функции платной подпиской."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Цвет текста"
msgid "Thai"
msgstr "Тайский"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "Агенту необходима ваша помощь."
@@ -3991,4 +4017,3 @@ msgstr "Уменьшить"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Зулу"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: sk\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Slovak\n"
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
@@ -442,6 +442,10 @@ msgstr "Opýtajte sa na čokoľvek ohľadom tohto životopisu"
msgid "Aspect Ratio"
msgstr "Pomer strán"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Priložiť súbory"
@@ -653,6 +657,7 @@ msgstr "Čínština (tradičná)"
msgid "Choose a model and resume draft."
msgstr "Vyberte si model a návrh životopisu."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Vyberte existujúcu konverzáciu z bočného panela alebo začnite nové
msgid "Circle"
msgstr "Kruh"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Skryť"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Skryť všetky ikony v životopise"
msgid "Hide Icons"
msgstr "Skryť ikony"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Skryť podčiarknutie odkazu"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Skryť všetky ikony v životopise"
msgid "Hide password"
msgstr "Skryť heslo"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Skryť ikony sekcií"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Vysoká"
msgid "Highlight"
msgstr "Zvýraznenie"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Farba zvýraznenia"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Hindčina"
@@ -2639,6 +2657,10 @@ msgstr "Reactive Resume je bezplatný a má otvorený zdrojový kód. Ak vám po
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume je open‑source, zamerané na súkromie a úplne zadarmo. Na rozdiel od iných nástrojov na tvorbu životopisov nezobrazuje reklamy, nesleduje tvoje dáta a neuzamyká funkcie za paywallom."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Farba textu"
msgid "Thai"
msgstr "Thajčina"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "Agent potrebuje váš názor."
@@ -3991,4 +4017,3 @@ msgstr "Oddialiť"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: sl\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\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"
@@ -442,6 +442,10 @@ msgstr "Vprašajte karkoli o tem življenjepisu"
msgid "Aspect Ratio"
msgstr "Razmerje stranic"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Priložite datoteke"
@@ -653,6 +657,7 @@ msgstr "Kitajščina (tradicionalna)"
msgid "Choose a model and resume draft."
msgstr "Izberite model in osnutek življenjepisa."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "V stranski vrstici izberite obstoječi pogovor ali začnite novo nit, os
msgid "Circle"
msgstr "Krog"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Skrij"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Skrij vse ikone na življenjepisu"
msgid "Hide Icons"
msgstr "Skrij ikone"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Skrij podčrtano povezavo"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Skrij vse ikone na življenjepisu"
msgid "Hide password"
msgstr "Skrijte geslo"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Skrij ikone razdelkov"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Visoka"
msgid "Highlight"
msgstr "Označi"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Barva označevanja"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Hindujščina"
@@ -2639,6 +2657,10 @@ msgstr "Reactive Resume je brezplačen in odprtokoden. Če vam je pomagal, prosi
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume je odprtokoden, osredotočen na zasebnost in popolnoma brezplačen. Za razliko od drugih graditeljev življenjepisov ne prikazuje oglasov, ne sledi vašim podatkom in ne omejuje funkcij z zidovi plačila."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Barva besedila"
msgid "Thai"
msgstr "tajščina"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "Agent potrebuje vaše mnenje."
@@ -3991,4 +4017,3 @@ msgstr "Oddalji"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zuluščina"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: sq\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Albanian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -442,6 +442,10 @@ msgstr "Pyetni për çdo gjë në lidhje me këtë CV"
msgid "Aspect Ratio"
msgstr "Proporcioni"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Bashkëngjit skedarë"
@@ -653,6 +657,7 @@ msgstr "Kinezçe (Tradicionale)"
msgid "Choose a model and resume draft."
msgstr "Zgjidhni një model dhe rifilloni draftin."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Zgjidh një bisedë ekzistuese nga shiriti anësor ose fillo një temë
msgid "Circle"
msgstr "Rreth"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Fshih"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Fshih të gjitha ikonat në CV"
msgid "Hide Icons"
msgstr "Fshih ikonat"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Fshih nënvizimin e lidhjes"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Fshih të gjitha ikonat në CV"
msgid "Hide password"
msgstr "Fshi fjalëkalimin"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Fshih ikonat e seksionit"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "I lartë"
msgid "Highlight"
msgstr "Thekso"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Ngjyra e theksimit"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Indisht (Hindi)"
@@ -2639,6 +2657,10 @@ msgstr "Reactive CV është falas dhe me kod të hapur. Nëse ju ka ndihmuar, ju
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume është me burim të hapur, i përqendruar te privatësia dhe krejtësisht falas. Ndryshe nga ndërtuesit e tjerë të CV-ve, nuk shfaq reklama, nuk gjurmon të dhënat tuaja dhe nuk i kufizon veçoritë pas një muri pagese."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Ngjyra e tekstit"
msgid "Thai"
msgstr "Tajlandisht"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "Agjenti ka nevojë për kontributin tuaj."
@@ -3991,4 +4017,3 @@ msgstr "Zvogëlo"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: sr\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\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"
@@ -442,6 +442,10 @@ msgstr "Питајте било шта о овом животопису"
msgid "Aspect Ratio"
msgstr "Однос стране"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Приложи датотеке"
@@ -653,6 +657,7 @@ msgstr "Кинески (традиционални)"
msgid "Choose a model and resume draft."
msgstr "Изаберите модел и нацртајте животопис."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Изаберите постојећи разговор са бочне
msgid "Circle"
msgstr "Круг"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Сакриј"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Сакриј све иконице на резимеу"
msgid "Hide Icons"
msgstr "Сакриј иконе"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Сакриј подвучену везу"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Сакриј све иконице на резимеу"
msgid "Hide password"
msgstr "Сакриј лозинку"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Сакриј иконе одељака"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Високо"
msgid "Highlight"
msgstr "Истакни"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Боја истицања"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Хинди"
@@ -2639,6 +2657,10 @@ msgstr "Реактивни резиме је бесплатан и отворе
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Реактивни Резиме је отвореног кода, усмерен на приватност и потпуно бесплатан. За разлику од других алата за креирање резимеа, не приказује огласе, не прати ваше податке и не ограничава функције иза платног зида."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Боја текста"
msgid "Thai"
msgstr "Тајландски"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "Агенту је потребан ваш допринос."
@@ -3991,4 +4017,3 @@ msgstr "Умањи"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Зулу"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: sv\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -442,6 +442,10 @@ msgstr "Fråga vad som helst om detta CV"
msgid "Aspect Ratio"
msgstr "Bildförhållande"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Bifoga filer"
@@ -653,6 +657,7 @@ msgstr "Kinesiska (traditionell)"
msgid "Choose a model and resume draft."
msgstr "Välj en modell och ett utkast till CV."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Välj en befintlig konversation från sidofältet eller starta en ny utk
msgid "Circle"
msgstr "Cirkel"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Dölj"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Dölj alla ikoner på CV:t"
msgid "Hide Icons"
msgstr "Dölj ikoner"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Dölj länkunderstrykning"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Dölj alla ikoner på CV:t"
msgid "Hide password"
msgstr "Dölj lösenord"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Dölj sektionsikoner"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Hög"
msgid "Highlight"
msgstr "Markera"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Markeringsfärg"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Hindi"
@@ -2639,6 +2657,10 @@ msgstr "Reactive Resume är gratis och har öppen källkod. Om det har hjälpt d
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume har en öppen källkod, är integritetsfokuserat och helt gratis. Till skillnad från andra CV-byggare visas inga annonser, spårar dig inte och gömmer inte funktioner bakom en betalvägg."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Textfärg"
msgid "Thai"
msgstr "Thailändska"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "Agenten behöver din input."
@@ -3991,4 +4017,3 @@ msgstr "Zooma ut"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ta\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Tamil\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -442,6 +442,10 @@ msgstr "இந்த சுயவிவரம் பற்றி எதையு
msgid "Aspect Ratio"
msgstr "ஒப்புத்திணைவு விகிதம்"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "கோப்புகளை இணைக்கவும்"
@@ -653,6 +657,7 @@ msgstr "சீனம் (சம்பிரதாய)"
msgid "Choose a model and resume draft."
msgstr "ஒரு மாதிரியையும் சுயவிவர வரைவையும் தேர்வு செய்யவும்."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "பக்கப் பட்டியில் இருந்து ஏ
msgid "Circle"
msgstr "வட்டம்"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "மறை"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "ரெஸ்யூமியில் உள்ள அனைத்து ஐகான்களையும் மறைக்கவும்"
msgid "Hide Icons"
msgstr "சின்னங்களை மறைக்கவும்"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "இணைப்பு அடிக்கோட்டை மறைக்கவும்"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "ரெஸ்யூமியில் உள்ள அனைத்து
msgid "Hide password"
msgstr "கடவுச்சொல்லை மறை"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "பிரிவு சின்னங்களை மறைக்கவும்"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "உயர்"
msgid "Highlight"
msgstr "ஹைலைட்"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "ஹைலைட் நிறம்"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "ஹிந்தி"
@@ -2639,6 +2657,10 @@ msgstr "ரியாக்டிவ் ரெஸ்யூம் இலவசம
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume திறந்த மூலமாகவும், தனியுரிமை மீது கவனம் செலுத்தியதாகவும், முற்றிலும் இலவசமாகவும் உள்ளது. மற்ற ரெஸ்யூம் பில்டர்களைப் போல் இது விளம்பரங்களை காட்டாது, உங்கள் தரவை கண்காணிக்காது, அல்லது அம்சங்களை கட்டண சுவருக்கு பின்னால் பூட்டாது."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "எழுத்து நிறம்"
msgid "Thai"
msgstr "தாய்"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "முகவருக்கு உங்கள் கருத்து தேவைப்படுகிறது."
@@ -3991,4 +4017,3 @@ msgstr "சிறிதாக்கு"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "ஜூலு"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: te\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Telugu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -442,6 +442,10 @@ msgstr "ఈ రెజ్యూమె గురించి ఏమైనా అ
msgid "Aspect Ratio"
msgstr "కారక నిష్పత్తి"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "ఫైళ్లను జతచేయండి"
@@ -653,6 +657,7 @@ msgstr "చైనీస్ (సాంప్రదాయ)"
msgid "Choose a model and resume draft."
msgstr "ఒక నమూనా మరియు రెజ్యూమె ముసాయిదాను ఎంచుకోండి."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "సైడ్‌బార్ నుండి ఇప్పటికే ఉ
msgid "Circle"
msgstr "వృత్తం"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "హైడ్"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "జీవన చరిత్రపై అన్ని చిహ్నాలను దాచండి"
msgid "Hide Icons"
msgstr "చిహ్నాలను దాచండి"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "లింక్ అండర్‌లైన్‌ను దాచండి"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "జీవన చరిత్రపై అన్ని చిహ్నా
msgid "Hide password"
msgstr "పాస్‌వర్డ్ దాచు"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "విభాగం చిహ్నాలను దాచండి"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "అధిక"
msgid "Highlight"
msgstr "హైలైట్"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "హైలైట్ రంగు"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "హిందీ"
@@ -2639,6 +2657,10 @@ msgstr "రియాక్టివ్ రెజ్యూమ్ ఉచితం
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume ఓపెన్‌సోర్స్‌, గోప్యతపై దృష్టి సారించినది మరియు పూర్తిగా ఉచితం. ఇతర జీవన చరిత్ర తయారీదార్ల వలె ప్రకటనలను చూపించదు, మీ డేటాను ట్రాక్ చేయదు, లేదా ఫీచర్లను వాలుతో పరిమితం చేయదు."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "టెక్స్ట్ కలర్"
msgid "Thai"
msgstr "థాయ్"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "ఏజెంట్‌కు మీ సమాచారం అవసరం."
@@ -3991,4 +4017,3 @@ msgstr "జూమ్ అవుట్ చేయండి"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "జులు"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: th\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -442,6 +442,10 @@ msgstr "สอบถามอะไรก็ได้เกี่ยวกับ
msgid "Aspect Ratio"
msgstr "อัตราส่วนภาพ"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "แนบไฟล์"
@@ -653,6 +657,7 @@ msgstr "จีน (ตัวเต็ม)"
msgid "Choose a model and resume draft."
msgstr "เลือกแบบและร่างประวัติย่อ"
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "เลือกบทสนทนาที่มีอยู่แล้
msgid "Circle"
msgstr "วงกลม"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "ซ่อน"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "ซ่อนไอคอนทั้งหมดในเรซูเม่"
msgid "Hide Icons"
msgstr "ซ่อนไอคอน"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "ซ่อนเส้นขีดใต้ลิงก์"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "ซ่อนไอคอนทั้งหมดในเรซูเม
msgid "Hide password"
msgstr "ซ่อนรหัสผ่าน"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "ซ่อนไอคอนส่วนต่างๆ"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "สูง"
msgid "Highlight"
msgstr "ไฮไลต์"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "สีไฮไลท์"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "ฮินดี"
@@ -2639,6 +2657,10 @@ msgstr "Reactive Resume เป็นซอฟต์แวร์ฟรีแล
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume เป็นโอเพ่นซอร์ส เน้นความเป็นส่วนตัว และฟรีอย่างสมบูรณ์ แตกต่างจากเครื่องมือสร้างเรซูเม่อื่น ๆ ไม่มีโฆษณา ไม่ติดตามข้อมูลของคุณ หรือจำกัดฟีเจอร์หลังระบบจ่ายเงิน"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "สีตัวอักษร"
msgid "Thai"
msgstr "ไทย"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "ตัวแทนต้องการข้อมูลจากคุณ"
@@ -3991,4 +4017,3 @@ msgstr "ซูมออก"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "ซูลู"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: tr\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -442,6 +442,10 @@ msgstr "Bu özgeçmişle ilgili her şeyi sorabilirsiniz."
msgid "Aspect Ratio"
msgstr "En/Boy Oranı"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Dosyaları ekleyin"
@@ -653,6 +657,7 @@ msgstr "Çince (Geleneksel)"
msgid "Choose a model and resume draft."
msgstr "Bir model ve özgeçmiş taslağı seçin."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Yan menüden mevcut bir konuşmayı seçin veya taslak odaklı yeni bir
msgid "Circle"
msgstr "Daire"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Gizle"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Özgeçmişteki tüm simgeleri gizle"
msgid "Hide Icons"
msgstr "Simgeleri Gizle"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Bağlantının altını çizili kısmını gizle"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Özgeçmişteki tüm simgeleri gizle"
msgid "Hide password"
msgstr "Şifreyi gizle"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Bölüm Simgelerini Gizle"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Yüksek"
msgid "Highlight"
msgstr "Vurgula"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Vurgu Rengi"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Hintçe"
@@ -2639,6 +2657,10 @@ msgstr "Reactive Resume ücretsiz ve açık kaynaklıdır. Eğer size yardımcı
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Özgeçmiş açık kaynaklı, gizliliğe önem veren ve tamamen ücretsizdir. Diğer özgeçmiş oluşturuculardan farklı olarak reklam göstermez, verilerinizi takip etmez veya özelliklerinizi bir ödeme duvarının arkasına gizlemez."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Metin Rengi"
msgid "Thai"
msgstr "Tayca"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "Temsilcinin sizin görüşünüze ihtiyacı var."
@@ -3991,4 +4017,3 @@ msgstr "Uzaklaştır"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: uk\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\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"
@@ -442,6 +442,10 @@ msgstr "Запитайте що завгодно щодо цього резюм
msgid "Aspect Ratio"
msgstr "Пропорції"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Додати файли"
@@ -653,6 +657,7 @@ msgstr "Китайська (традиційна)"
msgid "Choose a model and resume draft."
msgstr "Виберіть модель та чернетку резюме."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Виберіть існуючу розмову на бічній пан
msgid "Circle"
msgstr "Кругле"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Приховати"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Сховати всі іконки на резюме"
msgid "Hide Icons"
msgstr "Приховати значки"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Приховати посилання Підкреслення"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Сховати всі іконки на резюме"
msgid "Hide password"
msgstr "Приховати пароль"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Приховати значки розділів"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Високий"
msgid "Highlight"
msgstr "Виділити"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Колір виділення"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Гінді"
@@ -2639,6 +2657,10 @@ msgstr "Reactive Resume — безкоштовний ресурс з відкр
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume є open-source, орієнтована на приватність і повністю безкоштовна. На відміну від інших редакторів резюме, вона не показує рекламу, не відстежує ваші дані і не обмежує функції за оплатою."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Колір тексту"
msgid "Thai"
msgstr "Тайська"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "Агенту потрібна ваша думка."
@@ -3991,4 +4017,3 @@ msgstr "Зменшити"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Зулу"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: uz\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Uzbek\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -442,6 +442,10 @@ msgstr "Ushbu rezyume haqida biron narsa so'rang"
msgid "Aspect Ratio"
msgstr "Tomonlar nisbati"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Fayllarni biriktirish"
@@ -653,6 +657,7 @@ msgstr "Xitoy (An’anaviy)"
msgid "Choose a model and resume draft."
msgstr "Modelni tanlang va qoralamani rezyume qiling."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Yon paneldan mavjud suhbatni tanlang yoki qoralamaga yo'naltirilgan yang
msgid "Circle"
msgstr "Doira"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Yashirish"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Rezumedagi barcha ikonkalarni yashirish"
msgid "Hide Icons"
msgstr "Belgilarni yashirish"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Havola ostiga chizilgan chiziqni yashirish"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Rezumedagi barcha ikonkalarni yashirish"
msgid "Hide password"
msgstr "Parolni yashirish"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Bo'lim piktogrammalarini yashirish"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Yuqori"
msgid "Highlight"
msgstr "Ajratib ko‘rsatish"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Belgilash rangi"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Hind tili"
@@ -2639,6 +2657,10 @@ msgstr "Reactive Resume bepul va ochiq kodli. Agar u sizga yordam bergan bo'lsa,
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume ochiq manbali, maxfiylikka yo'naltirilgan va butunlay bepul. Boshqa rezume tuzuvchilardan farqli o'laroq, u reklamalarni ko'rsatmaydi, ma'lumotlaringizni kuzatmaydi yoki funksiyalarni to'lov devori ortida cheklamaydi."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Matn rangi"
msgid "Thai"
msgstr "Tay tili"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "Agent sizning fikringizni bilishi kerak."
@@ -3991,4 +4017,3 @@ msgstr "Kichraytirish"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: vi\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -442,6 +442,10 @@ msgstr "Hãy hỏi bất cứ điều gì về sơ yếu lý lịch này."
msgid "Aspect Ratio"
msgstr "Tỷ lệ khung hình"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "Đính kèm tệp"
@@ -653,6 +657,7 @@ msgstr "Tiếng Trung (Phồn thể)"
msgid "Choose a model and resume draft."
msgstr "Chọn một mẫu và soạn thảo bản nháp sơ yếu lý lịch."
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "Chọn một cuộc hội thoại hiện có từ thanh bên hoặc bắ
msgid "Circle"
msgstr "Vòng tròn"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "Ẩn đi"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "Ẩn tất cả biểu tượng trên hồ sơ"
msgid "Hide Icons"
msgstr "Ẩn biểu tượng"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "Ẩn gạch chân liên kết"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "Ẩn tất cả biểu tượng trên hồ sơ"
msgid "Hide password"
msgstr "Ẩn mật khẩu"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "Ẩn biểu tượng phần"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "Cao"
msgid "Highlight"
msgstr "Làm nổi bật"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "Màu nổi bật"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "Tiếng Hindi"
@@ -2639,6 +2657,10 @@ msgstr "Reactive Resume là phần mềm mã nguồn mở miễn phí. Nếu th
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Resume Phản Ứng là mã nguồn mở, tập trung vào quyền riêng tư và hoàn toàn miễn phí. Khác với các trình tạo hồ sơ khác, nó không hiển thị quảng cáo, không theo dõi dữ liệu của bạn, và không giới hạn tính năng đằng sau tường phí."
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "Màu chữ"
msgid "Thai"
msgstr "Thái"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "Nhân viên cần thông tin đầu vào từ bạn."
@@ -3991,4 +4017,3 @@ msgstr "Thu nhỏ"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+32 -7
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: zh\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-05 21:35\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -442,6 +442,10 @@ msgstr "关于这份简历,有什么想问的吗?"
msgid "Aspect Ratio"
msgstr "宽高比"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "附加文件"
@@ -653,6 +657,7 @@ msgstr "中文(繁体)"
msgid "Choose a model and resume draft."
msgstr "选择一款简历模板并撰写简历草稿。"
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "从侧边栏选择现有对话,或发起新的以草稿为中心的讨
msgid "Circle"
msgstr "圆形"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1112,7 +1118,7 @@ msgstr "Discord 频道"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "解雇"
msgstr "忽略"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
@@ -1125,7 +1131,7 @@ msgstr "没有账户?<0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "捐"
msgstr "捐赠"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "隐藏"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "在简历中隐藏所有图标"
msgid "Hide Icons"
msgstr "隐藏图标"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "隐藏链接下划线"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "在简历中隐藏所有图标"
msgid "Hide password"
msgstr "隐藏密码"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "隐藏版块图标"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "高"
msgid "Highlight"
msgstr "高亮"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "高亮颜色"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "印地语"
@@ -2633,12 +2651,16 @@ msgstr "Reactive Resume 是一款免费开源的简历生成器,可简化创
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume 是免费开源的。如果它对您有所帮助,请考虑捐赠。"
msgstr "Reactive Resume 是一个免授权费并且代码开源的项目。如果它对您有所帮助,可向我们捐赠以变得更好。"
#: src/routes/_home/-sections/faq.tsx
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume 是开源、注重隐私且完全免费的。与其他简历生成器不同,它不会展示广告、跟踪你的数据,也不会把功能锁在付费墙后面。"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "文本颜色"
msgid "Thai"
msgstr "泰语"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "经纪人需要您的意见。"
@@ -3991,4 +4017,3 @@ msgstr "缩小"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "祖鲁语"
+29 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: zh\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-05-27 21:53\n"
"PO-Revision-Date: 2026-06-01 13:32\n"
"Last-Translator: \n"
"Language-Team: Chinese Traditional\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -442,6 +442,10 @@ msgstr "關於這份履歷,有什麼想問的嗎?"
msgid "Aspect Ratio"
msgstr "顯示比例"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr "附加文件"
@@ -653,6 +657,7 @@ msgstr "中文(繁體)"
msgid "Choose a model and resume draft."
msgstr "選擇一款履歷表範本並撰寫履歷草稿。"
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -670,6 +675,7 @@ msgstr "從側邊欄選擇現有對話,或發起新的以草稿為中心的討
msgid "Circle"
msgstr "圓形"
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1745,8 +1751,12 @@ msgid "Hide"
msgstr "隱藏"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgstr "隱藏履歷中的所有圖示"
msgid "Hide Icons"
msgstr "隱藏圖示"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr "隱藏連結下劃線"
#. Accessible label for button that hides password in registration form
#. Accessible label for button that hides password in reset-password form
@@ -1766,6 +1776,10 @@ msgstr "隱藏履歷中的所有圖示"
msgid "Hide password"
msgstr "隱藏密碼"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr "隱藏版塊圖標"
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1775,6 +1789,10 @@ msgstr "高"
msgid "Highlight"
msgstr "螢光標記"
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr "高亮顏色"
#: src/libs/locale.ts
msgid "Hindi"
msgstr "印地語"
@@ -2639,6 +2657,10 @@ msgstr "Reactive Resume 是免費開源的。如果它對您有所幫助,請
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr "Reactive Resume 是開放原始碼、重視隱私且完全免費的工具。與其他履歷建立工具不同,它不會顯示廣告、不追蹤您的資料,也不會把功能鎖在付費牆後面。"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3305,6 +3327,10 @@ msgstr "字型色彩"
msgid "Thai"
msgstr "泰文"
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr "經紀人需要您的意見。"
@@ -3991,4 +4017,3 @@ msgstr "縮小"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "祖魯語"
+27 -1
View File
@@ -437,6 +437,10 @@ msgstr ""
msgid "Aspect Ratio"
msgstr ""
#: src/routes/_home/-sections/sponsors.tsx
msgid "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
msgstr "Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the project, email <0>{sponsorshipEmail}</0>."
#: src/routes/agent/$threadId.tsx
msgid "Attach files"
msgstr ""
@@ -648,6 +652,7 @@ msgstr ""
msgid "Choose a model and resume draft."
msgstr ""
#. Preset or custom shade refer to the color picker
#. Preset or custom shade refer to the color picker
#: src/components/input/rich-input.tsx
msgid "Choose a preset or custom shade."
@@ -665,6 +670,7 @@ msgstr ""
msgid "Circle"
msgstr ""
#. Clear the highlight color
#. Clear the text color
#: src/components/input/rich-input.tsx
msgid "Clear"
@@ -1740,7 +1746,11 @@ msgid "Hide"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide all icons on the resume"
msgid "Hide Icons"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Link Underline"
msgstr ""
#. Accessible label for button that hides password in registration form
@@ -1761,6 +1771,10 @@ msgstr ""
msgid "Hide password"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Hide Section Icons"
msgstr ""
#. Impact severity label in resume analysis suggestion card
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "High"
@@ -1770,6 +1784,10 @@ msgstr ""
msgid "Highlight"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Highlight Color"
msgstr ""
#: src/libs/locale.ts
msgid "Hindi"
msgstr ""
@@ -2634,6 +2652,10 @@ msgstr ""
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
msgstr ""
#: src/routes/_home/-sections/sponsors.tsx
msgid "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
msgstr "Reactive Resume stays free, open-source, and independent because companies choose to support the work behind it. Their sponsorship helps fund hosting, maintenance, and continued development for the community."
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v{__APP_VERSION__}"
@@ -3300,6 +3322,10 @@ msgstr ""
msgid "Thai"
msgstr ""
#: src/routes/_home/-sections/sponsors.tsx
msgid "Thank you to our sponsors"
msgstr "Thank you to our sponsors"
#: src/routes/agent/$threadId.tsx
msgid "The agent needs your input."
msgstr ""
+42 -41
View File
@@ -4,7 +4,7 @@
"type": "module",
"private": true,
"scripts": {
"build": "rm -rf dist && vite build",
"build": "rimraf dist && vite build",
"dev": "vite dev",
"serve": "vite preview",
"start": "vite preview",
@@ -16,20 +16,20 @@
"lingui:extract": "lingui extract --clean --overwrite"
},
"dependencies": {
"@ai-sdk/react": "^3.0.193",
"@ai-sdk/react": "^3.0.209",
"@base-ui/react": "^1.5.0",
"@better-auth/api-key": "^1.6.11",
"@better-auth/infra": "^0.2.10",
"@better-auth/oauth-provider": "^1.6.11",
"@better-auth/passkey": "^1.6.11",
"@better-auth/api-key": "^1.6.19",
"@better-auth/infra": "^0.2.14",
"@better-auth/oauth-provider": "^1.6.19",
"@better-auth/passkey": "^1.6.19",
"@dnd-kit/core": "^6.3.1",
"@dnd-kit/sortable": "^10.0.0",
"@dnd-kit/utilities": "^3.2.2",
"@lingui/core": "^6.1.0",
"@lingui/react": "^6.1.0",
"@orpc/client": "^1.14.3",
"@orpc/server": "^1.14.3",
"@orpc/tanstack-query": "^1.14.3",
"@lingui/core": "^6.4.0",
"@lingui/react": "^6.4.0",
"@orpc/client": "^1.14.6",
"@orpc/server": "^1.14.6",
"@orpc/tanstack-query": "^1.14.6",
"@phosphor-icons/react": "^2.1.10",
"@react-pdf/renderer": "^4.5.1",
"@reactive-resume/ai": "workspace:*",
@@ -42,36 +42,36 @@
"@reactive-resume/schema": "workspace:*",
"@reactive-resume/ui": "workspace:*",
"@reactive-resume/utils": "workspace:*",
"@tailwindcss/vite": "^4.3.0",
"@tanstack/react-form": "^1.32.1",
"@tailwindcss/vite": "^4.3.1",
"@tanstack/react-form": "^1.33.0",
"@tanstack/react-hotkeys": "^0.10.0",
"@tanstack/react-query": "^5.100.14",
"@tanstack/react-router": "^1.170.8",
"@tiptap/extension-color": "^3.23.6",
"@tiptap/extension-highlight": "^3.23.6",
"@tiptap/extension-table": "^3.23.6",
"@tiptap/extension-text-align": "^3.23.6",
"@tiptap/extension-text-style": "^3.23.6",
"@tiptap/pm": "^3.23.6",
"@tiptap/react": "^3.23.6",
"@tiptap/starter-kit": "^3.23.6",
"@tanstack/react-query": "^5.101.0",
"@tanstack/react-router": "^1.170.16",
"@tiptap/extension-color": "^3.27.0",
"@tiptap/extension-highlight": "^3.27.0",
"@tiptap/extension-table": "^3.27.0",
"@tiptap/extension-text-align": "^3.27.0",
"@tiptap/extension-text-style": "^3.27.0",
"@tiptap/pm": "^3.27.0",
"@tiptap/react": "^3.27.0",
"@tiptap/starter-kit": "^3.27.0",
"@types/js-cookie": "^3.0.6",
"@uiw/color-convert": "^2.10.3",
"@uiw/react-color-colorful": "^2.10.3",
"ai": "^6.0.191",
"better-auth": "1.6.11",
"ai": "^6.0.207",
"better-auth": "1.6.19",
"cmdk": "^1.1.1",
"drizzle-orm": "1.0.0-rc.3",
"es-toolkit": "^1.47.0",
"fuse.js": "^7.3.0",
"es-toolkit": "^1.47.1",
"fuse.js": "^7.4.2",
"immer": "^11.1.8",
"js-cookie": "^3.0.7",
"js-cookie": "^3.0.8",
"motion": "^12.40.0",
"pdfjs-dist": "5.7.284",
"pdfjs-dist": "6.0.227",
"pg": "^8.21.0",
"qrcode.react": "^4.2.0",
"react": "^19.2.6",
"react-dom": "^19.2.6",
"react": "^19.2.7",
"react-dom": "^19.2.7",
"react-markdown": "^10.1.0",
"react-resizable-panels": "^4.11.2",
"react-window": "^2.2.7",
@@ -80,26 +80,27 @@
"ts-pattern": "^5.9.0",
"usehooks-ts": "^3.1.1",
"zod": "^4.4.3",
"zustand": "^5.0.13"
"zustand": "^5.0.14"
},
"devDependencies": {
"@babel/core": "^7.29.7",
"@lingui/babel-plugin-lingui-macro": "^6.1.0",
"@lingui/cli": "^6.1.0",
"@lingui/format-po": "^6.1.0",
"@lingui/vite-plugin": "^6.1.0",
"@babel/core": "^8.0.0",
"@lingui/babel-plugin-lingui-macro": "^6.4.0",
"@lingui/cli": "^6.4.0",
"@lingui/format-po": "^6.4.0",
"@lingui/vite-plugin": "^6.4.0",
"@reactive-resume/config": "workspace:*",
"@rolldown/plugin-babel": "^0.2.3",
"@tanstack/router-plugin": "^1.168.11",
"@tanstack/router-plugin": "^1.168.18",
"@types/babel__core": "^7.20.5",
"@types/pg": "^8.20.0",
"@types/react": "^19.2.15",
"@types/react": "^19.2.17",
"@types/react-dom": "^19.2.3",
"@typescript/native-preview": "7.0.0-dev.20260527.1",
"@typescript/native-preview": "7.0.0-dev.20260617.2",
"@vitejs/plugin-react": "^6.0.2",
"babel-plugin-macros": "^3.1.0",
"babel-plugin-react-compiler": "^1.0.0",
"typescript": "^6.0.3",
"vite": "^8.0.14"
"rimraf": "^6.1.3",
"vite": "^8.0.16"
}
}
+1
View File
@@ -1,4 +1,5 @@
<svg width="256" height="256" viewBox="0 0 256 256" fill="none" xmlns="http://www.w3.org/2000/svg">
<title>Reactive Resume</title>
<path fill-rule="evenodd" clip-rule="evenodd" d="M173.611 166.311L132.877 219.804H173.524L193.973 191.813L213.183 219.804H256L215.673 165.707L215.15 165.046L207.461 155.332L195.329 140.004L195.258 139.915L193.813 138.089L193.923 138.001L176.286 112.861H134.061L173.611 166.311ZM199.89 133.554L214.959 112.861H254.619L219.874 158.8L199.89 133.554Z" fill="#FAFAFA"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 36.1959V174.314H39.0678V137.614H60.3938L60.4323 137.671C60.8436 137.653 61.2517 137.634 61.6567 137.614C75.0665 136.968 85.1471 135.549 96.385 131.385C96.7596 131.246 97.1355 131.104 97.5128 130.959L97.4591 130.881C105.816 126.86 112.331 121.344 117.006 114.331C122.005 106.702 124.504 97.6915 124.504 87.2997C124.504 76.7764 122.005 67.7 117.006 60.0706C112.007 52.3097 104.904 46.3903 95.6964 42.3125C86.62 38.2347 75.7679 36.1959 63.1399 36.1959H0ZM102.156 137.725L64.8705 144.175L85.4361 174.314H127.266L102.156 137.725ZM39.0678 107.426H60.7721C68.9277 107.426 74.9786 105.65 78.9248 102.098C83.0026 98.5465 85.0415 93.6137 85.0415 87.2997C85.0415 80.8542 83.0026 75.8556 78.9248 72.304C74.9786 68.7523 68.9277 66.9765 60.7721 66.9765H39.0678V107.426Z" fill="#FAFAFA"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

+1
View File
@@ -1,4 +1,5 @@
<svg width="256" height="256" viewBox="0 0 256 256" fill="none" xmlns="http://www.w3.org/2000/svg">
<title>Reactive Resume</title>
<path fill-rule="evenodd" clip-rule="evenodd" d="M173.611 166.311L132.877 219.804H173.524L193.973 191.813L213.183 219.804H256L215.673 165.707L215.15 165.046L207.461 155.332L195.329 140.004L195.258 139.915L193.813 138.089L193.923 138.001L176.286 112.861H134.061L173.611 166.311ZM199.89 133.554L214.959 112.861H254.619L219.874 158.8L199.89 133.554Z" fill="#FAFAFA"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 36.1959V174.314H39.0678V137.614H60.3938L60.4323 137.671C60.8436 137.653 61.2517 137.634 61.6567 137.614C75.0665 136.968 85.1471 135.549 96.385 131.385C96.7596 131.246 97.1355 131.104 97.5128 130.959L97.4591 130.881C105.816 126.86 112.331 121.344 117.006 114.331C122.005 106.702 124.504 97.6915 124.504 87.2997C124.504 76.7764 122.005 67.7 117.006 60.0706C112.007 52.3097 104.904 46.3903 95.6964 42.3125C86.62 38.2347 75.7679 36.1959 63.1399 36.1959H0ZM102.156 137.725L64.8705 144.175L85.4361 174.314H127.266L102.156 137.725ZM39.0678 107.426H60.7721C68.9277 107.426 74.9786 105.65 78.9248 102.098C83.0026 98.5465 85.0415 93.6137 85.0415 87.2997C85.0415 80.8542 83.0026 75.8556 78.9248 72.304C74.9786 68.7523 68.9277 66.9765 60.7721 66.9765H39.0678V107.426Z" fill="#FAFAFA"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

+1
View File
@@ -1,4 +1,5 @@
<svg width="256" height="256" viewBox="0 0 256 256" fill="none" xmlns="http://www.w3.org/2000/svg">
<title>Reactive Resume</title>
<path fill-rule="evenodd" clip-rule="evenodd" d="M173.611 166.311L132.877 219.804H173.524L193.973 191.813L213.183 219.804H256L215.673 165.707L215.15 165.046L207.461 155.332L195.329 140.004L195.258 139.915L193.813 138.089L193.923 138.001L176.286 112.861H134.061L173.611 166.311ZM199.89 133.554L214.959 112.861H254.619L219.874 158.8L199.89 133.554Z" fill="#09090B"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 36.1959V174.314H39.0678V137.614H60.3938L60.4323 137.671C60.8436 137.653 61.2518 137.634 61.6569 137.614C75.0665 136.968 85.1471 135.549 96.3849 131.385C96.7596 131.246 97.1355 131.104 97.5128 130.959L97.4591 130.881C105.816 126.86 112.331 121.344 117.006 114.331C122.005 106.702 124.504 97.6915 124.504 87.2997C124.504 76.7764 122.005 67.7 117.006 60.0706C112.007 52.3097 104.904 46.3903 95.6964 42.3125C86.62 38.2347 75.7678 36.1959 63.1399 36.1959H0ZM102.156 137.725L64.8705 144.175L85.4361 174.314H127.266L102.156 137.725ZM39.0678 107.426H60.7721C68.9277 107.426 74.9786 105.65 78.9248 102.098C83.0026 98.5465 85.0415 93.6137 85.0415 87.2997C85.0415 80.8542 83.0026 75.8556 78.9248 72.304C74.9786 68.7523 68.9277 66.9765 60.7721 66.9765H39.0678V107.426Z" fill="#09090B"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

+1
View File
@@ -1,4 +1,5 @@
<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
<title>Reactive Resume</title>
<rect width="512" height="512" fill="#09090B"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M183.603 184.722L156.74 220H183.545L197.032 201.54L209.701 220H237.938L211.008 183.874L211.014 183.866L210.81 183.608L205.927 177.44L197.895 167.292L197.882 167.31L197.669 167.007L196.926 166.068L196.98 166.025L185.367 149.472H157.52L183.603 184.722ZM200.951 163.096L214.129 179.747L237.027 149.472H210.872L200.951 163.096Z" fill="#FAFAFA"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M69.1088 98.9125V190H94.8735V165.797H108.938L108.938 165.797C108.943 165.797 108.948 165.797 108.953 165.797C118.377 165.381 125.285 164.448 133.094 161.494C133.195 161.455 133.296 161.417 133.397 161.378L133.382 161.356C138.893 158.705 143.19 155.066 146.273 150.442C149.569 145.41 151.218 139.468 151.218 132.615C151.218 125.675 149.569 119.689 146.273 114.658C142.976 109.539 138.292 105.636 132.219 102.946C126.234 100.257 119.077 98.9125 110.749 98.9125H69.1088ZM136.456 165.836L111.867 170.09L125.453 190H153.039L136.456 165.836ZM94.8735 145.888H109.187C114.566 145.888 118.556 144.716 121.159 142.374C123.848 140.032 125.193 136.779 125.193 132.615C125.193 128.364 123.848 125.068 121.159 122.725C118.556 120.383 114.566 119.212 109.187 119.212H94.8735V145.888Z" fill="#FAFAFA"/>

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

@@ -0,0 +1,55 @@
<svg role="img" aria-labelledby="atlas-cloud-logo-title" id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1224 792">
<title id="atlas-cloud-logo-title">Atlas Cloud</title>
<defs>
<style>
.cls-1 {
clip-path: url(#clippath);
}
.cls-2 {
fill: none;
}
.cls-2, .cls-3 {
stroke-width: 0px;
}
.cls-4 {
clip-path: url(#clippath-1);
}
.cls-5 {
clip-path: url(#clippath-2);
}
.cls-3 {
fill: #000;
}
</style>
<clipPath id="clippath">
<rect class="cls-2" x="20.73" y="315.14" width="1182.55" height="161.72"/>
</clipPath>
<clipPath id="clippath-1">
<rect class="cls-2" x="20.73" y="315.14" width="1182.55" height="161.72"/>
</clipPath>
<clipPath id="clippath-2">
<rect class="cls-2" x="20.73" y="315.14" width="1182.55" height="161.72"/>
</clipPath>
</defs>
<g class="cls-1">
<path class="cls-3" d="M104.38,315.14L20.73,476.86c38.73-15.32,70.03-17.6,98.12-16.26l-12.85-28.4c-5.63-.57-21.86-.57-29.57,1.45l27.95-62.14s42.06,91.31,42.13,91.32c8.09,1.27,29.8,8.55,41.52,14.03l-83.66-161.72Z"/>
</g>
<polygon class="cls-3" points="207.87 323.37 207.87 361.57 189.68 361.57 189.68 381.76 207.87 381.76 207.87 471.35 234.07 471.35 234.07 381.76 252.87 381.76 252.87 361.57 234.07 361.57 234.07 323.37 207.87 323.37"/>
<rect class="cls-3" x="268.07" y="323.37" width="26.19" height="147.98"/>
<g class="cls-4">
<path class="cls-3" d="M340.48,416.95c0,13.6,9.79,33.39,33.39,33.39,14.6,0,24.2-7.6,29.2-17.59,2.6-4.8,3.8-10,4.2-15.4.2-5.2-.8-10.6-3-15.4-4.6-10.4-14.8-19.4-30.6-19.4-21.2,0-33.19,17.2-33.19,34.19v.2ZM433.26,471.35h-26.19v-15.8c-7,12.8-21.6,19.2-36.99,19.2-35.2,0-55.8-27.4-55.8-58.4,0-34.6,25-58.19,55.8-58.19,20,0,32.19,10.6,36.99,19.4v-16h26.19v109.78Z"/>
<path class="cls-3" d="M506.87,391.16c-.2-5.8-3.2-11.8-13.4-11.8-8.8,0-12.99,5.6-12.99,11,.2,7,8.2,10.79,18.6,13.8,17.6,4.8,36.6,10,36.8,33.59.4,22.6-18.6,36.99-41.59,36.99-17,0-40-8.8-41.99-35.39h26.19c1,11.8,11.2,14.2,16.2,14.2,8.2,0,15.2-5.4,15-12.8,0-9.4-8.2-12-28.4-18.99-14.8-4.6-26.79-12.8-26.99-28.6,0-21.6,18.19-35,39.39-35,14.8,0,36.8,6.6,39,33h-25.8Z"/>
<path class="cls-3" d="M760.26,421.76c-9,30.59-37.8,52.39-72.39,52.39-45.19,0-77.59-35.8-77.59-76.99s30.59-76.58,77.39-76.58c42.59.2,66.79,31.59,72.59,53.19h-31.4c-4.6-10.19-17.8-26.79-41.39-26.99-28.8,0-47.39,24.2-47.39,50.39s19.4,50.79,47.6,50.79c26.39,0,38.39-20.8,41.19-26.19h31.4Z"/>
</g>
<rect class="cls-3" x="779.68" y="323.37" width="26.19" height="147.98"/>
<g class="cls-5">
<path class="cls-3" d="M852.09,416.56c0,19.2,14.59,33.39,32.59,33.39s32.4-14.2,32.4-33.6-14.4-33.59-32.4-33.59-32.59,14.2-32.59,33.59v.2ZM825.89,416.15c0-28,20.6-57.79,58.79-57.79s58.79,29.79,58.79,57.99-20.59,58.19-58.79,58.19-58.79-29.79-58.79-58.19v-.2Z"/>
<path class="cls-3" d="M1064.87,471.35h-24.6v-14.6c-4.6,8.6-14.4,18.2-34.19,18-36-.2-42.79-27.6-42.79-46.8v-66.39h26.19v59.79c0,16.2,5.4,28.99,23.99,28.8,18.8,0,25.2-12.4,25.2-28v-60.59h26.2v109.78Z"/>
<path class="cls-3" d="M1111.28,416.35c0,18.6,13.4,33.8,33.59,33.8,9.6,0,18.2-3.8,24.4-10,6.2-6.2,9.8-14.8,9.39-24.4,0-9.6-3.8-17.8-9.8-23.6-6-6-14.39-9.6-23.79-9.6-21.4,0-33.8,16.4-33.8,33.59v.2ZM1203.27,471.35h-25v-15.8c-4.8,8.2-15.2,19.2-37.6,19.2-33.79,0-55.59-26.4-55.59-58.4,0-35.59,25.4-58.19,55.19-58.19,21,0,32.8,11.19,36.8,17.59v-52.39h26.2v147.98Z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

@@ -0,0 +1,55 @@
<svg role="img" aria-labelledby="atlas-cloud-logo-title" id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1224 792">
<title id="atlas-cloud-logo-title">Atlas Cloud</title>
<defs>
<style>
.cls-1 {
clip-path: url(#clippath);
}
.cls-2 {
fill: none;
}
.cls-2, .cls-3 {
stroke-width: 0px;
}
.cls-4 {
clip-path: url(#clippath-1);
}
.cls-5 {
clip-path: url(#clippath-2);
}
.cls-3 {
fill: #fff;
}
</style>
<clipPath id="clippath">
<rect class="cls-2" x="20.73" y="315.14" width="1182.55" height="161.72"/>
</clipPath>
<clipPath id="clippath-1">
<rect class="cls-2" x="20.73" y="315.14" width="1182.55" height="161.72"/>
</clipPath>
<clipPath id="clippath-2">
<rect class="cls-2" x="20.73" y="315.14" width="1182.55" height="161.72"/>
</clipPath>
</defs>
<g class="cls-1">
<path class="cls-3" d="M104.38,315.14L20.73,476.86c38.73-15.32,70.03-17.6,98.12-16.26l-12.85-28.4c-5.63-.57-21.86-.57-29.57,1.45l27.95-62.14s42.06,91.31,42.13,91.32c8.09,1.27,29.8,8.55,41.52,14.03l-83.66-161.72Z"/>
</g>
<polygon class="cls-3" points="207.87 323.37 207.87 361.57 189.68 361.57 189.68 381.76 207.87 381.76 207.87 471.35 234.07 471.35 234.07 381.76 252.87 381.76 252.87 361.57 234.07 361.57 234.07 323.37 207.87 323.37"/>
<rect class="cls-3" x="268.07" y="323.37" width="26.19" height="147.98"/>
<g class="cls-4">
<path class="cls-3" d="M340.48,416.95c0,13.6,9.79,33.39,33.39,33.39,14.6,0,24.2-7.6,29.2-17.59,2.6-4.8,3.8-10,4.2-15.4.2-5.2-.8-10.6-3-15.4-4.6-10.4-14.8-19.4-30.6-19.4-21.2,0-33.19,17.2-33.19,34.19v.2ZM433.26,471.35h-26.19v-15.8c-7,12.8-21.6,19.2-36.99,19.2-35.2,0-55.8-27.4-55.8-58.4,0-34.6,25-58.19,55.8-58.19,20,0,32.19,10.6,36.99,19.4v-16h26.19v109.78Z"/>
<path class="cls-3" d="M506.87,391.16c-.2-5.8-3.2-11.8-13.4-11.8-8.8,0-12.99,5.6-12.99,11,.2,7,8.2,10.79,18.6,13.8,17.6,4.8,36.6,10,36.8,33.59.4,22.6-18.6,36.99-41.59,36.99-17,0-40-8.8-41.99-35.39h26.19c1,11.8,11.2,14.2,16.2,14.2,8.2,0,15.2-5.4,15-12.8,0-9.4-8.2-12-28.4-18.99-14.8-4.6-26.79-12.8-26.99-28.6,0-21.6,18.19-35,39.39-35,14.8,0,36.8,6.6,39,33h-25.8Z"/>
<path class="cls-3" d="M760.26,421.76c-9,30.59-37.8,52.39-72.39,52.39-45.19,0-77.59-35.8-77.59-76.99s30.59-76.58,77.39-76.58c42.59.2,66.79,31.59,72.59,53.19h-31.4c-4.6-10.19-17.8-26.79-41.39-26.99-28.8,0-47.39,24.2-47.39,50.39s19.4,50.79,47.6,50.79c26.39,0,38.39-20.8,41.19-26.19h31.4Z"/>
</g>
<rect class="cls-3" x="779.68" y="323.37" width="26.19" height="147.98"/>
<g class="cls-5">
<path class="cls-3" d="M852.09,416.56c0,19.2,14.59,33.39,32.59,33.39s32.4-14.2,32.4-33.6-14.4-33.59-32.4-33.59-32.59,14.2-32.59,33.59v.2ZM825.89,416.15c0-28,20.6-57.79,58.79-57.79s58.79,29.79,58.79,57.99-20.59,58.19-58.79,58.19-58.79-29.79-58.79-58.19v-.2Z"/>
<path class="cls-3" d="M1064.87,471.35h-24.6v-14.6c-4.6,8.6-14.4,18.2-34.19,18-36-.2-42.79-27.6-42.79-46.8v-66.39h26.19v59.79c0,16.2,5.4,28.99,23.99,28.8,18.8,0,25.2-12.4,25.2-28v-60.59h26.2v109.78Z"/>
<path class="cls-3" d="M1111.28,416.35c0,18.6,13.4,33.8,33.59,33.8,9.6,0,18.2-3.8,24.4-10,6.2-6.2,9.8-14.8,9.39-24.4,0-9.6-3.8-17.8-9.8-23.6-6-6-14.39-9.6-23.79-9.6-21.4,0-33.8,16.4-33.8,33.59v.2ZM1203.27,471.35h-25v-15.8c-4.8,8.2-15.2,19.2-37.6,19.2-33.79,0-55.59-26.4-55.59-58.4,0-35.59,25.4-58.19,55.19-58.19,21,0,32.8,11.19,36.8,17.59v-52.39h26.2v147.98Z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

@@ -0,0 +1,18 @@
import { describe, expect, it } from "vitest";
import { resolveHighlightToolbarState } from "./rich-input";
describe("resolveHighlightToolbarState", () => {
it("shows legacy colorless highlights as default yellow and clearable", () => {
expect(resolveHighlightToolbarState(true, null)).toEqual({
visibleHighlightColor: "rgba(255, 255, 0, 1)",
canClearHighlight: true,
});
});
it("does not show or clear a highlight when no highlight mark is active", () => {
expect(resolveHighlightToolbarState(false, null)).toEqual({
visibleHighlightColor: undefined,
canClearHighlight: false,
});
});
});
+85 -14
View File
@@ -62,12 +62,14 @@ import {
} from "@reactive-resume/ui/components/dropdown-menu";
import { PopoverHeader, PopoverTitle, PopoverTrigger } from "@reactive-resume/ui/components/popover";
import { Toggle } from "@reactive-resume/ui/components/toggle";
import { isDarkColor } from "@reactive-resume/utils/color";
import { cn } from "@reactive-resume/utils/style";
import { usePrompt } from "@/hooks/use-prompt";
import { isRTL } from "@/libs/locale";
import { ColorPicker } from "./color-picker";
const defaultTextColor = "rgba(0, 0, 0, 1)";
const defaultHighlightColor = "rgba(255, 255, 0, 1)";
const extensions = [
StarterKit.configure({
@@ -86,7 +88,15 @@ const extensions = [
}),
TextStyle,
Color,
Highlight.configure(),
Highlight.configure({ multicolor: true }).extend({
renderHTML({ HTMLAttributes }) {
const color = HTMLAttributes["data-color"] as string | undefined;
if (color && isDarkColor(color)) {
HTMLAttributes.style = `${HTMLAttributes.style ?? ""}; color: #ffffff`;
}
return ["mark", HTMLAttributes, 0];
},
}),
TextAlign.configure({ types: ["heading", "paragraph", "listItem"] }),
TableKit.configure(),
];
@@ -223,10 +233,12 @@ function useEditorToolbarState(editor: Editor) {
canStrike: ctx.editor.can().chain().toggleStrike().run() ?? false,
toggleStrike: () => ctx.editor.chain().focus().toggleStrike().run(),
// Highlight
// Highlight Color
isHighlight: ctx.editor.isActive("highlight") ?? false,
canHighlight: ctx.editor.can().chain().toggleHighlight().run() ?? false,
toggleHighlight: () => ctx.editor.chain().focus().toggleHighlight().run(),
highlightColor: (ctx.editor.getAttributes("highlight").color as string | undefined) ?? null,
canHighlightColor: ctx.editor.can().chain().toggleHighlight().run() ?? false,
setHighlightColor: (color: string) => ctx.editor.chain().focus().toggleHighlight({ color }).run(),
unsetHighlightColor: () => ctx.editor.chain().focus().unsetHighlight().run(),
// Text Color
textColor: (ctx.editor.getAttributes("textStyle").color as string | undefined) ?? null,
@@ -372,6 +384,12 @@ function useEditorToolbarState(editor: Editor) {
type EditorToolbarState = ReturnType<typeof useEditorToolbarState>;
export function resolveHighlightToolbarState(isHighlight: boolean, highlightColor: string | null) {
const visibleHighlightColor = highlightColor ?? (isHighlight ? defaultHighlightColor : undefined);
return { visibleHighlightColor, canClearHighlight: isHighlight };
}
type EditorToolbarProps = {
editor: Editor;
isFullscreen: boolean;
@@ -384,6 +402,11 @@ function EditorToolbar({ editor, isFullscreen }: EditorToolbarProps) {
}
function renderEditorToolbar(state: EditorToolbarState, isFullscreen: boolean) {
const { visibleHighlightColor, canClearHighlight } = resolveHighlightToolbarState(
state.isHighlight,
state.highlightColor,
);
return (
<div className="flex flex-wrap items-center gap-y-0.5 rounded-md rounded-b-none border border-b-0">
<Toggle
@@ -434,17 +457,65 @@ function renderEditorToolbar(state: EditorToolbarState, isFullscreen: boolean) {
<TextStrikethroughIcon className="size-3.5" />
</Toggle>
<Toggle
size={isFullscreen ? "lg" : "sm"}
tabIndex={-1}
className="rounded-none"
title={t`Highlight`}
pressed={state.isHighlight}
disabled={!state.canHighlight}
onPressedChange={state.toggleHighlight}
<ColorPicker
defaultValue={defaultHighlightColor}
value={visibleHighlightColor}
onChange={state.setHighlightColor}
trigger={
<PopoverTrigger
render={
<Button
size={isFullscreen ? "lg" : "sm"}
tabIndex={-1}
variant="ghost"
className={cn("rounded-none px-2", state.isHighlight && "bg-muted text-foreground")}
title={t`Highlight`}
disabled={!state.canHighlightColor}
>
<span className="flex flex-col items-center leading-none">
<HighlighterCircleIcon className="size-3.5" />
<span
className="mt-0.5 h-0.5 w-3 rounded-full"
style={{ backgroundColor: visibleHighlightColor ?? "currentColor" }}
/>
</span>
</Button>
}
/>
}
>
<HighlighterCircleIcon className="size-3.5" />
</Toggle>
<PopoverHeader className="flex-row items-start justify-between gap-2">
<div className="flex items-center gap-2.5">
<span
className="grid size-9 place-items-center rounded-lg border border-border bg-muted/60 text-sm shadow-xs"
style={{ backgroundColor: visibleHighlightColor ?? defaultHighlightColor }}
>
<HighlighterCircleIcon className="size-4" />
</span>
<div className="flex flex-col gap-0.5">
<PopoverTitle>
<Trans>Highlight Color</Trans>
</PopoverTitle>
<span className="text-muted-foreground text-xs">
<Trans comment="Preset or custom shade refer to the color picker">
Choose a preset or custom shade.
</Trans>
</span>
</div>
</div>
<Button
size="xs"
variant="ghost"
className="shrink-0"
onClick={state.unsetHighlightColor}
disabled={!canClearHighlight}
>
<Trans comment="Clear the highlight color">Clear</Trans>
</Button>
</PopoverHeader>
</ColorPicker>
<ColorPicker
defaultValue={defaultTextColor}
@@ -71,6 +71,21 @@ describe("LevelDisplay", () => {
expect(wrapper.getAttribute("aria-label")).toContain("4");
});
it("applies custom decoration and icon sizes in pixels", () => {
const { container } = render(
<LevelDisplay type="circle" icon="star" level={2} decorationSizePx={18} iconSizePx={20} />,
);
const shapes = container.querySelectorAll("div[data-active]");
expect(shapes[0]).toHaveStyle({ width: "18px", height: "18px" });
const { container: iconContainer } = render(
<LevelDisplay type="icon" icon="star" level={2} decorationSizePx={16} />,
);
const icon = iconContainer.querySelector("i");
expect(icon).toHaveStyle({ fontSize: "16px", width: "16px", height: "16px" });
});
it("merges extra className into the wrapper", () => {
const { container } = render(<LevelDisplay type="circle" icon="star" level={1} className="extra" />);
const wrapper = container.firstChild as HTMLElement;
+36 -5
View File
@@ -3,14 +3,35 @@ import type z from "zod";
import { t } from "@lingui/core/macro";
import { cn } from "@reactive-resume/utils/style";
type Props = z.infer<typeof levelDesignSchema> & React.ComponentProps<"div"> & { level: number };
type Props = z.infer<typeof levelDesignSchema> &
React.ComponentProps<"div"> & {
level: number;
decorationSizePx?: number | undefined;
iconSizePx?: number | undefined;
};
const LEVEL_ITEM_KEYS = ["level-1", "level-2", "level-3", "level-4", "level-5"] as const;
export function LevelDisplay({ icon, type, level, className, ...props }: Props) {
const defaultDecorationClassName = "size-2.5";
export function LevelDisplay({ icon, type, level, className, decorationSizePx, iconSizePx, ...props }: Props) {
if (level === 0) return null;
if (type === "hidden" || icon === "") return null;
const decorationStyle =
decorationSizePx === undefined
? undefined
: ({ width: decorationSizePx, height: decorationSizePx } satisfies React.CSSProperties);
const resolvedIconSizePx = iconSizePx ?? decorationSizePx;
const iconStyle =
resolvedIconSizePx === undefined
? undefined
: ({
fontSize: resolvedIconSizePx,
width: resolvedIconSizePx,
height: resolvedIconSizePx,
} satisfies React.CSSProperties);
return (
<div
role="img"
@@ -29,8 +50,10 @@ export function LevelDisplay({ icon, type, level, className, ...props }: Props)
<div
key={itemKey}
data-active={isActive}
style={decorationStyle}
className={cn(
"h-2.5 flex-1 border border-(--page-primary-color) border-x-0 first:border-l last:border-r",
"flex-1 border border-(--page-primary-color) border-x-0 first:border-l last:border-r",
decorationSizePx === undefined && "h-2.5",
isActive && "bg-(--page-primary-color)",
)}
/>
@@ -41,7 +64,13 @@ export function LevelDisplay({ icon, type, level, className, ...props }: Props)
return (
<i
key={itemKey}
className={cn("ph size-2.5 text-(--page-primary-color)", `ph-${icon}`, !isActive && "opacity-40")}
style={iconStyle}
className={cn(
"ph text-(--page-primary-color)",
resolvedIconSizePx === undefined && defaultDecorationClassName,
`ph-${icon}`,
!isActive && "opacity-40",
)}
/>
);
}
@@ -50,8 +79,10 @@ export function LevelDisplay({ icon, type, level, className, ...props }: Props)
<div
key={itemKey}
data-active={isActive}
style={decorationStyle}
className={cn(
"size-2.5 border border-(--page-primary-color)",
"border border-(--page-primary-color)",
decorationSizePx === undefined && defaultDecorationClassName,
isActive && "bg-(--page-primary-color)",
type === "circle" && "rounded-full",
type === "rectangle" && "w-7",
@@ -0,0 +1,35 @@
import { readFileSync } from "node:fs";
import { describe, expect, it } from "vitest";
const source = readFileSync(new URL("./custom.tsx", import.meta.url), "utf8");
function rendererBody(name: string) {
const start = source.indexOf(`render: function ${name}({ form }) {`);
expect(start).toBeGreaterThanOrEqual(0);
const end =
name === "CreateCustomSectionFormRenderer" ? source.indexOf("const UpdateCustomSectionForm", start) : source.length;
expect(end).toBeGreaterThan(start);
return source.slice(start, end);
}
describe("custom section dialog layout", () => {
it.each([
"CreateCustomSectionFormRenderer",
"UpdateCustomSectionFormRenderer",
])("renders icon and title in one row for %s", (name) => {
const body = rendererBody(name);
const rowIndex = body.indexOf('"flex items-end sm:col-span-full"');
const iconIndex = body.indexOf('name="icon"', rowIndex);
const titleIndex = body.indexOf('name="title"', rowIndex);
const sectionTypeIndex = body.indexOf('name="type"', rowIndex);
expect(rowIndex).toBeGreaterThanOrEqual(0);
expect(iconIndex).toBeGreaterThan(rowIndex);
expect(titleIndex).toBeGreaterThan(iconIndex);
expect(sectionTypeIndex).toBeGreaterThan(titleIndex);
expect(body).toContain('className="rounded-r-none border-input border-e-0"');
expect(body).toContain('className="rounded-s-none"');
});
});
+111 -47
View File
@@ -19,10 +19,13 @@ import {
import { FormControl, FormItem, FormLabel, FormMessage } from "@reactive-resume/ui/components/form";
import { Input } from "@reactive-resume/ui/components/input";
import { generateId } from "@reactive-resume/utils/string";
import { cn } from "@reactive-resume/utils/style";
import { IconPicker } from "@/components/input/icon-picker";
import { Combobox } from "@/components/ui/combobox";
import { useDialogStore } from "@/dialogs/store";
import { useUpdateResumeData } from "@/features/resume/builder/draft";
import { useFormBlocker } from "@/hooks/use-form-blocker";
import { defaultSectionIconNames } from "@/libs/resume/section";
import { useAppForm, withForm } from "@/libs/tanstack-form";
const formSchema = customSectionSchema;
@@ -33,6 +36,7 @@ const defaultValues: FormValues = {
id: "",
title: "",
type: "experience",
icon: "",
columns: 1,
hidden: false,
items: [],
@@ -59,6 +63,12 @@ function isCustomSectionType(value: string | null | undefined): value is CustomS
return SECTION_TYPE_OPTIONS.some((option) => option.value === value);
}
function getIconPickerValue(icon: string, type: CustomSectionType): string {
if (icon === "none") return "";
return icon || defaultSectionIconNames[type];
}
export function CreateCustomSectionDialog({ data }: DialogProps<"resume.sections.custom.create">) {
const closeDialog = useDialogStore((state) => state.closeDialog);
const updateResumeData = useUpdateResumeData();
@@ -68,6 +78,7 @@ export function CreateCustomSectionDialog({ data }: DialogProps<"resume.sections
id: generateId(),
title: data?.title ?? "",
type: (data?.type ?? "experience") as CustomSectionType,
icon: data?.icon ?? "",
columns: data?.columns ?? 1,
hidden: data?.hidden ?? false,
items: data?.items ?? [],
@@ -126,7 +137,10 @@ export function UpdateCustomSectionDialog({ data }: DialogProps<"resume.sections
const updateResumeData = useUpdateResumeData();
const form = useAppForm({
defaultValues: data,
defaultValues: {
...data,
icon: data.icon ?? "",
},
validators: { onSubmit: formSchema },
onSubmit: async ({ value }) => {
updateResumeData((draft) => {
@@ -179,32 +193,57 @@ const CreateCustomSectionForm = withForm({
defaultValues,
render: function CreateCustomSectionFormRenderer({ form }) {
const { i18n } = useLingui();
const titleMeta = useStore(form.store, (state) => state.fieldMeta?.title);
const sectionType = useStore(form.store, (state) => state.values.type);
const isTitleInvalid = (titleMeta?.isTouched ?? false) && (titleMeta?.errors?.length ?? 0) > 0;
return (
<>
<form.Field name="title">
{(field) => (
<FormItem
className="sm:col-span-full"
hasError={field.state.meta.isTouched && field.state.meta.errors.length > 0}
>
<FormLabel>
<Trans>Title</Trans>
</FormLabel>
<FormControl
render={
<Input
name={field.name}
value={field.state.value}
onBlur={field.handleBlur}
onChange={(event) => field.handleChange(event.target.value)}
/>
}
/>
<FormMessage errors={field.state.meta.errors} />
</FormItem>
)}
</form.Field>
<div className={cn("flex items-end sm:col-span-full", isTitleInvalid && "items-center")}>
<form.Field name="icon">
{(field) => (
<FormItem
className="shrink-0"
hasError={field.state.meta.isTouched && field.state.meta.errors.length > 0}
>
<FormControl
render={
<IconPicker
value={getIconPickerValue(field.state.value, sectionType)}
onChange={(icon) => {
field.handleChange(icon === "" ? "none" : icon);
}}
className="rounded-r-none border-input border-e-0"
/>
}
/>
</FormItem>
)}
</form.Field>
<form.Field name="title">
{(field) => (
<FormItem className="flex-1" hasError={field.state.meta.isTouched && field.state.meta.errors.length > 0}>
<FormLabel>
<Trans>Title</Trans>
</FormLabel>
<FormControl
render={
<Input
className="rounded-s-none"
name={field.name}
value={field.state.value}
onBlur={field.handleBlur}
onChange={(event) => field.handleChange(event.target.value)}
/>
}
/>
<FormMessage errors={field.state.meta.errors} />
</FormItem>
)}
</form.Field>
</div>
<form.Field name="type">
{(field) => (
@@ -244,32 +283,57 @@ const UpdateCustomSectionForm = withForm({
defaultValues,
render: function UpdateCustomSectionFormRenderer({ form }) {
const { i18n } = useLingui();
const titleMeta = useStore(form.store, (state) => state.fieldMeta?.title);
const sectionType = useStore(form.store, (state) => state.values.type);
const isTitleInvalid = (titleMeta?.isTouched ?? false) && (titleMeta?.errors?.length ?? 0) > 0;
return (
<>
<form.Field name="title">
{(field) => (
<FormItem
className="sm:col-span-full"
hasError={field.state.meta.isTouched && field.state.meta.errors.length > 0}
>
<FormLabel>
<Trans>Title</Trans>
</FormLabel>
<FormControl
render={
<Input
name={field.name}
value={field.state.value}
onBlur={field.handleBlur}
onChange={(event) => field.handleChange(event.target.value)}
/>
}
/>
<FormMessage errors={field.state.meta.errors} />
</FormItem>
)}
</form.Field>
<div className={cn("flex items-end sm:col-span-full", isTitleInvalid && "items-center")}>
<form.Field name="icon">
{(field) => (
<FormItem
className="shrink-0"
hasError={field.state.meta.isTouched && field.state.meta.errors.length > 0}
>
<FormControl
render={
<IconPicker
value={getIconPickerValue(field.state.value, sectionType)}
onChange={(icon) => {
field.handleChange(icon === "" ? "none" : icon);
}}
className="rounded-r-none border-input border-e-0"
/>
}
/>
</FormItem>
)}
</form.Field>
<form.Field name="title">
{(field) => (
<FormItem className="flex-1" hasError={field.state.meta.isTouched && field.state.meta.errors.length > 0}>
<FormLabel>
<Trans>Title</Trans>
</FormLabel>
<FormControl
render={
<Input
className="rounded-s-none"
name={field.name}
value={field.state.value}
onBlur={field.handleBlur}
onChange={(event) => field.handleChange(event.target.value)}
/>
}
/>
<FormMessage errors={field.state.meta.errors} />
</FormItem>
)}
</form.Field>
</div>
<form.Field name="type">
{(field) => (
@@ -46,7 +46,6 @@ export function PdfCanvasDocument({ children, file, onLoadSuccess }: PdfCanvasDo
useEffect(() => {
let isCancelled = false;
let loadingTask: PDFDocumentLoadingTask | undefined;
let loadedDocument: PDFDocumentProxy | undefined;
const loadDocument = async () => {
setDocument(null);
@@ -59,9 +58,8 @@ export function PdfCanvasDocument({ children, file, onLoadSuccess }: PdfCanvasDo
const pdfDocument = await loadingTask.promise;
if (isCancelled) {
void pdfDocument.destroy();
void loadingTask.destroy();
} else {
loadedDocument = pdfDocument;
setDocument(pdfDocument);
onLoadSuccessRef.current(pdfDocument);
}
@@ -76,12 +74,7 @@ export function PdfCanvasDocument({ children, file, onLoadSuccess }: PdfCanvasDo
return () => {
isCancelled = true;
if (loadedDocument) {
void loadedDocument.destroy();
} else if (loadingTask) {
void loadingTask.destroy();
}
void loadingTask?.destroy();
};
}, [file]);
@@ -60,10 +60,6 @@ export const createPdfFirstPageImageUrl = async (file: Blob) => {
page.cleanup();
}
} finally {
if (pdfDocument) {
void pdfDocument.destroy();
} else {
void loadingTask.destroy();
}
void loadingTask.destroy();
}
};
@@ -10,7 +10,6 @@ const pdfjsMock = vi.hoisted(() => {
};
const pdfDocument = {
destroy: vi.fn(),
getPage: vi.fn(async () => page),
numPages: 1,
};
@@ -49,7 +48,6 @@ describe("PDF.js browser entrypoints", () => {
pdfjsMock.legacyModule.GlobalWorkerOptions.workerSrc = undefined;
pdfjsMock.legacyModule.getDocument.mockClear();
pdfjsMock.loadingTask.destroy.mockClear();
pdfjsMock.pdfDocument.destroy.mockClear();
pdfjsMock.pdfDocument.getPage.mockClear();
pdfjsMock.page.cleanup.mockClear();
pdfjsMock.page.getViewport.mockClear();
@@ -100,6 +98,6 @@ describe("PDF.js browser entrypoints", () => {
expect(pdfjsMock.page.render).toHaveBeenCalledWith(
expect.objectContaining({ annotationMode: 0, background: "white" }),
);
expect(pdfjsMock.pdfDocument.destroy).toHaveBeenCalledTimes(1);
expect(pdfjsMock.loadingTask.destroy).toHaveBeenCalledTimes(1);
});
});
@@ -6,7 +6,6 @@ import { sampleResumeData } from "@reactive-resume/schema/resume/sample";
const pdfViewerMock = vi.hoisted(() => {
const pdfDocument = {
destroy: vi.fn(),
numPages: 1,
};
@@ -93,7 +92,6 @@ beforeEach(() => {
pdfViewerMock.createResumePdfBlob.mockClear();
pdfViewerMock.getDocument.mockClear();
pdfViewerMock.loadingTask.destroy.mockClear();
pdfViewerMock.pdfDocument.destroy.mockClear();
});
describe("PdfViewer", () => {
@@ -113,7 +111,6 @@ describe("PdfViewer", () => {
expect(abortSignal?.aborted).toBe(true);
expect(viewer.setDocument).toHaveBeenCalledWith(null);
expect(pdfViewerMock.pdfDocument.destroy).toHaveBeenCalledTimes(1);
expect(pdfViewerMock.loadingTask.destroy).toHaveBeenCalledTimes(1);
});
});
@@ -168,7 +168,7 @@ export function PdfViewer({ className, data }: PdfViewerProps) {
const nextDocument = await loadingTask.promise;
if (isCancelled) {
void nextDocument.destroy();
void loadingTask.destroy();
} else {
pdfDocument = nextDocument;
const pdfViewerOptions = {
@@ -208,7 +208,6 @@ export function PdfViewer({ className, data }: PdfViewerProps) {
window.cancelAnimationFrame(animationFrameId);
resizeObserver?.disconnect();
if (pdfViewer) clearPdfViewerDocument(pdfViewer);
void pdfDocument?.destroy();
void loadingTask?.destroy();
viewer.replaceChildren();
};
@@ -23,6 +23,7 @@ describe("getSourceSectionTitle", () => {
id: "ext-1",
type: "cover-letter",
title: "My Custom Title",
icon: "",
columns: 1,
hidden: false,
items: [],
@@ -54,6 +55,7 @@ describe("getCompatibleMoveTargets", () => {
id: "ext-1",
type: "cover-letter",
title: "Cover Letter",
icon: "",
columns: 1,
hidden: false,
items: [],
@@ -120,6 +122,7 @@ describe("removeItemFromSource", () => {
id: "ext-1",
type: "cover-letter",
title: "",
icon: "",
columns: 1,
hidden: false,
items: [{ id: "i1" } as never],
@@ -171,6 +174,7 @@ describe("addItemToSection", () => {
id: "ext-1",
type: "cover-letter",
title: "",
icon: "",
columns: 1,
hidden: false,
items: [],
+2
View File
@@ -228,6 +228,7 @@ export function createCustomSectionWithItem(
id: newSectionId,
type,
title: sectionTitle,
icon: "",
columns: 1,
hidden: false,
items: [item as never],
@@ -265,6 +266,7 @@ export function createPageWithSection(
id: newSectionId,
type,
title: sectionTitle,
icon: "",
columns: 1,
hidden: false,
items: [item as never],
@@ -18,6 +18,7 @@ describe("createSectionItem", () => {
id: "custom-1",
type: "cover-letter",
title: "Cover Letter",
icon: "",
columns: 1,
hidden: false,
items: [],
@@ -75,6 +76,7 @@ describe("updateSectionItem", () => {
id: "custom-1",
type: "cover-letter",
title: "",
icon: "",
columns: 1,
hidden: false,
items: [{ id: "x", value: "old" } as never],
+2
View File
@@ -35,6 +35,8 @@ import {
import { match } from "ts-pattern";
import { cn } from "@reactive-resume/utils/style";
export { defaultSectionIconNames } from "@reactive-resume/schema/resume/section-icons";
export type LeftSidebarSection = "picture" | "basics" | "summary" | SectionType | "custom";
// CustomSectionType values that are not in SectionType (used in custom sections only)
@@ -0,0 +1,55 @@
// @vitest-environment happy-dom
import { render } from "@testing-library/react";
import { describe, expect, it } from "vitest";
import { i18n } from "@lingui/core";
import { I18nProvider } from "@lingui/react";
import { Sponsors } from "./sponsors";
const sponsorUrl = "https://www.atlascloud.ai/?utm_source=github&utm_medium=link&utm_campaign=reactive-resume";
i18n.loadAndActivate({ locale: "en", messages: {} });
const renderSponsors = (show: boolean) =>
render(
<I18nProvider i18n={i18n}>
<Sponsors show={show} />
</I18nProvider>,
);
describe("Sponsors", () => {
it("renders nothing when sponsors are hidden", () => {
const { container } = renderSponsors(false);
expect(container).toBeEmptyDOMElement();
});
it("renders the Atlas Cloud sponsor link when sponsors are visible", () => {
const { getByRole } = renderSponsors(true);
const link = getByRole("link", { name: "Atlas Cloud" });
expect(link).toHaveAttribute("href", sponsorUrl);
expect(link).toHaveAttribute("target", "_blank");
expect(link).toHaveAttribute("rel", "noopener noreferrer");
});
it("renders the full Atlas Cloud logo", () => {
const { getByAltText } = renderSponsors(true);
const logo = getByAltText("Atlas Cloud");
expect(logo).toHaveAttribute("src", "/sponsors/atlas-cloud-logo-black.svg");
expect(logo).toHaveClass("h-20");
});
it("thanks sponsors and links sponsorship inquiries to email", () => {
const { getByRole, getByText, queryByText } = renderSponsors(true);
expect(queryByText("Sponsors")).not.toBeInTheDocument();
expect(getByRole("heading", { name: "Thank you to our sponsors" })).toBeInTheDocument();
expect(getByText(/stays free, open-source, and independent/i)).toBeInTheDocument();
expect(getByRole("link", { name: "hello@amruthpillai.com" })).toHaveAttribute(
"href",
"mailto:hello@amruthpillai.com",
);
});
});
@@ -0,0 +1,63 @@
import { Trans } from "@lingui/react/macro";
const atlasCloudUrl = "https://www.atlascloud.ai/?utm_source=github&utm_medium=link&utm_campaign=reactive-resume";
const sponsorshipEmail = "hello@amruthpillai.com";
type SponsorsProps = {
show: boolean;
};
export const Sponsors = ({ show }: SponsorsProps) => {
if (!show) return null;
return (
<section className="px-8 py-20">
<div className="mx-auto flex max-w-4xl flex-col items-center text-center">
<h2 className="max-w-3xl font-semibold text-2xl tracking-tight md:text-4xl">
<Trans>Thank you to our sponsors</Trans>
</h2>
<p className="mt-5 max-w-2xl text-base text-muted-foreground leading-relaxed">
<Trans>
Reactive Resume stays free, open-source, and independent because companies choose to support the work behind
it. Their sponsorship helps fund hosting, maintenance, and continued development for the community.
</Trans>
</p>
<a
href={atlasCloudUrl}
target="_blank"
rel="noopener noreferrer"
aria-label="Atlas Cloud"
className="mt-12 block"
>
<img
src="/sponsors/atlas-cloud-logo-black.svg"
alt="Atlas Cloud"
className="h-20 w-auto md:h-24 dark:hidden"
loading="lazy"
/>
<img
src="/sponsors/atlas-cloud-logo-white.svg"
alt=""
className="hidden h-20 w-auto md:h-24 dark:block"
loading="lazy"
/>
</a>
<p className="mt-8 max-w-2xl text-muted-foreground leading-relaxed">
<Trans>
Atlas Cloud supports Reactive Resume as a project sponsor. If your company would like to sponsor the
project, email{" "}
<a
href={`mailto:${sponsorshipEmail}`}
className="font-medium text-foreground underline-offset-4 hover:underline"
>
{sponsorshipEmail}
</a>
.
</Trans>
</p>
</div>
</section>
);
};
+4
View File
@@ -6,6 +6,7 @@ import { Features } from "./-sections/features";
import { Footer } from "./-sections/footer";
import { Hero } from "./-sections/hero";
import { Prefooter } from "./-sections/prefooter";
import { Sponsors } from "./-sections/sponsors";
import { Statistics } from "./-sections/statistics";
import { Templates } from "./-sections/templates";
import { Testimonials } from "./-sections/testimonials";
@@ -24,6 +25,8 @@ export const Route = createFileRoute("/_home/")({
});
function RouteComponent() {
const { flags } = Route.useRouteContext();
return (
<main id="main-content" className="relative">
<Hero />
@@ -31,6 +34,7 @@ function RouteComponent() {
<div className="container mx-auto px-4 sm:px-6 lg:px-12">
<div className="border-border border-x [&>section:first-child]:border-t-0 [&>section]:border-border [&>section]:border-t">
<Statistics />
<Sponsors show={flags.showSponsors} />
<Features />
<Templates />
<Testimonials />
@@ -1,10 +1,12 @@
import type { SectionType } from "@reactive-resume/schema/resume/data";
import type { LeftSidebarSection } from "@/libs/resume/section";
import { CaretDownIcon } from "@phosphor-icons/react";
import { getDefaultSectionIconName } from "@reactive-resume/schema/resume/section-icons";
import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "@reactive-resume/ui/components/accordion";
import { Button } from "@reactive-resume/ui/components/button";
import { cn } from "@reactive-resume/utils/style";
import { useCurrentResume } from "@/features/resume/builder/draft";
import { IconPicker } from "@/components/input/icon-picker";
import { useCurrentResume, useUpdateResumeData } from "@/features/resume/builder/draft";
import { getSectionIcon, getSectionTitle } from "@/libs/resume/section";
import { useSectionStore } from "../../../-store/section";
import { SectionDropdownMenu } from "./section-menu";
@@ -15,6 +17,7 @@ type Props = React.ComponentProps<typeof AccordionContent> & {
export function SectionBase({ type, className, ...props }: Props) {
const resume = useCurrentResume();
const updateResumeData = useUpdateResumeData();
const data = resume.data;
const section =
type === "basics"
@@ -28,9 +31,27 @@ export function SectionBase({ type, className, ...props }: Props) {
: data.sections[type];
const isHidden = "hidden" in section && section.hidden;
const hasSectionIcon = !["picture", "basics", "custom"].includes(type);
const rawIcon = "icon" in section && typeof section.icon === "string" ? section.icon : "";
const fallbackIcon = hasSectionIcon ? getDefaultSectionIconName(type as "summary" | SectionType) : "";
const sectionIcon = rawIcon === "none" ? "" : rawIcon || fallbackIcon;
const collapsed = useSectionStore((state) => state.sections[type]?.collapsed ?? false);
const toggleCollapsed = useSectionStore((state) => state.toggleCollapsed);
const onIconChange = (icon: string) => {
// Store "none" when user explicitly picks the empty/prohibit option
const valueToStore = icon === "" ? "none" : icon;
updateResumeData((draft) => {
if (type === "summary") {
draft.summary.icon = valueToStore;
} else if (type !== "basics" && type !== "picture" && type !== "custom") {
draft.sections[type as SectionType].icon = valueToStore;
}
});
};
return (
<Accordion
id={`sidebar-${type}`}
@@ -49,8 +70,12 @@ export function SectionBase({ type, className, ...props }: Props) {
}
/>
<div className="flex flex-1 items-center gap-x-4">
{getSectionIcon(type)}
<div className={cn("flex flex-1 items-center gap-x-4", hasSectionIcon && "gap-x-2")}>
{hasSectionIcon ? (
<IconPicker value={sectionIcon} onChange={onIconChange} size="icon" variant="ghost" />
) : (
getSectionIcon(type)
)}
<h2 className="line-clamp-1 font-semibold text-2xl tracking-tight">
{("title" in section && section.title) || getSectionTitle(type)}
</h2>
@@ -3,6 +3,8 @@ import { Trans } from "@lingui/react/macro";
import { useStore } from "@tanstack/react-form";
import { AnimatePresence, m } from "motion/react";
import { colorDesignSchema, levelDesignSchema } from "@reactive-resume/schema/resume/data";
import { resolveLevelDisplaySizes } from "@reactive-resume/schema/resume/level-display-sizes";
import { resolveStyleRuleFontSize } from "@reactive-resume/schema/resume/style-rules";
import { FormControl, FormItem, FormLabel, FormMessage } from "@reactive-resume/ui/components/form";
import { Input } from "@reactive-resume/ui/components/input";
import { Separator } from "@reactive-resume/ui/components/separator";
@@ -276,6 +278,13 @@ function LevelSectionForm() {
const previewType = useStore(form.store, (s) => s.values.type);
const previewIcon = useStore(form.store, (s) => s.values.icon);
const iconFontSize = resolveStyleRuleFontSize(resume.data, { slot: "icon" });
const levelFontSize = resolveStyleRuleFontSize(resume.data, { slot: "level" });
const { decorationSize, levelIconExplicitSize } = resolveLevelDisplaySizes({
bodyFontSize: resume.data.metadata.typography.body.fontSize,
iconFontSize,
levelFontSize,
});
return (
<form
@@ -294,7 +303,14 @@ function LevelSectionForm() {
style={{ "--page-primary-color": colors.primary, backgroundColor: colors.background } as React.CSSProperties}
className="flex items-center justify-center rounded-md p-6"
>
<LevelDisplay level={3} type={previewType} icon={previewIcon} className="w-full max-w-[220px] justify-center" />
<LevelDisplay
level={3}
type={previewType}
icon={previewIcon}
decorationSizePx={decorationSize}
iconSizePx={levelIconExplicitSize}
className="w-full max-w-[220px] justify-center"
/>
</div>
<div className="flex items-center gap-3">
@@ -258,10 +258,34 @@ function PageSectionForm() {
)}
</form.Field>
<form.Field name="hideLinkUnderline">
{(field) => (
<FormItem
className="col-span-full flex items-center gap-x-3 py-1"
hasError={field.state.meta.isTouched && field.state.meta.errors.length > 0}
>
<FormControl
render={
<Switch
checked={field.state.value}
onCheckedChange={(checked) => {
field.handleChange(checked);
handleAutoSave("hideLinkUnderline", checked);
}}
/>
}
/>
<FormLabel>
<Trans>Hide Link Underline</Trans>
</FormLabel>
</FormItem>
)}
</form.Field>
<form.Field name="hideIcons">
{(field) => (
<FormItem
className="col-span-full flex items-center gap-x-3 py-2"
className="col-span-full flex items-center gap-x-3 py-1"
hasError={field.state.meta.isTouched && field.state.meta.errors.length > 0}
>
<FormControl
@@ -276,7 +300,31 @@ function PageSectionForm() {
}
/>
<FormLabel>
<Trans>Hide all icons on the resume</Trans>
<Trans>Hide Icons</Trans>
</FormLabel>
</FormItem>
)}
</form.Field>
<form.Field name="hideSectionIcons">
{(field) => (
<FormItem
className="col-span-full flex items-center gap-x-3 py-1"
hasError={field.state.meta.isTouched && field.state.meta.errors.length > 0}
>
<FormControl
render={
<Switch
checked={field.state.value}
onCheckedChange={(checked) => {
field.handleChange(checked);
handleAutoSave("hideSectionIcons", checked);
}}
/>
}
/>
<FormLabel>
<Trans>Hide Section Icons</Trans>
</FormLabel>
</FormItem>
)}
+1 -1
View File
@@ -47,7 +47,7 @@
"linter": {
"enabled": true,
"rules": {
"recommended": true,
"preset": "recommended",
"correctness": {
"useExhaustiveDependencies": "info"
},
+61
View File
@@ -4,6 +4,67 @@ description: "List of all notable changes and updates to Reactive Resume"
rss: true
---
<Update label="v5.1.9" description="18th June 2026">
## Highlights
- **Better multilingual PDF rendering.** PDF generation now uses script-aware Noto fallback stacks for Korean, Japanese, Traditional and Simplified Chinese, Arabic, Hebrew, and Thai, so non-Latin resumes render more reliably in the live preview and exported PDFs. [#3158](https://github.com/amruthpillai/reactive-resume/pull/3158)
- **Hide Link Underline setting.** Resume page settings now include a dedicated **Hide Link Underline** option that is saved with the resume and respected by PDF templates. [5fb4976ec](https://github.com/amruthpillai/reactive-resume/commit/5fb4976ec), [#3134](https://github.com/amruthpillai/reactive-resume/issues/3134)
- **Sponsor placements.** The landing page and docs now include optional sponsor placements for Atlas Cloud, controlled by a new feature flag so deployments can opt in when appropriate. [f14d8ce69](https://github.com/amruthpillai/reactive-resume/commit/f14d8ce69)
## Resume Builder & Rendering
- Added the **Hide Link Underline** page option to the builder, resume schema, default resume data, import path, and shared PDF link rendering. [5fb4976ec](https://github.com/amruthpillai/reactive-resume/commit/5fb4976ec), [90a9bb9cf](https://github.com/amruthpillai/reactive-resume/commit/90a9bb9cf), [#3134](https://github.com/amruthpillai/reactive-resume/issues/3134)
- Fixed mixed CJK and Latin word wrapping so CJK text can still break per character without splitting Latin words letter by letter. [#3136](https://github.com/amruthpillai/reactive-resume/pull/3136)
- Added locale and content-aware PDF fallback fonts for Korean, Japanese, Chinese, Arabic, Hebrew, and Thai, while keeping CJK-specific line breaking limited to CJK scripts. [#3158](https://github.com/amruthpillai/reactive-resume/pull/3158)
- Fixed redacted resume access checks so placeholder resume data uses a non-empty name. [#3138](https://github.com/amruthpillai/reactive-resume/pull/3138)
## AI, MCP & Self-Hosting
- Fixed AI resume analysis when model responses wrap JSON in Markdown code fences. [#3142](https://github.com/amruthpillai/reactive-resume/pull/3142)
- Added `FLAG_DISABLE_API_RATE_LIMIT` for trusted self-hosted deployments that need to disable authentication API rate limiting, and documented it in the Docker self-hosting guide. [#3149](https://github.com/amruthpillai/reactive-resume/pull/3149)
- Added `FLAG_SHOW_SPONSORS`, sponsor assets, landing-page placement, docs navigation, and README sponsor information for Atlas Cloud. [f14d8ce69](https://github.com/amruthpillai/reactive-resume/commit/f14d8ce69)
- Fixed the MCP PDF download test mock to match the current tool behavior. [#3144](https://github.com/amruthpillai/reactive-resume/pull/3144)
## Localization & Maintenance
- Synced translation catalogs from Crowdin across the app. [#3132](https://github.com/amruthpillai/reactive-resume/pull/3132), [#3135](https://github.com/amruthpillai/reactive-resume/pull/3135), [#3148](https://github.com/amruthpillai/reactive-resume/pull/3148), [#3162](https://github.com/amruthpillai/reactive-resume/pull/3162)
- Updated workspace dependencies and refreshed linting/tooling configuration. [042d076ef](https://github.com/amruthpillai/reactive-resume/commit/042d076ef), [37faf592b](https://github.com/amruthpillai/reactive-resume/commit/37faf592b), [ef5ff30b](https://github.com/amruthpillai/reactive-resume/commit/ef5ff30b)
**Full Changelog**: [v5.1.8...v5.1.9](https://github.com/amruthpillai/reactive-resume/compare/v5.1.8...v5.1.9)
</Update>
<Update label="v5.1.8" description="1st June 2026">
## Highlights
- **Section heading icons for PDF templates.** Resume section titles can now show customizable Phosphor icons in PDF output. Pick icons from the builder, hide individual section icons, or use the new page setting to hide heading icons separately from item-level icons. [b932711f0](https://github.com/amruthpillai/reactive-resume/commit/b932711f0)
- **Multicolor text highlights.** The rich text editor now includes a highlight color picker with presets and custom colors. Dark highlights automatically switch marked text to white for readability, and highlight colors carry through PDF and DOCX exports. [e96a51f31](https://github.com/amruthpillai/reactive-resume/commit/e96a51f31)
- **MCP PDF downloads.** MCP clients can now create short-lived authenticated PDF download URLs for resumes, making agent workflows able to retrieve generated PDF exports directly. [0df7f2113](https://github.com/amruthpillai/reactive-resume/commit/0df7f2113)
## Resume Builder & Editing
- Added per-section icon pickers for summary, built-in sections, and custom section dialogs, with sensible default icons for existing resumes and a `"none"` option for hiding a specific section icon. [b932711f0](https://github.com/amruthpillai/reactive-resume/commit/b932711f0)
- Added a **Hide Section Icons** page option and clarified the existing **Hide Icons** setting so section heading icons and item-level icons can be controlled independently. [b932711f0](https://github.com/amruthpillai/reactive-resume/commit/b932711f0)
- Replaced the single-color rich text highlight toggle with a full highlight color picker, including preset colors, custom colors, and a clear action. [e96a51f31](https://github.com/amruthpillai/reactive-resume/commit/e96a51f31)
- Synced new builder, section icon, and rich text editor labels across locale catalogs. [b932711f0](https://github.com/amruthpillai/reactive-resume/commit/b932711f0), [1507d869c](https://github.com/amruthpillai/reactive-resume/commit/1507d869c), [e96a51f31](https://github.com/amruthpillai/reactive-resume/commit/e96a51f31)
## Resume Rendering & Exports
- Added section heading icon rendering to shared PDF templates, including heading-size scaling, default icon fallbacks for legacy resume data, and support for custom sections. [b932711f0](https://github.com/amruthpillai/reactive-resume/commit/b932711f0)
- Preserved custom highlight colors in PDF and DOCX exports, including automatic white text on dark highlight colors. [e96a51f31](https://github.com/amruthpillai/reactive-resume/commit/e96a51f31)
- Fixed experience entries with role progression so the main position and period still render in the header without repeating the period below it. [9ce5bacd2](https://github.com/amruthpillai/reactive-resume/commit/9ce5bacd2)
- Fixed Custom Styles font size rules for resume icons and level indicators so those values affect actual icon dimensions in PDFs and builder previews. [1414fecad](https://github.com/amruthpillai/reactive-resume/commit/1414fecad), [e00ff8cec](https://github.com/amruthpillai/reactive-resume/commit/e00ff8cec)
- Fixed the Glalie template contact-list border so it stays square instead of inheriting the picture border radius. [c1d11236a](https://github.com/amruthpillai/reactive-resume/commit/c1d11236a)
## MCP, API & Maintenance
- Added the `download_resume_pdf` MCP tool, returning a signed PDF download URL that expires after 10 minutes. [0df7f2113](https://github.com/amruthpillai/reactive-resume/commit/0df7f2113)
- Added the authenticated `/api/resumes/:id/pdf` download route used by MCP PDF downloads, with no-store caching, token validation, ownership checks, and safer PDF generation errors. [0df7f2113](https://github.com/amruthpillai/reactive-resume/commit/0df7f2113), [a8c70d784](https://github.com/amruthpillai/reactive-resume/commit/a8c70d784), [152279473](https://github.com/amruthpillai/reactive-resume/commit/152279473)
- Made MCP server cards, OpenAPI output, schema JSON, and server metadata use runtime-safe app version handling in development. [d09ad2cdc](https://github.com/amruthpillai/reactive-resume/commit/d09ad2cdc)
- Updated the release Docker workflow to purge Cloudflare cache after publishing a release image, so cached release artifacts refresh after deployment. [6852f586e](https://github.com/amruthpillai/reactive-resume/commit/6852f586e)
**Full Changelog**: [v5.1.7...v5.1.8](https://github.com/amruthpillai/reactive-resume/compare/v5.1.7...v5.1.8)
</Update>
<Update label="v5.1.7" description="27th May 2026">
## Highlights

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