@djangocfg/i18n 2.1.604 → 2.1.606
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.
- package/dist/{chunk-WGTVO2XB.mjs → chunk-MKK2OTSC.mjs} +7 -5
- package/dist/chunk-MKK2OTSC.mjs.map +1 -0
- package/dist/copy/index.mjs +1 -1
- package/dist/index.d.mts +9 -3
- package/dist/index.mjs +12 -8
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/locales/ar.ts +4 -2
- package/src/locales/da.ts +4 -2
- package/src/locales/de.ts +4 -2
- package/src/locales/en.ts +4 -2
- package/src/locales/es.ts +4 -2
- package/src/locales/fr.ts +4 -2
- package/src/locales/it.ts +4 -2
- package/src/locales/ja.ts +4 -2
- package/src/locales/ko.ts +4 -2
- package/src/locales/nl.ts +4 -2
- package/src/locales/no.ts +4 -2
- package/src/locales/pl.ts +4 -2
- package/src/locales/pt-BR.ts +4 -2
- package/src/locales/ru.ts +4 -2
- package/src/locales/sv.ts +4 -2
- package/src/locales/tr.ts +4 -2
- package/src/locales/zh.ts +4 -2
- package/src/types.ts +8 -2
- package/dist/chunk-WGTVO2XB.mjs.map +0 -1
|
@@ -241,8 +241,8 @@ var en = {
|
|
|
241
241
|
},
|
|
242
242
|
button: "Continue",
|
|
243
243
|
oauth: {
|
|
244
|
-
|
|
245
|
-
|
|
244
|
+
continueWith: "Continue with {provider}",
|
|
245
|
+
groupLabel: "Sign in with a provider"
|
|
246
246
|
},
|
|
247
247
|
channel: {
|
|
248
248
|
email: "Email",
|
|
@@ -309,7 +309,8 @@ var en = {
|
|
|
309
309
|
linkNotAllowedTitle: "Use the email code for this address",
|
|
310
310
|
useEmail: "Continue with email",
|
|
311
311
|
retry: "Try {provider} again",
|
|
312
|
-
dismiss: "Dismiss"
|
|
312
|
+
dismiss: "Dismiss",
|
|
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."
|
|
313
314
|
},
|
|
314
315
|
error: {
|
|
315
316
|
invalid_state: "The sign-in link expired. Try again.",
|
|
@@ -322,6 +323,7 @@ var en = {
|
|
|
322
323
|
link_not_allowed: "{provider} sign-in is not available for this account. Get a code by email instead.",
|
|
323
324
|
rate_limited: "Too many attempts. Please wait a moment and try again.",
|
|
324
325
|
provider_unavailable: "The provider is unavailable right now. Please try again shortly.",
|
|
326
|
+
not_configured: "{provider} sign-in is not available on this site. Use email instead.",
|
|
325
327
|
cancelled: "Sign-in was cancelled.",
|
|
326
328
|
generic: "Could not sign in. Try again or use email."
|
|
327
329
|
}
|
|
@@ -717,5 +719,5 @@ function getT(key, params) {
|
|
|
717
719
|
}
|
|
718
720
|
|
|
719
721
|
export { I18nProvider, createTranslations, en, getT, interpolate, mergeTranslations, useI18n, useLocale, useLocaleOptional, useT, useTranslation, useTypedT };
|
|
720
|
-
//# sourceMappingURL=chunk-
|
|
721
|
-
//# sourceMappingURL=chunk-
|
|
722
|
+
//# sourceMappingURL=chunk-MKK2OTSC.mjs.map
|
|
723
|
+
//# sourceMappingURL=chunk-MKK2OTSC.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-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"]}
|
package/dist/copy/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useLocaleOptional } from '../chunk-
|
|
1
|
+
import { useLocaleOptional } from '../chunk-MKK2OTSC.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
|
@@ -402,8 +402,10 @@ interface I18nTranslations {
|
|
|
402
402
|
};
|
|
403
403
|
button: string;
|
|
404
404
|
oauth: {
|
|
405
|
-
|
|
406
|
-
|
|
405
|
+
/** {provider} is the provider's brand name: "Continue with GitHub" */
|
|
406
|
+
continueWith: string;
|
|
407
|
+
/** Accessible name of the group of provider buttons */
|
|
408
|
+
groupLabel: string;
|
|
407
409
|
};
|
|
408
410
|
channel: {
|
|
409
411
|
email: string;
|
|
@@ -483,6 +485,8 @@ interface I18nTranslations {
|
|
|
483
485
|
/** {provider} is the provider's brand name */
|
|
484
486
|
retry: string;
|
|
485
487
|
dismiss: string;
|
|
488
|
+
/** Developer-only line under the `origin_not_allowed` notice. {origin}: the page origin, {id}: provider id */
|
|
489
|
+
originNotAllowedHint: string;
|
|
486
490
|
};
|
|
487
491
|
error: {
|
|
488
492
|
invalid_state: string;
|
|
@@ -495,6 +499,8 @@ interface I18nTranslations {
|
|
|
495
499
|
link_not_allowed: string;
|
|
496
500
|
rate_limited: string;
|
|
497
501
|
provider_unavailable: string;
|
|
502
|
+
/** The site cannot start this provider's sign-in (origin or redirect not configured); {provider} is the brand name */
|
|
503
|
+
not_configured: string;
|
|
498
504
|
cancelled: string;
|
|
499
505
|
generic: string;
|
|
500
506
|
};
|
|
@@ -1011,6 +1017,6 @@ declare function mergeTranslations<T extends Record<string, unknown> = Record<st
|
|
|
1011
1017
|
*/
|
|
1012
1018
|
declare function createTranslations(base: I18nTranslations, ...overrides: PartialTranslations[]): I18nTranslations;
|
|
1013
1019
|
|
|
1014
|
-
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.github" | "layouts.auth.identifier.oauth.google" | "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.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.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;
|
|
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;
|
|
1015
1021
|
|
|
1016
1022
|
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-
|
|
2
|
-
export { I18nProvider, createTranslations, en, getT, interpolate, mergeTranslations, useI18n, useLocale, useLocaleOptional, useT, useTranslation, useTypedT } from './chunk-
|
|
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';
|
|
3
3
|
|
|
4
4
|
// src/locales/ru.ts
|
|
5
5
|
var ru = {
|
|
@@ -241,8 +241,8 @@ var ru = {
|
|
|
241
241
|
},
|
|
242
242
|
button: "\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C",
|
|
243
243
|
oauth: {
|
|
244
|
-
|
|
245
|
-
|
|
244
|
+
continueWith: "\u0412\u043E\u0439\u0442\u0438 \u0447\u0435\u0440\u0435\u0437 {provider}",
|
|
245
|
+
groupLabel: "\u0412\u043E\u0439\u0442\u0438 \u0447\u0435\u0440\u0435\u0437 \u0441\u0442\u043E\u0440\u043E\u043D\u043D\u0438\u0439 \u0441\u0435\u0440\u0432\u0438\u0441"
|
|
246
246
|
},
|
|
247
247
|
channel: {
|
|
248
248
|
email: "Email",
|
|
@@ -309,7 +309,8 @@ var ru = {
|
|
|
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
310
|
useEmail: "\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0441 \u043F\u043E\u0447\u0442\u043E\u0439",
|
|
311
311
|
retry: "\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C \u0432\u0445\u043E\u0434 \u0447\u0435\u0440\u0435\u0437 {provider}",
|
|
312
|
-
dismiss: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C"
|
|
312
|
+
dismiss: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C",
|
|
313
|
+
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."
|
|
313
314
|
},
|
|
314
315
|
error: {
|
|
315
316
|
invalid_state: "\u0421\u0441\u044B\u043B\u043A\u0430 \u0434\u043B\u044F \u0432\u0445\u043E\u0434\u0430 \u0443\u0441\u0442\u0430\u0440\u0435\u043B\u0430. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0435\u0449\u0451 \u0440\u0430\u0437.",
|
|
@@ -322,6 +323,7 @@ var ru = {
|
|
|
322
323
|
link_not_allowed: "\u0412\u0445\u043E\u0434 \u0447\u0435\u0440\u0435\u0437 {provider} \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u0434\u043B\u044F \u044D\u0442\u043E\u0433\u043E \u0430\u043A\u043A\u0430\u0443\u043D\u0442\u0430. \u041F\u043E\u043B\u0443\u0447\u0438\u0442\u0435 \u043A\u043E\u0434 \u043F\u043E \u043F\u043E\u0447\u0442\u0435.",
|
|
323
324
|
rate_limited: "\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u043D\u043E\u0433\u043E \u043F\u043E\u043F\u044B\u0442\u043E\u043A. \u041F\u043E\u0434\u043E\u0436\u0434\u0438\u0442\u0435 \u043D\u0435\u043C\u043D\u043E\u0433\u043E \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435.",
|
|
324
325
|
provider_unavailable: "\u041F\u0440\u043E\u0432\u0430\u0439\u0434\u0435\u0440 \u0441\u0435\u0439\u0447\u0430\u0441 \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0447\u0443\u0442\u044C \u043F\u043E\u0437\u0436\u0435.",
|
|
326
|
+
not_configured: "\u0412\u0445\u043E\u0434 \u0447\u0435\u0440\u0435\u0437 {provider} \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u043D\u0430 \u044D\u0442\u043E\u043C \u0441\u0430\u0439\u0442\u0435. \u0412\u043E\u0439\u0434\u0438\u0442\u0435 \u043F\u043E \u043F\u043E\u0447\u0442\u0435.",
|
|
325
327
|
cancelled: "\u0412\u0445\u043E\u0434 \u043E\u0442\u043C\u0435\u043D\u0451\u043D.",
|
|
326
328
|
generic: "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0432\u043E\u0439\u0442\u0438. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0435\u0449\u0451 \u0440\u0430\u0437 \u0438\u043B\u0438 \u0432\u043E\u0439\u0434\u0438\u0442\u0435 \u043F\u043E \u043F\u043E\u0447\u0442\u0435."
|
|
327
329
|
}
|
|
@@ -784,8 +786,8 @@ var ko = {
|
|
|
784
786
|
},
|
|
785
787
|
button: "\uACC4\uC18D",
|
|
786
788
|
oauth: {
|
|
787
|
-
|
|
788
|
-
|
|
789
|
+
continueWith: "{provider}\uB85C \uACC4\uC18D",
|
|
790
|
+
groupLabel: "\uC678\uBD80 \uACC4\uC815\uC73C\uB85C \uB85C\uADF8\uC778"
|
|
789
791
|
},
|
|
790
792
|
channel: {
|
|
791
793
|
email: "\uC774\uBA54\uC77C",
|
|
@@ -852,7 +854,8 @@ var ko = {
|
|
|
852
854
|
linkNotAllowedTitle: "\uC774 \uC8FC\uC18C\uB294 \uC774\uBA54\uC77C \uCF54\uB4DC\uB97C \uC0AC\uC6A9\uD558\uC138\uC694",
|
|
853
855
|
useEmail: "\uC774\uBA54\uC77C\uB85C \uACC4\uC18D",
|
|
854
856
|
retry: "{provider}\uB85C \uB2E4\uC2DC \uC2DC\uB3C4",
|
|
855
|
-
dismiss: "\uB2EB\uAE30"
|
|
857
|
+
dismiss: "\uB2EB\uAE30",
|
|
858
|
+
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."
|
|
856
859
|
},
|
|
857
860
|
error: {
|
|
858
861
|
invalid_state: "\uB85C\uADF8\uC778 \uB9C1\uD06C\uAC00 \uB9CC\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC \uC2DC\uB3C4\uD558\uC138\uC694.",
|
|
@@ -865,6 +868,7 @@ var ko = {
|
|
|
865
868
|
link_not_allowed: "\uC774 \uACC4\uC815\uC740 {provider} \uB85C\uADF8\uC778\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uB300\uC2E0 \uC774\uBA54\uC77C\uB85C \uCF54\uB4DC\uB97C \uBC1B\uC73C\uC138\uC694.",
|
|
866
869
|
rate_limited: "\uC2DC\uB3C4\uAC00 \uB108\uBB34 \uB9CE\uC2B5\uB2C8\uB2E4. \uC7A0\uC2DC \uD6C4 \uB2E4\uC2DC \uC2DC\uB3C4\uD574 \uC8FC\uC138\uC694.",
|
|
867
870
|
provider_unavailable: "\uC81C\uACF5\uC5C5\uCCB4\uB97C \uC9C0\uAE08 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uC7A0\uC2DC \uD6C4 \uB2E4\uC2DC \uC2DC\uB3C4\uD574 \uC8FC\uC138\uC694.",
|
|
871
|
+
not_configured: "\uC774 \uC0AC\uC774\uD2B8\uC5D0\uC11C\uB294 {provider} \uB85C\uADF8\uC778\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uB300\uC2E0 \uC774\uBA54\uC77C\uC744 \uC0AC\uC6A9\uD574 \uC8FC\uC138\uC694.",
|
|
868
872
|
cancelled: "\uB85C\uADF8\uC778\uC774 \uCDE8\uC18C\uB418\uC5C8\uC2B5\uB2C8\uB2E4.",
|
|
869
873
|
generic: "\uB85C\uADF8\uC778\uD558\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC \uC2DC\uB3C4\uD558\uAC70\uB098 \uC774\uBA54\uC77C\uC744 \uC0AC\uC6A9\uD558\uC138\uC694."
|
|
870
874
|
}
|