Compare commits

...
30 Commits
Author SHA1 Message Date
Amruth Pillai 90c34ca572 📦 v5.0.7 - Changelog: https://docs.rxresu.me/changelog (#2696) 2026-02-09 01:50:31 +01:00
Amruth Pillai 2b8fa9c7e8 fix: auto-select 2 font weights when picking a new font-family 2026-02-08 18:14:16 +01:00
Amruth Pillai 2f7aabcfe9 Update self-hosting guide link in README 2026-02-08 11:45:05 +01:00
Amruth Pillai ef6d054598 fixes #2612 2026-02-08 01:43:08 +01:00
Amruth Pillai 201d707aea fixes #2655 2026-02-08 01:39:58 +01:00
Amruth Pillai d8b0902ac9 fixes #2691 2026-02-08 01:39:24 +01:00
Amruth Pillai 01c75bd796 📦 v5.0.6 · Changelog: https://docs.rxresu.me/changelog 2026-02-08 01:18:41 +01:00
Amruth Pillai 0a609306a6 add error logging on server only 2026-02-08 01:16:38 +01:00
Amruth Pillai 5bdc6de862 update imports/exports 2026-02-08 00:28:28 +01:00
Amruth Pillai cc01fb9418 Feature: Implement Atomic Resume Patching API (#2692) 2026-02-08 00:16:11 +01:00
Arjun EarthpersonandAmruth Pillai 5e8e1349bc Return updated resume object from PUT /resume/{id} instead of void (#2688)
* implement PUT response

* Refactor resume router and service to use DTOs for input and output schemas

* define explicitly, the fields to be returned

---------

Co-authored-by: Amruth Pillai <im.amruth@gmail.com>
2026-02-07 00:49:33 +01:00
Amruth Pillai ddbb71fb78 update dependencies 2026-02-06 23:07:37 +01:00
Amruth Pillai 3289453448 add .devcontainer 2026-02-06 19:15:56 +01:00
Amruth Pillai 611af8ee72 Add build badge and documentation link to README
Added a build badge for Ona and linked to documentation.
2026-02-06 19:05:40 +01:00
Amruth PillaiandCopilot 69b96a592d Sync Translations from Crowdin (#2686)
* New translations en-us.po (French)
[ci skip]

* Update locales/fr-FR.po

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

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-05 14:37:59 +01:00
Amruth Pillai 3151f6a9cc update dependencies 2026-02-03 22:55:22 +01:00
Amruth Pillai 726968288c fix lint errors 2026-02-02 17:37:15 +01:00
Arjun Earthperson ad086f337a update sample with cover letter and other existing fields (#2678) 2026-02-02 17:36:24 +01:00
Amruth Pillai 66d09820c3 rename service from "app" to "reactive_resume" 2026-02-02 13:27:14 +01:00
Amruth Pillai 5ec73e9234 fix no name returned in github 2026-02-02 13:03:49 +01:00
Amruth Pillai 17569d0658 add failure update to ai test status, when testing connection 2026-02-02 01:03:01 +01:00
Amruth Pillai 14ea464c0a add changelog, update README.md 2026-02-02 01:01:02 +01:00
Amruth Pillai da9a3c0b12 fixes #2663: validate AI output for test connection endpoint (#2674) 2026-02-02 00:43:31 +01:00
Abdul Alim f5a9ffb776 fix(layout): handle text overflow in sidebar/footer elements (#2672) 2026-02-01 22:17:30 +01:00
Amruth PillaiandCopilot 19181b79c8 Sync Translations from Crowdin (#2667)
* New translations en-us.po (Spanish)
[ci skip]

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

* Update locales/it-IT.po

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

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-31 17:10:26 +01:00
Amruth Pillai 1509678578 fix auth error: "name is required" (#2668) 2026-01-31 17:09:14 +01:00
Amruth Pillai c4d5dd4a3c New translations en-us.po (Italian) (#2665)
[ci skip]
2026-01-31 15:42:43 +01:00
Amruth Pillai ca734ca547 Sync Translations from Crowdin (#2664)
* New translations en-us.po (Romanian)
[ci skip]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

* New translations en-us.po (Slovenian)
[ci skip]
2026-01-31 14:14:16 +01:00
Amruth PillaiandCursor 8d347f5162 Feature: Implement Embedding Links in Titles of all Section Items (#2662)
* feat: add options.showLinkInTitle to baseItemSchema

Add itemOptionsSchema with showLinkInTitle boolean property to control
whether the website URL is rendered as a hyperlink on the title instead
of a separate link at the bottom. The field is optional for backwards
compatibility with existing resumes.

Co-authored-by: Cursor <cursoragent@cursor.com>

* feat: add hideLabelButton prop to URLInput

When hideLabelButton is true, the tag/label button is hidden from the
URL input. This is used when showLinkInTitle is enabled since the label
is not needed when the link is shown in the title.

Co-authored-by: Cursor <cursoragent@cursor.com>

* feat: create LinkedTitle component for title-as-link rendering

Add a reusable component that conditionally renders the title as a
hyperlink when showLinkInTitle is true and a website URL is provided.

Co-authored-by: Cursor <cursoragent@cursor.com>

* feat: add showLinkInTitle option to experience section

- Add Switch toggle in experience dialog for showLinkInTitle option
- Update URLInput to hide label button when showLinkInTitle is enabled
- Use LinkedTitle component in experience-item for conditional link rendering
- Hide bottom website link when showLinkInTitle is enabled

Co-authored-by: Cursor <cursoragent@cursor.com>

* feat: add showLinkInTitle option to all section items

- Update education, projects, awards, certifications, publications,
  volunteer, references, and profiles dialogs with Switch toggle
- Add LinkedTitle component usage in all corresponding item components
- Conditionally hide bottom website link when showLinkInTitle is enabled
- Add hideLabelButton prop to URLInput when showLinkInTitle is enabled

Co-authored-by: Cursor <cursoragent@cursor.com>

* chore: extract i18n strings for showLinkInTitle feature

Add "Show link in title" translation string to all locale catalogs.

Co-authored-by: Cursor <cursoragent@cursor.com>

* update dependencies, fix an issue with glalie template and non-clickable links, fix better-auth type error

* remove unused export

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-31 12:16:23 +01:00
Amruth Pillai 4d368ab6f6 Sync Translations from Crowdin (#2660)
* New translations en-us.po (Romanian)
[ci skip]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

* New translations en-us.po (Slovenian)
[ci skip]
2026-01-31 11:09:44 +01:00
150 changed files with 7482 additions and 2525 deletions
+10
View File
@@ -0,0 +1,10 @@
FROM mcr.microsoft.com/devcontainers/typescript-node:24
RUN corepack enable
RUN apt-get update && apt-get install -y --no-install-recommends \
git \
curl \
&& rm -rf /var/lib/apt/lists/*
EXPOSE 3000
+32
View File
@@ -0,0 +1,32 @@
{
"name": "Reactive Resume",
"service": "reactive_resume",
"dockerComposeFile": "docker-compose.yml",
"workspaceFolder": "/workspace",
"forwardPorts": [3000, 4000, 5432, 8333],
"portsAttributes": {
"3000": { "label": "Reactive Resume", "onAutoForward": "openBrowser" },
"4000": { "label": "Browserless (Printer)" },
"5432": { "label": "PostgreSQL" },
"8333": { "label": "SeaweedFS (S3)" }
},
"customizations": {
"vscode": {
"extensions": ["biomejs.biome", "bradlc.vscode-tailwindcss", "lokalise.i18n-ally"],
"settings": {
"biome.enabled": true,
"editor.codeActionsOnSave": {
"source.biome": "explicit",
"source.fixAll.biome": "explicit",
"source.organizeImports.biome": "explicit"
},
"editor.defaultFormatter": "biomejs.biome",
"typescript.tsdk": "node_modules/typescript/lib"
}
}
},
"postCreateCommand": "corepack enable && pnpm install"
}
+96
View File
@@ -0,0 +1,96 @@
services:
reactive_resume:
build:
context: ..
dockerfile: .devcontainer/Dockerfile
volumes:
- ..:/workspace:cached
command: sleep infinity
depends_on:
postgres:
condition: service_healthy
browserless:
condition: service_started
seaweedfs:
condition: service_healthy
seaweedfs_create_bucket:
condition: service_completed_successfully
environment:
TZ: Etc/UTC
APP_URL: http://localhost:3000
PRINTER_APP_URL: http://reactive_resume:3000
PRINTER_ENDPOINT: ws://browserless:3000?token=1234567890
DATABASE_URL: postgresql://postgres:postgres@postgres:5432/postgres
AUTH_SECRET: change-me-to-a-secure-secret-key-in-production
S3_ACCESS_KEY_ID: seaweedfs
S3_SECRET_ACCESS_KEY: seaweedfs
S3_REGION: us-east-1
S3_ENDPOINT: http://seaweedfs:8333
S3_BUCKET: reactive-resume
S3_FORCE_PATH_STYLE: "true"
postgres:
image: postgres:latest
restart: unless-stopped
environment:
POSTGRES_DB: postgres
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
volumes:
- postgres_data:/var/lib/postgresql
healthcheck:
test: ["CMD", "pg_isready", "-U", "postgres", "-d", "postgres"]
start_period: 10s
interval: 30s
timeout: 10s
retries: 3
browserless:
image: ghcr.io/browserless/chromium:latest
restart: unless-stopped
environment:
QUEUED: "10"
HEALTH: "true"
CONCURRENT: "5"
TOKEN: "1234567890"
healthcheck:
test:
["CMD", "curl", "-f", "http://localhost:3000/pressure?token=1234567890"]
interval: 10s
timeout: 5s
retries: 10
seaweedfs:
image: chrislusf/seaweedfs:latest
restart: unless-stopped
command: server -s3 -filer -dir=/data -ip=0.0.0.0
environment:
AWS_ACCESS_KEY_ID: seaweedfs
AWS_SECRET_ACCESS_KEY: seaweedfs
volumes:
- seaweedfs_data:/data
healthcheck:
test: ["CMD", "wget", "-q", "-O", "/dev/null", "http://localhost:8888"]
start_period: 10s
interval: 30s
timeout: 10s
retries: 3
seaweedfs_create_bucket:
image: quay.io/minio/mc:latest
restart: on-failure
entrypoint: >
/bin/sh -c "
until mc alias set seaweedfs http://seaweedfs:8333 seaweedfs seaweedfs; do
echo 'Waiting for SeaweedFS...';
sleep 2;
done;
mc mb seaweedfs/reactive-resume --ignore-existing;
"
depends_on:
seaweedfs:
condition: service_healthy
volumes:
postgres_data:
seaweedfs_data:
+1 -1
View File
@@ -2,7 +2,7 @@
const nextPackages = ["@monaco-editor/react"];
const betaPackages = ["drizzle-orm", "drizzle-kit", "@better-auth/core", "@better-auth/passkey", "better-auth"];
const betaPackages = ["vite", "drizzle-orm", "drizzle-kit", "@better-auth/core", "@better-auth/passkey", "better-auth"];
/** @type {import('npm-check-updates').RunOptions} */
module.exports = {
+7 -7
View File
@@ -10,19 +10,19 @@
"*.css": "tailwindcss"
},
"files.readonlyInclude": {
"pnpm-lock.yaml": true,
"**/routeTree.gen.ts": true
"**/routeTree.gen.ts": true,
"pnpm-lock.yaml": true
},
"files.watcherExclude": {
"pnpm-lock.yaml": true,
"**/routeTree.gen.ts": true
"**/routeTree.gen.ts": true,
"pnpm-lock.yaml": true
},
"i18n-ally.enabledParsers": ["po"],
"i18n-ally.localesPaths": ["locales"],
"i18n-ally.sourceLanguage": "en-US",
"search.exclude": {
"pnpm-lock.yaml": true,
"**/routeTree.gen.ts": true
"**/routeTree.gen.ts": true,
"pnpm-lock.yaml": true
},
"tailwindCSS.classFunctions": ["cn", "cva"],
"tailwindCSS.experimental.classRegex": [
@@ -31,5 +31,5 @@
["cn\\(([^)]*)\\)", "(?:'|\"|`)([^']*)(?:'|\"|`)"]
],
"tailwindCSS.experimental.configFile": "src/styles/globals.css",
"typescript.tsdk": "node_modules/typescript/lib"
"typescript.experimental.useTsgo": true
}
+1 -1
View File
@@ -34,7 +34,7 @@ pnpm db:studio # Open Drizzle Studio
pnpm lingui:extract
# Find unused exports
pnpm knip
dotenvx run -- pnpm knip
```
## Local Development Setup
+8 -18
View File
@@ -1,15 +1,3 @@
<div align="center" markdown="1">
<a href="https://go.warp.dev/Reactive-Resume">
<img alt="Warp Sponsorship" width="400" src="https://github.com/warpdotdev/brand-assets/blob/main/Github/Sponsor/Warp-Github-LG-03.png?raw=true" />
</a>
### [Warp, built for coding with multiple AI agents.](https://go.warp.dev/Reactive-Resume)
[Available for MacOS, Linux, & Windows](https://go.warp.dev/Reactive-Resume)
</div>
---
<div align="center">
<a href="https://rxresu.me">
<img src="public/opengraph/banner.jpg" alt="Reactive Resume" />
@@ -26,15 +14,15 @@
</p>
<p>
<img src="https://img.shields.io/github/stars/amruthpillai/Reactive-Resume?style=flat-square" alt="Stars" />
<img src="https://img.shields.io/github/package-json/v/amruthpillai/reactive-resume?style=flat-square" alt="Reactive Resume version">
<img src="https://img.shields.io/github/stars/amruthpillai/Reactive-Resume?style=flat-square" alt="GitHub Stars">
<img src="https://img.shields.io/github/license/amruthpillai/Reactive-Resume?style=flat-square" alt="License" />
<img src="https://img.shields.io/docker/pulls/amruthpillai/reactive-resume?style=flat-square" alt="Docker Pulls" />
<a href="https://discord.gg/EE8yFqW4"><img src="https://img.shields.io/discord/1173518977851473940?label=Discord&style=flat-square&logo=discord" alt="Discord" /></a>
<a href="https://discord.gg/EE8yFqW4"><img src="https://img.shields.io/discord/1173518977851473940?style=flat-square&label=discord" alt="Discord" /></a>
<a href="https://crowdin.com/project/reactive-resume"><img src="https://badges.crowdin.net/reactive-resume/localized.svg?style=flat-square" alt="Crowdin" /></a>
<a href="https://opencollective.com/reactive-resume"><img src="https://img.shields.io/opencollective/all/reactive-resume?style=flat-square" alt="Open Collective" /></a>
<a href="https://github.com/sponsors/AmruthPillai"><img src="https://img.shields.io/github/sponsors/AmruthPillai?style=flat-square&label=sponsors" alt="Sponsors" /></a>
<a href="https://opencollective.com/reactive-resume"><img src="https://img.shields.io/opencollective/backers/reactive-resume?style=flat-square&label=donations" alt="Donations" /></a>
</p>
<a href="https://www.producthunt.com/products/reactive-resume?embed=true&amp;utm_source=badge-featured&amp;utm_medium=badge&amp;utm_campaign=badge-reactive-resume-v5-2" target="_blank" rel="noopener"><img alt="Reactive Resume v5 - A free and open-source resume builder. | Product Hunt" width="250" height="54" src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=1065182&amp;theme=light&amp;t=1768850745585"></a>
</div>
---
@@ -157,6 +145,8 @@ docker compose up -d
open http://localhost:3000
```
[![Build with Ona](https://ona.com/build-with-ona.svg)](https://app.ona.com/#https://github.com/amruthpillai/reactive-resume)
For detailed setup instructions, environment configuration, and self-hosting guides, see the [documentation](https://docs.rxresu.me).
## Tech Stack
@@ -203,7 +193,7 @@ docker pull amruthpillai/reactive-resume:latest
docker pull ghcr.io/amruthpillai/reactive-resume:latest
```
See the [self-hosting guide](https://docs.rxresu.me/guides/self-hosting-with-docker) for complete instructions.
See the [self-hosting guide](https://docs.rxresu.me/self-hosting/docker) for complete instructions.
## Support
+3 -3
View File
@@ -10,9 +10,9 @@
"ignoreUnknown": true,
"includes": [
"**",
"!**/docs/spec.json",
"!**/webfontlist.json",
"!**/schema/schema.json",
"!**/docs/spec.json",
"!**/src/routeTree.gen.ts"
]
},
@@ -24,8 +24,7 @@
"actions": {
"recommended": true,
"source": {
"organizeImports": "on",
"useSortedProperties": "on"
"organizeImports": "on"
}
}
},
@@ -38,6 +37,7 @@
},
"correctness": {
"noUnknownTypeSelector": "off",
"useExhaustiveDependencies": "off",
"noUnusedImports": {
"fix": "safe",
"level": "error",
+1 -1
View File
@@ -77,7 +77,7 @@ services:
timeout: 10s
retries: 3
seaweedfs-create-bucket:
seaweedfs_create_bucket:
image: quay.io/minio/mc:latest
restart: on-failure
entrypoint: >
+4 -4
View File
@@ -56,7 +56,7 @@ services:
timeout: 10s
retries: 3
seaweedfs-create-bucket:
seaweedfs_create_bucket:
image: quay.io/minio/mc:latest
restart: on-failure
entrypoint: >
@@ -70,7 +70,7 @@ services:
seaweedfs:
condition: service_healthy
app:
reactive_resume:
image: amruthpillai/reactive-resume:latest
# image: ghcr.io/amruthpillai/reactive-resume:latest
environment:
@@ -78,7 +78,7 @@ services:
- TZ=Etc/UTC
- NODE_ENV=production
- APP_URL=http://localhost:3000
- PRINTER_APP_URL=http://app:3000
- PRINTER_APP_URL=http://reactive_resume:3000
# Printer
- PRINTER_ENDPOINT=ws://browserless:3000?token=1234567890
# - PRINTER_ENDPOINT=http://chrome:9222 # Or, if you're using chromedp/headless-shell
@@ -101,7 +101,7 @@ services:
condition: service_healthy
browserless:
condition: service_healthy
seaweedfs-create-bucket:
seaweedfs_create_bucket:
condition: service_completed_successfully
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/api/health"]
+35
View File
@@ -4,6 +4,41 @@ description: "List of all notable changes and updates to Reactive Resume"
rss: true
---
<Update label="v5.0.7" description="9th February 2026">
- Introduce a new **MCP (Model Context Protocol) server** that lets you manage and edit resumes from any MCP-compatible AI tool — Claude Desktop, Cursor, Codex, and more. Supports listing, reading, creating, deleting, locking/unlocking, and patching resumes via natural language. [(guide)](/guides/using-the-mcp-server)
- Add an **AI Chat** panel to the resume builder, allowing you to modify your resume through conversational AI directly within the editor. The chat uses tool-calling to apply JSON Patch operations to your resume in real-time, with visual feedback for each change.
- Add a system prompt and `patch_resume` tool for the AI chat, enabling structured, minimal-diff resume edits following RFC 6902 JSON Patch operations.
- Chat history is now persisted per resume in localStorage, so conversations are preserved across sessions.
- Fix rendering issues in the Lapras and Onyx resume templates.
- Improvements to the Combobox and ScrollArea UI components.
- Fix an issue with skills item rendering in the shared resume components.
- Update authentication configuration and auth route handling.
- Update the JSON Schema to reflect the latest resume data model.
- Update dependencies to the latest versions.
</Update>
<Update label="v5.0.6" description="8th February 2026">
- Implement Atomic Resume Patching API for fine-grained resume updates, allowing partial, atomic updates to resumes via a new PATCH endpoint. [#2692](https://github.com/amruthpillai/reactive-resume/pull/2692)
- The API endpoint `PUT /resume/{id}` now returns the updated resume object instead of void. Also, resume routing/services now use explicit DTOs for input and output schemas. [#2688](https://github.com/amruthpillai/reactive-resume/pull/2688)
- Add error logging for API server errors (server-side only) to improve debugging and reliability.
- Refactor and clean up imports/exports for clarity and maintainability.
- Added `.devcontainer` configuration for improved contributor development environment.
- Update dependencies to the latest versions.
- Add build status badge and documentation link to README.
- Sync latest translations from Crowdin (notably: French, other languages).
- Other minor fixes and improvements.
</Update>
<Update label="v5.0.5" description="31st January 2026">
- Implement Cover Letter functionality in the resume builder, allowing the user to create cover letters as custom sections. [(link)](/guides/adding-a-cover-letter)
- Implement full-screen mode for the rich text editor in the resume builder, allowing the user to write in a more focused environment.
- Implement a new custom section type: `summary`, which allows the user to add another "summary" like section to the resume.
- Implement a `useFormBlocker` hook to prevent the user from closing a dialog while the form has unsaved changes.
- Fix an issue where keywords spacing was not consistent in the interests section. [#2631](https://github.com/amruthpillai/reactive-resume/pull/2631)
- Fix an issue where the AI connection test was not working correctly, also return appropriate error messages for AI provider issues.
</Update>
<Update label="v5.0.4" description="28th January 2026">
- Bring back Undo/Redo functionality in the resume builder for improved editing experience.
- Arrange the sidebar builder dynamically based on the section type in each template. [#2564](https://github.com/amruthpillai/reactive-resume/pull/2603)
+2 -2
View File
@@ -299,13 +299,13 @@ pnpm run typecheck
```bash
docker compose -f compose.dev.yml logs seaweedfs
docker compose -f compose.dev.yml logs seaweedfs-create-bucket
docker compose -f compose.dev.yml logs seaweedfs_create_bucket
```
If the bucket wasn't created, restart the bucket creation service:
```bash
docker compose -f compose.dev.yml restart seaweedfs-create-bucket
docker compose -f compose.dev.yml restart seaweedfs_create_bucket
```
</Accordion>
+7 -1
View File
@@ -69,7 +69,13 @@
},
{
"group": "Integrations",
"pages": ["guides/using-the-api", "guides/using-ai", "guides/json-resume-schema"]
"pages": [
"guides/using-the-api",
"guides/using-the-patch-api",
"guides/using-the-mcp-server",
"guides/using-ai",
"guides/json-resume-schema"
]
},
{
"group": "Self-Hosting",
+165
View File
@@ -0,0 +1,165 @@
---
title: "Using the MCP Server"
description: "Connect Reactive Resume to AI tools like Claude Desktop, Cursor, and Codex using the Model Context Protocol"
---
The Reactive Resume MCP server lets you manage and modify your resumes through any MCP-compatible AI tool — Claude Desktop, Cursor, Codex, and more. It connects to the Reactive Resume API and exposes tools for listing, reading, and patching resumes using natural language.
## What is MCP?
The [Model Context Protocol (MCP)](https://modelcontextprotocol.io) is a standard that lets LLM-powered tools connect to external services. Instead of being limited to the built-in chat UI, you can use any MCP client to interact with your resumes.
## Prerequisites
<Steps>
<Step title="Create an API key">
Follow the [Using the API](/guides/using-the-api) guide to create an API key in your Reactive Resume dashboard.
</Step>
<Step title="Install Node.js">
The MCP server requires [Node.js](https://nodejs.org) version 18 or later.
</Step>
<Step title="Install dependencies">
From the Reactive Resume repository root, install dependencies (the MCP server uses the main project's dependencies):
```bash
cd /path/to/reactive-resume
pnpm install
```
</Step>
</Steps>
## Running the MCP server
The server is a single TypeScript entry point and is run with **tsx** (no build step). From the repository root:
```bash
npx tsx /path/to/reactive-resume/mcp/index.ts
```
The working directory must be the **repository root** so that `node_modules` (and thus `@modelcontextprotocol/sdk`) is resolved. Configure your MCP client with `cwd` set to the repo path.
## Configuration
### Claude Desktop
Add the following to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"reactive-resume": {
"command": "npx",
"args": ["tsx", "/path/to/reactive-resume/mcp/index.ts"],
"cwd": "/path/to/reactive-resume",
"env": {
"REACTIVE_RESUME_API_KEY": "your-api-key",
"REACTIVE_RESUME_URL": "https://rxresu.me"
}
}
}
}
```
<Info>
Replace `/path/to/reactive-resume` with the actual path to your cloned repository, and `your-api-key` with the API key you created.
</Info>
### Cursor
Add the following to `.cursor/mcp.json` in your project or home directory:
```json
{
"mcpServers": {
"reactive-resume": {
"command": "npx",
"args": ["tsx", "/path/to/reactive-resume/mcp/index.ts"],
"cwd": "/path/to/reactive-resume",
"env": {
"REACTIVE_RESUME_API_KEY": "your-api-key",
"REACTIVE_RESUME_URL": "https://rxresu.me"
}
}
}
}
```
## Available Tools
The MCP server exposes three tools:
| Tool | Description |
| --- | --- |
| `list_resumes` | List all your resumes with their IDs, names, tags, and status |
| `get_resume` | Get the full data of a specific resume by ID |
| `patch_resume` | Apply JSON Patch operations to modify a resume |
## Available Resources
| Resource | Description |
| --- | --- |
| `resume://{id}` | The full resume data as a readable JSON resource |
| `resume://schema` | The ResumeData JSON schema for understanding the data structure |
## Usage Examples
Once your MCP client is connected, you can use natural language to interact with your resumes:
### Browsing
- "List my resumes"
- "Show me my resume named 'Software Engineer'"
- "What skills are listed on my resume?"
### Editing
- "Update my name to Jane Doe"
- "Change my headline to Senior Software Engineer"
- "Add TypeScript to my skills with an Advanced proficiency level"
- "Add a new experience entry for my role as Staff Engineer at Acme Corp from Jan 2024 to Present"
- "Remove the third item from my skills section"
### Styling
- "Change the template to bronzor"
- "Set the primary color to blue"
- "Hide the interests section"
<Tip>
The AI will use `get_resume` to inspect your current resume before making changes with `patch_resume`. This ensures the correct JSON paths are used.
</Tip>
## Self-Hosting
If you're running a self-hosted Reactive Resume instance, set `REACTIVE_RESUME_URL` to your instance URL:
```json
{
"env": {
"REACTIVE_RESUME_API_KEY": "your-api-key",
"REACTIVE_RESUME_URL": "https://resume.example.com"
}
}
```
## Environment Variables
| Variable | Required | Default | Description |
| --- | --- | --- | --- |
| `REACTIVE_RESUME_API_KEY` | Yes | — | API key from Reactive Resume settings |
| `REACTIVE_RESUME_URL` | No | `https://rxresu.me` | Base URL of the Reactive Resume instance |
| `TRANSPORT` | No | `stdio` | Transport mode: `stdio` or `http` |
| `PORT` | No | `3100` | Port for streamable HTTP transport |
## Troubleshooting
| Issue | Solution |
| --- | --- |
| "REACTIVE_RESUME_API_KEY is required" | Set the `REACTIVE_RESUME_API_KEY` environment variable in your MCP client configuration |
| "API error (401)" | Your API key is invalid or expired. Create a new one in the dashboard |
| "API error (404)" | The resume ID doesn't exist. Use `list_resumes` to find valid IDs |
| "API error (403)" | The resume is locked. Unlock it in the Reactive Resume dashboard |
| Connection refused | Check that `REACTIVE_RESUME_URL` is correct and the instance is running |
| Module not found / Cannot find package | Ensure `cwd` is the repository root so the main project's `node_modules` is used |
+191
View File
@@ -0,0 +1,191 @@
---
title: "Using the Patch API"
description: "Learn how to partially update your resume using JSON Patch (RFC 6902) operations"
---
The Patch API lets you make small, targeted changes to your resume without sending the entire data object. Instead of replacing the whole resume with a `PUT`, you send a list of **JSON Patch** operations that describe exactly what to change.
This is based on the [JSON Patch (RFC 6902)](https://datatracker.ietf.org/doc/html/rfc6902) standard.
## When to Use PATCH vs PUT
| Use case | Method |
| --- | --- |
| Update a single field (e.g., name, headline) | **PATCH** |
| Add or remove an item in a section | **PATCH** |
| Change template, colors, or fonts | **PATCH** |
| Replace the entire resume data at once | **PUT** |
<Info>
The PATCH endpoint only modifies the resume `data` (the JSONB column). To update top-level resume properties like `name`, `slug`, `tags`, or `isPublic`, use the existing `PUT /resume/{id}` endpoint.
</Info>
## Authentication
All requests require your API key in the `x-api-key` header. See [Using the API](/guides/using-the-api) for how to create one.
<Info>
If you're self-hosting, replace `https://rxresu.me` with your instance URL. The API is served under `/api/openapi`.
</Info>
## Endpoint
```
PATCH /api/openapi/resume/{id}
```
### Request Body
The resume ID is taken from the URL path, so the request body only requires the `operations` array:
```json
{
"operations": [
{ "op": "replace", "path": "/basics/name", "value": "Jane Doe" }
]
}
```
Each operation is an object with the following properties:
| Property | Required | Description |
| --- | --- | --- |
| `op` | Yes | The operation to perform: `add`, `remove`, `replace`, `move`, `copy`, or `test` |
| `path` | Yes | A JSON Pointer (RFC 6901) to the target location in the resume data |
| `value` | For `add`, `replace`, `test` | The value to use for the operation |
| `from` | For `move`, `copy` | A JSON Pointer to the source location |
## Examples
### Replace a Basic Field
Update the resume holder's name and headline:
```bash
curl -X PATCH "https://rxresu.me/api/openapi/resume/YOUR_RESUME_ID" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"operations": [
{ "op": "replace", "path": "/basics/name", "value": "Jane Doe" },
{ "op": "replace", "path": "/basics/headline", "value": "Senior Software Engineer" }
]
}'
```
### Add an Experience Entry
Append a new item to the experience section:
```bash
curl -X PATCH "https://rxresu.me/api/openapi/resume/YOUR_RESUME_ID" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"operations": [
{
"op": "add",
"path": "/sections/experience/items/-",
"value": {
"id": "a1b2c3d4-0000-0000-0000-000000000000",
"hidden": false,
"company": "Acme Corp",
"position": "Staff Engineer",
"location": "San Francisco, CA",
"period": "Jan 2024 - Present",
"website": { "url": "https://acme.example.com", "label": "Acme Corp" },
"description": "<p>Leading the platform team.</p>"
}
}
]
}'
```
<Tip>
The path `/sections/experience/items/-` uses the special `-` index, which means "append to the end of the array".
To insert at a specific position, use a numeric index like `/sections/experience/items/0` for the beginning.
</Tip>
### Remove an Item from a Section
Remove the second skill (index `1`) from the skills section:
```bash
curl -X PATCH "https://rxresu.me/api/openapi/resume/YOUR_RESUME_ID" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"operations": [
{ "op": "remove", "path": "/sections/skills/items/1" }
]
}'
```
### Update Metadata (Template, Colors, Fonts)
Switch the template and update the primary color:
```bash
curl -X PATCH "https://rxresu.me/api/openapi/resume/YOUR_RESUME_ID" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"operations": [
{ "op": "replace", "path": "/metadata/template", "value": "bronzor" },
{ "op": "replace", "path": "/metadata/design/colors/primary", "value": "rgba(37, 99, 235, 1)" }
]
}'
```
### Test-Then-Replace (Optimistic Concurrency)
The `test` operation checks that a value matches before proceeding. If the test fails, the entire patch is rejected. This is useful to avoid overwriting changes made by another client:
```bash
curl -X PATCH "https://rxresu.me/api/openapi/resume/YOUR_RESUME_ID" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"operations": [
{ "op": "test", "path": "/basics/name", "value": "Albert Einstein" },
{ "op": "replace", "path": "/basics/name", "value": "Jane Doe" }
]
}'
```
If `/basics/name` is not `"Albert Einstein"` at the time of the request, the entire patch will fail with a `400` error and no changes will be applied.
### Move an Item Within a Section
Move the first experience item to the third position:
```bash
curl -X PATCH "https://rxresu.me/api/openapi/resume/YOUR_RESUME_ID" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"operations": [
{ "op": "move", "from": "/sections/experience/items/0", "path": "/sections/experience/items/2" }
]
}'
```
## Error Handling
| Status | Error Code | Description |
| --- | --- | --- |
| `400` | `INVALID_PATCH_OPERATIONS` | The operations are structurally invalid, target a non-existent path, or produce resume data that fails schema validation. |
| `401` | `UNAUTHORIZED` | Missing or invalid API key. |
| `404` | `NOT_FOUND` | The resume does not exist or does not belong to the authenticated user. |
| `403` | `RESUME_LOCKED` | The resume is locked and cannot be modified. Unlock it first. |
<Warning>
All operations in a single request are applied atomically. If any operation fails (including a `test`), none of the operations are applied.
</Warning>
## Tips
- **Fetch first, then patch.** Use `GET /resume/{id}` to inspect the current structure before crafting your operations. This helps you target the correct paths and array indices.
- **Use `test` for safety.** When updating a value you expect to be a specific value, combine `test` + `replace` to avoid accidentally overwriting concurrent changes.
- **Batch related changes.** You can send multiple operations in a single request. They are applied in order, so later operations can depend on earlier ones.
- **The `-` index appends.** When adding items to arrays, use `-` as the index (e.g., `/sections/skills/items/-`) to append to the end.
+1 -1
View File
@@ -184,7 +184,7 @@ services:
timeout: 5s
retries: 10
app:
reactive-resume:
image: amruthpillai/reactive-resume:latest
# image: ghcr.io/amruthpillai/reactive-resume:latest
restart: unless-stopped
+13 -15
View File
@@ -92,18 +92,18 @@ services:
timeout: 10s
retries: 3
app:
reactive_resume:
image: amruthpillai/reactive-resume:latest
restart: unless-stopped
environment:
- APP_URL=https://resume.${DOMAIN}
- PRINTER_APP_URL=http://app:3000
- PRINTER_APP_URL=http://reactive_resume:3000
- DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@postgres:5432/postgres
- PRINTER_ENDPOINT=http://printer:3000
- AUTH_SECRET=${AUTH_SECRET}
# Add other optional env vars as needed (SMTP, S3, OAuth, etc.)
volumes:
- app_data:/app/data
- reactive_resume_data:/app/data
networks:
- reactive_resume_network
depends_on:
@@ -130,7 +130,7 @@ networks:
volumes:
traefik_letsencrypt:
postgres_data:
app_data:
reactive_resume_data:
```
**Environment variables (`.env`):**
@@ -163,8 +163,6 @@ services:
- ./certs:/etc/nginx/certs:ro
networks:
- reactive_resume_network
depends_on:
- app
postgres:
image: postgres:latest
@@ -195,18 +193,18 @@ services:
networks:
- reactive_resume_network
app:
reactive_resume:
image: amruthpillai/reactive-resume:latest
restart: unless-stopped
environment:
- APP_URL=https://resume.${DOMAIN}
- PRINTER_APP_URL=http://app:3000
- PRINTER_APP_URL=http://reactive_resume:3000
- DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@postgres:5432/postgres
- PRINTER_ENDPOINT=http://printer:3000
- AUTH_SECRET=${AUTH_SECRET}
# Add other optional env vars as needed (SMTP, S3, OAuth, etc.)
volumes:
- app_data:/app/data
- reactive_resume_data:/app/data
networks:
- reactive_resume_network
depends_on:
@@ -226,7 +224,7 @@ networks:
volumes:
postgres_data:
app_data:
reactive_resume_data:
```
**nginx configuration (`nginx.conf`):**
@@ -238,7 +236,7 @@ events {
http {
upstream reactive_resume {
server app:3000;
server reactive_resume:3000;
}
# Redirect HTTP to HTTPS
@@ -384,13 +382,13 @@ services:
mode: replicated
replicas: 1
app:
reactive_resume:
image: ghcr.io/amruthpillai/reactive-resume:latest
networks:
- traefik_network
- reactive_resume_network
volumes:
- reactive_resume_app_data:/app/data
- reactive_resume_data:/app/data
environment:
- APP_URL=$APP_URL
# If using browserless with token auth, include the token in the URL:
@@ -447,8 +445,8 @@ volumes:
name: reactive_resume_postgres_data
reactive_resume_seaweedfs_data:
name: reactive_resume_seaweedfs_data
reactive_resume_app_data:
name: reactive_resume_app_data
reactive_resume_data:
name: reactive_resume_data
```
**Deploy the stack:**
+1 -1
View File
File diff suppressed because one or more lines are too long
+7 -1
View File
@@ -4,6 +4,12 @@
"tailwind": { "entry": ["src/styles.css"] },
"project": ["src/**/*.{js,jsx,ts,tsx,mdx,css}"],
"ignoreBinaries": ["mint"],
"ignoreDependencies": ["npm-check-updates", "reflect-metadata", "node-addon-api", "node-gyp"],
"ignoreDependencies": [
"@modelcontextprotocol/sdk",
"npm-check-updates",
"reflect-metadata",
"node-addon-api",
"node-gyp"
],
"ignore": ["src/schema/**/*.ts", "src/components/**/*.{ts,tsx}", "src/routeTree.gen.ts"]
}
BIN
View File
Binary file not shown.
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: am\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:14\n"
"Last-Translator: \n"
"Language-Team: Amharic\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -207,6 +207,10 @@ msgstr "ከዚህ በኋላ ረድፍ ያክሉ"
msgid "Add Row Before"
msgstr "ከዚህ በፊት ረድፍ ያክሉ"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "አፍሪካንስ"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "አልባኒኛ"
@@ -340,6 +348,10 @@ msgstr "የስልጠና መስክ"
msgid "Artificial Intelligence"
msgstr "አርቲፊሻል ኢንተለጀንስ"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "የመገናኛ መጠን"
@@ -534,6 +546,10 @@ msgstr "ቻይንኛ (ባለባለት)"
msgid "Circle"
msgstr "ክብ"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "ምርጫን ሰርዝ"
@@ -945,6 +961,10 @@ msgstr "የየታሪክዎን ቅጂ በመፍጠር ላይ…"
msgid "Dutch"
msgstr "ደች"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "ትምህርት"
@@ -1896,6 +1916,10 @@ msgstr "የይለፍ ቃልዎ አስታውሰዎ? <0><1>አሁን ይግቡ <2/
msgid "Remove Password"
msgstr "የይለፍ ቃል አስወግድ"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "የይለፍ ቃል ጥበቃን በማስወገድ ላይ…"
@@ -2081,6 +2105,18 @@ msgstr "ማካፈል"
msgid "Show"
msgstr "አሳይ"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "የጎን አሞሌ"
@@ -2345,6 +2381,10 @@ msgstr "ከዚያም መተግበሪያው ሰጥቶት የ 6 አሃዝ ኮድ
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "PDF በማመንጨት ጊዜ ችግኝ ተፈጥሯል፣ እባክዎን ጥቂት ጊዜ በኋላ ደግመው ይሞክሩ።"
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "የየታሪክ ማቅረቢያን አዘምን"
msgid "Update your password"
msgstr "የይለፍ ቃልዎን አዘምኑ"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "የይለፍ ቃልዎን በመዘመን ላይ…"
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ar\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:18\n"
"PO-Revision-Date: 2026-01-31 12:13\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"
@@ -207,6 +207,10 @@ msgstr "إضافة صف بعد"
msgid "Add Row Before"
msgstr "إضافة صف قبل"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "الأفريقانس"
msgid "AI"
msgstr "الذكاء الاصطناعي"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "الألبانية"
@@ -340,6 +348,10 @@ msgstr "مجال الدراسة"
msgid "Artificial Intelligence"
msgstr "الذكاء الاصطناعي"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "نسبة الأبعاد"
@@ -534,6 +546,10 @@ msgstr "الصينية (التقليدية)"
msgid "Circle"
msgstr "دائرة"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "مسح التحديد"
@@ -945,6 +961,10 @@ msgstr "جاري استنساخ سيرتك الذاتية..."
msgid "Dutch"
msgstr "الهولندية"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "التعليم"
@@ -1896,6 +1916,10 @@ msgstr "هل تذكّرت كلمة المرور؟ <0><1>سجّل الدخول ا
msgid "Remove Password"
msgstr "إزالة كلمة المرور"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "جاري إزالة حماية كلمة المرور..."
@@ -2081,6 +2105,18 @@ msgstr "المشاركة"
msgid "Show"
msgstr "إظهار"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "الشريط الجانبي"
@@ -2345,6 +2381,10 @@ msgstr "بعد ذلك، أدخِل الرمز المكوَّن من 6 أرقام
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "حدثت مشكلة أثناء إنشاء ملف PDF، يُرجى المحاولة مرة أخرى بعد فترة."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "تحديث السيرة الذاتية"
msgid "Update your password"
msgstr "حدّث كلمة المرور الخاصة بك"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "جاري تحديث كلمة المرور..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: az\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:14\n"
"Last-Translator: \n"
"Language-Team: Azerbaijani\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -207,6 +207,10 @@ msgstr "Sonra Sətir əlavə et"
msgid "Add Row Before"
msgstr "Əvvəl Sətir əlavə et"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Afrikaans"
msgid "AI"
msgstr "Süni İntellekt"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Albanca"
@@ -340,6 +348,10 @@ msgstr "Təhsil sahəsi"
msgid "Artificial Intelligence"
msgstr "Süni İntellekt"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Propor­siya"
@@ -534,6 +546,10 @@ msgstr "Çin (Ənənəvi)"
msgid "Circle"
msgstr "Dairə"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Seçimi təmizlə"
@@ -945,6 +961,10 @@ msgstr "Özgeçmişiniz dublikat edilir..."
msgid "Dutch"
msgstr "Niderland"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Təhsil"
@@ -1896,6 +1916,10 @@ msgstr "Parolunuzu xatırladınız? <0><1>İndi daxil olun <2/></1></0>"
msgid "Remove Password"
msgstr "Parolu Sil"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Parol qorunması silinir..."
@@ -2081,6 +2105,18 @@ msgstr "Paylaşma"
msgid "Show"
msgstr "Göstər"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Yan panel"
@@ -2345,6 +2381,10 @@ msgstr "Sonra, davam etmək üçün tətbiqin təqdim etdiyi 6 rəqəmli kodu da
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "PDF yaradılarkən problem yarandı, zəhmət olmasa, bir müddət sonra yenidən cəhd edin."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "Özgeçmişi Yenilə"
msgid "Update your password"
msgstr "Parolunuzu yeniləyin"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Parolunuz yenilənir..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: bg\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:18\n"
"PO-Revision-Date: 2026-01-31 12:13\n"
"Last-Translator: \n"
"Language-Team: Bulgarian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -207,6 +207,10 @@ msgstr "Добавяне на ред след"
msgid "Add Row Before"
msgstr "Добавяне на ред преди"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Африканс"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Албански"
@@ -340,6 +348,10 @@ msgstr "Област на обучение"
msgid "Artificial Intelligence"
msgstr "Изкуствен интелект"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Съотношение на страните"
@@ -534,6 +546,10 @@ msgstr "Китайски (традиционен)"
msgid "Circle"
msgstr "Кръг"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Изчистване на избора"
@@ -945,6 +961,10 @@ msgstr "Вашата автобиография се дублира..."
msgid "Dutch"
msgstr "Нидерландски"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Образование"
@@ -1896,6 +1916,10 @@ msgstr "Спомнихте си паролата? <0><1>Влезте сега <2
msgid "Remove Password"
msgstr "Премахване на парола"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Премахване на защитата с парола..."
@@ -2081,6 +2105,18 @@ msgstr "Споделяне"
msgid "Show"
msgstr "Показване"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Странична лента"
@@ -2345,6 +2381,10 @@ msgstr "След това въведете шестцифрения код, ко
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Възникна проблем при генерирането на PDF, моля, опитайте отново след известно време."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "Актуализиране на автобиография"
msgid "Update your password"
msgstr "Актуализирайте паролата си"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Актуализиране на паролата ви..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: bn\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:14\n"
"Last-Translator: \n"
"Language-Team: Bengali\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -207,6 +207,10 @@ msgstr "পরের দিকে সারি যোগ করুন"
msgid "Add Row Before"
msgstr "আগের দিকে সারি যোগ করুন"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "আফ্রিকান্স"
msgid "AI"
msgstr "এআই"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "আলবেনিয়ান"
@@ -340,6 +348,10 @@ msgstr "অধ্যয়নের এলাকা"
msgid "Artificial Intelligence"
msgstr "কৃত্রিম বুদ্ধিমত্তা"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "আকারের অনুপাত"
@@ -534,6 +546,10 @@ msgstr "চীনা (প্রচলিত)"
msgid "Circle"
msgstr "বৃত্ত"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "নির্বাচন মুছে ফেলুন"
@@ -945,6 +961,10 @@ msgstr "আপনার জীবনবৃত্তান্ত ডুপ্ল
msgid "Dutch"
msgstr "ডাচ"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "শিক্ষা"
@@ -1896,6 +1916,10 @@ msgstr "পাসওয়ার্ড মনে আছে? <0><1>এখনই
msgid "Remove Password"
msgstr "পাসওয়ার্ড সরিয়ে ফেলুন"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "পাসওয়ার্ড সুরক্ষা সরানো হচ্ছে..."
@@ -2081,6 +2105,18 @@ msgstr "শেয়ারিং"
msgid "Show"
msgstr "দেখান"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "সাইডবার"
@@ -2345,6 +2381,10 @@ msgstr "তারপর, অ্যাপটি যে ৬ সংখ্যার
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "PDF তৈরি করার সময় একটি সমস্যা হয়েছে, অনুগ্রহ করে কিছু সময় পরে আবার চেষ্টা করুন।"
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "জীবনবৃত্তান্ত আপডেট করুন"
msgid "Update your password"
msgstr "আপনার পাসওয়ার্ড আপডেট করুন"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "আপনার পাসওয়ার্ড আপডেট করা হচ্ছে..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ca\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:18\n"
"PO-Revision-Date: 2026-01-31 12:13\n"
"Last-Translator: \n"
"Language-Team: Catalan\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -207,6 +207,10 @@ msgstr "Afegeix una fila després"
msgid "Add Row Before"
msgstr "Afegeix una fila abans"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Afrikaans"
msgid "AI"
msgstr "IA"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Albanès"
@@ -340,6 +348,10 @@ msgstr "Àrea d’estudi"
msgid "Artificial Intelligence"
msgstr "Intel·ligència artificial"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Relació d’aspecte"
@@ -534,6 +546,10 @@ msgstr "Xinès (tradicional)"
msgid "Circle"
msgstr "Cercle"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Esborra la selecció"
@@ -945,6 +961,10 @@ msgstr "S’està duplicant el currículum..."
msgid "Dutch"
msgstr "Neerlandès"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Educació"
@@ -1896,6 +1916,10 @@ msgstr "Recordes la contrasenya? <0><1>Inicia sessió ara <2/></1></0>"
msgid "Remove Password"
msgstr "Elimina la contrasenya"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "S’està desactivant la protecció amb contrasenya..."
@@ -2081,6 +2105,18 @@ msgstr "Compartició"
msgid "Show"
msgstr "Mostra"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Barra lateral"
@@ -2345,6 +2381,10 @@ msgstr "A continuació, introdueix el codi de 6 dígits que proporciona l’apli
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "S’ha produït un problema en generar el PDF, torna-ho a provar més tard."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "Actualitza el currículum"
msgid "Update your password"
msgstr "Actualitza la contrasenya"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "S’està actualitzant la contrasenya..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: cs\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:18\n"
"PO-Revision-Date: 2026-01-31 12:13\n"
"Last-Translator: \n"
"Language-Team: Czech\n"
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
@@ -207,6 +207,10 @@ msgstr "Přidat řádek za"
msgid "Add Row Before"
msgstr "Přidat řádek před"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Afrikánština"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Albánština"
@@ -340,6 +348,10 @@ msgstr "Studijní obor"
msgid "Artificial Intelligence"
msgstr "Umělá inteligence"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Poměr stran"
@@ -534,6 +546,10 @@ msgstr "Čínština (tradiční)"
msgid "Circle"
msgstr "Kruh"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Zrušit výběr"
@@ -945,6 +961,10 @@ msgstr "Duplikování životopisu…"
msgid "Dutch"
msgstr "Nizozemština"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Vzdělání"
@@ -1896,6 +1916,10 @@ msgstr "Pamatujete si heslo? <0><1>Přihlaste se nyní <2/></1></0>"
msgid "Remove Password"
msgstr "Odebrat heslo"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Odstraňování ochrany heslem…"
@@ -2081,6 +2105,18 @@ msgstr "Sdílení"
msgid "Show"
msgstr "Zobrazit"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Postranní panel"
@@ -2345,6 +2381,10 @@ msgstr "Poté zadejte šestimístný kód, který aplikace poskytne, abyste mohl
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Při generování PDF došlo k problému, zkuste to prosím znovu za chvíli."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "Aktualizovat životopis"
msgid "Update your password"
msgstr "Aktualizujte své heslo"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Aktualizace hesla…"
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: da\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:18\n"
"PO-Revision-Date: 2026-01-31 12:13\n"
"Last-Translator: \n"
"Language-Team: Danish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -207,6 +207,10 @@ msgstr "Tilføj række efter"
msgid "Add Row Before"
msgstr "Tilføj række før"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Afrikaans"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Albansk"
@@ -340,6 +348,10 @@ msgstr "Studieområde"
msgid "Artificial Intelligence"
msgstr "Kunstig intelligens"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Billedformat"
@@ -534,6 +546,10 @@ msgstr "Kinesisk (traditionelt)"
msgid "Circle"
msgstr "Cirkel"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Ryd markering"
@@ -945,6 +961,10 @@ msgstr "Duplikerer dit CV..."
msgid "Dutch"
msgstr "Hollandsk"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Uddannelse"
@@ -1896,6 +1916,10 @@ msgstr "Kan du huske din adgangskode? <0><1>Log ind nu <2/></1></0>"
msgid "Remove Password"
msgstr "Fjern adgangskode"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Fjerner adgangskodebeskyttelse..."
@@ -2081,6 +2105,18 @@ msgstr "Deling"
msgid "Show"
msgstr "Vis"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Sidebjælke"
@@ -2345,6 +2381,10 @@ msgstr "Indtast derefter den 6-cifrede kode, som appen giver, for at fortsætte.
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Der opstod et problem under generering af PDF'en, prøv igen om lidt."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "Opdater CV"
msgid "Update your password"
msgstr "Opdater din adgangskode"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Opdaterer din adgangskode..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: de\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:18\n"
"PO-Revision-Date: 2026-01-31 12:13\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -207,6 +207,10 @@ msgstr "Zeile danach einfügen"
msgid "Add Row Before"
msgstr "Zeile davor einfügen"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Afrikaans"
msgid "AI"
msgstr "KI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Albanisch"
@@ -340,6 +348,10 @@ msgstr "Studienfach"
msgid "Artificial Intelligence"
msgstr "Künstliche Intelligenz"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Seitenverhältnis"
@@ -534,6 +546,10 @@ msgstr "Chinesisch (traditionell)"
msgid "Circle"
msgstr "Kreis"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Auswahl löschen"
@@ -945,6 +961,10 @@ msgstr "Ihr Lebenslauf wird dupliziert..."
msgid "Dutch"
msgstr "Niederländisch"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Ausbildung"
@@ -1896,6 +1916,10 @@ msgstr "Sie erinnern sich wieder an Ihr Passwort? <0><1>Jetzt anmelden <2/></1><
msgid "Remove Password"
msgstr "Passwort entfernen"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Passwortschutz wird entfernt..."
@@ -2081,6 +2105,18 @@ msgstr "Teilen"
msgid "Show"
msgstr "Einblenden"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Seitenleiste"
@@ -2345,6 +2381,10 @@ msgstr "Geben Sie dann den 6-stelligen Code ein, den die App bereitstellt, um fo
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Beim Erzeugen des PDFs ist ein Problem aufgetreten, bitte versuche es in einiger Zeit erneut."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "Lebenslauf aktualisieren"
msgid "Update your password"
msgstr "Aktualisieren Sie Ihr Passwort"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Ihr Passwort wird aktualisiert..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: el\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:18\n"
"PO-Revision-Date: 2026-01-31 12:13\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -207,6 +207,10 @@ msgstr "Προσθήκη γραμμής μετά"
msgid "Add Row Before"
msgstr "Προσθήκη γραμμής πριν"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Αφρικάανς"
msgid "AI"
msgstr "ΤΝ"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Αλβανικά"
@@ -340,6 +348,10 @@ msgstr "Τομέας σπουδών"
msgid "Artificial Intelligence"
msgstr "Τεχνητή Νοημοσύνη"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Αναλογία διαστάσεων"
@@ -534,6 +546,10 @@ msgstr "Κινέζικα (Παραδοσιακά)"
msgid "Circle"
msgstr "Κύκλος"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Απαλοιφή επιλογής"
@@ -945,6 +961,10 @@ msgstr "Δημιουργία αντιγράφου του βιογραφικού
msgid "Dutch"
msgstr "Ολλανδικά"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Εκπαίδευση"
@@ -1896,6 +1916,10 @@ msgstr "Θυμάστε τον κωδικό πρόσβασής σας; <0><1>Συ
msgid "Remove Password"
msgstr "Κατάργηση κωδικού πρόσβασης"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Κατάργηση προστασίας με κωδικό πρόσβασης..."
@@ -2081,6 +2105,18 @@ msgstr "Κοινοποίηση"
msgid "Show"
msgstr "Εμφάνιση"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Πλαϊνή μπάρα"
@@ -2345,6 +2381,10 @@ msgstr "Στη συνέχεια, εισαγάγετε τον 6ψήφιο κωδ
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Παρουσιάστηκε πρόβλημα κατά τη δημιουργία του PDF, δοκιμάστε ξανά σε λίγο."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "Ενημέρωση βιογραφικού σημειώματος"
msgid "Update your password"
msgstr "Ενημερώστε τον κωδικό πρόσβασής σας"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Ενημέρωση του κωδικού πρόσβασής σας..."
+44
View File
@@ -202,6 +202,10 @@ msgstr "Add Row After"
msgid "Add Row Before"
msgstr "Add Row Before"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr "Added"
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -220,6 +224,10 @@ msgstr "Afrikaans"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr "AI Chat"
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Albanian"
@@ -335,6 +343,10 @@ msgstr "Area of Study"
msgid "Artificial Intelligence"
msgstr "Artificial Intelligence"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr "Ask me to update your resume..."
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Aspect Ratio"
@@ -529,6 +541,10 @@ msgstr "Chinese (Traditional)"
msgid "Circle"
msgstr "Circle"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr "Clear chat history"
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Clear selection"
@@ -940,6 +956,10 @@ msgstr "Duplicating your resume..."
msgid "Dutch"
msgstr "Dutch"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr "e.g. Change my name to..."
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Education"
@@ -1891,6 +1911,10 @@ msgstr "Remember your password? <0><1>Sign in now <2/></1></0>"
msgid "Remove Password"
msgstr "Remove Password"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr "Removed"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Removing password protection..."
@@ -2076,6 +2100,18 @@ msgstr "Sharing"
msgid "Show"
msgstr "Show"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr "Show link in title"
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Sidebar"
@@ -2340,6 +2376,10 @@ msgstr "Then, enter the 6 digit code that the app provides to continue."
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "There was a problem while generating the PDF, please try again in some time."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr "Thinking..."
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2603,6 +2643,10 @@ msgstr "Update Resume"
msgid "Update your password"
msgstr "Update your password"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr "Updated"
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Updating your password..."
+58 -14
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-01-31 01:18\n"
"PO-Revision-Date: 2026-01-31 15:33\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -207,6 +207,10 @@ msgstr "Añadir fila después"
msgid "Add Row Before"
msgstr "Añadir fila antes"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Afrikáans"
msgid "AI"
msgstr "IA"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Albanés"
@@ -299,7 +307,7 @@ msgstr "Árabe"
#: src/hooks/use-form-blocker.tsx
msgid "Are you sure you want to close this dialog?"
msgstr ""
msgstr "¿Estás seguro de que deseas cerrar este diálogo?"
#: src/routes/dashboard/settings/api-keys.tsx
msgid "Are you sure you want to delete this API key?"
@@ -340,6 +348,10 @@ msgstr "Área de estudio"
msgid "Artificial Intelligence"
msgstr "Inteligencia artificial"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Relación de aspecto"
@@ -534,6 +546,10 @@ msgstr "Chino (tradicional)"
msgid "Circle"
msgstr "Círculo"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Borrar selección"
@@ -577,7 +593,7 @@ msgstr "Conectar"
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
msgstr ""
msgstr "Contenido"
#: src/dialogs/auth/enable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx
@@ -621,7 +637,7 @@ msgstr "Copiar URL"
#: src/utils/resume/section.tsx
msgid "Cover Letter"
msgstr ""
msgstr "Carta de presentación"
#: src/dialogs/api-key/create.tsx
#: src/dialogs/resume/index.tsx
@@ -662,7 +678,7 @@ msgstr "Crear una nueva certificación"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Create a new cover letter"
msgstr ""
msgstr "Crear una nueva carta de presentación"
#: src/dialogs/resume/sections/custom.tsx
msgid "Create a new custom section"
@@ -713,7 +729,7 @@ msgstr "Crear una nueva habilidad"
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Create a new summary item"
msgstr ""
msgstr "Crear una nueva entrada del resumen"
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Create a new volunteer experience"
@@ -945,6 +961,10 @@ msgstr "Duplicando tu currículum..."
msgid "Dutch"
msgstr "Neerlandés"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Formación académica"
@@ -1035,7 +1055,7 @@ msgstr "Todo lo que necesitas para crear, personalizar y compartir currículums
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr ""
msgstr "Salir de pantalla completa"
#: src/utils/resume/section.tsx
msgid "Experience"
@@ -1147,7 +1167,7 @@ msgstr "Ancho completo"
#: src/components/input/rich-input.tsx
msgid "Fullscreen"
msgstr ""
msgstr "Pantalla completa"
#: src/dialogs/resume/index.tsx
msgid "Generate a random name"
@@ -1429,7 +1449,7 @@ msgstr "Obtén más información sobre cómo ajustar el contenido en una página
#: src/hooks/use-form-blocker.tsx
msgid "Leave"
msgstr ""
msgstr "Salir"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "Leave empty to reset the title to the original."
@@ -1861,7 +1881,7 @@ msgstr "Reactive Resume es de código abierto, centrado en la privacidad y compl
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr ""
msgstr "Destinatario"
#: src/components/level/combobox.tsx
msgid "Rectangle"
@@ -1896,6 +1916,10 @@ msgstr "¿Recuerdas tu contraseña? <0><1>Inicia sesión ahora <2/></1></0>"
msgid "Remove Password"
msgstr "Quitar contraseña"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Quitando la protección con contraseña..."
@@ -2081,6 +2105,18 @@ msgstr "Compartir"
msgid "Show"
msgstr "Mostrar"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr "Mostrar enlace en el título"
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Barra lateral"
@@ -2220,7 +2256,7 @@ msgstr "Estadísticas"
#: src/hooks/use-form-blocker.tsx
msgid "Stay"
msgstr ""
msgstr "Continuar"
#: src/components/input/rich-input.tsx
msgid "Strike"
@@ -2345,6 +2381,10 @@ msgstr "Luego, introduce el código de 6 dígitos que te proporciona la aplicaci
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Ha habido un problema al generar el PDF, inténtalo de nuevo dentro de un rato."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2545,7 +2585,7 @@ msgstr "Actualizar una certificación existente"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Update an existing cover letter"
msgstr ""
msgstr "Actualizar la carta de presentación"
#: src/dialogs/resume/sections/custom.tsx
msgid "Update an existing custom section"
@@ -2589,7 +2629,7 @@ msgstr "Actualizar una habilidad existente"
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Update an existing summary item"
msgstr ""
msgstr "Actualizar una entrada del perfil"
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Update an existing volunteer experience"
@@ -2608,6 +2648,10 @@ msgstr "Actualizar currículum"
msgid "Update your password"
msgstr "Actualiza tu contraseña"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Actualizando tu contraseña..."
@@ -2754,7 +2798,7 @@ msgstr "Después de eliminarla, ya no podrás usar la clave de acceso \"{0}\" pa
#: src/hooks/use-form-blocker.tsx
msgid "You have unsaved changes that will be lost."
msgstr ""
msgstr "Tienes cambios sin guardar que se perderán."
#: src/routes/auth/forgot-password.tsx
#: src/routes/auth/register.tsx
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: fa\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:14\n"
"Last-Translator: \n"
"Language-Team: Persian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -207,6 +207,10 @@ msgstr "افزودن ردیف بعد از این"
msgid "Add Row Before"
msgstr "افزودن ردیف قبل از این"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "آفریکانس"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "آلبانیایی"
@@ -340,6 +348,10 @@ msgstr "حوزهٔ تحصیل"
msgid "Artificial Intelligence"
msgstr "هوش مصنوعی"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "نسبت تصویر"
@@ -534,6 +546,10 @@ msgstr "چینی (سنتی)"
msgid "Circle"
msgstr "دایره"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "پاک کردن انتخاب"
@@ -945,6 +961,10 @@ msgstr "در حال تکثیر رزومه شما..."
msgid "Dutch"
msgstr "هلندی"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "تحصیلات"
@@ -1896,6 +1916,10 @@ msgstr "گذرواژه‌تان را به یاد آوردید؟ <0><1>همین
msgid "Remove Password"
msgstr "حذف گذرواژه"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "در حال حذف حفاظت با گذرواژه..."
@@ -2081,6 +2105,18 @@ msgstr "اشتراک‌گذاری"
msgid "Show"
msgstr "نمایش"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "نوار کناری"
@@ -2345,6 +2381,10 @@ msgstr "سپس، کد ۶ رقمی که اپ در اختیار شما می‌گذ
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "هنگام تولید PDF مشکلی پیش آمد، لطفاً بعداً دوباره تلاش کنید."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "به‌روزرسانی رزومه"
msgid "Update your password"
msgstr "گذرواژهٔ خود را به‌روزرسانی کنید"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "در حال به‌روزرسانی گذرواژه شما..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: fi\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:13\n"
"Last-Translator: \n"
"Language-Team: Finnish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -207,6 +207,10 @@ msgstr "Lisää rivi jälkeen"
msgid "Add Row Before"
msgstr "Lisää rivi ennen"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "afrikaans"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "albania"
@@ -340,6 +348,10 @@ msgstr "Opintoala"
msgid "Artificial Intelligence"
msgstr "Tekoäly"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Kuvasuhde"
@@ -534,6 +546,10 @@ msgstr "kiina (perinteinen)"
msgid "Circle"
msgstr "Ympyrä"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Tyhjennä valinta"
@@ -945,6 +961,10 @@ msgstr "Monistetaan ansioluetteloasi..."
msgid "Dutch"
msgstr "hollanti"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Koulutus"
@@ -1896,6 +1916,10 @@ msgstr "Muistatko salasanasi? <0><1>Kirjaudu sisään nyt <2/></1></0>"
msgid "Remove Password"
msgstr "Poista salasana"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Poistetaan salasanasuojausta..."
@@ -2081,6 +2105,18 @@ msgstr "Jakaminen"
msgid "Show"
msgstr "Näytä"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Sivupalkki"
@@ -2345,6 +2381,10 @@ msgstr "Syötä sitten sovelluksen antama kuusinumeroinen koodi jatkaaksesi."
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "PDF:n luonnissa ilmeni ongelma, yritä hetken kuluttua uudelleen."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "Päivitä ansioluettelo"
msgid "Update your password"
msgstr "Päivitä salasanasi"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Päivitetään salasanaasi..."
+58 -14
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-01-31 01:18\n"
"PO-Revision-Date: 2026-02-05 12:19\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -207,6 +207,10 @@ msgstr "Ajouter une ligne après"
msgid "Add Row Before"
msgstr "Ajouter une ligne avant"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Afrikaans"
msgid "AI"
msgstr "IA"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Albanais"
@@ -299,7 +307,7 @@ msgstr "Arabe"
#: src/hooks/use-form-blocker.tsx
msgid "Are you sure you want to close this dialog?"
msgstr ""
msgstr "Êtes-vous sûr de vouloir supprimer cet élément ?"
#: src/routes/dashboard/settings/api-keys.tsx
msgid "Are you sure you want to delete this API key?"
@@ -340,6 +348,10 @@ msgstr "Domaine d'étude"
msgid "Artificial Intelligence"
msgstr "Intelligence artificielle"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Format d'image"
@@ -534,6 +546,10 @@ msgstr "Chinois (traditionnel)"
msgid "Circle"
msgstr "Cercle"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Effacer la sélection"
@@ -577,7 +593,7 @@ msgstr "Se connecter"
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
msgstr ""
msgstr "Contenu"
#: src/dialogs/auth/enable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx
@@ -621,7 +637,7 @@ msgstr "Copier l'URL"
#: src/utils/resume/section.tsx
msgid "Cover Letter"
msgstr ""
msgstr "Lettre de motivation"
#: src/dialogs/api-key/create.tsx
#: src/dialogs/resume/index.tsx
@@ -662,7 +678,7 @@ msgstr "Créer une nouvelle certification"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Create a new cover letter"
msgstr ""
msgstr "Créez une nouvelle lettre de motivation"
#: src/dialogs/resume/sections/custom.tsx
msgid "Create a new custom section"
@@ -713,7 +729,7 @@ msgstr "Créer une nouvelle compétence"
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Create a new summary item"
msgstr ""
msgstr "Créer un nouvel élément de synthèse"
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Create a new volunteer experience"
@@ -945,6 +961,10 @@ msgstr "Duplication de votre CV..."
msgid "Dutch"
msgstr "Néerlandais"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Formation"
@@ -1035,7 +1055,7 @@ msgstr "Tout ce dont vous avez besoin pour créer, personnaliser et partager des
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr ""
msgstr "Quitter le mode plein écran"
#: src/utils/resume/section.tsx
msgid "Experience"
@@ -1147,7 +1167,7 @@ msgstr "Pleine largeur"
#: src/components/input/rich-input.tsx
msgid "Fullscreen"
msgstr ""
msgstr "Plein écran"
#: src/dialogs/resume/index.tsx
msgid "Generate a random name"
@@ -1429,7 +1449,7 @@ msgstr "En savoir plus sur la manière d'adapter le contenu d'une page"
#: src/hooks/use-form-blocker.tsx
msgid "Leave"
msgstr ""
msgstr "Quitter"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "Leave empty to reset the title to the original."
@@ -1861,7 +1881,7 @@ msgstr "Reactive Resume est un logiciel libre, respectueux de la vie privée et
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr ""
msgstr "Destinataire"
#: src/components/level/combobox.tsx
msgid "Rectangle"
@@ -1896,6 +1916,10 @@ msgstr "Vous vous souvenez de votre mot de passe ? <0><1>Connectez-vous maintena
msgid "Remove Password"
msgstr "Supprimer le mot de passe"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Suppression de la protection par mot de passe..."
@@ -2081,6 +2105,18 @@ msgstr "Partage"
msgid "Show"
msgstr "Afficher"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr "Afficher le lien dans le titre"
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Encart"
@@ -2220,7 +2256,7 @@ msgstr "Statistiques"
#: src/hooks/use-form-blocker.tsx
msgid "Stay"
msgstr ""
msgstr "Rester"
#: src/components/input/rich-input.tsx
msgid "Strike"
@@ -2345,6 +2381,10 @@ msgstr "Ensuite, entrez le code à 6 chiffres fourni par l'application pour cont
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Un problème est survenu lors de la génération du PDF, veuillez réessayer dans quelque temps."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2545,7 +2585,7 @@ msgstr "Modifier une certification existante"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Update an existing cover letter"
msgstr ""
msgstr "Modifier une lettre de motivation existante"
#: src/dialogs/resume/sections/custom.tsx
msgid "Update an existing custom section"
@@ -2589,7 +2629,7 @@ msgstr "Modifier une compétence existante"
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Update an existing summary item"
msgstr ""
msgstr "Mise à jour d'un élément de synthèse existant"
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Update an existing volunteer experience"
@@ -2608,6 +2648,10 @@ msgstr "Modifier le CV"
msgid "Update your password"
msgstr "Modifier votre mot de passe"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Mise à jour de votre mot de passe..."
@@ -2754,7 +2798,7 @@ msgstr "Vous ne pouvez plus utiliser la clé d'accès \"{0}\" pour vous connecte
#: src/hooks/use-form-blocker.tsx
msgid "You have unsaved changes that will be lost."
msgstr ""
msgstr "Vous avez des modifications non enregistrées qui seront perdues."
#: src/routes/auth/forgot-password.tsx
#: src/routes/auth/register.tsx
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: he\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:13\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"
@@ -207,6 +207,10 @@ msgstr "הוספת שורה אחרי"
msgid "Add Row Before"
msgstr "הוספת שורה לפני"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "אפריקאנס"
msgid "AI"
msgstr "בינה מלאכותית"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "אלבנית"
@@ -340,6 +348,10 @@ msgstr "תחום לימודים"
msgid "Artificial Intelligence"
msgstr "בינה מלאכותית"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "יחס גובה־רוחב"
@@ -534,6 +546,10 @@ msgstr "סינית (מסורתית)"
msgid "Circle"
msgstr "עיגול"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "ניקוי הבחירה"
@@ -945,6 +961,10 @@ msgstr "משכפל את קורות החיים שלך..."
msgid "Dutch"
msgstr "הולנדית"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "השכלה"
@@ -1896,6 +1916,10 @@ msgstr "נזכרת בסיסמה? <0><1>התחברות עכשיו <2/></1></0>"
msgid "Remove Password"
msgstr "הסרת סיסמה"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "מסיר את ההגנה באמצעות סיסמה..."
@@ -2081,6 +2105,18 @@ msgstr "שיתוף"
msgid "Show"
msgstr "הצגה"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "סרגל צד"
@@ -2345,6 +2381,10 @@ msgstr "לאחר מכן, הזן את הקוד בן 6 הספרות שהאפליק
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "אירעה בעיה בעת יצירת קובץ ה־PDF, נא לנסות שוב מאוחר יותר."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "עדכון קורות חיים"
msgid "Update your password"
msgstr "עדכון הסיסמה שלך"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "מעדכן את הסיסמה שלך..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: hi\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:14\n"
"Last-Translator: \n"
"Language-Team: Hindi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -207,6 +207,10 @@ msgstr "इसके बाद पंक्ति जोड़ें"
msgid "Add Row Before"
msgstr "इसके पहले पंक्ति जोड़ें"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "अफ्रीकान्स"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "अल्बानियाई"
@@ -340,6 +348,10 @@ msgstr "अध्ययन का क्षेत्र"
msgid "Artificial Intelligence"
msgstr "कृत्रिम बुद्धिमत्ता"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "आकार अनुपात"
@@ -534,6 +546,10 @@ msgstr "चीनी (परंपरागत)"
msgid "Circle"
msgstr "गोला"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "चयन साफ़ करें"
@@ -945,6 +961,10 @@ msgstr "आपका रेज़्यूमे डुप्लिकेट क
msgid "Dutch"
msgstr "डच"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "शिक्षा"
@@ -1896,6 +1916,10 @@ msgstr "पासवर्ड याद है? <0><1>अभी साइन इ
msgid "Remove Password"
msgstr "पासवर्ड हटाएँ"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "पासवर्ड सुरक्षा हटाई जा रही है..."
@@ -2081,6 +2105,18 @@ msgstr "साझा करना"
msgid "Show"
msgstr "दिखाएँ"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "साइडबार"
@@ -2345,6 +2381,10 @@ msgstr "फिर, जारी रखने के लिए ऐप द्व
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "PDF जेनरेट करते समय कोई समस्या आई, कृपया कुछ समय बाद फिर से प्रयास करें।"
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "रेज़्यूमे अपडेट करें"
msgid "Update your password"
msgstr "अपना पासवर्ड अपडेट करें"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "आपका पासवर्ड अपडेट किया जा रहा है..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: hu\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:13\n"
"Last-Translator: \n"
"Language-Team: Hungarian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -207,6 +207,10 @@ msgstr "Sor hozzáadása alá"
msgid "Add Row Before"
msgstr "Sor hozzáadása fölé"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "afrikaans"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "albán"
@@ -340,6 +348,10 @@ msgstr "Tanulmányok területe"
msgid "Artificial Intelligence"
msgstr "Mesterséges intelligencia"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Méretarány"
@@ -534,6 +546,10 @@ msgstr "kínai (hagyományos)"
msgid "Circle"
msgstr "Kör"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Kijelölés törlése"
@@ -945,6 +961,10 @@ msgstr "Önéletrajz duplikálása..."
msgid "Dutch"
msgstr "holland"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Tanulmányok"
@@ -1896,6 +1916,10 @@ msgstr "Eszébe jutott a jelszó? <0><1>Jelentkezz be most <2/></1></0>"
msgid "Remove Password"
msgstr "Jelszó eltávolítása"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Jelszóvédelem eltávolítása..."
@@ -2081,6 +2105,18 @@ msgstr "Megosztás"
msgid "Show"
msgstr "Megjelenítés"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Oldalsáv"
@@ -2345,6 +2381,10 @@ msgstr "Ezután írd be a folytatáshoz az alkalmazás által megadott 6 számje
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Hiba történt a PDF generálása közben, kérjük, próbáld meg később újra."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "Önéletrajz frissítése"
msgid "Update your password"
msgstr "Jelszó frissítése"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Jelszó frissítése..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: id\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:13\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -207,6 +207,10 @@ msgstr "Tambah Baris Setelah"
msgid "Add Row Before"
msgstr "Tambah Baris Sebelum"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Afrikaans"
msgid "AI"
msgstr "Kecerdasan Buatan"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Albania"
@@ -340,6 +348,10 @@ msgstr "Bidang Studi"
msgid "Artificial Intelligence"
msgstr "Kecerdasan Buatan"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Rasio Aspek"
@@ -534,6 +546,10 @@ msgstr "Cina (Tradisional)"
msgid "Circle"
msgstr "Lingkaran"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Hapus pilihan"
@@ -945,6 +961,10 @@ msgstr "Menduplikasi resume Anda..."
msgid "Dutch"
msgstr "Belanda"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Pendidikan"
@@ -1896,6 +1916,10 @@ msgstr "Ingat kata sandi Anda? <0><1>Masuk sekarang <2/></1></0>"
msgid "Remove Password"
msgstr "Hapus Kata Sandi"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Menghapus perlindungan kata sandi..."
@@ -2081,6 +2105,18 @@ msgstr "Berbagi"
msgid "Show"
msgstr "Tampilkan"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Bilah Sisi"
@@ -2345,6 +2381,10 @@ msgstr "Lalu, masukkan kode 6 digit yang diberikan aplikasi untuk melanjutkan."
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Terjadi masalah saat membuat PDF, silakan coba lagi nanti."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "Perbarui Resume"
msgid "Update your password"
msgstr "Perbarui kata sandi Anda"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Memperbarui kata sandi Anda..."
+58 -14
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-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 15:33\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -207,6 +207,10 @@ msgstr "Aggiungi riga dopo"
msgid "Add Row Before"
msgstr "Aggiungi riga prima"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Afrikaans"
msgid "AI"
msgstr "IA"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Albanese"
@@ -299,7 +307,7 @@ msgstr "Arabo"
#: src/hooks/use-form-blocker.tsx
msgid "Are you sure you want to close this dialog?"
msgstr ""
msgstr "Sei sicuro di voler chiudere questa finestra di dialogo?"
#: src/routes/dashboard/settings/api-keys.tsx
msgid "Are you sure you want to delete this API key?"
@@ -340,6 +348,10 @@ msgstr "Area di studio"
msgid "Artificial Intelligence"
msgstr "Intelligenza artificiale"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Proporzioni"
@@ -534,6 +546,10 @@ msgstr "Cinese (tradizionale)"
msgid "Circle"
msgstr "Cerchio"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Pulisci selezione"
@@ -577,7 +593,7 @@ msgstr "Connetti"
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
msgstr ""
msgstr "Contenuto"
#: src/dialogs/auth/enable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx
@@ -621,7 +637,7 @@ msgstr "Copia URL"
#: src/utils/resume/section.tsx
msgid "Cover Letter"
msgstr ""
msgstr "Lettera di presentazione"
#: src/dialogs/api-key/create.tsx
#: src/dialogs/resume/index.tsx
@@ -662,7 +678,7 @@ msgstr "Crea una nuova certificazione"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Create a new cover letter"
msgstr ""
msgstr "Crea una nuova lettera di presentazione"
#: src/dialogs/resume/sections/custom.tsx
msgid "Create a new custom section"
@@ -713,7 +729,7 @@ msgstr "Crea una nuova competenza"
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Create a new summary item"
msgstr ""
msgstr "Crea un nuovo elemento di riepilogo"
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Create a new volunteer experience"
@@ -945,6 +961,10 @@ msgstr "Duplicazione del tuo curriculum in corso..."
msgid "Dutch"
msgstr "Olandese"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Formazione"
@@ -1035,7 +1055,7 @@ msgstr "Tutto ciò di cui hai bisogno per creare, personalizzare e condividere c
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr ""
msgstr "Esci dalla modalità a schermo intero"
#: src/utils/resume/section.tsx
msgid "Experience"
@@ -1147,7 +1167,7 @@ msgstr "Larghezza completa"
#: src/components/input/rich-input.tsx
msgid "Fullscreen"
msgstr ""
msgstr "A schermo intero"
#: src/dialogs/resume/index.tsx
msgid "Generate a random name"
@@ -1429,7 +1449,7 @@ msgstr "Scopri di più su come adattare il contenuto a una pagina"
#: src/hooks/use-form-blocker.tsx
msgid "Leave"
msgstr ""
msgstr "Abbandona"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "Leave empty to reset the title to the original."
@@ -1861,7 +1881,7 @@ msgstr "Reactive Resume è open source, incentrato sulla privacy e completamente
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr ""
msgstr "Destinatario"
#: src/components/level/combobox.tsx
msgid "Rectangle"
@@ -1896,6 +1916,10 @@ msgstr "Ti ricordi la password? <0><1>Accedi ora <2/></1></0>"
msgid "Remove Password"
msgstr "Rimuovi password"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Rimozione della protezione tramite password..."
@@ -2081,6 +2105,18 @@ msgstr "Condivisione"
msgid "Show"
msgstr "Mostra"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr "Mostra il link nel titolo"
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Barra laterale"
@@ -2220,7 +2256,7 @@ msgstr "Statistiche"
#: src/hooks/use-form-blocker.tsx
msgid "Stay"
msgstr ""
msgstr "Rimani"
#: src/components/input/rich-input.tsx
msgid "Strike"
@@ -2345,6 +2381,10 @@ msgstr "Quindi inserisci il codice a 6 cifre fornito dall'app per continuare."
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Si è verificato un problema durante la generazione del PDF, riprova tra qualche istante."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2545,7 +2585,7 @@ msgstr "Aggiorna una certificazione esistente"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Update an existing cover letter"
msgstr ""
msgstr "Aggiorna una lettera di presentazione esistente"
#: src/dialogs/resume/sections/custom.tsx
msgid "Update an existing custom section"
@@ -2589,7 +2629,7 @@ msgstr "Aggiorna una competenza esistente"
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Update an existing summary item"
msgstr ""
msgstr "Aggiorna una voce del profilo"
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Update an existing volunteer experience"
@@ -2608,6 +2648,10 @@ msgstr "Aggiorna curriculum"
msgid "Update your password"
msgstr "Aggiorna la tua password"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Aggiornamento della tua password in corso..."
@@ -2754,7 +2798,7 @@ msgstr "Dopo l'eliminazione non potrai più usare la passkey \"{0}\" per acceder
#: src/hooks/use-form-blocker.tsx
msgid "You have unsaved changes that will be lost."
msgstr ""
msgstr "Hai modifiche non salvate che andranno perse."
#: src/routes/auth/forgot-password.tsx
#: src/routes/auth/register.tsx
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ja\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:13\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -207,6 +207,10 @@ msgstr "後に行を追加"
msgid "Add Row Before"
msgstr "前に行を追加"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "アフリカーンス語"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "アルバニア語"
@@ -340,6 +348,10 @@ msgstr "研究分野"
msgid "Artificial Intelligence"
msgstr "人工知能"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "アスペクト比"
@@ -534,6 +546,10 @@ msgstr "中国語(繁体字)"
msgid "Circle"
msgstr "円"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "選択をクリア"
@@ -945,6 +961,10 @@ msgstr "履歴書を複製しています..."
msgid "Dutch"
msgstr "オランダ語"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "学歴"
@@ -1896,6 +1916,10 @@ msgstr "パスワードを思い出しましたか?<0><1>今すぐサインイ
msgid "Remove Password"
msgstr "パスワードを削除"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "パスワード保護を解除しています..."
@@ -2081,6 +2105,18 @@ msgstr "共有"
msgid "Show"
msgstr "表示"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "サイドバー"
@@ -2345,6 +2381,10 @@ msgstr "次に、続行するためにアプリが表示する 6 桁のコード
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "PDF の生成中に問題が発生しました。しばらくしてからもう一度お試しください。"
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "履歴書を更新"
msgid "Update your password"
msgstr "パスワードを更新してください。"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "パスワードを更新しています..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: km\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:14\n"
"Last-Translator: \n"
"Language-Team: Khmer\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -207,6 +207,10 @@ msgstr "បន្ថែម​ជួរដេក​នៅ​ក្រោយ"
msgid "Add Row Before"
msgstr "បន្ថែម​ជួរដេក​នៅ​មុខ"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Afrikaans"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Albanian"
@@ -340,6 +348,10 @@ msgstr "ជំនាញ​រៀន"
msgid "Artificial Intelligence"
msgstr "បញ្ញាសិប្បនិម្មិត"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "សមាមាត្រទ្រង់ទ្រាយ"
@@ -534,6 +546,10 @@ msgstr "Chinese (Traditional)"
msgid "Circle"
msgstr "រង្វង់"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "សម្អាត​ការ​ជ្រើសរើស"
@@ -945,6 +961,10 @@ msgstr "កំពុង​ស្ទួន​ប្រវត្តិរូប​
msgid "Dutch"
msgstr "Dutch"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "ការ​សិក្សា"
@@ -1896,6 +1916,10 @@ msgstr "ចង់​ចាំ​ពាក្យសម្ងាត់វិញ​
msgid "Remove Password"
msgstr "ដក​ពាក្យសម្ងាត់"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "កំពុង​ដក​ការ​ការពារ​ដោយ​ពាក្យសម្ងាត់..."
@@ -2081,6 +2105,18 @@ msgstr "ការចែករំលែក"
msgid "Show"
msgstr "បង្ហាញ"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "របារ​បាត"
@@ -2345,6 +2381,10 @@ msgstr "បន្ទាប់មក បញ្ចូល​កូដ ៦ ខ្ទ
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "មាន​បញ្ហា​មួយ​កើតឡើង ខណៈពេល​កំពុង​បង្កើត PDF សូម​ព្យាយាម​ម្ដង​ទៀត​ក្រោយ​មក។"
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "បច្ចុប្បន្នភាព​ប្រវត្តិរ
msgid "Update your password"
msgstr "បច្ចុប្បន្នភាព​ពាក្យសម្ងាត់​របស់​អ្នក"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "កំពុង​បច្ចុប្បន្នភាព​ពាក្យសម្ងាត់​របស់​អ្នក..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: kn\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:14\n"
"Last-Translator: \n"
"Language-Team: Kannada\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -207,6 +207,10 @@ msgstr "ಸಾಲನ್ನು ನಂತರ ಸೇರಿಸಿ"
msgid "Add Row Before"
msgstr "ಸಾಲನ್ನು ಮೊದಲು ಸೇರಿಸಿ"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "ಆಫ್ರಿಕಾನ್ಸ್"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "ಅಲ್ಬೇನಿಯನ್"
@@ -340,6 +348,10 @@ msgstr "ಅಧ್ಯಯನದ ಕ್ಷೇತ್ರ"
msgid "Artificial Intelligence"
msgstr "ಕೃತಕ ಬುದ್ಧಿವಂತಿಕೆ"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "ಆಕಾರ ಅನುಪಾತ"
@@ -534,6 +546,10 @@ msgstr "ಚೈನೀಸ್ (ಸಾಂಪ್ರದಾಯಿಕ)"
msgid "Circle"
msgstr "ವೃತ್ತ"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "ಆಯ್ಕೆಯನ್ನು ತೆರವುಗೊಳಿಸಿ"
@@ -945,6 +961,10 @@ msgstr "ನಿಮ್ಮ ರೆಸ್ಯೂಮ್ ನಕಲಿಸಲಾಗುತ
msgid "Dutch"
msgstr "ಡಚ್"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "ಶಿಕ್ಷಣ"
@@ -1896,6 +1916,10 @@ msgstr "ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ನೆನಪಿದೆಯ
msgid "Remove Password"
msgstr "ಪಾಸ್‌ವರ್ಡ್ ತೆಗೆದುಹಾಕಿ"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "ಪಾಸ್‌ವರ್ಡ್ ರಕ್ಷಣೆಯನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತಿದೆ..."
@@ -2081,6 +2105,18 @@ msgstr "ಹಂಚಿಕೆ"
msgid "Show"
msgstr "ತೋರಿಸು"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "ಪಾರ್ಶ್ವಪಟ್ಟಿ"
@@ -2345,6 +2381,10 @@ msgstr "ನಂತರ, ಆ್ಯಪ್ ನೀಡುವ 6 ಅಂಕಿಯ ಕೋ
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "PDF ರಚಿಸುವಾಗ ಒಂದು ಸಮಸ್ಯೆ ಉಂಟಾಯಿತು, ದಯವಿಟ್ಟು ಸ್ವಲ್ಪ ಸಮಯದ ಬಳಿಕ ಮರುಪ್ರಯತ್ನಿಸಿ."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "ರೆಸ್ಯೂಮ್ ನವೀಕರಿಸಿ"
msgid "Update your password"
msgstr "ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನವೀಕರಿಸಿ"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನವೀಕರಿಸಲಾಗುತ್ತಿದೆ..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ko\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:13\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -207,6 +207,10 @@ msgstr "뒤에 행 추가"
msgid "Add Row Before"
msgstr "앞에 행 추가"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "아프리칸스어"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "알바니아어"
@@ -340,6 +348,10 @@ msgstr "연구 분야"
msgid "Artificial Intelligence"
msgstr "인공지능"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "가로세로 비율"
@@ -534,6 +546,10 @@ msgstr "중국어(번체)"
msgid "Circle"
msgstr "원"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "선택 해제"
@@ -945,6 +961,10 @@ msgstr "이력서를 복제하는 중입니다..."
msgid "Dutch"
msgstr "네덜란드어"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "학력"
@@ -1896,6 +1916,10 @@ msgstr "비밀번호가 기억나시나요? <0><1>지금 로그인하기 <2/></1
msgid "Remove Password"
msgstr "비밀번호 제거"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "비밀번호 보호를 제거하는 중입니다..."
@@ -2081,6 +2105,18 @@ msgstr "공유"
msgid "Show"
msgstr "표시"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "사이드바"
@@ -2345,6 +2381,10 @@ msgstr "그 다음, 앱에 표시된 6자리 코드를 입력해 계속 진행
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "PDF를 생성하는 동안 문제가 발생했습니다. 잠시 후 다시 시도해 주세요."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "이력서 업데이트"
msgid "Update your password"
msgstr "비밀번호 업데이트"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "비밀번호를 업데이트하는 중입니다..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: lt\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:13\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"
@@ -207,6 +207,10 @@ msgstr "Pridėti eilutę po"
msgid "Add Row Before"
msgstr "Pridėti eilutę prieš"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Afrikanso"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Albanų"
@@ -340,6 +348,10 @@ msgstr "Studijų sritis"
msgid "Artificial Intelligence"
msgstr "Dirbtinis intelektas"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Vaizdo santykis"
@@ -534,6 +546,10 @@ msgstr "Kinų (tradicinė)"
msgid "Circle"
msgstr "Apskritimas"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Išvalyti pasirinkimą"
@@ -945,6 +961,10 @@ msgstr "Dubliuojamas jūsų gyvenimo aprašymas..."
msgid "Dutch"
msgstr "Olandų"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Išsilavinimas"
@@ -1896,6 +1916,10 @@ msgstr "Prisiminate slaptažodį? <0><1>Prisijunkite dabar <2/></1></0>"
msgid "Remove Password"
msgstr "Pašalinti slaptažodį"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Šalinama apsauga slaptažodžiu..."
@@ -2081,6 +2105,18 @@ msgstr "Dalijimasis"
msgid "Show"
msgstr "Rodyti"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Šoninė juosta"
@@ -2345,6 +2381,10 @@ msgstr "Tada įveskite programos sugeneruotą 6 skaitmenų kodą, kad tęstumėt
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Kilo problema generuojant PDF. Bandykite dar kartą po kurio laiko."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "Atnaujinti gyvenimo aprašymą"
msgid "Update your password"
msgstr "Atnaujinkite savo slaptažodį"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Atnaujinamas jūsų slaptažodis..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: lv\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:14\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"
@@ -207,6 +207,10 @@ msgstr "Pievienot rindu pēc"
msgid "Add Row Before"
msgstr "Pievienot rindu pirms"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Afrikandu"
msgid "AI"
msgstr "MI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Albāņu"
@@ -340,6 +348,10 @@ msgstr "Studiju joma"
msgid "Artificial Intelligence"
msgstr "Mākslīgais intelekts"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Proporcijas"
@@ -534,6 +546,10 @@ msgstr "Ķīniešu (tradicionālā)"
msgid "Circle"
msgstr "Aplis"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Notīrīt izvēli"
@@ -945,6 +961,10 @@ msgstr "Tiek dublēts jūsu CV..."
msgid "Dutch"
msgstr "Holandiešu"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Izglītība"
@@ -1896,6 +1916,10 @@ msgstr "Atceraties savu paroli? <0><1>Piesakieties tagad <2/></1></0>"
msgid "Remove Password"
msgstr "Noņemt paroli"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Tiek noņemta paroles aizsardzība..."
@@ -2081,6 +2105,18 @@ msgstr "Kopīgošana"
msgid "Show"
msgstr "Rādīt"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Sānu josla"
@@ -2345,6 +2381,10 @@ msgstr "Pēc tam ievadiet 6 ciparu kodu, ko nodrošina lietotne, lai turpinātu.
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Radās problēma, ģenerējot PDF, lūdzu, mēģiniet vēlreiz pēc kāda laika."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "Atjaunināt CV"
msgid "Update your password"
msgstr "Atjauniniet savu paroli"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Tiek atjaunināta jūsu parole..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ml\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:14\n"
"Last-Translator: \n"
"Language-Team: Malayalam\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -207,6 +207,10 @@ msgstr "വരി പിന്നീട് ചേർക്കുക"
msgid "Add Row Before"
msgstr "വരി മുമ്പ് ചേർക്കുക"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "ആഫ്രിക്കാൻസ്"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "അൽബേനിയൻ"
@@ -340,6 +348,10 @@ msgstr "പഠന മേഖല"
msgid "Artificial Intelligence"
msgstr "ആർട്ടിഫിഷ്യൽ ഇന്റലിജൻസ്"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "ആസ്പെക്ട് റേഷ്യോ"
@@ -534,6 +546,10 @@ msgstr "ചൈനീസ് (ട്രഡീഷണൽ)"
msgid "Circle"
msgstr "വൃത്തം"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "തിരഞ്ഞെടുപ്പ് ക്ലിയർ ചെയ്യുക"
@@ -945,6 +961,10 @@ msgstr "നിങ്ങളുടെ റിസ്യൂം ഡൂപ്ലിക
msgid "Dutch"
msgstr "ഡച്ച്"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "വിദ്യാഭ്യാസം"
@@ -1896,6 +1916,10 @@ msgstr "നിങ്ങളുടെ പാസ്‌വേഡ് ഓർമ്മ
msgid "Remove Password"
msgstr "പാസ്‌വേഡ് നീക്കുക"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "പാസ്‌വേഡ് സംരക്ഷണം നീക്കം ചെയ്യുന്നു..."
@@ -2081,6 +2105,18 @@ msgstr "ഷെയറിംഗ്"
msgid "Show"
msgstr "കാണിക്കുക"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "സൈഡ്ബാർ"
@@ -2345,6 +2381,10 @@ msgstr "ശേഷം, ആപ്പ് നൽകുന്ന 6 അക്ക ക
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "PDF നിർമ്മിക്കുന്നതിനിടെ ഒരു പ്രശ്നം ഉണ്ടായി, ദയവായി കുറച്ചുസമയം കഴിഞ്ഞ് വീണ്ടും ശ്രമിക്കുക."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "റിസ്യൂം അപ്‌ഡേറ്റ് ചെയ്യു
msgid "Update your password"
msgstr "നിങ്ങളുടെ പാസ്‌വേഡ് അപ്‌ഡേറ്റ് ചെയ്യുക"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "നിങ്ങളുടെ പാസ്‌വേഡ് അപ്‌ഡേറ്റ് ചെയ്യുന്നു..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: mr\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:14\n"
"Last-Translator: \n"
"Language-Team: Marathi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -207,6 +207,10 @@ msgstr "नंतर ओळ जोडा"
msgid "Add Row Before"
msgstr "आधी ओळ जोडा"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "आफ्रिकान्स"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "अल्बेनियन"
@@ -340,6 +348,10 @@ msgstr "अभ्यासाचे क्षेत्र"
msgid "Artificial Intelligence"
msgstr "कृत्रिम बुद्धिमत्ता"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "प्रसर गुणोत्तर"
@@ -534,6 +546,10 @@ msgstr "चीनी (परंपरागत)"
msgid "Circle"
msgstr "गोलाकार"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "निवड साफ करा"
@@ -945,6 +961,10 @@ msgstr "तुमचा रेझ्युमे डुप्लिकेट क
msgid "Dutch"
msgstr "डच"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "शिक्षण"
@@ -1896,6 +1916,10 @@ msgstr "पासवर्ड आठवला? <0><1>आता साइन इ
msgid "Remove Password"
msgstr "पासवर्ड काढा"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "पासवर्ड संरक्षण काढून टाकले जात आहे..."
@@ -2081,6 +2105,18 @@ msgstr "शेअर करणे"
msgid "Show"
msgstr "दाखवा"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "बाजूची पट्टी"
@@ -2345,6 +2381,10 @@ msgstr "त्यानंतर, पुढे जाण्यासाठी
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "PDF तयार करताना समस्या आली, कृपया थोड्या वेळाने पुन्हा प्रयत्न करा."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "रेझ्युमे अपडेट करा"
msgid "Update your password"
msgstr "तुमचा पासवर्ड अपडेट करा"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "तुमचा पासवर्ड अपडेट केला जात आहे..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ms\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:14\n"
"Last-Translator: \n"
"Language-Team: Malay\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -207,6 +207,10 @@ msgstr "Tambah Baris Selepas"
msgid "Add Row Before"
msgstr "Tambah Baris Sebelum"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Afrikaans"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Albanian"
@@ -340,6 +348,10 @@ msgstr "Bidang Pengajian"
msgid "Artificial Intelligence"
msgstr "Kecerdasan Buatan"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Nisbah Aspek"
@@ -534,6 +546,10 @@ msgstr "Cina (Tradisional)"
msgid "Circle"
msgstr "Bulatan"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Kosongkan pilihan"
@@ -945,6 +961,10 @@ msgstr "Menduplikasi resume anda..."
msgid "Dutch"
msgstr "Belanda"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Pendidikan"
@@ -1896,6 +1916,10 @@ msgstr "Masih ingat kata laluan anda? <0><1>Log masuk sekarang <2/></1></0>"
msgid "Remove Password"
msgstr "Buang Kata Laluan"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Membuang perlindungan kata laluan..."
@@ -2081,6 +2105,18 @@ msgstr "Berkongsi"
msgid "Show"
msgstr "Paparkan"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Panel Sisi"
@@ -2345,6 +2381,10 @@ msgstr "Kemudian, masukkan kod 6 digit yang diberikan oleh apl untuk meneruskan.
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Terdapat masalah semasa menjana PDF, sila cuba lagi selepas beberapa ketika."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "Kemas Kini Resume"
msgid "Update your password"
msgstr "Kemas kini kata laluan anda"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Mengemas kini kata laluan anda..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ne\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:14\n"
"Last-Translator: \n"
"Language-Team: Nepali\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -207,6 +207,10 @@ msgstr "पछि पङ्क्ति थप्नुहोस्"
msgid "Add Row Before"
msgstr "अघिल्लो पङ्क्ति थप्नुहोस्"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "अफ्रिकान्स"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "अल्बानियन"
@@ -340,6 +348,10 @@ msgstr "अध्ययन क्षेत्र"
msgid "Artificial Intelligence"
msgstr "कृत्रिम बौद्धिकता"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "आकार अनुपात (Aspect Ratio)"
@@ -534,6 +546,10 @@ msgstr "चिनियाँ (परम्परागत)"
msgid "Circle"
msgstr "वृत्त"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "चयन खाली गर्नुहोस्"
@@ -945,6 +961,10 @@ msgstr "तपाईंको बायोडाटा नक्कल हुँ
msgid "Dutch"
msgstr "डच"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "शिक्षा"
@@ -1896,6 +1916,10 @@ msgstr "पासवर्ड सम्झनुभयो? <0><1>अहिले
msgid "Remove Password"
msgstr "पासवर्ड हटाउनुहोस्"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "पासवर्ड सुरक्षा हटाइँदैछ..."
@@ -2081,6 +2105,18 @@ msgstr "सेयरिङ"
msgid "Show"
msgstr "देखाउनुहोस्"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Sidebar"
@@ -2345,6 +2381,10 @@ msgstr "त्यसपछि, जारी राख्न एपले दि
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "PDF बनाउने क्रममा समस्या आयो, कृपया केही समयपछि पुनः प्रयास गर्नुहोस्।"
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "बायोडाटा अद्यावधिक गर्नुह
msgid "Update your password"
msgstr "तपाईंको पासवर्ड अद्यावधिक गर्नुहोस्"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "तपाईंको पासवर्ड अद्यावधिक हुँदैछ..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: nl\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:13\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -207,6 +207,10 @@ msgstr "Rij erna toevoegen"
msgid "Add Row Before"
msgstr "Rij ervoor toevoegen"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Afrikaans"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Albanees"
@@ -340,6 +348,10 @@ msgstr "Studierichting"
msgid "Artificial Intelligence"
msgstr "Kunstmatige intelligentie"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Beeldverhouding"
@@ -534,6 +546,10 @@ msgstr "Chinees (traditioneel)"
msgid "Circle"
msgstr "Cirkel"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Selectie wissen"
@@ -945,6 +961,10 @@ msgstr "Uw cv wordt gedupliceerd..."
msgid "Dutch"
msgstr "Nederlands"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Opleiding"
@@ -1896,6 +1916,10 @@ msgstr "Herinnert u zich uw wachtwoord? <0><1>Meld u nu aan <2/></1></0>"
msgid "Remove Password"
msgstr "Wachtwoord verwijderen"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Wachtwoordbeveiliging wordt verwijderd..."
@@ -2081,6 +2105,18 @@ msgstr "Delen"
msgid "Show"
msgstr "Weergeven"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Zijbalk"
@@ -2345,6 +2381,10 @@ msgstr "Voer vervolgens de 6-cijferige code in die de app geeft om door te gaan.
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Er is een probleem opgetreden bij het genereren van de PDF, probeer het over enige tijd opnieuw."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "Cv bijwerken"
msgid "Update your password"
msgstr "Werk uw wachtwoord bij"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Uw wachtwoord wordt bijgewerkt..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: no\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:13\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -207,6 +207,10 @@ msgstr "Legg til rad etter"
msgid "Add Row Before"
msgstr "Legg til rad før"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Afrikaans"
msgid "AI"
msgstr "KI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Albansk"
@@ -340,6 +348,10 @@ msgstr "Studiefelt"
msgid "Artificial Intelligence"
msgstr "Kunstig intelligens"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Størrelsesforhold"
@@ -534,6 +546,10 @@ msgstr "Kinesisk (tradisjonell)"
msgid "Circle"
msgstr "Sirkel"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Fjern valg"
@@ -945,6 +961,10 @@ msgstr "Dupliserer CV-en din..."
msgid "Dutch"
msgstr "Nederlandsk"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Utdanning"
@@ -1896,6 +1916,10 @@ msgstr "Husker du passordet ditt? <0><1>Logg inn nå <2/></1></0>"
msgid "Remove Password"
msgstr "Fjern passord"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Fjerner passordbeskyttelse..."
@@ -2081,6 +2105,18 @@ msgstr "Deling"
msgid "Show"
msgstr "Vis"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Sidepanel"
@@ -2345,6 +2381,10 @@ msgstr "Skriv deretter inn den 6-sifrede koden som appen gir deg for å fortsett
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Det oppstod et problem under generering av PDF-en, prøv igjen om en stund."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "Oppdater CV"
msgid "Update your password"
msgstr "Oppdater passordet ditt"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Oppdaterer passordet ditt..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: or\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:14\n"
"Last-Translator: \n"
"Language-Team: Odia\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -207,6 +207,10 @@ msgstr "ପରେ ପଙ୍କ୍ତି ଯୋଡନ୍ତୁ"
msgid "Add Row Before"
msgstr "ପୂର୍ବେ ପଙ୍କ୍ତି ଯୋଡନ୍ତୁ"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "ଆଫ୍ରିକାନ୍ସ"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "ଆଲବାନିଆନ୍"
@@ -340,6 +348,10 @@ msgstr "ଅଧ୍ୟୟନ କ୍ଷେତ୍ର"
msgid "Artificial Intelligence"
msgstr "କୃତ୍ରିମ ବୁଦ୍ଧିମତ୍ତା"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "ଆସ୍ପେକ୍ଟ ଅନୁପାତ"
@@ -534,6 +546,10 @@ msgstr "ଚାଇନିଜ୍ (ପାରମ୍ପରିକ)"
msgid "Circle"
msgstr "ବୃତ୍ତ"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "ଚୟନ ସଫା କରନ୍ତୁ"
@@ -945,6 +961,10 @@ msgstr "ଆପଣଙ୍କ ରେଜ୍ୟୁମେ ନକଲ ହେଉଛି...
msgid "Dutch"
msgstr "ଡଚ୍"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "ଶିକ୍ଷା"
@@ -1896,6 +1916,10 @@ msgstr "ପାସୱାର୍ଡ ମନେ ପକାଇଲେ କି? <0><1>ଏ
msgid "Remove Password"
msgstr "ପାସୱାର୍ଡ ଅପସାରଣ କରନ୍ତୁ"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "ପାସୱାର୍ଡ ସୁରକ୍ଷା ଅପସାରଣ ହେଉଛି..."
@@ -2081,6 +2105,18 @@ msgstr "ସେୟାର କରିବା"
msgid "Show"
msgstr "ଦେଖାନ୍ତୁ"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "ସାଇଡବାର୍"
@@ -2345,6 +2381,10 @@ msgstr "ତାପରେ, ଆଗକୁ ବଢ଼ିବା ପାଇଁ ଆପ୍
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "PDF ସୃଷ୍ଟି କରୁଥିବା ସମୟରେ ସମସ୍ୟା ହୋଇଛି, ଦୟାକରି କିଛି ସମୟ ପରେ ପୁନଃ ଚେଷ୍ଟା କରନ୍ତୁ।"
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "ରେଜ୍ୟୁମେ ଅଦ୍ୟତନ କରନ୍ତୁ"
msgid "Update your password"
msgstr "ଆପଣଙ୍କ ପାସୱାର୍ଡ ଅଦ୍ୟତନ କରନ୍ତୁ"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "ଆପଣଙ୍କ ପାସୱାର୍ଡ ଅଦ୍ୟତନ ହେଉଛି..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: pl\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:13\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"
@@ -207,6 +207,10 @@ msgstr "Dodaj wiersz po"
msgid "Add Row Before"
msgstr "Dodaj wiersz przed"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Afrikaans"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Albański"
@@ -340,6 +348,10 @@ msgstr "Kierunek studiów"
msgid "Artificial Intelligence"
msgstr "Sztuczna inteligencja"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Proporcje obrazu"
@@ -534,6 +546,10 @@ msgstr "Chiński (tradycyjny)"
msgid "Circle"
msgstr "Koło"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Wyczyść wybór"
@@ -945,6 +961,10 @@ msgstr "Duplikowanie CV..."
msgid "Dutch"
msgstr "Holenderski"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Wykształcenie"
@@ -1896,6 +1916,10 @@ msgstr "Pamiętasz hasło? <0><1>Zaloguj się teraz <2/></1></0>"
msgid "Remove Password"
msgstr "Usuń hasło"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Wyłączanie ochrony hasłem..."
@@ -2081,6 +2105,18 @@ msgstr "Udostępnianie"
msgid "Show"
msgstr "Pokaż"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Pasek boczny"
@@ -2345,6 +2381,10 @@ msgstr "Następnie wpisz 6-cyfrowy kod podany przez aplikację, aby kontynuować
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Wystąpił problem podczas generowania pliku PDF, spróbuj ponownie za chwilę."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "Zaktualizuj CV"
msgid "Update your password"
msgstr "Zaktualizuj swoje hasło"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Aktualizowanie hasła..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: pt\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:13\n"
"Last-Translator: \n"
"Language-Team: Portuguese, Brazilian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -207,6 +207,10 @@ msgstr "Adicionar linha depois"
msgid "Add Row Before"
msgstr "Adicionar linha antes"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Africâner"
msgid "AI"
msgstr "IA"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Albanês"
@@ -340,6 +348,10 @@ msgstr "Área de estudo"
msgid "Artificial Intelligence"
msgstr "Inteligência Artificial"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Proporção da imagem"
@@ -534,6 +546,10 @@ msgstr "Chinês (Tradicional)"
msgid "Circle"
msgstr "Círculo"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Limpar seleção"
@@ -945,6 +961,10 @@ msgstr "Duplicando seu currículo..."
msgid "Dutch"
msgstr "Holandês"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Formação"
@@ -1896,6 +1916,10 @@ msgstr "Lembrou da sua senha? <0><1>Entre agora <2/></1></0>"
msgid "Remove Password"
msgstr "Remover senha"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Removendo proteção por senha..."
@@ -2081,6 +2105,18 @@ msgstr "Compartilhamento"
msgid "Show"
msgstr "Mostrar"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Barra lateral"
@@ -2345,6 +2381,10 @@ msgstr "Em seguida, insira o código de 6 dígitos fornecido pelo aplicativo par
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Houve um problema ao gerar o PDF, tente novamente em alguns instantes."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "Atualizar currículo"
msgid "Update your password"
msgstr "Atualize sua senha"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Atualizando sua senha..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: pt\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:13\n"
"Last-Translator: \n"
"Language-Team: Portuguese\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -207,6 +207,10 @@ msgstr "Adicionar linha após"
msgid "Add Row Before"
msgstr "Adicionar linha antes"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Africâner"
msgid "AI"
msgstr "IA"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Albanês"
@@ -340,6 +348,10 @@ msgstr "Área de estudo"
msgid "Artificial Intelligence"
msgstr "Inteligência Artificial"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Proporção"
@@ -534,6 +546,10 @@ msgstr "Chinês (tradicional)"
msgid "Circle"
msgstr "Círculo"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Limpar seleção"
@@ -945,6 +961,10 @@ msgstr "A duplicar o seu currículo..."
msgid "Dutch"
msgstr "Neerlandês"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Formação"
@@ -1896,6 +1916,10 @@ msgstr "Lembra-se da sua senha? <0><1>Inicie sessão agora <2/></1></0>"
msgid "Remove Password"
msgstr "Remover senha"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "A remover a proteção por senha..."
@@ -2081,6 +2105,18 @@ msgstr "Partilhar"
msgid "Show"
msgstr "Mostrar"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Barra lateral"
@@ -2345,6 +2381,10 @@ msgstr "Em seguida, introduza o código de 6 dígitos fornecido pela aplicação
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Houve um problema ao gerar o PDF, tente novamente dentro de algum tempo."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "Atualizar currículo"
msgid "Update your password"
msgstr "Atualize a sua senha"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "A atualizar a sua senha..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ro\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:18\n"
"PO-Revision-Date: 2026-01-31 12:13\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"
@@ -207,6 +207,10 @@ msgstr "Adăugați rând după"
msgid "Add Row Before"
msgstr "Adăugați rând înainte"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Afrikaans"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Albaneză"
@@ -340,6 +348,10 @@ msgstr "Domeniu de studiu"
msgid "Artificial Intelligence"
msgstr "Inteligență artificială"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Raport de aspect"
@@ -534,6 +546,10 @@ msgstr "Chineză (tradițională)"
msgid "Circle"
msgstr "Cerc"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Ștergeți selecția"
@@ -945,6 +961,10 @@ msgstr "Se duplică CV-ul..."
msgid "Dutch"
msgstr "Olandeză"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Educație"
@@ -1896,6 +1916,10 @@ msgstr "Vă amintiți parola? <0><1>Autentificați-vă acum <2/></1></0>"
msgid "Remove Password"
msgstr "Elimină parola"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Se elimină protecția prin parolă..."
@@ -2081,6 +2105,18 @@ msgstr "Partajarea"
msgid "Show"
msgstr "Arată"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Bară laterală"
@@ -2345,6 +2381,10 @@ msgstr "Apoi introduceți codul din 6 cifre oferit de aplicație pentru a contin
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "A apărut o problemă la generarea PDF-ului, vă rugăm să încercați din nou peste câteva momente."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "Actualizați CV-ul"
msgid "Update your password"
msgstr "Actualizați-vă parola"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Se actualizează parola..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ru\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:13\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"
@@ -207,6 +207,10 @@ msgstr "Добавить строку после"
msgid "Add Row Before"
msgstr "Добавить строку до"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Африкаанс"
msgid "AI"
msgstr "ИИ"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Албанский"
@@ -340,6 +348,10 @@ msgstr "Область обучения"
msgid "Artificial Intelligence"
msgstr "Искусственный интеллект"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Соотношение сторон"
@@ -534,6 +546,10 @@ msgstr "Китайский (традиционный)"
msgid "Circle"
msgstr "Круг"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Очистить выбор"
@@ -945,6 +961,10 @@ msgstr "Дублирование вашего резюме..."
msgid "Dutch"
msgstr "Нидерландский"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Образование"
@@ -1896,6 +1916,10 @@ msgstr "Вспомнили пароль? <0><1>Войдите сейчас <2/><
msgid "Remove Password"
msgstr "Удалить пароль"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Отключение защиты паролем..."
@@ -2081,6 +2105,18 @@ msgstr "Общий доступ"
msgid "Show"
msgstr "Показать"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Боковая панель"
@@ -2345,6 +2381,10 @@ msgstr "Затем введите шестизначный код, предос
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Возникла проблема при генерации PDF, пожалуйста, попробуйте еще раз через некоторое время."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "Обновить резюме"
msgid "Update your password"
msgstr "Обновите пароль"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Обновление пароля..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: sk\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:13\n"
"Last-Translator: \n"
"Language-Team: Slovak\n"
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
@@ -207,6 +207,10 @@ msgstr "Pridať riadok za"
msgid "Add Row Before"
msgstr "Pridať riadok pred"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Afrikánčina"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Albánčina"
@@ -340,6 +348,10 @@ msgstr "Študijný odbor"
msgid "Artificial Intelligence"
msgstr "Umelá inteligencia"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Pomer strán"
@@ -534,6 +546,10 @@ msgstr "Čínština (tradičná)"
msgid "Circle"
msgstr "Kruh"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Zrušiť výber"
@@ -945,6 +961,10 @@ msgstr "Duplikujem tvoj životopis..."
msgid "Dutch"
msgstr "Holandčina"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Vzdelanie"
@@ -1896,6 +1916,10 @@ msgstr "Spomínaš si na heslo? <0><1>Prihlás sa teraz <2/></1></0>"
msgid "Remove Password"
msgstr "Odstrániť heslo"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Odstraňujem ochranu heslom..."
@@ -2081,6 +2105,18 @@ msgstr "Zdieľanie"
msgid "Show"
msgstr "Zobraziť"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Bočný panel"
@@ -2345,6 +2381,10 @@ msgstr "Potom zadaj 6‑ciferný kód, ktorý ti aplikácia vygeneruje, aby si p
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Pri generovaní PDF sa vyskytol problém, skús to prosím znova o chvíľu."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "Aktualizovať životopis"
msgid "Update your password"
msgstr "Aktualizuj svoje heslo"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Aktualizujem tvoje heslo..."
+42 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: sl\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:14\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"
@@ -444,6 +444,8 @@ msgstr "Ali lahko izvozite svoj življenjepis v PDF?"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/custom.tsx
#: src/dialogs/resume/sections/custom.tsx
#: src/dialogs/resume/sections/education.tsx
@@ -572,6 +574,7 @@ msgstr "Potrdi"
msgid "Connect"
msgstr "Poveži"
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
msgstr ""
@@ -616,10 +619,15 @@ msgstr "Kopirajte to skrivno kodo in jo uporabite v svojih aplikacijah za dostop
msgid "Copy URL"
msgstr "Kopiraj URL"
#: src/utils/resume/section.tsx
msgid "Cover Letter"
msgstr ""
#: src/dialogs/api-key/create.tsx
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/custom.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
@@ -652,6 +660,10 @@ msgstr "Ustvari novo priznanje"
msgid "Create a new certification"
msgstr "Ustvari novo potrdilo"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Create a new cover letter"
msgstr ""
#: src/dialogs/resume/sections/custom.tsx
msgid "Create a new custom section"
msgstr "Ustvari novo poljubno sekcijo"
@@ -1021,6 +1033,10 @@ msgstr "Vse, kar vnesete tukaj, je shranjeno lokalno v vašem brskalniku. Vaši
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Vse, kar potrebujete za ustvarjanje, prilagajanje in deljenje strokovnih življenjepisov. Zgrajeno z mislijo na zasebnost, temelji na odprti kodi in je popolnoma brezplačno za vedno."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr ""
#: src/utils/resume/section.tsx
msgid "Experience"
msgstr "Izkušnje"
@@ -1129,6 +1145,10 @@ msgstr "Francoščina"
msgid "Full Width"
msgstr "Polna širina"
#: src/components/input/rich-input.tsx
msgid "Fullscreen"
msgstr ""
#: src/dialogs/resume/index.tsx
msgid "Generate a random name"
msgstr "Ustvari naključno ime"
@@ -1839,6 +1859,10 @@ msgstr "Reactive Resume danes začenja na Product Huntu, obiščite nas in poka
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/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr ""
#: src/components/level/combobox.tsx
msgid "Rectangle"
msgstr "Pravokotnik"
@@ -1946,6 +1970,7 @@ msgstr "ruščina"
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/custom.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
@@ -2056,6 +2081,18 @@ msgstr "Deljenje"
msgid "Show"
msgstr "Prikaži"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Stranska vrstica"
@@ -2518,6 +2555,10 @@ msgstr "Posodobi obstoječo nagrado"
msgid "Update an existing certification"
msgstr "Posodobi obstoječo certifikacijo"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Update an existing cover letter"
msgstr ""
#: src/dialogs/resume/sections/custom.tsx
msgid "Update an existing custom section"
msgstr "Posodobi obstoječi razdelek po meri"
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: sq\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:13\n"
"Last-Translator: \n"
"Language-Team: Albanian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -207,6 +207,10 @@ msgstr "Shto rresht pas"
msgid "Add Row Before"
msgstr "Shto rresht para"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Afrikanisht"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Shqip"
@@ -340,6 +348,10 @@ msgstr "Fusha e studimit"
msgid "Artificial Intelligence"
msgstr "Inteligjenca Artificiale"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Proporcioni"
@@ -534,6 +546,10 @@ msgstr "Kinezçe (Tradicionale)"
msgid "Circle"
msgstr "Rreth"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Pastro përzgjedhjen"
@@ -945,6 +961,10 @@ msgstr "Po dyfishohet CV-ja juaj..."
msgid "Dutch"
msgstr "Holandisht"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Arsimimi"
@@ -1896,6 +1916,10 @@ msgstr "E kujtuat fjalëkalimin? <0><1>Hyni tani <2/></1></0>"
msgid "Remove Password"
msgstr "Hiq fjalëkalimin"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Po hiqet mbrojtja me fjalëkalim..."
@@ -2081,6 +2105,18 @@ msgstr "Shpërndarja"
msgid "Show"
msgstr "Shfaq"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Shiriti anësor"
@@ -2345,6 +2381,10 @@ msgstr "Më pas, futni kodin 6-shifror që jep aplikacioni për të vazhduar."
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Pati një problem gjatë gjenerimit të PDF-së, ju lutemi provoni përsëri pas pak."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "Përditëso CV-në"
msgid "Update your password"
msgstr "Përditësoni fjalëkalimin tuaj"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Po përditësohet fjalëkalimi juaj..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: sr\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:13\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"
@@ -207,6 +207,10 @@ msgstr "Додај ред после"
msgid "Add Row Before"
msgstr "Додај ред пре"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Африканс"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Албански"
@@ -340,6 +348,10 @@ msgstr "Област студија"
msgid "Artificial Intelligence"
msgstr "Вештачка интелигенција"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Однос стране"
@@ -534,6 +546,10 @@ msgstr "Кинески (традиционални)"
msgid "Circle"
msgstr "Круг"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Обриши избор"
@@ -945,6 +961,10 @@ msgstr "Дуплирање вашег резимеа..."
msgid "Dutch"
msgstr "Холандски"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Образовање"
@@ -1896,6 +1916,10 @@ msgstr "Сећате се лозинке? <0><1>Пријавите се сада
msgid "Remove Password"
msgstr "Уклони лозинку"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Уклањање заштите лозинком..."
@@ -2081,6 +2105,18 @@ msgstr "Дељење"
msgid "Show"
msgstr "Прикажи"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Бочна трака"
@@ -2345,6 +2381,10 @@ msgstr "Затим унесите шестоцифрени кôд који ап
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Дошло је до проблема током генерисања PDF-а, покушајте поново након неког времена."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "Ажурирај резиме"
msgid "Update your password"
msgstr "Ажурирајте своју лозинку"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Ажурирање ваше лозинке..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: sv\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:13\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -207,6 +207,10 @@ msgstr "Lägg till rad efter"
msgid "Add Row Before"
msgstr "Lägg till rad före"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Afrikanska"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Albanska"
@@ -340,6 +348,10 @@ msgstr "Studieområde"
msgid "Artificial Intelligence"
msgstr "Artificiell intelligens"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Bildförhållande"
@@ -534,6 +546,10 @@ msgstr "Kinesiska (traditionell)"
msgid "Circle"
msgstr "Cirkel"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Rensa markering"
@@ -945,6 +961,10 @@ msgstr "Duplicerar ditt CV..."
msgid "Dutch"
msgstr "Nederländska"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Utbildning"
@@ -1896,6 +1916,10 @@ msgstr "Kommer du ihåg ditt lösenord? <0><1>Logga in nu <2/></1></0>"
msgid "Remove Password"
msgstr "Ta bort lösenord"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Tar bort lösenordsskydd..."
@@ -2081,6 +2105,18 @@ msgstr "Delning"
msgid "Show"
msgstr "Visa"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Sidofält"
@@ -2345,6 +2381,10 @@ msgstr "Ange sedan den sexsiffriga kod som appen ger för att fortsätta."
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Det uppstod ett problem när PDF-filen skulle genereras, försök igen om en stund."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "Uppdatera CV"
msgid "Update your password"
msgstr "Uppdatera ditt lösenord"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Uppdaterar ditt lösenord..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ta\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:14\n"
"Last-Translator: \n"
"Language-Team: Tamil\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -207,6 +207,10 @@ msgstr "பின் வரியைச் சேர்க்கவும்"
msgid "Add Row Before"
msgstr "முன் வரியைச் சேர்க்கவும்"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "ஆஃப்ரிகான்ஸ்"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "அல்பேனியன்"
@@ -340,6 +348,10 @@ msgstr "கற்றல் துறை"
msgid "Artificial Intelligence"
msgstr "செயற்கை நுண்ணறிவு"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "ஒப்புத்திணைவு விகிதம்"
@@ -534,6 +546,10 @@ msgstr "சீனம் (சம்பிரதாய)"
msgid "Circle"
msgstr "வட்டம்"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "தேர்வை அழிக்கவும்"
@@ -945,6 +961,10 @@ msgstr "உங்கள் ரெஸ்யூமியின் நகலை உ
msgid "Dutch"
msgstr "டச்சு"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "கல்வி"
@@ -1896,6 +1916,10 @@ msgstr "உங்கள் கடவுச்சொல் நினைவில
msgid "Remove Password"
msgstr "கடவுச்சொல்லை நீக்கு"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "கடவுச்சொல் பாதுகாப்பை நீக்கிக் கொண்டிருக்கிறது..."
@@ -2081,6 +2105,18 @@ msgstr "பகிர்வு"
msgid "Show"
msgstr "காட்டு"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "சைட்பார்"
@@ -2345,6 +2381,10 @@ msgstr "பின்னர், செயலி வழங்கும் 6 இல
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "PDF உருவாக்கும் போது ஒரு பிரச்சனை ஏற்பட்டது, தயவுசெய்து சில நேரம் கழித்து மீண்டும் முயற்சிக்கவும்."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "ரெஸ்யூமியை புதுப்பிக்கவு
msgid "Update your password"
msgstr "உங்கள் கடவுச்சொல்லை புதுப்பிக்கவும்"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "உங்கள் கடவுச்சொல்லை புதுப்பித்து கொண்டிருக்கிறது..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: te\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:14\n"
"Last-Translator: \n"
"Language-Team: Telugu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -207,6 +207,10 @@ msgstr "తరువాత వరుస చేర్చండి"
msgid "Add Row Before"
msgstr "ముందు వరుస చేర్చండి"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "ఆఫ్రికాన్స్"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "అల్బేనియన్"
@@ -340,6 +348,10 @@ msgstr "అధ్యయన విభాగం"
msgid "Artificial Intelligence"
msgstr "ఆర్టిఫిషియల్ ఇంటెలిజెన్స్"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "కారక నిష్పత్తి"
@@ -534,6 +546,10 @@ msgstr "చైనీస్ (సాంప్రదాయ)"
msgid "Circle"
msgstr "వృత్తం"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "ఎంపికను క్లియర్ చేయండి"
@@ -945,6 +961,10 @@ msgstr "మీ రిజ్యూమ్‌ను నకిలీ చేస్త
msgid "Dutch"
msgstr "డచ్"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "విద్య"
@@ -1896,6 +1916,10 @@ msgstr "మీకు పాస్‌వర్డ్ గుర్తుంది?
msgid "Remove Password"
msgstr "పాస్‌వర్డ్‌ను తీసివేయండి"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "పాస్‌వర్డ్ రక్షణను తీసివేస్తున్నాము..."
@@ -2081,6 +2105,18 @@ msgstr "షేరింగ్"
msgid "Show"
msgstr "చూపించండి"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "<<<<<<< HEAD"
@@ -2345,6 +2381,10 @@ msgstr "తర్వాత, యాప్ ఇచ్చిన 6 అంకెల
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "PDF రూపొందించడంలో సమస్య ఏర్పడింది, దయచేసి కొద్దిసేపటి తరువాత మళ్లీ ప్రయత్నించండి."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "రిజ్యూమ్‌ను నవీకరించండి"
msgid "Update your password"
msgstr "మీ పాస్‌వర్డ్‌ను నవీకరించండి"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "మీ పాస్‌వర్డ్‌ను నవీకరిస్తోంది..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: th\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:14\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -207,6 +207,10 @@ msgstr "เพิ่มแถวหลัง"
msgid "Add Row Before"
msgstr "เพิ่มแวก่อน"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "อาฟรีกานส์"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "แอลเบเนีย"
@@ -340,6 +348,10 @@ msgstr "สาขาวิชา"
msgid "Artificial Intelligence"
msgstr "ปัญญาประดิษฐ์"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "อัตราส่วนภาพ"
@@ -534,6 +546,10 @@ msgstr "จีน (ตัวเต็ม)"
msgid "Circle"
msgstr "วงกลม"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "ล้างการเลือก"
@@ -945,6 +961,10 @@ msgstr "กำลังคัดลอกเรซูเม่ของคุณ
msgid "Dutch"
msgstr "ดัตช์"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "การศึกษา"
@@ -1896,6 +1916,10 @@ msgstr "จำรหัสผ่านของคุณได้หรือไ
msgid "Remove Password"
msgstr "ลบรหัสผ่าน"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "กำลังลบการป้องกันด้วยรหัสผ่าน..."
@@ -2081,6 +2105,18 @@ msgstr "การแชร์"
msgid "Show"
msgstr "แสดง"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "<<<<<<< HEAD"
@@ -2345,6 +2381,10 @@ msgstr "จากนั้น กรอกรหัส 6 หลักที่
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "เกิดปัญหาในการสร้าง PDF โปรดลองใหม่อีกครั้งในภายหลัง"
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "อัปเดตประวัติย่อ"
msgid "Update your password"
msgstr "อัปเดตรหัสผ่านของคุณ"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "กำลังอัปเดตรหัสผ่านของคุณ..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: tr\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:13\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -207,6 +207,10 @@ msgstr "Sonra Satır Ekle"
msgid "Add Row Before"
msgstr "Önce Satır Ekle"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Afrikaans"
msgid "AI"
msgstr "Yapay Zeka"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Arnavutça"
@@ -340,6 +348,10 @@ msgstr "Çalışma alanı"
msgid "Artificial Intelligence"
msgstr "Yapay Zekâ"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "En/Boy Oranı"
@@ -534,6 +546,10 @@ msgstr "Çince (Geleneksel)"
msgid "Circle"
msgstr "Daire"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Seçimi temizle"
@@ -945,6 +961,10 @@ msgstr "Özgeçmişiniz çoğaltılıyor..."
msgid "Dutch"
msgstr "Felemenkçe"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Eğitim"
@@ -1896,6 +1916,10 @@ msgstr "Şifrenizi hatırlıyor musunuz? <0><1>Şimdi giriş yapın <2/></1></0>
msgid "Remove Password"
msgstr "Şifreyi Kaldır"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Şifre koruması kaldırılıyor..."
@@ -2081,6 +2105,18 @@ msgstr "Paylaşım"
msgid "Show"
msgstr "Göster"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "<<<<<<< HEAD"
@@ -2345,6 +2381,10 @@ msgstr "Daha sonra, devam etmek için uygulamanın verdiği 6 haneli kodu girin.
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "PDF oluşturulurken bir sorun oluştu, lütfen daha sonra tekrar deneyin."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "Özgeçmişi Güncelle"
msgid "Update your password"
msgstr "Şifrenizi güncelleyin"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Şifreniz güncelleniyor..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: uk\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:13\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"
@@ -207,6 +207,10 @@ msgstr "Додати Рядок Знизу"
msgid "Add Row Before"
msgstr "Додати Рядок Згори"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Африканська"
msgid "AI"
msgstr "ШІ"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Албанська"
@@ -340,6 +348,10 @@ msgstr "Освітня програма"
msgid "Artificial Intelligence"
msgstr "Штучний інтелект"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Пропорції"
@@ -534,6 +546,10 @@ msgstr "Китайська (традиційна)"
msgid "Circle"
msgstr "Кругле"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Очистити вибір"
@@ -945,6 +961,10 @@ msgstr "Дублювання резюме..."
msgid "Dutch"
msgstr "Голландська"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Освіта"
@@ -1896,6 +1916,10 @@ msgstr "Пам’ятаєте свій пароль? <0><1>Увійдіть за
msgid "Remove Password"
msgstr "Видалити пароль"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Видалення захисту паролем..."
@@ -2081,6 +2105,18 @@ msgstr "Поширити"
msgid "Show"
msgstr "Показати"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "<<<<<<< HEAD"
@@ -2345,6 +2381,10 @@ msgstr "Далі введіть шестизначний код, який над
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Сталася проблема під час створення PDF, будь ласка, спробуйте ще раз пізніше."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "Оновити резюме"
msgid "Update your password"
msgstr "Оновіть свій пароль"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Оновлення пароля..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: uz\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:14\n"
"Last-Translator: \n"
"Language-Team: Uzbek\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -207,6 +207,10 @@ msgstr "Qatordan keyin qator qo‘shish"
msgid "Add Row Before"
msgstr "Qatordan oldin qator qo‘shish"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Afrikaans"
msgid "AI"
msgstr "SO"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Alban tili"
@@ -340,6 +348,10 @@ msgstr "Ta'lim sohasi"
msgid "Artificial Intelligence"
msgstr "Sun'iy intellekt"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Tomonlar nisbati"
@@ -534,6 +546,10 @@ msgstr "Xitoy (An’anaviy)"
msgid "Circle"
msgstr "Doira"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Tanlovni tozalash"
@@ -945,6 +961,10 @@ msgstr "Rezyume nusxalanmoqda..."
msgid "Dutch"
msgstr "Golland tili"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Ta'lim"
@@ -1896,6 +1916,10 @@ msgstr "Parolingiz esingizdami? <0><1>Hozir kiring <2/></1></0>"
msgid "Remove Password"
msgstr "Parolni olib tashlash"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Parol himoyasi olib tashlanmoqda..."
@@ -2081,6 +2105,18 @@ msgstr "Ulashish"
msgid "Show"
msgstr "Ko‘rsatish"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "<<<<<<< HEAD"
@@ -2345,6 +2381,10 @@ msgstr "Keyin, davom etish uchun ilova taqdim etgan 6 xonali kodni kiriting."
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "PDF yaratishda muammo yuzaga keldi, iltimos, birozdan so'ng qaytadan urinib ko'ring."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "Rezyumeni yangilash"
msgid "Update your password"
msgstr "Parolingizni yangilash"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Parolingiz yangilanmoqda..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: vi\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:13\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -207,6 +207,10 @@ msgstr "Thêm dòng sau"
msgid "Add Row Before"
msgstr "Thêm dòng trước"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "Tiếng Afrikaans"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "Tiếng Albania"
@@ -340,6 +348,10 @@ msgstr "Lĩnh vực học tập"
msgid "Artificial Intelligence"
msgstr "Trí tuệ nhân tạo"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Tỷ lệ khung hình"
@@ -534,6 +546,10 @@ msgstr "Tiếng Trung (Phồn thể)"
msgid "Circle"
msgstr "Vòng tròn"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "Xóa lựa chọn"
@@ -945,6 +961,10 @@ msgstr "Đang tạo bản sao bản lý lịch của bạn..."
msgid "Dutch"
msgstr "Tiếng Hà Lan"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "Giáo dục"
@@ -1896,6 +1916,10 @@ msgstr "Bạn nhớ mật khẩu? <0><1>Đăng nhập ngay <2/></1></0>"
msgid "Remove Password"
msgstr "Xóa mật khẩu"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Đang xóa bảo vệ mật khẩu..."
@@ -2081,6 +2105,18 @@ msgstr "Chia sẻ"
msgid "Show"
msgstr "Hiện"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "<<<<<<< HEAD"
@@ -2345,6 +2381,10 @@ msgstr "Sau đó, nhập mã 6 chữ số mà ứng dụng cung cấp để ti
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Đã xảy ra sự cố khi tạo PDF, hãy thử lại sau."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "Cập nhật resume"
msgid "Update your password"
msgstr "Cập nhật mật khẩu của bạn"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Đang cập nhật mật khẩu của bạn..."
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: zh\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:13\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -207,6 +207,10 @@ msgstr "在后面添加行"
msgid "Add Row Before"
msgstr "在前面添加行"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "南非语"
msgid "AI"
msgstr "AI(人工智能)"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "阿尔巴尼亚语"
@@ -340,6 +348,10 @@ msgstr "学习领域"
msgid "Artificial Intelligence"
msgstr "人工智能"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "宽高比"
@@ -534,6 +546,10 @@ msgstr "中文(繁体)"
msgid "Circle"
msgstr "圆形"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "清除选择"
@@ -945,6 +961,10 @@ msgstr "正在复制你的简历…"
msgid "Dutch"
msgstr "荷兰语"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "教育经历"
@@ -1896,6 +1916,10 @@ msgstr "想起你的密码了?<0><1>立即登录 <2/></1></0>"
msgid "Remove Password"
msgstr "移除密码"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "正在移除密码保护…"
@@ -2081,6 +2105,18 @@ msgstr "发布与分享"
msgid "Show"
msgstr "显示"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "侧边栏"
@@ -2345,6 +2381,10 @@ msgstr "然后,输入应用提供的 6 位验证码以继续。"
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "生成 PDF 时出现问题,请稍后重试。"
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "更新简历"
msgid "Update your password"
msgstr "更新你的密码"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "正在更新你的密码…"
+45 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: zh\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-01-31 01:19\n"
"PO-Revision-Date: 2026-01-31 12:13\n"
"Last-Translator: \n"
"Language-Team: Chinese Traditional\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -207,6 +207,10 @@ msgstr "在後方新增列"
msgid "Add Row Before"
msgstr "在前方新增列"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -225,6 +229,10 @@ msgstr "南非荷蘭語"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr "阿爾巴尼亞語"
@@ -340,6 +348,10 @@ msgstr "學習領域"
msgid "Artificial Intelligence"
msgstr "人工智慧"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "顯示比例"
@@ -534,6 +546,10 @@ msgstr "中文(繁體)"
msgid "Circle"
msgstr "圓形"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr "清除選取"
@@ -945,6 +961,10 @@ msgstr "正在複製您的履歷…"
msgid "Dutch"
msgstr "荷蘭語"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr "學歷"
@@ -1896,6 +1916,10 @@ msgstr "想起密碼了嗎?<0><1>立即登入 <2/></1></0>"
msgid "Remove Password"
msgstr "移除密碼"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "正在移除密碼保護…"
@@ -2081,6 +2105,18 @@ msgstr "分享"
msgid "Show"
msgstr "顯示"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "側邊欄"
@@ -2345,6 +2381,10 @@ msgstr "接著,請輸入應用程式提供的 6 位數驗證碼以繼續。"
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "產生 PDF 時發生問題,請稍後再試一次。"
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2608,6 +2648,10 @@ msgstr "更新履歷"
msgid "Update your password"
msgstr "更新您的密碼"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "正在更新您的密碼…"
+44
View File
@@ -202,6 +202,10 @@ msgstr ""
msgid "Add Row Before"
msgstr ""
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: passkey.createdAt.toLocaleDateString()
#: src/routes/dashboard/settings/authentication/-components/passkeys.tsx
msgid "Added on {0}"
@@ -220,6 +224,10 @@ msgstr ""
msgid "AI"
msgstr ""
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/utils/locale.ts
msgid "Albanian"
msgstr ""
@@ -335,6 +343,10 @@ msgstr ""
msgid "Artificial Intelligence"
msgstr ""
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr ""
@@ -529,6 +541,10 @@ msgstr ""
msgid "Circle"
msgstr ""
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/components/ui/multiple-combobox.tsx
msgid "Clear selection"
msgstr ""
@@ -940,6 +956,10 @@ msgstr ""
msgid "Dutch"
msgstr ""
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/utils/resume/section.tsx
msgid "Education"
msgstr ""
@@ -1891,6 +1911,10 @@ msgstr ""
msgid "Remove Password"
msgstr ""
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr ""
@@ -2076,6 +2100,18 @@ msgstr ""
msgid "Show"
msgstr ""
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr ""
@@ -2340,6 +2376,10 @@ msgstr ""
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr ""
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2603,6 +2643,10 @@ msgstr ""
msgid "Update your password"
msgstr ""
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr ""
+434
View File
@@ -0,0 +1,434 @@
#!/usr/bin/env node
/**
* Reactive Resume MCP server — single entry point. Run with:
* npx tsx /path/to/reactive-resume/mcp
*
* Env: REACTIVE_RESUME_API_KEY (required), REACTIVE_RESUME_URL (default https://rxresu.me),
* TRANSPORT (stdio | http), PORT (default 3100).
*/
import * as http from "node:http";
import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import type { Operation } from "fast-json-patch";
import { z } from "zod";
import type { RouterInput, RouterOutput } from "@/integrations/orpc/client";
import { jsonPatchOperationSchema } from "@/utils/resume/patch";
import schemaJSON from "../src/schema/schema.json";
// --- Env ---
const API_KEY = process.env.REACTIVE_RESUME_API_KEY;
const BASE_URL = (process.env.REACTIVE_RESUME_URL ?? "https://rxresu.me").replace(/\/$/, "");
const TRANSPORT = process.env.TRANSPORT ?? "stdio";
const PORT = Number.parseInt(process.env.PORT ?? "3100", 10);
if (!API_KEY) {
console.error("ERROR: REACTIVE_RESUME_API_KEY is required. Create one in Settings > API Keys.");
process.exit(1);
}
const apiKey = API_KEY;
// --- API client ---
async function apiRequest<T>(method: string, path: string, body?: unknown): Promise<T> {
const url = `${BASE_URL}${path}`;
const res = await fetch(url, {
method,
headers: {
"x-api-key": apiKey,
Accept: "application/json",
"Content-Type": "application/json",
},
body: body ? JSON.stringify(body) : undefined,
});
if (!res.ok) {
const text = await res.text().catch(() => "Unknown error");
throw new Error(`Reactive Resume API error (${res.status}): ${text}`);
}
return res.json() as Promise<T>;
}
async function listResumes(): Promise<RouterOutput["resume"]["list"]> {
return apiRequest("GET", "/api/openapi/resumes");
}
async function getResume(id: string): Promise<RouterOutput["resume"]["getById"]> {
return apiRequest("GET", `/api/openapi/resumes/${encodeURIComponent(id)}`);
}
async function patchResume(id: string, operations: Operation[]): Promise<RouterOutput["resume"]["patch"]> {
return apiRequest("PATCH", `/api/openapi/resumes/${encodeURIComponent(id)}`, { operations });
}
async function createResume(input: RouterInput["resume"]["create"]): Promise<RouterOutput["resume"]["create"]> {
return apiRequest("POST", "/api/openapi/resumes", input);
}
async function deleteResume(id: string): Promise<RouterOutput["resume"]["delete"]> {
return apiRequest("DELETE", `/api/openapi/resumes/${encodeURIComponent(id)}`);
}
async function setResumeLocked(id: string, isLocked: boolean): Promise<RouterOutput["resume"]["setLocked"]> {
return apiRequest("POST", `/api/openapi/resumes/${encodeURIComponent(id)}/lock`, { isLocked });
}
// --- MCP server ---
const server = new McpServer({ name: "reactive-resume-mcp-server", version: "1.0.0" });
// Tool: list_resumes
server.registerTool(
"list_resumes",
{
title: "List Resumes",
description:
"List all resumes for the authenticated user. Returns id, name, slug, tags, visibility, lock status, timestamps.",
inputSchema: z.object({}).strict(),
},
async () => {
try {
const resumes = await listResumes();
if (resumes.length === 0)
return {
content: [{ type: "text", text: "No resumes found. Use create_resume to create one." }],
};
const lines = [`# Your Resumes (${resumes.length})`, ""];
for (const r of resumes) {
const tags = r.tags.length > 0 ? ` [${r.tags.join(", ")}]` : "";
const flags = [r.isPublic ? "public" : "private", r.isLocked ? "locked" : ""].filter(Boolean).join(", ");
lines.push(`- **${r.name}** (${r.id})${tags}`);
lines.push(` Status: ${flags} | Updated: ${r.updatedAt}`);
}
return { content: [{ type: "text", text: lines.join("\n") }] };
} catch (error) {
return {
isError: true,
content: [
{ type: "text", text: `Error listing resumes: ${error instanceof Error ? error.message : String(error)}` },
],
};
}
},
);
// Tool: get_resume
server.registerTool(
"get_resume",
{
title: "Get Resume",
description: "Get the full data of a specific resume by ID. Use list_resumes to find IDs.",
inputSchema: z.object({ id: z.string().min(1).describe("Resume ID") }).strict(),
},
async ({ id }: { id: string }) => {
try {
const resume = await getResume(id);
return { content: [{ type: "text", text: JSON.stringify(resume.data, null, 2) }] };
} catch (error) {
return {
isError: true,
content: [
{
type: "text",
text: `Error getting resume: ${error instanceof Error ? error.message : String(error)}. Use list_resumes to find valid IDs.`,
},
],
};
}
},
);
// Tool: patch_resume
server.registerTool(
"patch_resume",
{
title: "Patch Resume",
description:
"Apply JSON Patch (RFC 6902) operations. Use get_resume first to inspect structure. Paths like /basics/name, /sections/skills/items/-.",
inputSchema: z
.object({
id: z.string().min(1).describe("Resume ID"),
operations: z.array(jsonPatchOperationSchema).min(1).describe("JSON Patch operations"),
})
.strict(),
},
async ({ id, operations }: { id: string; operations: Operation[] }) => {
try {
const resume = await patchResume(id, operations);
const summary = operations.map((op) => `${op.op} ${op.path}`).join(", ");
return {
content: [{ type: "text", text: `Applied ${operations.length} operation(s) to "${resume.name}": ${summary}` }],
};
} catch (error) {
const msg = error instanceof Error ? error.message : String(error);
let hint = "";
if (msg.includes("400")) hint = " Use get_resume to check structure and paths.";
if (msg.includes("403")) hint = " Resume is locked. Use unlock_resume first.";
if (msg.includes("404")) hint = " Use list_resumes to find valid IDs.";
return { isError: true, content: [{ type: "text", text: `Error patching resume: ${msg}${hint}` }] };
}
},
);
// Tool: create_resume
server.registerTool(
"create_resume",
{
title: "Create Resume",
description:
"Create a new resume with a name, slug, and optional tags. Set withSampleData to true to pre-fill with example content.",
inputSchema: z
.object({
name: z.string().min(1).max(64).describe("Name for the new resume"),
slug: z.string().min(1).max(64).describe("URL-friendly slug (must be unique across your resumes)"),
tags: z.array(z.string()).optional().default([]).describe("Optional tags to categorize the resume"),
withSampleData: z.boolean().optional().default(false).describe("If true, pre-fill the resume with sample data"),
})
.strict(),
},
async ({
name,
slug,
tags,
withSampleData,
}: {
name: string;
slug: string;
tags: string[];
withSampleData: boolean;
}) => {
try {
const id = await createResume({ name, slug, tags, withSampleData });
return {
content: [
{
type: "text",
text: `Created resume "${name}" (${id}) with slug "${slug}".${withSampleData ? " Pre-filled with sample data." : ""} Use get_resume to view or patch_resume to edit it.`,
},
],
};
} catch (error) {
const msg = error instanceof Error ? error.message : String(error);
let hint = "";
if (msg.includes("400")) hint = " The slug may already be in use — try a different one.";
return { isError: true, content: [{ type: "text", text: `Error creating resume: ${msg}${hint}` }] };
}
},
);
// Tool: delete_resume
server.registerTool(
"delete_resume",
{
title: "Delete Resume",
description:
"Permanently delete a resume and its associated files (screenshots, PDFs). Locked resumes cannot be deleted — unlock first. This action is irreversible.",
inputSchema: z
.object({
id: z.string().min(1).describe("Resume ID to delete. Use list_resumes to find IDs."),
})
.strict(),
},
async ({ id }: { id: string }) => {
try {
await deleteResume(id);
return { content: [{ type: "text", text: `Successfully deleted resume (${id}) and its associated files.` }] };
} catch (error) {
const msg = error instanceof Error ? error.message : String(error);
let hint = "";
if (msg.includes("403")) hint = " The resume may be locked. Use unlock_resume first.";
if (msg.includes("404")) hint = " Use list_resumes to find valid IDs.";
return { isError: true, content: [{ type: "text", text: `Error deleting resume: ${msg}${hint}` }] };
}
},
);
// Tool: lock_resume
server.registerTool(
"lock_resume",
{
title: "Lock Resume",
description:
"Lock a resume to prevent edits, patches, or deletion. Useful for protecting finalized resumes from accidental changes.",
inputSchema: z
.object({
id: z.string().min(1).describe("Resume ID to lock. Use list_resumes to find IDs."),
})
.strict(),
},
async ({ id }: { id: string }) => {
try {
await setResumeLocked(id, true);
return {
content: [
{
type: "text",
text: `Resume (${id}) is now locked. It cannot be edited, patched, or deleted until unlocked.`,
},
],
};
} catch (error) {
const msg = error instanceof Error ? error.message : String(error);
let hint = "";
if (msg.includes("404")) hint = " Use list_resumes to find valid IDs.";
return { isError: true, content: [{ type: "text", text: `Error locking resume: ${msg}${hint}` }] };
}
},
);
// Tool: unlock_resume
server.registerTool(
"unlock_resume",
{
title: "Unlock Resume",
description: "Unlock a previously locked resume, allowing edits, patches, and deletion again.",
inputSchema: z
.object({
id: z.string().min(1).describe("Resume ID to unlock. Use list_resumes to find IDs."),
})
.strict(),
},
async ({ id }: { id: string }) => {
try {
await setResumeLocked(id, false);
return {
content: [{ type: "text", text: `Resume (${id}) is now unlocked. It can be edited, patched, and deleted.` }],
};
} catch (error) {
const msg = error instanceof Error ? error.message : String(error);
let hint = "";
if (msg.includes("404")) hint = " Use list_resumes to find valid IDs.";
return { isError: true, content: [{ type: "text", text: `Error unlocking resume: ${msg}${hint}` }] };
}
},
);
// Resource: resume://{id}
const resumeTemplate = new ResourceTemplate("resume://{id}", {
list: async () => {
const resumes = await listResumes();
return {
resources: resumes.map((r) => ({
uri: `resume://${r.id}`,
name: r.name,
mimeType: "application/json" as const,
description: `Resume: ${r.name}`,
})),
};
},
});
server.registerResource(
"resume",
resumeTemplate,
{
description: "Full resume data as JSON. Use resume://{id} with ID from list_resumes.",
mimeType: "application/json",
},
async (uri: URL) => {
const id = uri.href.replace(/^resume:\/\//, "");
if (!id) throw new Error("Invalid resume URI: resume://{id}");
const resume = await getResume(id);
return {
contents: [{ uri: uri.href, mimeType: "application/json" as const, text: JSON.stringify(resume.data, null, 2) }],
};
},
);
// Resource: resume://schema
server.registerResource(
"resume-schema",
"resume://schema",
{
description: "Resume Data JSON Schema for generating correct JSON Patch operations.",
mimeType: "application/json",
},
async (uri: URL) => ({
contents: [{ uri: uri.href, mimeType: "application/json" as const, text: JSON.stringify(schemaJSON, null, 2) }],
}),
);
// --- Transport: stdio (default) ---
async function runStdio(): Promise<void> {
const transport = new StdioServerTransport();
await server.connect(transport);
console.error("Reactive Resume MCP server running via stdio");
}
// --- Transport: HTTP (Node http server) ---
function readBody(req: http.IncomingMessage): Promise<unknown> {
return new Promise((resolve, reject) => {
const chunks: Buffer[] = [];
req.on("data", (chunk) => chunks.push(chunk));
req.on("end", () => {
const raw = Buffer.concat(chunks).toString("utf8");
if (!raw.trim()) return resolve(undefined);
try {
resolve(JSON.parse(raw));
} catch {
reject(new Error("Invalid JSON body"));
}
});
req.on("error", reject);
});
}
async function runHttp(): Promise<void> {
const { StreamableHTTPServerTransport } = await import("@modelcontextprotocol/sdk/server/streamableHttp.js");
const httpServer = http.createServer(async (req, res) => {
if (req.method !== "POST" || req.url !== "/mcp") {
res.writeHead(404, { "Content-Type": "text/plain" });
res.end("Not Found");
return;
}
let body: unknown;
try {
body = await readBody(req);
} catch {
res.writeHead(400, { "Content-Type": "application/json" });
res.end(JSON.stringify({ jsonrpc: "2.0", error: { code: -32700, message: "Parse error" }, id: null }));
return;
}
const transport = new StreamableHTTPServerTransport({
sessionIdGenerator: undefined,
enableJsonResponse: true,
});
res.on("close", () => transport.close());
await server.connect(transport);
await transport.handleRequest(req as never, res as never, body);
});
httpServer.listen(PORT, "127.0.0.1", () => {
console.error(`Reactive Resume MCP server running on http://127.0.0.1:${PORT}/mcp`);
});
}
if (TRANSPORT === "http") {
runHttp().catch((err) => {
console.error("Server error:", err);
process.exit(1);
});
} else {
runStdio().catch((err) => {
console.error("Server error:", err);
process.exit(1);
});
}
+45 -41
View File
@@ -1,10 +1,10 @@
{
"name": "reactive-resume",
"description": "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume.",
"version": "5.0.5",
"version": "5.0.7",
"license": "MIT",
"type": "module",
"packageManager": "pnpm@10.28.2+sha512.41872f037ad22f7348e3b1debbaf7e867cfd448f2726d9cf74c08f19507c31d2c8e7a11525b983febc2df640b5438dee6023ebb1f84ed43cc2d654d2bc326264",
"packageManager": "pnpm@10.29.1+sha512.48dae233635a645768a3028d19545cacc1688639eeb1f3734e42d6d6b971afbf22aa1ac9af52a173d9c3a20c15857cfa400f19994d79a2f626fcc73fccda9bbc",
"repository": {
"type": "git",
"url": "https://github.com/amruthpillai/reactive-resume.git"
@@ -26,17 +26,18 @@
"docs:dev": "cd docs && npx mint dev",
"knip": "knip",
"lingui:extract": "lingui extract --clean --overwrite",
"lint": "biome check --write .",
"lint": "biome check --write",
"start": "node .output/server/index.mjs",
"typecheck": "tsc --noEmit"
"typecheck": "tsgo --noEmit"
},
"dependencies": {
"@ai-sdk/anthropic": "^3.0.33",
"@ai-sdk/google": "^3.0.18",
"@ai-sdk/openai": "^3.0.23",
"@aws-sdk/client-s3": "^3.980.0",
"@better-auth/core": "1.5.0-beta.10",
"@better-auth/passkey": "1.5.0-beta.10",
"@ai-sdk/anthropic": "^3.0.39",
"@ai-sdk/google": "^3.0.22",
"@ai-sdk/openai": "^3.0.26",
"@ai-sdk/react": "^3.0.79",
"@aws-sdk/client-s3": "^3.985.0",
"@better-auth/core": "1.5.0-beta.13",
"@better-auth/passkey": "1.5.0-beta.13",
"@dnd-kit/core": "^6.3.1",
"@dnd-kit/sortable": "^10.0.0",
"@dnd-kit/utilities": "^3.2.2",
@@ -56,47 +57,50 @@
"@sindresorhus/slugify": "^3.0.0",
"@t3-oss/env-core": "^0.13.10",
"@tanstack/react-query": "5.90.20",
"@tanstack/react-router": "^1.157.17",
"@tanstack/react-router-ssr-query": "^1.157.17",
"@tanstack/react-start": "^1.157.17",
"@tanstack/zod-adapter": "^1.157.17",
"@tiptap/extension-highlight": "^3.18.0",
"@tiptap/extension-table": "^3.18.0",
"@tiptap/extension-text-align": "^3.18.0",
"@tiptap/pm": "^3.18.0",
"@tiptap/react": "^3.18.0",
"@tiptap/starter-kit": "^3.18.0",
"ai": "^6.0.63",
"ai-sdk-ollama": "^3.3.0",
"@tanstack/react-router": "^1.159.3",
"@tanstack/react-router-ssr-query": "^1.159.3",
"@tanstack/react-start": "^1.159.3",
"@tanstack/zod-adapter": "^1.159.3",
"@tiptap/extension-highlight": "^3.19.0",
"@tiptap/extension-table": "^3.19.0",
"@tiptap/extension-text-align": "^3.19.0",
"@tiptap/pm": "^3.19.0",
"@tiptap/react": "^3.19.0",
"@tiptap/starter-kit": "^3.19.0",
"ai": "^6.0.77",
"ai-sdk-ollama": "^3.5.0",
"bcrypt": "^6.0.0",
"better-auth": "1.5.0-beta.10",
"better-auth": "1.5.0-beta.13",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"cmdk": "^1.1.1",
"dompurify": "^3.3.1",
"drizzle-orm": "^1.0.0-beta.12-a5629fb",
"drizzle-orm": "^1.0.0-beta.15-859cf75",
"drizzle-zod": "^0.8.3",
"@modelcontextprotocol/sdk": "^1.26.0",
"es-toolkit": "^1.44.0",
"fast-deep-equal": "^3.1.3",
"fast-json-patch": "^3.1.1",
"fuse.js": "^7.1.0",
"immer": "^11.1.3",
"input-otp": "^1.4.2",
"js-cookie": "^3.0.5",
"monaco-editor": "^0.55.1",
"motion": "^12.29.2",
"nodemailer": "^7.0.13",
"motion": "^12.33.0",
"nodemailer": "^8.0.1",
"pg": "^8.18.0",
"puppeteer-core": "^24.36.1",
"puppeteer-core": "^24.37.2",
"qrcode.react": "^4.2.0",
"radix-ui": "^1.4.3",
"react": "^19.2.4",
"react-dom": "^19.2.4",
"react-hook-form": "^7.71.1",
"react-hotkeys-hook": "^5.2.3",
"react-resizable-panels": "^4.5.6",
"react-window": "^2.2.5",
"react-hotkeys-hook": "^5.2.4",
"react-resizable-panels": "^4.6.2",
"react-window": "^2.2.6",
"react-zoom-pan-pinch": "^3.7.0",
"reflect-metadata": "^0.2.2",
"shadcn": "^3.8.0",
"shadcn": "^3.8.4",
"sharp": "^0.34.5",
"sonner": "^2.0.7",
"tailwind-merge": "^3.4.0",
@@ -110,37 +114,37 @@
"workbox-window": "^7.4.0",
"zod": "^4.3.6",
"zundo": "^2.3.0",
"zustand": "^5.0.10"
"zustand": "^5.0.11"
},
"devDependencies": {
"@biomejs/biome": "^2.3.13",
"@biomejs/biome": "^2.3.14",
"@lingui/babel-plugin-lingui-macro": "^5.9.0",
"@lingui/cli": "^5.9.0",
"@lingui/vite-plugin": "^5.9.0",
"@tailwindcss/vite": "^4.1.18",
"@types/bcrypt": "^6.0.0",
"@types/js-cookie": "^3.0.6",
"@types/node": "^25.1.0",
"@types/node": "^25.2.2",
"@types/nodemailer": "^7.0.9",
"@types/pg": "^8.16.0",
"@types/react": "^19.2.10",
"@types/react": "^19.2.13",
"@types/react-dom": "^19.2.3",
"@vitejs/plugin-react": "^5.1.2",
"@typescript/native-preview": "7.0.0-dev.20260208.1",
"@vitejs/plugin-react": "^5.1.3",
"babel-plugin-macros": "^3.1.0",
"drizzle-kit": "^1.0.0-beta.12-a5629fb",
"knip": "^5.82.1",
"drizzle-kit": "^1.0.0-beta.15-859cf75",
"knip": "^5.83.1",
"nitro": "npm:nitro-nightly@latest",
"node-addon-api": "^8.5.0",
"node-gyp": "^12.2.0",
"npm-check-updates": "^19.3.2",
"tsx": "^4.21.0",
"typescript": "^5.9.3",
"vite": "npm:rolldown-vite@latest",
"vite": "^8.0.0-beta.13",
"vite-plugin-pwa": "^1.2.0"
},
"pnpm": {
"overrides": {
"vite": "npm:rolldown-vite@latest"
"vite": "^8.0.0-beta.13"
},
"onlyBuiltDependencies": [
"@prisma/engines",
+2047 -1776
View File
File diff suppressed because it is too large Load Diff
+408
View File
@@ -0,0 +1,408 @@
import { useChat } from "@ai-sdk/react";
import { t } from "@lingui/core/macro";
import { Trans } from "@lingui/react/macro";
import { eventIteratorToUnproxiedDataStream } from "@orpc/client";
import {
CheckCircleIcon,
CircleNotchIcon,
PaperPlaneRightIcon,
SparkleIcon,
StopIcon,
TrashSimpleIcon,
} from "@phosphor-icons/react";
import type { UIMessage } from "ai";
import type { Operation } from "fast-json-patch";
import { useCallback, useEffect, useRef, useState } from "react";
import { toast } from "sonner";
import { Button } from "@/components/ui/button";
import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover";
import { ScrollArea } from "@/components/ui/scroll-area";
import { useAIStore } from "@/integrations/ai/store";
import { client } from "@/integrations/orpc/client";
import { applyResumePatches } from "@/utils/resume/patch";
import { cn } from "@/utils/style";
import { useResumeStore } from "../resume/store/resume";
/**
* Extract patch operations from the latest assistant messages' tool call parts.
* Returns operations that haven't been applied yet (tracked by processedToolCallIds).
*/
function extractNewPatchOperations(
messages: UIMessage[],
processedIds: Set<string>,
): { operations: Operation[]; newIds: string[] } {
const operations: Operation[] = [];
const newIds: string[] = [];
for (const message of messages) {
if (message.role !== "assistant") continue;
for (const part of message.parts) {
if (part.type !== "tool-patch_resume") continue;
// biome-ignore lint/suspicious/noExplicitAny: AI SDK tool parts have dynamic shapes
const toolPart = part as any;
if (toolPart.state !== "output-available") continue;
const callId = toolPart.toolCallId as string;
if (processedIds.has(callId)) continue;
const result = toolPart.output as { success: boolean; appliedOperations?: Operation[] } | undefined;
if (result?.success && result.appliedOperations) {
operations.push(...result.appliedOperations);
newIds.push(callId);
}
}
}
return { operations, newIds };
}
/**
* LocalStorage helpers for persisting chat messages per resume.
*/
const STORAGE_KEY_PREFIX = "ai-chat-messages";
function getStorageKey(resumeId: string): string {
return `${STORAGE_KEY_PREFIX}:${resumeId}`;
}
function loadStoredMessages(resumeId: string): UIMessage[] {
try {
const stored = localStorage.getItem(getStorageKey(resumeId));
if (!stored) return [];
return JSON.parse(stored) as UIMessage[];
} catch {
return [];
}
}
function saveStoredMessages(resumeId: string, messages: UIMessage[]): void {
try {
localStorage.setItem(getStorageKey(resumeId), JSON.stringify(messages));
} catch {
// Silently fail if localStorage is full or unavailable
}
}
function clearStoredMessages(resumeId: string): void {
localStorage.removeItem(getStorageKey(resumeId));
}
function formatPath(path: string): string {
return path.replace(/^\//, "").replace(/\//g, " › ");
}
function formatOperationLabel(op: string): string {
switch (op) {
case "replace":
return t`Updated`;
case "add":
return t`Added`;
case "remove":
return t`Removed`;
default:
return op;
}
}
function ToolBadge({ state, operations }: { state: string; operations?: { op: string; path: string }[] }) {
const isDone = state === "output-available";
return (
<div className="my-0.5 flex flex-col gap-1.5">
<span
data-state={state}
className={cn(
"inline-flex w-fit items-center gap-1.5 rounded-full border px-2.5 py-1 font-medium text-[11px]",
"data-[state=output-available]:border-emerald-500/30 data-[state=output-available]:bg-emerald-500/10 data-[state=output-available]:text-emerald-600 dark:data-[state=output-available]:text-emerald-400",
)}
>
{isDone ? (
<CheckCircleIcon weight="fill" className="size-3" />
) : (
<CircleNotchIcon className="size-3 animate-spin" />
)}
{isDone ? "Changes applied" : "Applying changes..."}
</span>
{isDone && operations && operations.length > 0 && (
<div className="flex flex-col gap-0.5 pl-1 text-[11px] text-muted-foreground">
{operations.map((op, i) => (
<span key={i} className="flex items-center gap-1">
<span className="opacity-40">•</span>
{formatOperationLabel(op.op)} {formatPath(op.path)}
</span>
))}
</div>
)}
</div>
);
}
function MessageParts({ message }: { message: UIMessage }) {
const parts = message.parts;
if (parts.length === 0) return null;
return (
<div className="flex flex-col gap-2">
{parts.map((part, i) => {
if (part.type === "step-start") {
if (i === 0) return null;
return <hr key={i} className="my-0.5 border-border/40" />;
}
if (part.type === "text" && part.text.trim()) {
return (
<p key={i} className="whitespace-pre-wrap text-[13px] leading-relaxed">
{part.text}
</p>
);
}
if (part.type === "reasoning" && part.text.trim()) {
return (
<p key={i} className="whitespace-pre-wrap text-[11px] text-muted-foreground italic leading-relaxed">
{part.text}
</p>
);
}
if (part.type === "tool-patch_resume") {
// biome-ignore lint/suspicious/noExplicitAny: AI SDK tool parts have dynamic shapes
const toolPart = part as any;
const state = toolPart.state as string;
const operations = toolPart.input?.operations as { op: string; path: string }[] | undefined;
return <ToolBadge key={i} state={state} operations={operations} />;
}
return null;
})}
</div>
);
}
export function AIChat() {
const enabled = useAIStore((s) => s.enabled);
const provider = useAIStore((s) => s.provider);
const model = useAIStore((s) => s.model);
const apiKey = useAIStore((s) => s.apiKey);
const baseURL = useAIStore((s) => s.baseURL);
const resumeId = useResumeStore((s) => s.resume.id);
const resumeData = useResumeStore((s) => s.resume.data);
const updateResumeData = useResumeStore((s) => s.updateResumeData);
const [input, setInput] = useState("");
const [open, setOpen] = useState(false);
const bottomRef = useRef<HTMLDivElement>(null);
const inputRef = useRef<HTMLInputElement>(null);
const processedToolCallIds = useRef(new Set<string>());
// Load stored messages once on mount and pre-populate processedToolCallIds
// so that already-applied patches are not re-applied.
const [initialMessages] = useState(() => {
const stored = loadStoredMessages(resumeId);
for (const msg of stored) {
if (msg.role !== "assistant") continue;
for (const part of msg.parts) {
if (part.type !== "tool-patch_resume") continue;
// biome-ignore lint/suspicious/noExplicitAny: AI SDK tool parts have dynamic shapes
const toolPart = part as any;
if (toolPart.state === "output-available") {
processedToolCallIds.current.add(toolPart.toolCallId as string);
}
}
}
return stored;
});
const { messages, sendMessage, status, stop, setMessages } = useChat({
messages: initialMessages,
transport: {
async sendMessages(options) {
return eventIteratorToUnproxiedDataStream(
await client.ai.chat(
{
provider,
model,
apiKey,
baseURL,
messages: options.messages,
resumeData,
},
{ signal: options.abortSignal },
),
);
},
reconnectToStream() {
throw new Error("Unsupported");
},
},
onError(error) {
toast.error("AI chat error", { description: error.message });
},
});
// Apply patches when new tool results arrive
useEffect(() => {
const { operations, newIds } = extractNewPatchOperations(messages, processedToolCallIds.current);
if (operations.length === 0) return;
try {
const patched = applyResumePatches(resumeData, operations);
updateResumeData((draft) => {
Object.assign(draft, patched);
});
for (const id of newIds) processedToolCallIds.current.add(id);
} catch (error) {
toast.error("Failed to apply resume changes", {
description: error instanceof Error ? error.message : "Unknown error",
});
}
}, [messages, resumeData, updateResumeData]);
// Persist messages to localStorage whenever they change
useEffect(() => {
saveStoredMessages(resumeId, messages);
}, [resumeId, messages]);
// Auto-scroll to bottom (sentinel so it works with ScrollArea viewport)
useEffect(() => {
bottomRef.current?.scrollIntoView({ behavior: "smooth" });
}, [messages]);
// Refocus the input when the AI finishes responding
useEffect(() => {
if (status === "ready") inputRef.current?.focus();
}, [status]);
const handleOpenChange = useCallback((nextOpen: boolean) => {
setOpen(nextOpen);
}, []);
const handleClearMessages = useCallback(() => {
setMessages([]);
clearStoredMessages(resumeId);
processedToolCallIds.current.clear();
}, [resumeId, setMessages]);
const handleSubmit = useCallback(
(e: React.SubmitEvent) => {
e.preventDefault();
if (!input.trim() || status !== "ready") return;
sendMessage({ text: input });
setInput("");
},
[input, status, sendMessage],
);
if (!enabled) return null;
const isLoading = status === "submitted" || status === "streaming";
return (
<Popover open={open} onOpenChange={handleOpenChange}>
<PopoverTrigger asChild>
<Button size="icon" variant="ghost">
<SparkleIcon />
</Button>
</PopoverTrigger>
<PopoverContent className="flex h-128 w-md flex-col gap-y-0 overflow-hidden p-0" side="top" align="center">
{/* Header with clear button */}
<div className="flex shrink-0 items-center justify-between border-b px-3 py-1.5">
<p className="font-medium text-muted-foreground text-xs">
<Trans>AI Chat</Trans>
</p>
<Button
size="icon-sm"
variant="ghost"
className="size-7"
title={t`Clear chat history`}
onClick={handleClearMessages}
disabled={messages.length === 0 || isLoading}
>
<TrashSimpleIcon className="size-3" />
</Button>
</div>
{/* Message list — min-h-0 so flex constrains height and viewport scrolls */}
<ScrollArea className="min-h-0 flex-1 px-4">
<div className="flex flex-col gap-y-4 pt-4">
{messages.length === 0 && (
<div className="flex h-full items-center justify-center py-6">
<p className="text-center text-muted-foreground text-xs">
<Trans>Ask me to update your resume...</Trans>
</p>
</div>
)}
<div className="flex flex-col gap-4">
{messages.map((message) => (
<div key={message.id} className={cn("flex", message.role === "user" ? "justify-end" : "justify-start")}>
<div
data-role={message.role}
className={cn(
"max-w-[85%] rounded-xl px-3.5 py-2.5",
"data-[role=user]:rounded-br-sm data-[role=user]:bg-primary data-[role=user]:text-primary-foreground",
"data-[role=assistant]:rounded-bl-sm data-[role=assistant]:bg-muted data-[role=assistant]:text-foreground",
)}
>
{message.role === "user" ? (
<p className="text-[13px] leading-relaxed">
{message.parts.map((part, i) =>
part.type === "text" ? <span key={i}>{part.text}</span> : null,
)}
</p>
) : (
<MessageParts message={message} />
)}
</div>
</div>
))}
{status === "submitted" && (
<div className="flex justify-start">
<div className="rounded-xl rounded-bl-sm bg-muted px-3.5 py-2.5">
<div className="flex items-center gap-2 text-[13px] text-muted-foreground">
<CircleNotchIcon className="size-3 animate-spin" />
<span>
<Trans>Thinking...</Trans>
</span>
</div>
</div>
</div>
)}
<div ref={bottomRef} aria-hidden />
</div>
</div>
</ScrollArea>
{/* Input form — shrink-0 so it stays visible when content scrolls */}
<form onSubmit={handleSubmit} className="flex shrink-0 items-center gap-1.5 border-t px-3 py-2">
<input
ref={inputRef}
value={input}
disabled={!enabled || isLoading}
onChange={(e) => setInput(e.target.value)}
placeholder={t`e.g. Change my name to...`}
className="flex-1 bg-transparent text-[13px] outline-none placeholder:text-muted-foreground"
/>
{isLoading ? (
<Button type="button" size="icon" variant="ghost" onClick={stop} className="size-7 shrink-0">
<StopIcon className="size-3.5" />
</Button>
) : (
<Button type="submit" size="icon" variant="ghost" disabled={!input.trim()} className="size-7 shrink-0">
<PaperPlaneRightIcon className="size-3.5" />
</Button>
)}
</form>
</PopoverContent>
</Popover>
);
}
+21 -18
View File
@@ -24,9 +24,10 @@ function ensurePrefix(url: string) {
type Props = Omit<React.ComponentProps<"input">, "value" | "onChange"> & {
value: z.infer<typeof urlSchema>;
onChange: (value: z.infer<typeof urlSchema>) => void;
hideLabelButton?: boolean;
};
export function URLInput({ value, onChange, ...props }: Props) {
export function URLInput({ value, onChange, hideLabelButton, ...props }: Props) {
const handleUrlChange = useCallback(
(e: React.ChangeEvent<HTMLInputElement>) => {
onChange({
@@ -59,24 +60,26 @@ export function URLInput({ value, onChange, ...props }: Props) {
{...props}
/>
<InputGroupAddon align="inline-end">
<Popover>
<PopoverTrigger asChild>
<InputGroupButton size="icon-sm" title={t`Add a label to the URL`}>
<TagIcon />
</InputGroupButton>
</PopoverTrigger>
{!hideLabelButton && (
<InputGroupAddon align="inline-end">
<Popover>
<PopoverTrigger asChild>
<InputGroupButton size="icon-sm" title={t`Add a label to the URL`}>
<TagIcon />
</InputGroupButton>
</PopoverTrigger>
<PopoverContent className="pt-3">
<div className="grid gap-2" onClick={(e) => e.stopPropagation()}>
<Label htmlFor="url-label">
<Trans>Label</Trans>
</Label>
<Input id="url-label" name="url-label" value={value.label} onChange={handleLabelChange} />
</div>
</PopoverContent>
</Popover>
</InputGroupAddon>
<PopoverContent className="pt-3">
<div className="grid gap-2" onClick={(e) => e.stopPropagation()}>
<Label htmlFor="url-label">
<Trans>Label</Trans>
</Label>
<Input id="url-label" name="url-label" value={value.label} onChange={handleLabelChange} />
</div>
</PopoverContent>
</Popover>
</InputGroupAddon>
)}
</InputGroup>
);
}
+2
View File
@@ -29,6 +29,7 @@ export function LevelDisplay({ icon, type, level, className, ...props }: Props)
return (
<div
key={index}
data-active={isActive}
className={cn(
"h-2.5 flex-1 border border-(--page-primary-color) border-x-0 first:border-l last:border-r",
isActive && "bg-(--page-primary-color)",
@@ -50,6 +51,7 @@ export function LevelDisplay({ icon, type, level, className, ...props }: Props)
return (
<div
key={index}
data-active={isActive}
className={cn(
"size-2.5 border border-(--page-primary-color)",
isActive && "bg-(--page-primary-color)",
+3 -4
View File
@@ -53,10 +53,9 @@
text-underline-offset: 0.15rem;
}
@media print {
a {
text-decoration: none;
}
hr {
margin: 1rem 0;
border-color: var(--page-text-color);
}
strong {
@@ -2,6 +2,7 @@ import { TiptapContent } from "@/components/input/rich-input";
import type { SectionItem } from "@/schema/resume/data";
import { stripHtml } from "@/utils/string";
import { cn } from "@/utils/style";
import { LinkedTitle } from "../linked-title";
import { PageLink } from "../page-link";
type AwardsItemProps = SectionItem<"awards"> & {
@@ -15,7 +16,12 @@ export function AwardsItem({ className, ...item }: AwardsItemProps) {
<div className="section-item-header awards-item-header">
{/* Row 1 */}
<div className="flex items-start justify-between gap-x-2">
<strong className="section-item-title awards-item-title">{item.title}</strong>
<LinkedTitle
title={item.title}
website={item.website}
showLinkInTitle={item.options?.showLinkInTitle}
className="section-item-title awards-item-title"
/>
<span className="section-item-metadata awards-item-date shrink-0 text-end">{item.date}</span>
</div>
@@ -31,9 +37,11 @@ export function AwardsItem({ className, ...item }: AwardsItemProps) {
</div>
{/* Website */}
<div className="section-item-website awards-item-website">
<PageLink {...item.website} label={item.website.label} />
</div>
{!item.options?.showLinkInTitle && (
<div className="section-item-website awards-item-website">
<PageLink {...item.website} label={item.website.label} />
</div>
)}
</div>
);
}
@@ -2,6 +2,7 @@ import { TiptapContent } from "@/components/input/rich-input";
import type { SectionItem } from "@/schema/resume/data";
import { stripHtml } from "@/utils/string";
import { cn } from "@/utils/style";
import { LinkedTitle } from "../linked-title";
import { PageLink } from "../page-link";
type CertificationsItemProps = SectionItem<"certifications"> & {
@@ -15,7 +16,12 @@ export function CertificationsItem({ className, ...item }: CertificationsItemPro
<div className="section-item-header certifications-item-header">
{/* Row 1 */}
<div className="flex items-start justify-between gap-x-2">
<strong className="section-item-title certifications-item-title">{item.title}</strong>
<LinkedTitle
title={item.title}
website={item.website}
showLinkInTitle={item.options?.showLinkInTitle}
className="section-item-title certifications-item-title"
/>
<span className="section-item-metadata certifications-item-date shrink-0 text-end">{item.date}</span>
</div>
@@ -36,9 +42,11 @@ export function CertificationsItem({ className, ...item }: CertificationsItemPro
</div>
{/* Website */}
<div className="section-item-website certifications-item-website">
<PageLink {...item.website} label={item.website.label} />
</div>
{!item.options?.showLinkInTitle && (
<div className="section-item-website certifications-item-website">
<PageLink {...item.website} label={item.website.label} />
</div>
)}
</div>
);
}
@@ -12,17 +12,13 @@ export function CoverLetterItem({ className, ...item }: CoverLetterItemProps) {
return (
<div className={cn("cover-letter-item", className)}>
{stripHtml(item.recipient) && (
<div className="cover-letter-item-recipient mb-4">
<TiptapContent content={item.recipient} />
</div>
)}
<div className={cn("cover-letter-item-recipient mb-4", !stripHtml(item.recipient) && "hidden")}>
<TiptapContent content={item.recipient} />
</div>
{stripHtml(item.content) && (
<div className="cover-letter-item-content">
<TiptapContent content={item.content} />
</div>
)}
<div className={cn("cover-letter-item-content", !stripHtml(item.content) && "hidden")}>
<TiptapContent content={item.content} />
</div>
</div>
);
}
@@ -2,6 +2,7 @@ import { TiptapContent } from "@/components/input/rich-input";
import type { SectionItem } from "@/schema/resume/data";
import { stripHtml } from "@/utils/string";
import { cn } from "@/utils/style";
import { LinkedTitle } from "../linked-title";
import { PageLink } from "../page-link";
type EducationItemProps = SectionItem<"education"> & {
@@ -15,7 +16,12 @@ export function EducationItem({ className, ...item }: EducationItemProps) {
<div className="section-item-header education-item-header mb-2">
{/* Row 1 */}
<div className="flex items-start justify-between gap-x-2">
<strong className="section-item-title education-item-title">{item.school}</strong>
<LinkedTitle
title={item.school}
website={item.website}
showLinkInTitle={item.options?.showLinkInTitle}
className="section-item-title education-item-title"
/>
<span className="section-item-metadata education-item-degree-grade shrink-0 text-end">
{[item.degree, item.grade].filter(Boolean).join(" • ")}
</span>
@@ -38,9 +44,11 @@ export function EducationItem({ className, ...item }: EducationItemProps) {
</div>
{/* Website */}
<div className="section-item-website education-item-website">
<PageLink {...item.website} label={item.website.label} />
</div>
{!item.options?.showLinkInTitle && (
<div className="section-item-website education-item-website">
<PageLink {...item.website} label={item.website.label} />
</div>
)}
</div>
);
}
@@ -2,6 +2,7 @@ import { TiptapContent } from "@/components/input/rich-input";
import type { SectionItem } from "@/schema/resume/data";
import { stripHtml } from "@/utils/string";
import { cn } from "@/utils/style";
import { LinkedTitle } from "../linked-title";
import { PageLink } from "../page-link";
type ExperienceItemProps = SectionItem<"experience"> & {
@@ -15,7 +16,12 @@ export function ExperienceItem({ className, ...item }: ExperienceItemProps) {
<div className="section-item-header experience-item-header">
{/* Row 1 */}
<div className="flex items-start justify-between gap-x-2">
<strong className="section-item-title experience-item-title">{item.company}</strong>
<LinkedTitle
title={item.company}
website={item.website}
showLinkInTitle={item.options?.showLinkInTitle}
className="section-item-title experience-item-title"
/>
<span className="section-item-metadata experience-item-location shrink-0 text-end">{item.location}</span>
</div>
@@ -34,9 +40,11 @@ export function ExperienceItem({ className, ...item }: ExperienceItemProps) {
</div>
{/* Website */}
<div className="section-item-website experience-item-website">
<PageLink {...item.website} label={item.website.label} />
</div>
{!item.options?.showLinkInTitle && (
<div className="section-item-website experience-item-website">
<PageLink {...item.website} label={item.website.label} />
</div>
)}
</div>
);
}
@@ -1,5 +1,6 @@
import type { SectionItem } from "@/schema/resume/data";
import { cn } from "@/utils/style";
import { LinkedTitle } from "../linked-title";
import { PageIcon } from "../page-icon";
import { PageLink } from "../page-link";
@@ -13,15 +14,22 @@ export function ProfilesItem({ className, ...item }: ProfilesItemProps) {
{/* Header */}
<div className="section-item-header profiles-item-header flex items-center gap-x-1.5">
<PageIcon icon={item.icon} className="section-item-icon profiles-item-icon" />
<strong className="section-item-title profiles-item-network">{item.network}</strong>
<LinkedTitle
title={item.network}
website={item.website}
showLinkInTitle={item.options?.showLinkInTitle}
className="section-item-title profiles-item-network"
/>
</div>
{/* Website */}
<PageLink
{...item.website}
label={item.website.label || item.username}
className="section-item-website profiles-item-website"
/>
{!item.options?.showLinkInTitle && (
<PageLink
{...item.website}
label={item.website.label || item.username}
className="section-item-website profiles-item-website"
/>
)}
</div>
);
}
@@ -2,6 +2,7 @@ import { TiptapContent } from "@/components/input/rich-input";
import type { SectionItem } from "@/schema/resume/data";
import { stripHtml } from "@/utils/string";
import { cn } from "@/utils/style";
import { LinkedTitle } from "../linked-title";
import { PageLink } from "../page-link";
type ProjectsItemProps = SectionItem<"projects"> & {
@@ -15,7 +16,12 @@ export function ProjectsItem({ className, ...item }: ProjectsItemProps) {
<div className="section-item-header projects-item-header">
{/* Row 1 */}
<div className="flex items-start justify-between gap-x-2">
<strong className="section-item-title projects-item-title">{item.name}</strong>
<LinkedTitle
title={item.name}
website={item.website}
showLinkInTitle={item.options?.showLinkInTitle}
className="section-item-title projects-item-title"
/>
<span className="section-item-metadata projects-item-period shrink-0 text-end">{item.period}</span>
</div>
</div>
@@ -28,9 +34,11 @@ export function ProjectsItem({ className, ...item }: ProjectsItemProps) {
</div>
{/* Website */}
<div className="section-item-website projects-item-website">
<PageLink {...item.website} label={item.website.label} />
</div>
{!item.options?.showLinkInTitle && (
<div className="section-item-website projects-item-website">
<PageLink {...item.website} label={item.website.label} />
</div>
)}
</div>
);
}
@@ -2,6 +2,7 @@ import { TiptapContent } from "@/components/input/rich-input";
import type { SectionItem } from "@/schema/resume/data";
import { stripHtml } from "@/utils/string";
import { cn } from "@/utils/style";
import { LinkedTitle } from "../linked-title";
import { PageLink } from "../page-link";
type PublicationsItemProps = SectionItem<"publications"> & {
@@ -15,7 +16,12 @@ export function PublicationsItem({ className, ...item }: PublicationsItemProps)
<div className="section-item-header publications-item-header">
{/* Row 1 */}
<div className="flex items-start justify-between gap-x-2">
<strong className="section-item-title publications-item-title">{item.title}</strong>
<LinkedTitle
title={item.title}
website={item.website}
showLinkInTitle={item.options?.showLinkInTitle}
className="section-item-title publications-item-title"
/>
<span className="section-item-metadata publications-item-date shrink-0 text-end">{item.date}</span>
</div>
@@ -36,9 +42,11 @@ export function PublicationsItem({ className, ...item }: PublicationsItemProps)
</div>
{/* Website */}
<div className="section-item-website publications-item-website">
<PageLink {...item.website} label={item.website.label} />
</div>
{!item.options?.showLinkInTitle && (
<div className="section-item-website publications-item-website">
<PageLink {...item.website} label={item.website.label} />
</div>
)}
</div>
);
}
@@ -2,6 +2,7 @@ import { TiptapContent } from "@/components/input/rich-input";
import type { SectionItem } from "@/schema/resume/data";
import { stripHtml } from "@/utils/string";
import { cn } from "@/utils/style";
import { LinkedTitle } from "../linked-title";
import { PageLink } from "../page-link";
type ReferencesItemProps = SectionItem<"references"> & {
@@ -15,7 +16,12 @@ export function ReferencesItem({ className, ...item }: ReferencesItemProps) {
<div className="section-item-header references-item-header">
{/* Row 1 */}
<div className="flex items-start justify-between gap-x-2">
<strong className="section-item-title references-item-name">{item.name}</strong>
<LinkedTitle
title={item.name}
website={item.website}
showLinkInTitle={item.options?.showLinkInTitle}
className="section-item-title references-item-name"
/>
</div>
{/* Row 2 */}
@@ -37,11 +43,13 @@ export function ReferencesItem({ className, ...item }: ReferencesItemProps) {
<span className="section-item-metadata references-item-phone inline-block">{item.phone}</span>
{/* Row 2 */}
<PageLink
{...item.website}
label={item.website.label}
className="section-item-website references-item-website"
/>
{!item.options?.showLinkInTitle && (
<PageLink
{...item.website}
label={item.website.label}
className="section-item-website references-item-website"
/>
)}
</div>
</div>
);
@@ -17,15 +17,11 @@ export function SkillsItem({ className, ...item }: SkillsItemProps) {
</div>
{/* Proficiency */}
{item.proficiency && (
<span className="section-item-metadata skills-item-proficiency inline-block">{item.proficiency}</span>
)}
{item.proficiency && <div className="section-item-metadata skills-item-proficiency">{item.proficiency}</div>}
{/* Keywords */}
{item.keywords.length > 0 && (
<span className="section-item-keywords skills-item-keywords inline-block opacity-80">
{item.keywords.join(", ")}
</span>
<div className="section-item-keywords skills-item-keywords opacity-80">{item.keywords.join(", ")}</div>
)}
{/* Level */}
@@ -2,6 +2,7 @@ import { TiptapContent } from "@/components/input/rich-input";
import type { SectionItem } from "@/schema/resume/data";
import { stripHtml } from "@/utils/string";
import { cn } from "@/utils/style";
import { LinkedTitle } from "../linked-title";
import { PageLink } from "../page-link";
type VolunteerItemProps = SectionItem<"volunteer"> & {
@@ -15,7 +16,12 @@ export function VolunteerItem({ className, ...item }: VolunteerItemProps) {
<div className="section-item-header volunteer-item-header">
{/* Row 1 */}
<div className="flex items-start justify-between gap-x-2">
<strong className="section-item-title volunteer-item-title">{item.organization}</strong>
<LinkedTitle
title={item.organization}
website={item.website}
showLinkInTitle={item.options?.showLinkInTitle}
className="section-item-title volunteer-item-title"
/>
<span className="section-item-metadata volunteer-item-period shrink-0 text-end">{item.period}</span>
</div>
@@ -33,9 +39,11 @@ export function VolunteerItem({ className, ...item }: VolunteerItemProps) {
</div>
{/* Website */}
<div className="section-item-website volunteer-item-website">
<PageLink {...item.website} label={item.website.label} />
</div>
{!item.options?.showLinkInTitle && (
<div className="section-item-website volunteer-item-website">
<PageLink {...item.website} label={item.website.label} />
</div>
)}
</div>
);
}
@@ -0,0 +1,20 @@
import { cn } from "@/utils/style";
type LinkedTitleProps = {
title: string;
website?: { url: string; label: string };
showLinkInTitle?: boolean;
className?: string;
};
export function LinkedTitle({ title, website, showLinkInTitle, className }: LinkedTitleProps) {
if (showLinkInTitle && website?.url) {
return (
<a href={website.url} target="_blank" rel="noopener" className={cn("inline-block", className)}>
<strong>{title}</strong>
</a>
);
}
return <strong className={className}>{title}</strong>;
}
@@ -19,8 +19,8 @@ const sectionClassName = cn(
"group-data-[layout=sidebar]:[&_.section-item_i]:text-(--page-background-color)!",
// Level Display in Sidebar Layout
"group-data-[layout=sidebar]:[&_.section-item-level>div]:bg-(--page-background-color)",
"group-data-[layout=sidebar]:[&_.section-item-level>div]:text-(--page-background-color)",
"group-data-[layout=sidebar]:[&_.section-item-level>div]:border-(--page-background-color)",
"group-data-[layout=sidebar]:[&_.section-item-level>div]:data-[active=true]:bg-(--page-background-color)",
// Section Item Header in Sidebar Layout
"group-data-[layout=sidebar]:[&_.section-item-header>div]:flex-col",
@@ -38,16 +38,16 @@ export function ChikoritaTemplate({ pageIndex, pageLayout }: TemplateProps) {
<div className="template-chikorita page-content">
{/* Sidebar Background */}
{!fullWidth && (
<div className="page-sidebar-background absolute inset-y-0 z-0 w-(--page-sidebar-width) shrink-0 bg-(--page-primary-color) ltr:end-0 rtl:start-0" />
<div className="page-sidebar-background pointer-events-none absolute inset-y-0 z-0 w-(--page-sidebar-width) shrink-0 bg-(--page-primary-color) ltr:end-0 rtl:start-0" />
)}
{isFirstPage && <Header />}
<div className="flex">
<main
data-layout="main"
className="group page-main z-10 flex-1 space-y-4 px-(--page-margin-x) pt-(--page-margin-y)"
>
{isFirstPage && <Header />}
{main.map((section) => {
const Component = getSectionComponent(section, { sectionClassName });
return <Component key={section} id={section} />;
@@ -75,10 +75,10 @@ function Header() {
return (
<div className="page-header relative flex">
<div className="flex flex-1 items-center ps-(--page-margin-x) pt-(--page-margin-y)">
<div className="flex flex-1 items-center gap-x-(--page-margin-x)">
<PagePicture />
<div className="page-basics space-y-2 px-(--page-margin-x)">
<div className="page-basics space-y-2">
<div>
<h2 className="basics-name">{basics.name}</h2>
<p className="basics-headline">{basics.headline}</p>
@@ -122,8 +122,6 @@ function Header() {
</div>
</div>
</div>
<div className="w-(--page-sidebar-width) shrink-0" />
</div>
);
}
+1 -1
View File
@@ -37,7 +37,7 @@ export function DitgarTemplate({ pageIndex, pageLayout }: TemplateProps) {
<div className="template-ditgar page-content">
{/* Sidebar Background */}
{(!fullWidth || isFirstPage) && (
<div className="page-sidebar-background absolute inset-y-0 z-0 w-(--page-sidebar-width) shrink-0 bg-(--page-primary-color)/20 ltr:start-0 rtl:end-0" />
<div className="page-sidebar-background pointer-events-none absolute inset-y-0 z-0 w-(--page-sidebar-width) shrink-0 bg-(--page-primary-color)/20 ltr:start-0 rtl:end-0" />
)}
<div className="flex">
+1 -1
View File
@@ -27,7 +27,7 @@ export function GengarTemplate({ pageIndex, pageLayout }: TemplateProps) {
<div className="template-gengar page-content">
{/* Sidebar Background */}
{(!fullWidth || isFirstPage) && (
<div className="page-sidebar-background absolute inset-y-0 z-0 w-(--page-sidebar-width) shrink-0 bg-(--page-primary-color)/20 ltr:start-0 rtl:end-0" />
<div className="page-sidebar-background pointer-events-none absolute inset-y-0 z-0 w-(--page-sidebar-width) shrink-0 bg-(--page-primary-color)/20 ltr:start-0 rtl:end-0" />
)}
<div className="flex">
+3 -3
View File
@@ -27,14 +27,14 @@ export function GlalieTemplate({ pageIndex, pageLayout }: TemplateProps) {
<div className="template-glalie page-content">
{/* Sidebar Background */}
{(!fullWidth || isFirstPage) && (
<div className="page-sidebar-background absolute inset-y-0 z-0 w-(--page-sidebar-width) shrink-0 bg-(--page-primary-color)/20 ltr:start-0 rtl:end-0" />
<div className="page-sidebar-background pointer-events-none absolute inset-y-0 z-0 w-(--page-sidebar-width) shrink-0 bg-(--page-primary-color)/20 ltr:start-0 rtl:end-0" />
)}
<div className="flex">
{(!fullWidth || isFirstPage) && (
<aside
data-layout="sidebar"
className="group page-sidebar flex w-(--page-sidebar-width) shrink-0 flex-col space-y-4 px-(--page-margin-x) pt-(--page-margin-y)"
className="group page-sidebar z-10 flex w-(--page-sidebar-width) shrink-0 flex-col space-y-4 px-(--page-margin-x) pt-(--page-margin-y)"
>
{isFirstPage && <Header />}
@@ -49,7 +49,7 @@ export function GlalieTemplate({ pageIndex, pageLayout }: TemplateProps) {
</aside>
)}
<main data-layout="main" className="group page-main">
<main data-layout="main" className="group page-main z-10">
<div className="space-y-4 px-(--page-margin-x) pt-(--page-margin-y)">
{main.map((section) => {
const Component = getSectionComponent(section, { sectionClassName });
+1 -1
View File
@@ -65,7 +65,7 @@ function Header() {
return (
<div
className={cn(
"page-header flex items-center gap-x-(--page-gap-x)",
"page-header flex items-center gap-x-(--page-margin-x)",
"rounded-(--picture-border-radius) border border-(--page-text-color)/10 bg-(--page-background-color) p-4",
)}
>
+1 -1
View File
@@ -43,7 +43,7 @@ function Header() {
const basics = useResumeStore((state) => state.resume.data.basics);
return (
<div className="page-header flex items-center gap-x-(--page-gap-x) border-(--page-primary-color) border-b pb-(--page-margin-y)">
<div className="page-header flex items-center gap-x-(--page-margin-x) border-(--page-primary-color) border-b pb-(--page-margin-y)">
<PagePicture />
<div className="page-basics space-y-(--page-gap-y)">
+20 -3
View File
@@ -37,11 +37,28 @@ function buildWebFontMap() {
const webFontMap: Map<string, WebFont> = buildWebFontMap();
export function getNextWeight(fontFamily: string): Weight | null {
export function getNextWeights(fontFamily: string): Weight[] | null {
const fontData = webFontMap.get(fontFamily);
if (!fontData || !Array.isArray(fontData.weights) || fontData.weights.length === 0) return null;
if (fontData.weights.includes("400")) return "400";
return fontData.weights[0] as Weight;
const uniqueWeights = Array.from(new Set(fontData.weights)) as Weight[];
// Try to pick 400 and 600 if available
const weights: Weight[] = [];
if (uniqueWeights.includes("400")) weights.push("400");
if (uniqueWeights.includes("600")) weights.push("600");
// If we didn't find both, fill in with first/last, ensuring uniqueness
while (weights.length < 2 && uniqueWeights.length > 0) {
// candidateIndex: 0 (first), 1 (last)
const lastIndex = uniqueWeights.length - 1;
const candidate = weights.length === 0 ? uniqueWeights[0] : uniqueWeights[lastIndex];
if (!weights.includes(candidate)) weights.push(candidate);
else break;
}
return weights.length > 0 ? weights : null;
}
type FontFamilyComboboxProps = Omit<ComboboxProps, "options">;
+1 -1
View File
@@ -129,7 +129,7 @@ function Combobox<TValue extends string | number = string>({
<CommandGroup>
{options.map((option) => {
const isSelected = selectedValue === option.value;
const isDisabled = option.disabled ?? (false || disabled);
const isDisabled = option.disabled ?? disabled;
return (
<CommandItem

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