@djangocfg/i18n 2.1.606 → 2.1.607

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.
@@ -307,7 +307,6 @@ var en = {
307
307
  signingInBody: "Please wait while we complete your {provider} sign-in.",
308
308
  notice: {
309
309
  linkNotAllowedTitle: "Use the email code for this address",
310
- useEmail: "Continue with email",
311
310
  retry: "Try {provider} again",
312
311
  dismiss: "Dismiss",
313
312
  originNotAllowedHint: "For developers: {origin} is not an origin of the Django site. Add it to the site's origins and register {origin}/auth?provider={id} as a redirect URI at the provider."
@@ -719,5 +718,5 @@ function getT(key, params) {
719
718
  }
720
719
 
721
720
  export { I18nProvider, createTranslations, en, getT, interpolate, mergeTranslations, useI18n, useLocale, useLocaleOptional, useT, useTranslation, useTypedT };
722
- //# sourceMappingURL=chunk-MKK2OTSC.mjs.map
723
- //# sourceMappingURL=chunk-MKK2OTSC.mjs.map
721
+ //# sourceMappingURL=chunk-QNCDAJBH.mjs.map
722
+ //# sourceMappingURL=chunk-QNCDAJBH.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/locales/en.ts","../src/utils/interpolate.ts","../src/utils/merge.ts","../src/utils/get-value.ts","../src/context.tsx"],"names":["value"],"mappings":"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","file":"chunk-QNCDAJBH.mjs","sourcesContent":["import type { I18nTranslations } from '../types'\n\n/**\n * English translations (default)\n */\nexport const en: I18nTranslations = {\n ui: {\n select: {\n placeholder: \"Select option...\",\n search: \"Search...\",\n noResults: \"No results found.\",\n selectAll: \"Select all\",\n clearAll: \"Clear all\",\n moreItems: \"+{count} more\",\n loading: \"Loading...\",\n },\n pagination: {\n previous: \"Previous\",\n next: \"Next\",\n first: \"First\",\n last: \"Last\",\n page: \"Page {page}\",\n of: \"of {total}\",\n showing: \"{from}-{to} of {total}\",\n },\n dialog: {\n close: \"Close\",\n confirm: \"Confirm\",\n cancel: \"Cancel\",\n ok: \"OK\",\n yes: \"Yes\",\n no: \"No\",\n delete: \"Delete\",\n save: \"Save\",\n discard: \"Discard\",\n alertTitle: \"Notice\",\n confirmTitle: \"Confirm\",\n confirmDelete: \"Are you sure you want to delete this?\",\n promptTitle: \"Input Required\",\n promptPlaceholder: \"Enter value...\",\n },\n form: {\n submit: \"Submit\",\n cancel: \"Cancel\",\n save: \"Save\",\n delete: \"Delete\",\n edit: \"Edit\",\n create: \"Create\",\n update: \"Update\",\n reset: \"Reset\",\n clear: \"Clear\",\n loading: \"Loading...\",\n saving: \"Saving...\",\n deleting: \"Deleting...\",\n required: \"This field is required\",\n optional: \"Optional\",\n minLength: \"{min} characters minimum\",\n maxLength: \"{max} characters maximum\",\n invalidEmail: \"Please enter a valid email address\",\n invalidUrl: \"Please enter a valid URL\",\n invalidPhone: \"Please enter a valid phone number\",\n passwordMismatch: \"Passwords do not match\",\n },\n datetime: {\n today: \"Today\",\n yesterday: \"Yesterday\",\n tomorrow: \"Tomorrow\",\n now: \"Just now\",\n secondsAgo: \"{count} seconds ago\",\n minutesAgo: \"{count} minutes ago\",\n hoursAgo: \"{count} hours ago\",\n daysAgo: \"{count} days ago\",\n pickDate: \"Pick a date\",\n pickTime: \"Pick a time\",\n pickDateTime: \"Pick date and time\",\n pickDateRange: \"Pick a date range\",\n },\n file: {\n upload: \"Upload\",\n uploading: \"Uploading...\",\n dragDrop: \"Drag and drop files here\",\n browse: \"Browse files\",\n remove: \"Remove\",\n maxSize: \"Max size: {size}\",\n invalidType: \"Invalid file type\",\n tooLarge: \"File is too large\",\n },\n table: {\n noData: \"No data available\",\n loading: \"Loading data...\",\n showing: \"Showing {from}-{to} of {total}\",\n rowsPerPage: \"Rows per page\",\n sortAsc: \"Sort ascending\",\n sortDesc: \"Sort descending\",\n filter: \"Filter\",\n clearFilters: \"Clear filters\",\n selectAll: \"Select all\",\n deselectAll: \"Deselect all\",\n selected: \"{count} selected\",\n },\n actions: {\n view: \"View\",\n copy: \"Copy\",\n copied: \"Copied!\",\n copyToClipboard: \"Copy to clipboard\",\n download: \"Download\",\n share: \"Share\",\n refresh: \"Refresh\",\n retry: \"Retry\",\n expand: \"Expand\",\n collapse: \"Collapse\",\n showMore: \"Show more\",\n showLess: \"Show less\",\n seeAll: \"See all\",\n goBack: \"Go back\",\n remove: \"Remove\",\n previousSlide: \"Previous slide\",\n nextSlide: \"Next slide\",\n },\n phone: {\n searchCountries: \"Search countries...\",\n noCountries: \"No countries found\",\n },\n navigation: {\n title: \"Navigation\",\n },\n states: {\n loading: \"Loading\",\n empty: \"Empty\",\n error: \"Error\",\n success: \"Success\",\n warning: \"Warning\",\n info: \"Info\",\n pending: \"Pending\",\n active: \"Active\",\n inactive: \"Inactive\",\n enabled: \"Enabled\",\n disabled: \"Disabled\",\n },\n errors: {\n generic: \"Something went wrong\",\n network: \"Network error. Please check your connection.\",\n timeout: \"Request timed out. Please try again.\",\n notFound: \"Not found\",\n unauthorized: \"Please sign in to continue\",\n forbidden: \"You do not have permission to access this\",\n serverError: \"Server error. Please try again later.\",\n validation: \"Please check the form for errors\",\n unknown: \"An unknown error occurred\",\n },\n },\n layouts: {\n sidebar: {\n toggle: \"Toggle sidebar\",\n collapse: \"Collapse sidebar\",\n expand: \"Expand sidebar\",\n },\n navigation: {\n menu: \"Menu\",\n home: \"Home\",\n back: \"Back\",\n forward: \"Forward\",\n toggleMobile: \"Toggle mobile menu\",\n breadcrumb: \"Breadcrumb\",\n },\n profile: {\n settings: \"Settings\",\n account: \"Account\",\n logout: \"Log out\",\n login: \"Log in\",\n signUp: \"Sign up\",\n signOut: \"Sign Out\",\n userMenu: \"User menu\",\n language: \"Language\",\n },\n theme: {\n toggle: \"Toggle theme\",\n light: \"Light\",\n dark: \"Dark\",\n system: \"System\",\n },\n search: {\n placeholder: \"Search...\",\n noResults: \"No results found\",\n recentSearches: \"Recent searches\",\n clearHistory: \"Clear history\",\n },\n mobile: {\n closeMenu: \"Close menu\",\n },\n errors: {\n somethingWentWrong: \"Something went wrong\",\n tryRefreshing: \"We're sorry, but something unexpected happened. Please try refreshing the page.\",\n refreshPage: \"Refresh Page\",\n goBack: \"Go Back\",\n goHome: \"Go Home\",\n needHelp: \"Need help?\",\n contactSupport: \"Contact support\",\n checkStatus: \"Check service status\",\n persistsContact: \"If the problem persists, please contact {email}\",\n error: \"Error\",\n badRequest: \"Bad Request\",\n authRequired: \"Authentication Required\",\n accessDenied: \"Access Denied\",\n pageNotFound: \"Page Not Found\",\n requestTimeout: \"Request Timeout\",\n serverError: \"Server Error\",\n badGateway: \"Bad Gateway\",\n serviceUnavailable: \"Service Unavailable\",\n gatewayTimeout: \"Gateway Timeout\",\n badRequestDesc: \"The request could not be understood. Please check your input and try again.\",\n authRequiredDesc: \"You need to sign in to access this page.\",\n accessDeniedDesc: \"You don't have permission to access this resource.\",\n pageNotFoundDesc: \"The page you're looking for doesn't exist or has been moved.\",\n requestTimeoutDesc: \"The request took too long to process. Please try again.\",\n serverErrorDesc: \"Something went wrong on our end. We're working to fix it.\",\n badGatewayDesc: \"The server received an invalid response. Please try again later.\",\n serviceUnavailableDesc: \"The service is temporarily unavailable. Please try again later.\",\n gatewayTimeoutDesc: \"The server took too long to respond. Please try again.\",\n unknownErrorDesc: \"An unexpected error occurred. Please try again or contact support.\",\n },\n push: {\n enableNotifications: \"Enable notifications\",\n stayUpdated: \"Stay updated with important updates and alerts\",\n enable: \"Enable\",\n notNow: \"Not now\",\n dismiss: \"Dismiss\",\n },\n auth: {\n authRequired: \"Authentication Required\",\n pleaseSignIn: \"Please sign in to continue\",\n goToSignIn: \"Go to Sign In\",\n identifier: {\n title: \"Sign in\",\n subtitle: {\n email: \"Enter your email to continue\",\n phone: \"Enter your phone number to continue\",\n },\n placeholder: {\n email: \"email@example.com\",\n phone: \"Enter your phone number\",\n },\n button: \"Continue\",\n oauth: {\n continueWith: \"Continue with {provider}\",\n groupLabel: \"Sign in with a provider\",\n },\n channel: {\n email: \"Email\",\n phone: \"Phone\",\n },\n },\n otp: {\n title: \"Enter code\",\n subtitle: \"We sent a code to\",\n button: \"Verify\",\n resend: \"Resend code\",\n changeEmail: \"Change email\",\n changePhone: \"Change phone\",\n openMailbox: \"Open {provider}\",\n },\n twoFactor: {\n title: \"Two-factor authentication\",\n subtitle: {\n totp: \"Enter the 6-digit code from your authenticator\",\n backup: \"Enter one of your backup codes\",\n },\n placeholder: {\n backup: \"XXXXXXXX\",\n },\n button: \"Verify\",\n toggle: {\n toBackup: \"Use backup code\",\n toTotp: \"Use authenticator app\",\n },\n },\n setup: {\n loading: {\n title: \"Setting up...\",\n button: \"Loading\",\n },\n qrCode: {\n title: \"Set up 2FA\",\n subtitle: \"Scan this QR code with your authenticator app\",\n manualEntry: \"Can't scan? Enter manually\",\n confirmPrompt: \"Enter the 6-digit code to confirm\",\n button: \"Enable 2FA\",\n skip: \"Skip for now\",\n },\n complete: {\n title: \"2FA enabled\",\n subtitle: \"Save these backup codes securely\",\n instruction: \"Each code can only be used once\",\n copyAll: \"Copy all codes\",\n copied: \"Copied\",\n done: \"Done\",\n },\n },\n success: {\n message: \"Signed in successfully\",\n redirecting: \"Taking you in…\",\n },\n divider: {\n or: \"or\",\n },\n oauth: {\n signingIn: \"Signing you in…\",\n signingInBody: \"Please wait while we complete your {provider} sign-in.\",\n notice: {\n linkNotAllowedTitle: \"Use the email code for this address\",\n retry: \"Try {provider} again\",\n dismiss: \"Dismiss\",\n originNotAllowedHint: \"For developers: {origin} is not an origin of the Django site. Add it to the site's origins and register {origin}/auth?provider={id} as a redirect URI at the provider.\",\n },\n error: {\n invalid_state: \"The sign-in link expired. Try again.\",\n oauth_exchange_failed: \"The provider did not accept the sign-in. Please try again.\",\n invalid_id_token: \"We could not verify your sign-in. Please try again.\",\n email_missing: \"The provider did not share an email address. Try another sign-in method.\",\n email_not_verified: \"The provider has not verified your email address. Verify it there, or use another sign-in method.\",\n hosted_domain_not_allowed: \"Accounts from this domain cannot sign in here.\",\n account_inactive: \"This account is disabled. Please contact support.\",\n link_not_allowed: \"{provider} sign-in is not available for this account. Get a code by email instead.\",\n rate_limited: \"Too many attempts. Please wait a moment and try again.\",\n provider_unavailable: \"The provider is unavailable right now. Please try again shortly.\",\n not_configured: \"{provider} sign-in is not available on this site. Use email instead.\",\n cancelled: \"Sign-in was cancelled.\",\n generic: \"Could not sign in. Try again or use email.\",\n },\n },\n footer: {\n terms: \"Terms\",\n privacy: \"Privacy\",\n support: \"Support\",\n },\n dev: {\n anyCodeWorks: \"Dev Mode: Any code works\",\n },\n },\n pwa: {\n addToHomeScreen: \"Add to Home Screen\",\n installApp: \"Install App\",\n tapToLearnHow: \"Tap to learn how\",\n clickToSeeGuide: \"Click to see desktop guide\",\n tapToInstall: \"Tap to install\",\n installing: \"Installing...\",\n dismiss: \"Dismiss\",\n appLogo: \"App logo\",\n iosTitle: \"Add to Home Screen\",\n iosDescription: \"Install this app on your iPhone for quick access and a better experience\",\n iosStep1Title: \"Tap Share\",\n iosStep1Desc: \"At the bottom of Safari\",\n iosStep2Title: \"Scroll & Tap\",\n iosStep2Desc: \"\\\"Add to Home Screen\\\"\",\n iosStep3Title: \"Confirm\",\n iosStep3Desc: \"Tap \\\"Add\\\" in top-right\",\n gotIt: \"Got It\",\n desktopTitle: \"Install App on Desktop\",\n desktopDescription: \"Install this app on {browser} for quick access from your desktop\",\n desktopDescSafari: \"Safari on macOS has limited PWA support. For the best experience, use Chrome, Edge, or Brave.\",\n desktopTip: \"You can also right-click the page and look for \\\"Install\\\" option in {browser}\",\n desktopFirefoxNote: \"Firefox has limited PWA support. Some features may not work as expected.\",\n chromiumStep1Title: \"Find Install Icon\",\n chromiumStep1Desc: \"Look for install icon in address bar (right side)\",\n chromiumStep2Title: \"Click Install\",\n chromiumStep2Desc: \"Click the icon and select \\\"Install\\\"\",\n chromiumStep3Title: \"Confirm\",\n chromiumStep3Desc: \"Click \\\"Install\\\" in the popup dialog\",\n firefoxStep1Title: \"Open Menu\",\n firefoxStep1Desc: \"Click the menu button (three lines)\",\n firefoxStep2Title: \"Find Install Option\",\n firefoxStep2Desc: \"Look for \\\"Install\\\" or \\\"Add to Home Screen\\\"\",\n firefoxStep3Title: \"Confirm\",\n firefoxStep3Desc: \"Follow the installation prompts\",\n safariStep1Title: \"Limited Support\",\n safariStep1Desc: \"Safari on macOS has limited PWA support\",\n safariStep2Title: \"Use Chromium Browser\",\n safariStep2Desc: \"Consider using Chrome, Edge, or Brave for full PWA experience\",\n unknownStep1Title: \"Check Address Bar\",\n unknownStep1Desc: \"Look for an install or download icon\",\n unknownStep2Title: \"Or Use Menu\",\n unknownStep2Desc: \"Check browser menu for install option\",\n unknownStep3Title: \"Confirm\",\n unknownStep3Desc: \"Follow the installation prompts\",\n close: \"Close\",\n },\n profilePage: {\n title: \"Profile\",\n account: \"Account\",\n personalInfo: \"Personal Information\",\n work: \"Work\",\n security: \"Security\",\n actions: \"Actions\",\n email: \"Email\",\n firstName: \"First Name\",\n lastName: \"Last Name\",\n company: \"Company\",\n position: \"Position\",\n phone: \"Phone\",\n notSet: \"Not set\",\n addFirstName: \"Add first name\",\n addLastName: \"Add last name\",\n addPhone: \"Add phone number\",\n addCompany: \"Add company\",\n addPosition: \"Add position\",\n on: \"On\",\n off: \"Off\",\n save: \"Save\",\n saving: \"Saving...\",\n cancel: \"Cancel\",\n signOut: \"Sign Out\",\n deleteAccount: \"Delete Account\",\n deleting: \"Deleting...\",\n twoFactorAuth: \"Two-Factor Authentication\",\n twoFactorEnabled: \"Two-factor authentication is enabled\",\n twoFactorDisabled: \"Add an extra layer of security\",\n enable2FA: \"Enable\",\n avatar: \"Avatar\",\n changeAvatar: \"Change avatar\",\n memberSince: \"Member since {date}\",\n enterField: \"Enter {field}\",\n profileUpdated: \"Profile updated\",\n avatarUpdated: \"Avatar updated\",\n failedToUpdate: \"Failed to update\",\n failedToUploadAvatar: \"Failed to upload avatar\",\n selectImageFile: \"Please select an image file\",\n fileTooLarge: \"File size must be less than 5MB\",\n notAuthenticated: \"Not Authenticated\",\n pleaseLogIn: \"Please log in to view your profile.\",\n deleteAccountTitle: \"Delete Account\",\n deleteAccountDesc: \"This action cannot be undone. Your account will be permanently deleted.\",\n typeToConfirm: \"Type {word} to confirm:\",\n confirmationWord: \"DELETE\",\n },\n },\n api: {\n errors: {\n networkError: \"Network error\",\n connectionFailed: \"Connection failed\",\n requestTimeout: \"Request timed out\",\n serverUnavailable: \"Server is unavailable\",\n invalidResponse: \"Invalid response from server\",\n rateLimited: \"Too many requests. Please wait.\",\n },\n status: {\n connecting: \"Connecting...\",\n connected: \"Connected\",\n disconnected: \"Disconnected\",\n reconnecting: \"Reconnecting...\",\n },\n logout: {\n title: \"Logout\",\n message: \"Are you sure you want to logout?\",\n confirm: \"Logout\",\n cancel: \"Cancel\",\n },\n },\n tools: {\n code: {\n copyCode: \"Copy code\",\n noContent: \"No content available\",\n },\n diagram: {\n title: \"Diagram\",\n clickToView: \"Click to view fullscreen\",\n },\n image: {\n noImage: \"No image content\",\n failedToLoad: \"Failed to load image\",\n zoomIn: \"Zoom in\",\n zoomOut: \"Zoom out\",\n fitToView: \"Fit to view\",\n flipHorizontal: \"Flip horizontal\",\n flipVertical: \"Flip vertical\",\n rotate: \"Rotate 90°\",\n fullscreen: \"Open in fullscreen\",\n },\n gallery: {\n noImages: \"No images available\",\n lightbox: \"Image lightbox\",\n previous: \"Previous image\",\n next: \"Next image\",\n close: \"Close lightbox\",\n download: \"Download image\",\n share: \"Share image\",\n },\n video: {\n play: \"Play video\",\n fullscreen: \"Fullscreen\",\n unavailable: \"Video unavailable\",\n },\n audio: {\n restart: \"Restart\",\n back: \"Back 5 seconds\",\n forward: \"Forward 5 seconds\",\n volume: \"Volume\",\n },\n color: {\n pick: \"Pick color\",\n },\n jsonForm: {\n validationErrors: \"Validation Errors\",\n addItem: \"Add Item\",\n addFirstItem: \"Add First Item\",\n noItems: \"No items added yet.\",\n },\n openapi: {\n response: \"Response\",\n noResponse: \"No response body available\",\n required: \"Required\",\n optional: \"Optional\",\n searchEndpoints: \"Search endpoints...\",\n all: \"All\",\n methods: \"Methods\",\n path: \"Path\",\n description: \"Description\",\n navigation: \"Navigation\",\n previous: \"Previous\",\n next: \"Next\",\n bearerToken: \"Enter Bearer token (optional, uses JWT if empty)\",\n },\n form: {\n title: \"Form\",\n },\n tour: {\n next: \"Next\",\n previous: \"Back\",\n skip: \"Skip\",\n finish: \"Finish\",\n close: \"Close\",\n stepOf: \"Step {current} of {total}\",\n },\n upload: {\n dragDrop: \"Drag & drop files or click to browse\",\n dropHere: \"Drop files here\",\n maxSize: \"Max {size}MB per file\",\n uploading: \"Uploading...\",\n uploaded: \"Uploaded\",\n failed: \"Failed\",\n retry: \"Retry\",\n remove: \"Remove\",\n cancel: \"Cancel\",\n paused: \"Paused\",\n pending: \"Pending\",\n },\n },\n}\n","/**\n * Interpolate variables in a translation string\n *\n * @example\n * interpolate(\"Hello, {name}!\", { name: \"World\" })\n * // => \"Hello, World!\"\n *\n * interpolate(\"+{count} more\", { count: 5 })\n * // => \"+5 more\"\n */\nexport function interpolate(\n template: string,\n params?: Record<string, string | number>\n): string {\n if (!params) return template\n\n return template.replace(/\\{(\\w+)\\}/g, (match, key) => {\n if (key in params) {\n return String(params[key])\n }\n return match\n })\n}\n","import type { I18nTranslations, PartialTranslations } from '../types'\n\ntype AnyObject = { [key: string]: unknown }\n\n/**\n * Deep merge two objects\n */\nfunction deepMerge(target: AnyObject, source: AnyObject): AnyObject {\n const result = { ...target }\n\n for (const key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n const sourceValue = source[key]\n const targetValue = result[key]\n\n if (\n sourceValue !== null &&\n typeof sourceValue === 'object' &&\n !Array.isArray(sourceValue) &&\n targetValue !== null &&\n typeof targetValue === 'object' &&\n !Array.isArray(targetValue)\n ) {\n // Recursively merge objects\n result[key] = deepMerge(\n targetValue as AnyObject,\n sourceValue as AnyObject\n )\n } else if (sourceValue !== undefined) {\n // Override with source value\n result[key] = sourceValue\n }\n }\n }\n\n return result\n}\n\n/**\n * Merge base translations with partial overrides or additional namespaces\n *\n * @example\n * // Override existing keys\n * const customRu = mergeTranslations(ru, {\n * ui: {\n * select: {\n * placeholder: 'Выберите марку авто...'\n * }\n * }\n * })\n *\n * @example\n * // Add app-specific namespace\n * const appTranslations = mergeTranslations(en, {\n * hub: {\n * nav: { home: 'Home' }\n * }\n * })\n */\nexport function mergeTranslations<T extends Record<string, unknown> = Record<string, unknown>>(\n base: I18nTranslations,\n overrides: PartialTranslations | T\n): I18nTranslations & T {\n return deepMerge(\n base as unknown as AnyObject,\n overrides as unknown as AnyObject\n ) as unknown as I18nTranslations & T\n}\n\n/**\n * Create translations from multiple partial sources\n *\n * @example\n * const translations = createTranslations(\n * en, // base\n * uiOverrides, // UI customizations\n * appStrings // App-specific strings\n * )\n */\nexport function createTranslations(\n base: I18nTranslations,\n ...overrides: PartialTranslations[]\n): I18nTranslations {\n return overrides.reduce<I18nTranslations>(\n (acc, override) => mergeTranslations(acc, override),\n base\n )\n}\n","/**\n * Get a nested value from an object using dot notation\n *\n * @example\n * getNestedValue({ ui: { select: { placeholder: 'Select...' } } }, 'ui.select.placeholder')\n * // => 'Select...'\n */\nexport function getNestedValue(\n obj: Record<string, unknown>,\n path: string\n): string | undefined {\n const keys = path.split('.')\n let current: unknown = obj\n\n for (const key of keys) {\n if (current === null || current === undefined) {\n return undefined\n }\n if (typeof current !== 'object') {\n return undefined\n }\n current = (current as Record<string, unknown>)[key]\n }\n\n if (typeof current === 'string') {\n return current\n }\n\n return undefined\n}\n","'use client'\n\nimport * as React from 'react'\n\nimport { en } from './locales/en'\nimport type {\n I18nContextValue,\n I18nProviderProps,\n I18nTranslations,\n LocaleCode,\n} from './types'\nimport { getNestedValue, interpolate, mergeTranslations } from './utils'\n\n/**\n * I18n Context\n */\nconst I18nContext = React.createContext<I18nContextValue | null>(null)\n\n/**\n * Default translations (English)\n */\nconst defaultTranslations: I18nTranslations = en\n\n/**\n * I18n Provider\n *\n * @example\n * // Basic usage with single locale\n * import { I18nProvider, ru } from '@djangocfg/i18n'\n *\n * <I18nProvider locale=\"ru\" translations={ru}>\n * <App />\n * </I18nProvider>\n *\n * @example\n * // With all translations for dynamic switching\n * import { I18nProvider, en, ru, ko } from '@djangocfg/i18n'\n *\n * <I18nProvider\n * locale={currentLocale}\n * allTranslations={{ en, ru, ko }}\n * onLocaleChange={(locale) => setCurrentLocale(locale)}\n * >\n * <App />\n * </I18nProvider>\n *\n * @example\n * // With custom overrides\n * import { I18nProvider, ru, mergeTranslations } from '@djangocfg/i18n'\n *\n * const customRu = mergeTranslations(ru, {\n * ui: { select: { placeholder: 'Выберите марку...' } }\n * })\n *\n * <I18nProvider locale=\"ru\" translations={customRu}>\n * <App />\n * </I18nProvider>\n */\nexport function I18nProvider({\n children,\n locale: initialLocale = 'en',\n translations: initialTranslations,\n allTranslations,\n onLocaleChange,\n}: I18nProviderProps) {\n const [locale, setLocaleState] = React.useState<LocaleCode>(initialLocale)\n\n // Resolve current translations\n const translations = React.useMemo<I18nTranslations>(() => {\n // If allTranslations provided, use it to get translations for current locale\n if (allTranslations && allTranslations[locale]) {\n const localeTranslations = allTranslations[locale]\n // Merge with defaults to fill any missing keys\n return mergeTranslations(defaultTranslations, localeTranslations)\n }\n\n // If single translations provided, use them\n if (initialTranslations) {\n return mergeTranslations(\n defaultTranslations,\n initialTranslations as I18nTranslations\n )\n }\n\n // Fallback to defaults\n return defaultTranslations\n }, [locale, allTranslations, initialTranslations])\n\n // Translation function\n const t = React.useCallback(\n (key: string, params?: Record<string, string | number>): string => {\n const value = getNestedValue(\n translations as unknown as Record<string, unknown>,\n key\n )\n\n if (value === undefined) {\n // Development warning\n if (typeof window !== 'undefined' && window.location.hostname === 'localhost') {\n console.warn(`[i18n] Missing translation key: \"${key}\"`)\n }\n // Return the key as fallback\n return key\n }\n\n return interpolate(value, params)\n },\n [translations]\n )\n\n // Locale change handler\n const setLocale = React.useCallback(\n (newLocale: LocaleCode) => {\n setLocaleState(newLocale)\n onLocaleChange?.(newLocale)\n },\n [onLocaleChange]\n )\n\n // Sync with external locale changes.\n //\n // The comparison moved inside the updater rather than `locale` joining the\n // deps: this effect must run when the PROP changes, not when local state\n // does. Depending on `locale` would re-run it after every `setLocale` call\n // and reset the user's choice back to `initialLocale`.\n React.useEffect(() => {\n setLocaleState((current) => (current === initialLocale ? current : initialLocale))\n }, [initialLocale])\n\n const value = React.useMemo<I18nContextValue>(\n () => ({\n locale,\n translations,\n t,\n setLocale,\n }),\n [locale, translations, t, setLocale]\n )\n\n return <I18nContext.Provider value={value}>{children}</I18nContext.Provider>\n}\n\n/**\n * Hook to access i18n context\n *\n * @example\n * function MyComponent() {\n * const { t, locale, setLocale } = useI18n()\n *\n * return (\n * <div>\n * <p>{t('ui.select.placeholder')}</p>\n * <p>{t('ui.pagination.showing', { from: 1, to: 10, total: 100 })}</p>\n * <button onClick={() => setLocale('ru')}>Switch to Russian</button>\n * </div>\n * )\n * }\n */\nexport function useI18n(): I18nContextValue {\n const context = React.useContext(I18nContext)\n\n if (!context) {\n // Return default implementation if no provider\n // This allows components to work without provider (using English defaults)\n return {\n locale: 'en',\n translations: defaultTranslations,\n t: (key: string, params?: Record<string, string | number>) => {\n const value = getNestedValue(\n defaultTranslations as unknown as Record<string, unknown>,\n key\n )\n if (value === undefined) return key\n return interpolate(value, params)\n },\n setLocale: () => {\n if (typeof window !== 'undefined' && window.location.hostname === 'localhost') {\n console.warn(\n '[i18n] setLocale called but no I18nProvider found. Wrap your app with I18nProvider to enable locale switching.'\n )\n }\n },\n }\n }\n\n return context\n}\n\n/**\n * Hook to get the translation function only\n * Useful when you only need translations without other context values\n *\n * @example\n * function MyComponent() {\n * const t = useTranslation()\n * return <span>{t('ui.form.save')}</span>\n * }\n */\nexport function useTranslation() {\n const { t } = useI18n()\n return t\n}\n\n/**\n * Hook to get current locale\n *\n * @example\n * function MyComponent() {\n * const locale = useLocale()\n * return <span>Current: {locale}</span>\n * }\n */\nexport function useLocale(): LocaleCode {\n const { locale } = useI18n()\n return locale\n}\n\n/**\n * Like `useLocale()`, but returns `null` when no `<I18nProvider>` is\n * mounted instead of falling back to `'en'`. Useful for code that\n * needs to distinguish \"no app locale at all\" from \"app locale is en\"\n * — e.g. speech recognition's `auto` mode wants to fall through to\n * `navigator.language` when the app hasn't set one.\n */\nexport function useLocaleOptional(): LocaleCode | null {\n const context = React.useContext(I18nContext)\n return context?.locale ?? null\n}\n\n/**\n * Alias for useTranslation\n * Lightweight hook that just returns the t function\n * Works with or without I18nProvider (falls back to English)\n *\n * @example\n * function MyComponent() {\n * const t = useT()\n * return <span>{t('ui.form.save')}</span>\n * }\n */\nexport const useT = useTranslation\n\n/**\n * Type-safe translation hook\n *\n * Returns a translation function that only accepts valid keys from your translations type.\n * Use this when you want compile-time checking of translation keys.\n *\n * @example\n * ```typescript\n * import { useTypedT } from '@djangocfg/i18n'\n * import type { I18nTranslations } from '@djangocfg/i18n'\n *\n * function MyComponent() {\n * const t = useTypedT<I18nTranslations>()\n * return <span>{t('ui.form.save')}</span> // OK\n * return <span>{t('ui.form.typo')}</span> // Compile error!\n * }\n * ```\n *\n * @example\n * ```typescript\n * // With merged translations (app + extensions)\n * import type { AppTranslations } from '@/i18n/types'\n *\n * function MyComponent() {\n * const t = useTypedT<AppTranslations>()\n * return <span>{t('leads.form.title')}</span> // OK if leads is in AppTranslations\n * }\n * ```\n */\nexport function useTypedT<T extends object>(): (\n key: import('./utils/path-keys').PathKeys<T>,\n params?: Record<string, string | number>\n) => string {\n const { t } = useI18n()\n return t as (\n key: import('./utils/path-keys').PathKeys<T>,\n params?: Record<string, string | number>\n ) => string\n}\n\n/**\n * Get translation without hook (for class components or non-React contexts)\n * Always uses English defaults, no context support\n *\n * @example\n * // In a class component\n * render() {\n * const title = getT('layouts.errors.somethingWentWrong')\n * return <h1>{title}</h1>\n * }\n *\n * @example\n * // With interpolation\n * const message = getT('ui.pagination.showing', { from: 1, to: 10, total: 100 })\n */\nexport function getT(\n key: string,\n params?: Record<string, string | number>\n): string {\n const value = getNestedValue(\n defaultTranslations as unknown as Record<string, unknown>,\n key\n )\n if (value === undefined) return key\n return interpolate(value, params)\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { useLocaleOptional } from '../chunk-MKK2OTSC.mjs';
1
+ import { useLocaleOptional } from '../chunk-QNCDAJBH.mjs';
2
2
  import { resolveLocale } from '../chunk-WKFYJUNN.mjs';
3
3
  export { LOCALES, resolveLocale } from '../chunk-WKFYJUNN.mjs';
4
4
  import { useMemo } from 'react';
package/dist/index.d.mts CHANGED
@@ -481,7 +481,6 @@ interface I18nTranslations {
481
481
  notice: {
482
482
  /** Title of the notice for `link_not_allowed` (staff accounts sign in by email code) */
483
483
  linkNotAllowedTitle: string;
484
- useEmail: string;
485
484
  /** {provider} is the provider's brand name */
486
485
  retry: string;
487
486
  dismiss: string;
@@ -1017,6 +1016,6 @@ declare function mergeTranslations<T extends Record<string, unknown> = Record<st
1017
1016
  */
1018
1017
  declare function createTranslations(base: I18nTranslations, ...overrides: PartialTranslations[]): I18nTranslations;
1019
1018
 
1020
- declare const useAppT: () => (key: "ui.select.search" | "ui.select.placeholder" | "ui.select.noResults" | "ui.select.selectAll" | "ui.select.clearAll" | "ui.select.moreItems" | "ui.select.loading" | "ui.pagination.previous" | "ui.pagination.next" | "ui.pagination.first" | "ui.pagination.last" | "ui.pagination.page" | "ui.pagination.of" | "ui.pagination.showing" | "ui.dialog.close" | "ui.dialog.confirm" | "ui.dialog.cancel" | "ui.dialog.ok" | "ui.dialog.yes" | "ui.dialog.no" | "ui.dialog.delete" | "ui.dialog.save" | "ui.dialog.discard" | "ui.dialog.alertTitle" | "ui.dialog.confirmTitle" | "ui.dialog.confirmDelete" | "ui.dialog.promptTitle" | "ui.dialog.promptPlaceholder" | "ui.form.loading" | "ui.form.cancel" | "ui.form.delete" | "ui.form.save" | "ui.form.submit" | "ui.form.edit" | "ui.form.create" | "ui.form.update" | "ui.form.reset" | "ui.form.clear" | "ui.form.saving" | "ui.form.deleting" | "ui.form.required" | "ui.form.optional" | "ui.form.minLength" | "ui.form.maxLength" | "ui.form.invalidEmail" | "ui.form.invalidUrl" | "ui.form.invalidPhone" | "ui.form.passwordMismatch" | "ui.datetime.today" | "ui.datetime.yesterday" | "ui.datetime.tomorrow" | "ui.datetime.now" | "ui.datetime.secondsAgo" | "ui.datetime.minutesAgo" | "ui.datetime.hoursAgo" | "ui.datetime.daysAgo" | "ui.datetime.pickDate" | "ui.datetime.pickTime" | "ui.datetime.pickDateTime" | "ui.datetime.pickDateRange" | "ui.file.upload" | "ui.file.uploading" | "ui.file.dragDrop" | "ui.file.browse" | "ui.file.remove" | "ui.file.maxSize" | "ui.file.invalidType" | "ui.file.tooLarge" | "ui.table.filter" | "ui.table.selectAll" | "ui.table.loading" | "ui.table.showing" | "ui.table.noData" | "ui.table.rowsPerPage" | "ui.table.sortAsc" | "ui.table.sortDesc" | "ui.table.clearFilters" | "ui.table.deselectAll" | "ui.table.selected" | "ui.actions.remove" | "ui.actions.view" | "ui.actions.copy" | "ui.actions.copied" | "ui.actions.copyToClipboard" | "ui.actions.download" | "ui.actions.share" | "ui.actions.refresh" | "ui.actions.retry" | "ui.actions.expand" | "ui.actions.collapse" | "ui.actions.showMore" | "ui.actions.showLess" | "ui.actions.seeAll" | "ui.actions.goBack" | "ui.actions.previousSlide" | "ui.actions.nextSlide" | "ui.phone.searchCountries" | "ui.phone.noCountries" | "ui.navigation.title" | "ui.states.loading" | "ui.states.empty" | "ui.states.error" | "ui.states.success" | "ui.states.warning" | "ui.states.info" | "ui.states.pending" | "ui.states.active" | "ui.states.inactive" | "ui.states.enabled" | "ui.states.disabled" | "ui.errors.generic" | "ui.errors.network" | "ui.errors.timeout" | "ui.errors.notFound" | "ui.errors.unauthorized" | "ui.errors.forbidden" | "ui.errors.serverError" | "ui.errors.validation" | "ui.errors.unknown" | "layouts.push.enableNotifications" | "layouts.push.stayUpdated" | "layouts.push.enable" | "layouts.push.notNow" | "layouts.push.dismiss" | "layouts.search.placeholder" | "layouts.search.noResults" | "layouts.search.recentSearches" | "layouts.search.clearHistory" | "layouts.navigation.menu" | "layouts.navigation.home" | "layouts.navigation.back" | "layouts.navigation.forward" | "layouts.navigation.toggleMobile" | "layouts.navigation.breadcrumb" | "layouts.errors.goBack" | "layouts.errors.error" | "layouts.errors.serverError" | "layouts.errors.somethingWentWrong" | "layouts.errors.tryRefreshing" | "layouts.errors.refreshPage" | "layouts.errors.goHome" | "layouts.errors.needHelp" | "layouts.errors.contactSupport" | "layouts.errors.checkStatus" | "layouts.errors.persistsContact" | "layouts.errors.badRequest" | "layouts.errors.authRequired" | "layouts.errors.accessDenied" | "layouts.errors.pageNotFound" | "layouts.errors.requestTimeout" | "layouts.errors.badGateway" | "layouts.errors.serviceUnavailable" | "layouts.errors.gatewayTimeout" | "layouts.errors.badRequestDesc" | "layouts.errors.authRequiredDesc" | "layouts.errors.accessDeniedDesc" | "layouts.errors.pageNotFoundDesc" | "layouts.errors.requestTimeoutDesc" | "layouts.errors.serverErrorDesc" | "layouts.errors.badGatewayDesc" | "layouts.errors.serviceUnavailableDesc" | "layouts.errors.gatewayTimeoutDesc" | "layouts.errors.unknownErrorDesc" | "layouts.sidebar.expand" | "layouts.sidebar.collapse" | "layouts.sidebar.toggle" | "layouts.profile.settings" | "layouts.profile.account" | "layouts.profile.logout" | "layouts.profile.login" | "layouts.profile.signUp" | "layouts.profile.signOut" | "layouts.profile.userMenu" | "layouts.profile.language" | "layouts.theme.toggle" | "layouts.theme.light" | "layouts.theme.dark" | "layouts.theme.system" | "layouts.mobile.closeMenu" | "layouts.auth.success.message" | "layouts.auth.success.redirecting" | "layouts.auth.authRequired" | "layouts.auth.pleaseSignIn" | "layouts.auth.goToSignIn" | "layouts.auth.identifier.placeholder.phone" | "layouts.auth.identifier.placeholder.email" | "layouts.auth.identifier.title" | "layouts.auth.identifier.oauth.continueWith" | "layouts.auth.identifier.oauth.groupLabel" | "layouts.auth.identifier.subtitle.phone" | "layouts.auth.identifier.subtitle.email" | "layouts.auth.identifier.button" | "layouts.auth.identifier.channel.phone" | "layouts.auth.identifier.channel.email" | "layouts.auth.otp.title" | "layouts.auth.otp.subtitle" | "layouts.auth.otp.button" | "layouts.auth.otp.resend" | "layouts.auth.otp.changeEmail" | "layouts.auth.otp.changePhone" | "layouts.auth.otp.openMailbox" | "layouts.auth.twoFactor.placeholder.backup" | "layouts.auth.twoFactor.title" | "layouts.auth.twoFactor.toggle.toBackup" | "layouts.auth.twoFactor.toggle.toTotp" | "layouts.auth.twoFactor.subtitle.backup" | "layouts.auth.twoFactor.subtitle.totp" | "layouts.auth.twoFactor.button" | "layouts.auth.setup.loading.title" | "layouts.auth.setup.loading.button" | "layouts.auth.setup.qrCode.title" | "layouts.auth.setup.qrCode.subtitle" | "layouts.auth.setup.qrCode.button" | "layouts.auth.setup.qrCode.manualEntry" | "layouts.auth.setup.qrCode.confirmPrompt" | "layouts.auth.setup.qrCode.skip" | "layouts.auth.setup.complete.copied" | "layouts.auth.setup.complete.title" | "layouts.auth.setup.complete.subtitle" | "layouts.auth.setup.complete.instruction" | "layouts.auth.setup.complete.copyAll" | "layouts.auth.setup.complete.done" | "layouts.auth.divider.or" | "layouts.auth.oauth.error.generic" | "layouts.auth.oauth.error.invalid_state" | "layouts.auth.oauth.error.oauth_exchange_failed" | "layouts.auth.oauth.error.invalid_id_token" | "layouts.auth.oauth.error.email_missing" | "layouts.auth.oauth.error.email_not_verified" | "layouts.auth.oauth.error.hosted_domain_not_allowed" | "layouts.auth.oauth.error.account_inactive" | "layouts.auth.oauth.error.link_not_allowed" | "layouts.auth.oauth.error.rate_limited" | "layouts.auth.oauth.error.provider_unavailable" | "layouts.auth.oauth.error.not_configured" | "layouts.auth.oauth.error.cancelled" | "layouts.auth.oauth.signingIn" | "layouts.auth.oauth.signingInBody" | "layouts.auth.oauth.notice.retry" | "layouts.auth.oauth.notice.dismiss" | "layouts.auth.oauth.notice.linkNotAllowedTitle" | "layouts.auth.oauth.notice.useEmail" | "layouts.auth.oauth.notice.originNotAllowedHint" | "layouts.auth.footer.terms" | "layouts.auth.footer.privacy" | "layouts.auth.footer.support" | "layouts.auth.dev.anyCodeWorks" | "layouts.pwa.close" | "layouts.pwa.dismiss" | "layouts.pwa.addToHomeScreen" | "layouts.pwa.installApp" | "layouts.pwa.tapToLearnHow" | "layouts.pwa.clickToSeeGuide" | "layouts.pwa.tapToInstall" | "layouts.pwa.installing" | "layouts.pwa.appLogo" | "layouts.pwa.iosTitle" | "layouts.pwa.iosDescription" | "layouts.pwa.iosStep1Title" | "layouts.pwa.iosStep1Desc" | "layouts.pwa.iosStep2Title" | "layouts.pwa.iosStep2Desc" | "layouts.pwa.iosStep3Title" | "layouts.pwa.iosStep3Desc" | "layouts.pwa.gotIt" | "layouts.pwa.desktopTitle" | "layouts.pwa.desktopDescription" | "layouts.pwa.desktopDescSafari" | "layouts.pwa.desktopTip" | "layouts.pwa.desktopFirefoxNote" | "layouts.pwa.chromiumStep1Title" | "layouts.pwa.chromiumStep1Desc" | "layouts.pwa.chromiumStep2Title" | "layouts.pwa.chromiumStep2Desc" | "layouts.pwa.chromiumStep3Title" | "layouts.pwa.chromiumStep3Desc" | "layouts.pwa.firefoxStep1Title" | "layouts.pwa.firefoxStep1Desc" | "layouts.pwa.firefoxStep2Title" | "layouts.pwa.firefoxStep2Desc" | "layouts.pwa.firefoxStep3Title" | "layouts.pwa.firefoxStep3Desc" | "layouts.pwa.safariStep1Title" | "layouts.pwa.safariStep1Desc" | "layouts.pwa.safariStep2Title" | "layouts.pwa.safariStep2Desc" | "layouts.pwa.unknownStep1Title" | "layouts.pwa.unknownStep1Desc" | "layouts.pwa.unknownStep2Title" | "layouts.pwa.unknownStep2Desc" | "layouts.pwa.unknownStep3Title" | "layouts.pwa.unknownStep3Desc" | "layouts.profilePage.actions" | "layouts.profilePage.phone" | "layouts.profilePage.cancel" | "layouts.profilePage.save" | "layouts.profilePage.saving" | "layouts.profilePage.deleting" | "layouts.profilePage.title" | "layouts.profilePage.account" | "layouts.profilePage.signOut" | "layouts.profilePage.email" | "layouts.profilePage.personalInfo" | "layouts.profilePage.work" | "layouts.profilePage.security" | "layouts.profilePage.firstName" | "layouts.profilePage.lastName" | "layouts.profilePage.company" | "layouts.profilePage.position" | "layouts.profilePage.notSet" | "layouts.profilePage.addFirstName" | "layouts.profilePage.addLastName" | "layouts.profilePage.addPhone" | "layouts.profilePage.addCompany" | "layouts.profilePage.addPosition" | "layouts.profilePage.on" | "layouts.profilePage.off" | "layouts.profilePage.deleteAccount" | "layouts.profilePage.twoFactorAuth" | "layouts.profilePage.twoFactorEnabled" | "layouts.profilePage.twoFactorDisabled" | "layouts.profilePage.enable2FA" | "layouts.profilePage.avatar" | "layouts.profilePage.changeAvatar" | "layouts.profilePage.memberSince" | "layouts.profilePage.enterField" | "layouts.profilePage.profileUpdated" | "layouts.profilePage.avatarUpdated" | "layouts.profilePage.failedToUpdate" | "layouts.profilePage.failedToUploadAvatar" | "layouts.profilePage.selectImageFile" | "layouts.profilePage.fileTooLarge" | "layouts.profilePage.notAuthenticated" | "layouts.profilePage.pleaseLogIn" | "layouts.profilePage.deleteAccountTitle" | "layouts.profilePage.deleteAccountDesc" | "layouts.profilePage.typeToConfirm" | "layouts.profilePage.confirmationWord" | "api.errors.requestTimeout" | "api.errors.networkError" | "api.errors.connectionFailed" | "api.errors.serverUnavailable" | "api.errors.invalidResponse" | "api.errors.rateLimited" | "api.logout.confirm" | "api.logout.cancel" | "api.logout.title" | "api.logout.message" | "api.status.connecting" | "api.status.connected" | "api.status.disconnected" | "api.status.reconnecting" | "tools.form.title" | "tools.upload.cancel" | "tools.upload.uploading" | "tools.upload.dragDrop" | "tools.upload.remove" | "tools.upload.maxSize" | "tools.upload.retry" | "tools.upload.pending" | "tools.upload.dropHere" | "tools.upload.uploaded" | "tools.upload.failed" | "tools.upload.paused" | "tools.code.copyCode" | "tools.code.noContent" | "tools.diagram.title" | "tools.diagram.clickToView" | "tools.image.noImage" | "tools.image.failedToLoad" | "tools.image.zoomIn" | "tools.image.zoomOut" | "tools.image.fitToView" | "tools.image.flipHorizontal" | "tools.image.flipVertical" | "tools.image.rotate" | "tools.image.fullscreen" | "tools.gallery.previous" | "tools.gallery.next" | "tools.gallery.close" | "tools.gallery.download" | "tools.gallery.share" | "tools.gallery.noImages" | "tools.gallery.lightbox" | "tools.video.fullscreen" | "tools.video.play" | "tools.video.unavailable" | "tools.audio.back" | "tools.audio.forward" | "tools.audio.restart" | "tools.audio.volume" | "tools.color.pick" | "tools.jsonForm.validationErrors" | "tools.jsonForm.addItem" | "tools.jsonForm.addFirstItem" | "tools.jsonForm.noItems" | "tools.openapi.navigation" | "tools.openapi.previous" | "tools.openapi.next" | "tools.openapi.required" | "tools.openapi.optional" | "tools.openapi.response" | "tools.openapi.noResponse" | "tools.openapi.searchEndpoints" | "tools.openapi.all" | "tools.openapi.methods" | "tools.openapi.path" | "tools.openapi.description" | "tools.openapi.bearerToken" | "tools.tour.previous" | "tools.tour.next" | "tools.tour.close" | "tools.tour.skip" | "tools.tour.finish" | "tools.tour.stepOf", params?: Record<string, string | number>) => string;
1019
+ declare const useAppT: () => (key: "ui.select.search" | "ui.select.placeholder" | "ui.select.noResults" | "ui.select.selectAll" | "ui.select.clearAll" | "ui.select.moreItems" | "ui.select.loading" | "ui.pagination.previous" | "ui.pagination.next" | "ui.pagination.first" | "ui.pagination.last" | "ui.pagination.page" | "ui.pagination.of" | "ui.pagination.showing" | "ui.dialog.close" | "ui.dialog.confirm" | "ui.dialog.cancel" | "ui.dialog.ok" | "ui.dialog.yes" | "ui.dialog.no" | "ui.dialog.delete" | "ui.dialog.save" | "ui.dialog.discard" | "ui.dialog.alertTitle" | "ui.dialog.confirmTitle" | "ui.dialog.confirmDelete" | "ui.dialog.promptTitle" | "ui.dialog.promptPlaceholder" | "ui.form.loading" | "ui.form.cancel" | "ui.form.delete" | "ui.form.save" | "ui.form.submit" | "ui.form.edit" | "ui.form.create" | "ui.form.update" | "ui.form.reset" | "ui.form.clear" | "ui.form.saving" | "ui.form.deleting" | "ui.form.required" | "ui.form.optional" | "ui.form.minLength" | "ui.form.maxLength" | "ui.form.invalidEmail" | "ui.form.invalidUrl" | "ui.form.invalidPhone" | "ui.form.passwordMismatch" | "ui.datetime.today" | "ui.datetime.yesterday" | "ui.datetime.tomorrow" | "ui.datetime.now" | "ui.datetime.secondsAgo" | "ui.datetime.minutesAgo" | "ui.datetime.hoursAgo" | "ui.datetime.daysAgo" | "ui.datetime.pickDate" | "ui.datetime.pickTime" | "ui.datetime.pickDateTime" | "ui.datetime.pickDateRange" | "ui.file.upload" | "ui.file.uploading" | "ui.file.dragDrop" | "ui.file.browse" | "ui.file.remove" | "ui.file.maxSize" | "ui.file.invalidType" | "ui.file.tooLarge" | "ui.table.filter" | "ui.table.selectAll" | "ui.table.loading" | "ui.table.showing" | "ui.table.noData" | "ui.table.rowsPerPage" | "ui.table.sortAsc" | "ui.table.sortDesc" | "ui.table.clearFilters" | "ui.table.deselectAll" | "ui.table.selected" | "ui.actions.remove" | "ui.actions.view" | "ui.actions.copy" | "ui.actions.copied" | "ui.actions.copyToClipboard" | "ui.actions.download" | "ui.actions.share" | "ui.actions.refresh" | "ui.actions.retry" | "ui.actions.expand" | "ui.actions.collapse" | "ui.actions.showMore" | "ui.actions.showLess" | "ui.actions.seeAll" | "ui.actions.goBack" | "ui.actions.previousSlide" | "ui.actions.nextSlide" | "ui.phone.searchCountries" | "ui.phone.noCountries" | "ui.navigation.title" | "ui.states.loading" | "ui.states.empty" | "ui.states.error" | "ui.states.success" | "ui.states.warning" | "ui.states.info" | "ui.states.pending" | "ui.states.active" | "ui.states.inactive" | "ui.states.enabled" | "ui.states.disabled" | "ui.errors.generic" | "ui.errors.network" | "ui.errors.timeout" | "ui.errors.notFound" | "ui.errors.unauthorized" | "ui.errors.forbidden" | "ui.errors.serverError" | "ui.errors.validation" | "ui.errors.unknown" | "layouts.push.enableNotifications" | "layouts.push.stayUpdated" | "layouts.push.enable" | "layouts.push.notNow" | "layouts.push.dismiss" | "layouts.search.placeholder" | "layouts.search.noResults" | "layouts.search.recentSearches" | "layouts.search.clearHistory" | "layouts.navigation.menu" | "layouts.navigation.home" | "layouts.navigation.back" | "layouts.navigation.forward" | "layouts.navigation.toggleMobile" | "layouts.navigation.breadcrumb" | "layouts.errors.goBack" | "layouts.errors.error" | "layouts.errors.serverError" | "layouts.errors.somethingWentWrong" | "layouts.errors.tryRefreshing" | "layouts.errors.refreshPage" | "layouts.errors.goHome" | "layouts.errors.needHelp" | "layouts.errors.contactSupport" | "layouts.errors.checkStatus" | "layouts.errors.persistsContact" | "layouts.errors.badRequest" | "layouts.errors.authRequired" | "layouts.errors.accessDenied" | "layouts.errors.pageNotFound" | "layouts.errors.requestTimeout" | "layouts.errors.badGateway" | "layouts.errors.serviceUnavailable" | "layouts.errors.gatewayTimeout" | "layouts.errors.badRequestDesc" | "layouts.errors.authRequiredDesc" | "layouts.errors.accessDeniedDesc" | "layouts.errors.pageNotFoundDesc" | "layouts.errors.requestTimeoutDesc" | "layouts.errors.serverErrorDesc" | "layouts.errors.badGatewayDesc" | "layouts.errors.serviceUnavailableDesc" | "layouts.errors.gatewayTimeoutDesc" | "layouts.errors.unknownErrorDesc" | "layouts.sidebar.expand" | "layouts.sidebar.collapse" | "layouts.sidebar.toggle" | "layouts.profile.settings" | "layouts.profile.account" | "layouts.profile.logout" | "layouts.profile.login" | "layouts.profile.signUp" | "layouts.profile.signOut" | "layouts.profile.userMenu" | "layouts.profile.language" | "layouts.theme.toggle" | "layouts.theme.light" | "layouts.theme.dark" | "layouts.theme.system" | "layouts.mobile.closeMenu" | "layouts.auth.success.message" | "layouts.auth.success.redirecting" | "layouts.auth.authRequired" | "layouts.auth.pleaseSignIn" | "layouts.auth.goToSignIn" | "layouts.auth.identifier.placeholder.phone" | "layouts.auth.identifier.placeholder.email" | "layouts.auth.identifier.title" | "layouts.auth.identifier.oauth.continueWith" | "layouts.auth.identifier.oauth.groupLabel" | "layouts.auth.identifier.subtitle.phone" | "layouts.auth.identifier.subtitle.email" | "layouts.auth.identifier.button" | "layouts.auth.identifier.channel.phone" | "layouts.auth.identifier.channel.email" | "layouts.auth.otp.title" | "layouts.auth.otp.subtitle" | "layouts.auth.otp.button" | "layouts.auth.otp.resend" | "layouts.auth.otp.changeEmail" | "layouts.auth.otp.changePhone" | "layouts.auth.otp.openMailbox" | "layouts.auth.twoFactor.placeholder.backup" | "layouts.auth.twoFactor.title" | "layouts.auth.twoFactor.toggle.toBackup" | "layouts.auth.twoFactor.toggle.toTotp" | "layouts.auth.twoFactor.subtitle.backup" | "layouts.auth.twoFactor.subtitle.totp" | "layouts.auth.twoFactor.button" | "layouts.auth.setup.loading.title" | "layouts.auth.setup.loading.button" | "layouts.auth.setup.qrCode.title" | "layouts.auth.setup.qrCode.subtitle" | "layouts.auth.setup.qrCode.button" | "layouts.auth.setup.qrCode.manualEntry" | "layouts.auth.setup.qrCode.confirmPrompt" | "layouts.auth.setup.qrCode.skip" | "layouts.auth.setup.complete.copied" | "layouts.auth.setup.complete.title" | "layouts.auth.setup.complete.subtitle" | "layouts.auth.setup.complete.instruction" | "layouts.auth.setup.complete.copyAll" | "layouts.auth.setup.complete.done" | "layouts.auth.divider.or" | "layouts.auth.oauth.error.generic" | "layouts.auth.oauth.error.invalid_state" | "layouts.auth.oauth.error.oauth_exchange_failed" | "layouts.auth.oauth.error.invalid_id_token" | "layouts.auth.oauth.error.email_missing" | "layouts.auth.oauth.error.email_not_verified" | "layouts.auth.oauth.error.hosted_domain_not_allowed" | "layouts.auth.oauth.error.account_inactive" | "layouts.auth.oauth.error.link_not_allowed" | "layouts.auth.oauth.error.rate_limited" | "layouts.auth.oauth.error.provider_unavailable" | "layouts.auth.oauth.error.not_configured" | "layouts.auth.oauth.error.cancelled" | "layouts.auth.oauth.signingIn" | "layouts.auth.oauth.signingInBody" | "layouts.auth.oauth.notice.retry" | "layouts.auth.oauth.notice.dismiss" | "layouts.auth.oauth.notice.linkNotAllowedTitle" | "layouts.auth.oauth.notice.originNotAllowedHint" | "layouts.auth.footer.terms" | "layouts.auth.footer.privacy" | "layouts.auth.footer.support" | "layouts.auth.dev.anyCodeWorks" | "layouts.pwa.close" | "layouts.pwa.dismiss" | "layouts.pwa.addToHomeScreen" | "layouts.pwa.installApp" | "layouts.pwa.tapToLearnHow" | "layouts.pwa.clickToSeeGuide" | "layouts.pwa.tapToInstall" | "layouts.pwa.installing" | "layouts.pwa.appLogo" | "layouts.pwa.iosTitle" | "layouts.pwa.iosDescription" | "layouts.pwa.iosStep1Title" | "layouts.pwa.iosStep1Desc" | "layouts.pwa.iosStep2Title" | "layouts.pwa.iosStep2Desc" | "layouts.pwa.iosStep3Title" | "layouts.pwa.iosStep3Desc" | "layouts.pwa.gotIt" | "layouts.pwa.desktopTitle" | "layouts.pwa.desktopDescription" | "layouts.pwa.desktopDescSafari" | "layouts.pwa.desktopTip" | "layouts.pwa.desktopFirefoxNote" | "layouts.pwa.chromiumStep1Title" | "layouts.pwa.chromiumStep1Desc" | "layouts.pwa.chromiumStep2Title" | "layouts.pwa.chromiumStep2Desc" | "layouts.pwa.chromiumStep3Title" | "layouts.pwa.chromiumStep3Desc" | "layouts.pwa.firefoxStep1Title" | "layouts.pwa.firefoxStep1Desc" | "layouts.pwa.firefoxStep2Title" | "layouts.pwa.firefoxStep2Desc" | "layouts.pwa.firefoxStep3Title" | "layouts.pwa.firefoxStep3Desc" | "layouts.pwa.safariStep1Title" | "layouts.pwa.safariStep1Desc" | "layouts.pwa.safariStep2Title" | "layouts.pwa.safariStep2Desc" | "layouts.pwa.unknownStep1Title" | "layouts.pwa.unknownStep1Desc" | "layouts.pwa.unknownStep2Title" | "layouts.pwa.unknownStep2Desc" | "layouts.pwa.unknownStep3Title" | "layouts.pwa.unknownStep3Desc" | "layouts.profilePage.actions" | "layouts.profilePage.phone" | "layouts.profilePage.cancel" | "layouts.profilePage.save" | "layouts.profilePage.saving" | "layouts.profilePage.deleting" | "layouts.profilePage.title" | "layouts.profilePage.account" | "layouts.profilePage.signOut" | "layouts.profilePage.email" | "layouts.profilePage.personalInfo" | "layouts.profilePage.work" | "layouts.profilePage.security" | "layouts.profilePage.firstName" | "layouts.profilePage.lastName" | "layouts.profilePage.company" | "layouts.profilePage.position" | "layouts.profilePage.notSet" | "layouts.profilePage.addFirstName" | "layouts.profilePage.addLastName" | "layouts.profilePage.addPhone" | "layouts.profilePage.addCompany" | "layouts.profilePage.addPosition" | "layouts.profilePage.on" | "layouts.profilePage.off" | "layouts.profilePage.deleteAccount" | "layouts.profilePage.twoFactorAuth" | "layouts.profilePage.twoFactorEnabled" | "layouts.profilePage.twoFactorDisabled" | "layouts.profilePage.enable2FA" | "layouts.profilePage.avatar" | "layouts.profilePage.changeAvatar" | "layouts.profilePage.memberSince" | "layouts.profilePage.enterField" | "layouts.profilePage.profileUpdated" | "layouts.profilePage.avatarUpdated" | "layouts.profilePage.failedToUpdate" | "layouts.profilePage.failedToUploadAvatar" | "layouts.profilePage.selectImageFile" | "layouts.profilePage.fileTooLarge" | "layouts.profilePage.notAuthenticated" | "layouts.profilePage.pleaseLogIn" | "layouts.profilePage.deleteAccountTitle" | "layouts.profilePage.deleteAccountDesc" | "layouts.profilePage.typeToConfirm" | "layouts.profilePage.confirmationWord" | "api.errors.requestTimeout" | "api.errors.networkError" | "api.errors.connectionFailed" | "api.errors.serverUnavailable" | "api.errors.invalidResponse" | "api.errors.rateLimited" | "api.logout.confirm" | "api.logout.cancel" | "api.logout.title" | "api.logout.message" | "api.status.connecting" | "api.status.connected" | "api.status.disconnected" | "api.status.reconnecting" | "tools.form.title" | "tools.upload.cancel" | "tools.upload.uploading" | "tools.upload.dragDrop" | "tools.upload.remove" | "tools.upload.maxSize" | "tools.upload.retry" | "tools.upload.pending" | "tools.upload.dropHere" | "tools.upload.uploaded" | "tools.upload.failed" | "tools.upload.paused" | "tools.code.copyCode" | "tools.code.noContent" | "tools.diagram.title" | "tools.diagram.clickToView" | "tools.image.noImage" | "tools.image.failedToLoad" | "tools.image.zoomIn" | "tools.image.zoomOut" | "tools.image.fitToView" | "tools.image.flipHorizontal" | "tools.image.flipVertical" | "tools.image.rotate" | "tools.image.fullscreen" | "tools.gallery.previous" | "tools.gallery.next" | "tools.gallery.close" | "tools.gallery.download" | "tools.gallery.share" | "tools.gallery.noImages" | "tools.gallery.lightbox" | "tools.video.fullscreen" | "tools.video.play" | "tools.video.unavailable" | "tools.audio.back" | "tools.audio.forward" | "tools.audio.restart" | "tools.audio.volume" | "tools.color.pick" | "tools.jsonForm.validationErrors" | "tools.jsonForm.addItem" | "tools.jsonForm.addFirstItem" | "tools.jsonForm.noItems" | "tools.openapi.navigation" | "tools.openapi.previous" | "tools.openapi.next" | "tools.openapi.required" | "tools.openapi.optional" | "tools.openapi.response" | "tools.openapi.noResponse" | "tools.openapi.searchEndpoints" | "tools.openapi.all" | "tools.openapi.methods" | "tools.openapi.path" | "tools.openapi.description" | "tools.openapi.bearerToken" | "tools.tour.previous" | "tools.tour.next" | "tools.tour.close" | "tools.tour.skip" | "tools.tour.finish" | "tools.tour.stepOf", params?: Record<string, string | number>) => string;
1021
1020
 
1022
1021
  export { type DeepPartial, type I18nContextValue, type I18nKeys, I18nProvider, type I18nProviderProps, type I18nTranslationFn, type I18nTranslations, type IntlTranslator, type LocaleCode, type MessageKeys, type NamespaceKeys, type NestedKeyOf, type NestedValueOf, type PartialTranslations, type PathKeys, type TranslationFn, type TranslationKeys, type TypedTranslationFn, createTranslations, en, getT, interpolate, ko, mergeTranslations, ru, useAppT, useI18n, useLocale, useLocaleOptional, useT, useTranslation, useTypedT };
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { useTypedT } from './chunk-MKK2OTSC.mjs';
2
- export { I18nProvider, createTranslations, en, getT, interpolate, mergeTranslations, useI18n, useLocale, useLocaleOptional, useT, useTranslation, useTypedT } from './chunk-MKK2OTSC.mjs';
1
+ import { useTypedT } from './chunk-QNCDAJBH.mjs';
2
+ export { I18nProvider, createTranslations, en, getT, interpolate, mergeTranslations, useI18n, useLocale, useLocaleOptional, useT, useTranslation, useTypedT } from './chunk-QNCDAJBH.mjs';
3
3
 
4
4
  // src/locales/ru.ts
5
5
  var ru = {
@@ -307,7 +307,6 @@ var ru = {
307
307
  signingInBody: "\u041F\u043E\u0434\u043E\u0436\u0434\u0438\u0442\u0435, \u043C\u044B \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u043C \u0432\u0445\u043E\u0434 \u0447\u0435\u0440\u0435\u0437 {provider}.",
308
308
  notice: {
309
309
  linkNotAllowedTitle: "\u0414\u043B\u044F \u044D\u0442\u043E\u0433\u043E \u0430\u0434\u0440\u0435\u0441\u0430 \u0432\u0445\u043E\u0434 \u043F\u043E \u043A\u043E\u0434\u0443 \u0438\u0437 \u043F\u0438\u0441\u044C\u043C\u0430",
310
- useEmail: "\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0441 \u043F\u043E\u0447\u0442\u043E\u0439",
311
310
  retry: "\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C \u0432\u0445\u043E\u0434 \u0447\u0435\u0440\u0435\u0437 {provider}",
312
311
  dismiss: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C",
313
312
  originNotAllowedHint: "\u0414\u043B\u044F \u0440\u0430\u0437\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u043E\u0432: {origin} \u043D\u0435 \u0432\u0445\u043E\u0434\u0438\u0442 \u0432 origins \u0441\u0430\u0439\u0442\u0430 Django. \u0414\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u0435\u0433\u043E \u0432 origins \u0441\u0430\u0439\u0442\u0430 \u0438 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0439\u0442\u0435 {origin}/auth?provider={id} \u043A\u0430\u043A redirect URI \u0443 \u043F\u0440\u043E\u0432\u0430\u0439\u0434\u0435\u0440\u0430."
@@ -852,7 +851,6 @@ var ko = {
852
851
  signingInBody: "{provider} \uB85C\uADF8\uC778\uC744 \uC644\uB8CC\uD558\uB294 \uB3D9\uC548 \uC7A0\uC2DC \uAE30\uB2E4\uB824 \uC8FC\uC138\uC694.",
853
852
  notice: {
854
853
  linkNotAllowedTitle: "\uC774 \uC8FC\uC18C\uB294 \uC774\uBA54\uC77C \uCF54\uB4DC\uB97C \uC0AC\uC6A9\uD558\uC138\uC694",
855
- useEmail: "\uC774\uBA54\uC77C\uB85C \uACC4\uC18D",
856
854
  retry: "{provider}\uB85C \uB2E4\uC2DC \uC2DC\uB3C4",
857
855
  dismiss: "\uB2EB\uAE30",
858
856
  originNotAllowedHint: "\uAC1C\uBC1C\uC790\uC6A9: {origin}\uC740(\uB294) Django \uC0AC\uC774\uD2B8\uC758 origin\uC774 \uC544\uB2D9\uB2C8\uB2E4. \uC0AC\uC774\uD2B8 origins\uC5D0 \uCD94\uAC00\uD558\uACE0, \uC81C\uACF5\uC5C5\uCCB4\uC5D0 {origin}/auth?provider={id}\uB97C \uB9AC\uB514\uB809\uC158 URI\uB85C \uB4F1\uB85D\uD558\uC138\uC694."
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/locales/ru.ts","../src/locales/ko.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["import type { I18nTranslations } from '../types'\n\n/**\n * Russian translations\n */\nexport const ru: I18nTranslations = {\n ui: {\n select: {\n placeholder: \"Выберите...\",\n search: \"Поиск...\",\n noResults: \"Ничего не найдено.\",\n selectAll: \"Выбрать все\",\n clearAll: \"Очистить все\",\n moreItems: \"+{count} ещё\",\n loading: \"Загрузка...\",\n },\n pagination: {\n previous: \"Назад\",\n next: \"Вперёд\",\n first: \"В начало\",\n last: \"В конец\",\n page: \"Страница {page}\",\n of: \"из {total}\",\n showing: \"{from}-{to} из {total}\",\n },\n dialog: {\n close: \"Закрыть\",\n confirm: \"Подтвердить\",\n cancel: \"Отмена\",\n ok: \"ОК\",\n yes: \"Да\",\n no: \"Нет\",\n delete: \"Удалить\",\n save: \"Сохранить\",\n discard: \"Отменить\",\n alertTitle: \"Уведомление\",\n confirmTitle: \"Подтверждение\",\n confirmDelete: \"Вы уверены, что хотите удалить?\",\n promptTitle: \"Введите значение\",\n promptPlaceholder: \"Введите...\",\n },\n form: {\n submit: \"Отправить\",\n cancel: \"Отмена\",\n save: \"Сохранить\",\n delete: \"Удалить\",\n edit: \"Редактировать\",\n create: \"Создать\",\n update: \"Обновить\",\n reset: \"Сбросить\",\n clear: \"Очистить\",\n loading: \"Загрузка...\",\n saving: \"Сохранение...\",\n deleting: \"Удаление...\",\n required: \"Обязательное поле\",\n optional: \"Необязательно\",\n minLength: \"Минимум {min} символов\",\n maxLength: \"Максимум {max} символов\",\n invalidEmail: \"Введите корректный email\",\n invalidUrl: \"Введите корректный URL\",\n invalidPhone: \"Введите корректный номер телефона\",\n passwordMismatch: \"Пароли не совпадают\",\n },\n datetime: {\n today: \"Сегодня\",\n yesterday: \"Вчера\",\n tomorrow: \"Завтра\",\n now: \"Только что\",\n secondsAgo: \"{count} секунд назад\",\n minutesAgo: \"{count} минут назад\",\n hoursAgo: \"{count} часов назад\",\n daysAgo: \"{count} дней назад\",\n pickDate: \"Выберите дату\",\n pickTime: \"Выберите время\",\n pickDateTime: \"Выберите дату и время\",\n pickDateRange: \"Выберите период\",\n },\n file: {\n upload: \"Загрузить\",\n uploading: \"Загрузка...\",\n dragDrop: \"Перетащите файлы сюда\",\n browse: \"Выбрать файлы\",\n remove: \"Удалить\",\n maxSize: \"Макс. размер: {size}\",\n invalidType: \"Неверный тип файла\",\n tooLarge: \"Файл слишком большой\",\n },\n table: {\n noData: \"Нет данных\",\n loading: \"Загрузка данных...\",\n showing: \"Показано {from}-{to} из {total}\",\n rowsPerPage: \"Строк на странице\",\n sortAsc: \"Сортировка по возрастанию\",\n sortDesc: \"Сортировка по убыванию\",\n filter: \"Фильтр\",\n clearFilters: \"Сбросить фильтры\",\n selectAll: \"Выбрать все\",\n deselectAll: \"Снять выделение\",\n selected: \"Выбрано: {count}\",\n },\n actions: {\n view: \"Просмотр\",\n copy: \"Копировать\",\n copied: \"Скопировано!\",\n copyToClipboard: \"Копировать в буфер\",\n download: \"Скачать\",\n share: \"Поделиться\",\n refresh: \"Обновить\",\n retry: \"Повторить\",\n expand: \"Развернуть\",\n collapse: \"Свернуть\",\n showMore: \"Показать больше\",\n showLess: \"Показать меньше\",\n seeAll: \"Смотреть все\",\n goBack: \"Назад\",\n remove: \"Удалить\",\n previousSlide: \"Предыдущий слайд\",\n nextSlide: \"Следующий слайд\",\n },\n phone: {\n searchCountries: \"Поиск стран...\",\n noCountries: \"Страны не найдены\",\n },\n navigation: {\n title: \"Навигация\",\n },\n states: {\n loading: \"Загрузка\",\n empty: \"Пусто\",\n error: \"Ошибка\",\n success: \"Успешно\",\n warning: \"Предупреждение\",\n info: \"Информация\",\n pending: \"Ожидание\",\n active: \"Активно\",\n inactive: \"Неактивно\",\n enabled: \"Включено\",\n disabled: \"Отключено\",\n },\n errors: {\n generic: \"Что-то пошло не так\",\n network: \"Ошибка сети. Проверьте подключение.\",\n timeout: \"Время ожидания истекло. Попробуйте ещё раз.\",\n notFound: \"Не найдено\",\n unauthorized: \"Войдите в аккаунт для продолжения\",\n forbidden: \"У вас нет доступа\",\n serverError: \"Ошибка сервера. Попробуйте позже.\",\n validation: \"Проверьте правильность заполнения формы\",\n unknown: \"Произошла неизвестная ошибка\",\n },\n },\n layouts: {\n sidebar: {\n toggle: \"Переключить боковую панель\",\n collapse: \"Свернуть панель\",\n expand: \"Развернуть панель\",\n },\n navigation: {\n menu: \"Меню\",\n home: \"Главная\",\n back: \"Назад\",\n forward: \"Вперёд\",\n toggleMobile: \"Открыть мобильное меню\",\n breadcrumb: \"Навигация\",\n },\n profile: {\n settings: \"Настройки\",\n account: \"Аккаунт\",\n logout: \"Выйти\",\n login: \"Войти\",\n signUp: \"Регистрация\",\n signOut: \"Выйти\",\n userMenu: \"Меню пользователя\",\n language: \"Язык\",\n },\n theme: {\n toggle: \"Сменить тему\",\n light: \"Светлая\",\n dark: \"Тёмная\",\n system: \"Системная\",\n },\n search: {\n placeholder: \"Поиск...\",\n noResults: \"Ничего не найдено\",\n recentSearches: \"Недавние запросы\",\n clearHistory: \"Очистить историю\",\n },\n mobile: {\n closeMenu: \"Закрыть меню\",\n },\n errors: {\n somethingWentWrong: \"Что-то пошло не так\",\n tryRefreshing: \"Произошла непредвиденная ошибка. Попробуйте обновить страницу.\",\n refreshPage: \"Обновить страницу\",\n goBack: \"Назад\",\n goHome: \"На главную\",\n needHelp: \"Нужна помощь?\",\n contactSupport: \"Связаться с поддержкой\",\n checkStatus: \"Проверить статус сервисов\",\n persistsContact: \"Если проблема повторяется, свяжитесь с {email}\",\n error: \"Ошибка\",\n badRequest: \"Неверный запрос\",\n authRequired: \"Требуется авторизация\",\n accessDenied: \"Доступ запрещён\",\n pageNotFound: \"Страница не найдена\",\n requestTimeout: \"Время ожидания истекло\",\n serverError: \"Ошибка сервера\",\n badGateway: \"Ошибка шлюза\",\n serviceUnavailable: \"Сервис недоступен\",\n gatewayTimeout: \"Время ожидания шлюза истекло\",\n badRequestDesc: \"Запрос не может быть обработан. Проверьте введённые данные и попробуйте снова.\",\n authRequiredDesc: \"Для доступа к этой странице необходимо войти в систему.\",\n accessDeniedDesc: \"У вас нет прав для доступа к этому ресурсу.\",\n pageNotFoundDesc: \"Страница, которую вы ищете, не существует или была перемещена.\",\n requestTimeoutDesc: \"Обработка запроса заняла слишком много времени. Попробуйте ещё раз.\",\n serverErrorDesc: \"Произошла ошибка на сервере. Мы работаем над её исправлением.\",\n badGatewayDesc: \"Сервер получил неверный ответ. Попробуйте позже.\",\n serviceUnavailableDesc: \"Сервис временно недоступен. Попробуйте позже.\",\n gatewayTimeoutDesc: \"Сервер слишком долго отвечает. Попробуйте ещё раз.\",\n unknownErrorDesc: \"Произошла непредвиденная ошибка. Попробуйте снова или свяжитесь с поддержкой.\",\n },\n push: {\n enableNotifications: \"Включить уведомления\",\n stayUpdated: \"Получайте важные обновления и оповещения\",\n enable: \"Включить\",\n notNow: \"Не сейчас\",\n dismiss: \"Закрыть\",\n },\n auth: {\n authRequired: \"Требуется авторизация\",\n pleaseSignIn: \"Пожалуйста, войдите для продолжения\",\n goToSignIn: \"Перейти к входу\",\n identifier: {\n title: \"Вход\",\n subtitle: {\n email: \"Введите email для продолжения\",\n phone: \"Введите номер телефона для продолжения\",\n },\n placeholder: {\n email: \"email@example.com\",\n phone: \"Введите номер телефона\",\n },\n button: \"Продолжить\",\n oauth: {\n continueWith: \"Войти через {provider}\",\n groupLabel: \"Войти через сторонний сервис\",\n },\n channel: {\n email: \"Email\",\n phone: \"Телефон\",\n },\n },\n otp: {\n title: \"Введите код\",\n subtitle: \"Мы отправили код на\",\n button: \"Подтвердить\",\n resend: \"Отправить повторно\",\n changeEmail: \"Изменить email\",\n changePhone: \"Изменить телефон\",\n openMailbox: \"Открыть {provider}\",\n },\n twoFactor: {\n title: \"Двухфакторная аутентификация\",\n subtitle: {\n totp: \"Введите 6-значный код из приложения-аутентификатора\",\n backup: \"Введите один из резервных кодов\",\n },\n placeholder: {\n backup: \"XXXXXXXX\",\n },\n button: \"Подтвердить\",\n toggle: {\n toBackup: \"Использовать резервный код\",\n toTotp: \"Использовать приложение\",\n },\n },\n setup: {\n loading: {\n title: \"Настройка...\",\n button: \"Загрузка\",\n },\n qrCode: {\n title: \"Настройка 2FA\",\n subtitle: \"Отсканируйте QR-код приложением-аутентификатором\",\n manualEntry: \"Не можете сканировать? Введите вручную\",\n confirmPrompt: \"Введите 6-значный код для подтверждения\",\n button: \"Включить 2FA\",\n skip: \"Пропустить\",\n },\n complete: {\n title: \"2FA включена\",\n subtitle: \"Сохраните резервные коды в безопасном месте\",\n instruction: \"Каждый код можно использовать только один раз\",\n copyAll: \"Копировать все коды\",\n copied: \"Скопировано\",\n done: \"Готово\",\n },\n },\n success: {\n message: \"Вход выполнен успешно\",\n redirecting: \"Переходим…\",\n },\n divider: {\n or: \"или\",\n },\n oauth: {\n signingIn: \"Выполняем вход…\",\n signingInBody: \"Подождите, мы завершаем вход через {provider}.\",\n notice: {\n linkNotAllowedTitle: \"Для этого адреса вход по коду из письма\",\n useEmail: \"Продолжить с почтой\",\n retry: \"Повторить вход через {provider}\",\n dismiss: \"Закрыть\",\n originNotAllowedHint: \"Для разработчиков: {origin} не входит в origins сайта Django. Добавьте его в origins сайта и зарегистрируйте {origin}/auth?provider={id} как redirect URI у провайдера.\",\n },\n error: {\n invalid_state: \"Ссылка для входа устарела. Попробуйте ещё раз.\",\n oauth_exchange_failed: \"Провайдер не принял вход. Попробуйте ещё раз.\",\n invalid_id_token: \"Не удалось подтвердить вход. Попробуйте ещё раз.\",\n email_missing: \"Провайдер не передал адрес почты. Выберите другой способ входа.\",\n email_not_verified: \"Провайдер не подтвердил вашу почту. Подтвердите её там или войдите другим способом.\",\n hosted_domain_not_allowed: \"Аккаунты с этим доменом не могут войти здесь.\",\n account_inactive: \"Аккаунт отключён. Обратитесь в поддержку.\",\n link_not_allowed: \"Вход через {provider} недоступен для этого аккаунта. Получите код по почте.\",\n rate_limited: \"Слишком много попыток. Подождите немного и повторите.\",\n provider_unavailable: \"Провайдер сейчас недоступен. Попробуйте чуть позже.\",\n not_configured: \"Вход через {provider} недоступен на этом сайте. Войдите по почте.\",\n cancelled: \"Вход отменён.\",\n generic: \"Не удалось войти. Попробуйте ещё раз или войдите по почте.\",\n },\n },\n footer: {\n terms: \"Условия\",\n privacy: \"Конфиденциальность\",\n support: \"Поддержка\",\n },\n dev: {\n anyCodeWorks: \"Режим разработки: подойдёт любой код\",\n },\n },\n pwa: {\n addToHomeScreen: \"На главный экран\",\n installApp: \"Установить приложение\",\n tapToLearnHow: \"Нажмите, чтобы узнать как\",\n clickToSeeGuide: \"Нажмите для инструкции\",\n tapToInstall: \"Нажмите для установки\",\n installing: \"Установка...\",\n dismiss: \"Закрыть\",\n appLogo: \"Логотип приложения\",\n iosTitle: \"На главный экран\",\n iosDescription: \"Установите приложение на iPhone для быстрого доступа\",\n iosStep1Title: \"Нажмите «Поделиться»\",\n iosStep1Desc: \"Внизу экрана Safari\",\n iosStep2Title: \"Найдите опцию\",\n iosStep2Desc: \"«На экран Домой»\",\n iosStep3Title: \"Подтвердите\",\n iosStep3Desc: \"Нажмите «Добавить» справа вверху\",\n gotIt: \"Понятно\",\n desktopTitle: \"Установка на компьютер\",\n desktopDescription: \"Установите приложение в {browser} для быстрого доступа\",\n desktopDescSafari: \"Safari на macOS имеет ограниченную поддержку PWA. Для лучшего опыта используйте Chrome, Edge или Brave.\",\n desktopTip: \"Также можно нажать правой кнопкой на странице и найти опцию «Установить» в {browser}\",\n desktopFirefoxNote: \"Firefox имеет ограниченную поддержку PWA. Некоторые функции могут работать некорректно.\",\n chromiumStep1Title: \"Найдите значок установки\",\n chromiumStep1Desc: \"Ищите значок установки в адресной строке (справа)\",\n chromiumStep2Title: \"Нажмите «Установить»\",\n chromiumStep2Desc: \"Нажмите на значок и выберите «Установить»\",\n chromiumStep3Title: \"Подтвердите\",\n chromiumStep3Desc: \"Нажмите «Установить» в диалоговом окне\",\n firefoxStep1Title: \"Откройте меню\",\n firefoxStep1Desc: \"Нажмите кнопку меню (три линии)\",\n firefoxStep2Title: \"Найдите опцию установки\",\n firefoxStep2Desc: \"Ищите «Установить» или «На главный экран»\",\n firefoxStep3Title: \"Подтвердите\",\n firefoxStep3Desc: \"Следуйте инструкциям установки\",\n safariStep1Title: \"Ограниченная поддержка\",\n safariStep1Desc: \"Safari на macOS имеет ограниченную поддержку PWA\",\n safariStep2Title: \"Используйте Chromium браузер\",\n safariStep2Desc: \"Рекомендуем Chrome, Edge или Brave для полноценного PWA\",\n unknownStep1Title: \"Проверьте адресную строку\",\n unknownStep1Desc: \"Ищите значок установки или загрузки\",\n unknownStep2Title: \"Или используйте меню\",\n unknownStep2Desc: \"Проверьте меню браузера на наличие опции установки\",\n unknownStep3Title: \"Подтвердите\",\n unknownStep3Desc: \"Следуйте инструкциям установки\",\n close: \"Закрыть\",\n },\n profilePage: {\n title: \"Профиль\",\n account: \"Аккаунт\",\n personalInfo: \"Личные данные\",\n work: \"Работа\",\n security: \"Безопасность\",\n actions: \"Действия\",\n email: \"Email\",\n firstName: \"Имя\",\n lastName: \"Фамилия\",\n company: \"Компания\",\n position: \"Должность\",\n phone: \"Телефон\",\n notSet: \"Не указано\",\n addFirstName: \"Добавить имя\",\n addLastName: \"Добавить фамилию\",\n addPhone: \"Добавить телефон\",\n addCompany: \"Добавить компанию\",\n addPosition: \"Добавить должность\",\n on: \"Вкл\",\n off: \"Выкл\",\n save: \"Сохранить\",\n saving: \"Сохранение...\",\n cancel: \"Отмена\",\n signOut: \"Выйти\",\n deleteAccount: \"Удалить аккаунт\",\n deleting: \"Удаление...\",\n twoFactorAuth: \"Двухфакторная аутентификация\",\n twoFactorEnabled: \"Двухфакторная аутентификация включена\",\n twoFactorDisabled: \"Добавьте дополнительный уровень защиты\",\n enable2FA: \"Включить\",\n avatar: \"Аватар\",\n changeAvatar: \"Изменить аватар\",\n memberSince: \"Участник с {date}\",\n enterField: \"Введите {field}\",\n profileUpdated: \"Профиль обновлён\",\n avatarUpdated: \"Аватар обновлён\",\n failedToUpdate: \"Не удалось обновить\",\n failedToUploadAvatar: \"Не удалось загрузить аватар\",\n selectImageFile: \"Пожалуйста, выберите изображение\",\n fileTooLarge: \"Размер файла должен быть меньше 5МБ\",\n notAuthenticated: \"Не авторизован\",\n pleaseLogIn: \"Пожалуйста, войдите для просмотра профиля.\",\n deleteAccountTitle: \"Удаление аккаунта\",\n deleteAccountDesc: \"Это действие необратимо. Ваш аккаунт будет удалён навсегда.\",\n typeToConfirm: \"Введите {word} для подтверждения:\",\n confirmationWord: \"УДАЛИТЬ\",\n },\n },\n api: {\n errors: {\n networkError: \"Ошибка сети\",\n connectionFailed: \"Не удалось подключиться\",\n requestTimeout: \"Время ожидания истекло\",\n serverUnavailable: \"Сервер недоступен\",\n invalidResponse: \"Неверный ответ сервера\",\n rateLimited: \"Слишком много запросов. Подождите.\",\n },\n status: {\n connecting: \"Подключение...\",\n connected: \"Подключено\",\n disconnected: \"Отключено\",\n reconnecting: \"Переподключение...\",\n },\n logout: {\n title: \"Выход\",\n message: \"Вы уверены, что хотите выйти?\",\n confirm: \"Выйти\",\n cancel: \"Отмена\",\n },\n },\n tools: {\n code: {\n copyCode: \"Копировать код\",\n noContent: \"Контент недоступен\",\n },\n diagram: {\n title: \"Диаграмма\",\n clickToView: \"Нажмите для просмотра\",\n },\n image: {\n noImage: \"Изображение отсутствует\",\n failedToLoad: \"Не удалось загрузить изображение\",\n zoomIn: \"Увеличить\",\n zoomOut: \"Уменьшить\",\n fitToView: \"По размеру окна\",\n flipHorizontal: \"Отразить по горизонтали\",\n flipVertical: \"Отразить по вертикали\",\n rotate: \"Повернуть на 90°\",\n fullscreen: \"На весь экран\",\n },\n gallery: {\n noImages: \"Нет изображений\",\n lightbox: \"Просмотр изображения\",\n previous: \"Предыдущее изображение\",\n next: \"Следующее изображение\",\n close: \"Закрыть просмотр\",\n download: \"Скачать изображение\",\n share: \"Поделиться изображением\",\n },\n video: {\n play: \"Воспроизвести видео\",\n fullscreen: \"Во весь экран\",\n unavailable: \"Видео недоступно\",\n },\n audio: {\n restart: \"Сначала\",\n back: \"Назад 5 секунд\",\n forward: \"Вперёд 5 секунд\",\n volume: \"Громкость\",\n },\n color: {\n pick: \"Выбрать цвет\",\n },\n jsonForm: {\n validationErrors: \"Ошибки проверки\",\n addItem: \"Добавить элемент\",\n addFirstItem: \"Добавить первый элемент\",\n noItems: \"Элементы ещё не добавлены.\",\n },\n openapi: {\n response: \"Ответ\",\n noResponse: \"Тело ответа отсутствует\",\n required: \"Обязательно\",\n optional: \"Необязательно\",\n searchEndpoints: \"Поиск эндпоинтов...\",\n all: \"Все\",\n methods: \"Методы\",\n path: \"Путь\",\n description: \"Описание\",\n navigation: \"Навигация\",\n previous: \"Назад\",\n next: \"Вперёд\",\n bearerToken: \"Введите Bearer токен (опционально, использует JWT если пусто)\",\n },\n form: {\n title: \"Форма\",\n },\n tour: {\n next: \"Далее\",\n previous: \"Назад\",\n skip: \"Пропустить\",\n finish: \"Готово\",\n close: \"Закрыть\",\n stepOf: \"Шаг {current} из {total}\",\n },\n upload: {\n dragDrop: \"Перетащите файлы или нажмите для выбора\",\n dropHere: \"Отпустите файлы здесь\",\n maxSize: \"Макс. {size}МБ на файл\",\n uploading: \"Загрузка...\",\n uploaded: \"Загружено\",\n failed: \"Ошибка\",\n retry: \"Повторить\",\n remove: \"Удалить\",\n cancel: \"Отмена\",\n paused: \"Приостановлено\",\n pending: \"Ожидание\",\n },\n },\n}\n","import type { I18nTranslations } from '../types'\n\n/**\n * Korean translations\n */\nexport const ko: I18nTranslations = {\n ui: {\n select: {\n placeholder: \"선택하세요...\",\n search: \"검색...\",\n noResults: \"결과가 없습니다.\",\n selectAll: \"전체 선택\",\n clearAll: \"전체 해제\",\n moreItems: \"+{count}개 더\",\n loading: \"로딩 중...\",\n },\n pagination: {\n previous: \"이전\",\n next: \"다음\",\n first: \"처음\",\n last: \"마지막\",\n page: \"{page} 페이지\",\n of: \"/ {total}\",\n showing: \"{total}개 중 {from}-{to}\",\n },\n dialog: {\n close: \"닫기\",\n confirm: \"확인\",\n cancel: \"취소\",\n ok: \"OK\",\n yes: \"예\",\n no: \"아니오\",\n delete: \"삭제\",\n save: \"저장\",\n discard: \"버리기\",\n alertTitle: \"알림\",\n confirmTitle: \"확인\",\n confirmDelete: \"정말로 삭제하시겠습니까?\",\n promptTitle: \"입력 필요\",\n promptPlaceholder: \"값을 입력하세요...\",\n },\n form: {\n submit: \"제출\",\n cancel: \"취소\",\n save: \"저장\",\n delete: \"삭제\",\n edit: \"수정\",\n create: \"생성\",\n update: \"업데이트\",\n reset: \"초기화\",\n clear: \"지우기\",\n loading: \"로딩 중...\",\n saving: \"저장 중...\",\n deleting: \"삭제 중...\",\n required: \"필수 입력 항목입니다\",\n optional: \"선택 사항\",\n minLength: \"최소 {min}자 이상 입력하세요\",\n maxLength: \"최대 {max}자까지 입력 가능합니다\",\n invalidEmail: \"올바른 이메일 주소를 입력하세요\",\n invalidUrl: \"올바른 URL을 입력하세요\",\n invalidPhone: \"올바른 전화번호를 입력하세요\",\n passwordMismatch: \"비밀번호가 일치하지 않습니다\",\n },\n datetime: {\n today: \"오늘\",\n yesterday: \"어제\",\n tomorrow: \"내일\",\n now: \"방금 전\",\n secondsAgo: \"{count}초 전\",\n minutesAgo: \"{count}분 전\",\n hoursAgo: \"{count}시간 전\",\n daysAgo: \"{count}일 전\",\n pickDate: \"날짜 선택\",\n pickTime: \"시간 선택\",\n pickDateTime: \"날짜 및 시간 선택\",\n pickDateRange: \"기간 선택\",\n },\n file: {\n upload: \"업로드\",\n uploading: \"업로드 중...\",\n dragDrop: \"파일을 여기에 드래그하세요\",\n browse: \"파일 찾기\",\n remove: \"제거\",\n maxSize: \"최대 크기: {size}\",\n invalidType: \"지원하지 않는 파일 형식입니다\",\n tooLarge: \"파일이 너무 큽니다\",\n },\n table: {\n noData: \"데이터가 없습니다\",\n loading: \"데이터 로딩 중...\",\n showing: \"{total}개 중 {from}-{to} 표시\",\n rowsPerPage: \"페이지당 행 수\",\n sortAsc: \"오름차순 정렬\",\n sortDesc: \"내림차순 정렬\",\n filter: \"필터\",\n clearFilters: \"필터 초기화\",\n selectAll: \"전체 선택\",\n deselectAll: \"선택 해제\",\n selected: \"{count}개 선택됨\",\n },\n actions: {\n view: \"보기\",\n copy: \"복사\",\n copied: \"복사됨!\",\n copyToClipboard: \"클립보드에 복사\",\n download: \"다운로드\",\n share: \"공유\",\n refresh: \"새로고침\",\n retry: \"재시도\",\n expand: \"펼치기\",\n collapse: \"접기\",\n showMore: \"더 보기\",\n showLess: \"간략히\",\n seeAll: \"전체 보기\",\n goBack: \"뒤로 가기\",\n remove: \"제거\",\n previousSlide: \"이전 슬라이드\",\n nextSlide: \"다음 슬라이드\",\n },\n phone: {\n searchCountries: \"국가 검색...\",\n noCountries: \"국가를 찾을 수 없습니다\",\n },\n navigation: {\n title: \"탐색\",\n },\n states: {\n loading: \"로딩 중\",\n empty: \"비어 있음\",\n error: \"오류\",\n success: \"성공\",\n warning: \"경고\",\n info: \"정보\",\n pending: \"대기 중\",\n active: \"활성\",\n inactive: \"비활성\",\n enabled: \"활성화됨\",\n disabled: \"비활성화됨\",\n },\n errors: {\n generic: \"문제가 발생했습니다\",\n network: \"네트워크 오류. 연결을 확인하세요.\",\n timeout: \"요청 시간이 초과되었습니다. 다시 시도하세요.\",\n notFound: \"찾을 수 없습니다\",\n unauthorized: \"로그인이 필요합니다\",\n forbidden: \"접근 권한이 없습니다\",\n serverError: \"서버 오류. 나중에 다시 시도하세요.\",\n validation: \"입력 내용을 확인하세요\",\n unknown: \"알 수 없는 오류가 발생했습니다\",\n },\n },\n layouts: {\n sidebar: {\n toggle: \"사이드바 전환\",\n collapse: \"사이드바 접기\",\n expand: \"사이드바 펼치기\",\n },\n navigation: {\n menu: \"메뉴\",\n home: \"홈\",\n back: \"뒤로\",\n forward: \"앞으로\",\n toggleMobile: \"모바일 메뉴 열기\",\n breadcrumb: \"탐색 경로\",\n },\n profile: {\n settings: \"설정\",\n account: \"계정\",\n logout: \"로그아웃\",\n login: \"로그인\",\n signUp: \"회원가입\",\n signOut: \"로그아웃\",\n userMenu: \"사용자 메뉴\",\n language: \"언어\",\n },\n theme: {\n toggle: \"테마 전환\",\n light: \"라이트\",\n dark: \"다크\",\n system: \"시스템\",\n },\n search: {\n placeholder: \"검색...\",\n noResults: \"검색 결과가 없습니다\",\n recentSearches: \"최근 검색어\",\n clearHistory: \"기록 삭제\",\n },\n mobile: {\n closeMenu: \"메뉴 닫기\",\n },\n errors: {\n somethingWentWrong: \"문제가 발생했습니다\",\n tryRefreshing: \"예상치 못한 오류가 발생했습니다. 페이지를 새로고침해 보세요.\",\n refreshPage: \"페이지 새로고침\",\n goBack: \"뒤로 가기\",\n goHome: \"홈으로 가기\",\n needHelp: \"도움이 필요하신가요?\",\n contactSupport: \"지원팀에 문의\",\n checkStatus: \"서비스 상태 확인\",\n persistsContact: \"문제가 지속되면 {email}로 문의하세요\",\n error: \"오류\",\n badRequest: \"잘못된 요청\",\n authRequired: \"인증 필요\",\n accessDenied: \"접근 거부\",\n pageNotFound: \"페이지를 찾을 수 없음\",\n requestTimeout: \"요청 시간 초과\",\n serverError: \"서버 오류\",\n badGateway: \"잘못된 게이트웨이\",\n serviceUnavailable: \"서비스 이용 불가\",\n gatewayTimeout: \"게이트웨이 시간 초과\",\n badRequestDesc: \"요청을 이해할 수 없습니다. 입력 내용을 확인하고 다시 시도하세요.\",\n authRequiredDesc: \"이 페이지에 접근하려면 로그인이 필요합니다.\",\n accessDeniedDesc: \"이 리소스에 접근할 권한이 없습니다.\",\n pageNotFoundDesc: \"찾으시는 페이지가 존재하지 않거나 이동되었습니다.\",\n requestTimeoutDesc: \"요청 처리 시간이 너무 오래 걸렸습니다. 다시 시도하세요.\",\n serverErrorDesc: \"서버에서 문제가 발생했습니다. 수정 작업 중입니다.\",\n badGatewayDesc: \"서버가 잘못된 응답을 받았습니다. 나중에 다시 시도하세요.\",\n serviceUnavailableDesc: \"서비스를 일시적으로 사용할 수 없습니다. 나중에 다시 시도하세요.\",\n gatewayTimeoutDesc: \"서버 응답 시간이 너무 오래 걸렸습니다. 다시 시도하세요.\",\n unknownErrorDesc: \"예상치 못한 오류가 발생했습니다. 다시 시도하거나 지원팀에 문의하세요.\",\n },\n push: {\n enableNotifications: \"알림 활성화\",\n stayUpdated: \"중요한 업데이트와 알림을 받아보세요\",\n enable: \"활성화\",\n notNow: \"나중에\",\n dismiss: \"닫기\",\n },\n auth: {\n authRequired: \"인증 필요\",\n pleaseSignIn: \"계속하려면 로그인하세요\",\n goToSignIn: \"로그인으로 이동\",\n identifier: {\n title: \"로그인\",\n subtitle: {\n email: \"계속하려면 이메일을 입력하세요\",\n phone: \"계속하려면 전화번호를 입력하세요\",\n },\n placeholder: {\n email: \"email@example.com\",\n phone: \"전화번호 입력\",\n },\n button: \"계속\",\n oauth: {\n continueWith: \"{provider}로 계속\",\n groupLabel: \"외부 계정으로 로그인\",\n },\n channel: {\n email: \"이메일\",\n phone: \"전화\",\n },\n },\n otp: {\n title: \"코드 입력\",\n subtitle: \"코드를 전송했습니다:\",\n button: \"확인\",\n resend: \"코드 재전송\",\n changeEmail: \"이메일 변경\",\n changePhone: \"전화번호 변경\",\n openMailbox: \"{provider} 열기\",\n },\n twoFactor: {\n title: \"2단계 인증\",\n subtitle: {\n totp: \"인증 앱의 6자리 코드를 입력하세요\",\n backup: \"백업 코드 중 하나를 입력하세요\",\n },\n placeholder: {\n backup: \"XXXXXXXX\",\n },\n button: \"확인\",\n toggle: {\n toBackup: \"백업 코드 사용\",\n toTotp: \"인증 앱 사용\",\n },\n },\n setup: {\n loading: {\n title: \"설정 중...\",\n button: \"로딩\",\n },\n qrCode: {\n title: \"2FA 설정\",\n subtitle: \"인증 앱으로 QR 코드를 스캔하세요\",\n manualEntry: \"스캔이 안 되나요? 수동으로 입력하세요\",\n confirmPrompt: \"확인을 위해 6자리 코드를 입력하세요\",\n button: \"2FA 활성화\",\n skip: \"나중에\",\n },\n complete: {\n title: \"2FA 활성화됨\",\n subtitle: \"백업 코드를 안전하게 보관하세요\",\n instruction: \"각 코드는 한 번만 사용할 수 있습니다\",\n copyAll: \"모든 코드 복사\",\n copied: \"복사됨\",\n done: \"완료\",\n },\n },\n success: {\n message: \"로그인 성공\",\n redirecting: \"이동 중…\",\n },\n divider: {\n or: \"또는\",\n },\n oauth: {\n signingIn: \"로그인하는 중…\",\n signingInBody: \"{provider} 로그인을 완료하는 동안 잠시 기다려 주세요.\",\n notice: {\n linkNotAllowedTitle: \"이 주소는 이메일 코드를 사용하세요\",\n useEmail: \"이메일로 계속\",\n retry: \"{provider}로 다시 시도\",\n dismiss: \"닫기\",\n originNotAllowedHint: \"개발자용: {origin}은(는) Django 사이트의 origin이 아닙니다. 사이트 origins에 추가하고, 제공업체에 {origin}/auth?provider={id}를 리디렉션 URI로 등록하세요.\",\n },\n error: {\n invalid_state: \"로그인 링크가 만료되었습니다. 다시 시도하세요.\",\n oauth_exchange_failed: \"제공업체가 로그인을 수락하지 않았습니다. 다시 시도해 주세요.\",\n invalid_id_token: \"로그인을 확인하지 못했습니다. 다시 시도해 주세요.\",\n email_missing: \"제공업체가 이메일 주소를 전달하지 않았습니다. 다른 로그인 방법을 사용해 주세요.\",\n email_not_verified: \"제공업체에서 이메일 주소가 확인되지 않았습니다. 그곳에서 확인하거나 다른 로그인 방법을 사용해 주세요.\",\n hosted_domain_not_allowed: \"이 도메인의 계정은 여기서 로그인할 수 없습니다.\",\n account_inactive: \"이 계정은 비활성화되었습니다. 지원팀에 문의해 주세요.\",\n link_not_allowed: \"이 계정은 {provider} 로그인을 사용할 수 없습니다. 대신 이메일로 코드를 받으세요.\",\n rate_limited: \"시도가 너무 많습니다. 잠시 후 다시 시도해 주세요.\",\n provider_unavailable: \"제공업체를 지금 사용할 수 없습니다. 잠시 후 다시 시도해 주세요.\",\n not_configured: \"이 사이트에서는 {provider} 로그인을 사용할 수 없습니다. 대신 이메일을 사용해 주세요.\",\n cancelled: \"로그인이 취소되었습니다.\",\n generic: \"로그인하지 못했습니다. 다시 시도하거나 이메일을 사용하세요.\",\n },\n },\n footer: {\n terms: \"이용약관\",\n privacy: \"개인정보\",\n support: \"지원\",\n },\n dev: {\n anyCodeWorks: \"개발 모드: 아무 코드나 사용 가능\",\n },\n },\n pwa: {\n addToHomeScreen: \"홈 화면에 추가\",\n installApp: \"앱 설치\",\n tapToLearnHow: \"탭하여 방법 알아보기\",\n clickToSeeGuide: \"클릭하여 가이드 보기\",\n tapToInstall: \"탭하여 설치\",\n installing: \"설치 중...\",\n dismiss: \"닫기\",\n appLogo: \"앱 로고\",\n iosTitle: \"홈 화면에 추가\",\n iosDescription: \"빠른 접근과 더 나은 경험을 위해 iPhone에 앱을 설치하세요\",\n iosStep1Title: \"공유 탭\",\n iosStep1Desc: \"Safari 하단에서\",\n iosStep2Title: \"스크롤 & 탭\",\n iosStep2Desc: \"\\\"홈 화면에 추가\\\"\",\n iosStep3Title: \"확인\",\n iosStep3Desc: \"오른쪽 상단의 \\\"추가\\\" 탭\",\n gotIt: \"알겠습니다\",\n desktopTitle: \"데스크톱에 앱 설치\",\n desktopDescription: \"{browser}에서 빠른 접근을 위해 앱을 설치하세요\",\n desktopDescSafari: \"macOS의 Safari는 PWA 지원이 제한적입니다. 최상의 경험을 위해 Chrome, Edge 또는 Brave를 사용하세요.\",\n desktopTip: \"{browser}에서 페이지를 우클릭하여 \\\"설치\\\" 옵션을 찾을 수도 있습니다\",\n desktopFirefoxNote: \"Firefox는 PWA 지원이 제한적입니다. 일부 기능이 예상대로 작동하지 않을 수 있습니다.\",\n chromiumStep1Title: \"설치 아이콘 찾기\",\n chromiumStep1Desc: \"주소 표시줄 오른쪽의 설치 아이콘을 찾으세요\",\n chromiumStep2Title: \"설치 클릭\",\n chromiumStep2Desc: \"아이콘을 클릭하고 \\\"설치\\\"를 선택하세요\",\n chromiumStep3Title: \"확인\",\n chromiumStep3Desc: \"팝업 대화상자에서 \\\"설치\\\"를 클릭하세요\",\n firefoxStep1Title: \"메뉴 열기\",\n firefoxStep1Desc: \"메뉴 버튼(세 줄)을 클릭하세요\",\n firefoxStep2Title: \"설치 옵션 찾기\",\n firefoxStep2Desc: \"\\\"설치\\\" 또는 \\\"홈 화면에 추가\\\"를 찾으세요\",\n firefoxStep3Title: \"확인\",\n firefoxStep3Desc: \"설치 안내를 따르세요\",\n safariStep1Title: \"제한된 지원\",\n safariStep1Desc: \"macOS의 Safari는 PWA 지원이 제한적입니다\",\n safariStep2Title: \"Chromium 브라우저 사용\",\n safariStep2Desc: \"완전한 PWA 경험을 위해 Chrome, Edge 또는 Brave를 사용하세요\",\n unknownStep1Title: \"주소 표시줄 확인\",\n unknownStep1Desc: \"설치 또는 다운로드 아이콘을 찾으세요\",\n unknownStep2Title: \"또는 메뉴 사용\",\n unknownStep2Desc: \"브라우저 메뉴에서 설치 옵션을 확인하세요\",\n unknownStep3Title: \"확인\",\n unknownStep3Desc: \"설치 안내를 따르세요\",\n close: \"닫기\",\n },\n profilePage: {\n title: \"프로필\",\n account: \"계정\",\n personalInfo: \"개인 정보\",\n work: \"직장\",\n security: \"보안\",\n actions: \"작업\",\n email: \"이메일\",\n firstName: \"이름\",\n lastName: \"성\",\n company: \"회사\",\n position: \"직책\",\n phone: \"전화번호\",\n notSet: \"설정 안 됨\",\n addFirstName: \"이름 추가\",\n addLastName: \"성 추가\",\n addPhone: \"전화번호 추가\",\n addCompany: \"회사 추가\",\n addPosition: \"직책 추가\",\n on: \"켜짐\",\n off: \"꺼짐\",\n save: \"저장\",\n saving: \"저장 중...\",\n cancel: \"취소\",\n signOut: \"로그아웃\",\n deleteAccount: \"계정 삭제\",\n deleting: \"삭제 중...\",\n twoFactorAuth: \"2단계 인증\",\n twoFactorEnabled: \"2단계 인증이 활성화되었습니다\",\n twoFactorDisabled: \"추가 보안 계층 추가\",\n enable2FA: \"활성화\",\n avatar: \"아바타\",\n changeAvatar: \"아바타 변경\",\n memberSince: \"{date}부터 회원\",\n enterField: \"{field} 입력\",\n profileUpdated: \"프로필이 업데이트되었습니다\",\n avatarUpdated: \"아바타가 업데이트되었습니다\",\n failedToUpdate: \"업데이트 실패\",\n failedToUploadAvatar: \"아바타 업로드 실패\",\n selectImageFile: \"이미지 파일을 선택하세요\",\n fileTooLarge: \"파일 크기는 5MB 미만이어야 합니다\",\n notAuthenticated: \"인증되지 않음\",\n pleaseLogIn: \"프로필을 보려면 로그인하세요.\",\n deleteAccountTitle: \"계정 삭제\",\n deleteAccountDesc: \"이 작업은 되돌릴 수 없습니다. 계정이 영구적으로 삭제됩니다.\",\n typeToConfirm: \"확인하려면 {word}을(를) 입력하세요:\",\n confirmationWord: \"삭제\",\n },\n },\n api: {\n errors: {\n networkError: \"네트워크 오류\",\n connectionFailed: \"연결 실패\",\n requestTimeout: \"요청 시간 초과\",\n serverUnavailable: \"서버를 사용할 수 없습니다\",\n invalidResponse: \"잘못된 서버 응답\",\n rateLimited: \"요청이 너무 많습니다. 잠시 후 다시 시도하세요.\",\n },\n status: {\n connecting: \"연결 중...\",\n connected: \"연결됨\",\n disconnected: \"연결 끊김\",\n reconnecting: \"재연결 중...\",\n },\n logout: {\n title: \"로그아웃\",\n message: \"로그아웃 하시겠습니까?\",\n confirm: \"로그아웃\",\n cancel: \"취소\",\n },\n },\n tools: {\n code: {\n copyCode: \"코드 복사\",\n noContent: \"콘텐츠 없음\",\n },\n diagram: {\n title: \"다이어그램\",\n clickToView: \"전체 화면으로 보려면 클릭\",\n },\n image: {\n noImage: \"이미지 없음\",\n failedToLoad: \"이미지 로드 실패\",\n zoomIn: \"확대\",\n zoomOut: \"축소\",\n fitToView: \"화면에 맞춤\",\n flipHorizontal: \"좌우 반전\",\n flipVertical: \"상하 반전\",\n rotate: \"90° 회전\",\n fullscreen: \"전체 화면\",\n },\n gallery: {\n noImages: \"이미지가 없습니다\",\n lightbox: \"이미지 뷰어\",\n previous: \"이전 이미지\",\n next: \"다음 이미지\",\n close: \"뷰어 닫기\",\n download: \"이미지 다운로드\",\n share: \"이미지 공유\",\n },\n video: {\n play: \"비디오 재생\",\n fullscreen: \"전체 화면\",\n unavailable: \"비디오를 사용할 수 없습니다\",\n },\n audio: {\n restart: \"처음부터\",\n back: \"5초 뒤로\",\n forward: \"5초 앞으로\",\n volume: \"음량\",\n },\n color: {\n pick: \"색상 선택\",\n },\n jsonForm: {\n validationErrors: \"유효성 검사 오류\",\n addItem: \"항목 추가\",\n addFirstItem: \"첫 항목 추가\",\n noItems: \"아직 추가된 항목이 없습니다.\",\n },\n openapi: {\n response: \"응답\",\n noResponse: \"응답 본문 없음\",\n required: \"필수\",\n optional: \"선택\",\n searchEndpoints: \"엔드포인트 검색...\",\n all: \"전체\",\n methods: \"메서드\",\n path: \"경로\",\n description: \"설명\",\n navigation: \"탐색\",\n previous: \"이전\",\n next: \"다음\",\n bearerToken: \"Bearer 토큰 입력 (선택사항, 비어있으면 JWT 사용)\",\n },\n tour: {\n next: \"다음\",\n previous: \"이전\",\n skip: \"건너뛰기\",\n finish: \"완료\",\n close: \"닫기\",\n stepOf: \"{total}단계 중 {current}단계\",\n },\n upload: {\n dragDrop: \"파일을 드래그하거나 클릭하여 선택\",\n dropHere: \"여기에 파일을 놓으세요\",\n maxSize: \"파일당 최대 {size}MB\",\n uploading: \"업로드 중...\",\n uploaded: \"업로드 완료\",\n failed: \"실패\",\n retry: \"재시도\",\n remove: \"삭제\",\n cancel: \"취소\",\n paused: \"일시정지\",\n pending: \"대기 중\",\n },\n form: {\n title: \"폼\",\n },\n },\n}\n","// Context & Hooks\nexport { I18nProvider, useI18n, useTranslation, useLocale, useLocaleOptional, useT, useTypedT, getT } from './context'\n\n// Convenience: pre-typed hook for built-in I18nTranslations — no generic needed\n// Usage: const t = useAppT() instead of const t = useTypedT<I18nTranslations>()\nimport { useTypedT } from './context'\nimport type { I18nTranslations } from './types'\nexport const useAppT = () => useTypedT<I18nTranslations>()\n\n// Types\nexport type {\n I18nTranslations,\n PartialTranslations,\n LocaleCode,\n I18nContextValue,\n I18nProviderProps,\n DeepPartial,\n I18nKeys,\n I18nTranslationFn,\n} from './types'\n\n// Type-safe keys utilities\nexport type {\n PathKeys,\n TranslationFn,\n TypedTranslationFn,\n TranslationKeys,\n NestedKeyOf,\n NestedValueOf,\n NamespaceKeys,\n MessageKeys,\n IntlTranslator,\n} from './utils/path-keys'\n\n// Locales\nexport { en, ru, ko } from './locales'\n\n// Utils\nexport { interpolate, mergeTranslations, createTranslations } from './utils'\n"]}
1
+ {"version":3,"sources":["../src/locales/ru.ts","../src/locales/ko.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["import type { I18nTranslations } from '../types'\n\n/**\n * Russian translations\n */\nexport const ru: I18nTranslations = {\n ui: {\n select: {\n placeholder: \"Выберите...\",\n search: \"Поиск...\",\n noResults: \"Ничего не найдено.\",\n selectAll: \"Выбрать все\",\n clearAll: \"Очистить все\",\n moreItems: \"+{count} ещё\",\n loading: \"Загрузка...\",\n },\n pagination: {\n previous: \"Назад\",\n next: \"Вперёд\",\n first: \"В начало\",\n last: \"В конец\",\n page: \"Страница {page}\",\n of: \"из {total}\",\n showing: \"{from}-{to} из {total}\",\n },\n dialog: {\n close: \"Закрыть\",\n confirm: \"Подтвердить\",\n cancel: \"Отмена\",\n ok: \"ОК\",\n yes: \"Да\",\n no: \"Нет\",\n delete: \"Удалить\",\n save: \"Сохранить\",\n discard: \"Отменить\",\n alertTitle: \"Уведомление\",\n confirmTitle: \"Подтверждение\",\n confirmDelete: \"Вы уверены, что хотите удалить?\",\n promptTitle: \"Введите значение\",\n promptPlaceholder: \"Введите...\",\n },\n form: {\n submit: \"Отправить\",\n cancel: \"Отмена\",\n save: \"Сохранить\",\n delete: \"Удалить\",\n edit: \"Редактировать\",\n create: \"Создать\",\n update: \"Обновить\",\n reset: \"Сбросить\",\n clear: \"Очистить\",\n loading: \"Загрузка...\",\n saving: \"Сохранение...\",\n deleting: \"Удаление...\",\n required: \"Обязательное поле\",\n optional: \"Необязательно\",\n minLength: \"Минимум {min} символов\",\n maxLength: \"Максимум {max} символов\",\n invalidEmail: \"Введите корректный email\",\n invalidUrl: \"Введите корректный URL\",\n invalidPhone: \"Введите корректный номер телефона\",\n passwordMismatch: \"Пароли не совпадают\",\n },\n datetime: {\n today: \"Сегодня\",\n yesterday: \"Вчера\",\n tomorrow: \"Завтра\",\n now: \"Только что\",\n secondsAgo: \"{count} секунд назад\",\n minutesAgo: \"{count} минут назад\",\n hoursAgo: \"{count} часов назад\",\n daysAgo: \"{count} дней назад\",\n pickDate: \"Выберите дату\",\n pickTime: \"Выберите время\",\n pickDateTime: \"Выберите дату и время\",\n pickDateRange: \"Выберите период\",\n },\n file: {\n upload: \"Загрузить\",\n uploading: \"Загрузка...\",\n dragDrop: \"Перетащите файлы сюда\",\n browse: \"Выбрать файлы\",\n remove: \"Удалить\",\n maxSize: \"Макс. размер: {size}\",\n invalidType: \"Неверный тип файла\",\n tooLarge: \"Файл слишком большой\",\n },\n table: {\n noData: \"Нет данных\",\n loading: \"Загрузка данных...\",\n showing: \"Показано {from}-{to} из {total}\",\n rowsPerPage: \"Строк на странице\",\n sortAsc: \"Сортировка по возрастанию\",\n sortDesc: \"Сортировка по убыванию\",\n filter: \"Фильтр\",\n clearFilters: \"Сбросить фильтры\",\n selectAll: \"Выбрать все\",\n deselectAll: \"Снять выделение\",\n selected: \"Выбрано: {count}\",\n },\n actions: {\n view: \"Просмотр\",\n copy: \"Копировать\",\n copied: \"Скопировано!\",\n copyToClipboard: \"Копировать в буфер\",\n download: \"Скачать\",\n share: \"Поделиться\",\n refresh: \"Обновить\",\n retry: \"Повторить\",\n expand: \"Развернуть\",\n collapse: \"Свернуть\",\n showMore: \"Показать больше\",\n showLess: \"Показать меньше\",\n seeAll: \"Смотреть все\",\n goBack: \"Назад\",\n remove: \"Удалить\",\n previousSlide: \"Предыдущий слайд\",\n nextSlide: \"Следующий слайд\",\n },\n phone: {\n searchCountries: \"Поиск стран...\",\n noCountries: \"Страны не найдены\",\n },\n navigation: {\n title: \"Навигация\",\n },\n states: {\n loading: \"Загрузка\",\n empty: \"Пусто\",\n error: \"Ошибка\",\n success: \"Успешно\",\n warning: \"Предупреждение\",\n info: \"Информация\",\n pending: \"Ожидание\",\n active: \"Активно\",\n inactive: \"Неактивно\",\n enabled: \"Включено\",\n disabled: \"Отключено\",\n },\n errors: {\n generic: \"Что-то пошло не так\",\n network: \"Ошибка сети. Проверьте подключение.\",\n timeout: \"Время ожидания истекло. Попробуйте ещё раз.\",\n notFound: \"Не найдено\",\n unauthorized: \"Войдите в аккаунт для продолжения\",\n forbidden: \"У вас нет доступа\",\n serverError: \"Ошибка сервера. Попробуйте позже.\",\n validation: \"Проверьте правильность заполнения формы\",\n unknown: \"Произошла неизвестная ошибка\",\n },\n },\n layouts: {\n sidebar: {\n toggle: \"Переключить боковую панель\",\n collapse: \"Свернуть панель\",\n expand: \"Развернуть панель\",\n },\n navigation: {\n menu: \"Меню\",\n home: \"Главная\",\n back: \"Назад\",\n forward: \"Вперёд\",\n toggleMobile: \"Открыть мобильное меню\",\n breadcrumb: \"Навигация\",\n },\n profile: {\n settings: \"Настройки\",\n account: \"Аккаунт\",\n logout: \"Выйти\",\n login: \"Войти\",\n signUp: \"Регистрация\",\n signOut: \"Выйти\",\n userMenu: \"Меню пользователя\",\n language: \"Язык\",\n },\n theme: {\n toggle: \"Сменить тему\",\n light: \"Светлая\",\n dark: \"Тёмная\",\n system: \"Системная\",\n },\n search: {\n placeholder: \"Поиск...\",\n noResults: \"Ничего не найдено\",\n recentSearches: \"Недавние запросы\",\n clearHistory: \"Очистить историю\",\n },\n mobile: {\n closeMenu: \"Закрыть меню\",\n },\n errors: {\n somethingWentWrong: \"Что-то пошло не так\",\n tryRefreshing: \"Произошла непредвиденная ошибка. Попробуйте обновить страницу.\",\n refreshPage: \"Обновить страницу\",\n goBack: \"Назад\",\n goHome: \"На главную\",\n needHelp: \"Нужна помощь?\",\n contactSupport: \"Связаться с поддержкой\",\n checkStatus: \"Проверить статус сервисов\",\n persistsContact: \"Если проблема повторяется, свяжитесь с {email}\",\n error: \"Ошибка\",\n badRequest: \"Неверный запрос\",\n authRequired: \"Требуется авторизация\",\n accessDenied: \"Доступ запрещён\",\n pageNotFound: \"Страница не найдена\",\n requestTimeout: \"Время ожидания истекло\",\n serverError: \"Ошибка сервера\",\n badGateway: \"Ошибка шлюза\",\n serviceUnavailable: \"Сервис недоступен\",\n gatewayTimeout: \"Время ожидания шлюза истекло\",\n badRequestDesc: \"Запрос не может быть обработан. Проверьте введённые данные и попробуйте снова.\",\n authRequiredDesc: \"Для доступа к этой странице необходимо войти в систему.\",\n accessDeniedDesc: \"У вас нет прав для доступа к этому ресурсу.\",\n pageNotFoundDesc: \"Страница, которую вы ищете, не существует или была перемещена.\",\n requestTimeoutDesc: \"Обработка запроса заняла слишком много времени. Попробуйте ещё раз.\",\n serverErrorDesc: \"Произошла ошибка на сервере. Мы работаем над её исправлением.\",\n badGatewayDesc: \"Сервер получил неверный ответ. Попробуйте позже.\",\n serviceUnavailableDesc: \"Сервис временно недоступен. Попробуйте позже.\",\n gatewayTimeoutDesc: \"Сервер слишком долго отвечает. Попробуйте ещё раз.\",\n unknownErrorDesc: \"Произошла непредвиденная ошибка. Попробуйте снова или свяжитесь с поддержкой.\",\n },\n push: {\n enableNotifications: \"Включить уведомления\",\n stayUpdated: \"Получайте важные обновления и оповещения\",\n enable: \"Включить\",\n notNow: \"Не сейчас\",\n dismiss: \"Закрыть\",\n },\n auth: {\n authRequired: \"Требуется авторизация\",\n pleaseSignIn: \"Пожалуйста, войдите для продолжения\",\n goToSignIn: \"Перейти к входу\",\n identifier: {\n title: \"Вход\",\n subtitle: {\n email: \"Введите email для продолжения\",\n phone: \"Введите номер телефона для продолжения\",\n },\n placeholder: {\n email: \"email@example.com\",\n phone: \"Введите номер телефона\",\n },\n button: \"Продолжить\",\n oauth: {\n continueWith: \"Войти через {provider}\",\n groupLabel: \"Войти через сторонний сервис\",\n },\n channel: {\n email: \"Email\",\n phone: \"Телефон\",\n },\n },\n otp: {\n title: \"Введите код\",\n subtitle: \"Мы отправили код на\",\n button: \"Подтвердить\",\n resend: \"Отправить повторно\",\n changeEmail: \"Изменить email\",\n changePhone: \"Изменить телефон\",\n openMailbox: \"Открыть {provider}\",\n },\n twoFactor: {\n title: \"Двухфакторная аутентификация\",\n subtitle: {\n totp: \"Введите 6-значный код из приложения-аутентификатора\",\n backup: \"Введите один из резервных кодов\",\n },\n placeholder: {\n backup: \"XXXXXXXX\",\n },\n button: \"Подтвердить\",\n toggle: {\n toBackup: \"Использовать резервный код\",\n toTotp: \"Использовать приложение\",\n },\n },\n setup: {\n loading: {\n title: \"Настройка...\",\n button: \"Загрузка\",\n },\n qrCode: {\n title: \"Настройка 2FA\",\n subtitle: \"Отсканируйте QR-код приложением-аутентификатором\",\n manualEntry: \"Не можете сканировать? Введите вручную\",\n confirmPrompt: \"Введите 6-значный код для подтверждения\",\n button: \"Включить 2FA\",\n skip: \"Пропустить\",\n },\n complete: {\n title: \"2FA включена\",\n subtitle: \"Сохраните резервные коды в безопасном месте\",\n instruction: \"Каждый код можно использовать только один раз\",\n copyAll: \"Копировать все коды\",\n copied: \"Скопировано\",\n done: \"Готово\",\n },\n },\n success: {\n message: \"Вход выполнен успешно\",\n redirecting: \"Переходим…\",\n },\n divider: {\n or: \"или\",\n },\n oauth: {\n signingIn: \"Выполняем вход…\",\n signingInBody: \"Подождите, мы завершаем вход через {provider}.\",\n notice: {\n linkNotAllowedTitle: \"Для этого адреса вход по коду из письма\",\n retry: \"Повторить вход через {provider}\",\n dismiss: \"Закрыть\",\n originNotAllowedHint: \"Для разработчиков: {origin} не входит в origins сайта Django. Добавьте его в origins сайта и зарегистрируйте {origin}/auth?provider={id} как redirect URI у провайдера.\",\n },\n error: {\n invalid_state: \"Ссылка для входа устарела. Попробуйте ещё раз.\",\n oauth_exchange_failed: \"Провайдер не принял вход. Попробуйте ещё раз.\",\n invalid_id_token: \"Не удалось подтвердить вход. Попробуйте ещё раз.\",\n email_missing: \"Провайдер не передал адрес почты. Выберите другой способ входа.\",\n email_not_verified: \"Провайдер не подтвердил вашу почту. Подтвердите её там или войдите другим способом.\",\n hosted_domain_not_allowed: \"Аккаунты с этим доменом не могут войти здесь.\",\n account_inactive: \"Аккаунт отключён. Обратитесь в поддержку.\",\n link_not_allowed: \"Вход через {provider} недоступен для этого аккаунта. Получите код по почте.\",\n rate_limited: \"Слишком много попыток. Подождите немного и повторите.\",\n provider_unavailable: \"Провайдер сейчас недоступен. Попробуйте чуть позже.\",\n not_configured: \"Вход через {provider} недоступен на этом сайте. Войдите по почте.\",\n cancelled: \"Вход отменён.\",\n generic: \"Не удалось войти. Попробуйте ещё раз или войдите по почте.\",\n },\n },\n footer: {\n terms: \"Условия\",\n privacy: \"Конфиденциальность\",\n support: \"Поддержка\",\n },\n dev: {\n anyCodeWorks: \"Режим разработки: подойдёт любой код\",\n },\n },\n pwa: {\n addToHomeScreen: \"На главный экран\",\n installApp: \"Установить приложение\",\n tapToLearnHow: \"Нажмите, чтобы узнать как\",\n clickToSeeGuide: \"Нажмите для инструкции\",\n tapToInstall: \"Нажмите для установки\",\n installing: \"Установка...\",\n dismiss: \"Закрыть\",\n appLogo: \"Логотип приложения\",\n iosTitle: \"На главный экран\",\n iosDescription: \"Установите приложение на iPhone для быстрого доступа\",\n iosStep1Title: \"Нажмите «Поделиться»\",\n iosStep1Desc: \"Внизу экрана Safari\",\n iosStep2Title: \"Найдите опцию\",\n iosStep2Desc: \"«На экран Домой»\",\n iosStep3Title: \"Подтвердите\",\n iosStep3Desc: \"Нажмите «Добавить» справа вверху\",\n gotIt: \"Понятно\",\n desktopTitle: \"Установка на компьютер\",\n desktopDescription: \"Установите приложение в {browser} для быстрого доступа\",\n desktopDescSafari: \"Safari на macOS имеет ограниченную поддержку PWA. Для лучшего опыта используйте Chrome, Edge или Brave.\",\n desktopTip: \"Также можно нажать правой кнопкой на странице и найти опцию «Установить» в {browser}\",\n desktopFirefoxNote: \"Firefox имеет ограниченную поддержку PWA. Некоторые функции могут работать некорректно.\",\n chromiumStep1Title: \"Найдите значок установки\",\n chromiumStep1Desc: \"Ищите значок установки в адресной строке (справа)\",\n chromiumStep2Title: \"Нажмите «Установить»\",\n chromiumStep2Desc: \"Нажмите на значок и выберите «Установить»\",\n chromiumStep3Title: \"Подтвердите\",\n chromiumStep3Desc: \"Нажмите «Установить» в диалоговом окне\",\n firefoxStep1Title: \"Откройте меню\",\n firefoxStep1Desc: \"Нажмите кнопку меню (три линии)\",\n firefoxStep2Title: \"Найдите опцию установки\",\n firefoxStep2Desc: \"Ищите «Установить» или «На главный экран»\",\n firefoxStep3Title: \"Подтвердите\",\n firefoxStep3Desc: \"Следуйте инструкциям установки\",\n safariStep1Title: \"Ограниченная поддержка\",\n safariStep1Desc: \"Safari на macOS имеет ограниченную поддержку PWA\",\n safariStep2Title: \"Используйте Chromium браузер\",\n safariStep2Desc: \"Рекомендуем Chrome, Edge или Brave для полноценного PWA\",\n unknownStep1Title: \"Проверьте адресную строку\",\n unknownStep1Desc: \"Ищите значок установки или загрузки\",\n unknownStep2Title: \"Или используйте меню\",\n unknownStep2Desc: \"Проверьте меню браузера на наличие опции установки\",\n unknownStep3Title: \"Подтвердите\",\n unknownStep3Desc: \"Следуйте инструкциям установки\",\n close: \"Закрыть\",\n },\n profilePage: {\n title: \"Профиль\",\n account: \"Аккаунт\",\n personalInfo: \"Личные данные\",\n work: \"Работа\",\n security: \"Безопасность\",\n actions: \"Действия\",\n email: \"Email\",\n firstName: \"Имя\",\n lastName: \"Фамилия\",\n company: \"Компания\",\n position: \"Должность\",\n phone: \"Телефон\",\n notSet: \"Не указано\",\n addFirstName: \"Добавить имя\",\n addLastName: \"Добавить фамилию\",\n addPhone: \"Добавить телефон\",\n addCompany: \"Добавить компанию\",\n addPosition: \"Добавить должность\",\n on: \"Вкл\",\n off: \"Выкл\",\n save: \"Сохранить\",\n saving: \"Сохранение...\",\n cancel: \"Отмена\",\n signOut: \"Выйти\",\n deleteAccount: \"Удалить аккаунт\",\n deleting: \"Удаление...\",\n twoFactorAuth: \"Двухфакторная аутентификация\",\n twoFactorEnabled: \"Двухфакторная аутентификация включена\",\n twoFactorDisabled: \"Добавьте дополнительный уровень защиты\",\n enable2FA: \"Включить\",\n avatar: \"Аватар\",\n changeAvatar: \"Изменить аватар\",\n memberSince: \"Участник с {date}\",\n enterField: \"Введите {field}\",\n profileUpdated: \"Профиль обновлён\",\n avatarUpdated: \"Аватар обновлён\",\n failedToUpdate: \"Не удалось обновить\",\n failedToUploadAvatar: \"Не удалось загрузить аватар\",\n selectImageFile: \"Пожалуйста, выберите изображение\",\n fileTooLarge: \"Размер файла должен быть меньше 5МБ\",\n notAuthenticated: \"Не авторизован\",\n pleaseLogIn: \"Пожалуйста, войдите для просмотра профиля.\",\n deleteAccountTitle: \"Удаление аккаунта\",\n deleteAccountDesc: \"Это действие необратимо. Ваш аккаунт будет удалён навсегда.\",\n typeToConfirm: \"Введите {word} для подтверждения:\",\n confirmationWord: \"УДАЛИТЬ\",\n },\n },\n api: {\n errors: {\n networkError: \"Ошибка сети\",\n connectionFailed: \"Не удалось подключиться\",\n requestTimeout: \"Время ожидания истекло\",\n serverUnavailable: \"Сервер недоступен\",\n invalidResponse: \"Неверный ответ сервера\",\n rateLimited: \"Слишком много запросов. Подождите.\",\n },\n status: {\n connecting: \"Подключение...\",\n connected: \"Подключено\",\n disconnected: \"Отключено\",\n reconnecting: \"Переподключение...\",\n },\n logout: {\n title: \"Выход\",\n message: \"Вы уверены, что хотите выйти?\",\n confirm: \"Выйти\",\n cancel: \"Отмена\",\n },\n },\n tools: {\n code: {\n copyCode: \"Копировать код\",\n noContent: \"Контент недоступен\",\n },\n diagram: {\n title: \"Диаграмма\",\n clickToView: \"Нажмите для просмотра\",\n },\n image: {\n noImage: \"Изображение отсутствует\",\n failedToLoad: \"Не удалось загрузить изображение\",\n zoomIn: \"Увеличить\",\n zoomOut: \"Уменьшить\",\n fitToView: \"По размеру окна\",\n flipHorizontal: \"Отразить по горизонтали\",\n flipVertical: \"Отразить по вертикали\",\n rotate: \"Повернуть на 90°\",\n fullscreen: \"На весь экран\",\n },\n gallery: {\n noImages: \"Нет изображений\",\n lightbox: \"Просмотр изображения\",\n previous: \"Предыдущее изображение\",\n next: \"Следующее изображение\",\n close: \"Закрыть просмотр\",\n download: \"Скачать изображение\",\n share: \"Поделиться изображением\",\n },\n video: {\n play: \"Воспроизвести видео\",\n fullscreen: \"Во весь экран\",\n unavailable: \"Видео недоступно\",\n },\n audio: {\n restart: \"Сначала\",\n back: \"Назад 5 секунд\",\n forward: \"Вперёд 5 секунд\",\n volume: \"Громкость\",\n },\n color: {\n pick: \"Выбрать цвет\",\n },\n jsonForm: {\n validationErrors: \"Ошибки проверки\",\n addItem: \"Добавить элемент\",\n addFirstItem: \"Добавить первый элемент\",\n noItems: \"Элементы ещё не добавлены.\",\n },\n openapi: {\n response: \"Ответ\",\n noResponse: \"Тело ответа отсутствует\",\n required: \"Обязательно\",\n optional: \"Необязательно\",\n searchEndpoints: \"Поиск эндпоинтов...\",\n all: \"Все\",\n methods: \"Методы\",\n path: \"Путь\",\n description: \"Описание\",\n navigation: \"Навигация\",\n previous: \"Назад\",\n next: \"Вперёд\",\n bearerToken: \"Введите Bearer токен (опционально, использует JWT если пусто)\",\n },\n form: {\n title: \"Форма\",\n },\n tour: {\n next: \"Далее\",\n previous: \"Назад\",\n skip: \"Пропустить\",\n finish: \"Готово\",\n close: \"Закрыть\",\n stepOf: \"Шаг {current} из {total}\",\n },\n upload: {\n dragDrop: \"Перетащите файлы или нажмите для выбора\",\n dropHere: \"Отпустите файлы здесь\",\n maxSize: \"Макс. {size}МБ на файл\",\n uploading: \"Загрузка...\",\n uploaded: \"Загружено\",\n failed: \"Ошибка\",\n retry: \"Повторить\",\n remove: \"Удалить\",\n cancel: \"Отмена\",\n paused: \"Приостановлено\",\n pending: \"Ожидание\",\n },\n },\n}\n","import type { I18nTranslations } from '../types'\n\n/**\n * Korean translations\n */\nexport const ko: I18nTranslations = {\n ui: {\n select: {\n placeholder: \"선택하세요...\",\n search: \"검색...\",\n noResults: \"결과가 없습니다.\",\n selectAll: \"전체 선택\",\n clearAll: \"전체 해제\",\n moreItems: \"+{count}개 더\",\n loading: \"로딩 중...\",\n },\n pagination: {\n previous: \"이전\",\n next: \"다음\",\n first: \"처음\",\n last: \"마지막\",\n page: \"{page} 페이지\",\n of: \"/ {total}\",\n showing: \"{total}개 중 {from}-{to}\",\n },\n dialog: {\n close: \"닫기\",\n confirm: \"확인\",\n cancel: \"취소\",\n ok: \"OK\",\n yes: \"예\",\n no: \"아니오\",\n delete: \"삭제\",\n save: \"저장\",\n discard: \"버리기\",\n alertTitle: \"알림\",\n confirmTitle: \"확인\",\n confirmDelete: \"정말로 삭제하시겠습니까?\",\n promptTitle: \"입력 필요\",\n promptPlaceholder: \"값을 입력하세요...\",\n },\n form: {\n submit: \"제출\",\n cancel: \"취소\",\n save: \"저장\",\n delete: \"삭제\",\n edit: \"수정\",\n create: \"생성\",\n update: \"업데이트\",\n reset: \"초기화\",\n clear: \"지우기\",\n loading: \"로딩 중...\",\n saving: \"저장 중...\",\n deleting: \"삭제 중...\",\n required: \"필수 입력 항목입니다\",\n optional: \"선택 사항\",\n minLength: \"최소 {min}자 이상 입력하세요\",\n maxLength: \"최대 {max}자까지 입력 가능합니다\",\n invalidEmail: \"올바른 이메일 주소를 입력하세요\",\n invalidUrl: \"올바른 URL을 입력하세요\",\n invalidPhone: \"올바른 전화번호를 입력하세요\",\n passwordMismatch: \"비밀번호가 일치하지 않습니다\",\n },\n datetime: {\n today: \"오늘\",\n yesterday: \"어제\",\n tomorrow: \"내일\",\n now: \"방금 전\",\n secondsAgo: \"{count}초 전\",\n minutesAgo: \"{count}분 전\",\n hoursAgo: \"{count}시간 전\",\n daysAgo: \"{count}일 전\",\n pickDate: \"날짜 선택\",\n pickTime: \"시간 선택\",\n pickDateTime: \"날짜 및 시간 선택\",\n pickDateRange: \"기간 선택\",\n },\n file: {\n upload: \"업로드\",\n uploading: \"업로드 중...\",\n dragDrop: \"파일을 여기에 드래그하세요\",\n browse: \"파일 찾기\",\n remove: \"제거\",\n maxSize: \"최대 크기: {size}\",\n invalidType: \"지원하지 않는 파일 형식입니다\",\n tooLarge: \"파일이 너무 큽니다\",\n },\n table: {\n noData: \"데이터가 없습니다\",\n loading: \"데이터 로딩 중...\",\n showing: \"{total}개 중 {from}-{to} 표시\",\n rowsPerPage: \"페이지당 행 수\",\n sortAsc: \"오름차순 정렬\",\n sortDesc: \"내림차순 정렬\",\n filter: \"필터\",\n clearFilters: \"필터 초기화\",\n selectAll: \"전체 선택\",\n deselectAll: \"선택 해제\",\n selected: \"{count}개 선택됨\",\n },\n actions: {\n view: \"보기\",\n copy: \"복사\",\n copied: \"복사됨!\",\n copyToClipboard: \"클립보드에 복사\",\n download: \"다운로드\",\n share: \"공유\",\n refresh: \"새로고침\",\n retry: \"재시도\",\n expand: \"펼치기\",\n collapse: \"접기\",\n showMore: \"더 보기\",\n showLess: \"간략히\",\n seeAll: \"전체 보기\",\n goBack: \"뒤로 가기\",\n remove: \"제거\",\n previousSlide: \"이전 슬라이드\",\n nextSlide: \"다음 슬라이드\",\n },\n phone: {\n searchCountries: \"국가 검색...\",\n noCountries: \"국가를 찾을 수 없습니다\",\n },\n navigation: {\n title: \"탐색\",\n },\n states: {\n loading: \"로딩 중\",\n empty: \"비어 있음\",\n error: \"오류\",\n success: \"성공\",\n warning: \"경고\",\n info: \"정보\",\n pending: \"대기 중\",\n active: \"활성\",\n inactive: \"비활성\",\n enabled: \"활성화됨\",\n disabled: \"비활성화됨\",\n },\n errors: {\n generic: \"문제가 발생했습니다\",\n network: \"네트워크 오류. 연결을 확인하세요.\",\n timeout: \"요청 시간이 초과되었습니다. 다시 시도하세요.\",\n notFound: \"찾을 수 없습니다\",\n unauthorized: \"로그인이 필요합니다\",\n forbidden: \"접근 권한이 없습니다\",\n serverError: \"서버 오류. 나중에 다시 시도하세요.\",\n validation: \"입력 내용을 확인하세요\",\n unknown: \"알 수 없는 오류가 발생했습니다\",\n },\n },\n layouts: {\n sidebar: {\n toggle: \"사이드바 전환\",\n collapse: \"사이드바 접기\",\n expand: \"사이드바 펼치기\",\n },\n navigation: {\n menu: \"메뉴\",\n home: \"홈\",\n back: \"뒤로\",\n forward: \"앞으로\",\n toggleMobile: \"모바일 메뉴 열기\",\n breadcrumb: \"탐색 경로\",\n },\n profile: {\n settings: \"설정\",\n account: \"계정\",\n logout: \"로그아웃\",\n login: \"로그인\",\n signUp: \"회원가입\",\n signOut: \"로그아웃\",\n userMenu: \"사용자 메뉴\",\n language: \"언어\",\n },\n theme: {\n toggle: \"테마 전환\",\n light: \"라이트\",\n dark: \"다크\",\n system: \"시스템\",\n },\n search: {\n placeholder: \"검색...\",\n noResults: \"검색 결과가 없습니다\",\n recentSearches: \"최근 검색어\",\n clearHistory: \"기록 삭제\",\n },\n mobile: {\n closeMenu: \"메뉴 닫기\",\n },\n errors: {\n somethingWentWrong: \"문제가 발생했습니다\",\n tryRefreshing: \"예상치 못한 오류가 발생했습니다. 페이지를 새로고침해 보세요.\",\n refreshPage: \"페이지 새로고침\",\n goBack: \"뒤로 가기\",\n goHome: \"홈으로 가기\",\n needHelp: \"도움이 필요하신가요?\",\n contactSupport: \"지원팀에 문의\",\n checkStatus: \"서비스 상태 확인\",\n persistsContact: \"문제가 지속되면 {email}로 문의하세요\",\n error: \"오류\",\n badRequest: \"잘못된 요청\",\n authRequired: \"인증 필요\",\n accessDenied: \"접근 거부\",\n pageNotFound: \"페이지를 찾을 수 없음\",\n requestTimeout: \"요청 시간 초과\",\n serverError: \"서버 오류\",\n badGateway: \"잘못된 게이트웨이\",\n serviceUnavailable: \"서비스 이용 불가\",\n gatewayTimeout: \"게이트웨이 시간 초과\",\n badRequestDesc: \"요청을 이해할 수 없습니다. 입력 내용을 확인하고 다시 시도하세요.\",\n authRequiredDesc: \"이 페이지에 접근하려면 로그인이 필요합니다.\",\n accessDeniedDesc: \"이 리소스에 접근할 권한이 없습니다.\",\n pageNotFoundDesc: \"찾으시는 페이지가 존재하지 않거나 이동되었습니다.\",\n requestTimeoutDesc: \"요청 처리 시간이 너무 오래 걸렸습니다. 다시 시도하세요.\",\n serverErrorDesc: \"서버에서 문제가 발생했습니다. 수정 작업 중입니다.\",\n badGatewayDesc: \"서버가 잘못된 응답을 받았습니다. 나중에 다시 시도하세요.\",\n serviceUnavailableDesc: \"서비스를 일시적으로 사용할 수 없습니다. 나중에 다시 시도하세요.\",\n gatewayTimeoutDesc: \"서버 응답 시간이 너무 오래 걸렸습니다. 다시 시도하세요.\",\n unknownErrorDesc: \"예상치 못한 오류가 발생했습니다. 다시 시도하거나 지원팀에 문의하세요.\",\n },\n push: {\n enableNotifications: \"알림 활성화\",\n stayUpdated: \"중요한 업데이트와 알림을 받아보세요\",\n enable: \"활성화\",\n notNow: \"나중에\",\n dismiss: \"닫기\",\n },\n auth: {\n authRequired: \"인증 필요\",\n pleaseSignIn: \"계속하려면 로그인하세요\",\n goToSignIn: \"로그인으로 이동\",\n identifier: {\n title: \"로그인\",\n subtitle: {\n email: \"계속하려면 이메일을 입력하세요\",\n phone: \"계속하려면 전화번호를 입력하세요\",\n },\n placeholder: {\n email: \"email@example.com\",\n phone: \"전화번호 입력\",\n },\n button: \"계속\",\n oauth: {\n continueWith: \"{provider}로 계속\",\n groupLabel: \"외부 계정으로 로그인\",\n },\n channel: {\n email: \"이메일\",\n phone: \"전화\",\n },\n },\n otp: {\n title: \"코드 입력\",\n subtitle: \"코드를 전송했습니다:\",\n button: \"확인\",\n resend: \"코드 재전송\",\n changeEmail: \"이메일 변경\",\n changePhone: \"전화번호 변경\",\n openMailbox: \"{provider} 열기\",\n },\n twoFactor: {\n title: \"2단계 인증\",\n subtitle: {\n totp: \"인증 앱의 6자리 코드를 입력하세요\",\n backup: \"백업 코드 중 하나를 입력하세요\",\n },\n placeholder: {\n backup: \"XXXXXXXX\",\n },\n button: \"확인\",\n toggle: {\n toBackup: \"백업 코드 사용\",\n toTotp: \"인증 앱 사용\",\n },\n },\n setup: {\n loading: {\n title: \"설정 중...\",\n button: \"로딩\",\n },\n qrCode: {\n title: \"2FA 설정\",\n subtitle: \"인증 앱으로 QR 코드를 스캔하세요\",\n manualEntry: \"스캔이 안 되나요? 수동으로 입력하세요\",\n confirmPrompt: \"확인을 위해 6자리 코드를 입력하세요\",\n button: \"2FA 활성화\",\n skip: \"나중에\",\n },\n complete: {\n title: \"2FA 활성화됨\",\n subtitle: \"백업 코드를 안전하게 보관하세요\",\n instruction: \"각 코드는 한 번만 사용할 수 있습니다\",\n copyAll: \"모든 코드 복사\",\n copied: \"복사됨\",\n done: \"완료\",\n },\n },\n success: {\n message: \"로그인 성공\",\n redirecting: \"이동 중…\",\n },\n divider: {\n or: \"또는\",\n },\n oauth: {\n signingIn: \"로그인하는 중…\",\n signingInBody: \"{provider} 로그인을 완료하는 동안 잠시 기다려 주세요.\",\n notice: {\n linkNotAllowedTitle: \"이 주소는 이메일 코드를 사용하세요\",\n retry: \"{provider}로 다시 시도\",\n dismiss: \"닫기\",\n originNotAllowedHint: \"개발자용: {origin}은(는) Django 사이트의 origin이 아닙니다. 사이트 origins에 추가하고, 제공업체에 {origin}/auth?provider={id}를 리디렉션 URI로 등록하세요.\",\n },\n error: {\n invalid_state: \"로그인 링크가 만료되었습니다. 다시 시도하세요.\",\n oauth_exchange_failed: \"제공업체가 로그인을 수락하지 않았습니다. 다시 시도해 주세요.\",\n invalid_id_token: \"로그인을 확인하지 못했습니다. 다시 시도해 주세요.\",\n email_missing: \"제공업체가 이메일 주소를 전달하지 않았습니다. 다른 로그인 방법을 사용해 주세요.\",\n email_not_verified: \"제공업체에서 이메일 주소가 확인되지 않았습니다. 그곳에서 확인하거나 다른 로그인 방법을 사용해 주세요.\",\n hosted_domain_not_allowed: \"이 도메인의 계정은 여기서 로그인할 수 없습니다.\",\n account_inactive: \"이 계정은 비활성화되었습니다. 지원팀에 문의해 주세요.\",\n link_not_allowed: \"이 계정은 {provider} 로그인을 사용할 수 없습니다. 대신 이메일로 코드를 받으세요.\",\n rate_limited: \"시도가 너무 많습니다. 잠시 후 다시 시도해 주세요.\",\n provider_unavailable: \"제공업체를 지금 사용할 수 없습니다. 잠시 후 다시 시도해 주세요.\",\n not_configured: \"이 사이트에서는 {provider} 로그인을 사용할 수 없습니다. 대신 이메일을 사용해 주세요.\",\n cancelled: \"로그인이 취소되었습니다.\",\n generic: \"로그인하지 못했습니다. 다시 시도하거나 이메일을 사용하세요.\",\n },\n },\n footer: {\n terms: \"이용약관\",\n privacy: \"개인정보\",\n support: \"지원\",\n },\n dev: {\n anyCodeWorks: \"개발 모드: 아무 코드나 사용 가능\",\n },\n },\n pwa: {\n addToHomeScreen: \"홈 화면에 추가\",\n installApp: \"앱 설치\",\n tapToLearnHow: \"탭하여 방법 알아보기\",\n clickToSeeGuide: \"클릭하여 가이드 보기\",\n tapToInstall: \"탭하여 설치\",\n installing: \"설치 중...\",\n dismiss: \"닫기\",\n appLogo: \"앱 로고\",\n iosTitle: \"홈 화면에 추가\",\n iosDescription: \"빠른 접근과 더 나은 경험을 위해 iPhone에 앱을 설치하세요\",\n iosStep1Title: \"공유 탭\",\n iosStep1Desc: \"Safari 하단에서\",\n iosStep2Title: \"스크롤 & 탭\",\n iosStep2Desc: \"\\\"홈 화면에 추가\\\"\",\n iosStep3Title: \"확인\",\n iosStep3Desc: \"오른쪽 상단의 \\\"추가\\\" 탭\",\n gotIt: \"알겠습니다\",\n desktopTitle: \"데스크톱에 앱 설치\",\n desktopDescription: \"{browser}에서 빠른 접근을 위해 앱을 설치하세요\",\n desktopDescSafari: \"macOS의 Safari는 PWA 지원이 제한적입니다. 최상의 경험을 위해 Chrome, Edge 또는 Brave를 사용하세요.\",\n desktopTip: \"{browser}에서 페이지를 우클릭하여 \\\"설치\\\" 옵션을 찾을 수도 있습니다\",\n desktopFirefoxNote: \"Firefox는 PWA 지원이 제한적입니다. 일부 기능이 예상대로 작동하지 않을 수 있습니다.\",\n chromiumStep1Title: \"설치 아이콘 찾기\",\n chromiumStep1Desc: \"주소 표시줄 오른쪽의 설치 아이콘을 찾으세요\",\n chromiumStep2Title: \"설치 클릭\",\n chromiumStep2Desc: \"아이콘을 클릭하고 \\\"설치\\\"를 선택하세요\",\n chromiumStep3Title: \"확인\",\n chromiumStep3Desc: \"팝업 대화상자에서 \\\"설치\\\"를 클릭하세요\",\n firefoxStep1Title: \"메뉴 열기\",\n firefoxStep1Desc: \"메뉴 버튼(세 줄)을 클릭하세요\",\n firefoxStep2Title: \"설치 옵션 찾기\",\n firefoxStep2Desc: \"\\\"설치\\\" 또는 \\\"홈 화면에 추가\\\"를 찾으세요\",\n firefoxStep3Title: \"확인\",\n firefoxStep3Desc: \"설치 안내를 따르세요\",\n safariStep1Title: \"제한된 지원\",\n safariStep1Desc: \"macOS의 Safari는 PWA 지원이 제한적입니다\",\n safariStep2Title: \"Chromium 브라우저 사용\",\n safariStep2Desc: \"완전한 PWA 경험을 위해 Chrome, Edge 또는 Brave를 사용하세요\",\n unknownStep1Title: \"주소 표시줄 확인\",\n unknownStep1Desc: \"설치 또는 다운로드 아이콘을 찾으세요\",\n unknownStep2Title: \"또는 메뉴 사용\",\n unknownStep2Desc: \"브라우저 메뉴에서 설치 옵션을 확인하세요\",\n unknownStep3Title: \"확인\",\n unknownStep3Desc: \"설치 안내를 따르세요\",\n close: \"닫기\",\n },\n profilePage: {\n title: \"프로필\",\n account: \"계정\",\n personalInfo: \"개인 정보\",\n work: \"직장\",\n security: \"보안\",\n actions: \"작업\",\n email: \"이메일\",\n firstName: \"이름\",\n lastName: \"성\",\n company: \"회사\",\n position: \"직책\",\n phone: \"전화번호\",\n notSet: \"설정 안 됨\",\n addFirstName: \"이름 추가\",\n addLastName: \"성 추가\",\n addPhone: \"전화번호 추가\",\n addCompany: \"회사 추가\",\n addPosition: \"직책 추가\",\n on: \"켜짐\",\n off: \"꺼짐\",\n save: \"저장\",\n saving: \"저장 중...\",\n cancel: \"취소\",\n signOut: \"로그아웃\",\n deleteAccount: \"계정 삭제\",\n deleting: \"삭제 중...\",\n twoFactorAuth: \"2단계 인증\",\n twoFactorEnabled: \"2단계 인증이 활성화되었습니다\",\n twoFactorDisabled: \"추가 보안 계층 추가\",\n enable2FA: \"활성화\",\n avatar: \"아바타\",\n changeAvatar: \"아바타 변경\",\n memberSince: \"{date}부터 회원\",\n enterField: \"{field} 입력\",\n profileUpdated: \"프로필이 업데이트되었습니다\",\n avatarUpdated: \"아바타가 업데이트되었습니다\",\n failedToUpdate: \"업데이트 실패\",\n failedToUploadAvatar: \"아바타 업로드 실패\",\n selectImageFile: \"이미지 파일을 선택하세요\",\n fileTooLarge: \"파일 크기는 5MB 미만이어야 합니다\",\n notAuthenticated: \"인증되지 않음\",\n pleaseLogIn: \"프로필을 보려면 로그인하세요.\",\n deleteAccountTitle: \"계정 삭제\",\n deleteAccountDesc: \"이 작업은 되돌릴 수 없습니다. 계정이 영구적으로 삭제됩니다.\",\n typeToConfirm: \"확인하려면 {word}을(를) 입력하세요:\",\n confirmationWord: \"삭제\",\n },\n },\n api: {\n errors: {\n networkError: \"네트워크 오류\",\n connectionFailed: \"연결 실패\",\n requestTimeout: \"요청 시간 초과\",\n serverUnavailable: \"서버를 사용할 수 없습니다\",\n invalidResponse: \"잘못된 서버 응답\",\n rateLimited: \"요청이 너무 많습니다. 잠시 후 다시 시도하세요.\",\n },\n status: {\n connecting: \"연결 중...\",\n connected: \"연결됨\",\n disconnected: \"연결 끊김\",\n reconnecting: \"재연결 중...\",\n },\n logout: {\n title: \"로그아웃\",\n message: \"로그아웃 하시겠습니까?\",\n confirm: \"로그아웃\",\n cancel: \"취소\",\n },\n },\n tools: {\n code: {\n copyCode: \"코드 복사\",\n noContent: \"콘텐츠 없음\",\n },\n diagram: {\n title: \"다이어그램\",\n clickToView: \"전체 화면으로 보려면 클릭\",\n },\n image: {\n noImage: \"이미지 없음\",\n failedToLoad: \"이미지 로드 실패\",\n zoomIn: \"확대\",\n zoomOut: \"축소\",\n fitToView: \"화면에 맞춤\",\n flipHorizontal: \"좌우 반전\",\n flipVertical: \"상하 반전\",\n rotate: \"90° 회전\",\n fullscreen: \"전체 화면\",\n },\n gallery: {\n noImages: \"이미지가 없습니다\",\n lightbox: \"이미지 뷰어\",\n previous: \"이전 이미지\",\n next: \"다음 이미지\",\n close: \"뷰어 닫기\",\n download: \"이미지 다운로드\",\n share: \"이미지 공유\",\n },\n video: {\n play: \"비디오 재생\",\n fullscreen: \"전체 화면\",\n unavailable: \"비디오를 사용할 수 없습니다\",\n },\n audio: {\n restart: \"처음부터\",\n back: \"5초 뒤로\",\n forward: \"5초 앞으로\",\n volume: \"음량\",\n },\n color: {\n pick: \"색상 선택\",\n },\n jsonForm: {\n validationErrors: \"유효성 검사 오류\",\n addItem: \"항목 추가\",\n addFirstItem: \"첫 항목 추가\",\n noItems: \"아직 추가된 항목이 없습니다.\",\n },\n openapi: {\n response: \"응답\",\n noResponse: \"응답 본문 없음\",\n required: \"필수\",\n optional: \"선택\",\n searchEndpoints: \"엔드포인트 검색...\",\n all: \"전체\",\n methods: \"메서드\",\n path: \"경로\",\n description: \"설명\",\n navigation: \"탐색\",\n previous: \"이전\",\n next: \"다음\",\n bearerToken: \"Bearer 토큰 입력 (선택사항, 비어있으면 JWT 사용)\",\n },\n tour: {\n next: \"다음\",\n previous: \"이전\",\n skip: \"건너뛰기\",\n finish: \"완료\",\n close: \"닫기\",\n stepOf: \"{total}단계 중 {current}단계\",\n },\n upload: {\n dragDrop: \"파일을 드래그하거나 클릭하여 선택\",\n dropHere: \"여기에 파일을 놓으세요\",\n maxSize: \"파일당 최대 {size}MB\",\n uploading: \"업로드 중...\",\n uploaded: \"업로드 완료\",\n failed: \"실패\",\n retry: \"재시도\",\n remove: \"삭제\",\n cancel: \"취소\",\n paused: \"일시정지\",\n pending: \"대기 중\",\n },\n form: {\n title: \"폼\",\n },\n },\n}\n","// Context & Hooks\nexport { I18nProvider, useI18n, useTranslation, useLocale, useLocaleOptional, useT, useTypedT, getT } from './context'\n\n// Convenience: pre-typed hook for built-in I18nTranslations — no generic needed\n// Usage: const t = useAppT() instead of const t = useTypedT<I18nTranslations>()\nimport { useTypedT } from './context'\nimport type { I18nTranslations } from './types'\nexport const useAppT = () => useTypedT<I18nTranslations>()\n\n// Types\nexport type {\n I18nTranslations,\n PartialTranslations,\n LocaleCode,\n I18nContextValue,\n I18nProviderProps,\n DeepPartial,\n I18nKeys,\n I18nTranslationFn,\n} from './types'\n\n// Type-safe keys utilities\nexport type {\n PathKeys,\n TranslationFn,\n TypedTranslationFn,\n TranslationKeys,\n NestedKeyOf,\n NestedValueOf,\n NamespaceKeys,\n MessageKeys,\n IntlTranslator,\n} from './utils/path-keys'\n\n// Locales\nexport { en, ru, ko } from './locales'\n\n// Utils\nexport { interpolate, mergeTranslations, createTranslations } from './utils'\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@djangocfg/i18n",
3
- "version": "2.1.606",
3
+ "version": "2.1.607",
4
4
  "description": "Lightweight i18n library for @djangocfg packages with built-in translations for English, Russian, and Korean",
5
5
  "keywords": [
6
6
  "i18n",
@@ -84,7 +84,7 @@
84
84
  "jiti": "^2.7.0"
85
85
  },
86
86
  "devDependencies": {
87
- "@djangocfg/typescript-config": "^2.1.606",
87
+ "@djangocfg/typescript-config": "^2.1.607",
88
88
  "@types/node": "^25.9.5",
89
89
  "@types/react": "19.2.15",
90
90
  "eslint": "^9.39.5",
package/src/locales/ar.ts CHANGED
@@ -308,7 +308,6 @@ export const ar: I18nTranslations = {
308
308
  signingInBody: "يرجى الانتظار بينما نُكمل تسجيل دخولك عبر {provider}.",
309
309
  notice: {
310
310
  linkNotAllowedTitle: "استخدم رمز البريد الإلكتروني لهذا العنوان",
311
- useEmail: "المتابعة بالبريد الإلكتروني",
312
311
  retry: "حاول مع {provider} مرة أخرى",
313
312
  dismiss: "إغلاق",
314
313
  originNotAllowedHint: "للمطورين: {origin} ليس أحد origins موقع Django. أضفه إلى origins الموقع وسجّل {origin}/auth?provider={id} كعنوان إعادة توجيه لدى المزوّد.",
package/src/locales/da.ts CHANGED
@@ -308,7 +308,6 @@ export const da: I18nTranslations = {
308
308
  signingInBody: "Vent et øjeblik, mens vi gennemfører dit login via {provider}.",
309
309
  notice: {
310
310
  linkNotAllowedTitle: "Brug e-mailkoden til denne adresse",
311
- useEmail: "Fortsæt med e-mail",
312
311
  retry: "Prøv {provider} igen",
313
312
  dismiss: "Luk",
314
313
  originNotAllowedHint: "Til udviklere: {origin} er ikke en origin for Django-sitet. Tilføj den til sitets origins, og registrer {origin}/auth?provider={id} som redirect-URI hos udbyderen.",
package/src/locales/de.ts CHANGED
@@ -308,7 +308,6 @@ export const de: I18nTranslations = {
308
308
  signingInBody: "Bitte warten, wir schließen Ihre Anmeldung über {provider} ab.",
309
309
  notice: {
310
310
  linkNotAllowedTitle: "Für diese Adresse den E-Mail-Code verwenden",
311
- useEmail: "Weiter mit E-Mail",
312
311
  retry: "{provider} erneut versuchen",
313
312
  dismiss: "Schließen",
314
313
  originNotAllowedHint: "Für Entwickler: {origin} ist kein Origin der Django-Site. Fügen Sie ihn den Origins der Site hinzu und registrieren Sie {origin}/auth?provider={id} beim Anbieter als Redirect-URI.",
package/src/locales/en.ts CHANGED
@@ -308,7 +308,6 @@ export const en: I18nTranslations = {
308
308
  signingInBody: "Please wait while we complete your {provider} sign-in.",
309
309
  notice: {
310
310
  linkNotAllowedTitle: "Use the email code for this address",
311
- useEmail: "Continue with email",
312
311
  retry: "Try {provider} again",
313
312
  dismiss: "Dismiss",
314
313
  originNotAllowedHint: "For developers: {origin} is not an origin of the Django site. Add it to the site's origins and register {origin}/auth?provider={id} as a redirect URI at the provider.",
package/src/locales/es.ts CHANGED
@@ -308,7 +308,6 @@ export const es: I18nTranslations = {
308
308
  signingInBody: "Espera mientras completamos tu inicio de sesión con {provider}.",
309
309
  notice: {
310
310
  linkNotAllowedTitle: "Usa el código por correo para esta dirección",
311
- useEmail: "Continuar con el correo",
312
311
  retry: "Probar {provider} de nuevo",
313
312
  dismiss: "Cerrar",
314
313
  originNotAllowedHint: "Para desarrolladores: {origin} no es un origen del sitio Django. Añádelo a los orígenes del sitio y registra {origin}/auth?provider={id} como URI de redirección en el proveedor.",
package/src/locales/fr.ts CHANGED
@@ -308,7 +308,6 @@ export const fr: I18nTranslations = {
308
308
  signingInBody: "Veuillez patienter, nous terminons votre connexion avec {provider}.",
309
309
  notice: {
310
310
  linkNotAllowedTitle: "Utilisez le code par e-mail pour cette adresse",
311
- useEmail: "Continuer avec l'e-mail",
312
311
  retry: "Réessayer avec {provider}",
313
312
  dismiss: "Fermer",
314
313
  originNotAllowedHint: "Pour les développeurs : {origin} n'est pas une origine du site Django. Ajoutez-la aux origines du site et enregistrez {origin}/auth?provider={id} comme URI de redirection chez le fournisseur.",
package/src/locales/it.ts CHANGED
@@ -308,7 +308,6 @@ export const it: I18nTranslations = {
308
308
  signingInBody: "Attendi, stiamo completando l'accesso con {provider}.",
309
309
  notice: {
310
310
  linkNotAllowedTitle: "Usa il codice via email per questo indirizzo",
311
- useEmail: "Continua con l'email",
312
311
  retry: "Riprova con {provider}",
313
312
  dismiss: "Chiudi",
314
313
  originNotAllowedHint: "Per gli sviluppatori: {origin} non è un origin del sito Django. Aggiungilo agli origin del sito e registra {origin}/auth?provider={id} come redirect URI presso il provider.",
package/src/locales/ja.ts CHANGED
@@ -308,7 +308,6 @@ export const ja: I18nTranslations = {
308
308
  signingInBody: "{provider}でのログインを完了するまでお待ちください。",
309
309
  notice: {
310
310
  linkNotAllowedTitle: "このアドレスにはメールコードをご利用ください",
311
- useEmail: "メールで続ける",
312
311
  retry: "{provider} でもう一度試す",
313
312
  dismiss: "閉じる",
314
313
  originNotAllowedHint: "開発者向け: {origin} は Django サイトの origin ではありません。サイトの origins に追加し、プロバイダーに {origin}/auth?provider={id} をリダイレクト URI として登録してください。",
package/src/locales/ko.ts CHANGED
@@ -308,7 +308,6 @@ export const ko: I18nTranslations = {
308
308
  signingInBody: "{provider} 로그인을 완료하는 동안 잠시 기다려 주세요.",
309
309
  notice: {
310
310
  linkNotAllowedTitle: "이 주소는 이메일 코드를 사용하세요",
311
- useEmail: "이메일로 계속",
312
311
  retry: "{provider}로 다시 시도",
313
312
  dismiss: "닫기",
314
313
  originNotAllowedHint: "개발자용: {origin}은(는) Django 사이트의 origin이 아닙니다. 사이트 origins에 추가하고, 제공업체에 {origin}/auth?provider={id}를 리디렉션 URI로 등록하세요.",
package/src/locales/nl.ts CHANGED
@@ -308,7 +308,6 @@ export const nl: I18nTranslations = {
308
308
  signingInBody: "Even geduld, we ronden je aanmelding via {provider} af.",
309
309
  notice: {
310
310
  linkNotAllowedTitle: "Gebruik de e-mailcode voor dit adres",
311
- useEmail: "Verder met e-mail",
312
311
  retry: "{provider} opnieuw proberen",
313
312
  dismiss: "Sluiten",
314
313
  originNotAllowedHint: "Voor ontwikkelaars: {origin} is geen origin van de Django-site. Voeg hem toe aan de origins van de site en registreer {origin}/auth?provider={id} als redirect-URI bij de provider.",
package/src/locales/no.ts CHANGED
@@ -308,7 +308,6 @@ export const no: I18nTranslations = {
308
308
  signingInBody: "Vent litt mens vi fullfører innloggingen via {provider}.",
309
309
  notice: {
310
310
  linkNotAllowedTitle: "Bruk e-postkoden for denne adressen",
311
- useEmail: "Fortsett med e-post",
312
311
  retry: "Prøv {provider} igjen",
313
312
  dismiss: "Lukk",
314
313
  originNotAllowedHint: "For utviklere: {origin} er ikke en origin for Django-nettstedet. Legg den til i nettstedets origins, og registrer {origin}/auth?provider={id} som redirect-URI hos leverandøren.",
package/src/locales/pl.ts CHANGED
@@ -308,7 +308,6 @@ export const pl: I18nTranslations = {
308
308
  signingInBody: "Poczekaj, kończymy logowanie przez {provider}.",
309
309
  notice: {
310
310
  linkNotAllowedTitle: "Użyj kodu z e-maila dla tego adresu",
311
- useEmail: "Kontynuuj przez e-mail",
312
311
  retry: "Spróbuj ponownie przez {provider}",
313
312
  dismiss: "Zamknij",
314
313
  originNotAllowedHint: "Dla programistów: {origin} nie jest originem witryny Django. Dodaj go do originów witryny i zarejestruj {origin}/auth?provider={id} jako redirect URI u dostawcy.",
@@ -308,7 +308,6 @@ export const ptBR: I18nTranslations = {
308
308
  signingInBody: "Aguarde enquanto concluímos seu login com {provider}.",
309
309
  notice: {
310
310
  linkNotAllowedTitle: "Use o código por e-mail para este endereço",
311
- useEmail: "Continuar com e-mail",
312
311
  retry: "Tentar {provider} novamente",
313
312
  dismiss: "Fechar",
314
313
  originNotAllowedHint: "Para desenvolvedores: {origin} não é uma origem do site Django. Adicione-a às origens do site e registre {origin}/auth?provider={id} como URI de redirecionamento no provedor.",
package/src/locales/ru.ts CHANGED
@@ -308,7 +308,6 @@ export const ru: I18nTranslations = {
308
308
  signingInBody: "Подождите, мы завершаем вход через {provider}.",
309
309
  notice: {
310
310
  linkNotAllowedTitle: "Для этого адреса вход по коду из письма",
311
- useEmail: "Продолжить с почтой",
312
311
  retry: "Повторить вход через {provider}",
313
312
  dismiss: "Закрыть",
314
313
  originNotAllowedHint: "Для разработчиков: {origin} не входит в origins сайта Django. Добавьте его в origins сайта и зарегистрируйте {origin}/auth?provider={id} как redirect URI у провайдера.",
package/src/locales/sv.ts CHANGED
@@ -308,7 +308,6 @@ export const sv: I18nTranslations = {
308
308
  signingInBody: "Vänta medan vi slutför inloggningen via {provider}.",
309
309
  notice: {
310
310
  linkNotAllowedTitle: "Använd e-postkoden för den här adressen",
311
- useEmail: "Fortsätt med e-post",
312
311
  retry: "Försök med {provider} igen",
313
312
  dismiss: "Stäng",
314
313
  originNotAllowedHint: "För utvecklare: {origin} är inte en origin för Django-webbplatsen. Lägg till den i webbplatsens origins och registrera {origin}/auth?provider={id} som redirect-URI hos leverantören.",
package/src/locales/tr.ts CHANGED
@@ -308,7 +308,6 @@ export const tr: I18nTranslations = {
308
308
  signingInBody: "Lütfen bekleyin, {provider} ile girişinizi tamamlıyoruz.",
309
309
  notice: {
310
310
  linkNotAllowedTitle: "Bu adres için e-posta kodunu kullanın",
311
- useEmail: "E-posta ile devam et",
312
311
  retry: "{provider} ile tekrar dene",
313
312
  dismiss: "Kapat",
314
313
  originNotAllowedHint: "Geliştiriciler için: {origin}, Django sitesinin origin'i değil. Sitenin origins listesine ekleyin ve {origin}/auth?provider={id} adresini sağlayıcıda yönlendirme URI'si olarak kaydedin.",
package/src/locales/zh.ts CHANGED
@@ -308,7 +308,6 @@ export const zh: I18nTranslations = {
308
308
  signingInBody: "请稍候,我们正在完成通过 {provider} 的登录。",
309
309
  notice: {
310
310
  linkNotAllowedTitle: "此地址请使用邮件验证码",
311
- useEmail: "使用邮箱继续",
312
311
  retry: "重新尝试 {provider}",
313
312
  dismiss: "关闭",
314
313
  originNotAllowedHint: "开发者提示:{origin} 不是 Django 站点的 origin。请将其添加到站点 origins,并在提供方处将 {origin}/auth?provider={id} 注册为重定向 URI。",
package/src/types.ts CHANGED
@@ -409,7 +409,6 @@ export interface I18nTranslations {
409
409
  notice: {
410
410
  /** Title of the notice for `link_not_allowed` (staff accounts sign in by email code) */
411
411
  linkNotAllowedTitle: string
412
- useEmail: string
413
412
  /** {provider} is the provider's brand name */
414
413
  retry: string
415
414
  dismiss: string
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/locales/en.ts","../src/utils/interpolate.ts","../src/utils/merge.ts","../src/utils/get-value.ts","../src/context.tsx"],"names":["value"],"mappings":"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","file":"chunk-MKK2OTSC.mjs","sourcesContent":["import type { I18nTranslations } from '../types'\n\n/**\n * English translations (default)\n */\nexport const en: I18nTranslations = {\n ui: {\n select: {\n placeholder: \"Select option...\",\n search: \"Search...\",\n noResults: \"No results found.\",\n selectAll: \"Select all\",\n clearAll: \"Clear all\",\n moreItems: \"+{count} more\",\n loading: \"Loading...\",\n },\n pagination: {\n previous: \"Previous\",\n next: \"Next\",\n first: \"First\",\n last: \"Last\",\n page: \"Page {page}\",\n of: \"of {total}\",\n showing: \"{from}-{to} of {total}\",\n },\n dialog: {\n close: \"Close\",\n confirm: \"Confirm\",\n cancel: \"Cancel\",\n ok: \"OK\",\n yes: \"Yes\",\n no: \"No\",\n delete: \"Delete\",\n save: \"Save\",\n discard: \"Discard\",\n alertTitle: \"Notice\",\n confirmTitle: \"Confirm\",\n confirmDelete: \"Are you sure you want to delete this?\",\n promptTitle: \"Input Required\",\n promptPlaceholder: \"Enter value...\",\n },\n form: {\n submit: \"Submit\",\n cancel: \"Cancel\",\n save: \"Save\",\n delete: \"Delete\",\n edit: \"Edit\",\n create: \"Create\",\n update: \"Update\",\n reset: \"Reset\",\n clear: \"Clear\",\n loading: \"Loading...\",\n saving: \"Saving...\",\n deleting: \"Deleting...\",\n required: \"This field is required\",\n optional: \"Optional\",\n minLength: \"{min} characters minimum\",\n maxLength: \"{max} characters maximum\",\n invalidEmail: \"Please enter a valid email address\",\n invalidUrl: \"Please enter a valid URL\",\n invalidPhone: \"Please enter a valid phone number\",\n passwordMismatch: \"Passwords do not match\",\n },\n datetime: {\n today: \"Today\",\n yesterday: \"Yesterday\",\n tomorrow: \"Tomorrow\",\n now: \"Just now\",\n secondsAgo: \"{count} seconds ago\",\n minutesAgo: \"{count} minutes ago\",\n hoursAgo: \"{count} hours ago\",\n daysAgo: \"{count} days ago\",\n pickDate: \"Pick a date\",\n pickTime: \"Pick a time\",\n pickDateTime: \"Pick date and time\",\n pickDateRange: \"Pick a date range\",\n },\n file: {\n upload: \"Upload\",\n uploading: \"Uploading...\",\n dragDrop: \"Drag and drop files here\",\n browse: \"Browse files\",\n remove: \"Remove\",\n maxSize: \"Max size: {size}\",\n invalidType: \"Invalid file type\",\n tooLarge: \"File is too large\",\n },\n table: {\n noData: \"No data available\",\n loading: \"Loading data...\",\n showing: \"Showing {from}-{to} of {total}\",\n rowsPerPage: \"Rows per page\",\n sortAsc: \"Sort ascending\",\n sortDesc: \"Sort descending\",\n filter: \"Filter\",\n clearFilters: \"Clear filters\",\n selectAll: \"Select all\",\n deselectAll: \"Deselect all\",\n selected: \"{count} selected\",\n },\n actions: {\n view: \"View\",\n copy: \"Copy\",\n copied: \"Copied!\",\n copyToClipboard: \"Copy to clipboard\",\n download: \"Download\",\n share: \"Share\",\n refresh: \"Refresh\",\n retry: \"Retry\",\n expand: \"Expand\",\n collapse: \"Collapse\",\n showMore: \"Show more\",\n showLess: \"Show less\",\n seeAll: \"See all\",\n goBack: \"Go back\",\n remove: \"Remove\",\n previousSlide: \"Previous slide\",\n nextSlide: \"Next slide\",\n },\n phone: {\n searchCountries: \"Search countries...\",\n noCountries: \"No countries found\",\n },\n navigation: {\n title: \"Navigation\",\n },\n states: {\n loading: \"Loading\",\n empty: \"Empty\",\n error: \"Error\",\n success: \"Success\",\n warning: \"Warning\",\n info: \"Info\",\n pending: \"Pending\",\n active: \"Active\",\n inactive: \"Inactive\",\n enabled: \"Enabled\",\n disabled: \"Disabled\",\n },\n errors: {\n generic: \"Something went wrong\",\n network: \"Network error. Please check your connection.\",\n timeout: \"Request timed out. Please try again.\",\n notFound: \"Not found\",\n unauthorized: \"Please sign in to continue\",\n forbidden: \"You do not have permission to access this\",\n serverError: \"Server error. Please try again later.\",\n validation: \"Please check the form for errors\",\n unknown: \"An unknown error occurred\",\n },\n },\n layouts: {\n sidebar: {\n toggle: \"Toggle sidebar\",\n collapse: \"Collapse sidebar\",\n expand: \"Expand sidebar\",\n },\n navigation: {\n menu: \"Menu\",\n home: \"Home\",\n back: \"Back\",\n forward: \"Forward\",\n toggleMobile: \"Toggle mobile menu\",\n breadcrumb: \"Breadcrumb\",\n },\n profile: {\n settings: \"Settings\",\n account: \"Account\",\n logout: \"Log out\",\n login: \"Log in\",\n signUp: \"Sign up\",\n signOut: \"Sign Out\",\n userMenu: \"User menu\",\n language: \"Language\",\n },\n theme: {\n toggle: \"Toggle theme\",\n light: \"Light\",\n dark: \"Dark\",\n system: \"System\",\n },\n search: {\n placeholder: \"Search...\",\n noResults: \"No results found\",\n recentSearches: \"Recent searches\",\n clearHistory: \"Clear history\",\n },\n mobile: {\n closeMenu: \"Close menu\",\n },\n errors: {\n somethingWentWrong: \"Something went wrong\",\n tryRefreshing: \"We're sorry, but something unexpected happened. Please try refreshing the page.\",\n refreshPage: \"Refresh Page\",\n goBack: \"Go Back\",\n goHome: \"Go Home\",\n needHelp: \"Need help?\",\n contactSupport: \"Contact support\",\n checkStatus: \"Check service status\",\n persistsContact: \"If the problem persists, please contact {email}\",\n error: \"Error\",\n badRequest: \"Bad Request\",\n authRequired: \"Authentication Required\",\n accessDenied: \"Access Denied\",\n pageNotFound: \"Page Not Found\",\n requestTimeout: \"Request Timeout\",\n serverError: \"Server Error\",\n badGateway: \"Bad Gateway\",\n serviceUnavailable: \"Service Unavailable\",\n gatewayTimeout: \"Gateway Timeout\",\n badRequestDesc: \"The request could not be understood. Please check your input and try again.\",\n authRequiredDesc: \"You need to sign in to access this page.\",\n accessDeniedDesc: \"You don't have permission to access this resource.\",\n pageNotFoundDesc: \"The page you're looking for doesn't exist or has been moved.\",\n requestTimeoutDesc: \"The request took too long to process. Please try again.\",\n serverErrorDesc: \"Something went wrong on our end. We're working to fix it.\",\n badGatewayDesc: \"The server received an invalid response. Please try again later.\",\n serviceUnavailableDesc: \"The service is temporarily unavailable. Please try again later.\",\n gatewayTimeoutDesc: \"The server took too long to respond. Please try again.\",\n unknownErrorDesc: \"An unexpected error occurred. Please try again or contact support.\",\n },\n push: {\n enableNotifications: \"Enable notifications\",\n stayUpdated: \"Stay updated with important updates and alerts\",\n enable: \"Enable\",\n notNow: \"Not now\",\n dismiss: \"Dismiss\",\n },\n auth: {\n authRequired: \"Authentication Required\",\n pleaseSignIn: \"Please sign in to continue\",\n goToSignIn: \"Go to Sign In\",\n identifier: {\n title: \"Sign in\",\n subtitle: {\n email: \"Enter your email to continue\",\n phone: \"Enter your phone number to continue\",\n },\n placeholder: {\n email: \"email@example.com\",\n phone: \"Enter your phone number\",\n },\n button: \"Continue\",\n oauth: {\n continueWith: \"Continue with {provider}\",\n groupLabel: \"Sign in with a provider\",\n },\n channel: {\n email: \"Email\",\n phone: \"Phone\",\n },\n },\n otp: {\n title: \"Enter code\",\n subtitle: \"We sent a code to\",\n button: \"Verify\",\n resend: \"Resend code\",\n changeEmail: \"Change email\",\n changePhone: \"Change phone\",\n openMailbox: \"Open {provider}\",\n },\n twoFactor: {\n title: \"Two-factor authentication\",\n subtitle: {\n totp: \"Enter the 6-digit code from your authenticator\",\n backup: \"Enter one of your backup codes\",\n },\n placeholder: {\n backup: \"XXXXXXXX\",\n },\n button: \"Verify\",\n toggle: {\n toBackup: \"Use backup code\",\n toTotp: \"Use authenticator app\",\n },\n },\n setup: {\n loading: {\n title: \"Setting up...\",\n button: \"Loading\",\n },\n qrCode: {\n title: \"Set up 2FA\",\n subtitle: \"Scan this QR code with your authenticator app\",\n manualEntry: \"Can't scan? Enter manually\",\n confirmPrompt: \"Enter the 6-digit code to confirm\",\n button: \"Enable 2FA\",\n skip: \"Skip for now\",\n },\n complete: {\n title: \"2FA enabled\",\n subtitle: \"Save these backup codes securely\",\n instruction: \"Each code can only be used once\",\n copyAll: \"Copy all codes\",\n copied: \"Copied\",\n done: \"Done\",\n },\n },\n success: {\n message: \"Signed in successfully\",\n redirecting: \"Taking you in…\",\n },\n divider: {\n or: \"or\",\n },\n oauth: {\n signingIn: \"Signing you in…\",\n signingInBody: \"Please wait while we complete your {provider} sign-in.\",\n notice: {\n linkNotAllowedTitle: \"Use the email code for this address\",\n useEmail: \"Continue with email\",\n retry: \"Try {provider} again\",\n dismiss: \"Dismiss\",\n originNotAllowedHint: \"For developers: {origin} is not an origin of the Django site. Add it to the site's origins and register {origin}/auth?provider={id} as a redirect URI at the provider.\",\n },\n error: {\n invalid_state: \"The sign-in link expired. Try again.\",\n oauth_exchange_failed: \"The provider did not accept the sign-in. Please try again.\",\n invalid_id_token: \"We could not verify your sign-in. Please try again.\",\n email_missing: \"The provider did not share an email address. Try another sign-in method.\",\n email_not_verified: \"The provider has not verified your email address. Verify it there, or use another sign-in method.\",\n hosted_domain_not_allowed: \"Accounts from this domain cannot sign in here.\",\n account_inactive: \"This account is disabled. Please contact support.\",\n link_not_allowed: \"{provider} sign-in is not available for this account. Get a code by email instead.\",\n rate_limited: \"Too many attempts. Please wait a moment and try again.\",\n provider_unavailable: \"The provider is unavailable right now. Please try again shortly.\",\n not_configured: \"{provider} sign-in is not available on this site. Use email instead.\",\n cancelled: \"Sign-in was cancelled.\",\n generic: \"Could not sign in. Try again or use email.\",\n },\n },\n footer: {\n terms: \"Terms\",\n privacy: \"Privacy\",\n support: \"Support\",\n },\n dev: {\n anyCodeWorks: \"Dev Mode: Any code works\",\n },\n },\n pwa: {\n addToHomeScreen: \"Add to Home Screen\",\n installApp: \"Install App\",\n tapToLearnHow: \"Tap to learn how\",\n clickToSeeGuide: \"Click to see desktop guide\",\n tapToInstall: \"Tap to install\",\n installing: \"Installing...\",\n dismiss: \"Dismiss\",\n appLogo: \"App logo\",\n iosTitle: \"Add to Home Screen\",\n iosDescription: \"Install this app on your iPhone for quick access and a better experience\",\n iosStep1Title: \"Tap Share\",\n iosStep1Desc: \"At the bottom of Safari\",\n iosStep2Title: \"Scroll & Tap\",\n iosStep2Desc: \"\\\"Add to Home Screen\\\"\",\n iosStep3Title: \"Confirm\",\n iosStep3Desc: \"Tap \\\"Add\\\" in top-right\",\n gotIt: \"Got It\",\n desktopTitle: \"Install App on Desktop\",\n desktopDescription: \"Install this app on {browser} for quick access from your desktop\",\n desktopDescSafari: \"Safari on macOS has limited PWA support. For the best experience, use Chrome, Edge, or Brave.\",\n desktopTip: \"You can also right-click the page and look for \\\"Install\\\" option in {browser}\",\n desktopFirefoxNote: \"Firefox has limited PWA support. Some features may not work as expected.\",\n chromiumStep1Title: \"Find Install Icon\",\n chromiumStep1Desc: \"Look for install icon in address bar (right side)\",\n chromiumStep2Title: \"Click Install\",\n chromiumStep2Desc: \"Click the icon and select \\\"Install\\\"\",\n chromiumStep3Title: \"Confirm\",\n chromiumStep3Desc: \"Click \\\"Install\\\" in the popup dialog\",\n firefoxStep1Title: \"Open Menu\",\n firefoxStep1Desc: \"Click the menu button (three lines)\",\n firefoxStep2Title: \"Find Install Option\",\n firefoxStep2Desc: \"Look for \\\"Install\\\" or \\\"Add to Home Screen\\\"\",\n firefoxStep3Title: \"Confirm\",\n firefoxStep3Desc: \"Follow the installation prompts\",\n safariStep1Title: \"Limited Support\",\n safariStep1Desc: \"Safari on macOS has limited PWA support\",\n safariStep2Title: \"Use Chromium Browser\",\n safariStep2Desc: \"Consider using Chrome, Edge, or Brave for full PWA experience\",\n unknownStep1Title: \"Check Address Bar\",\n unknownStep1Desc: \"Look for an install or download icon\",\n unknownStep2Title: \"Or Use Menu\",\n unknownStep2Desc: \"Check browser menu for install option\",\n unknownStep3Title: \"Confirm\",\n unknownStep3Desc: \"Follow the installation prompts\",\n close: \"Close\",\n },\n profilePage: {\n title: \"Profile\",\n account: \"Account\",\n personalInfo: \"Personal Information\",\n work: \"Work\",\n security: \"Security\",\n actions: \"Actions\",\n email: \"Email\",\n firstName: \"First Name\",\n lastName: \"Last Name\",\n company: \"Company\",\n position: \"Position\",\n phone: \"Phone\",\n notSet: \"Not set\",\n addFirstName: \"Add first name\",\n addLastName: \"Add last name\",\n addPhone: \"Add phone number\",\n addCompany: \"Add company\",\n addPosition: \"Add position\",\n on: \"On\",\n off: \"Off\",\n save: \"Save\",\n saving: \"Saving...\",\n cancel: \"Cancel\",\n signOut: \"Sign Out\",\n deleteAccount: \"Delete Account\",\n deleting: \"Deleting...\",\n twoFactorAuth: \"Two-Factor Authentication\",\n twoFactorEnabled: \"Two-factor authentication is enabled\",\n twoFactorDisabled: \"Add an extra layer of security\",\n enable2FA: \"Enable\",\n avatar: \"Avatar\",\n changeAvatar: \"Change avatar\",\n memberSince: \"Member since {date}\",\n enterField: \"Enter {field}\",\n profileUpdated: \"Profile updated\",\n avatarUpdated: \"Avatar updated\",\n failedToUpdate: \"Failed to update\",\n failedToUploadAvatar: \"Failed to upload avatar\",\n selectImageFile: \"Please select an image file\",\n fileTooLarge: \"File size must be less than 5MB\",\n notAuthenticated: \"Not Authenticated\",\n pleaseLogIn: \"Please log in to view your profile.\",\n deleteAccountTitle: \"Delete Account\",\n deleteAccountDesc: \"This action cannot be undone. Your account will be permanently deleted.\",\n typeToConfirm: \"Type {word} to confirm:\",\n confirmationWord: \"DELETE\",\n },\n },\n api: {\n errors: {\n networkError: \"Network error\",\n connectionFailed: \"Connection failed\",\n requestTimeout: \"Request timed out\",\n serverUnavailable: \"Server is unavailable\",\n invalidResponse: \"Invalid response from server\",\n rateLimited: \"Too many requests. Please wait.\",\n },\n status: {\n connecting: \"Connecting...\",\n connected: \"Connected\",\n disconnected: \"Disconnected\",\n reconnecting: \"Reconnecting...\",\n },\n logout: {\n title: \"Logout\",\n message: \"Are you sure you want to logout?\",\n confirm: \"Logout\",\n cancel: \"Cancel\",\n },\n },\n tools: {\n code: {\n copyCode: \"Copy code\",\n noContent: \"No content available\",\n },\n diagram: {\n title: \"Diagram\",\n clickToView: \"Click to view fullscreen\",\n },\n image: {\n noImage: \"No image content\",\n failedToLoad: \"Failed to load image\",\n zoomIn: \"Zoom in\",\n zoomOut: \"Zoom out\",\n fitToView: \"Fit to view\",\n flipHorizontal: \"Flip horizontal\",\n flipVertical: \"Flip vertical\",\n rotate: \"Rotate 90°\",\n fullscreen: \"Open in fullscreen\",\n },\n gallery: {\n noImages: \"No images available\",\n lightbox: \"Image lightbox\",\n previous: \"Previous image\",\n next: \"Next image\",\n close: \"Close lightbox\",\n download: \"Download image\",\n share: \"Share image\",\n },\n video: {\n play: \"Play video\",\n fullscreen: \"Fullscreen\",\n unavailable: \"Video unavailable\",\n },\n audio: {\n restart: \"Restart\",\n back: \"Back 5 seconds\",\n forward: \"Forward 5 seconds\",\n volume: \"Volume\",\n },\n color: {\n pick: \"Pick color\",\n },\n jsonForm: {\n validationErrors: \"Validation Errors\",\n addItem: \"Add Item\",\n addFirstItem: \"Add First Item\",\n noItems: \"No items added yet.\",\n },\n openapi: {\n response: \"Response\",\n noResponse: \"No response body available\",\n required: \"Required\",\n optional: \"Optional\",\n searchEndpoints: \"Search endpoints...\",\n all: \"All\",\n methods: \"Methods\",\n path: \"Path\",\n description: \"Description\",\n navigation: \"Navigation\",\n previous: \"Previous\",\n next: \"Next\",\n bearerToken: \"Enter Bearer token (optional, uses JWT if empty)\",\n },\n form: {\n title: \"Form\",\n },\n tour: {\n next: \"Next\",\n previous: \"Back\",\n skip: \"Skip\",\n finish: \"Finish\",\n close: \"Close\",\n stepOf: \"Step {current} of {total}\",\n },\n upload: {\n dragDrop: \"Drag & drop files or click to browse\",\n dropHere: \"Drop files here\",\n maxSize: \"Max {size}MB per file\",\n uploading: \"Uploading...\",\n uploaded: \"Uploaded\",\n failed: \"Failed\",\n retry: \"Retry\",\n remove: \"Remove\",\n cancel: \"Cancel\",\n paused: \"Paused\",\n pending: \"Pending\",\n },\n },\n}\n","/**\n * Interpolate variables in a translation string\n *\n * @example\n * interpolate(\"Hello, {name}!\", { name: \"World\" })\n * // => \"Hello, World!\"\n *\n * interpolate(\"+{count} more\", { count: 5 })\n * // => \"+5 more\"\n */\nexport function interpolate(\n template: string,\n params?: Record<string, string | number>\n): string {\n if (!params) return template\n\n return template.replace(/\\{(\\w+)\\}/g, (match, key) => {\n if (key in params) {\n return String(params[key])\n }\n return match\n })\n}\n","import type { I18nTranslations, PartialTranslations } from '../types'\n\ntype AnyObject = { [key: string]: unknown }\n\n/**\n * Deep merge two objects\n */\nfunction deepMerge(target: AnyObject, source: AnyObject): AnyObject {\n const result = { ...target }\n\n for (const key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n const sourceValue = source[key]\n const targetValue = result[key]\n\n if (\n sourceValue !== null &&\n typeof sourceValue === 'object' &&\n !Array.isArray(sourceValue) &&\n targetValue !== null &&\n typeof targetValue === 'object' &&\n !Array.isArray(targetValue)\n ) {\n // Recursively merge objects\n result[key] = deepMerge(\n targetValue as AnyObject,\n sourceValue as AnyObject\n )\n } else if (sourceValue !== undefined) {\n // Override with source value\n result[key] = sourceValue\n }\n }\n }\n\n return result\n}\n\n/**\n * Merge base translations with partial overrides or additional namespaces\n *\n * @example\n * // Override existing keys\n * const customRu = mergeTranslations(ru, {\n * ui: {\n * select: {\n * placeholder: 'Выберите марку авто...'\n * }\n * }\n * })\n *\n * @example\n * // Add app-specific namespace\n * const appTranslations = mergeTranslations(en, {\n * hub: {\n * nav: { home: 'Home' }\n * }\n * })\n */\nexport function mergeTranslations<T extends Record<string, unknown> = Record<string, unknown>>(\n base: I18nTranslations,\n overrides: PartialTranslations | T\n): I18nTranslations & T {\n return deepMerge(\n base as unknown as AnyObject,\n overrides as unknown as AnyObject\n ) as unknown as I18nTranslations & T\n}\n\n/**\n * Create translations from multiple partial sources\n *\n * @example\n * const translations = createTranslations(\n * en, // base\n * uiOverrides, // UI customizations\n * appStrings // App-specific strings\n * )\n */\nexport function createTranslations(\n base: I18nTranslations,\n ...overrides: PartialTranslations[]\n): I18nTranslations {\n return overrides.reduce<I18nTranslations>(\n (acc, override) => mergeTranslations(acc, override),\n base\n )\n}\n","/**\n * Get a nested value from an object using dot notation\n *\n * @example\n * getNestedValue({ ui: { select: { placeholder: 'Select...' } } }, 'ui.select.placeholder')\n * // => 'Select...'\n */\nexport function getNestedValue(\n obj: Record<string, unknown>,\n path: string\n): string | undefined {\n const keys = path.split('.')\n let current: unknown = obj\n\n for (const key of keys) {\n if (current === null || current === undefined) {\n return undefined\n }\n if (typeof current !== 'object') {\n return undefined\n }\n current = (current as Record<string, unknown>)[key]\n }\n\n if (typeof current === 'string') {\n return current\n }\n\n return undefined\n}\n","'use client'\n\nimport * as React from 'react'\n\nimport { en } from './locales/en'\nimport type {\n I18nContextValue,\n I18nProviderProps,\n I18nTranslations,\n LocaleCode,\n} from './types'\nimport { getNestedValue, interpolate, mergeTranslations } from './utils'\n\n/**\n * I18n Context\n */\nconst I18nContext = React.createContext<I18nContextValue | null>(null)\n\n/**\n * Default translations (English)\n */\nconst defaultTranslations: I18nTranslations = en\n\n/**\n * I18n Provider\n *\n * @example\n * // Basic usage with single locale\n * import { I18nProvider, ru } from '@djangocfg/i18n'\n *\n * <I18nProvider locale=\"ru\" translations={ru}>\n * <App />\n * </I18nProvider>\n *\n * @example\n * // With all translations for dynamic switching\n * import { I18nProvider, en, ru, ko } from '@djangocfg/i18n'\n *\n * <I18nProvider\n * locale={currentLocale}\n * allTranslations={{ en, ru, ko }}\n * onLocaleChange={(locale) => setCurrentLocale(locale)}\n * >\n * <App />\n * </I18nProvider>\n *\n * @example\n * // With custom overrides\n * import { I18nProvider, ru, mergeTranslations } from '@djangocfg/i18n'\n *\n * const customRu = mergeTranslations(ru, {\n * ui: { select: { placeholder: 'Выберите марку...' } }\n * })\n *\n * <I18nProvider locale=\"ru\" translations={customRu}>\n * <App />\n * </I18nProvider>\n */\nexport function I18nProvider({\n children,\n locale: initialLocale = 'en',\n translations: initialTranslations,\n allTranslations,\n onLocaleChange,\n}: I18nProviderProps) {\n const [locale, setLocaleState] = React.useState<LocaleCode>(initialLocale)\n\n // Resolve current translations\n const translations = React.useMemo<I18nTranslations>(() => {\n // If allTranslations provided, use it to get translations for current locale\n if (allTranslations && allTranslations[locale]) {\n const localeTranslations = allTranslations[locale]\n // Merge with defaults to fill any missing keys\n return mergeTranslations(defaultTranslations, localeTranslations)\n }\n\n // If single translations provided, use them\n if (initialTranslations) {\n return mergeTranslations(\n defaultTranslations,\n initialTranslations as I18nTranslations\n )\n }\n\n // Fallback to defaults\n return defaultTranslations\n }, [locale, allTranslations, initialTranslations])\n\n // Translation function\n const t = React.useCallback(\n (key: string, params?: Record<string, string | number>): string => {\n const value = getNestedValue(\n translations as unknown as Record<string, unknown>,\n key\n )\n\n if (value === undefined) {\n // Development warning\n if (typeof window !== 'undefined' && window.location.hostname === 'localhost') {\n console.warn(`[i18n] Missing translation key: \"${key}\"`)\n }\n // Return the key as fallback\n return key\n }\n\n return interpolate(value, params)\n },\n [translations]\n )\n\n // Locale change handler\n const setLocale = React.useCallback(\n (newLocale: LocaleCode) => {\n setLocaleState(newLocale)\n onLocaleChange?.(newLocale)\n },\n [onLocaleChange]\n )\n\n // Sync with external locale changes.\n //\n // The comparison moved inside the updater rather than `locale` joining the\n // deps: this effect must run when the PROP changes, not when local state\n // does. Depending on `locale` would re-run it after every `setLocale` call\n // and reset the user's choice back to `initialLocale`.\n React.useEffect(() => {\n setLocaleState((current) => (current === initialLocale ? current : initialLocale))\n }, [initialLocale])\n\n const value = React.useMemo<I18nContextValue>(\n () => ({\n locale,\n translations,\n t,\n setLocale,\n }),\n [locale, translations, t, setLocale]\n )\n\n return <I18nContext.Provider value={value}>{children}</I18nContext.Provider>\n}\n\n/**\n * Hook to access i18n context\n *\n * @example\n * function MyComponent() {\n * const { t, locale, setLocale } = useI18n()\n *\n * return (\n * <div>\n * <p>{t('ui.select.placeholder')}</p>\n * <p>{t('ui.pagination.showing', { from: 1, to: 10, total: 100 })}</p>\n * <button onClick={() => setLocale('ru')}>Switch to Russian</button>\n * </div>\n * )\n * }\n */\nexport function useI18n(): I18nContextValue {\n const context = React.useContext(I18nContext)\n\n if (!context) {\n // Return default implementation if no provider\n // This allows components to work without provider (using English defaults)\n return {\n locale: 'en',\n translations: defaultTranslations,\n t: (key: string, params?: Record<string, string | number>) => {\n const value = getNestedValue(\n defaultTranslations as unknown as Record<string, unknown>,\n key\n )\n if (value === undefined) return key\n return interpolate(value, params)\n },\n setLocale: () => {\n if (typeof window !== 'undefined' && window.location.hostname === 'localhost') {\n console.warn(\n '[i18n] setLocale called but no I18nProvider found. Wrap your app with I18nProvider to enable locale switching.'\n )\n }\n },\n }\n }\n\n return context\n}\n\n/**\n * Hook to get the translation function only\n * Useful when you only need translations without other context values\n *\n * @example\n * function MyComponent() {\n * const t = useTranslation()\n * return <span>{t('ui.form.save')}</span>\n * }\n */\nexport function useTranslation() {\n const { t } = useI18n()\n return t\n}\n\n/**\n * Hook to get current locale\n *\n * @example\n * function MyComponent() {\n * const locale = useLocale()\n * return <span>Current: {locale}</span>\n * }\n */\nexport function useLocale(): LocaleCode {\n const { locale } = useI18n()\n return locale\n}\n\n/**\n * Like `useLocale()`, but returns `null` when no `<I18nProvider>` is\n * mounted instead of falling back to `'en'`. Useful for code that\n * needs to distinguish \"no app locale at all\" from \"app locale is en\"\n * — e.g. speech recognition's `auto` mode wants to fall through to\n * `navigator.language` when the app hasn't set one.\n */\nexport function useLocaleOptional(): LocaleCode | null {\n const context = React.useContext(I18nContext)\n return context?.locale ?? null\n}\n\n/**\n * Alias for useTranslation\n * Lightweight hook that just returns the t function\n * Works with or without I18nProvider (falls back to English)\n *\n * @example\n * function MyComponent() {\n * const t = useT()\n * return <span>{t('ui.form.save')}</span>\n * }\n */\nexport const useT = useTranslation\n\n/**\n * Type-safe translation hook\n *\n * Returns a translation function that only accepts valid keys from your translations type.\n * Use this when you want compile-time checking of translation keys.\n *\n * @example\n * ```typescript\n * import { useTypedT } from '@djangocfg/i18n'\n * import type { I18nTranslations } from '@djangocfg/i18n'\n *\n * function MyComponent() {\n * const t = useTypedT<I18nTranslations>()\n * return <span>{t('ui.form.save')}</span> // OK\n * return <span>{t('ui.form.typo')}</span> // Compile error!\n * }\n * ```\n *\n * @example\n * ```typescript\n * // With merged translations (app + extensions)\n * import type { AppTranslations } from '@/i18n/types'\n *\n * function MyComponent() {\n * const t = useTypedT<AppTranslations>()\n * return <span>{t('leads.form.title')}</span> // OK if leads is in AppTranslations\n * }\n * ```\n */\nexport function useTypedT<T extends object>(): (\n key: import('./utils/path-keys').PathKeys<T>,\n params?: Record<string, string | number>\n) => string {\n const { t } = useI18n()\n return t as (\n key: import('./utils/path-keys').PathKeys<T>,\n params?: Record<string, string | number>\n ) => string\n}\n\n/**\n * Get translation without hook (for class components or non-React contexts)\n * Always uses English defaults, no context support\n *\n * @example\n * // In a class component\n * render() {\n * const title = getT('layouts.errors.somethingWentWrong')\n * return <h1>{title}</h1>\n * }\n *\n * @example\n * // With interpolation\n * const message = getT('ui.pagination.showing', { from: 1, to: 10, total: 100 })\n */\nexport function getT(\n key: string,\n params?: Record<string, string | number>\n): string {\n const value = getNestedValue(\n defaultTranslations as unknown as Record<string, unknown>,\n key\n )\n if (value === undefined) return key\n return interpolate(value, params)\n}\n"]}