@primestyleai/tryon 5.10.124 → 5.10.126

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-8CWoLxU3.js","sources":["../src/session.ts","../src/api-client.ts","../src/sse-client.ts","../src/image-utils.ts","../src/i18n.ts","../src/locales/ja.ts","../src/locales/ko.ts","../src/locales/zh.ts","../src/locales/es.ts","../src/locales/fr.ts","../src/locales/de.ts","../src/locales/it.ts","../src/locales/pt.ts","../src/locales/nl.ts","../src/locales/ru.ts","../src/locales/ar.ts","../src/locales/tr.ts","../src/locales/pl.ts","../src/locales/sv.ts","../src/locales/da.ts","../src/locales/nb.ts","../src/locales/fi.ts","../src/locales/th.ts","../src/locales/vi.ts","../src/locales/index.ts"],"sourcesContent":["/**\n * Anonymous storefront session tracking.\n *\n * A single UUID per browser, persisted in localStorage with a sliding 30-day\n * expiry. Attached to every try-on / sizing / event call the SDK makes so the\n * backend can stitch a customer's actions together without ever knowing their\n * identity.\n */\n\nconst STORAGE_KEY = \"ps_session\";\nconst MAX_AGE_MS = 30 * 24 * 60 * 60 * 1000; // 30 days\nconst FALLBACK_PREFIX = \"ps_mem_\";\n\nlet memoryFallback: SessionRecord | null = null;\n\ninterface SessionRecord {\n\tid: string;\n\tissuedAt: number;\n\tlastSeenAt: number;\n}\n\nfunction hasLocalStorage(): boolean {\n\ttry {\n\t\treturn typeof window !== \"undefined\" && typeof window.localStorage !== \"undefined\";\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nfunction uuid(): string {\n\t// Prefer crypto.randomUUID when available. Fall back to a good-enough v4\n\t// based on Math.random — this is an opaque anonymous id, not a security token.\n\tif (typeof crypto !== \"undefined\" && typeof crypto.randomUUID === \"function\") {\n\t\treturn crypto.randomUUID();\n\t}\n\tconst chars = \"0123456789abcdef\";\n\tlet out = FALLBACK_PREFIX;\n\tfor (let i = 0; i < 32; i++) out += chars[Math.floor(Math.random() * 16)];\n\treturn out;\n}\n\nfunction readRecord(): SessionRecord | null {\n\tif (!hasLocalStorage()) return memoryFallback;\n\ttry {\n\t\tconst raw = window.localStorage.getItem(STORAGE_KEY);\n\t\tif (!raw) return null;\n\t\tconst parsed = JSON.parse(raw) as Partial<SessionRecord>;\n\t\tif (typeof parsed.id !== \"string\" || typeof parsed.issuedAt !== \"number\") return null;\n\t\treturn {\n\t\t\tid: parsed.id,\n\t\t\tissuedAt: parsed.issuedAt,\n\t\t\tlastSeenAt: typeof parsed.lastSeenAt === \"number\" ? parsed.lastSeenAt : parsed.issuedAt,\n\t\t};\n\t} catch {\n\t\treturn null;\n\t}\n}\n\nfunction writeRecord(record: SessionRecord): void {\n\tmemoryFallback = record;\n\tif (!hasLocalStorage()) return;\n\ttry {\n\t\twindow.localStorage.setItem(STORAGE_KEY, JSON.stringify(record));\n\t} catch {\n\t\t// Quota full / disabled — keep memory fallback.\n\t}\n}\n\n/**\n * Return the current session id, creating one if absent or expired.\n * Safe to call repeatedly — cheap local-storage read + occasional write.\n */\nexport function getOrCreateSessionId(): string {\n\tconst now = Date.now();\n\tconst existing = readRecord();\n\tif (existing && now - existing.lastSeenAt < MAX_AGE_MS) {\n\t\t// Slide the expiry forward, but don't write more than once per 5 minutes.\n\t\tif (now - existing.lastSeenAt > 5 * 60 * 1000) {\n\t\t\twriteRecord({ ...existing, lastSeenAt: now });\n\t\t}\n\t\treturn existing.id;\n\t}\n\tconst fresh: SessionRecord = { id: uuid(), issuedAt: now, lastSeenAt: now };\n\twriteRecord(fresh);\n\treturn fresh.id;\n}\n\n/**\n * Best-effort device hint derived from userAgent. The backend has a full\n * UA parser; this is purely for servers that fall back to client-reported\n * hints (e.g. rate-limited environments with no UA header).\n */\nexport function getDeviceHint(): \"mobile\" | \"tablet\" | \"desktop\" | null {\n\tif (typeof navigator === \"undefined\") return null;\n\tconst ua = (navigator.userAgent || \"\").toLowerCase();\n\tif (/ipad|tablet|(android(?!.*mobile))/.test(ua)) return \"tablet\";\n\tif (/mobile|android|iphone|ipod|blackberry|iemobile|opera mini/.test(ua)) return \"mobile\";\n\treturn \"desktop\";\n}\n","import type { TryOnResponse, TryOnStatus, FitAreaInfo } from \"./types\";\nimport { getOrCreateSessionId, getDeviceHint } from \"./session\";\n\nconst DEFAULT_API_URL = \"http://localhost:4000\";\n\nexport interface TryOnContext {\n /** Storefront product the customer is currently viewing — shown in analytics. */\n productId?: string;\n productTitle?: string;\n /** Free-text product description forwarded to the try-on prompt so Gemini\n * knows the garment context (e.g. \"Brown slip maxi dress, spaghetti straps\"). */\n productDescription?: string;\n /** Material / fabric composition (e.g. \"100% Cotton\", \"60% Polyester / 40% Polyester\")\n * — forwarded to the prompt so Gemini drapes the fabric correctly without\n * having to guess from the image alone. */\n productMaterial?: string;\n /** Optional silhouette-prompt context forwarded to the backend Gemini try-on\n * call. Enables doc-example-grade fit reasoning (\"X tension at button\n * because waist 54.4 exceeds size 50 drop\"). All fields optional. */\n silhouetteContext?: {\n recommendedSize?: string;\n sizeChartSummary?: string;\n userMeasurementsText?: string;\n };\n /** True when `modelImage` is a previous try-on result rather than the\n * user's raw photo. Switches the backend to an edit-mode prompt that\n * preserves accessories (socks, ties, pocket squares, cufflinks, shoes)\n * the prior call already painted, instead of re-deriving them. */\n editFromPrevious?: boolean;\n /** Backend-cached photo id from a previous /tryon response. When provided\n * the SDK may pass an empty `modelImage` (or omit it) and the backend\n * will use the cached photo. Saves uploading 700–900 KB on every regen\n * AND guarantees byte-identical photo across regens (no JPEG-recompression\n * drift). On cache miss the SDK should fall back to sending the full image. */\n modelImageId?: string;\n}\n\nexport class ApiClient {\n private apiKey: string;\n private baseUrl: string;\n\n constructor(apiKey: string, apiUrl?: string) {\n this.apiKey = apiKey;\n this.baseUrl = (apiUrl || DEFAULT_API_URL).replace(/\\/+$/, \"\");\n }\n\n private get headers(): Record<string, string> {\n return {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${this.apiKey}`,\n };\n }\n\n async submitTryOn(\n modelImage: string,\n garmentImage: string,\n fitInfo?: FitAreaInfo[],\n category?: \"apparel\" | \"hat\" | \"sunglasses\",\n context?: TryOnContext\n ): Promise<TryOnResponse> {\n const body: Record<string, unknown> = {\n garmentImage,\n // Attribution fields — backend logs these into the TryOnEvent collection\n // so non-technical operators can answer \"which products are being tried on\n // and by how many customers\". Safe fallbacks when absent.\n sessionId: getOrCreateSessionId(),\n deviceHint: getDeviceHint(),\n };\n // When we already have a backend-cached photo id, send only that — the\n // backend will reuse the same canonical bytes for every regen. modelImage\n // is still sent if present so the backend can fall back gracefully on a\n // cache miss (e.g. across PM2 worker boundaries or after the 1h TTL).\n if (context?.modelImageId) body.modelImageId = context.modelImageId;\n if (modelImage) body.modelImage = modelImage;\n if (fitInfo && fitInfo.length > 0) body.fitInfo = fitInfo;\n if (category && category !== \"apparel\") body.category = category;\n if (context?.productId) body.productId = context.productId;\n if (context?.productTitle) body.productTitle = context.productTitle;\n if (context?.productDescription) body.productDescription = context.productDescription;\n if (context?.productMaterial) body.productMaterial = context.productMaterial;\n if (context?.silhouetteContext) body.silhouetteContext = context.silhouetteContext;\n if (context?.editFromPrevious) body.editFromPrevious = true;\n console.log(\"[ps-sdk:api] POST /api/v1/tryon payload\", {\n modelImageBytes: modelImage.length,\n garmentImageBytes: garmentImage.length,\n category: category || \"apparel\",\n fitInfo: fitInfo?.map(f => ({\n area: f.area,\n fit: f.fit,\n userValue: f.userValue,\n garmentRange: f.garmentRange,\n })) || null,\n silhouetteContext: context?.silhouetteContext || null,\n });\n // Single-glance table of what Gemini will see per body area. Makes it\n // trivial to eyeball \"my inseam pick is 30, my body is 32.5 — is that\n // what actually left the browser?\" without parsing the JSON above.\n if (fitInfo && fitInfo.length > 0) {\n console.log(\"[ps-sdk:api] Body vs Garment (what Gemini will see):\");\n for (const f of fitInfo) {\n const parts = (f.garmentRange || \"\").replace(/[^\\d.\\-–]/g, \" \").trim().split(/[\\s\\-–]+/).filter(Boolean).map(Number).filter(n => !isNaN(n));\n let gap = \"\";\n if (parts.length && f.userValue != null) {\n const mid = (Math.min(...parts) + Math.max(...parts)) / 2;\n const diff = Math.round((f.userValue - mid) * 10) / 10;\n gap = diff > 0 ? `garment ${diff} smaller` : diff < 0 ? `garment ${Math.abs(diff)} larger` : \"matched\";\n }\n console.log(`[ps-sdk:api] ${f.area.padEnd(10)} body=${f.userValue ?? \"?\"} garment=${f.garmentRange ?? \"?\"} → ${gap}`);\n }\n }\n const res = await fetch(`${this.baseUrl}/api/v1/tryon`, {\n method: \"POST\",\n headers: this.headers,\n body: JSON.stringify(body),\n });\n\n if (!res.ok) {\n const data = await res.json().catch(() => ({}));\n if (res.status === 402) {\n throw new PrimeStyleError(\n data.message || \"Insufficient try-ons\",\n \"INSUFFICIENT_BALANCE\"\n );\n }\n throw new PrimeStyleError(\n data.message || \"Failed to submit try-on\",\n \"API_ERROR\"\n );\n }\n\n return res.json();\n }\n\n async getStatus(jobId: string): Promise<TryOnStatus> {\n const res = await fetch(`${this.baseUrl}/api/v1/tryon/status/${jobId}`, {\n headers: this.headers,\n });\n\n if (!res.ok) {\n const data = await res.json().catch(() => ({}));\n throw new PrimeStyleError(\n data.message || \"Failed to get status\",\n \"API_ERROR\"\n );\n }\n\n return res.json();\n }\n\n getStreamUrl(): string {\n return `${this.baseUrl}/api/v1/tryon/stream?key=${encodeURIComponent(this.apiKey)}`;\n }\n}\n\nexport class PrimeStyleError extends Error {\n code: string;\n constructor(message: string, code: string) {\n super(message);\n this.name = \"PrimeStyleError\";\n this.code = code;\n }\n}\n","import type { VtoUpdate } from \"./types\";\n\ntype VtoUpdateCallback = (update: VtoUpdate) => void;\n\nexport class SseClient {\n private eventSource: EventSource | null = null;\n private streamUrl: string;\n private listeners: Map<string, Set<VtoUpdateCallback>> = new Map();\n private reconnectTimer: ReturnType<typeof setTimeout> | null = null;\n private reconnectAttempts = 0;\n private maxReconnectAttempts = 5;\n\n constructor(streamUrl: string) {\n this.streamUrl = streamUrl;\n }\n\n connect(): void {\n if (this.eventSource) return;\n\n this.eventSource = new EventSource(this.streamUrl);\n\n this.eventSource.addEventListener(\"vto-update\", (event) => {\n try {\n const data: VtoUpdate = JSON.parse(event.data);\n this.emit(data.galleryId, data);\n } catch {\n // ignore malformed events\n }\n });\n\n this.eventSource.onopen = () => {\n this.reconnectAttempts = 0;\n };\n\n this.eventSource.onerror = () => {\n this.eventSource?.close();\n this.eventSource = null;\n this.scheduleReconnect();\n };\n }\n\n private scheduleReconnect(): void {\n if (this.reconnectAttempts >= this.maxReconnectAttempts) return;\n if (this.listeners.size === 0) return;\n\n const delay = Math.min(1000 * 2 ** this.reconnectAttempts, 30000);\n this.reconnectAttempts++;\n\n this.reconnectTimer = setTimeout(() => {\n this.connect();\n }, delay);\n }\n\n onJob(jobId: string, callback: VtoUpdateCallback): () => void {\n if (!this.listeners.has(jobId)) {\n this.listeners.set(jobId, new Set());\n }\n this.listeners.get(jobId)!.add(callback);\n\n // Auto-connect if not already connected\n if (!this.eventSource) {\n this.connect();\n }\n\n // Return unsubscribe function\n return () => {\n const jobListeners = this.listeners.get(jobId);\n if (jobListeners) {\n jobListeners.delete(callback);\n if (jobListeners.size === 0) {\n this.listeners.delete(jobId);\n }\n }\n // Auto-disconnect if no more listeners\n if (this.listeners.size === 0) {\n this.disconnect();\n }\n };\n }\n\n private emit(jobId: string, update: VtoUpdate): void {\n const callbacks = this.listeners.get(jobId);\n if (callbacks) {\n callbacks.forEach((cb) => cb(update));\n }\n }\n\n disconnect(): void {\n if (this.reconnectTimer) {\n clearTimeout(this.reconnectTimer);\n this.reconnectTimer = null;\n }\n if (this.eventSource) {\n this.eventSource.close();\n this.eventSource = null;\n }\n this.listeners.clear();\n this.reconnectAttempts = 0;\n }\n}\n","const DEFAULT_MAX_DIMENSION = 512;\nconst DEFAULT_JPEG_QUALITY = 0.65;\n\nexport interface CompressOptions {\n /** Longest side, in pixels. Default 512. Raise for close-up photos\n * (face / head) where the product's detail IS on the face — 1536 gives\n * the try-on model enough pixels to render sharp frame edges. */\n maxDimension?: number;\n /** JPEG quality, 0–1. Default 0.65. Raise to 0.85+ for close-ups so the\n * face region isn't macroblocked before Gemini renders the frame. */\n quality?: number;\n}\n\n/** Compresses and resizes an image file, returns a base64 data URL. */\nexport function compressImage(file: File, opts: CompressOptions = {}): Promise<string> {\n const maxDim = opts.maxDimension ?? DEFAULT_MAX_DIMENSION;\n const quality = opts.quality ?? DEFAULT_JPEG_QUALITY;\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n const img = new Image();\n img.onload = () => {\n try {\n const canvas = document.createElement(\"canvas\");\n let { width, height } = img;\n\n if (width > maxDim || height > maxDim) {\n if (width > height) {\n height = Math.round((height * maxDim) / width);\n width = maxDim;\n } else {\n width = Math.round((width * maxDim) / height);\n height = maxDim;\n }\n }\n\n canvas.width = width;\n canvas.height = height;\n\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n reject(new Error(\"Canvas context not available\"));\n return;\n }\n\n ctx.drawImage(img, 0, 0, width, height);\n const dataUrl = canvas.toDataURL(\"image/jpeg\", quality);\n resolve(dataUrl);\n } catch (err) {\n reject(err);\n }\n };\n img.onerror = () => reject(new Error(\"Failed to load image\"));\n img.src = reader.result as string;\n };\n reader.onerror = () => reject(new Error(\"Failed to read file\"));\n reader.readAsDataURL(file);\n });\n}\n\n/** Validates that a file is an accepted image type. AVIF is accepted for\n * upload — Gemini's API doesn't support AVIF directly, but compressImage\n * re-encodes the canvas as JPEG before we ship it, so AVIF inputs land as\n * JPEG on the wire. */\nexport function isValidImageFile(file: File): boolean {\n const accepted = [\"image/jpeg\", \"image/png\", \"image/webp\", \"image/avif\"];\n return accepted.includes(file.type);\n}\n\n/**\n * Pre-upload age check. Sends the photo to the backend's\n * /api/v1/sizing/age-check endpoint. Backend uses Gemini Flash-Lite to\n * classify whether the subject is 18+. The bytes are NOT persisted by the\n * backend (no disk write, no logging of full base64).\n *\n * Accepts EITHER a File OR a base64 data URL. When a File is provided we\n * compress it to a tight 384px / 60% JPEG thumb on the way out — Gemini\n * Flash-Lite only needs facial maturity, not pixel detail, and a smaller\n * payload trims a noticeable chunk of network + decode latency end-to-end.\n *\n * Fail-open: if the network call errors or the backend is unreachable, we\n * return isAdult=true so a network hiccup doesn't block legitimate users.\n * The existing self-cert checkbox is the defense-in-depth fallback.\n */\nexport async function checkAgeBeforeUpload(\n imageOrBase64: string | File,\n apiUrl: string,\n apiKey: string,\n): Promise<{ isAdult: boolean; confidence: \"high\" | \"low\"; reasoning?: string }> {\n try {\n const base64 = typeof imageOrBase64 === \"string\"\n ? imageOrBase64\n : await compressImage(imageOrBase64, { maxDimension: 384, quality: 0.6 });\n const resp = await fetch(`${apiUrl}/api/v1/sizing/age-check`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${apiKey}`,\n },\n body: JSON.stringify({ bodyImage: base64 }),\n });\n if (!resp.ok) {\n console.warn(`[PS-SDK:AgeCheck] HTTP ${resp.status} — failing open`);\n return { isAdult: true, confidence: \"low\" };\n }\n const data = await resp.json();\n return {\n isAdult: data?.isAdult !== false, // anything other than explicit false → allow\n confidence: data?.confidence === \"high\" ? \"high\" : \"low\",\n reasoning: typeof data?.reasoning === \"string\" ? data.reasoning : undefined,\n };\n } catch (err) {\n console.warn(`[PS-SDK:AgeCheck] error — failing open:`, err);\n return { isAdult: true, confidence: \"low\" };\n }\n}\n","/**\n * i18n — lightweight pass-through translation module.\n *\n * English keys are used as-is (the key IS the English text).\n * Additional languages can be registered at runtime via `registerLocale()`.\n */\n\nexport type TranslateFn = (key: string) => string;\n\n// ── Locale registry ────────────────────────────────\nconst localeRegistry: Record<string, Record<string, string>> = {};\n\nexport function registerLocale(code: string, translations: Record<string, string>): void {\n localeRegistry[code] = { ...(localeRegistry[code] || {}), ...translations };\n}\n\n/**\n * Create a translate function for a given locale.\n * For \"en\" (or when no locale pack is registered), the key itself is the English text.\n */\nexport function createT(locale?: string): TranslateFn {\n const code = locale?.toLowerCase().split(\"-\")[0] || \"en\";\n return (key: string): string => {\n if (code === \"en\" || !localeRegistry[code]) return key;\n return localeRegistry[code][key] ?? key;\n };\n}\n\n/**\n * Detect the best locale from the browser environment.\n */\nexport function detectLanguage(): string {\n if (typeof navigator === \"undefined\") return \"en\";\n const lang = navigator.language || (navigator as any).userLanguage || \"en\";\n return lang.split(\"-\")[0].toLowerCase();\n}\n\n// ── Supported locales ──────────────────────────────\nexport const SUPPORTED_LOCALES: string[] = [\n \"en\", \"ja\", \"ko\", \"zh\", \"es\", \"fr\", \"de\", \"it\", \"pt\",\n \"nl\", \"ru\", \"ar\", \"tr\", \"pl\", \"sv\", \"da\", \"nb\", \"fi\", \"th\", \"vi\",\n];\n\nexport const LOCALE_LABELS: Record<string, string> = {\n en: \"English\",\n ja: \"日本語\",\n ko: \"한국어\",\n zh: \"中文\",\n es: \"Español\",\n fr: \"Français\",\n de: \"Deutsch\",\n it: \"Italiano\",\n pt: \"Português\",\n nl: \"Nederlands\",\n ru: \"Русский\",\n ar: \"العربية\",\n tr: \"Türkçe\",\n pl: \"Polski\",\n sv: \"Svenska\",\n da: \"Dansk\",\n nb: \"Norsk\",\n fi: \"Suomi\",\n th: \"ไทย\",\n vi: \"Tiếng Việt\",\n};\n\n// ── Translation keys ───────────────────────────────\n// All translatable UI strings used in the React component.\nexport const TRANSLATION_KEYS: string[] = [\n \"Virtual Try-On\",\n \"Find Your Size & See It On You\",\n \"Get the perfect fit, then try it on virtually\",\n \"Get Your Size\",\n \"Instant fit recommendation\",\n \"Try It On\",\n \"See how it looks on you\",\n \"Find My Size\",\n \"Takes less than a minute\",\n \"Upload a full body photo\",\n \"JPEG, PNG or WebP (max 10MB)\",\n \"Your photo\",\n \"Let's find your best fit\",\n \"Centimeters\",\n \"Inches\",\n \"Load saved profile...\",\n \"HEIGHT\",\n \"WEIGHT\",\n \"feet\",\n \"inches\",\n \"cm\",\n \"kg\",\n \"How to measure\",\n \"Hide guide\",\n \"I know my measurements\",\n \"Not sure? Use height & weight instead\",\n \"Please fill in height and weight\",\n \"Please fill in all required fields\",\n \"Next\",\n \"Analyzing your size...\",\n \"RECOMMENDED SIZE\",\n \"NOT RECOMMENDED\",\n \"Edit measurements\",\n \"Size guide\",\n \"Your fit\",\n \"Your measure\",\n \"perfect fit\",\n \"too tight\",\n \"tight\",\n \"a bit tight\",\n \"too loose\",\n \"loose\",\n \"a bit loose\",\n \"See fit on your photo\",\n \"Hide visual fit\",\n \"Analyzing...\",\n \"Try it on\",\n \"SIZE CHART\",\n \"YOUR ESTIMATED MEASUREMENTS\",\n \"Edit\",\n \"Download\",\n \"Size chart\",\n \"Preparing your image...\",\n \"Analyzing body proportions...\",\n \"Matching garment to your photo...\",\n \"Generating virtual try-on...\",\n \"Refining details...\",\n \"Almost there...\",\n \"Complete!\",\n \"This usually takes 15-25 seconds\",\n \"Something went wrong\",\n \"Try Again\",\n \"SDK not configured. Please provide an API key.\",\n \"Please upload a JPEG, PNG, or WebP image.\",\n \"Image must be under 10MB.\",\n \"Try-on generation failed\",\n \"Failed to start try-on\",\n \"No product image found. Please set the product-image attribute.\",\n \"Powered by\",\n \"My Profiles\",\n \"History\",\n \"No saved profiles yet.\",\n \"No history yet.\",\n \"Product\",\n \"Women's\",\n \"Men's\",\n \"Profiles\",\n \"Women's Profile\",\n \"Men's Profile\",\n \"Height\",\n \"Weight\",\n \"Chest\",\n \"Bust\",\n \"Waist\",\n \"Hips\",\n \"Shoulders\",\n \"Sleeve\",\n \"Inseam\",\n \"Neck\",\n \"Foot\",\n \"Shoe EU\",\n \"Shoe US\",\n \"Shoe UK\",\n \"Saved\",\n \"Delete Profile\",\n \"Shoe size (US)\",\n \"Shoe size (UK)\",\n \"Shoe size (EU)\",\n \"Generating...\",\n \"Foot length\",\n \"Size\",\n \"Try on size\",\n \"lbs\",\n \"in\",\n \"e.g.\",\n \"Drop your photo here or click to upload\",\n \"This usually takes 15-20 seconds\",\n \"Try-on result\",\n \"Try Another\",\n \"Back\",\n \"You\",\n \"Garment\",\n \"Your Height\",\n \"Your Weight\",\n \"Drag or scroll to set your height\",\n \"Drag or scroll to set your weight\",\n \"Enter height and weight first\",\n // ── Field labels (FaceSizeView, HeadSizeView, FootSizeView, accessory) ──\n \"Lens Width\",\n \"Bridge\",\n \"Arm Length\",\n \"Head Circumference\",\n \"Face Width\",\n \"Temple\",\n \"Around widest point\",\n \"Foot Length\",\n \"Chest\",\n \"Waist\",\n \"Hips\",\n \"Shoulder\",\n \"Sleeve\",\n \"Neck\",\n \"Inseam\",\n \"Thigh\",\n \"Hip\",\n // ── Units ──\n \"Centimeters\",\n \"Inches\",\n \"Millimetre\",\n \"Centimetre\",\n \"Millimeters\",\n // ── Fit descriptors ──\n \"Tight\",\n \"Loose\",\n \"Short\",\n \"Long\",\n \"Perfect\",\n \"Perfect fit\",\n \"✓ Fit\",\n // Lowercase variants used inline by fitLabelFn / lengthFitLabelFn\n \"tight\", \"loose\", \"short\", \"long\",\n \"perfect fit\",\n \"too tight\", \"a bit tight\",\n \"too loose\", \"a bit loose\",\n \"too short\", \"a bit short\",\n \"too long\", \"a bit long\",\n // ── Misc ──\n \"Product\",\n \"preview\",\n \"Length\",\n \"Length Adjustment\",\n \"Regular\",\n \"Big\",\n \"Big & Tall\",\n];\n","const ja: Record<string, string> = {\n \"Virtual Try-On\": \"バーチャル試着\",\n \"Find Your Size & See It On You\": \"あなたのサイズを見つけて試着\",\n \"Get the perfect fit, then try it on virtually\": \"最適なフィットを見つけて、バーチャルで試着しましょう\",\n \"Get Your Size\": \"サイズを確認\",\n \"Instant fit recommendation\": \"瞬時にフィット提案\",\n \"Try It On\": \"試着する\",\n \"See how it looks on you\": \"自分に似合うか確認\",\n \"Find My Size\": \"自分のサイズを見つける\",\n \"Takes less than a minute\": \"1分もかかりません\",\n \"Upload a full body photo\": \"全身写真をアップロード\",\n \"JPEG, PNG or WebP (max 10MB)\": \"JPEG、PNG、WebP(最大10MB)\",\n \"Your photo\": \"あなたの写真\",\n \"Let's find your best fit\": \"最適なフィットを見つけましょう\",\n \"Centimeters\": \"センチメートル\",\n \"Inches\": \"インチ\",\n \"Load saved profile...\": \"保存済みプロファイルを読み込む...\",\n \"HEIGHT\": \"身長\",\n \"WEIGHT\": \"体重\",\n \"feet\": \"フィート\",\n \"inches\": \"インチ\",\n \"cm\": \"cm\",\n \"kg\": \"kg\",\n \"lbs\": \"ポンド\",\n \"in\": \"インチ\",\n \"How to measure\": \"測り方\",\n \"Hide guide\": \"ガイドを隠す\",\n \"I know my measurements\": \"自分の寸法を知っています\",\n \"Not sure? Use height & weight instead\": \"分からない場合は身長と体重で\",\n \"Please fill in height and weight\": \"身長と体重を入力してください\",\n \"Please fill in all required fields\": \"すべての必須項目を入力してください\",\n \"Next\": \"次へ\",\n \"Analyzing your size...\": \"サイズを分析中...\",\n \"RECOMMENDED SIZE\": \"推奨サイズ\",\n \"NOT RECOMMENDED\": \"非推奨\",\n \"Edit measurements\": \"寸法を編集\",\n \"Size guide\": \"サイズガイド\",\n \"Your fit\": \"あなたのフィット\",\n \"Your measure\": \"あなたの寸法\",\n \"perfect fit\": \"ぴったり\",\n \"too tight\": \"きつすぎる\",\n \"tight\": \"きつい\",\n \"a bit tight\": \"少しきつい\",\n \"too loose\": \"ゆるすぎる\",\n \"loose\": \"ゆるい\",\n \"a bit loose\": \"少しゆるい\",\n \"See fit on your photo\": \"写真でフィットを確認\",\n \"Hide visual fit\": \"フィット表示を隠す\",\n \"Analyzing...\": \"分析中...\",\n \"Try it on\": \"試着する\",\n \"SIZE CHART\": \"サイズ表\",\n \"YOUR ESTIMATED MEASUREMENTS\": \"推定寸法\",\n \"Edit\": \"編集\",\n \"Download\": \"ダウンロード\",\n \"Size chart\": \"サイズ表\",\n \"Preparing your image...\": \"画像を準備中...\",\n \"Analyzing body proportions...\": \"体型を分析中...\",\n \"Matching garment to your photo...\": \"衣類を写真に合わせています...\",\n \"Generating virtual try-on...\": \"バーチャル試着を生成中...\",\n \"Refining details...\": \"細部を調整中...\",\n \"Almost there...\": \"もう少しです...\",\n \"Complete!\": \"完了!\",\n \"This usually takes 15-25 seconds\": \"通常15〜25秒かかります\",\n \"Something went wrong\": \"エラーが発生しました\",\n \"Try Again\": \"もう一度試す\",\n \"SDK not configured. Please provide an API key.\": \"SDKが設定されていません。APIキーを入力してください。\",\n \"Please upload a JPEG, PNG, or WebP image.\": \"JPEG、PNG、WebP画像をアップロードしてください。\",\n \"Image must be under 10MB.\": \"画像は10MB以下にしてください。\",\n \"Try-on generation failed\": \"試着の生成に失敗しました\",\n \"Failed to start try-on\": \"試着の開始に失敗しました\",\n \"No product image found. Please set the product-image attribute.\": \"商品画像が見つかりません。product-image属性を設定してください。\",\n \"Powered by\": \"Powered by\",\n \"My Profiles\": \"マイプロファイル\",\n \"History\": \"履歴\",\n \"No saved profiles yet.\": \"保存済みプロファイルはありません。\",\n \"No history yet.\": \"履歴はまだありません。\",\n \"Product\": \"商品\",\n \"Women's\": \"レディース\",\n \"Men's\": \"メンズ\",\n \"Profiles\": \"プロファイル\",\n \"Women's Profile\": \"レディースプロファイル\",\n \"Men's Profile\": \"メンズプロファイル\",\n \"Height\": \"身長\",\n \"Weight\": \"体重\",\n \"Chest\": \"胸囲\",\n \"Bust\": \"バスト\",\n \"Waist\": \"ウエスト\",\n \"Hips\": \"ヒップ\",\n \"Shoulders\": \"肩幅\",\n \"Sleeve\": \"袖丈\",\n \"Inseam\": \"股下\",\n \"Neck\": \"首周り\",\n \"Foot\": \"足\",\n \"Shoe EU\": \"靴 EU\",\n \"Shoe US\": \"靴 US\",\n \"Shoe UK\": \"靴 UK\",\n \"Saved\": \"保存済み\",\n \"Delete Profile\": \"プロファイルを削除\",\n \"Shoe size (US)\": \"靴のサイズ(US)\",\n \"Shoe size (UK)\": \"靴のサイズ(UK)\",\n \"Shoe size (EU)\": \"靴のサイズ(EU)\",\n \"Generating...\": \"生成中...\",\n \"Foot length\": \"足の長さ\",\n \"Size\": \"サイズ\",\n \"Try on size\": \"サイズを試着\",\n \"e.g.\": \"例\",\n \"Drop your photo here or click to upload\": \"ここに写真をドロップまたはクリックしてアップロード\",\n \"This usually takes 15-20 seconds\": \"通常15〜20秒かかります\",\n \"Try-on result\": \"試着結果\",\n \"Try Another\": \"別のものを試す\",\n \"Back\": \"戻る\",\n \"You\": \"あなた\",\n \"Garment\": \"衣類\",\n \"Your Height\": \"身長\",\n \"Your Weight\": \"体重\",\n \"Drag or scroll to set your height\": \"ドラッグまたはスクロールで身長を設定\",\n \"Drag or scroll to set your weight\": \"ドラッグまたはスクロールで体重を設定\",\n};\nexport default ja;\n","const ko: Record<string, string> = {\n \"Virtual Try-On\": \"가상 피팅\",\n \"Find Your Size & See It On You\": \"사이즈를 찾고 입어보세요\",\n \"Get the perfect fit, then try it on virtually\": \"완벽한 핏을 찾고 가상으로 입어보세요\",\n \"Get Your Size\": \"사이즈 확인\",\n \"Instant fit recommendation\": \"즉시 핏 추천\",\n \"Try It On\": \"입어보기\",\n \"See how it looks on you\": \"어떻게 보이는지 확인\",\n \"Find My Size\": \"내 사이즈 찾기\",\n \"Takes less than a minute\": \"1분도 걸리지 않아요\",\n \"Upload a full body photo\": \"전신 사진 업로드\",\n \"JPEG, PNG or WebP (max 10MB)\": \"JPEG, PNG 또는 WebP (최대 10MB)\",\n \"Your photo\": \"내 사진\",\n \"Let's find your best fit\": \"최적의 핏을 찾아보세요\",\n \"Centimeters\": \"센티미터\",\n \"Inches\": \"인치\",\n \"Load saved profile...\": \"저장된 프로필 불러오기...\",\n \"HEIGHT\": \"키\",\n \"WEIGHT\": \"체중\",\n \"feet\": \"피트\",\n \"inches\": \"인치\",\n \"cm\": \"cm\",\n \"kg\": \"kg\",\n \"lbs\": \"파운드\",\n \"in\": \"인치\",\n \"How to measure\": \"측정 방법\",\n \"Hide guide\": \"가이드 숨기기\",\n \"I know my measurements\": \"치수를 알고 있어요\",\n \"Not sure? Use height & weight instead\": \"모르겠다면 키와 체중으로\",\n \"Please fill in height and weight\": \"키와 체중을 입력해주세요\",\n \"Please fill in all required fields\": \"모든 필수 항목을 입력해주세요\",\n \"Next\": \"다음\",\n \"Analyzing your size...\": \"사이즈 분석 중...\",\n \"RECOMMENDED SIZE\": \"추천 사이즈\",\n \"NOT RECOMMENDED\": \"비추천\",\n \"Edit measurements\": \"치수 수정\",\n \"Size guide\": \"사이즈 가이드\",\n \"Your fit\": \"나의 핏\",\n \"Your measure\": \"내 치수\",\n \"perfect fit\": \"완벽한 핏\",\n \"too tight\": \"너무 타이트\",\n \"tight\": \"타이트\",\n \"a bit tight\": \"약간 타이트\",\n \"too loose\": \"너무 루즈\",\n \"loose\": \"루즈\",\n \"a bit loose\": \"약간 루즈\",\n \"See fit on your photo\": \"사진에서 핏 확인\",\n \"Hide visual fit\": \"핏 표시 숨기기\",\n \"Analyzing...\": \"분석 중...\",\n \"Try it on\": \"입어보기\",\n \"SIZE CHART\": \"사이즈 차트\",\n \"YOUR ESTIMATED MEASUREMENTS\": \"추정 치수\",\n \"Edit\": \"수정\",\n \"Download\": \"다운로드\",\n \"Size chart\": \"사이즈 차트\",\n \"Preparing your image...\": \"이미지 준비 중...\",\n \"Analyzing body proportions...\": \"체형 분석 중...\",\n \"Matching garment to your photo...\": \"의류를 사진에 맞추는 중...\",\n \"Generating virtual try-on...\": \"가상 피팅 생성 중...\",\n \"Refining details...\": \"세부 조정 중...\",\n \"Almost there...\": \"거의 완료...\",\n \"Complete!\": \"완료!\",\n \"This usually takes 15-25 seconds\": \"보통 15~25초 소요됩니다\",\n \"Something went wrong\": \"오류가 발생했습니다\",\n \"Try Again\": \"다시 시도\",\n \"SDK not configured. Please provide an API key.\": \"SDK가 설정되지 않았습니다. API 키를 입력해주세요.\",\n \"Please upload a JPEG, PNG, or WebP image.\": \"JPEG, PNG 또는 WebP 이미지를 업로드해주세요.\",\n \"Image must be under 10MB.\": \"이미지는 10MB 이하여야 합니다.\",\n \"Try-on generation failed\": \"피팅 생성 실패\",\n \"Failed to start try-on\": \"피팅 시작 실패\",\n \"No product image found. Please set the product-image attribute.\": \"상품 이미지를 찾을 수 없습니다. product-image 속성을 설정해주세요.\",\n \"Powered by\": \"Powered by\",\n \"My Profiles\": \"내 프로필\",\n \"History\": \"기록\",\n \"No saved profiles yet.\": \"저장된 프로필이 없습니다.\",\n \"No history yet.\": \"기록이 없습니다.\",\n \"Product\": \"상품\",\n \"Women's\": \"여성\",\n \"Men's\": \"남성\",\n \"Profiles\": \"프로필\",\n \"Women's Profile\": \"여성 프로필\",\n \"Men's Profile\": \"남성 프로필\",\n \"Height\": \"키\",\n \"Weight\": \"체중\",\n \"Chest\": \"가슴둘레\",\n \"Bust\": \"버스트\",\n \"Waist\": \"허리\",\n \"Hips\": \"엉덩이\",\n \"Shoulders\": \"어깨\",\n \"Sleeve\": \"소매\",\n \"Inseam\": \"안쪽 솔기\",\n \"Neck\": \"목둘레\",\n \"Foot\": \"발\",\n \"Shoe EU\": \"신발 EU\",\n \"Shoe US\": \"신발 US\",\n \"Shoe UK\": \"신발 UK\",\n \"Saved\": \"저장됨\",\n \"Delete Profile\": \"프로필 삭제\",\n \"Shoe size (US)\": \"신발 사이즈 (US)\",\n \"Shoe size (UK)\": \"신발 사이즈 (UK)\",\n \"Shoe size (EU)\": \"신발 사이즈 (EU)\",\n \"Generating...\": \"생성 중...\",\n \"Foot length\": \"발 길이\",\n \"Size\": \"사이즈\",\n \"Try on size\": \"사이즈 입어보기\",\n \"e.g.\": \"예)\",\n \"Drop your photo here or click to upload\": \"사진을 여기에 놓거나 클릭하여 업로드\",\n \"This usually takes 15-20 seconds\": \"보통 15~20초 소요됩니다\",\n \"Try-on result\": \"피팅 결과\",\n \"Try Another\": \"다시 시도\",\n \"Back\": \"뒤로\",\n \"You\": \"내 치수\",\n \"Garment\": \"의류\",\n \"Your Height\": \"키\",\n \"Your Weight\": \"체중\",\n \"Drag or scroll to set your height\": \"드래그 또는 스크롤하여 키를 설정하세요\",\n \"Drag or scroll to set your weight\": \"드래그 또는 스크롤하여 체중을 설정하세요\",\n};\nexport default ko;\n","const zh: Record<string, string> = {\n \"Virtual Try-On\": \"虚拟试穿\",\n \"Find Your Size & See It On You\": \"找到你的尺码并试穿\",\n \"Get the perfect fit, then try it on virtually\": \"找到最佳合身度,然后虚拟试穿\",\n \"Get Your Size\": \"获取尺码\",\n \"Instant fit recommendation\": \"即时合身推荐\",\n \"Try It On\": \"试穿\",\n \"See how it looks on you\": \"看看穿在你身上的效果\",\n \"Find My Size\": \"找到我的尺码\",\n \"Takes less than a minute\": \"不到一分钟\",\n \"Upload a full body photo\": \"上传全身照\",\n \"JPEG, PNG or WebP (max 10MB)\": \"JPEG、PNG 或 WebP(最大10MB)\",\n \"Your photo\": \"你的照片\",\n \"Let's find your best fit\": \"找到最适合你的尺码\",\n \"Centimeters\": \"厘米\",\n \"Inches\": \"英寸\",\n \"Load saved profile...\": \"加载已保存的档案...\",\n \"HEIGHT\": \"身高\",\n \"WEIGHT\": \"体重\",\n \"feet\": \"英尺\",\n \"inches\": \"英寸\",\n \"cm\": \"厘米\",\n \"kg\": \"公斤\",\n \"lbs\": \"磅\",\n \"in\": \"英寸\",\n \"How to measure\": \"如何测量\",\n \"Hide guide\": \"隐藏指南\",\n \"I know my measurements\": \"我知道我的尺寸\",\n \"Not sure? Use height & weight instead\": \"不确定?使用身高和体重\",\n \"Please fill in height and weight\": \"请填写身高和体重\",\n \"Please fill in all required fields\": \"请填写所有必填项\",\n \"Next\": \"下一步\",\n \"Analyzing your size...\": \"正在分析你的尺码...\",\n \"RECOMMENDED SIZE\": \"推荐尺码\",\n \"NOT RECOMMENDED\": \"不推荐\",\n \"Edit measurements\": \"编辑尺寸\",\n \"Size guide\": \"尺码指南\",\n \"Your fit\": \"你的合身度\",\n \"Your measure\": \"你的尺寸\",\n \"perfect fit\": \"完美合身\",\n \"too tight\": \"太紧\",\n \"tight\": \"偏紧\",\n \"a bit tight\": \"略紧\",\n \"too loose\": \"太松\",\n \"loose\": \"偏松\",\n \"a bit loose\": \"略松\",\n \"See fit on your photo\": \"在照片上查看合身度\",\n \"Hide visual fit\": \"隐藏合身显示\",\n \"Analyzing...\": \"分析中...\",\n \"Try it on\": \"试穿\",\n \"SIZE CHART\": \"尺码表\",\n \"YOUR ESTIMATED MEASUREMENTS\": \"你的预估尺寸\",\n \"Edit\": \"编辑\",\n \"Download\": \"下载\",\n \"Size chart\": \"尺码表\",\n \"Preparing your image...\": \"正在准备图片...\",\n \"Analyzing body proportions...\": \"正在分析体型...\",\n \"Matching garment to your photo...\": \"正在将服装匹配到照片...\",\n \"Generating virtual try-on...\": \"正在生成虚拟试穿...\",\n \"Refining details...\": \"正在优化细节...\",\n \"Almost there...\": \"即将完成...\",\n \"Complete!\": \"完成!\",\n \"This usually takes 15-25 seconds\": \"通常需要15-25秒\",\n \"Something went wrong\": \"出错了\",\n \"Try Again\": \"重试\",\n \"SDK not configured. Please provide an API key.\": \"SDK未配置,请提供API密钥。\",\n \"Please upload a JPEG, PNG, or WebP image.\": \"请上传JPEG、PNG或WebP图片。\",\n \"Image must be under 10MB.\": \"图片必须小于10MB。\",\n \"Try-on generation failed\": \"试穿生成失败\",\n \"Failed to start try-on\": \"无法开始试穿\",\n \"No product image found. Please set the product-image attribute.\": \"未找到商品图片,请设置product-image属性。\",\n \"Powered by\": \"技术支持\",\n \"My Profiles\": \"我的档案\",\n \"History\": \"历史记录\",\n \"No saved profiles yet.\": \"还没有保存的档案。\",\n \"No history yet.\": \"还没有历史记录。\",\n \"Product\": \"商品\",\n \"Women's\": \"女装\",\n \"Men's\": \"男装\",\n \"Profiles\": \"档案\",\n \"Women's Profile\": \"女性档案\",\n \"Men's Profile\": \"男性档案\",\n \"Height\": \"身高\",\n \"Weight\": \"体重\",\n \"Chest\": \"胸围\",\n \"Bust\": \"胸围\",\n \"Waist\": \"腰围\",\n \"Hips\": \"臀围\",\n \"Shoulders\": \"肩宽\",\n \"Sleeve\": \"袖长\",\n \"Inseam\": \"内缝\",\n \"Neck\": \"颈围\",\n \"Foot\": \"脚\",\n \"Shoe EU\": \"鞋码 EU\",\n \"Shoe US\": \"鞋码 US\",\n \"Shoe UK\": \"鞋码 UK\",\n \"Saved\": \"已保存\",\n \"Delete Profile\": \"删除档案\",\n \"Shoe size (US)\": \"鞋码(US)\",\n \"Shoe size (UK)\": \"鞋码(UK)\",\n \"Shoe size (EU)\": \"鞋码(EU)\",\n \"Generating...\": \"生成中...\",\n \"Foot length\": \"脚长\",\n \"Size\": \"尺码\",\n \"Try on size\": \"试穿尺码\",\n \"e.g.\": \"例如\",\n \"Drop your photo here or click to upload\": \"将照片拖放到此处或点击上传\",\n \"This usually takes 15-20 seconds\": \"通常需要15-20秒\",\n \"Try-on result\": \"试穿结果\",\n \"Try Another\": \"再试一次\",\n \"Back\": \"返回\",\n \"You\": \"你的\",\n \"Garment\": \"服装\",\n \"Your Height\": \"你的身高\",\n \"Your Weight\": \"你的体重\",\n \"Drag or scroll to set your height\": \"拖动或滚动设置身高\",\n \"Drag or scroll to set your weight\": \"拖动或滚动设置体重\",\n};\nexport default zh;\n","const es: Record<string, string> = {\n \"Virtual Try-On\": \"Probador Virtual\",\n \"Find Your Size & See It On You\": \"Encuentra tu talla y pruébatelo\",\n \"Get the perfect fit, then try it on virtually\": \"Encuentra el ajuste perfecto y pruébatelo virtualmente\",\n \"Get Your Size\": \"Tu talla\",\n \"Instant fit recommendation\": \"Recomendación de ajuste instantánea\",\n \"Try It On\": \"Pruébatelo\",\n \"See how it looks on you\": \"Mira cómo te queda\",\n \"Find My Size\": \"Encontrar mi talla\",\n \"Takes less than a minute\": \"Tarda menos de un minuto\",\n \"Upload a full body photo\": \"Sube una foto de cuerpo entero\",\n \"JPEG, PNG or WebP (max 10MB)\": \"JPEG, PNG o WebP (máx. 10MB)\",\n \"Your photo\": \"Tu foto\",\n \"Let's find your best fit\": \"Encontremos tu mejor ajuste\",\n \"Centimeters\": \"Centímetros\",\n \"Inches\": \"Pulgadas\",\n \"Load saved profile...\": \"Cargar perfil guardado...\",\n \"HEIGHT\": \"ALTURA\",\n \"WEIGHT\": \"PESO\",\n \"feet\": \"pies\",\n \"inches\": \"pulgadas\",\n \"cm\": \"cm\",\n \"kg\": \"kg\",\n \"lbs\": \"libras\",\n \"in\": \"pulg\",\n \"How to measure\": \"Cómo medir\",\n \"Hide guide\": \"Ocultar guía\",\n \"I know my measurements\": \"Conozco mis medidas\",\n \"Not sure? Use height & weight instead\": \"¿No estás seguro? Usa altura y peso\",\n \"Please fill in height and weight\": \"Por favor, introduce altura y peso\",\n \"Please fill in all required fields\": \"Por favor, completa todos los campos obligatorios\",\n \"Next\": \"Siguiente\",\n \"Analyzing your size...\": \"Analizando tu talla...\",\n \"RECOMMENDED SIZE\": \"TALLA RECOMENDADA\",\n \"NOT RECOMMENDED\": \"NO RECOMENDADA\",\n \"Edit measurements\": \"Editar medidas\",\n \"Size guide\": \"Guía de tallas\",\n \"Your fit\": \"Tu ajuste\",\n \"Your measure\": \"Tu medida\",\n \"perfect fit\": \"ajuste perfecto\",\n \"too tight\": \"demasiado ajustado\",\n \"tight\": \"ajustado\",\n \"a bit tight\": \"un poco ajustado\",\n \"too loose\": \"demasiado holgado\",\n \"loose\": \"holgado\",\n \"a bit loose\": \"un poco holgado\",\n \"See fit on your photo\": \"Ver ajuste en tu foto\",\n \"Hide visual fit\": \"Ocultar ajuste visual\",\n \"Analyzing...\": \"Analizando...\",\n \"Try it on\": \"Pruébatelo\",\n \"SIZE CHART\": \"TABLA DE TALLAS\",\n \"YOUR ESTIMATED MEASUREMENTS\": \"TUS MEDIDAS ESTIMADAS\",\n \"Edit\": \"Editar\",\n \"Download\": \"Descargar\",\n \"Size chart\": \"Tabla de tallas\",\n \"Preparing your image...\": \"Preparando tu imagen...\",\n \"Analyzing body proportions...\": \"Analizando proporciones corporales...\",\n \"Matching garment to your photo...\": \"Ajustando la prenda a tu foto...\",\n \"Generating virtual try-on...\": \"Generando probador virtual...\",\n \"Refining details...\": \"Refinando detalles...\",\n \"Almost there...\": \"Casi listo...\",\n \"Complete!\": \"¡Completado!\",\n \"This usually takes 15-25 seconds\": \"Normalmente tarda 15-25 segundos\",\n \"Something went wrong\": \"Algo salió mal\",\n \"Try Again\": \"Intentar de nuevo\",\n \"SDK not configured. Please provide an API key.\": \"SDK no configurado. Por favor, proporciona una clave API.\",\n \"Please upload a JPEG, PNG, or WebP image.\": \"Por favor, sube una imagen JPEG, PNG o WebP.\",\n \"Image must be under 10MB.\": \"La imagen debe ser menor de 10MB.\",\n \"Try-on generation failed\": \"Error al generar la prueba\",\n \"Failed to start try-on\": \"Error al iniciar la prueba\",\n \"No product image found. Please set the product-image attribute.\": \"No se encontró imagen del producto. Configura el atributo product-image.\",\n \"Powered by\": \"Desarrollado por\",\n \"My Profiles\": \"Mis Perfiles\",\n \"History\": \"Historial\",\n \"No saved profiles yet.\": \"No hay perfiles guardados.\",\n \"No history yet.\": \"No hay historial aún.\",\n \"Product\": \"Producto\",\n \"Women's\": \"Mujer\",\n \"Men's\": \"Hombre\",\n \"Profiles\": \"Perfiles\",\n \"Women's Profile\": \"Perfil de Mujer\",\n \"Men's Profile\": \"Perfil de Hombre\",\n \"Height\": \"Altura\",\n \"Weight\": \"Peso\",\n \"Chest\": \"Pecho\",\n \"Bust\": \"Busto\",\n \"Waist\": \"Cintura\",\n \"Hips\": \"Caderas\",\n \"Shoulders\": \"Hombros\",\n \"Sleeve\": \"Manga\",\n \"Inseam\": \"Entrepierna\",\n \"Neck\": \"Cuello\",\n \"Foot\": \"Pie\",\n \"Shoe EU\": \"Zapato EU\",\n \"Shoe US\": \"Zapato US\",\n \"Shoe UK\": \"Zapato UK\",\n \"Saved\": \"Guardado\",\n \"Delete Profile\": \"Eliminar Perfil\",\n \"Shoe size (US)\": \"Talla de zapato (US)\",\n \"Shoe size (UK)\": \"Talla de zapato (UK)\",\n \"Shoe size (EU)\": \"Talla de zapato (EU)\",\n \"Generating...\": \"Generando...\",\n \"Foot length\": \"Longitud del pie\",\n \"Size\": \"Talla\",\n \"Try on size\": \"Probar talla\",\n \"e.g.\": \"ej.\",\n \"Drop your photo here or click to upload\": \"Arrastra tu foto aquí o haz clic para subir\",\n \"This usually takes 15-20 seconds\": \"Normalmente tarda 15-20 segundos\",\n \"Try-on result\": \"Resultado de la prueba\",\n \"Try Another\": \"Probar otra\",\n \"Back\": \"Atrás\",\n \"You\": \"Tú\",\n \"Garment\": \"Prenda\",\n \"Your Height\": \"Tu Altura\",\n \"Your Weight\": \"Tu Peso\",\n \"Drag or scroll to set your height\": \"Arrastra o desplaza para establecer tu altura\",\n \"Drag or scroll to set your weight\": \"Arrastra o desplaza para establecer tu peso\",\n};\nexport default es;\n","const fr: Record<string, string> = {\n \"Virtual Try-On\": \"Essayage Virtuel\",\n \"Find Your Size & See It On You\": \"Trouvez votre taille et essayez-le\",\n \"Get the perfect fit, then try it on virtually\": \"Trouvez la coupe parfaite, puis essayez-le virtuellement\",\n \"Get Your Size\": \"Votre taille\",\n \"Instant fit recommendation\": \"Recommandation de coupe instantanée\",\n \"Try It On\": \"Essayer\",\n \"See how it looks on you\": \"Voyez comment ça vous va\",\n \"Find My Size\": \"Trouver ma taille\",\n \"Takes less than a minute\": \"Prend moins d'une minute\",\n \"Upload a full body photo\": \"Téléchargez une photo en pied\",\n \"JPEG, PNG or WebP (max 10MB)\": \"JPEG, PNG ou WebP (max 10 Mo)\",\n \"Your photo\": \"Votre photo\",\n \"Let's find your best fit\": \"Trouvons votre meilleure coupe\",\n \"Centimeters\": \"Centimètres\",\n \"Inches\": \"Pouces\",\n \"Load saved profile...\": \"Charger un profil enregistré...\",\n \"HEIGHT\": \"TAILLE\",\n \"WEIGHT\": \"POIDS\",\n \"feet\": \"pieds\",\n \"inches\": \"pouces\",\n \"cm\": \"cm\",\n \"kg\": \"kg\",\n \"lbs\": \"livres\",\n \"in\": \"po\",\n \"How to measure\": \"Comment mesurer\",\n \"Hide guide\": \"Masquer le guide\",\n \"I know my measurements\": \"Je connais mes mesures\",\n \"Not sure? Use height & weight instead\": \"Pas sûr ? Utilisez taille et poids\",\n \"Please fill in height and weight\": \"Veuillez renseigner la taille et le poids\",\n \"Please fill in all required fields\": \"Veuillez remplir tous les champs obligatoires\",\n \"Next\": \"Suivant\",\n \"Analyzing your size...\": \"Analyse de votre taille...\",\n \"RECOMMENDED SIZE\": \"TAILLE RECOMMANDÉE\",\n \"NOT RECOMMENDED\": \"NON RECOMMANDÉE\",\n \"Edit measurements\": \"Modifier les mesures\",\n \"Size guide\": \"Guide des tailles\",\n \"Your fit\": \"Votre coupe\",\n \"Your measure\": \"Votre mesure\",\n \"perfect fit\": \"coupe parfaite\",\n \"too tight\": \"trop serré\",\n \"tight\": \"serré\",\n \"a bit tight\": \"un peu serré\",\n \"too loose\": \"trop ample\",\n \"loose\": \"ample\",\n \"a bit loose\": \"un peu ample\",\n \"See fit on your photo\": \"Voir la coupe sur votre photo\",\n \"Hide visual fit\": \"Masquer la coupe visuelle\",\n \"Analyzing...\": \"Analyse...\",\n \"Try it on\": \"Essayer\",\n \"SIZE CHART\": \"TABLEAU DES TAILLES\",\n \"YOUR ESTIMATED MEASUREMENTS\": \"VOS MESURES ESTIMÉES\",\n \"Edit\": \"Modifier\",\n \"Download\": \"Télécharger\",\n \"Size chart\": \"Tableau des tailles\",\n \"Preparing your image...\": \"Préparation de votre image...\",\n \"Analyzing body proportions...\": \"Analyse des proportions corporelles...\",\n \"Matching garment to your photo...\": \"Ajustement du vêtement à votre photo...\",\n \"Generating virtual try-on...\": \"Génération de l'essayage virtuel...\",\n \"Refining details...\": \"Affinement des détails...\",\n \"Almost there...\": \"Presque terminé...\",\n \"Complete!\": \"Terminé !\",\n \"This usually takes 15-25 seconds\": \"Cela prend généralement 15 à 25 secondes\",\n \"Something went wrong\": \"Une erreur est survenue\",\n \"Try Again\": \"Réessayer\",\n \"SDK not configured. Please provide an API key.\": \"SDK non configuré. Veuillez fournir une clé API.\",\n \"Please upload a JPEG, PNG, or WebP image.\": \"Veuillez télécharger une image JPEG, PNG ou WebP.\",\n \"Image must be under 10MB.\": \"L'image doit faire moins de 10 Mo.\",\n \"Try-on generation failed\": \"Échec de la génération de l'essayage\",\n \"Failed to start try-on\": \"Impossible de démarrer l'essayage\",\n \"No product image found. Please set the product-image attribute.\": \"Aucune image produit trouvée. Veuillez définir l'attribut product-image.\",\n \"Powered by\": \"Propulsé par\",\n \"My Profiles\": \"Mes Profils\",\n \"History\": \"Historique\",\n \"No saved profiles yet.\": \"Aucun profil enregistré.\",\n \"No history yet.\": \"Pas encore d'historique.\",\n \"Product\": \"Produit\",\n \"Women's\": \"Femme\",\n \"Men's\": \"Homme\",\n \"Profiles\": \"Profils\",\n \"Women's Profile\": \"Profil Femme\",\n \"Men's Profile\": \"Profil Homme\",\n \"Height\": \"Taille\",\n \"Weight\": \"Poids\",\n \"Chest\": \"Poitrine\",\n \"Bust\": \"Buste\",\n \"Waist\": \"Tour de taille\",\n \"Hips\": \"Hanches\",\n \"Shoulders\": \"Épaules\",\n \"Sleeve\": \"Manche\",\n \"Inseam\": \"Entrejambe\",\n \"Neck\": \"Cou\",\n \"Foot\": \"Pied\",\n \"Shoe EU\": \"Chaussure EU\",\n \"Shoe US\": \"Chaussure US\",\n \"Shoe UK\": \"Chaussure UK\",\n \"Saved\": \"Enregistré\",\n \"Delete Profile\": \"Supprimer le Profil\",\n \"Shoe size (US)\": \"Pointure (US)\",\n \"Shoe size (UK)\": \"Pointure (UK)\",\n \"Shoe size (EU)\": \"Pointure (EU)\",\n \"Generating...\": \"Génération...\",\n \"Foot length\": \"Longueur du pied\",\n \"Size\": \"Taille\",\n \"Try on size\": \"Essayer la taille\",\n \"e.g.\": \"ex.\",\n \"Drop your photo here or click to upload\": \"Déposez votre photo ici ou cliquez pour télécharger\",\n \"This usually takes 15-20 seconds\": \"Cela prend généralement 15 à 20 secondes\",\n \"Try-on result\": \"Résultat de l'essayage\",\n \"Try Another\": \"Essayer une autre\",\n \"Back\": \"Retour\",\n \"You\": \"Vous\",\n \"Garment\": \"Vêtement\",\n \"Your Height\": \"Votre Taille\",\n \"Your Weight\": \"Votre Poids\",\n \"Drag or scroll to set your height\": \"Glissez ou faites défiler pour définir votre taille\",\n \"Drag or scroll to set your weight\": \"Glissez ou faites défiler pour définir votre poids\",\n};\nexport default fr;\n","const de: Record<string, string> = {\n \"Virtual Try-On\": \"Virtuelle Anprobe\",\n \"Find Your Size & See It On You\": \"Finden Sie Ihre Größe und probieren Sie es an\",\n \"Get the perfect fit, then try it on virtually\": \"Finden Sie die perfekte Passform und probieren Sie es virtuell an\",\n \"Get Your Size\": \"Ihre Größe\",\n \"Instant fit recommendation\": \"Sofortige Passformempfehlung\",\n \"Try It On\": \"Anprobieren\",\n \"See how it looks on you\": \"Sehen Sie, wie es Ihnen steht\",\n \"Find My Size\": \"Meine Größe finden\",\n \"Takes less than a minute\": \"Dauert weniger als eine Minute\",\n \"Upload a full body photo\": \"Laden Sie ein Ganzkörperfoto hoch\",\n \"JPEG, PNG or WebP (max 10MB)\": \"JPEG, PNG oder WebP (max. 10 MB)\",\n \"Your photo\": \"Ihr Foto\",\n \"Let's find your best fit\": \"Finden wir Ihre beste Passform\",\n \"Centimeters\": \"Zentimeter\",\n \"Inches\": \"Zoll\",\n \"Load saved profile...\": \"Gespeichertes Profil laden...\",\n \"HEIGHT\": \"GRÖSSE\",\n \"WEIGHT\": \"GEWICHT\",\n \"feet\": \"Fuß\",\n \"inches\": \"Zoll\",\n \"cm\": \"cm\",\n \"kg\": \"kg\",\n \"lbs\": \"Pfund\",\n \"in\": \"Zoll\",\n \"How to measure\": \"So messen Sie\",\n \"Hide guide\": \"Anleitung ausblenden\",\n \"I know my measurements\": \"Ich kenne meine Maße\",\n \"Not sure? Use height & weight instead\": \"Unsicher? Verwenden Sie Größe und Gewicht\",\n \"Please fill in height and weight\": \"Bitte Größe und Gewicht eingeben\",\n \"Please fill in all required fields\": \"Bitte alle Pflichtfelder ausfüllen\",\n \"Next\": \"Weiter\",\n \"Analyzing your size...\": \"Ihre Größe wird analysiert...\",\n \"RECOMMENDED SIZE\": \"EMPFOHLENE GRÖSSE\",\n \"NOT RECOMMENDED\": \"NICHT EMPFOHLEN\",\n \"Edit measurements\": \"Maße bearbeiten\",\n \"Size guide\": \"Größentabelle\",\n \"Your fit\": \"Ihre Passform\",\n \"Your measure\": \"Ihr Maß\",\n \"perfect fit\": \"perfekte Passform\",\n \"too tight\": \"zu eng\",\n \"tight\": \"eng\",\n \"a bit tight\": \"etwas eng\",\n \"too loose\": \"zu weit\",\n \"loose\": \"weit\",\n \"a bit loose\": \"etwas weit\",\n \"See fit on your photo\": \"Passform auf Ihrem Foto sehen\",\n \"Hide visual fit\": \"Passformanzeige ausblenden\",\n \"Analyzing...\": \"Analyse...\",\n \"Try it on\": \"Anprobieren\",\n \"SIZE CHART\": \"GRÖSSENTABELLE\",\n \"YOUR ESTIMATED MEASUREMENTS\": \"IHRE GESCHÄTZTEN MASSE\",\n \"Edit\": \"Bearbeiten\",\n \"Download\": \"Herunterladen\",\n \"Size chart\": \"Größentabelle\",\n \"Preparing your image...\": \"Ihr Bild wird vorbereitet...\",\n \"Analyzing body proportions...\": \"Körperproportionen werden analysiert...\",\n \"Matching garment to your photo...\": \"Kleidungsstück wird an Ihr Foto angepasst...\",\n \"Generating virtual try-on...\": \"Virtuelle Anprobe wird erstellt...\",\n \"Refining details...\": \"Details werden verfeinert...\",\n \"Almost there...\": \"Fast fertig...\",\n \"Complete!\": \"Fertig!\",\n \"This usually takes 15-25 seconds\": \"Dies dauert normalerweise 15–25 Sekunden\",\n \"Something went wrong\": \"Etwas ist schiefgelaufen\",\n \"Try Again\": \"Erneut versuchen\",\n \"SDK not configured. Please provide an API key.\": \"SDK nicht konfiguriert. Bitte geben Sie einen API-Schlüssel an.\",\n \"Please upload a JPEG, PNG, or WebP image.\": \"Bitte laden Sie ein JPEG-, PNG- oder WebP-Bild hoch.\",\n \"Image must be under 10MB.\": \"Das Bild muss kleiner als 10 MB sein.\",\n \"Try-on generation failed\": \"Anprobe-Erstellung fehlgeschlagen\",\n \"Failed to start try-on\": \"Anprobe konnte nicht gestartet werden\",\n \"No product image found. Please set the product-image attribute.\": \"Kein Produktbild gefunden. Bitte setzen Sie das product-image Attribut.\",\n \"Powered by\": \"Unterstützt von\",\n \"My Profiles\": \"Meine Profile\",\n \"History\": \"Verlauf\",\n \"No saved profiles yet.\": \"Noch keine gespeicherten Profile.\",\n \"No history yet.\": \"Noch kein Verlauf.\",\n \"Product\": \"Produkt\",\n \"Women's\": \"Damen\",\n \"Men's\": \"Herren\",\n \"Profiles\": \"Profile\",\n \"Women's Profile\": \"Damenprofil\",\n \"Men's Profile\": \"Herrenprofil\",\n \"Height\": \"Größe\",\n \"Weight\": \"Gewicht\",\n \"Chest\": \"Brust\",\n \"Bust\": \"Oberweite\",\n \"Waist\": \"Taille\",\n \"Hips\": \"Hüfte\",\n \"Shoulders\": \"Schultern\",\n \"Sleeve\": \"Ärmel\",\n \"Inseam\": \"Schrittlänge\",\n \"Neck\": \"Hals\",\n \"Foot\": \"Fuß\",\n \"Shoe EU\": \"Schuh EU\",\n \"Shoe US\": \"Schuh US\",\n \"Shoe UK\": \"Schuh UK\",\n \"Saved\": \"Gespeichert\",\n \"Delete Profile\": \"Profil löschen\",\n \"Shoe size (US)\": \"Schuhgröße (US)\",\n \"Shoe size (UK)\": \"Schuhgröße (UK)\",\n \"Shoe size (EU)\": \"Schuhgröße (EU)\",\n \"Generating...\": \"Wird erstellt...\",\n \"Foot length\": \"Fußlänge\",\n \"Size\": \"Größe\",\n \"Try on size\": \"Größe anprobieren\",\n \"e.g.\": \"z.B.\",\n \"Drop your photo here or click to upload\": \"Foto hier ablegen oder klicken zum Hochladen\",\n \"This usually takes 15-20 seconds\": \"Dies dauert normalerweise 15–20 Sekunden\",\n \"Try-on result\": \"Anprobe-Ergebnis\",\n \"Try Another\": \"Andere probieren\",\n \"Back\": \"Zurück\",\n \"You\": \"Du\",\n \"Garment\": \"Kleidung\",\n \"Your Height\": \"Deine Größe\",\n \"Your Weight\": \"Dein Gewicht\",\n \"Drag or scroll to set your height\": \"Ziehen oder scrollen Sie, um Ihre Größe einzustellen\",\n \"Drag or scroll to set your weight\": \"Ziehen oder scrollen Sie, um Ihr Gewicht einzustellen\",\n};\nexport default de;\n","const it: Record<string, string> = {\n \"Virtual Try-On\": \"Prova Virtuale\",\n \"Find Your Size & See It On You\": \"Trova la tua taglia e provalo\",\n \"Get the perfect fit, then try it on virtually\": \"Trova la vestibilità perfetta, poi provalo virtualmente\",\n \"Get Your Size\": \"La tua taglia\",\n \"Instant fit recommendation\": \"Raccomandazione vestibilità istantanea\",\n \"Try It On\": \"Provalo\",\n \"See how it looks on you\": \"Guarda come ti sta\",\n \"Find My Size\": \"Trova la mia taglia\",\n \"Takes less than a minute\": \"Richiede meno di un minuto\",\n \"Upload a full body photo\": \"Carica una foto a figura intera\",\n \"JPEG, PNG or WebP (max 10MB)\": \"JPEG, PNG o WebP (max 10MB)\",\n \"Your photo\": \"La tua foto\",\n \"Let's find your best fit\": \"Troviamo la tua vestibilità ideale\",\n \"Centimeters\": \"Centimetri\",\n \"Inches\": \"Pollici\",\n \"Load saved profile...\": \"Carica profilo salvato...\",\n \"HEIGHT\": \"ALTEZZA\",\n \"WEIGHT\": \"PESO\",\n \"feet\": \"piedi\",\n \"inches\": \"pollici\",\n \"cm\": \"cm\",\n \"kg\": \"kg\",\n \"lbs\": \"libbre\",\n \"in\": \"poll\",\n \"How to measure\": \"Come misurare\",\n \"Hide guide\": \"Nascondi guida\",\n \"I know my measurements\": \"Conosco le mie misure\",\n \"Not sure? Use height & weight instead\": \"Non sei sicuro? Usa altezza e peso\",\n \"Please fill in height and weight\": \"Inserisci altezza e peso\",\n \"Please fill in all required fields\": \"Compila tutti i campi obbligatori\",\n \"Next\": \"Avanti\",\n \"Analyzing your size...\": \"Analisi della tua taglia...\",\n \"RECOMMENDED SIZE\": \"TAGLIA CONSIGLIATA\",\n \"NOT RECOMMENDED\": \"NON CONSIGLIATA\",\n \"Edit measurements\": \"Modifica misure\",\n \"Size guide\": \"Guida alle taglie\",\n \"Your fit\": \"La tua vestibilità\",\n \"Your measure\": \"La tua misura\",\n \"perfect fit\": \"vestibilità perfetta\",\n \"too tight\": \"troppo stretto\",\n \"tight\": \"stretto\",\n \"a bit tight\": \"un po' stretto\",\n \"too loose\": \"troppo largo\",\n \"loose\": \"largo\",\n \"a bit loose\": \"un po' largo\",\n \"See fit on your photo\": \"Vedi vestibilità sulla tua foto\",\n \"Hide visual fit\": \"Nascondi vestibilità visiva\",\n \"Analyzing...\": \"Analisi...\",\n \"Try it on\": \"Provalo\",\n \"SIZE CHART\": \"TABELLA TAGLIE\",\n \"YOUR ESTIMATED MEASUREMENTS\": \"LE TUE MISURE STIMATE\",\n \"Edit\": \"Modifica\",\n \"Download\": \"Scarica\",\n \"Size chart\": \"Tabella taglie\",\n \"Preparing your image...\": \"Preparazione dell'immagine...\",\n \"Analyzing body proportions...\": \"Analisi delle proporzioni corporee...\",\n \"Matching garment to your photo...\": \"Adattamento del capo alla tua foto...\",\n \"Generating virtual try-on...\": \"Generazione della prova virtuale...\",\n \"Refining details...\": \"Rifinitura dei dettagli...\",\n \"Almost there...\": \"Quasi pronto...\",\n \"Complete!\": \"Completato!\",\n \"This usually takes 15-25 seconds\": \"Di solito richiede 15-25 secondi\",\n \"Something went wrong\": \"Qualcosa è andato storto\",\n \"Try Again\": \"Riprova\",\n \"SDK not configured. Please provide an API key.\": \"SDK non configurato. Fornisci una chiave API.\",\n \"Please upload a JPEG, PNG, or WebP image.\": \"Carica un'immagine JPEG, PNG o WebP.\",\n \"Image must be under 10MB.\": \"L'immagine deve essere inferiore a 10MB.\",\n \"Try-on generation failed\": \"Generazione della prova fallita\",\n \"Failed to start try-on\": \"Impossibile avviare la prova\",\n \"No product image found. Please set the product-image attribute.\": \"Nessuna immagine prodotto trovata. Imposta l'attributo product-image.\",\n \"Powered by\": \"Powered by\",\n \"My Profiles\": \"I miei Profili\",\n \"History\": \"Cronologia\",\n \"No saved profiles yet.\": \"Nessun profilo salvato.\",\n \"No history yet.\": \"Nessuna cronologia.\",\n \"Product\": \"Prodotto\",\n \"Women's\": \"Donna\",\n \"Men's\": \"Uomo\",\n \"Profiles\": \"Profili\",\n \"Women's Profile\": \"Profilo Donna\",\n \"Men's Profile\": \"Profilo Uomo\",\n \"Height\": \"Altezza\",\n \"Weight\": \"Peso\",\n \"Chest\": \"Petto\",\n \"Bust\": \"Busto\",\n \"Waist\": \"Vita\",\n \"Hips\": \"Fianchi\",\n \"Shoulders\": \"Spalle\",\n \"Sleeve\": \"Manica\",\n \"Inseam\": \"Cavallo\",\n \"Neck\": \"Collo\",\n \"Foot\": \"Piede\",\n \"Shoe EU\": \"Scarpa EU\",\n \"Shoe US\": \"Scarpa US\",\n \"Shoe UK\": \"Scarpa UK\",\n \"Saved\": \"Salvato\",\n \"Delete Profile\": \"Elimina Profilo\",\n \"Shoe size (US)\": \"Numero di scarpa (US)\",\n \"Shoe size (UK)\": \"Numero di scarpa (UK)\",\n \"Shoe size (EU)\": \"Numero di scarpa (EU)\",\n \"Generating...\": \"Generazione...\",\n \"Foot length\": \"Lunghezza del piede\",\n \"Size\": \"Taglia\",\n \"Try on size\": \"Prova la taglia\",\n \"e.g.\": \"es.\",\n \"Drop your photo here or click to upload\": \"Trascina la foto qui o clicca per caricare\",\n \"This usually takes 15-20 seconds\": \"Di solito richiede 15-20 secondi\",\n \"Try-on result\": \"Risultato della prova\",\n \"Try Another\": \"Prova un'altra\",\n \"Back\": \"Indietro\",\n \"You\": \"Tu\",\n \"Garment\": \"Capo\",\n \"Your Height\": \"La Tua Altezza\",\n \"Your Weight\": \"Il Tuo Peso\",\n \"Drag or scroll to set your height\": \"Trascina o scorri per impostare la tua altezza\",\n \"Drag or scroll to set your weight\": \"Trascina o scorri per impostare il tuo peso\",\n};\nexport default it;\n","const pt: Record<string, string> = {\n \"Virtual Try-On\": \"Provador Virtual\",\n \"Find Your Size & See It On You\": \"Encontre seu tamanho e experimente\",\n \"Get the perfect fit, then try it on virtually\": \"Encontre o caimento perfeito e experimente virtualmente\",\n \"Get Your Size\": \"Seu tamanho\",\n \"Instant fit recommendation\": \"Recomendação de caimento instantânea\",\n \"Try It On\": \"Experimentar\",\n \"See how it looks on you\": \"Veja como fica em você\",\n \"Find My Size\": \"Encontrar meu tamanho\",\n \"Takes less than a minute\": \"Leva menos de um minuto\",\n \"Upload a full body photo\": \"Envie uma foto de corpo inteiro\",\n \"JPEG, PNG or WebP (max 10MB)\": \"JPEG, PNG ou WebP (máx. 10MB)\",\n \"Your photo\": \"Sua foto\",\n \"Let's find your best fit\": \"Vamos encontrar seu melhor caimento\",\n \"Centimeters\": \"Centímetros\",\n \"Inches\": \"Polegadas\",\n \"Load saved profile...\": \"Carregar perfil salvo...\",\n \"HEIGHT\": \"ALTURA\",\n \"WEIGHT\": \"PESO\",\n \"feet\": \"pés\",\n \"inches\": \"polegadas\",\n \"cm\": \"cm\",\n \"kg\": \"kg\",\n \"lbs\": \"libras\",\n \"in\": \"pol\",\n \"How to measure\": \"Como medir\",\n \"Hide guide\": \"Ocultar guia\",\n \"I know my measurements\": \"Sei minhas medidas\",\n \"Not sure? Use height & weight instead\": \"Não tem certeza? Use altura e peso\",\n \"Please fill in height and weight\": \"Por favor, preencha altura e peso\",\n \"Please fill in all required fields\": \"Por favor, preencha todos os campos obrigatórios\",\n \"Next\": \"Próximo\",\n \"Analyzing your size...\": \"Analisando seu tamanho...\",\n \"RECOMMENDED SIZE\": \"TAMANHO RECOMENDADO\",\n \"NOT RECOMMENDED\": \"NÃO RECOMENDADO\",\n \"Edit measurements\": \"Editar medidas\",\n \"Size guide\": \"Guia de tamanhos\",\n \"Your fit\": \"Seu caimento\",\n \"Your measure\": \"Sua medida\",\n \"perfect fit\": \"caimento perfeito\",\n \"too tight\": \"muito apertado\",\n \"tight\": \"apertado\",\n \"a bit tight\": \"um pouco apertado\",\n \"too loose\": \"muito folgado\",\n \"loose\": \"folgado\",\n \"a bit loose\": \"um pouco folgado\",\n \"See fit on your photo\": \"Ver caimento na sua foto\",\n \"Hide visual fit\": \"Ocultar caimento visual\",\n \"Analyzing...\": \"Analisando...\",\n \"Try it on\": \"Experimentar\",\n \"SIZE CHART\": \"TABELA DE TAMANHOS\",\n \"YOUR ESTIMATED MEASUREMENTS\": \"SUAS MEDIDAS ESTIMADAS\",\n \"Edit\": \"Editar\",\n \"Download\": \"Baixar\",\n \"Size chart\": \"Tabela de tamanhos\",\n \"Preparing your image...\": \"Preparando sua imagem...\",\n \"Analyzing body proportions...\": \"Analisando proporções corporais...\",\n \"Matching garment to your photo...\": \"Ajustando a peça à sua foto...\",\n \"Generating virtual try-on...\": \"Gerando provador virtual...\",\n \"Refining details...\": \"Refinando detalhes...\",\n \"Almost there...\": \"Quase lá...\",\n \"Complete!\": \"Concluído!\",\n \"This usually takes 15-25 seconds\": \"Isso geralmente leva 15-25 segundos\",\n \"Something went wrong\": \"Algo deu errado\",\n \"Try Again\": \"Tentar novamente\",\n \"SDK not configured. Please provide an API key.\": \"SDK não configurado. Forneça uma chave API.\",\n \"Please upload a JPEG, PNG, or WebP image.\": \"Envie uma imagem JPEG, PNG ou WebP.\",\n \"Image must be under 10MB.\": \"A imagem deve ter menos de 10MB.\",\n \"Try-on generation failed\": \"Falha na geração da prova\",\n \"Failed to start try-on\": \"Falha ao iniciar a prova\",\n \"No product image found. Please set the product-image attribute.\": \"Imagem do produto não encontrada. Defina o atributo product-image.\",\n \"Powered by\": \"Desenvolvido por\",\n \"My Profiles\": \"Meus Perfis\",\n \"History\": \"Histórico\",\n \"No saved profiles yet.\": \"Nenhum perfil salvo.\",\n \"No history yet.\": \"Sem histórico.\",\n \"Product\": \"Produto\",\n \"Women's\": \"Feminino\",\n \"Men's\": \"Masculino\",\n \"Profiles\": \"Perfis\",\n \"Women's Profile\": \"Perfil Feminino\",\n \"Men's Profile\": \"Perfil Masculino\",\n \"Height\": \"Altura\",\n \"Weight\": \"Peso\",\n \"Chest\": \"Peito\",\n \"Bust\": \"Busto\",\n \"Waist\": \"Cintura\",\n \"Hips\": \"Quadril\",\n \"Shoulders\": \"Ombros\",\n \"Sleeve\": \"Manga\",\n \"Inseam\": \"Entrepernas\",\n \"Neck\": \"Pescoço\",\n \"Foot\": \"Pé\",\n \"Shoe EU\": \"Calçado EU\",\n \"Shoe US\": \"Calçado US\",\n \"Shoe UK\": \"Calçado UK\",\n \"Saved\": \"Salvo\",\n \"Delete Profile\": \"Excluir Perfil\",\n \"Shoe size (US)\": \"Tamanho do calçado (US)\",\n \"Shoe size (UK)\": \"Tamanho do calçado (UK)\",\n \"Shoe size (EU)\": \"Tamanho do calçado (EU)\",\n \"Generating...\": \"Gerando...\",\n \"Foot length\": \"Comprimento do pé\",\n \"Size\": \"Tamanho\",\n \"Try on size\": \"Experimentar tamanho\",\n \"e.g.\": \"ex.\",\n \"Drop your photo here or click to upload\": \"Arraste sua foto aqui ou clique para enviar\",\n \"This usually takes 15-20 seconds\": \"Isso geralmente leva 15-20 segundos\",\n \"Try-on result\": \"Resultado da prova\",\n \"Try Another\": \"Tentar outra\",\n \"Back\": \"Voltar\",\n \"You\": \"Você\",\n \"Garment\": \"Peça\",\n \"Your Height\": \"Sua Altura\",\n \"Your Weight\": \"Seu Peso\",\n \"Drag or scroll to set your height\": \"Arraste ou role para definir sua altura\",\n \"Drag or scroll to set your weight\": \"Arraste ou role para definir seu peso\",\n};\nexport default pt;\n","const nl: Record<string, string> = {\n \"Virtual Try-On\": \"Virtueel Passen\",\n \"Find Your Size & See It On You\": \"Vind je maat en pas het\",\n \"Get the perfect fit, then try it on virtually\": \"Vind de perfecte pasvorm en pas het virtueel\",\n \"Get Your Size\": \"Jouw maat\",\n \"Instant fit recommendation\": \"Directe pasvormaanbeveling\",\n \"Try It On\": \"Pas het\",\n \"See how it looks on you\": \"Bekijk hoe het je staat\",\n \"Find My Size\": \"Mijn maat vinden\",\n \"Takes less than a minute\": \"Duurt minder dan een minuut\",\n \"Upload a full body photo\": \"Upload een foto van je hele lichaam\",\n \"JPEG, PNG or WebP (max 10MB)\": \"JPEG, PNG of WebP (max 10MB)\",\n \"Your photo\": \"Jouw foto\",\n \"Let's find your best fit\": \"Laten we je beste pasvorm vinden\",\n \"Centimeters\": \"Centimeters\",\n \"Inches\": \"Inches\",\n \"Load saved profile...\": \"Opgeslagen profiel laden...\",\n \"HEIGHT\": \"LENGTE\",\n \"WEIGHT\": \"GEWICHT\",\n \"feet\": \"voet\",\n \"inches\": \"inch\",\n \"cm\": \"cm\",\n \"kg\": \"kg\",\n \"lbs\": \"pond\",\n \"in\": \"inch\",\n \"How to measure\": \"Hoe te meten\",\n \"Hide guide\": \"Gids verbergen\",\n \"I know my measurements\": \"Ik ken mijn maten\",\n \"Not sure? Use height & weight instead\": \"Niet zeker? Gebruik lengte en gewicht\",\n \"Please fill in height and weight\": \"Vul lengte en gewicht in\",\n \"Please fill in all required fields\": \"Vul alle verplichte velden in\",\n \"Next\": \"Volgende\",\n \"Analyzing your size...\": \"Je maat wordt geanalyseerd...\",\n \"RECOMMENDED SIZE\": \"AANBEVOLEN MAAT\",\n \"NOT RECOMMENDED\": \"NIET AANBEVOLEN\",\n \"Edit measurements\": \"Maten bewerken\",\n \"Size guide\": \"Maatgids\",\n \"Your fit\": \"Jouw pasvorm\",\n \"Your measure\": \"Jouw maat\",\n \"perfect fit\": \"perfecte pasvorm\",\n \"too tight\": \"te strak\",\n \"tight\": \"strak\",\n \"a bit tight\": \"een beetje strak\",\n \"too loose\": \"te ruim\",\n \"loose\": \"ruim\",\n \"a bit loose\": \"een beetje ruim\",\n \"See fit on your photo\": \"Bekijk pasvorm op je foto\",\n \"Hide visual fit\": \"Pasvormweergave verbergen\",\n \"Analyzing...\": \"Analyseren...\",\n \"Try it on\": \"Pas het\",\n \"SIZE CHART\": \"MAATTABEL\",\n \"YOUR ESTIMATED MEASUREMENTS\": \"JE GESCHATTE MATEN\",\n \"Edit\": \"Bewerken\",\n \"Download\": \"Downloaden\",\n \"Size chart\": \"Maattabel\",\n \"Preparing your image...\": \"Je afbeelding wordt voorbereid...\",\n \"Analyzing body proportions...\": \"Lichaamsvormen worden geanalyseerd...\",\n \"Matching garment to your photo...\": \"Kledingstuk wordt aan je foto aangepast...\",\n \"Generating virtual try-on...\": \"Virtuele pasbeur wordt gegenereerd...\",\n \"Refining details...\": \"Details worden verfijnd...\",\n \"Almost there...\": \"Bijna klaar...\",\n \"Complete!\": \"Voltooid!\",\n \"This usually takes 15-25 seconds\": \"Dit duurt meestal 15-25 seconden\",\n \"Something went wrong\": \"Er ging iets mis\",\n \"Try Again\": \"Opnieuw proberen\",\n \"SDK not configured. Please provide an API key.\": \"SDK niet geconfigureerd. Geef een API-sleutel op.\",\n \"Please upload a JPEG, PNG, or WebP image.\": \"Upload een JPEG-, PNG- of WebP-afbeelding.\",\n \"Image must be under 10MB.\": \"Afbeelding moet kleiner zijn dan 10MB.\",\n \"Try-on generation failed\": \"Genereren van pasbeur mislukt\",\n \"Failed to start try-on\": \"Kan pasbeur niet starten\",\n \"No product image found. Please set the product-image attribute.\": \"Geen productafbeelding gevonden. Stel het product-image attribuut in.\",\n \"Powered by\": \"Mogelijk gemaakt door\",\n \"My Profiles\": \"Mijn Profielen\",\n \"History\": \"Geschiedenis\",\n \"No saved profiles yet.\": \"Nog geen opgeslagen profielen.\",\n \"No history yet.\": \"Nog geen geschiedenis.\",\n \"Product\": \"Product\",\n \"Women's\": \"Dames\",\n \"Men's\": \"Heren\",\n \"Profiles\": \"Profielen\",\n \"Women's Profile\": \"Damesprofiel\",\n \"Men's Profile\": \"Herenprofiel\",\n \"Height\": \"Lengte\",\n \"Weight\": \"Gewicht\",\n \"Chest\": \"Borst\",\n \"Bust\": \"Buste\",\n \"Waist\": \"Taille\",\n \"Hips\": \"Heupen\",\n \"Shoulders\": \"Schouders\",\n \"Sleeve\": \"Mouw\",\n \"Inseam\": \"Binnenbeenlengte\",\n \"Neck\": \"Nek\",\n \"Foot\": \"Voet\",\n \"Shoe EU\": \"Schoen EU\",\n \"Shoe US\": \"Schoen US\",\n \"Shoe UK\": \"Schoen UK\",\n \"Saved\": \"Opgeslagen\",\n \"Delete Profile\": \"Profiel verwijderen\",\n \"Shoe size (US)\": \"Schoenmaat (US)\",\n \"Shoe size (UK)\": \"Schoenmaat (UK)\",\n \"Shoe size (EU)\": \"Schoenmaat (EU)\",\n \"Generating...\": \"Genereren...\",\n \"Foot length\": \"Voetlengte\",\n \"Size\": \"Maat\",\n \"Try on size\": \"Maat passen\",\n \"e.g.\": \"bijv.\",\n \"Drop your photo here or click to upload\": \"Sleep je foto hierheen of klik om te uploaden\",\n \"This usually takes 15-20 seconds\": \"Dit duurt meestal 15-20 seconden\",\n \"Try-on result\": \"Pasresultaat\",\n \"Try Another\": \"Probeer een andere\",\n \"Back\": \"Terug\",\n \"You\": \"Jij\",\n \"Garment\": \"Kledingstuk\",\n \"Your Height\": \"Je Lengte\",\n \"Your Weight\": \"Je Gewicht\",\n \"Drag or scroll to set your height\": \"Sleep of scroll om je lengte in te stellen\",\n \"Drag or scroll to set your weight\": \"Sleep of scroll om je gewicht in te stellen\",\n};\nexport default nl;\n","const ru: Record<string, string> = {\n \"Virtual Try-On\": \"Виртуальная примерка\",\n \"Find Your Size & See It On You\": \"Найдите свой размер и примерьте\",\n \"Get the perfect fit, then try it on virtually\": \"Найдите идеальную посадку и примерьте виртуально\",\n \"Get Your Size\": \"Ваш размер\",\n \"Instant fit recommendation\": \"Мгновенная рекомендация посадки\",\n \"Try It On\": \"Примерить\",\n \"See how it looks on you\": \"Посмотрите, как это выглядит на вас\",\n \"Find My Size\": \"Найти мой размер\",\n \"Takes less than a minute\": \"Занимает меньше минуты\",\n \"Upload a full body photo\": \"Загрузите фото в полный рост\",\n \"JPEG, PNG or WebP (max 10MB)\": \"JPEG, PNG или WebP (макс. 10 МБ)\",\n \"Your photo\": \"Ваше фото\",\n \"Let's find your best fit\": \"Найдём вашу лучшую посадку\",\n \"Centimeters\": \"Сантиметры\",\n \"Inches\": \"Дюймы\",\n \"Load saved profile...\": \"Загрузить сохранённый профиль...\",\n \"HEIGHT\": \"РОСТ\",\n \"WEIGHT\": \"ВЕС\",\n \"feet\": \"футы\",\n \"inches\": \"дюймы\",\n \"cm\": \"см\",\n \"kg\": \"кг\",\n \"lbs\": \"фунты\",\n \"in\": \"дюйм\",\n \"How to measure\": \"Как измерять\",\n \"Hide guide\": \"Скрыть руководство\",\n \"I know my measurements\": \"Я знаю свои мерки\",\n \"Not sure? Use height & weight instead\": \"Не уверены? Используйте рост и вес\",\n \"Please fill in height and weight\": \"Пожалуйста, укажите рост и вес\",\n \"Please fill in all required fields\": \"Пожалуйста, заполните все обязательные поля\",\n \"Next\": \"Далее\",\n \"Analyzing your size...\": \"Анализируем ваш размер...\",\n \"RECOMMENDED SIZE\": \"РЕКОМЕНДУЕМЫЙ РАЗМЕР\",\n \"NOT RECOMMENDED\": \"НЕ РЕКОМЕНДУЕТСЯ\",\n \"Edit measurements\": \"Изменить мерки\",\n \"Size guide\": \"Таблица размеров\",\n \"Your fit\": \"Ваша посадка\",\n \"Your measure\": \"Ваша мерка\",\n \"perfect fit\": \"идеальная посадка\",\n \"too tight\": \"слишком тесно\",\n \"tight\": \"тесно\",\n \"a bit tight\": \"немного тесно\",\n \"too loose\": \"слишком свободно\",\n \"loose\": \"свободно\",\n \"a bit loose\": \"немного свободно\",\n \"See fit on your photo\": \"Увидеть посадку на вашем фото\",\n \"Hide visual fit\": \"Скрыть визуализацию\",\n \"Analyzing...\": \"Анализируем...\",\n \"Try it on\": \"Примерить\",\n \"SIZE CHART\": \"ТАБЛИЦА РАЗМЕРОВ\",\n \"YOUR ESTIMATED MEASUREMENTS\": \"ВАШИ ПРИБЛИЗИТЕЛЬНЫЕ МЕРКИ\",\n \"Edit\": \"Изменить\",\n \"Download\": \"Скачать\",\n \"Size chart\": \"Таблица размеров\",\n \"Preparing your image...\": \"Подготовка изображения...\",\n \"Analyzing body proportions...\": \"Анализ пропорций тела...\",\n \"Matching garment to your photo...\": \"Подгонка одежды к вашему фото...\",\n \"Generating virtual try-on...\": \"Создание виртуальной примерки...\",\n \"Refining details...\": \"Уточнение деталей...\",\n \"Almost there...\": \"Почти готово...\",\n \"Complete!\": \"Готово!\",\n \"This usually takes 15-25 seconds\": \"Обычно это занимает 15–25 секунд\",\n \"Something went wrong\": \"Что-то пошло не так\",\n \"Try Again\": \"Попробовать снова\",\n \"SDK not configured. Please provide an API key.\": \"SDK не настроен. Пожалуйста, укажите API-ключ.\",\n \"Please upload a JPEG, PNG, or WebP image.\": \"Загрузите изображение в формате JPEG, PNG или WebP.\",\n \"Image must be under 10MB.\": \"Изображение должно быть менее 10 МБ.\",\n \"Try-on generation failed\": \"Не удалось создать примерку\",\n \"Failed to start try-on\": \"Не удалось начать примерку\",\n \"No product image found. Please set the product-image attribute.\": \"Изображение товара не найдено. Установите атрибут product-image.\",\n \"Powered by\": \"Работает на\",\n \"My Profiles\": \"Мои профили\",\n \"History\": \"История\",\n \"No saved profiles yet.\": \"Нет сохранённых профилей.\",\n \"No history yet.\": \"Нет истории.\",\n \"Product\": \"Товар\",\n \"Women's\": \"Женский\",\n \"Men's\": \"Мужской\",\n \"Profiles\": \"Профили\",\n \"Women's Profile\": \"Женский профиль\",\n \"Men's Profile\": \"Мужской профиль\",\n \"Height\": \"Рост\",\n \"Weight\": \"Вес\",\n \"Chest\": \"Грудь\",\n \"Bust\": \"Бюст\",\n \"Waist\": \"Талия\",\n \"Hips\": \"Бёдра\",\n \"Shoulders\": \"Плечи\",\n \"Sleeve\": \"Рукав\",\n \"Inseam\": \"Шаговый шов\",\n \"Neck\": \"Шея\",\n \"Foot\": \"Стопа\",\n \"Shoe EU\": \"Обувь EU\",\n \"Shoe US\": \"Обувь US\",\n \"Shoe UK\": \"Обувь UK\",\n \"Saved\": \"Сохранено\",\n \"Delete Profile\": \"Удалить профиль\",\n \"Shoe size (US)\": \"Размер обуви (US)\",\n \"Shoe size (UK)\": \"Размер обуви (UK)\",\n \"Shoe size (EU)\": \"Размер обуви (EU)\",\n \"Generating...\": \"Создаём...\",\n \"Foot length\": \"Длина стопы\",\n \"Size\": \"Размер\",\n \"Try on size\": \"Примерить размер\",\n \"e.g.\": \"напр.\",\n \"Drop your photo here or click to upload\": \"Перетащите фото сюда или нажмите для загрузки\",\n \"This usually takes 15-20 seconds\": \"Обычно это занимает 15–20 секунд\",\n \"Try-on result\": \"Результат примерки\",\n \"Try Another\": \"Попробовать другое\",\n \"Back\": \"Назад\",\n \"You\": \"Вы\",\n \"Garment\": \"Одежда\",\n \"Your Height\": \"Ваш Рост\",\n \"Your Weight\": \"Ваш Вес\",\n \"Drag or scroll to set your height\": \"Перетащите или прокрутите для установки роста\",\n \"Drag or scroll to set your weight\": \"Перетащите или прокрутите для установки веса\",\n};\nexport default ru;\n","const ar: Record<string, string> = {\n \"Virtual Try-On\": \"تجربة افتراضية\",\n \"Find Your Size & See It On You\": \"اعثر على مقاسك وجرّبه\",\n \"Get the perfect fit, then try it on virtually\": \"اعثر على المقاس المثالي ثم جرّبه افتراضياً\",\n \"Get Your Size\": \"مقاسك\",\n \"Instant fit recommendation\": \"توصية فورية بالمقاس\",\n \"Try It On\": \"جرّبه\",\n \"See how it looks on you\": \"شاهد كيف يبدو عليك\",\n \"Find My Size\": \"اعثر على مقاسي\",\n \"Takes less than a minute\": \"يستغرق أقل من دقيقة\",\n \"Upload a full body photo\": \"ارفع صورة بالطول الكامل\",\n \"JPEG, PNG or WebP (max 10MB)\": \"JPEG أو PNG أو WebP (الحد الأقصى 10 ميجابايت)\",\n \"Your photo\": \"صورتك\",\n \"Let's find your best fit\": \"لنجد أفضل مقاس لك\",\n \"Centimeters\": \"سنتيمترات\",\n \"Inches\": \"بوصات\",\n \"Load saved profile...\": \"تحميل ملف محفوظ...\",\n \"HEIGHT\": \"الطول\",\n \"WEIGHT\": \"الوزن\",\n \"feet\": \"قدم\",\n \"inches\": \"بوصة\",\n \"cm\": \"سم\",\n \"kg\": \"كغ\",\n \"lbs\": \"رطل\",\n \"in\": \"بوصة\",\n \"How to measure\": \"كيفية القياس\",\n \"Hide guide\": \"إخفاء الدليل\",\n \"I know my measurements\": \"أعرف قياساتي\",\n \"Not sure? Use height & weight instead\": \"غير متأكد؟ استخدم الطول والوزن\",\n \"Please fill in height and weight\": \"يرجى إدخال الطول والوزن\",\n \"Please fill in all required fields\": \"يرجى ملء جميع الحقول المطلوبة\",\n \"Next\": \"التالي\",\n \"Analyzing your size...\": \"جارٍ تحليل مقاسك...\",\n \"RECOMMENDED SIZE\": \"المقاس الموصى به\",\n \"NOT RECOMMENDED\": \"غير موصى به\",\n \"Edit measurements\": \"تعديل القياسات\",\n \"Size guide\": \"دليل المقاسات\",\n \"Your fit\": \"ملاءمتك\",\n \"Your measure\": \"قياسك\",\n \"perfect fit\": \"مقاس مثالي\",\n \"too tight\": \"ضيق جداً\",\n \"tight\": \"ضيق\",\n \"a bit tight\": \"ضيق قليلاً\",\n \"too loose\": \"واسع جداً\",\n \"loose\": \"واسع\",\n \"a bit loose\": \"واسع قليلاً\",\n \"See fit on your photo\": \"شاهد الملاءمة على صورتك\",\n \"Hide visual fit\": \"إخفاء عرض الملاءمة\",\n \"Analyzing...\": \"جارٍ التحليل...\",\n \"Try it on\": \"جرّبه\",\n \"SIZE CHART\": \"جدول المقاسات\",\n \"YOUR ESTIMATED MEASUREMENTS\": \"قياساتك التقديرية\",\n \"Edit\": \"تعديل\",\n \"Download\": \"تحميل\",\n \"Size chart\": \"جدول المقاسات\",\n \"Preparing your image...\": \"جارٍ تحضير صورتك...\",\n \"Analyzing body proportions...\": \"جارٍ تحليل نسب الجسم...\",\n \"Matching garment to your photo...\": \"جارٍ مطابقة الملابس مع صورتك...\",\n \"Generating virtual try-on...\": \"جارٍ إنشاء التجربة الافتراضية...\",\n \"Refining details...\": \"جارٍ تحسين التفاصيل...\",\n \"Almost there...\": \"أوشكنا على الانتهاء...\",\n \"Complete!\": \"تم!\",\n \"This usually takes 15-25 seconds\": \"عادة ما يستغرق 15-25 ثانية\",\n \"Something went wrong\": \"حدث خطأ ما\",\n \"Try Again\": \"حاول مرة أخرى\",\n \"SDK not configured. Please provide an API key.\": \"SDK غير مُهيأ. يرجى تقديم مفتاح API.\",\n \"Please upload a JPEG, PNG, or WebP image.\": \"يرجى رفع صورة بصيغة JPEG أو PNG أو WebP.\",\n \"Image must be under 10MB.\": \"يجب أن تكون الصورة أقل من 10 ميجابايت.\",\n \"Try-on generation failed\": \"فشل إنشاء التجربة\",\n \"Failed to start try-on\": \"فشل بدء التجربة\",\n \"No product image found. Please set the product-image attribute.\": \"لم يتم العثور على صورة المنتج. يرجى تعيين خاصية product-image.\",\n \"Powered by\": \"مدعوم من\",\n \"My Profiles\": \"ملفاتي الشخصية\",\n \"History\": \"السجل\",\n \"No saved profiles yet.\": \"لا توجد ملفات محفوظة بعد.\",\n \"No history yet.\": \"لا يوجد سجل بعد.\",\n \"Product\": \"المنتج\",\n \"Women's\": \"نسائي\",\n \"Men's\": \"رجالي\",\n \"Profiles\": \"الملفات الشخصية\",\n \"Women's Profile\": \"ملف نسائي\",\n \"Men's Profile\": \"ملف رجالي\",\n \"Height\": \"الطول\",\n \"Weight\": \"الوزن\",\n \"Chest\": \"الصدر\",\n \"Bust\": \"محيط الصدر\",\n \"Waist\": \"الخصر\",\n \"Hips\": \"الأرداف\",\n \"Shoulders\": \"الأكتاف\",\n \"Sleeve\": \"الكم\",\n \"Inseam\": \"طول الساق الداخلي\",\n \"Neck\": \"الرقبة\",\n \"Foot\": \"القدم\",\n \"Shoe EU\": \"حذاء EU\",\n \"Shoe US\": \"حذاء US\",\n \"Shoe UK\": \"حذاء UK\",\n \"Saved\": \"تم الحفظ\",\n \"Delete Profile\": \"حذف الملف الشخصي\",\n \"Shoe size (US)\": \"مقاس الحذاء (US)\",\n \"Shoe size (UK)\": \"مقاس الحذاء (UK)\",\n \"Shoe size (EU)\": \"مقاس الحذاء (EU)\",\n \"Generating...\": \"جارٍ الإنشاء...\",\n \"Foot length\": \"طول القدم\",\n \"Size\": \"المقاس\",\n \"Try on size\": \"تجربة المقاس\",\n \"e.g.\": \"مثال\",\n \"Drop your photo here or click to upload\": \"اسحب صورتك هنا أو انقر للتحميل\",\n \"This usually takes 15-20 seconds\": \"عادة ما يستغرق 15-20 ثانية\",\n \"Try-on result\": \"نتيجة التجربة\",\n \"Try Another\": \"جرّب صورة أخرى\",\n \"Back\": \"رجوع\",\n \"You\": \"أنت\",\n \"Garment\": \"الملابس\",\n \"Your Height\": \"طولك\",\n \"Your Weight\": \"وزنك\",\n \"Drag or scroll to set your height\": \"اسحب أو مرر لتعيين طولك\",\n \"Drag or scroll to set your weight\": \"اسحب أو مرر لتعيين وزنك\",\n};\nexport default ar;\n","const tr: Record<string, string> = {\n \"Virtual Try-On\": \"Sanal Deneme\",\n \"Find Your Size & See It On You\": \"Bedenini bul ve üzerinde gör\",\n \"Get the perfect fit, then try it on virtually\": \"Mükemmel kalıbı bul, sonra sanal olarak dene\",\n \"Get Your Size\": \"Bedenin\",\n \"Instant fit recommendation\": \"Anında kalıp önerisi\",\n \"Try It On\": \"Dene\",\n \"See how it looks on you\": \"Üzerinde nasıl göründüğünü gör\",\n \"Find My Size\": \"Bedenimi bul\",\n \"Takes less than a minute\": \"Bir dakikadan az sürer\",\n \"Upload a full body photo\": \"Tam boy fotoğraf yükle\",\n \"JPEG, PNG or WebP (max 10MB)\": \"JPEG, PNG veya WebP (maks. 10MB)\",\n \"Your photo\": \"Fotoğrafın\",\n \"Let's find your best fit\": \"En iyi kalıbını bulalım\",\n \"Centimeters\": \"Santimetre\",\n \"Inches\": \"İnç\",\n \"Load saved profile...\": \"Kayıtlı profili yükle...\",\n \"HEIGHT\": \"BOY\",\n \"WEIGHT\": \"KİLO\",\n \"feet\": \"fit\",\n \"inches\": \"inç\",\n \"cm\": \"cm\",\n \"kg\": \"kg\",\n \"lbs\": \"libre\",\n \"in\": \"inç\",\n \"How to measure\": \"Nasıl ölçülür\",\n \"Hide guide\": \"Kılavuzu gizle\",\n \"I know my measurements\": \"Ölçülerimi biliyorum\",\n \"Not sure? Use height & weight instead\": \"Emin değil misin? Boy ve kilo kullan\",\n \"Please fill in height and weight\": \"Lütfen boy ve kiloyu girin\",\n \"Please fill in all required fields\": \"Lütfen tüm zorunlu alanları doldurun\",\n \"Next\": \"İleri\",\n \"Analyzing your size...\": \"Bedenin analiz ediliyor...\",\n \"RECOMMENDED SIZE\": \"ÖNERİLEN BEDEN\",\n \"NOT RECOMMENDED\": \"ÖNERİLMİYOR\",\n \"Edit measurements\": \"Ölçüleri düzenle\",\n \"Size guide\": \"Beden kılavuzu\",\n \"Your fit\": \"Kalıbın\",\n \"Your measure\": \"Ölçün\",\n \"perfect fit\": \"mükemmel kalıp\",\n \"too tight\": \"çok dar\",\n \"tight\": \"dar\",\n \"a bit tight\": \"biraz dar\",\n \"too loose\": \"çok bol\",\n \"loose\": \"bol\",\n \"a bit loose\": \"biraz bol\",\n \"See fit on your photo\": \"Fotoğrafında kalıbı gör\",\n \"Hide visual fit\": \"Görsel kalıbı gizle\",\n \"Analyzing...\": \"Analiz ediliyor...\",\n \"Try it on\": \"Dene\",\n \"SIZE CHART\": \"BEDEN TABLOSU\",\n \"YOUR ESTIMATED MEASUREMENTS\": \"TAHMİNİ ÖLÇÜLERİN\",\n \"Edit\": \"Düzenle\",\n \"Download\": \"İndir\",\n \"Size chart\": \"Beden tablosu\",\n \"Preparing your image...\": \"Görüntün hazırlanıyor...\",\n \"Analyzing body proportions...\": \"Vücut oranları analiz ediliyor...\",\n \"Matching garment to your photo...\": \"Giysi fotoğrafına uyarlanıyor...\",\n \"Generating virtual try-on...\": \"Sanal deneme oluşturuluyor...\",\n \"Refining details...\": \"Detaylar iyileştiriliyor...\",\n \"Almost there...\": \"Neredeyse bitti...\",\n \"Complete!\": \"Tamamlandı!\",\n \"This usually takes 15-25 seconds\": \"Bu genellikle 15-25 saniye sürer\",\n \"Something went wrong\": \"Bir hata oluştu\",\n \"Try Again\": \"Tekrar dene\",\n \"SDK not configured. Please provide an API key.\": \"SDK yapılandırılmadı. Lütfen bir API anahtarı girin.\",\n \"Please upload a JPEG, PNG, or WebP image.\": \"Lütfen JPEG, PNG veya WebP görüntü yükleyin.\",\n \"Image must be under 10MB.\": \"Görüntü 10MB'den küçük olmalıdır.\",\n \"Try-on generation failed\": \"Deneme oluşturma başarısız\",\n \"Failed to start try-on\": \"Deneme başlatılamadı\",\n \"No product image found. Please set the product-image attribute.\": \"Ürün görseli bulunamadı. product-image özniteliğini ayarlayın.\",\n \"Powered by\": \"Destekleyen\",\n \"My Profiles\": \"Profillerim\",\n \"History\": \"Geçmiş\",\n \"No saved profiles yet.\": \"Henüz kayıtlı profil yok.\",\n \"No history yet.\": \"Henüz geçmiş yok.\",\n \"Product\": \"Ürün\",\n \"Women's\": \"Kadın\",\n \"Men's\": \"Erkek\",\n \"Profiles\": \"Profiller\",\n \"Women's Profile\": \"Kadın Profili\",\n \"Men's Profile\": \"Erkek Profili\",\n \"Height\": \"Boy\",\n \"Weight\": \"Kilo\",\n \"Chest\": \"Göğüs\",\n \"Bust\": \"Göğüs\",\n \"Waist\": \"Bel\",\n \"Hips\": \"Kalça\",\n \"Shoulders\": \"Omuz\",\n \"Sleeve\": \"Kol\",\n \"Inseam\": \"İç bacak\",\n \"Neck\": \"Boyun\",\n \"Foot\": \"Ayak\",\n \"Shoe EU\": \"Ayakkabı EU\",\n \"Shoe US\": \"Ayakkabı US\",\n \"Shoe UK\": \"Ayakkabı UK\",\n \"Saved\": \"Kaydedildi\",\n \"Delete Profile\": \"Profili Sil\",\n \"Shoe size (US)\": \"Ayakkabı numarası (US)\",\n \"Shoe size (UK)\": \"Ayakkabı numarası (UK)\",\n \"Shoe size (EU)\": \"Ayakkabı numarası (EU)\",\n \"Generating...\": \"Oluşturuluyor...\",\n \"Foot length\": \"Ayak uzunluğu\",\n \"Size\": \"Beden\",\n \"Try on size\": \"Bedeni dene\",\n \"e.g.\": \"örn.\",\n \"Drop your photo here or click to upload\": \"Fotoğrafını buraya bırak veya yüklemek için tıkla\",\n \"This usually takes 15-20 seconds\": \"Bu genellikle 15-20 saniye sürer\",\n \"Try-on result\": \"Deneme sonucu\",\n \"Try Another\": \"Başka dene\",\n \"Back\": \"Geri\",\n \"You\": \"Sen\",\n \"Garment\": \"Giysi\",\n \"Your Height\": \"Boyun\",\n \"Your Weight\": \"Kilon\",\n \"Drag or scroll to set your height\": \"Boyunuzu ayarlamak için sürükleyin veya kaydırın\",\n \"Drag or scroll to set your weight\": \"Kilonuzu ayarlamak için sürükleyin veya kaydırın\",\n};\nexport default tr;\n","const pl: Record<string, string> = {\n \"Virtual Try-On\": \"Wirtualna Przymierzalnia\",\n \"Find Your Size & See It On You\": \"Znajdź swój rozmiar i przymierz\",\n \"Get the perfect fit, then try it on virtually\": \"Znajdź idealny krój i przymierz wirtualnie\",\n \"Get Your Size\": \"Twój rozmiar\",\n \"Instant fit recommendation\": \"Natychmiastowa rekomendacja kroju\",\n \"Try It On\": \"Przymierz\",\n \"See how it looks on you\": \"Zobacz, jak na Tobie wygląda\",\n \"Find My Size\": \"Znajdź mój rozmiar\",\n \"Takes less than a minute\": \"Zajmuje mniej niż minutę\",\n \"Upload a full body photo\": \"Prześlij zdjęcie całej sylwetki\",\n \"JPEG, PNG or WebP (max 10MB)\": \"JPEG, PNG lub WebP (maks. 10MB)\",\n \"Your photo\": \"Twoje zdjęcie\",\n \"Let's find your best fit\": \"Znajdźmy Twój najlepszy krój\",\n \"Centimeters\": \"Centymetry\",\n \"Inches\": \"Cale\",\n \"Load saved profile...\": \"Załaduj zapisany profil...\",\n \"HEIGHT\": \"WZROST\",\n \"WEIGHT\": \"WAGA\",\n \"feet\": \"stopy\",\n \"inches\": \"cale\",\n \"cm\": \"cm\",\n \"kg\": \"kg\",\n \"lbs\": \"funty\",\n \"in\": \"cal\",\n \"How to measure\": \"Jak mierzyć\",\n \"Hide guide\": \"Ukryj poradnik\",\n \"I know my measurements\": \"Znam swoje wymiary\",\n \"Not sure? Use height & weight instead\": \"Nie wiesz? Użyj wzrostu i wagi\",\n \"Please fill in height and weight\": \"Proszę podać wzrost i wagę\",\n \"Please fill in all required fields\": \"Proszę wypełnić wszystkie wymagane pola\",\n \"Next\": \"Dalej\",\n \"Analyzing your size...\": \"Analizowanie Twojego rozmiaru...\",\n \"RECOMMENDED SIZE\": \"ZALECANY ROZMIAR\",\n \"NOT RECOMMENDED\": \"NIEZALECANY\",\n \"Edit measurements\": \"Edytuj wymiary\",\n \"Size guide\": \"Tabela rozmiarów\",\n \"Your fit\": \"Twój krój\",\n \"Your measure\": \"Twój wymiar\",\n \"perfect fit\": \"idealny krój\",\n \"too tight\": \"za ciasne\",\n \"tight\": \"ciasne\",\n \"a bit tight\": \"trochę ciasne\",\n \"too loose\": \"za luźne\",\n \"loose\": \"luźne\",\n \"a bit loose\": \"trochę luźne\",\n \"See fit on your photo\": \"Zobacz krój na swoim zdjęciu\",\n \"Hide visual fit\": \"Ukryj wizualizację kroju\",\n \"Analyzing...\": \"Analizowanie...\",\n \"Try it on\": \"Przymierz\",\n \"SIZE CHART\": \"TABELA ROZMIARÓW\",\n \"YOUR ESTIMATED MEASUREMENTS\": \"TWOJE SZACUNKOWE WYMIARY\",\n \"Edit\": \"Edytuj\",\n \"Download\": \"Pobierz\",\n \"Size chart\": \"Tabela rozmiarów\",\n \"Preparing your image...\": \"Przygotowywanie zdjęcia...\",\n \"Analyzing body proportions...\": \"Analizowanie proporcji ciała...\",\n \"Matching garment to your photo...\": \"Dopasowywanie ubrania do zdjęcia...\",\n \"Generating virtual try-on...\": \"Generowanie wirtualnej przymiarki...\",\n \"Refining details...\": \"Dopracowywanie szczegółów...\",\n \"Almost there...\": \"Prawie gotowe...\",\n \"Complete!\": \"Gotowe!\",\n \"This usually takes 15-25 seconds\": \"To zwykle trwa 15–25 sekund\",\n \"Something went wrong\": \"Coś poszło nie tak\",\n \"Try Again\": \"Spróbuj ponownie\",\n \"SDK not configured. Please provide an API key.\": \"SDK nie skonfigurowane. Podaj klucz API.\",\n \"Please upload a JPEG, PNG, or WebP image.\": \"Prześlij obraz JPEG, PNG lub WebP.\",\n \"Image must be under 10MB.\": \"Obraz musi być mniejszy niż 10MB.\",\n \"Try-on generation failed\": \"Generowanie przymiarki nie powiodło się\",\n \"Failed to start try-on\": \"Nie udało się rozpocząć przymiarki\",\n \"No product image found. Please set the product-image attribute.\": \"Nie znaleziono zdjęcia produktu. Ustaw atrybut product-image.\",\n \"Powered by\": \"Obsługiwane przez\",\n \"My Profiles\": \"Moje Profile\",\n \"History\": \"Historia\",\n \"No saved profiles yet.\": \"Brak zapisanych profili.\",\n \"No history yet.\": \"Brak historii.\",\n \"Product\": \"Produkt\",\n \"Women's\": \"Damskie\",\n \"Men's\": \"Męskie\",\n \"Profiles\": \"Profile\",\n \"Women's Profile\": \"Profil Damski\",\n \"Men's Profile\": \"Profil Męski\",\n \"Height\": \"Wzrost\",\n \"Weight\": \"Waga\",\n \"Chest\": \"Klatka piersiowa\",\n \"Bust\": \"Biust\",\n \"Waist\": \"Talia\",\n \"Hips\": \"Biodra\",\n \"Shoulders\": \"Ramiona\",\n \"Sleeve\": \"Rękaw\",\n \"Inseam\": \"Długość wewnętrzna\",\n \"Neck\": \"Szyja\",\n \"Foot\": \"Stopa\",\n \"Shoe EU\": \"But EU\",\n \"Shoe US\": \"But US\",\n \"Shoe UK\": \"But UK\",\n \"Saved\": \"Zapisano\",\n \"Delete Profile\": \"Usuń Profil\",\n \"Shoe size (US)\": \"Rozmiar buta (US)\",\n \"Shoe size (UK)\": \"Rozmiar buta (UK)\",\n \"Shoe size (EU)\": \"Rozmiar buta (EU)\",\n \"Generating...\": \"Generowanie...\",\n \"Foot length\": \"Długość stopy\",\n \"Size\": \"Rozmiar\",\n \"Try on size\": \"Przymierz rozmiar\",\n \"e.g.\": \"np.\",\n \"Drop your photo here or click to upload\": \"Przeciągnij zdjęcie tutaj lub kliknij, aby przesłać\",\n \"This usually takes 15-20 seconds\": \"To zwykle trwa 15–20 sekund\",\n \"Try-on result\": \"Wynik przymiarki\",\n \"Try Another\": \"Spróbuj inną\",\n \"Back\": \"Wstecz\",\n \"You\": \"Ty\",\n \"Garment\": \"Odzież\",\n \"Your Height\": \"Twój Wzrost\",\n \"Your Weight\": \"Twoja Waga\",\n \"Drag or scroll to set your height\": \"Przeciągnij lub przewiń, aby ustawić wzrost\",\n \"Drag or scroll to set your weight\": \"Przeciągnij lub przewiń, aby ustawić wagę\",\n};\nexport default pl;\n","const sv: Record<string, string> = {\n \"Virtual Try-On\": \"Virtuell Provning\",\n \"Find Your Size & See It On You\": \"Hitta din storlek och prova\",\n \"Get the perfect fit, then try it on virtually\": \"Hitta den perfekta passformen och prova virtuellt\",\n \"Get Your Size\": \"Din storlek\",\n \"Instant fit recommendation\": \"Omedelbar passformsrekommendation\",\n \"Try It On\": \"Prova\",\n \"See how it looks on you\": \"Se hur det ser ut på dig\",\n \"Find My Size\": \"Hitta min storlek\",\n \"Takes less than a minute\": \"Tar mindre än en minut\",\n \"Upload a full body photo\": \"Ladda upp ett helkroppsfoto\",\n \"JPEG, PNG or WebP (max 10MB)\": \"JPEG, PNG eller WebP (max 10MB)\",\n \"Your photo\": \"Ditt foto\",\n \"Let's find your best fit\": \"Låt oss hitta din bästa passform\",\n \"Centimeters\": \"Centimeter\",\n \"Inches\": \"Tum\",\n \"Load saved profile...\": \"Ladda sparad profil...\",\n \"HEIGHT\": \"LÄNGD\",\n \"WEIGHT\": \"VIKT\",\n \"feet\": \"fot\",\n \"inches\": \"tum\",\n \"cm\": \"cm\",\n \"kg\": \"kg\",\n \"lbs\": \"pund\",\n \"in\": \"tum\",\n \"How to measure\": \"Hur man mäter\",\n \"Hide guide\": \"Dölj guide\",\n \"I know my measurements\": \"Jag vet mina mått\",\n \"Not sure? Use height & weight instead\": \"Osäker? Använd längd och vikt\",\n \"Please fill in height and weight\": \"Vänligen fyll i längd och vikt\",\n \"Please fill in all required fields\": \"Vänligen fyll i alla obligatoriska fält\",\n \"Next\": \"Nästa\",\n \"Analyzing your size...\": \"Analyserar din storlek...\",\n \"RECOMMENDED SIZE\": \"REKOMMENDERAD STORLEK\",\n \"NOT RECOMMENDED\": \"EJ REKOMMENDERAD\",\n \"Edit measurements\": \"Redigera mått\",\n \"Size guide\": \"Storleksguide\",\n \"Your fit\": \"Din passform\",\n \"Your measure\": \"Ditt mått\",\n \"perfect fit\": \"perfekt passform\",\n \"too tight\": \"för tight\",\n \"tight\": \"tight\",\n \"a bit tight\": \"lite tight\",\n \"too loose\": \"för lös\",\n \"loose\": \"lös\",\n \"a bit loose\": \"lite lös\",\n \"See fit on your photo\": \"Se passform på ditt foto\",\n \"Hide visual fit\": \"Dölj visuell passform\",\n \"Analyzing...\": \"Analyserar...\",\n \"Try it on\": \"Prova\",\n \"SIZE CHART\": \"STORLEKSTABELL\",\n \"YOUR ESTIMATED MEASUREMENTS\": \"DINA UPPSKATTADE MÅTT\",\n \"Edit\": \"Redigera\",\n \"Download\": \"Ladda ner\",\n \"Size chart\": \"Storlekstabell\",\n \"Preparing your image...\": \"Förbereder din bild...\",\n \"Analyzing body proportions...\": \"Analyserar kroppsproportioner...\",\n \"Matching garment to your photo...\": \"Anpassar plagg till ditt foto...\",\n \"Generating virtual try-on...\": \"Skapar virtuell provning...\",\n \"Refining details...\": \"Förfinar detaljer...\",\n \"Almost there...\": \"Nästan klart...\",\n \"Complete!\": \"Klart!\",\n \"This usually takes 15-25 seconds\": \"Det tar vanligtvis 15–25 sekunder\",\n \"Something went wrong\": \"Något gick fel\",\n \"Try Again\": \"Försök igen\",\n \"SDK not configured. Please provide an API key.\": \"SDK ej konfigurerat. Ange en API-nyckel.\",\n \"Please upload a JPEG, PNG, or WebP image.\": \"Ladda upp en JPEG-, PNG- eller WebP-bild.\",\n \"Image must be under 10MB.\": \"Bilden måste vara under 10MB.\",\n \"Try-on generation failed\": \"Provningsgenerering misslyckades\",\n \"Failed to start try-on\": \"Kunde inte starta provning\",\n \"No product image found. Please set the product-image attribute.\": \"Ingen produktbild hittades. Ange product-image attributet.\",\n \"Powered by\": \"Drivs av\",\n \"My Profiles\": \"Mina Profiler\",\n \"History\": \"Historik\",\n \"No saved profiles yet.\": \"Inga sparade profiler än.\",\n \"No history yet.\": \"Ingen historik än.\",\n \"Product\": \"Produkt\",\n \"Women's\": \"Dam\",\n \"Men's\": \"Herr\",\n \"Profiles\": \"Profiler\",\n \"Women's Profile\": \"Damprofil\",\n \"Men's Profile\": \"Herrprofil\",\n \"Height\": \"Längd\",\n \"Weight\": \"Vikt\",\n \"Chest\": \"Bröst\",\n \"Bust\": \"Byst\",\n \"Waist\": \"Midja\",\n \"Hips\": \"Höfter\",\n \"Shoulders\": \"Axlar\",\n \"Sleeve\": \"Ärm\",\n \"Inseam\": \"Innerbensläng\",\n \"Neck\": \"Hals\",\n \"Foot\": \"Fot\",\n \"Shoe EU\": \"Sko EU\",\n \"Shoe US\": \"Sko US\",\n \"Shoe UK\": \"Sko UK\",\n \"Saved\": \"Sparad\",\n \"Delete Profile\": \"Radera Profil\",\n \"Shoe size (US)\": \"Skostorlek (US)\",\n \"Shoe size (UK)\": \"Skostorlek (UK)\",\n \"Shoe size (EU)\": \"Skostorlek (EU)\",\n \"Generating...\": \"Skapar...\",\n \"Foot length\": \"Fotlängd\",\n \"Size\": \"Storlek\",\n \"Try on size\": \"Prova storlek\",\n \"e.g.\": \"t.ex.\",\n \"Drop your photo here or click to upload\": \"Släpp ditt foto här eller klicka för att ladda upp\",\n \"This usually takes 15-20 seconds\": \"Det tar vanligtvis 15–20 sekunder\",\n \"Try-on result\": \"Provningsresultat\",\n \"Try Another\": \"Prova en annan\",\n \"Back\": \"Tillbaka\",\n \"You\": \"Du\",\n \"Garment\": \"Plagg\",\n \"Your Height\": \"Din Längd\",\n \"Your Weight\": \"Din Vikt\",\n \"Drag or scroll to set your height\": \"Dra eller scrolla för att ställa in din längd\",\n \"Drag or scroll to set your weight\": \"Dra eller scrolla för att ställa in din vikt\",\n};\nexport default sv;\n","const da: Record<string, string> = {\n \"Virtual Try-On\": \"Virtuel Prøvning\",\n \"Find Your Size & See It On You\": \"Find din størrelse og prøv det\",\n \"Get the perfect fit, then try it on virtually\": \"Find den perfekte pasform og prøv det virtuelt\",\n \"Get Your Size\": \"Din størrelse\",\n \"Instant fit recommendation\": \"Øjeblikkelig pasformsanbefaling\",\n \"Try It On\": \"Prøv det\",\n \"See how it looks on you\": \"Se hvordan det ser ud på dig\",\n \"Find My Size\": \"Find min størrelse\",\n \"Takes less than a minute\": \"Tager mindre end et minut\",\n \"Upload a full body photo\": \"Upload et helfoto\",\n \"JPEG, PNG or WebP (max 10MB)\": \"JPEG, PNG eller WebP (maks 10MB)\",\n \"Your photo\": \"Dit foto\",\n \"Let's find your best fit\": \"Lad os finde din bedste pasform\",\n \"Centimeters\": \"Centimeter\",\n \"Inches\": \"Tommer\",\n \"Load saved profile...\": \"Indlæs gemt profil...\",\n \"HEIGHT\": \"HØJDE\",\n \"WEIGHT\": \"VÆGT\",\n \"feet\": \"fod\",\n \"inches\": \"tommer\",\n \"cm\": \"cm\",\n \"kg\": \"kg\",\n \"lbs\": \"pund\",\n \"in\": \"tommer\",\n \"How to measure\": \"Sådan måler du\",\n \"Hide guide\": \"Skjul guide\",\n \"I know my measurements\": \"Jeg kender mine mål\",\n \"Not sure? Use height & weight instead\": \"Usikker? Brug højde og vægt\",\n \"Please fill in height and weight\": \"Udfyld venligst højde og vægt\",\n \"Please fill in all required fields\": \"Udfyld venligst alle påkrævede felter\",\n \"Next\": \"Næste\",\n \"Analyzing your size...\": \"Analyserer din størrelse...\",\n \"RECOMMENDED SIZE\": \"ANBEFALET STØRRELSE\",\n \"NOT RECOMMENDED\": \"IKKE ANBEFALET\",\n \"Edit measurements\": \"Rediger mål\",\n \"Size guide\": \"Størrelsesguide\",\n \"Your fit\": \"Din pasform\",\n \"Your measure\": \"Dit mål\",\n \"perfect fit\": \"perfekt pasform\",\n \"too tight\": \"for stram\",\n \"tight\": \"stram\",\n \"a bit tight\": \"lidt stram\",\n \"too loose\": \"for løs\",\n \"loose\": \"løs\",\n \"a bit loose\": \"lidt løs\",\n \"See fit on your photo\": \"Se pasform på dit foto\",\n \"Hide visual fit\": \"Skjul visuel pasform\",\n \"Analyzing...\": \"Analyserer...\",\n \"Try it on\": \"Prøv det\",\n \"SIZE CHART\": \"STØRRELSESSKEMA\",\n \"YOUR ESTIMATED MEASUREMENTS\": \"DINE ANSLÅEDE MÅL\",\n \"Edit\": \"Rediger\",\n \"Download\": \"Download\",\n \"Size chart\": \"Størrelsesskema\",\n \"Preparing your image...\": \"Forbereder dit billede...\",\n \"Analyzing body proportions...\": \"Analyserer kropsforhold...\",\n \"Matching garment to your photo...\": \"Tilpasser tøj til dit foto...\",\n \"Generating virtual try-on...\": \"Genererer virtuel prøvning...\",\n \"Refining details...\": \"Forfiner detaljer...\",\n \"Almost there...\": \"Næsten færdig...\",\n \"Complete!\": \"Færdig!\",\n \"This usually takes 15-25 seconds\": \"Dette tager normalt 15-25 sekunder\",\n \"Something went wrong\": \"Noget gik galt\",\n \"Try Again\": \"Prøv igen\",\n \"SDK not configured. Please provide an API key.\": \"SDK ikke konfigureret. Angiv venligst en API-nøgle.\",\n \"Please upload a JPEG, PNG, or WebP image.\": \"Upload venligst et JPEG-, PNG- eller WebP-billede.\",\n \"Image must be under 10MB.\": \"Billedet skal være under 10MB.\",\n \"Try-on generation failed\": \"Prøvningsgenerering mislykkedes\",\n \"Failed to start try-on\": \"Kunne ikke starte prøvning\",\n \"No product image found. Please set the product-image attribute.\": \"Intet produktbillede fundet. Indstil product-image attributten.\",\n \"Powered by\": \"Drevet af\",\n \"My Profiles\": \"Mine Profiler\",\n \"History\": \"Historik\",\n \"No saved profiles yet.\": \"Ingen gemte profiler endnu.\",\n \"No history yet.\": \"Ingen historik endnu.\",\n \"Product\": \"Produkt\",\n \"Women's\": \"Dame\",\n \"Men's\": \"Herre\",\n \"Profiles\": \"Profiler\",\n \"Women's Profile\": \"Dameprofil\",\n \"Men's Profile\": \"Herreprofil\",\n \"Height\": \"Højde\",\n \"Weight\": \"Vægt\",\n \"Chest\": \"Bryst\",\n \"Bust\": \"Buste\",\n \"Waist\": \"Talje\",\n \"Hips\": \"Hofter\",\n \"Shoulders\": \"Skuldre\",\n \"Sleeve\": \"Ærme\",\n \"Inseam\": \"Indvendig benlængde\",\n \"Neck\": \"Hals\",\n \"Foot\": \"Fod\",\n \"Shoe EU\": \"Sko EU\",\n \"Shoe US\": \"Sko US\",\n \"Shoe UK\": \"Sko UK\",\n \"Saved\": \"Gemt\",\n \"Delete Profile\": \"Slet Profil\",\n \"Shoe size (US)\": \"Skostørrelse (US)\",\n \"Shoe size (UK)\": \"Skostørrelse (UK)\",\n \"Shoe size (EU)\": \"Skostørrelse (EU)\",\n \"Generating...\": \"Genererer...\",\n \"Foot length\": \"Fodlængde\",\n \"Size\": \"Størrelse\",\n \"Try on size\": \"Prøv størrelse\",\n \"e.g.\": \"f.eks.\",\n \"Drop your photo here or click to upload\": \"Slip dit foto her eller klik for at uploade\",\n \"This usually takes 15-20 seconds\": \"Dette tager normalt 15-20 sekunder\",\n \"Try-on result\": \"Prøvningsresultat\",\n \"Try Another\": \"Prøv en anden\",\n \"Back\": \"Tilbage\",\n \"You\": \"Dig\",\n \"Garment\": \"Beklædning\",\n \"Your Height\": \"Din Højde\",\n \"Your Weight\": \"Din Vægt\",\n \"Drag or scroll to set your height\": \"Træk eller scroll for at indstille din højde\",\n \"Drag or scroll to set your weight\": \"Træk eller scroll for at indstille din vægt\",\n};\nexport default da;\n","const nb: Record<string, string> = {\n \"Virtual Try-On\": \"Virtuell Prøving\",\n \"Find Your Size & See It On You\": \"Finn størrelsen din og prøv det\",\n \"Get the perfect fit, then try it on virtually\": \"Finn den perfekte passformen og prøv det virtuelt\",\n \"Get Your Size\": \"Din størrelse\",\n \"Instant fit recommendation\": \"Umiddelbar passformanbefaling\",\n \"Try It On\": \"Prøv det\",\n \"See how it looks on you\": \"Se hvordan det ser ut på deg\",\n \"Find My Size\": \"Finn min størrelse\",\n \"Takes less than a minute\": \"Tar mindre enn et minutt\",\n \"Upload a full body photo\": \"Last opp et helkroppsbilde\",\n \"JPEG, PNG or WebP (max 10MB)\": \"JPEG, PNG eller WebP (maks 10MB)\",\n \"Your photo\": \"Ditt bilde\",\n \"Let's find your best fit\": \"La oss finne din beste passform\",\n \"Centimeters\": \"Centimeter\",\n \"Inches\": \"Tommer\",\n \"Load saved profile...\": \"Last inn lagret profil...\",\n \"HEIGHT\": \"HØYDE\",\n \"WEIGHT\": \"VEKT\",\n \"feet\": \"fot\",\n \"inches\": \"tommer\",\n \"cm\": \"cm\",\n \"kg\": \"kg\",\n \"lbs\": \"pund\",\n \"in\": \"tommer\",\n \"How to measure\": \"Slik måler du\",\n \"Hide guide\": \"Skjul veiledning\",\n \"I know my measurements\": \"Jeg kjenner målene mine\",\n \"Not sure? Use height & weight instead\": \"Usikker? Bruk høyde og vekt\",\n \"Please fill in height and weight\": \"Vennligst fyll inn høyde og vekt\",\n \"Please fill in all required fields\": \"Vennligst fyll ut alle obligatoriske felt\",\n \"Next\": \"Neste\",\n \"Analyzing your size...\": \"Analyserer størrelsen din...\",\n \"RECOMMENDED SIZE\": \"ANBEFALT STØRRELSE\",\n \"NOT RECOMMENDED\": \"IKKE ANBEFALT\",\n \"Edit measurements\": \"Rediger mål\",\n \"Size guide\": \"Størrelsesguide\",\n \"Your fit\": \"Din passform\",\n \"Your measure\": \"Ditt mål\",\n \"perfect fit\": \"perfekt passform\",\n \"too tight\": \"for trang\",\n \"tight\": \"trang\",\n \"a bit tight\": \"litt trang\",\n \"too loose\": \"for løs\",\n \"loose\": \"løs\",\n \"a bit loose\": \"litt løs\",\n \"See fit on your photo\": \"Se passform på bildet ditt\",\n \"Hide visual fit\": \"Skjul visuell passform\",\n \"Analyzing...\": \"Analyserer...\",\n \"Try it on\": \"Prøv det\",\n \"SIZE CHART\": \"STØRRELSESTABELL\",\n \"YOUR ESTIMATED MEASUREMENTS\": \"DINE ESTIMERTE MÅL\",\n \"Edit\": \"Rediger\",\n \"Download\": \"Last ned\",\n \"Size chart\": \"Størrelsestabell\",\n \"Preparing your image...\": \"Forbereder bildet ditt...\",\n \"Analyzing body proportions...\": \"Analyserer kroppsproportioner...\",\n \"Matching garment to your photo...\": \"Tilpasser plagg til bildet ditt...\",\n \"Generating virtual try-on...\": \"Genererer virtuell prøving...\",\n \"Refining details...\": \"Forfiner detaljer...\",\n \"Almost there...\": \"Nesten ferdig...\",\n \"Complete!\": \"Ferdig!\",\n \"This usually takes 15-25 seconds\": \"Dette tar vanligvis 15–25 sekunder\",\n \"Something went wrong\": \"Noe gikk galt\",\n \"Try Again\": \"Prøv igjen\",\n \"SDK not configured. Please provide an API key.\": \"SDK ikke konfigurert. Vennligst oppgi en API-nøkkel.\",\n \"Please upload a JPEG, PNG, or WebP image.\": \"Last opp et JPEG-, PNG- eller WebP-bilde.\",\n \"Image must be under 10MB.\": \"Bildet må være under 10MB.\",\n \"Try-on generation failed\": \"Prøvingsgenerering mislyktes\",\n \"Failed to start try-on\": \"Kunne ikke starte prøving\",\n \"No product image found. Please set the product-image attribute.\": \"Ingen produktbilde funnet. Sett product-image attributtet.\",\n \"Powered by\": \"Drevet av\",\n \"My Profiles\": \"Mine Profiler\",\n \"History\": \"Historikk\",\n \"No saved profiles yet.\": \"Ingen lagrede profiler ennå.\",\n \"No history yet.\": \"Ingen historikk ennå.\",\n \"Product\": \"Produkt\",\n \"Women's\": \"Dame\",\n \"Men's\": \"Herre\",\n \"Profiles\": \"Profiler\",\n \"Women's Profile\": \"Dameprofil\",\n \"Men's Profile\": \"Herreprofil\",\n \"Height\": \"Høyde\",\n \"Weight\": \"Vekt\",\n \"Chest\": \"Bryst\",\n \"Bust\": \"Byste\",\n \"Waist\": \"Midje\",\n \"Hips\": \"Hofter\",\n \"Shoulders\": \"Skuldre\",\n \"Sleeve\": \"Erme\",\n \"Inseam\": \"Innvendig benlengde\",\n \"Neck\": \"Nakke\",\n \"Foot\": \"Fot\",\n \"Shoe EU\": \"Sko EU\",\n \"Shoe US\": \"Sko US\",\n \"Shoe UK\": \"Sko UK\",\n \"Saved\": \"Lagret\",\n \"Delete Profile\": \"Slett Profil\",\n \"Shoe size (US)\": \"Skostørrelse (US)\",\n \"Shoe size (UK)\": \"Skostørrelse (UK)\",\n \"Shoe size (EU)\": \"Skostørrelse (EU)\",\n \"Generating...\": \"Genererer...\",\n \"Foot length\": \"Fotlengde\",\n \"Size\": \"Størrelse\",\n \"Try on size\": \"Prøv størrelse\",\n \"e.g.\": \"f.eks.\",\n \"Drop your photo here or click to upload\": \"Slipp bildet ditt her eller klikk for å laste opp\",\n \"This usually takes 15-20 seconds\": \"Dette tar vanligvis 15–20 sekunder\",\n \"Try-on result\": \"Prøvingsresultat\",\n \"Try Another\": \"Prøv en annen\",\n \"Back\": \"Tilbake\",\n \"You\": \"Deg\",\n \"Garment\": \"Plagg\",\n \"Your Height\": \"Din Høyde\",\n \"Your Weight\": \"Din Vekt\",\n \"Drag or scroll to set your height\": \"Dra eller scroll for å angi høyden din\",\n \"Drag or scroll to set your weight\": \"Dra eller scroll for å angi vekten din\",\n};\nexport default nb;\n","const fi: Record<string, string> = {\n \"Virtual Try-On\": \"Virtuaalinen Sovitus\",\n \"Find Your Size & See It On You\": \"Löydä kokosi ja sovita\",\n \"Get the perfect fit, then try it on virtually\": \"Löydä täydellinen istuvuus ja sovita virtuaalisesti\",\n \"Get Your Size\": \"Sinun kokosi\",\n \"Instant fit recommendation\": \"Välitön istuvuussuositus\",\n \"Try It On\": \"Sovita\",\n \"See how it looks on you\": \"Katso miltä se näyttää päälläsi\",\n \"Find My Size\": \"Etsi kokoni\",\n \"Takes less than a minute\": \"Vie alle minuutin\",\n \"Upload a full body photo\": \"Lataa kokovartalokuva\",\n \"JPEG, PNG or WebP (max 10MB)\": \"JPEG, PNG tai WebP (enintään 10 Mt)\",\n \"Your photo\": \"Valokuvasi\",\n \"Let's find your best fit\": \"Etsitään paras istuvuus\",\n \"Centimeters\": \"Senttimetrit\",\n \"Inches\": \"Tuumat\",\n \"Load saved profile...\": \"Lataa tallennettu profiili...\",\n \"HEIGHT\": \"PITUUS\",\n \"WEIGHT\": \"PAINO\",\n \"feet\": \"jalkaa\",\n \"inches\": \"tuumaa\",\n \"cm\": \"cm\",\n \"kg\": \"kg\",\n \"lbs\": \"paunaa\",\n \"in\": \"tuumaa\",\n \"How to measure\": \"Mittausohjeet\",\n \"Hide guide\": \"Piilota opas\",\n \"I know my measurements\": \"Tiedän mittani\",\n \"Not sure? Use height & weight instead\": \"Epävarma? Käytä pituutta ja painoa\",\n \"Please fill in height and weight\": \"Täytä pituus ja paino\",\n \"Please fill in all required fields\": \"Täytä kaikki pakolliset kentät\",\n \"Next\": \"Seuraava\",\n \"Analyzing your size...\": \"Analysoidaan kokoasi...\",\n \"RECOMMENDED SIZE\": \"SUOSITELTU KOKO\",\n \"NOT RECOMMENDED\": \"EI SUOSITELTU\",\n \"Edit measurements\": \"Muokkaa mittoja\",\n \"Size guide\": \"Kokotaulukko\",\n \"Your fit\": \"Istuvuutesi\",\n \"Your measure\": \"Mittasi\",\n \"perfect fit\": \"täydellinen istuvuus\",\n \"too tight\": \"liian tiukka\",\n \"tight\": \"tiukka\",\n \"a bit tight\": \"hieman tiukka\",\n \"too loose\": \"liian löysä\",\n \"loose\": \"löysä\",\n \"a bit loose\": \"hieman löysä\",\n \"See fit on your photo\": \"Näe istuvuus kuvassasi\",\n \"Hide visual fit\": \"Piilota visuaalinen istuvuus\",\n \"Analyzing...\": \"Analysoidaan...\",\n \"Try it on\": \"Sovita\",\n \"SIZE CHART\": \"KOKOTAULUKKO\",\n \"YOUR ESTIMATED MEASUREMENTS\": \"ARVIOIDUT MITTASI\",\n \"Edit\": \"Muokkaa\",\n \"Download\": \"Lataa\",\n \"Size chart\": \"Kokotaulukko\",\n \"Preparing your image...\": \"Valmistellaan kuvaasi...\",\n \"Analyzing body proportions...\": \"Analysoidaan vartalon mittasuhteita...\",\n \"Matching garment to your photo...\": \"Sovitetaan vaatetta kuvaasi...\",\n \"Generating virtual try-on...\": \"Luodaan virtuaalista sovitusta...\",\n \"Refining details...\": \"Hienosäädetään yksityiskohtia...\",\n \"Almost there...\": \"Melkein valmis...\",\n \"Complete!\": \"Valmis!\",\n \"This usually takes 15-25 seconds\": \"Tämä kestää yleensä 15–25 sekuntia\",\n \"Something went wrong\": \"Jokin meni pieleen\",\n \"Try Again\": \"Yritä uudelleen\",\n \"SDK not configured. Please provide an API key.\": \"SDK:ta ei ole määritetty. Anna API-avain.\",\n \"Please upload a JPEG, PNG, or WebP image.\": \"Lataa JPEG-, PNG- tai WebP-kuva.\",\n \"Image must be under 10MB.\": \"Kuvan on oltava alle 10 Mt.\",\n \"Try-on generation failed\": \"Sovituksen luonti epäonnistui\",\n \"Failed to start try-on\": \"Sovitusta ei voitu aloittaa\",\n \"No product image found. Please set the product-image attribute.\": \"Tuotekuvaa ei löytynyt. Aseta product-image-attribuutti.\",\n \"Powered by\": \"Powered by\",\n \"My Profiles\": \"Omat Profiilit\",\n \"History\": \"Historia\",\n \"No saved profiles yet.\": \"Ei tallennettuja profiileja.\",\n \"No history yet.\": \"Ei historiaa vielä.\",\n \"Product\": \"Tuote\",\n \"Women's\": \"Naisten\",\n \"Men's\": \"Miesten\",\n \"Profiles\": \"Profiilit\",\n \"Women's Profile\": \"Naisten Profiili\",\n \"Men's Profile\": \"Miesten Profiili\",\n \"Height\": \"Pituus\",\n \"Weight\": \"Paino\",\n \"Chest\": \"Rinta\",\n \"Bust\": \"Rinnanympärys\",\n \"Waist\": \"Vyötärö\",\n \"Hips\": \"Lantio\",\n \"Shoulders\": \"Hartiat\",\n \"Sleeve\": \"Hiha\",\n \"Inseam\": \"Sisäsauma\",\n \"Neck\": \"Kaula\",\n \"Foot\": \"Jalka\",\n \"Shoe EU\": \"Kenkä EU\",\n \"Shoe US\": \"Kenkä US\",\n \"Shoe UK\": \"Kenkä UK\",\n \"Saved\": \"Tallennettu\",\n \"Delete Profile\": \"Poista Profiili\",\n \"Shoe size (US)\": \"Kengän koko (US)\",\n \"Shoe size (UK)\": \"Kengän koko (UK)\",\n \"Shoe size (EU)\": \"Kengän koko (EU)\",\n \"Generating...\": \"Luodaan...\",\n \"Foot length\": \"Jalan pituus\",\n \"Size\": \"Koko\",\n \"Try on size\": \"Kokeile kokoa\",\n \"e.g.\": \"esim.\",\n \"Drop your photo here or click to upload\": \"Pudota kuvasi tähän tai napsauta ladataksesi\",\n \"This usually takes 15-20 seconds\": \"Tämä kestää yleensä 15–20 sekuntia\",\n \"Try-on result\": \"Sovitustulos\",\n \"Try Another\": \"Kokeile toista\",\n \"Back\": \"Takaisin\",\n \"You\": \"Sinä\",\n \"Garment\": \"Vaate\",\n \"Your Height\": \"Pituutesi\",\n \"Your Weight\": \"Painosi\",\n \"Drag or scroll to set your height\": \"Vedä tai vieritä asettaaksesi pituutesi\",\n \"Drag or scroll to set your weight\": \"Vedä tai vieritä asettaaksesi painosi\",\n};\nexport default fi;\n","const th: Record<string, string> = {\n \"Virtual Try-On\": \"ลองเสื้อผ้าเสมือนจริง\",\n \"Find Your Size & See It On You\": \"ค้นหาไซส์ของคุณและลองสวมใส่\",\n \"Get the perfect fit, then try it on virtually\": \"ค้นหาขนาดที่พอดีแล้วลองสวมใส่เสมือนจริง\",\n \"Get Your Size\": \"ไซส์ของคุณ\",\n \"Instant fit recommendation\": \"แนะนำขนาดทันที\",\n \"Try It On\": \"ลองใส่\",\n \"See how it looks on you\": \"ดูว่าใส่แล้วเป็นอย่างไร\",\n \"Find My Size\": \"ค้นหาไซส์ของฉัน\",\n \"Takes less than a minute\": \"ใช้เวลาไม่ถึงนาที\",\n \"Upload a full body photo\": \"อัปโหลดรูปถ่ายเต็มตัว\",\n \"JPEG, PNG or WebP (max 10MB)\": \"JPEG, PNG หรือ WebP (สูงสุด 10MB)\",\n \"Your photo\": \"รูปถ่ายของคุณ\",\n \"Let's find your best fit\": \"มาหาขนาดที่พอดีที่สุดกัน\",\n \"Centimeters\": \"เซนติเมตร\",\n \"Inches\": \"นิ้ว\",\n \"Load saved profile...\": \"โหลดโปรไฟล์ที่บันทึกไว้...\",\n \"HEIGHT\": \"ส่วนสูง\",\n \"WEIGHT\": \"น้ำหนัก\",\n \"feet\": \"ฟุต\",\n \"inches\": \"นิ้ว\",\n \"cm\": \"ซม.\",\n \"kg\": \"กก.\",\n \"lbs\": \"ปอนด์\",\n \"in\": \"นิ้ว\",\n \"How to measure\": \"วิธีการวัด\",\n \"Hide guide\": \"ซ่อนคำแนะนำ\",\n \"I know my measurements\": \"ฉันรู้สัดส่วนของตัวเอง\",\n \"Not sure? Use height & weight instead\": \"ไม่แน่ใจ? ใช้ส่วนสูงและน้ำหนักแทน\",\n \"Please fill in height and weight\": \"กรุณากรอกส่วนสูงและน้ำหนัก\",\n \"Please fill in all required fields\": \"กรุณากรอกข้อมูลที่จำเป็นทั้งหมด\",\n \"Next\": \"ถัดไป\",\n \"Analyzing your size...\": \"กำลังวิเคราะห์ไซส์ของคุณ...\",\n \"RECOMMENDED SIZE\": \"ไซส์ที่แนะนำ\",\n \"NOT RECOMMENDED\": \"ไม่แนะนำ\",\n \"Edit measurements\": \"แก้ไขสัดส่วน\",\n \"Size guide\": \"คู่มือไซส์\",\n \"Your fit\": \"ความพอดีของคุณ\",\n \"Your measure\": \"สัดส่วนของคุณ\",\n \"perfect fit\": \"พอดีสมบูรณ์แบบ\",\n \"too tight\": \"คับเกินไป\",\n \"tight\": \"คับ\",\n \"a bit tight\": \"คับเล็กน้อย\",\n \"too loose\": \"หลวมเกินไป\",\n \"loose\": \"หลวม\",\n \"a bit loose\": \"หลวมเล็กน้อย\",\n \"See fit on your photo\": \"ดูความพอดีบนรูปถ่ายของคุณ\",\n \"Hide visual fit\": \"ซ่อนการแสดงผลความพอดี\",\n \"Analyzing...\": \"กำลังวิเคราะห์...\",\n \"Try it on\": \"ลองใส่\",\n \"SIZE CHART\": \"ตารางไซส์\",\n \"YOUR ESTIMATED MEASUREMENTS\": \"สัดส่วนโดยประมาณของคุณ\",\n \"Edit\": \"แก้ไข\",\n \"Download\": \"ดาวน์โหลด\",\n \"Size chart\": \"ตารางไซส์\",\n \"Preparing your image...\": \"กำลังเตรียมรูปภาพ...\",\n \"Analyzing body proportions...\": \"กำลังวิเคราะห์สัดส่วนร่างกาย...\",\n \"Matching garment to your photo...\": \"กำลังจับคู่เสื้อผ้ากับรูปถ่าย...\",\n \"Generating virtual try-on...\": \"กำลังสร้างการลองเสื้อผ้าเสมือนจริง...\",\n \"Refining details...\": \"กำลังปรับแต่งรายละเอียด...\",\n \"Almost there...\": \"เกือบเสร็จแล้ว...\",\n \"Complete!\": \"เสร็จสิ้น!\",\n \"This usually takes 15-25 seconds\": \"ปกติจะใช้เวลา 15-25 วินาที\",\n \"Something went wrong\": \"เกิดข้อผิดพลาด\",\n \"Try Again\": \"ลองอีกครั้ง\",\n \"SDK not configured. Please provide an API key.\": \"SDK ยังไม่ได้ตั้งค่า กรุณาระบุ API key\",\n \"Please upload a JPEG, PNG, or WebP image.\": \"กรุณาอัปโหลดรูปภาพ JPEG, PNG หรือ WebP\",\n \"Image must be under 10MB.\": \"รูปภาพต้องมีขนาดไม่เกิน 10MB\",\n \"Try-on generation failed\": \"การสร้างการลองเสื้อผ้าล้มเหลว\",\n \"Failed to start try-on\": \"ไม่สามารถเริ่มการลองเสื้อผ้าได้\",\n \"No product image found. Please set the product-image attribute.\": \"ไม่พบรูปสินค้า กรุณาตั้งค่า attribute product-image\",\n \"Powered by\": \"ขับเคลื่อนโดย\",\n \"My Profiles\": \"โปรไฟล์ของฉัน\",\n \"History\": \"ประวัติ\",\n \"No saved profiles yet.\": \"ยังไม่มีโปรไฟล์ที่บันทึกไว้\",\n \"No history yet.\": \"ยังไม่มีประวัติ\",\n \"Product\": \"สินค้า\",\n \"Women's\": \"ผู้หญิง\",\n \"Men's\": \"ผู้ชาย\",\n \"Profiles\": \"โปรไฟล์\",\n \"Women's Profile\": \"โปรไฟล์ผู้หญิง\",\n \"Men's Profile\": \"โปรไฟล์ผู้ชาย\",\n \"Height\": \"ส่วนสูง\",\n \"Weight\": \"น้ำหนัก\",\n \"Chest\": \"รอบอก\",\n \"Bust\": \"รอบอก\",\n \"Waist\": \"รอบเอว\",\n \"Hips\": \"รอบสะโพก\",\n \"Shoulders\": \"ไหล่\",\n \"Sleeve\": \"แขนเสื้อ\",\n \"Inseam\": \"ตะเข็บด้านใน\",\n \"Neck\": \"คอ\",\n \"Foot\": \"เท้า\",\n \"Shoe EU\": \"รองเท้า EU\",\n \"Shoe US\": \"รองเท้า US\",\n \"Shoe UK\": \"รองเท้า UK\",\n \"Saved\": \"บันทึกแล้ว\",\n \"Delete Profile\": \"ลบโปรไฟล์\",\n \"Shoe size (US)\": \"ขนาดรองเท้า (US)\",\n \"Shoe size (UK)\": \"ขนาดรองเท้า (UK)\",\n \"Shoe size (EU)\": \"ขนาดรองเท้า (EU)\",\n \"Generating...\": \"กำลังสร้าง...\",\n \"Foot length\": \"ความยาวเท้า\",\n \"Size\": \"ไซส์\",\n \"Try on size\": \"ลองไซส์\",\n \"e.g.\": \"เช่น\",\n \"Drop your photo here or click to upload\": \"วางรูปที่นี่หรือคลิกเพื่ออัปโหลด\",\n \"This usually takes 15-20 seconds\": \"ปกติจะใช้เวลา 15-20 วินาที\",\n \"Try-on result\": \"ผลการลองเสื้อผ้า\",\n \"Try Another\": \"ลองอีกครั้ง\",\n \"Back\": \"กลับ\",\n \"You\": \"คุณ\",\n \"Garment\": \"เสื้อผ้า\",\n \"Your Height\": \"ส่วนสูงของคุณ\",\n \"Your Weight\": \"น้ำหนักของคุณ\",\n \"Drag or scroll to set your height\": \"ลากหรือเลื่อนเพื่อตั้งค่าส่วนสูง\",\n \"Drag or scroll to set your weight\": \"ลากหรือเลื่อนเพื่อตั้งค่าน้ำหนัก\",\n};\nexport default th;\n","const vi: Record<string, string> = {\n \"Virtual Try-On\": \"Thử Đồ Ảo\",\n \"Find Your Size & See It On You\": \"Tìm cỡ của bạn và thử mặc\",\n \"Get the perfect fit, then try it on virtually\": \"Tìm size phù hợp nhất rồi thử mặc ảo\",\n \"Get Your Size\": \"Cỡ của bạn\",\n \"Instant fit recommendation\": \"Gợi ý size ngay lập tức\",\n \"Try It On\": \"Thử mặc\",\n \"See how it looks on you\": \"Xem trông như thế nào trên bạn\",\n \"Find My Size\": \"Tìm cỡ của tôi\",\n \"Takes less than a minute\": \"Chưa đến một phút\",\n \"Upload a full body photo\": \"Tải lên ảnh toàn thân\",\n \"JPEG, PNG or WebP (max 10MB)\": \"JPEG, PNG hoặc WebP (tối đa 10MB)\",\n \"Your photo\": \"Ảnh của bạn\",\n \"Let's find your best fit\": \"Hãy tìm size phù hợp nhất\",\n \"Centimeters\": \"Xentimét\",\n \"Inches\": \"Inch\",\n \"Load saved profile...\": \"Tải hồ sơ đã lưu...\",\n \"HEIGHT\": \"CHIỀU CAO\",\n \"WEIGHT\": \"CÂN NẶNG\",\n \"feet\": \"feet\",\n \"inches\": \"inch\",\n \"cm\": \"cm\",\n \"kg\": \"kg\",\n \"lbs\": \"pound\",\n \"in\": \"inch\",\n \"How to measure\": \"Cách đo\",\n \"Hide guide\": \"Ẩn hướng dẫn\",\n \"I know my measurements\": \"Tôi biết số đo của mình\",\n \"Not sure? Use height & weight instead\": \"Không chắc? Dùng chiều cao và cân nặng\",\n \"Please fill in height and weight\": \"Vui lòng nhập chiều cao và cân nặng\",\n \"Please fill in all required fields\": \"Vui lòng điền đầy đủ các trường bắt buộc\",\n \"Next\": \"Tiếp theo\",\n \"Analyzing your size...\": \"Đang phân tích cỡ của bạn...\",\n \"RECOMMENDED SIZE\": \"CỠ ĐƯỢC ĐỀ XUẤT\",\n \"NOT RECOMMENDED\": \"KHÔNG ĐƯỢC ĐỀ XUẤT\",\n \"Edit measurements\": \"Sửa số đo\",\n \"Size guide\": \"Hướng dẫn cỡ\",\n \"Your fit\": \"Độ vừa vặn\",\n \"Your measure\": \"Số đo của bạn\",\n \"perfect fit\": \"vừa vặn hoàn hảo\",\n \"too tight\": \"quá chật\",\n \"tight\": \"chật\",\n \"a bit tight\": \"hơi chật\",\n \"too loose\": \"quá rộng\",\n \"loose\": \"rộng\",\n \"a bit loose\": \"hơi rộng\",\n \"See fit on your photo\": \"Xem độ vừa trên ảnh\",\n \"Hide visual fit\": \"Ẩn hiển thị độ vừa\",\n \"Analyzing...\": \"Đang phân tích...\",\n \"Try it on\": \"Thử mặc\",\n \"SIZE CHART\": \"BẢNG CỠ\",\n \"YOUR ESTIMATED MEASUREMENTS\": \"SỐ ĐO ƯỚC TÍNH CỦA BẠN\",\n \"Edit\": \"Sửa\",\n \"Download\": \"Tải xuống\",\n \"Size chart\": \"Bảng cỡ\",\n \"Preparing your image...\": \"Đang chuẩn bị ảnh...\",\n \"Analyzing body proportions...\": \"Đang phân tích tỉ lệ cơ thể...\",\n \"Matching garment to your photo...\": \"Đang ghép trang phục vào ảnh...\",\n \"Generating virtual try-on...\": \"Đang tạo thử đồ ảo...\",\n \"Refining details...\": \"Đang tinh chỉnh chi tiết...\",\n \"Almost there...\": \"Sắp xong...\",\n \"Complete!\": \"Hoàn thành!\",\n \"This usually takes 15-25 seconds\": \"Thường mất 15-25 giây\",\n \"Something went wrong\": \"Đã xảy ra lỗi\",\n \"Try Again\": \"Thử lại\",\n \"SDK not configured. Please provide an API key.\": \"SDK chưa được cấu hình. Vui lòng cung cấp API key.\",\n \"Please upload a JPEG, PNG, or WebP image.\": \"Vui lòng tải lên ảnh JPEG, PNG hoặc WebP.\",\n \"Image must be under 10MB.\": \"Ảnh phải nhỏ hơn 10MB.\",\n \"Try-on generation failed\": \"Tạo thử đồ thất bại\",\n \"Failed to start try-on\": \"Không thể bắt đầu thử đồ\",\n \"No product image found. Please set the product-image attribute.\": \"Không tìm thấy ảnh sản phẩm. Vui lòng đặt thuộc tính product-image.\",\n \"Powered by\": \"Được hỗ trợ bởi\",\n \"My Profiles\": \"Hồ sơ của tôi\",\n \"History\": \"Lịch sử\",\n \"No saved profiles yet.\": \"Chưa có hồ sơ nào được lưu.\",\n \"No history yet.\": \"Chưa có lịch sử.\",\n \"Product\": \"Sản phẩm\",\n \"Women's\": \"Nữ\",\n \"Men's\": \"Nam\",\n \"Profiles\": \"Hồ sơ\",\n \"Women's Profile\": \"Hồ sơ Nữ\",\n \"Men's Profile\": \"Hồ sơ Nam\",\n \"Height\": \"Chiều cao\",\n \"Weight\": \"Cân nặng\",\n \"Chest\": \"Ngực\",\n \"Bust\": \"Vòng ngực\",\n \"Waist\": \"Eo\",\n \"Hips\": \"Hông\",\n \"Shoulders\": \"Vai\",\n \"Sleeve\": \"Tay áo\",\n \"Inseam\": \"Đường may trong\",\n \"Neck\": \"Cổ\",\n \"Foot\": \"Bàn chân\",\n \"Shoe EU\": \"Giày EU\",\n \"Shoe US\": \"Giày US\",\n \"Shoe UK\": \"Giày UK\",\n \"Saved\": \"Đã lưu\",\n \"Delete Profile\": \"Xóa hồ sơ\",\n \"Shoe size (US)\": \"Cỡ giày (US)\",\n \"Shoe size (UK)\": \"Cỡ giày (UK)\",\n \"Shoe size (EU)\": \"Cỡ giày (EU)\",\n \"Generating...\": \"Đang tạo...\",\n \"Foot length\": \"Chiều dài bàn chân\",\n \"Size\": \"Cỡ\",\n \"Try on size\": \"Thử cỡ\",\n \"e.g.\": \"VD:\",\n \"Drop your photo here or click to upload\": \"Kéo thả ảnh vào đây hoặc nhấn để tải lên\",\n \"This usually takes 15-20 seconds\": \"Thường mất 15-20 giây\",\n \"Try-on result\": \"Kết quả thử đồ\",\n \"Try Another\": \"Thử cái khác\",\n \"Back\": \"Quay lại\",\n \"You\": \"Bạn\",\n \"Garment\": \"Trang phục\",\n \"Your Height\": \"Chiều Cao\",\n \"Your Weight\": \"Cân Nặng\",\n \"Drag or scroll to set your height\": \"Kéo hoặc cuộn để đặt chiều cao\",\n \"Drag or scroll to set your weight\": \"Kéo hoặc cuộn để đặt cân nặng\",\n};\nexport default vi;\n","/**\n * Auto-register all built-in locale packs.\n * Import this module once to make every supported language available.\n */\nimport { registerLocale } from \"../i18n\";\n\nimport ja from \"./ja\";\nimport ko from \"./ko\";\nimport zh from \"./zh\";\nimport es from \"./es\";\nimport fr from \"./fr\";\nimport de from \"./de\";\nimport it from \"./it\";\nimport pt from \"./pt\";\nimport nl from \"./nl\";\nimport ru from \"./ru\";\nimport ar from \"./ar\";\nimport tr from \"./tr\";\nimport pl from \"./pl\";\nimport sv from \"./sv\";\nimport da from \"./da\";\nimport nb from \"./nb\";\nimport fi from \"./fi\";\nimport th from \"./th\";\nimport vi from \"./vi\";\n\nconst locales: Record<string, Record<string, string>> = {\n ja, ko, zh, es, fr, de, it, pt, nl, ru, ar, tr, pl, sv, da, nb, fi, th, vi,\n};\n\nfor (const [code, translations] of Object.entries(locales)) {\n registerLocale(code, translations);\n}\n"],"names":["STORAGE_KEY","FALLBACK_PREFIX","memoryFallback","hasLocalStorage","uuid","chars","out","i","readRecord","raw","parsed","writeRecord","record","getOrCreateSessionId","now","existing","fresh","getDeviceHint","ua","DEFAULT_API_URL","ApiClient","apiKey","apiUrl","modelImage","garmentImage","fitInfo","category","context","body","f","parts","n","gap","mid","diff","res","data","PrimeStyleError","jobId","message","code","SseClient","streamUrl","event","delay","callback","jobListeners","update","callbacks","cb","DEFAULT_MAX_DIMENSION","DEFAULT_JPEG_QUALITY","compressImage","file","opts","maxDim","quality","resolve","reject","reader","img","canvas","width","height","ctx","dataUrl","err","isValidImageFile","checkAgeBeforeUpload","imageOrBase64","base64","resp","localeRegistry","registerLocale","translations","createT","locale","key","detectLanguage","SUPPORTED_LOCALES","LOCALE_LABELS","TRANSLATION_KEYS","ja","ko","zh","es","fr","de","it","pt","nl","ru","ar","tr","pl","sv","da","nb","fi","th","vi","locales"],"mappings":"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A,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAC3B;AAAA,EACA;AAAA,EAAa;AA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"}