mirror of
https://github.com/QuantumNous/new-api.git
synced 2026-09-06 17:46:23 +00:00
+3








a42b397607
* feat: add parameter coverage for the operations: copy, trim_prefix, trim_suffix, ensure_prefix, ensure_suffix, trim_space, to_lower, to_upper, replace, and regex_replace * fix: CrossGroupRetry default false 移除gorm:"default:false",避免每次 AutoMigrate时都执行ALTER TABLE `tokens` MODIFY COLUMN `cross_group_retry` boolean DEFAULT false 且bool默认false不影响原有功能 * feat: check-in feature integrates Turnstile security check * feat: add support for Doubao /v1/responses (#2567) * feat: add support for Doubao /v1/responses * fix: fix model deployment style issues, lint problems, and i18n gaps. (#2556) * fix: fix model deployment style issues, lint problems, and i18n gaps. * fix: adjust the key not to be displayed on the frontend, tested via the backend. * fix: adjust the sidebar configuration logic to use the default configuration items if they are not defined. * feat: add plans directory to .gitignore * fix: 修复 gemini 文件类型不支持 image/jpg * fix: fix the proxyURL is empty, not using the default HTTP client configuration && the AWS calling side did not apply the relay timeout. * fix: batch add key backend deduplication * Merge pull request #2582 from seefs001/fix/tips fix: add tips for model management and channel testing * fix(gin): update request body size check to allow zero limit * feat: add regex pattern to mask API keys in sensitive information * fix(task): 修复使用 auto 分组时 Task Relay 不记录日志和不扣费的问题 问题描述: - 使用 auto 分组的令牌调用 /v1/videos 等 Task 接口时,虽然任务能成功创建, 但使用日志不显示记录,且不会扣费 根本原因: - Distribute 中间件在选择渠道后,会将实际选中的分组存储在 ContextKeyAutoGroup 中 - 但 RelayTaskSubmit 函数没有从 context 中读取这个值来更新 info.UsingGroup - 导致 info.UsingGroup 始终是 "auto" 而不是实际选中的分组(如 "sora2逆") - 当 auto 分组的倍率配置为 0 时,quota 计算结果为 0 - 日志记录条件 "if quota != 0" 不满足,导致日志不记录、不扣费 修复方案: - 在 RelayTaskSubmit 函数中计算分组倍率之前,添加从 ContextKeyAutoGroup 获取实际分组的逻辑 - 使用安全的类型断言,避免潜在的 panic 风险 影响范围: - 仅影响 Task Relay 流程(/v1/videos, /suno, /kling 等接口) - 不影响使用具体分组令牌的调用 - 不影响其他 Relay 类型(chat/completions 等已有类似处理逻辑) * 🚀 feat(web): port legacy v2 frontend changes into new UI (deployments, check-in, ollama) + align APIs Bring over the key frontend functionality introduced in merge `efa3301` and integrate it cleanly into the new `web/src` architecture and design system. - **Model deployments (io.net)** - Align frontend endpoints and payloads with backend deployment routes (`/api/deployments/*`) - Add missing deployment operations: details, logs (container-aware), update config, rename, extend duration - Improve create-deployment flow (proper request shape, name availability check, price estimation parity) - **System settings** - Enhance io.net deployment settings: allow testing connection with an unsaved API key and add “how to get API key” guidance - **Channels / Ollama** - Improve Ollama model management: live fetch via base_url with fallback to channel fetch, selection + apply flows, delete confirmation - Refactor for feature-layer consistency: extract Ollama parsing/normalization utilities into `features/channels/lib` - **Quality** - Ensure TypeScript typecheck passes after refactor and new dialogs/components integration * Merge pull request #2590 from xyfacai/fix/max-body-limit fix: 设置默认max req body 为128MB * docs: update readme * i18n: add missing translations * fix(gemini): fetch model list via native v1beta/models endpoint Use the native Gemini Models API (/v1beta/models) instead of the OpenAI-compatible path when listing models for Gemini channels, improving compatibility with third-party Gemini-format providers that don't implement OpenAI routes. - Add paginated model listing with timeout and optional proxy support - Select an enabled key for multi-key Gemini channels * refactor(gemini): 更新 GeminiModelsResponse 以使用 dto.GeminiModel 类型 * fix: remove Minimax from FETCHABLE channels * fix(minimax): 添加 MiniMax-M2 系列模型到 ModelList * feat: add doubao video 1.5 * 🤢 chore: remove useless file * feat: /v1/chat/completion -> /v1/response (#2629) * feat: /v1/chat/completion -> /v1/response * fix: clean propertyNames for gemini function * fix: support snake_case fields in GeminiChatGenerationConfig * chore: update dependencies and lockfile for improved compatibility - Updated @clerk/clerk-react to version 5.59.3 - Updated @hookform/resolvers to version 5.2.2 - Updated @lobehub/icons to version 2.48.0 - Updated various Radix UI components to their latest versions - Updated @tanstack/react-query and related packages for better performance - Updated axios, i18next, and other libraries for security and feature enhancements - Updated lockfile to include configVersion and ensure consistency across environments * Merge pull request #2647 from seefs001/feature/status-code-auto-disable feat: status code auto-disable configuration * fix: chat2response setting ui (#2643) * fix: setting ui * fix: rm global.chat_completions_to_responses_policy * fix: rm global.chat_completions_to_responses_policy * Merge pull request #2627 from seefs001/feature/channel-test-param-override feat: channel testing supports parameter overriding * chore: update dependencies and lockfile for improved compatibility - Updated @lobehub/icons to version 4.0.3 - Updated ai to version 6.0.27 - Updated various libraries including axios, react-day-picker, and streamdown for security and feature enhancements - Updated devDependencies for eslint, prettier, and typescript for better performance and compatibility - Updated lockfile to ensure consistency across environments * chore: update lockfile and Vite configuration for improved build process - Updated lockfile to version 1 for better compatibility and consistency - Enhanced Vite configuration to support production optimizations, including code minification and chunking for dependencies - Added environment-specific console and debugger removal for production builds * chore: migrate from Vite to Rsbuild for build process - Added Rsbuild configuration for development and production builds - Updated package.json scripts to use Rsbuild instead of Vite - Replaced @tailwindcss/vite with @tailwindcss/postcss in dependencies - Introduced postcss.config.mjs for Tailwind CSS integration - Updated TypeScript configuration to include Rsbuild config - Removed Vite configuration file to streamline the build process * refactor: optimize user data handling and API calls - Replaced direct API calls to get user data with cached user information from auth-store in ModelsFilter and SummaryCards components. - Improved session management in RootComponent and Authenticated route to utilize localStorage for user authentication status, reducing unnecessary API requests. - Added caching for setup status checks to enhance performance during navigation. * feat: enhance session validation in authenticated route - Implemented session verification to check user authentication status via API call only once per session. - Updated beforeLoad logic to redirect users to the login page if session validation fails or if no user information is available in localStorage. - Improved user data handling by updating the auth store with fresh user information upon successful session verification. * refactor: improve useMediaQuery hook for better SSR handling - Enhanced the useMediaQuery hook to check for window availability before accessing matchMedia, preventing errors during server-side rendering. - Simplified state initialization and change handling by using a dedicated function to determine initial matches. - Updated event listener management for improved performance and clarity. * feat(hooks): export useMediaQuery from hooks index * refactor: update useMediaQuery imports to use unified hooks index * fix(rsbuild): fix loadEnv API usage and removeConsole type * feat: customizable automatic retry status codes * refactor(hooks): use useSyncExternalStore for better SSR handling in useMediaQuery * refactor: simplify embedded file structure in main.go - Updated the embedded file directive to include the entire web/dist directory instead of individual assets, streamlining the build process. * refactor: replace DropdownMenu with Sheet component in ProfileDropdown - Updated the ProfileDropdown component to use a Sheet for user interactions instead of a DropdownMenu. - Enhanced user info display with improved layout and styling. - Added navigation links and sign-out functionality within the Sheet. * refactor: streamline ProfileDropdown layout and improve user info display - Removed unused Badge component and secondary text from user display. - Enhanced styling for user info section and navigation links. - Updated sign-out functionality to use a button for better accessibility. * feat: add System Settings link for super admin in ProfileDropdown - Introduced a new link to System Settings in the ProfileDropdown, visible only to users with the SUPER_ADMIN role. - Updated imports to include the Settings icon and adjusted the component logic accordingly. - Removed the Settings entry from the sidebar data to streamline navigation. * feat: codex channel (#2652) * feat: codex channel * feat: codex channel * feat: codex oauth flow * feat: codex refresh cred * feat: codex usage * fix: codex err message detail * fix: codex setting ui * feat: codex refresh cred task * fix: import err * fix: codex store must be false * fix: chat -> responses tool call * fix: chat -> responses tool call * feat(i18n): add missing translations * fix(i18n): restore missing translations for "360" and add "User Menu" in multiple locales - Reintroduced the translation for "360" in English, French, Japanese, Russian, Vietnamese, and Chinese locales. - Added the "User Menu" translation in the same languages to enhance user interface consistency. * fix: openAI function to gemini function field adjusted to whitelist mode * feat: TLS_INSECURE_SKIP_VERIFY env * fix: for chat-based calls to the Claude model, tagging is required. Using Claude's rendering logs, the two approaches handle input rendering differently. * refactor(system-settings): restructure settings sections and navigation - Replaced SettingsAccordion with a unified SettingsSection component across various settings sections for consistency. - Introduced a section registry to manage general settings sections dynamically. - Updated navigation items in the system settings sidebar to utilize the new section registry. - Enhanced the GeneralSettings component to support section-based content rendering based on user selection. * fix(system-settings): remove type assertion for quotaDisplayType in GeneralSettings - Eliminated the type assertion for quotaDisplayType in the GeneralSettings component to improve type inference and maintain cleaner code. * refactor(system-settings): update zod import syntax in general settings - Changed the import statement for zod from a default import to a namespace import for better clarity and consistency in the codebase. * fix: the login method cannot be displayed under the aff link. * feat(system-settings): implement generic settings page and enhance navigation - Added a new generic SettingsPage component to handle loading states, data fetching, and section rendering. - Integrated section registry for general and authentication settings to streamline navigation and content management. - Updated URL utility functions to improve query parameter handling for active navigation states. - Enhanced the system settings sidebar to include authentication section items dynamically. * refactor(system-settings): replace SettingsAccordion with SettingsSection across authentication settings - Updated BasicAuthSection, BotProtectionSection, OAuthSection, and PasskeySection to use the new SettingsSection component for consistency. - Introduced a section registry to manage authentication settings dynamically, enhancing navigation and content rendering. * feat(system-settings): enhance request limits settings with new section and unified component - Added a new Request Limits section to the system settings sidebar, integrating it with the section registry for improved navigation. - Replaced SettingsAccordion with SettingsSection in RateLimitSection, SensitiveWordsSection, and SSRFSection for consistency. - Updated RequestLimitsSettings to utilize the new SettingsPage component for better data handling and rendering. - Implemented a search schema for request limits to streamline navigation and section management. * feat(system-settings): integrate content settings sections with unified component and registry - Added a new Content section to the system settings sidebar, incorporating it into the section registry for improved navigation. - Replaced SettingsAccordion with SettingsSection in multiple content-related components for consistency. - Created a section registry to manage content settings dynamically, enhancing the rendering and navigation experience. - Updated the ContentSettings component to utilize the new section registry and streamline content display. * feat(system-settings): enhance integrations settings with unified section registry and components - Introduced a new section registry for integrations settings, consolidating various settings components for better organization and navigation. - Replaced SettingsAccordion with SettingsSection in multiple integration-related components for consistency. - Updated IntegrationSettings to utilize the new SettingsPage component, improving data handling and rendering. - Added a new integrations section to the system settings sidebar, enhancing user experience and accessibility. * feat(system-settings): unify model settings with new section registry and components - Introduced a section registry for model settings, consolidating various model-related components for improved organization and navigation. - Replaced SettingsAccordion with SettingsSection in multiple model settings components for consistency. - Updated ModelSettings to utilize the new SettingsPage component, enhancing data handling and rendering. - Added a new Models section to the system settings sidebar, improving user experience and accessibility. * feat(system-settings): enhance maintenance settings with unified section registry and components - Introduced a new section registry for maintenance settings, consolidating various maintenance-related components for improved organization and navigation. - Replaced SettingsAccordion with SettingsSection in multiple maintenance components for consistency. - Updated MaintenanceSettings to utilize the new section registry, enhancing data handling and rendering. - Added a new Maintenance section to the system settings sidebar, improving user experience and accessibility. * feat(system-settings): update section titles for improved clarity and consistency - Renamed various section titles across content, integrations, maintenance, models, and request limits to enhance clarity and better reflect their functionalities. - Adjusted titles such as 'Dashboard' to 'Data Dashboard', 'API Info' to 'API Addresses', and 'Update Checker' to 'System maintenance' for improved user understanding. - Ensured consistency in naming conventions across all settings sections to streamline user experience and navigation. * feat(nav-group): enhance collapsible menu behavior and URL matching logic - Added controlled state management for collapsible menu items to automatically expand based on active sub-item paths. - Updated the URL matching logic in checkIsActive to improve handling of query parameters and ensure accurate navigation state detection. - Refactored the collapsible component to utilize the new state management, enhancing user experience in the sidebar navigation. * feat(system-settings): update system settings navigation and redirect logic - Changed the link in the profile dropdown to point directly to the general section of system settings with a search parameter for section identification. - Implemented a redirect in the general settings route to ensure users are directed to the default section if no section parameter is provided, enhancing navigation consistency. * feat(system-settings): unify route configuration for settings sections - Refactored route configuration for various system settings sections (auth, content, general, integrations, maintenance, models, request limits) to utilize a new `createSettingsRouteConfig` function. - This change consolidates the repetitive logic of creating search schemas and handling redirects, improving code maintainability and readability. - Enhanced navigation by ensuring default sections are loaded when no section parameter is provided. * feat(url-utils): enhance URL handling and matching logic - Introduced a new utility function `urlToString` to convert various URL formats (string and object) into a standardized string format. - Updated the `checkIsActive` function to utilize `urlToString`, improving the accuracy of URL matching and handling of query parameters. - Refactored URL comparison logic to ensure consistent behavior across different URL types, enhancing navigation state detection. * feat(system-settings): validate DataExportDefaultTime for improved data handling - Introduced a new function `validateDataExportDefaultTime` to ensure the `DataExportDefaultTime` value is either 'week', 'hour', or 'day', defaulting to 'hour' for unexpected values. - Updated the `DataExportDefaultTime` assignment in the settings section to utilize this validation function, enhancing data integrity and user experience. * perf(system-settings): Improve the i18n of system settings content - Changed button labels in various sections to use consistent capitalization and translation functions, enhancing user experience. - Updated validation messages in schemas to utilize translation functions for improved internationalization support. - Ensured all user-facing strings are properly translated, improving accessibility for non-English users. * fix(system-settings): update ApiInfoFormValues type inference for improved schema validation - Changed the type inference for ApiInfoFormValues to utilize ReturnType of createApiInfoSchema, ensuring accurate type representation and enhancing type safety in the API info section. * fix(chat-settings): improve validation logic for chat settings schema - Updated the validation logic to ensure that null values are correctly handled and that only objects are accepted as valid items in the chat settings schema. - Simplified error handling by removing the error message from the catch block, providing a consistent user-facing message for invalid JSON strings. * fix(system-settings): enhance validation error handling in uptime-kuma schema - Updated the validation logic for category name, URL, and slug fields to use an object format for error messages, improving clarity and consistency in user feedback. - Ensured that all validation messages are properly structured to enhance internationalization support. * fix(i18n): add translations for Uptime Kuma group management - Added English, French, Japanese, Russian, Vietnamese, and Chinese translations for "Add Uptime Kuma Group" and "Edit Uptime Kuma Group" to enhance internationalization support. - Included validation messages for category name and slug fields across multiple languages to improve user feedback and accessibility. * fix(system-settings): improve validation error message structure for SystemName - Updated the validation logic for the SystemName field to use an object format for error messages, enhancing clarity and consistency in user feedback. - This change aligns with recent improvements in internationalization support across the system settings schemas. * perf(i18n): add new validation error message translations - Added translations for the new validation error message "Invalid JSON format or values out of allowed range" in English, French, Japanese, Russian, Vietnamese, and Chinese. - This update enhances internationalization support by ensuring users receive clear feedback across multiple languages. * fix(i18n): update Japanese translation for payment method configuration message - Corrected the Japanese translation for the message regarding payment methods configuration to use the term "メソッド" instead of "方法" for improved accuracy and consistency in user feedback. - This change enhances the clarity of the message for Japanese-speaking users. * fix(i18n): remove unnecessary loading messages from French translations - Removed the French translations for "Loading settings...", "Loading maintenance settings...", and "Loading content settings..." to streamline the localization file. - This change improves the clarity and relevance of the translations provided to users. * fix(i18n): add translations for Uptime Kuma group management in multiple languages - Added French, Japanese, Russian, Vietnamese, and Chinese translations for "Add Uptime Kuma Group" and "Edit Uptime Kuma Group" to enhance internationalization support. - This update improves user experience by providing clear and consistent messaging across different languages. * fix(validation): enhance pricing schema error messages and add translations - Updated the pricing schema to include localized error messages for validation, ensuring users receive clear feedback when input values are invalid. - Added new translations for "Exchange rate is required" and "Exchange rate must be greater than 0" in English, French, Japanese, and Chinese to improve internationalization support. - This change enhances user experience by providing accurate and contextually relevant messages across multiple languages. * fix: codex Unsupported parameter: max_output_tokens * fix(model-mapping-editor): simplify JSON parsing logic in useEffect * fix: jimeng i2v support multi image by metadata * refactor(models): restructure models section handling and improve UI components - Replaced tab-based navigation with section-based navigation for better clarity and organization. - Introduced a new section registry to manage model sections, including 'metadata' and 'deployments'. - Updated the ModelsContent component to reflect the new section structure and added a Create Deployment button. - Removed the ModelsTabs component as it was no longer needed. - Enhanced internationalization support by adding new translations for section descriptions and management tasks. - Adjusted sidebar configuration to accommodate the new section structure. * fix: update warning threshold label from '5$' to '2$' * fix: video content api Priority use url field * fix: update abortWithOpenAiMessage function to use types.ErrorCode * feat(deployment): introduce CreateDeploymentDrawer component and update dialog references - Replaced the CreateDeploymentDialog with a new CreateDeploymentDrawer component for improved user experience. - Added comprehensive form handling for deployment creation, including validation and price estimation features. - Updated internationalization files to include new translations for UI elements and descriptions related to deployment configuration. - Enhanced the ModelsContent component to integrate the new drawer for creating deployments. * perf(i18n): enhance internationalization for models table and columns - Updated labels and titles in the ModelsTable and useModelsColumns components to utilize translation functions for improved localization. - Changed static text for vendor and sync status to dynamic translations, enhancing user experience for non-English speakers. - Updated empty state messages in the ModelsTable to support internationalization, ensuring clarity for all users. * fix: fix email send * fix: issue where consecutive calls to multiple tools in gemini all returned an index of 0 * fix: replace Alibaba's Claude-compatible interface with the new interface * fix: Only models with the "qwen" designation can use the Claude-compatible interface; others require conversion. * feat: log shows request conversion * feat: optimized display * feat: optimized display * feat: optimized display * fix: codex rm Temperature * Revert "fix: video content api Priority use url field" * feat: requestId time string use UTC * feat(qwen): support qwen image sync image model config * feat: sync old ui * feat: more ui sync * feat: replace theme * fix build * refactor(web): revert theme colors and variables in CSS Updated color variables for light and dark themes to improve consistency and visual appeal. * feat(deployment): enhance deployment access guard and model deployment settings - Introduced loading phase management in the DeploymentAccessGuard component to provide better user feedback during connection checks. - Updated the ModelsContent component to prefetch the deployments list while checking connection status, improving data readiness. - Implemented a caching mechanism for connection status in useModelDeploymentSettings to optimize performance and reduce unnecessary API calls. - Enhanced loading states and error handling for improved user experience during deployment settings retrieval and connection testing. * feat(i18n): add new translations for connection and loading states across multiple languages - Introduced translations for "Checking connection" and "Loading configuration" in English, French, Japanese, Russian, Vietnamese, and Chinese. - This update enhances the internationalization support, providing clearer user feedback during connection checks and loading phases. * refactor(pagination): adjust layout and styling for pagination component - Updated the pagination component to improve layout by removing unnecessary width constraints and enhancing responsiveness. - Increased minimum width for pagination text to ensure better visibility and alignment across different screen sizes. * feat(i18n): implement translations for various UI elements across multiple components - Updated several components to utilize the translation function for titles and placeholders, enhancing internationalization support. - Added new translation entries for "Filter by name or key..." and "Log Type" in English, French, Japanese, Russian, Vietnamese, and Chinese. - This update improves user experience by providing localized text in the ChannelsTable, SummaryCards, ApiKeysTable, RedemptionsTable, UsageLogsTable, and UsersTable components. * feat(i18n): integrate translation support in SummaryCards component - Added the useTranslation hook to the SummaryCards component to enhance internationalization. - This update allows for localized text rendering, improving user experience for diverse language speakers. * feat(dashboard): refactor dashboard structure and introduce section-based navigation - Removed the tab navigation in favor of a section-based approach, enhancing user experience by providing clearer context for the dashboard content. - Introduced a new section registry to manage dashboard sections, allowing for easier expansion and maintenance. - Updated sidebar configuration to reflect the new section structure, ensuring proper navigation links are displayed. - Added translations for new section titles and descriptions to support internationalization. * feat(i18n): update time range labels and enhance translation support - Changed time range labels from shorthand (e.g., '1D') to full text (e.g., '1 Day') for better clarity. - Updated various components to utilize the translation function for time range labels, improving internationalization. - Added new translation entries for time ranges in English, French, Japanese, Russian, Vietnamese, and Chinese, enhancing user experience across languages. * feat(dashboard): enhance type safety and improve component structure - Updated the Dashboard component to use specific types for model data and filters, enhancing type safety. - Introduced new types for announcements and FAQs, improving clarity and maintainability. - Refactored LogStatCards and UptimePanel components to utilize AbortController for better data fetching management. - Optimized the rendering of announcements and FAQs by using unique keys based on item IDs. - Improved theme management in ModelCharts by caching the ThemeManager import to reduce dynamic imports. * feat(agents): add comprehensive guidelines for React and Next.js development - Introduced a new set of best practices and optimization techniques for React and Next.js applications, aimed at enhancing performance and maintainability. - Included detailed rules covering various aspects such as event handling, API routes, rendering strategies, and state management. - Added extensive documentation in AGENTS.md and SKILL.md to support developers in adhering to these practices. - This update serves as a foundational resource for improving code quality and efficiency in React-based projects. * chore(web): update package.json dependencies - Removed outdated dependencies including @base-ui/react, @clerk/clerk-react, and others to streamline the project. - Updated remaining dependencies to their latest versions for improved performance and security. - This cleanup enhances the overall maintainability of the project. * feat(usage-logs): implement section-based navigation and enhance log management - Introduced a section registry for usage logs, allowing for better organization and navigation between different log categories (common, drawing, task). - Updated the UsageLogsContent component to dynamically render titles and descriptions based on the selected section. - Refactored UsageLogsTable and UsageLogsPrimaryButtons components to accept the active log category as a prop, improving modularity. - Enhanced sidebar configuration to support new section navigation, ensuring users can easily access different log types. - Updated routing to redirect to the default section if none is specified, improving user experience. * feat(i18n): enhance internationalization across usage logs components - Integrated the useTranslation hook in various components related to usage logs, including CommonLogsStats, UsageLogsTable, and column helpers. - Updated labels, titles, and messages to utilize translation functions, improving localization support. - Added new translation entries for log-related terms in English, French, Japanese, Russian, Vietnamese, and Chinese, enhancing user experience for diverse language speakers. * feat(datetime-picker): integrate dayjs for date formatting - Added dayjs as a dependency to the project for improved date handling. - Updated the DateTimePicker component to use dayjs for formatting dates, enhancing consistency and readability of date displays. * feat(date-handling): replace date-fns with dayjs for improved date management - Updated the project to use dayjs instead of date-fns for date formatting and manipulation, enhancing consistency across components. - Refactored DatePicker, DateTimePicker, and other components to utilize dayjs for date-related functionalities. - Added a new dayjs configuration file to extend its capabilities with relative time support. - Updated AGENTS.md to reflect the new technology stack, emphasizing the use of dayjs for date handling. * refactor(agents): streamline front-end development guidelines and update technology stack - Revised AGENTS.md to condense front-end development standards and best practices, making it more accessible for developers and AI assistants. - Updated the technology stack section to reflect current dependencies, emphasizing the use of Bun, React 19, TypeScript, and other key libraries. - Enhanced the document structure with a new table format for better readability and navigation, including a comprehensive table of contents for quick access to sections. * feat(i18n): enhance date picker and datetime picker localization support - Integrated internationalization support in DatePicker and DateTimePicker components by adding locale handling for multiple languages (English, French, Japanese, Russian, Vietnamese, Chinese). - Updated the calendar component to accept a locale prop, ensuring proper localization of month and weekday labels. - Improved user experience by allowing date selection to adapt based on the user's language preference. * feat(layout): add SectionPageLayout component for structured page layouts - Introduced a new SectionPageLayout component to facilitate structured layouts for pages with sections, enhancing the organization of content. - Added subcomponents for Title, Description, Actions, and Content to improve clarity and maintainability of page structures. - Updated AGENTS.md to include guidelines on avoiding unnecessary destructuring of props for better code readability. * feat(layout): refactor components to use SectionPageLayout for improved structure - Replaced AppHeader and Main components with SectionPageLayout across multiple features including Channels, Dashboard, ApiKeys, Models, Redemption Codes, Usage Logs, Users, and Wallet. - Enhanced page organization by utilizing SectionPageLayout's Title, Description, Actions, and Content subcomponents, improving clarity and maintainability. - This update standardizes the layout structure across the application, facilitating a more cohesive user experience. * feat(usage-logs): enhance URL state management and redirection logic - Added useEffect to synchronize column filters with URL search changes, preventing infinite loops caused by inline references. - Improved redirection logic in usage logs to clear 'type' from the URL when the section is not 'common', enhancing user experience and URL cleanliness. * fix(usage-logs): disable global filter and update DataTableToolbar props - Disabled the global filter in the UsageLogsTable component to streamline the user interface. - Updated the DataTableToolbar component to accept a null customSearch prop, enhancing flexibility in toolbar configuration. * feat(routes): implement section-based routing for system settings and dashboard - Introduced section-based routing for system settings and dashboard features, enhancing navigation and organization. - Updated route definitions to include dynamic sections, allowing for more granular access to settings and dashboard components. - Refactored existing routes to redirect to default sections when no specific section is provided, improving user experience. - Added new section routes for models, usage logs, and system settings, ensuring consistency across the application. - Removed deprecated routes to streamline the routing structure and improve maintainability. * refactor(usage-logs): update column helper functions to require config parameter - Modified createFailReasonColumn and createProgressColumn functions to require a config parameter instead of allowing it to be optional. - Simplified destructuring of config to enhance clarity and ensure necessary properties are always provided, improving code reliability. * refactor(usage-logs): improve section ID validation and routing logic - Introduced a type guard function, isUsageLogsSectionId, to validate section IDs, enhancing type safety and reducing the need for casting. - Updated UsageLogsContent to utilize the new validation function for determining the active category, improving clarity and reliability. - Refactored routing logic to use isUsageLogsSectionId for section validation, ensuring proper redirection to the default section when necessary. * refactor(calendar): update locale documentation for i18n support - Revised the locale prop documentation in the Calendar component to specify the use of react-day-picker for internationalization, clarifying the expected locale setup for users. * chore(i18n): remove redundant user information description from locale files - Removed the user information description from English, French, Japanese, Russian, Vietnamese, and Chinese locale files to streamline translations and improve clarity. * chore(i18n): streamline locale files by removing redundant entries - Removed unnecessary entries from English, French, Japanese, Russian, Vietnamese, and Chinese locale files to enhance clarity and reduce clutter. - Adjusted translations for consistency and improved user experience across multiple languages. * chore(sidebar): remove deprecated usage logs route from sidebar config - Eliminated the '/usage-logs' entry from the sidebar configuration to streamline navigation and improve clarity in the sidebar structure. * refactor(redemption-codes): enhance internationalization support and improve UI consistency - Updated various components to utilize translation functions for user-facing strings, ensuring a consistent experience across different languages. - Added meta labels for table columns to improve accessibility and clarity. - Revised confirmation and action texts in dialogs and tooltips to leverage translation, enhancing user experience. - Updated locale files to include new translations for improved clarity and consistency. * feat(masked-value-display): add MaskedValueDisplay component for sensitive data handling - Introduced a new MaskedValueDisplay component to display masked values with a popover for full value visibility and a copy button for easy access. - Updated api-keys-columns and redemptions-columns to utilize the new component, enhancing code reusability and UI consistency. - Revised translation keys in locale files to remove colons for improved clarity. * refactor(url-utils): simplify query parameter matching logic in checkIsActive function - Updated the checkIsActive function to streamline the logic for matching URLs with and without query parameters. - Removed unnecessary checks for query parameters when matching base paths, improving clarity and maintainability of the code. * fix(channels-table): update group filter label to use translation function - Replaced hardcoded 'All Groups' label with a translation function call to enhance internationalization support in the ChannelsTable component. * chore(api-keys): remove deprecated API key action messages and related exports - Deleted the api-key-actions.ts file, which contained action messages for enabling, disabling, and deleting API keys. - Updated index.ts to remove the export of getApiKeyActionMessage, streamlining the codebase by eliminating unused functionality. * refactor(i18n): enhance internationalization support across various components - Updated multiple components to utilize translation functions for user-facing strings, ensuring a consistent experience across different languages. - Revised constants and labels in the channels and redemption codes features to use i18n keys, improving maintainability and clarity. - Ensured that success and error messages leverage translation functions, enhancing user experience and accessibility. - Streamlined the handling of i18n keys in the constants files for better organization and clarity. * refactor(i18n): enhance translation support across various components - Updated multiple components to utilize translation functions for user-facing strings, ensuring a consistent experience across different languages. - Revised pagination and status labels to use i18n keys, improving maintainability and clarity. - Enhanced response time formatting to support internationalization, allowing for localized display of time values. - Updated locale files to include new translations for improved clarity and consistency. * docs(AGENTS): add type checking requirement for TypeScript changes - Included a new guideline stating that type checks must be executed after modifying TypeScript or TSX code, ensuring no type errors are left unresolved. - Updated the document to reflect this addition in the relevant section for better clarity on coding standards. * feat(combobox-input): add ComboboxInput component for enhanced token selection - Introduced a new ComboboxInput component to facilitate token name selection with search and filtering capabilities. - Integrated the ComboboxInput into the UsageLogsFilterDialog for improved user experience when filtering by token name. - Updated locale files to include new translations for user-facing strings related to token filtering. * feat(combobox): integrate translation support for custom value prompt - Added translation functionality to the Combobox component, replacing hardcoded text with a translatable string for the custom value prompt. - Utilized the useTranslation hook from react-i18next to enhance internationalization support, ensuring a consistent user experience across different languages. * refactor(i18n): improve Chinese translations for consistency and clarity - Adjusted spacing in various Chinese translations to enhance readability and maintain consistency across the locale file. - Updated multiple user-facing strings to ensure proper formatting and alignment with localization standards. * feat(calendar): add CalendarDropdown component for enhanced dropdown functionality - Introduced a new CalendarDropdown component to improve user interaction with dropdown selections in the calendar. - Implemented state management for dropdown visibility and selection handling, enhancing the overall user experience. - Updated styling for dropdown elements to ensure consistency and better alignment with the UI design. * fix(balance-query-dialog): handle null currentRow and improve usage query logic - Updated the BalanceQueryDialog component to safely access currentRow properties using optional chaining. - Added a check to ensure currentRow is not null before proceeding with usage queries, preventing potential runtime errors. - Refactored the handleQueryCodexUsage function to use a local variable for currentRow, enhancing code clarity. * feat(i18n): add new translations for batch creation and channel updates - Added new translation strings for batch creation instructions across multiple languages, enhancing user guidance. - Included translations for the "Update Channel" prompt to improve clarity in channel configuration settings. - Ensured consistency in terminology across locale files for better user experience. * feat(channel-mutate-drawer): improve API key input handling and update translations - Refactored the API key input logic in the ChannelMutateDrawer component to enhance readability and maintainability. - Added new placeholder translations for batch creation and existing key prompts in multiple languages, improving user guidance. - Ensured consistency in translation strings across locale files for better user experience. * feat(fetch-models-dialog): implement sorting for model categories - Added a new function to sort model categories alphabetically, placing 'Other' at the end for easier navigation. - Updated the rendering logic in the FetchModelsDialog component to utilize the new sorting function for both new and existing models, enhancing user experience. * refactor(wallet-stats-card): standardize props usage and improve layout consistency Standardizes props usage and improves layout consistency in wallet stats card Refactors the wallet stats card component to: - Use props directly instead of destructuring for consistency - Add min-w-0 to prevent content overflow - Adjust text sizing with break-all for proper wrapping - Implement responsive font sizes (3xl on mobile, 4xl on larger screens) - Improve leading and tracking for better readability Refactor wallet stats card for consistency and layout Standardizes props usage and improves layout consistency in wallet stats card - Uses props directly instead of destructuring for consistency - Adds min-w-0 to prevent content overflow - Adjusts text sizing with break-all for proper wrapping - Implements responsive font sizes (3xl on mobile, 4xl on larger screens) - Improves leading and tracking for better readability * feat(web): add subscription management and admin settings UI * feat(web): add subscription management and admin settings UI - Add subscription management module (plans, pricing, toggle status, and related dialogs/tables with Stripe/Creem integration notes) - Add channel affinity (rules and cache stats), Waffo integration, performance, and Grok model sections to system settings, with extended types and section registry - Add status code mapping validation/risk warnings, upstream update hooks, and utilities for channels; add available models and sidebar module cards to user profile - Add chat2link route and useMinimumLoadingTime, useTableCompactMode shared hooks Made-with: Cursor * fix: remove duplicate GenerateOAuthCode and add missing TaskBulkUpdate - remove duplicate GenerateOAuthCode from github.go since oauth.go already has the generic version. - add model.TaskBulkUpdate for bulk update by upstream task_id strings, fixing task_video.go build failure. * feat(router): add chat2link and subscriptions routes - register /chat2link page route under authenticated layout. - register /subscriptions/ page route under authenticated layout. - update auto-generated routeTree type definitions and route mappings. * feat(docker): add development environment setup with Docker Compose - Introduced docker-compose.dev.yml for local development, including services for new-api, Redis, and PostgreSQL. - Created Dockerfile.dev for backend-only builds, optimizing the development workflow. - Updated makefile to include new commands for starting backend services and frontend development. * feat(web): complete i18n coverage for setup wizard and add language switcher - wrap all hardcoded English strings in setup-wizard, database-step, usage-mode-step, and complete-step with t() calls, covering step titles, descriptions, form validation messages, and fallback strings. - add LanguageSwitcher component to the top-right corner of the setup page so users can switch language during initial setup. - register 25 dynamic i18n keys in static-keys.ts and provide full translations for zh/en/ja/fr/ru/vi. * feat(i18n): internationalize default version text in workspace-switcher - remove hardcoded 'Unknown version' default, use t('Unknown version') for i18n fallback - add "Unknown version" translation entries across all 6 locale files (zh/en/fr/ru/ja/vi) * feat(i18n): add full i18n coverage for channel-affinity settings page - replace Chinese t() keys with English keys across three channel-affinity components to align with new frontend i18n conventions. - add 51 translation entries to all 6 locale files (en/zh/ja/fr/ru/vi) covering main page, rule editor, and cache stats dialog. - register section-registry dynamic keys in static-keys.ts. * feat(i18n): add full i18n coverage for Waffo payment settings page - replace Chinese i18n keys with English keys in waffo-settings-section.tsx for consistency. - wrap previously hardcoded labels (Pay Method Type / Pay Method Name) with t(). - add 26 Waffo-related translation entries across all 6 locale files (en/zh/fr/ru/ja/vi). * feat(i18n): add missing translations for global model settings page - add all 6 locale translations for 3 missing t() keys in global-settings-card. - register dynamically used 'Grok' key in static-keys.ts for i18n scanner coverage. * feat(i18n): add full i18n coverage for Grok model settings page - add translations in all 6 locales (en/zh/fr/ja/ru/vi) for grok-settings-card t() calls. - cover violation fee toggle, amount input, and official docs link labels. - include section-registry descriptionKey translation entries. * feat(i18n): add full i18n coverage for performance settings page - migrate all t() keys from Chinese to English to align with project conventions. - add translations for all 6 locales (en/zh/ja/fr/ru/vi) covering disk cache, system monitoring, log management, and stats dashboard sections. - remove 71 obsolete Chinese-keyed entries from every locale file. * fix(i18n): add 116 missing English translation keys across all locales - scan all t() calls to identify English keys used in code but absent from locale files. - add translations for zh/en/fr/ja/ru/vi, keeping key sets and sort order consistent. - covers system-settings, channels, models, auth, wallet and other modules. * fix(i18n): add missing translations for log cleanup quick-select and confirm dialog - wrap quick-select button labels (24 hours ago / 7 days ago / 30 days ago) with t(). - replace hardcoded English strings in purge confirm dialog with t() calls and date interpolation. - add 5 new translation keys across all 6 locale files (zh/en/fr/ja/ru/vi). * refactor(web): unify all time display with dayjs formatting - replace all toLocaleString/toLocaleDateString/toLocaleTimeString and manual padStart concatenation with dayjs.format(). - standardize output: datetime as YYYY-MM-DD HH:mm:ss, date as YYYY-MM-DD, time as HH:mm:ss. - add formatDateTimeStr, formatDateStr, formatTimeStr dayjs-based helpers in lib/format.ts. - update 12 files across core utils and feature components. * refactor(web): replace native datetime-local input with DateTimePicker in announcements - swap browser-native datetime-local for the project's DateTimePicker component to match the UI used in log cleanup and other pages. - convert between Date objects and ISO strings to bridge the form's string-based schema. * refactor(web): replace native HTML elements with design system components - replace ~35 native <button> with <Button> across pricing, profile, channels modules - replace native <input>/<textarea>/<label> with <Input>/<Textarea>/<Label> for consistent form styling - replace native <table> with <Table> components, <details>/<summary> with <Collapsible> - replace decorative <hr> with <Separator> to ensure global UI consistency * refactor(web): enhance profile components with design system consistency - update ProfileSecurityCard to use buttons for security actions, improving accessibility and styling. - modify AccountBindingsTab layout to a grid for better responsiveness and visual alignment. - refactor NotificationTab to utilize icons for notification methods, enhancing user experience and clarity. * fix(i18n): complete i18n coverage for profile page components - wrap passkey card status badges (enabled/disabled, backup state) and last-used text with t() - fix hardcoded button labels in security dialogs (change password, access token, delete account) - internationalize all 2FA dialog strings (setup, disable, backup codes) - fix email bind dialog description and button state text missing i18n - wrap remaining hardcoded strings in notification tab and checkin calendar - add all missing translation entries to zh.json and en.json * fix(i18n): enhance error messages with translations for deployment access and settings - wrap connection error messages in DeploymentAccessGuard and IoNetDeploymentSettingsSection with t() for internationalization. - add missing translation key for "io.net model deployment is not enabled or api key missing" in all locale files (en, fr, ja, ru, vi, zh). * 🧹 chore(web): resolve all ESLint errors and warnings Align the Vite/React frontend with the current ESLint flat config and React Compiler–related rules by fixing violations instead of broad suppression where practical. - Replace `any` with concrete types (`unknown`, `Record<string, unknown>`, domain types) where upstream/API shapes allow - Fix duplicate imports, unused bindings, `no-console`, and empty blocks - Address react-hooks issues: reorder declarations, memoize unstable callbacks (`useCallback`), extend dependency arrays, and use targeted disables only where sync-from-props in `useEffect` is intentional - Refactor `motion.create` usage in ai-elements shimmer to avoid creating components during render (static-components) - Stabilize TanStack Query/Mutation hook usage (query keys, `mutate` in deps) and add narrowly scoped rule disables where the linter conflicts with library patterns - Disable `react-hooks/incompatible-library` in ESLint config for TanStack Table / RHF false positives - Add file-level `react-refresh/only-export-components` disables for registry/provider/column modules that intentionally mix exports `bun lint` completes with 0 errors and 0 warnings. * ✨ feat(web): add subscription management to sidebar and align drawer with project conventions - Register "Subscription Management" nav item in the admin sidebar group with CreditCard icon pointing to /subscriptions - Add subscription module to sidebar config defaults and URL mapping so it integrates with the admin sidebar modules toggle in system settings - Add subscription entry to sidebar-modules-section moduleMeta for the maintenance settings UI - Refactor SubscriptionsMutateDrawer to follow the same patterns used by users, redemption-codes, and other mutate drawers: - Use shadcn Form/FormField/FormItem/FormControl/FormLabel/FormMessage instead of raw register() + Label + manual error display - Move SheetFooter outside the form with form attribute association - Use SheetClose for the cancel button - Reset form state on drawer close - Align SheetContent width (sm:max-w-[600px]) and spacing conventions * ✨ feat(web): overhaul UI/UX with Vercel Geist design alignment Refactor the entire frontend UI/UX to align with Vercel/OpenAI design principles, covering layout, animations, skeleton loading, and overall visual polish. Motion & Page Transitions: - Add centralized motion system (lib/motion.ts) with Vercel-style transition presets, stagger variants for tables, cards, and sidebars - Implement AnimatedOutlet for route-level page enter animations using TanStack Router pathname keying - Add PageTransition, StaggerContainer, StaggerItem, CardStagger, and TableStagger wrapper components for progressive reveal effects Skeleton Loading — Vercel Geist Style: - Replace shadcn default `animate-pulse` with Geist-style shimmer sweep animation (linear-gradient + background-position keyframes) - Add `--skeleton-base` / `--skeleton-highlight` CSS variables tuned for both light and dark themes with neutral oklch tones - Override auto-skeleton-react inline styles via CSS to unify all skeleton elements under the same shimmer effect - Update TableSkeleton with varied column widths for a natural feel - Add ContentSkeleton and QuerySkeleton wrappers for auto-skeleton integration with React Query error/loading states - Respect prefers-reduced-motion: disable shimmer for accessibility Layout & Sidebar: - Upgrade sidebar expand/collapse transitions to cubic-bezier easing - Add hover micro-interactions (background-color, color, transform) to sidebar menu buttons with smooth 150ms transitions - Fix oklch color compatibility in sidebar outline variant - Integrate AnimatedOutlet into AuthenticatedLayout for unified route-level animations Theme & CSS: - Streamline theme.css with cleaner oklch color definitions - Add CSS table row stagger-in animations with nth-child delays - Fix hover-scrollbar color bug (hsl → color-mix for oklch compat) - Add content-auto utility for long list rendering optimization Cleanup: - Remove deprecated skeleton-wrapper.tsx - Remove unused imports and dead code across components - Add empty-state, error-state, and loading-state utility components * 🐛 fix(docker): track bun.lock to fix Docker build failure Remove `web/bun.lock` from `.gitignore` so the lock file is committed to version control. The Dockerfile `COPY web/bun.lock .` instruction requires this file to be present in the build context, and ignoring it caused the build to fail with a "not found" error. * ⬆️ chore(web): upgrade dependencies and fix all type/lint errors Upgrade all frontend dependencies to latest stable versions: - lucide-react 0.562 → 1.7 (major: brand icons removed) - shiki 3.x → 4.x, eslint 9.x → 10.x, knip 5.x → 6.x - @rsbuild/core 1.3 → 1.7, @types/node 24 → 25 - tailwindcss/postcss 4.1 → 4.2, motion 12.25 → 12.38 - @tanstack/react-query 5.90 → 5.95, zod 4.3.5 → 4.3.6 - react 19.2.3 → 19.2.4, axios 1.13.2 → 1.13.6 - prettier 3.7 → 3.8, typescript-eslint 8.52 → 8.57 - Add missing optional deps: @xyflow/react, embla-carousel-react Resolve all TypeScript compilation errors introduced by upgrades: - Replace lucide-react brand icons (Github) with react-icons/si - Fix react-hook-form Control/Resolver generics for zod v4 - Fix Record<string, unknown> type constraints across API utils - Fix axios interceptor return types in lib/api.ts - Add type assertions for useSettings/useStatus hook returns - Resolve Badge variant, spread type, and route path mismatches Resolve all ESLint 10 errors: - preserve-caught-error: attach cause to re-thrown errors - no-useless-assignment: refactor redundant variable assignments - prefer-as-const: use `as const` over literal type assertions - no-unused-vars: prefix type-only schemas with underscore Update tsconfig lib from ES2020 to ES2022 for Error.cause support. * 🐛 fix(web): stop pricing model row from centering its content Wrapping the row in shadcn <Button variant='ghost'> inherits `justify-center`, and the inner flex container had no width, so `justify-between` collapsed and the row appeared centered. * feat: add Waffo payment integration and related UI components - Introduced Waffo payment method with support for custom icons and settings. - Updated payment settings section to include Waffo settings. - Added Waffo payment request handling in the wallet API. - Enhanced wallet recharge form to support Waffo payment methods. - Implemented hooks for Waffo payment processing. - Updated localization files for new Waffo-related strings. - Added new payment type and icon for Waffo in constants and UI components. - Refactored topup info handling to include Waffo payment methods and configurations. * feat(profile): add admin-only upstream model update notification setting * fix(web): make sidebar module user settings actually take effect Previously, saving sidebar module preferences in profile had no effect because the client ignored user-level sidebar_modules entirely. This fix wires user config into useSidebarConfig so the sidebar updates immediately without a page refresh. Changes: - Add UserPermissions type with sidebar_settings/sidebar_modules fields - Refactor useSidebarConfig to merge admin × user config with AND logic - Sync sidebar_modules to auth store on save for immediate UI updates - Conditionally render SidebarModulesCard based on user permissions - Treat null/empty user config as "do not narrow" for legacy users * feat(web): add custom OAuth provider CRUD and login button support Migrate custom OAuth from v1 to v2: - Admin CRUD UI with provider table, form dialog, preset templates, and OIDC discovery - Login page renders dynamic buttons for custom OAuth providers - Fix account bindings display showing "Not bound" text when already bound * feat(web): add ServerAddress, SMTPForceAuthLogin, CreateCacheRatio and group special usable settings Migrate missing v1 system settings to v2: - ServerAddress input in General > System Information - SMTPForceAuthLogin toggle in Integrations > Email - CreateCacheRatio JSON editor in Models > Ratio - Group special usable group rules editor in Models > Ratio * feat(web): wire user subscriptions dialog to users table row actions The UserSubscriptionsDialog component already existed but had no entry point in the users table dropdown menu. Add "Manage Subscriptions" menu item. * chore(web): update i18n translations for new settings and custom OAuth * 💎 refactor(web): redesign pricing page with flat, typography-driven layout * 🌐 chore(i18n): complete missing translations and normalize project config - Add 425+ missing translations across fr, ja, ru, zh, vi locales for subscription management, sidebar navigation, Grok settings, upstream model updates, pricing page, and other UI components - Add 37 missing i18n keys used in t() calls but absent from locale files (pricing filters, display options, audio/cache labels, etc.) - Fix stale tech stack info in CLAUDE.md, AGENTS.md, and project.mdc: React 18 → 19, Vite → Rsbuild, Semi Design → Radix UI + Tailwind - Fix i18n key format description: "Chinese source strings" → English - Deduplicate .cursor/rules/project.mdc to avoid triple-loading the same rules already present in root CLAUDE.md and AGENTS.md - Add i18n-translate Cursor skill for repeatable translation workflow * 🎨 refactor(web): redesign dashboard with flat, typography-driven layout Replace Card-based dashboard components with a flat, border-driven design system consistent with the pricing page, following the ui-style.mdc conventions. Overview section: - StatCard: replace Card wrapper with flat flex layout, monospace tabular values, uppercase tracking-wider labels, layered opacity hierarchy - PanelWrapper: replace Card/CardHeader/CardContent with rounded-lg border container and border-b header - SummaryCards: merge three stat cards into a single bordered container with divide-x separators; decouple border from stagger animation to prevent border deformation during entrance transitions - ApiInfoPanel/Item: full-width list rows with border-b separators, monospace route names, layered opacity for URLs and descriptions - AnnouncementsPanel: native button rows with hover:bg-muted/40, i18n for "Click for details" hint - FAQPanel: lighter border-border/60 accordion dividers, muted answer text - UptimePanel: uppercase tracking-wider group headers with bg-muted/30 background, monospace uptime percentages, fine-grained border opacity Models section: - LogStatCards: replace Card with rounded-lg border + divide-x grid, fix react-hooks/exhaustive-deps by destructuring props before useEffect - ModelCharts: replace Card+Tabs with bordered container + custom segmented control matching ui-style spec - Suspense fallbacks: match new flat skeleton layout with accurate column structure Animation: - Wrap models section in FadeIn with staggered delay - Keep CardStagger for overview panel grid (each panel has own border) Other: - Add ui-style.mdc cursor rule documenting the design language - Disable react-refresh/only-export-components for src/routes/** in eslint config (TanStack Router route files always export Route objects) - Fix zh.json: "Token-based" translation "基于令牌的" → "按量计费" * ✨ refactor(web): adopt flat dot-and-text design for all status badges Replace the bordered/colored-background StatusBadge and Badge components across the entire frontend with a minimal flat design: a small colored dot followed by colored text, eliminating visual noise from heavy borders, backgrounds, and rounded pill shapes. Key changes: - Redesign StatusBadge to use dot + text instead of bordered pill style, removing cva-based background/border variants in favor of exported dotColorMap and textColorMap lookup tables - Add children prop support to StatusBadge for flexible content rendering alongside the existing label prop - Migrate all Badge usages (except pricing page) to StatusBadge with appropriate variant mappings (default→info, secondary→neutral, outline→neutral, destructive→danger) - Consolidate adjacent multi-badge groups into single-dot layouts with dot separators (·) to reduce visual clutter in: - Channel balance columns (used + remaining) - Channel type column (type + IO.NET indicator) - User invite info column (invited + revenue + inviter) - Usage log stats bar (usage + RPM + TPM) - Usage log time/FRT column (time + FRT + stream status) - Subscription plan counts (active + expired) - Channel affinity scope/regex/key-source columns - Prefill group card headers (type + ID) - Export dotColorMap and textColorMap for direct use in custom inline layouts that need consistent status colors without the full component * ✨ refactor(web): redesign public layout and landing page with modern UI Overhaul the public-facing layout, header, and homepage to deliver a polished, animation-rich landing experience inspired by contemporary SaaS design patterns. Header: - Replace sticky header with fixed floating navbar that compacts into a pill-shaped glass-morphism bar on scroll (backdrop-blur + ring) - Add smooth 700ms cubic-bezier transitions for scroll-based shrinking - Build full-screen mobile menu overlay with staggered entry animations - Remove background color from logo container, show logo image directly Homepage sections: - Hero: gradient text title, radial gradient + grid pattern background, interactive terminal demo showcasing API request/response - Terminal demo: auto-cycles through gpt-4o, claude-sonnet-4-20250514, gemini-2.5-pro, deepseek-chat with smooth cross-fade transitions, clickable model badges, dual theme support (light/dark), fixed height - Stats: animated counters driven by IntersectionObserver with cubic-bezier easing, supports integer and decimal modes - Features: Bento grid layout with gap-px border technique, each card includes contextual visuals (model list, security badge, workflow) - How It Works: new three-step process section (Configure → Connect → Monitor) with connecting gradient line and numbered badges - CTA: gradient mesh background with scale-in scroll animation - Footer: streamlined brand column + link columns layout New components: - AnimateInView: IntersectionObserver-based scroll animation component supporting fade-up, fade-in, scale-in, fade-left, fade-right - HeroTerminalDemo: themed terminal with model carousel and live request/response preview CSS: - Add landing page scroll-triggered keyframe animations - Add terminal demo animations (blink cursor, spinner, pulse indicator) - Respect prefers-reduced-motion throughout i18n: - Add 17 new translation keys across all 6 locales (en/zh/fr/ja/ru/vi) * ✨ feat(web): align usage logs and channels with legacy UI Usage logs - Show Refund (type 6) in detail dialog and hide conversion chain for refunds - Sync filter dialog state from URL for model, token, group, username, and requestId Channels - Support optional stream flag in channel test API, actions, and test dialog - Show upstream model update badges (+added / -removed) on fetchable channel types - Add form fields and drawer toggles for upstream model update check and auto-sync - Persist upstream model update flags in channel settings JSON for fetchable types i18n - Add locale strings for upstream model update UI (en, zh, fr, ja, ru, vi) * 🐛 fix(web): prevent transient vertical scrollbar on tables during animations Add overflow-y-clip to the shared Table container (data-slot=table-container) alongside overflow-x-auto. Setting overflow-x to auto implicitly pairs with overflow-y: auto in browsers, which made the table shell briefly show a vertical scrollbar during route enter motion (y/blur) and table row stagger. Remove the redundant descendant selector workaround from the model pricing GroupPricingSection; behavior is now covered globally by the Table component. * 🏗️ refactor(web): redesign console layout with fixed header, scrollable content, and pinned footer Overhaul the authenticated console layout to match the OpenAI dashboard pattern: header and page title bar stay fixed at the top, only the content area scrolls, and table pagination is pinned to the bottom. Layout architecture: - Lock SidebarInset to full viewport height (h-svh) so all inner regions are controlled by flexbox instead of document scroll - Convert Main from a generic div to a semantic <main> flex container with overflow-hidden, removing the legacy `fixed` prop and `data-layout` attribute - Strip scroll-shadow logic and `fixed` prop from Header/AppHeader; the header is now naturally fixed as a shrink-0 flex child - Restructure SectionPageLayout into three flex regions: a shrink-0 title bar, a flex-1 overflow-auto content area, and a shrink-0 footer portal target with empty:hidden - Add min-h-0 to AnimatedOutlet wrappers to prevent flex overflow Footer portal system: - Introduce PageFooterProvider / PageFooterPortal (React Context + createPortal) so deeply nested table components can render their DataTablePagination into the fixed footer without prop drilling - Migrate all 8 data tables (api-keys, channels, users, models, deployments, usage-logs, subscriptions, redemption-codes) to use PageFooterPortal for pagination Page-level fixes: - Profile: wrap content in a scrollable flex child with proper padding - SystemSettings: remove overflow-auto from wrapper to avoid nested scrollbars (sub-pages manage their own scroll) - Playground / Error pages: remove obsolete `fixed` props API keys UX improvement: - Replace inline key show/hide toggle with a Popover-based reveal, removing toggleKeyVisibility and keyVisibility state from the provider context Cleanup: - Remove dead CSS rule for body:has([data-layout='fixed']) - Remove unused `fixed` prop from Header, AppHeader, and Main types - Export PageFooterPortal from layout barrel file * 💅 refactor(web): polish table UI consistency and add pagination transitions - Standardize primary action buttons (Create, Add, Search) to size="sm" across all pages for visual consistency with channels and models - Redesign NumericSpinnerInput with minimal inline style: plain text by default, hover-revealed +/- buttons, click-to-edit — replacing the clunky bordered input with stacked chevron arrows - Fix vertical scrollbar in channels group column by replacing overflow-x-auto with overflow-hidden (redundant with +N collapse) - Simplify API keys group column: replace colorful StatusBadge pairs with clean typography using opacity hierarchy and dot separators - Move API key copy loading indicator from key text to the copy button itself, eliminating layout shift during key resolution - Reduce page title from text-2xl to text-lg and subtitle to text-sm in SectionPageLayout for a more compact header - Add smooth opacity transition (duration-150) on all 7 server-paginated tables during background data fetches (isFetching && !isLoading), with pointer-events-none to prevent interaction during loading - Constrain usage logs Details column width (size: 200, maxSize: 220) * 🐛 fix(web): restore missing padding on system settings content The console layout refactor ind2150469moved padding ownership from Main onto each route, but SystemSettings was missed — its Outlet wrapper had no padding, so the content area sat flush against the sidebar and top nav. Add `px-4 pt-6 pb-4` to match the vertical rhythm used by SectionPageLayout and the Profile page. * 📱 refactor(web): standardize mobile responsive layout across all table pages Unify mobile experience for all data table pages (channels, keys, models, deployments, usage-logs, users, redemption-codes, subscriptions) with a consistent layout pattern and cleaner header area. DataTableToolbar: - Redesign mobile layout: full-width search input + collapsible filter toggle button with active filter count badge - Filters, additional search, and reset button collapse into an expandable section on mobile, keeping the default view compact - Desktop layout remains unchanged SectionPageLayout: - Tighten mobile spacing (padding, gaps) for higher content density - Scale down title (text-base) and description (text-xs) on mobile - Shrink action button gaps on small screens ChannelsPrimaryButtons: - Move Tag Mode and Sort by ID toggles into the "More" dropdown on mobile (via DropdownMenuCheckboxItem), freeing header space - Desktop toggle switches remain visible outside the dropdown MobileCardList (shared component): - Compact list-item layout with title + badge header row and side-by-side key fields, replacing individual card components - Structured (CompactRow) and fallback (FallbackRow) rendering modes driven by column meta (mobileTitle, mobileBadge, mobileHidden) New MobileCardList integration: - Users table: username as title, status as badge; hide id, display_name, invite_info on mobile - Redemptions table: name as title, status as badge; hide id, created_time, expired_time, used_user_id on mobile - Subscriptions table: plan title as title, enabled as badge; hide id, sort_order, reset, payment, total_amount, upgrade_group on mobile Column meta updates: - Add mobileTitle/mobileBadge/mobileHidden meta across all 8 table column definitions for consistent mobile field prioritization Minor fixes: - Hide Subscriptions Stripe/Creem alert on mobile - Disable card hover animations on mobile via CSS media query * 🐛 fix(web): sync favicon with custom system logo Favicon stayed at the hardcoded /logo.png while document.title already followed system_name, leaving tab icon and site branding out of sync. Apply the logo as favicon from localStorage cache on startup, refresh from getStatus(), and re-apply when useSystemConfig finishes preloading. Extract applyFaviconToDom helper into lib/dom-utils with idempotent guard to avoid redundant DOM writes. * ✨ feat(web): add channel affinity rule templates and CreateCacheRatio visual editing Port missing features from legacy frontend (b8650b9merge) to the new React frontend: - Add Codex CLI and Claude CLI channel affinity rule templates with header passthrough presets (pass_headers operations for Originator, Session_id, X-Codex-*, X-Stainless-*, Anthropic-*, etc.) - Introduce "Add Rule" dropdown menu with blank, Codex CLI, and Claude CLI template options in the channel affinity settings page - Add "Fill Templates" button to batch-append both CLI templates with duplicate name resolution and confirmation dialog - Support templateKey prop in RuleEditorDialog to pre-fill form fields from selected template, auto-expanding advanced settings when a param_override_template is present - Add CreateCacheRatio support to the model ratio visual editor, edit dialog, and form — previously only editable in JSON mode, now fully integrated into the visual table column, add/edit dialog fields, and save/delete handlers * 🐛 fix(web): fix content-type detection bugs in About and Home pages - Fix About page URL detection: replace naive `startsWith('https://')` with proper `new URL()` validation to support both http and https, and handle untrimmed input that previously caused silent misdetection - Fix About page HTML detection: remove overly broad `startsWith('<')` and `endsWith('>')` checks that could misclassify Markdown or XML content; align with LegalDocument's regex-only `isLikelyHtml` approach - Fix Home page URL detection: same `startsWith('https://')` bug, replaced with `new URL()` protocol validation - Refactor About page to use early-return pattern instead of deeply nested ternary expressions for better readability - Replace About loading spinner with Skeleton placeholder consistent with LegalDocument - Add `prose prose-neutral dark:prose-invert` typography classes to About HTML/Markdown rendering for proper dark mode support - Remove unused `Code` icon import from About page * ✨ feat(web): port missing features from legacy frontend and complete i18n Backport and enhance several features from the old frontend (web/old) that were missing or incomplete in the new React frontend: - Playground & channel test: parse structured JSON error responses from SSE streams and non-streaming API calls, extract error codes, and display actionable UI for `model_price_error` (admin settings link) - User management: replace local quota manipulation with atomic server-side quota adjustments (add/subtract/override) via dedicated API endpoint, making the quota field read-only in the edit drawer - Subscriptions: display next quota reset time for active subscriptions - Dashboard: limit model ranking chart to top 20 models with an "Other" bucket, add dimension tooltips with sorted values and totals to model call trend and user consumption trend charts - i18n: add 24 new translation keys across all 6 locales (en, zh, fr, ja, ru, vi) for the newly introduced UI elements and messages * 🎨 feat: add backend-configurable frontend theme switching (default/classic) Introduce runtime frontend theme switching so administrators can switch between the new frontend (Radix UI + Tailwind) and the classic frontend (Semi Design) from the settings page without restarting the server. Directory restructuring: - Move new frontend from web/ to web/default/ - Move classic frontend from web/old/ to web/classic/ - One-frontend-per-folder layout for extensibility Backend (injection pattern): - Add setting/system_setting/theme.go with GlobalConfig.Register("theme") so the DB key "theme.frontend" is handled automatically by handleConfigUpdate — no switch-case in updateOptionMap needed - Use atomic.Value in common.GetTheme()/SetTheme() for lock-free concurrent reads on the hot path (static file middleware) - Add themeAwareFileSystem that delegates to the correct embedded FS based on the current theme at request time - Embed both frontends into the binary via go:embed - Add controller validation for theme.frontend values - Expose theme in GET /api/status response Frontend settings UI: - New frontend: add "Frontend Theme" select in System Information section using Radix UI Select + react-hook-form + Zod validation - Classic frontend: add "前端主题" select in Personalization section using Semi Design Form.Select Build system: - Update Dockerfile with multi-stage builds for both frontends - Update Makefile with separate build targets for each frontend - Update GitHub Actions release workflow for dual frontend builds i18n: - New frontend: add translations for all 6 locales (en/zh/fr/ja/ru/vi) - Classic frontend: add translations for all 7 locales (en/zh-TW/ja/fr/ru/vi) - Fix zh "AI Proxy Library" → "AI 代理库" Documentation: - Update CLAUDE.md, AGENTS.md, .cursor/rules/project.mdc to reflect the new web/default/ and web/classic/ directory structure * ✨ feat(web): add allow_speed passthrough for Claude channels, fix multi-key index and inference_geo scope - Add `allow_speed` toggle for Anthropic (type 14) channels to control Claude inference speed mode passthrough, with full form schema, settings persistence, and UI switch - Fix `allow_inference_geo` to also apply to Anthropic (type 14) channels, not just OpenAI (type 1), matching the backend behavior for Claude data residency region control - Fix multi-key management dialog to display 1-based key indices instead of 0-based (#{key.index + 1}) - Fix TypeScript type error in section-registry by adding type assertion for theme.frontend enum - Add i18n translations for all new keys across 6 locales (en, zh, fr, ja, ru, vi) * 🧹 chore: clean up editor configs, consolidate agent skills, and set classic as default theme - Add .cursor/ to .gitignore and remove tracked editor config files (.cursor/rules/, .cursor/skills/) from version control - Consolidate .agents/skills/vercel-react-best-practices by keeping only the compiled AGENTS.md and removing redundant SKILL.md and 57 individual rule files under rules/ - Change default frontend theme from "default" to "classic" in both common/constants.go init and setting/system_setting/theme.go * feat: Frontend Tiered Pricing, Waffo Payments, and Rsbuild 2 Upgrade (#24) * feat(ui): add codex extra limits, key last used, and admin audit surfaces - codex usage dialog: render `additional_rate_limits` with `RateLimitGroupSection` and typed base/secondary window data. - api keys table: add "Last Used" column from `accessed_time`. - usage log details: show top-up audit and manage operator for admins; extend `LogOtherData` audit fields; broaden IP display; warn when legacy records lack audit data. - billing history: show user id badge for admins; add zh i18n for new strings. * feat(web): add dynamic pricing breakdown and Waffo Pancake payments - add billing-expr parsing and DynamicPricingBreakdown; surface tiered_expr in model list/details. - extend PricingModel with billing_mode, billing_expr, and pricing_version for backend parity. - add Waffo Pancake integration settings, amount/pay APIs, hook, and recharge flow wiring. - update payment confirm/recharge UI and Chinese locale strings. * feat(pricing): add tiered billing editor and tool price settings - introduce tier-expr and extend billing-expr (time/param conditions, combine/split helpers, editor utilities) for visual tiers and request rules. - support tiered_expr in model ratio dialog, form, and visual editor with billing_setting fields and default JSON placeholders. - add TieredPricingEditor and tool price settings UI plus i18n updates. * chore(web): bump rsbuild to v2 and align build config - upgrade @rsbuild/core, @rsbuild/plugin-react, and Rspack 2 transitives; bump TanStack Router packages and refresh bun.lock. - replace deprecated performance.chunkSplit with top-level splitChunks cache groups for react, radix, and tanstack vendors. - factor dev server proxy into devProxy; set legalComments to none in prod; enable performance.buildCache keyed by VITE_REACT_APP_VERSION. - TanStack Router plugin: enable autoCodeSplitting only in production for faster dev navigation and HMR. * fix(i18n): update translations for API keys and Waffo Pancake settings - Corrected translations for "API Private Key" and "Merchant ID is required" across multiple languages. - Added new translation for "Configure Waffo Pancake hosted checkout integration for USD-priced top-ups." - Updated various existing translations to ensure consistency and clarity in user interface text. * refactor(code-block): simplify code highlighting and improve theme handling - Updated the highlightCode function to support dual themes in a single call, reducing complexity. - Removed unnecessary state management for dark theme HTML, streamlining the component. - Enhanced CSS for Shiki themes to ensure proper token color application in dark mode. * refactor(wallet): use isWaffoPancakePayment for pancake payment dispatch - replace the waffo_pancake string literal with the shared helper for consistency with use-payment and PAYMENT_TYPES. - centralize the value so a constant change does not require hunting for typos in multiple call sites. * fix(wallet): validate waffo pancake checkout url and safe open - allow only parseable http/https redirect targets from the backend, rejecting dangerous schemes. - pass noopener and noreferrer in window.open to reduce reverse tabnabbing. - show a toast and abort on invalid URLs; add i18n entries across locales. * fix(wallet): harden payment icon image URLs - add normalizeHttpIconUrl to allow only http(s) after resolution and reject userinfo in URLs. - set referrerPolicy, lazy loading, and async decode on the icon <img> to cut referrer leakage. - fall back to built-in icons on invalid URLs, same as when iconUrl is missing. * fix(pricing): label param() conditions as body param in dynamic pricing - non-header request rules map to `param()`, not query strings. - align with tiered pricing editor by using the existing `Body param` string. * fix(rsbuild): update legalComments handling in build config - Rely on Rsbuild's default legalComments setting in all modes to ensure compliance with open-source licensing requirements. - Clarified comments to explain the implications of omitting legalComments in production. * fix(i18n): correct billing and codex UI strings in locale files - restore ~83 en.json values to English (tool pricing, audit text, alipay label, etc.). - add proper fr/ru/vi/ja strings so those locales no longer copy zh. - change five locale files only; zh.json unchanged. * fix(i18n): update locale files for improved translations and sync report - Added missing translations and corrected existing strings in English, French, Japanese, Russian, Vietnamese, and Chinese locale files. - Updated the sync report to reflect zero missing translations across multiple locales. - Enhanced the untranslated count for Japanese locale to ensure completeness. - Changed the base locale from zh.json to en.json for better alignment. * chore(agents): add i18n-translate agent skill - add `.agents/skills/i18n-translate/SKILL.md` documenting locale layout under `web/default` and `bun run i18n:sync` usage. - capture a repeatable maintainer workflow with embedded script examples to find missing keys and untranslated values. - give agents a clear path to complete and verify translations across en, zh, fr, ja, ru, and vi. * feat(settings): hide frontend theme setting (#25) * feat(settings): hide frontend theme setting - add a local hidden feature flag with window.newapiUnlock support. - hide the frontend theme option by default and reveal it immediately after unlock. * feat(settings): support click unlock for frontend theme setting - add a shared hidden click unlock hook for repeated-click gated UI. - reveal the frontend theme option after triple-clicking the system information title. - preserve the Doubao API address ten-click unlock behavior and remove global unlock functions. * feat(sync59337e9): Sync classic tiered billing, upstream price synchronization, and model management features to web/default (#26) * feat(skill): add classic-to-default-sync skill for auditing and syncing web/classic changes to web/default - Introduced a new skill to inspect a given commit's changes in web/classic and synchronize features and fixes to web/default. - Documented workflow steps for extracting diffs, mapping changes, triaging, implementing, and reporting on the synchronization process. - Emphasized quality standards and internationalization considerations for new user-visible strings. * feat(web/default): sync billing and model management features from classic - add `len` condition variable (total input context length); introduce BILLING_PRICING_VARS / BILLING_CONDITION_VARS to separate pricing vars from condition-only vars; fix tier condition regex to accept `len`. - rewrite upstream ratio sync components to support per-model grouped rows and new ratio types (create_cache, image, audio, billing_expr). - add LlmPromptHelper component; update tiered presets to use `len` for conditions; add GLM-4.5 Air, Doubao Seed 1.8, Qwen3 Omni Flash, and weekend-discount presets. - add created_at / last_login_at columns to users table; add "Removed Models" tab to FetchModelsDialog for mapping source keys not in the models list. - add extractMappingSourceModels helper; update dynamic-pricing-breakdown to use system currency settings; add 19 i18n keys across all locales. * ✨ feat(default): surface tiered billing in usage logs and gate Passkey ops behind 2FA Continues the classic-to-default sync (commit1be6cdb) by porting the remaining audit-log, pricing-hint, and Passkey lifecycle features from web/classic to web/default using the default frontend's component patterns (Radix UI, Tailwind, shadcn-style dialogs). * feat(usage-logs): show tiered_expr breakdown and matched tier in details - Extend `LogOtherData` with `billing_mode`, `expr_b64`, and `matched_tier` fields populated by the backend for tiered logs. - Add `decodeBillingExprB64`, `resolveMatchedTier`, and `getTieredBillingSummary` helpers in `usage-logs/lib/format.ts` that centralise tiered-billing parsing on top of the canonical `parseTiersFromExpr` / `BILLING_PRICING_VARS` from the pricing feature, instead of duplicating the classic-frontend renderer. - Render `<DynamicPricingBreakdown>` inside the consume-log details dialog with the matched tier row highlighted in emerald and tagged "Matched"; suppress the legacy claude/audio/image cost rows when a tiered expression is in effect. - Surface per-tier prices and the matched tier label in log row segments and the billing breakdown table. * feat(pricing): show tier-count, time-based, and request-based hints in model list - Add `summarizeTieredExpr` that derives compact dynamic-pricing metadata (tier count + presence of time/request conditions) from a `tiered_expr` model, computed once per render via `useMemo`, so users can tell *what kind* of dynamic pricing applies before drilling into the model details. - Render the hints alongside the existing "Dynamic Pricing" badge in `<ModelRow>`. - Extend `<DynamicPricingBreakdown>` with a `matchedTierLabel` prop so the same component can be reused from the usage-log details dialog to highlight the tier that actually fired. * feat(profile): require Security Verification for Passkey register/remove - Wire `usePasskeyManagement` through `useSecureVerification` and `<SecureVerificationDialog>` in `<PasskeyCard>`. - Registration prompts for 2FA before issuing the Passkey credential (only when 2FA is already enabled — otherwise the browser-level Passkey prompt itself acts as proof of presence and we register directly). - Removal prompts for 2FA or Passkey, whichever the account has enabled, with informative toasts when neither method is available or the device lacks Passkey support. - Scope the dialog method set to the required factor so users cannot fall back to a weaker method, and propagate cancellation cleanly. * refactor: tighten upstream-ratio-sync and fix tier editor narrowing - Drop the unused `hasSynced` state and dead `getOrderedRatioTypes` / `isSelectableUpstreamValue` imports from `upstream-ratio-sync.tsx`. - In the cost estimator, narrow `BILLING_EXTRA_VARS` entries with a null-`field` guard to silence the type checker and make the "pricing variables only" contract explicit. - Apply Prettier-consistent formatting to the upstream-ratio-sync table/columns, channel mutate drawer, system info section, tier-expr, and wallet helpers (no behaviour change). * i18n: add 9 keys across en/zh/fr/ja/ru/vi - `{{count}} tiers`, `Billing Process`, `Matched`, `Matched Tier`, `Request-based`, `Security verification`, `Time-based`, plus the two new Passkey verification description strings. * 🔧 refactor(default): align upstream price sync, tiered billing, and fetch-models with classic59337e9Port and optimize the remaining web/classic features from commit59337e9to web/default, covering upstream price synchronization, tiered billing expressions, model fetching, and channel preset detection. Improve component architecture, memoization, and i18n coverage. Upstream Price Sync - Extend sync to all ratio fields: CacheRatio, CreateCacheRatio, ImageRatio, AudioRatio, AudioCompletionRatio in addition to ModelRatio / CompletionRatio / ModelPrice - Add tiered billing sync (billing_mode + billing_expr) with auto-pairing so selecting one upstream tier value populates the other from the same source - Bulk select / unselect per upstream column with indeterminate checkbox state reflecting partial selection - Confidence indicators warn when an upstream entry is heuristically derived - Conflict confirm dialog gains loading state and disables actions during sync - Default endpoint per channel: /api/pricing for official preset, /api/models.dev for the models.dev preset, /api/v1/models for OpenRouter, with the rest falling back to the global default - Rename tab label from "Upstream sync" to "Upstream price sync" for clarity Tiered Pricing Editor - Add `len` (full input length, including cache hits) as a tier-condition variable to avoid mis-routing when cache hits reduce `p` - When inserting a new tier, automatically convert the previous catch-all into a bounded tier with a `len <= X` upper bound - Cap each tier at 0~2 conditions and disable the add-condition button at the limit, with an Alert explaining the recommended `len` usage - Extend presets with Multimodal (img / img_o / ai / ao), Request rule (header/param matching), and Time-based (hour / weekday) entries - Embed an LLM prompt helper that copies a model-aware template for designing expressions with ChatGPT / Claude Fetch Models Dialog - Add a "Removed Models" tab listing models still in the local selection but no longer returned by the upstream listing - Exclude `model_mapping` source keys from the removed view so aliases never appear as missing entries - Force-remount tab content on tab switch via `key` prop to clear stale state - Switch count placeholders to `{{count}}` interpolation across "Existing Models", "New Models", and "Removed Models" labels Channel Selector & Constants - Recognize the models.dev preset (id, base_url, name) alongside the existing official-channel preset detection - Add MODELS_DEV_PRESET_* and OPENROUTER_* constants and reorder ENDPOINT_OPTIONS so `pricing` is preferred over `ratio_config` - Expose the new ratio types in RATIO_TYPE_OPTIONS for the sync filter Types - Add optional `type` field to UpstreamChannel for endpoint inference - Extend RatioType union with create_cache_ratio, image_ratio, audio_ratio, audio_completion_ratio, billing_mode, and billing_expr Code Quality & Performance - Extract upstream-ratio-sync-helpers.ts to host shared types (RatioDifferenceEntry, ModelRow, ResolutionsMap), field ordering (RATIO_SYNC_FIELDS, SYNC_FIELD_ORDER, NUMERIC_SYNC_FIELDS), and selection logic (getPreferredSyncField, isSelectableUpstreamValue, getSyncFieldLabel) - Memoize the column definitions in useUpstreamRatioSyncColumns and pull the per-cell rendering into a renderUpstreamValue helper to remove inline IIFEs - Wrap handleBulkSelect / handleBulkUnselect in useCallback for stable refs; rename the misleading `_upstream` parameter to `upstream` - Convert parsedRatios from useCallback (returning a function) to useMemo (returning the value) and update all call sites to read it as a value - Memoize the channels list with useMemo so the endpoint-init effect no longer fires on every render due to a fresh `?? []` reference i18n - Add and translate new keys ("Upstream price sync", "Audio Ratio", "Audio Completion Ratio", "Cache Create Ratio", "Image Ratio", "Expression Billing", "Fixed Price", "{{n}} model(s) selected", tier guidance, etc.) across en, zh, fr, ja, ru, vi - Fix truncated keys ("Existing Models (", "New Models (", "Removed Models (") to proper {{count}} interpolated forms in every locale - bun run i18n:sync reports 0 missing and 0 extra keys for every locale Verification - bun run typecheck: pass - bun run lint: pass - bun run i18n:sync: pass (0 missing / 0 extras across all locales) * 🐛 fix(default): port classic73e5557tiered-billing fixes and dedupe Title-Case ratio i18n keys Sync the web/classic frontend fixes from upstream merge73e5557to web/default, and clean up duplicated Title-Case ratio labels in the upstream sync UI that were shadowing the canonical sentence-case i18n keys. Cache-token filter for tiered model price (port of9f8a4ec05) - The matched-tier breakdown shown in the usage-log details dialog and in the log table previously listed every cache-related price (Cache Read, Cache Write, Cache Write 1h) regardless of whether the request actually consumed cache tokens. - `getTieredBillingSummary` in `usage-logs/lib/format.ts` now skips `cache`-group vars when none of `cache_tokens`, `cache_creation_tokens`, `cache_creation_tokens_5m`, or `cache_creation_tokens_1h` are positive, mirroring the classic `renderTieredModelPrice` / `renderTieredModelPriceSimple` logic. - Extract `hasAnyCacheTokens(other)` as an exported helper so the predicate is defined once. - Add a `hideCacheColumns?: boolean` prop to `DynamicPricingBreakdown` and wire it up from the log details dialog so the full tier table hides cache columns under the same condition. `model-details.tsx` keeps the default (show all configured prices), since that view represents the model's pricing structure rather than a specific call. `tiered_expr` ratio/price fallback during sync delays (port ofbee339d27) - When saving a model in tiered-expression mode, the visual editor used to delete every ratio/price map entry for the model and only write `billing_setting.billing_mode` / `billing_setting.billing_expr`. In multi-instance deployments, instances that had not yet observed the billing_setting update fell back to ratios that no longer existed, breaking pricing. - `model-ratio-dialog.tsx`: `handleSubmit` always passes every form field (`price`, `ratio`, `cacheRatio`, `createCacheRatio`, `completionRatio`, `imageRatio`, `audioRatio`, `audioCompletionRatio`) into the data object regardless of `pricingMode`, so a switch from per-token to tiered_expr no longer drops the previously entered ratios. - `model-ratio-visual-editor.tsx`: - The row builder now also surfaces ratio/price values for `tiered_expr` rows, so they survive the edit-and-save round trip and the next save. - `handleSave` factors out a `setIfPresent` helper and persists ratio/price entries for `tiered_expr` models alongside billing_mode / billing_expr. These act purely as fallback because the backend's `ModelPriceHelper` checks `billing_mode` first. - Cell rendering mutes ratio/price values whenever the row is `tiered_expr` (in addition to the existing per-request muting), making it visually clear the values are fallback, not the active pricing source. i18n: dedupe Title-Case ratio labels in upstream sync - `upstream-ratio-sync` `RATIO_TYPE_OPTIONS` previously used Title-Case labels (`Model Ratio`, `Cache Ratio`, `Audio Completion Ratio`, …) that were rendered through `t()` but never existed as canonical keys in the catalogue. The form-field side has used sentence-case (`Model ratio`, `Cache ratio`, …) for some time, leaving two parallel translation entries per ratio type and causing the upstream sync UI to fall back to the English source string in zh/ja/ru/fr/vi. - Rewrite `RATIO_TYPE_OPTIONS` in `system-settings/models/constants.ts` and the conflict-detection labels in `upstream-ratio-sync.tsx` to reuse the sentence-case keys. - Drop the duplicate Title-Case entries from every locale and promote the better translations onto the surviving sentence-case keys (e.g. zh `Image ratio` keeps "图片倍率", `Audio completion ratio` keeps "音频补全倍率"). - Add a comment to `RATIO_TYPE_OPTIONS` warning future contributors not to switch back to Title Case without updating the catalogue. Note on backend fix4e93148d9- The backend portion of the merge (allocating a fresh map in `updateConfigFromMap` so removed keys are properly cleared) is already on HEAD; no additional change is needed. Verification - `bun run typecheck`: pass - `bun run lint`: pass - `bun run i18n:sync`: 0 missing / 0 extras across en / zh / fr / ja / ru / vi --------- Co-authored-by: Seefs <40468931+seefs001@users.noreply.github.com> Co-authored-by: Seefs <i@seefs.me> Co-authored-by: feitianbubu <feitianbubu@qq.com> Co-authored-by: Calcium-Ion <i@caion.me> Co-authored-by: Xyfacai <xyfacai@gmail.com> Co-authored-by: xiangsx <1984871009@qq.com> Co-authored-by: 郑伯涛 <351175318@qq.com> Co-authored-by: RedwindA <austinaosid@gmail.com> Co-authored-by: dean <1006393151@qq.com> Co-authored-by: QuentinHsu <xuquentinyang@gmail.com> Co-authored-by: Bliod <bliod@bliod.lan> Co-authored-by: Apple\Apple <zeraturing@foxmail.com>
3672 lines
232 KiB
JSON
Vendored
3672 lines
232 KiB
JSON
Vendored
{
|
||
"translation": {
|
||
"360": "360",
|
||
"1000": "1000",
|
||
"10000": "10000",
|
||
"_copy": "_copy",
|
||
", and": ", and",
|
||
"? This action cannot be undone.": "? This action cannot be undone.",
|
||
". Please fix the JSON before saving.": ". Please fix the JSON before saving.",
|
||
". This action cannot be undone.": ". This action cannot be undone.",
|
||
"...": "...",
|
||
"\"default\": \"us-central1\", \"claude-3-5-sonnet-20240620\": \"europe-west1\"": "\"default\": \"us-central1\", \"claude-3-5-sonnet-20240620\": \"europe-west1\"",
|
||
"(Leave empty to dissolve tag)": "(Leave empty to dissolve tag)",
|
||
"(Optional: redirect model names)": "(Optional: redirect model names)",
|
||
"(Override all channels' groups)": "(Override all channels' groups)",
|
||
"(Override all channels' models)": "(Override all channels' models)",
|
||
"[{\"ChatGPT\":\"https://chat.openai.com\"},{\"Lobe Chat\":\"https://chat-preview.lobehub.com/?settings={...}\"}]": "[{\"ChatGPT\":\"https://chat.openai.com\"},{\"Lobe Chat\":\"https://chat-preview.lobehub.com/?settings={...}\"}]",
|
||
"[{\"name\":\"支付宝\",\"type\":\"alipay\",\"color\":\"#1677FF\"}]": "[{\"name\":\"Alipay\",\"type\":\"alipay\",\"color\":\"#1677FF\"}]",
|
||
"{\"original-model\": \"replacement-model\"}": "{\"original-model\": \"replacement-model\"}",
|
||
"{{category}} Models": "{{category}} Models",
|
||
"{{count}} channel(s) deleted": "{{count}} channel(s) deleted",
|
||
"{{count}} channel(s) disabled": "{{count}} channel(s) disabled",
|
||
"{{count}} channel(s) enabled": "{{count}} channel(s) enabled",
|
||
"{{count}} channel(s) failed to disable": "{{count}} channel(s) failed to disable",
|
||
"{{count}} channel(s) failed to enable": "{{count}} channel(s) failed to enable",
|
||
"{{count}} days ago": "{{count}} days ago",
|
||
"{{count}} days remaining": "{{count}} days remaining",
|
||
"{{count}} disabled channel(s) deleted": "{{count}} disabled channel(s) deleted",
|
||
"{{count}} hours ago": "{{count}} hours ago",
|
||
"{{count}} IP(s)": "{{count}} IP(s)",
|
||
"{{count}} log entries removed.": "{{count}} log entries removed.",
|
||
"{{count}} minutes ago": "{{count}} minutes ago",
|
||
"{{count}} model(s)": "{{count}} model(s)",
|
||
"{{count}} months ago": "{{count}} months ago",
|
||
"{{count}} override": "{{count}} override",
|
||
"{{count}} tiers": "{{count}} tiers",
|
||
"{{count}} weeks ago": "{{count}} weeks ago",
|
||
"{{field}} updated to {{value}}": "{{field}} updated to {{value}}",
|
||
"{{field}} updated to {{value}} for tag: {{tag}}": "{{field}} updated to {{value}} for tag: {{tag}}",
|
||
"{{n}} model(s) selected": "{{n}} model(s) selected",
|
||
"{{value}}ms": "{{value}}ms",
|
||
"{{value}}s": "{{value}}s",
|
||
"@lobehub/icons key": "@lobehub/icons key",
|
||
"@lobehub/icons key name": "@lobehub/icons key name",
|
||
"/status/": "/status/",
|
||
"/your/endpoint": "/your/endpoint",
|
||
"% off": "% off",
|
||
"`, and `-nothinking` suffixes while routing to the correct Gemini variant.": "`, and `-nothinking` suffixes while routing to the correct Gemini variant.",
|
||
"© 2025 Your Company. All rights reserved.": "© 2025 Your Company. All rights reserved.",
|
||
"| Based on": "| Based on",
|
||
"0 means unlimited": "0 means unlimited",
|
||
"1 Day": "1 Day",
|
||
"1 day ago": "1 day ago",
|
||
"1 Hour": "1H",
|
||
"1 hour ago": "1 hour ago",
|
||
"1 minute ago": "1 minute ago",
|
||
"1 Month": "1M",
|
||
"1 month ago": "1 month ago",
|
||
"1 week ago": "1 week ago",
|
||
"1 year ago": "1 year ago",
|
||
"1. Create an application in your Gotify server": "1. Create an application in your Gotify server",
|
||
"1) Click \"Open authorization page\" and complete login. 2) Your browser may redirect to localhost (it is OK if the page does not load). 3) Copy the full URL from the address bar and paste it below. 4) Click \"Generate credential\".": "1) Click \"Open authorization page\" and complete login. 2) Your browser may redirect to localhost (it is OK if the page does not load). 3) Copy the full URL from the address bar and paste it below. 4) Click \"Generate credential\".",
|
||
"10 / page": "10 / page",
|
||
"100 / page": "100 / page",
|
||
"14 Days": "14 Days",
|
||
"192.168.1.1 10.0.0.0/8": "192.168.1.1 10.0.0.0/8",
|
||
"1M": "1M",
|
||
"1W": "1W",
|
||
"2. Copy the application token": "2. Copy the application token",
|
||
"20 / page": "20 / page",
|
||
"24 Hours": "24 Hours",
|
||
"24 hours ago": "24 hours ago",
|
||
"29 Days": "29 Days",
|
||
"3. Enter your Gotify server URL and token above": "3. Enter your Gotify server URL and token above",
|
||
"30 Days": "30 Days",
|
||
"30 days ago": "30 days ago",
|
||
"5-Hour Window": "5-Hour Window",
|
||
"50 / page": "50 / page",
|
||
"7 Days": "7 Days",
|
||
"7 days ago": "7 days ago",
|
||
"80,443,8080": "80,443,8080",
|
||
"About": "About",
|
||
"Accept Unpriced Models": "Accept Unpriced Models",
|
||
"Accepts a JSON array of model identifiers that support the Imagine API.": "Accepts a JSON array of model identifiers that support the Imagine API.",
|
||
"Accepts comma-separated status codes and inclusive ranges.": "Accepts comma-separated status codes and inclusive ranges.",
|
||
"Access Denied Message": "Access Denied Message",
|
||
"Access Forbidden": "Access Forbidden",
|
||
"Access Policy (JSON)": "Access Policy (JSON)",
|
||
"Access previous conversations and start new ones.": "Access previous conversations and start new ones.",
|
||
"Access Token": "Access Token",
|
||
"AccessKey / SecretAccessKey": "AccessKey / SecretAccessKey",
|
||
"Account Binding Management": "Account Binding Management",
|
||
"Account Bindings": "Account Bindings",
|
||
"Account created! Please sign in": "Account created! Please sign in",
|
||
"Account deleted successfully": "Account deleted successfully",
|
||
"Account ID *": "Account ID *",
|
||
"Account Info": "Account Info",
|
||
"Account used when authenticating with the SMTP server": "Account used when authenticating with the SMTP server",
|
||
"Action confirmation": "Action Confirmation",
|
||
"Actions": "Actions",
|
||
"active": "active",
|
||
"Active": "Active",
|
||
"Active Cache Count": "Active Cache Count",
|
||
"Active Files": "Active Files",
|
||
"active users": "active users",
|
||
"Actual Amount": "Actual Amount",
|
||
"Actual Model": "Actual Model",
|
||
"Actual Model:": "Actual Model:",
|
||
"Add": "Add",
|
||
"Add {{title}}": "Add {{title}}",
|
||
"Add a group identifier to the auto assignment list.": "Add a group identifier to the auto assignment list.",
|
||
"Add a new API key by providing necessary info.": "Add a new API key by providing necessary info.",
|
||
"Add a new channel by providing the necessary information.": "Add a new channel by providing the necessary information.",
|
||
"Add a new model to the system by providing the necessary information.": "Add a new model to the system by providing the necessary information.",
|
||
"Add a new user by providing necessary info.": "Add a new user by providing necessary info.",
|
||
"Add a new vendor to the system": "Add a new vendor to the system",
|
||
"Add an extra layer of security to your account": "Add an extra layer of security to your account",
|
||
"Add and submit": "Add and submit",
|
||
"Add Announcement": "Add Announcement",
|
||
"Add API": "Add API",
|
||
"Add API Shortcut": "Add API Shortcut",
|
||
"Add auto group": "Add auto group",
|
||
"Add chat preset": "Add chat preset",
|
||
"Add condition": "Add condition",
|
||
"Add custom model(s), comma-separated": "Add custom model(s), comma-separated",
|
||
"Add discount tier": "Add discount tier",
|
||
"Add each model or tag you want to include.": "Add each model or tag you want to include.",
|
||
"Add FAQ": "Add FAQ",
|
||
"Add from available models...": "Add from available models...",
|
||
"Add Funds": "Add Funds",
|
||
"Add group": "Add group",
|
||
"Add Group": "Add Group",
|
||
"Add group rate limit": "Add group rate limit",
|
||
"Add group rules": "Add group rules",
|
||
"Add Mapping": "Add Mapping",
|
||
"Add method": "Add method",
|
||
"Add Mode": "Add Mode",
|
||
"Add model": "Add model",
|
||
"Add Model": "Add Model",
|
||
"Add Models": "Add Models",
|
||
"Add new amount": "Add new amount",
|
||
"Add new redemption code(s) by providing necessary info.": "Add new redemption code(s) by providing necessary info.",
|
||
"Add OAuth Provider": "Add OAuth Provider",
|
||
"Add param/header": "Add param/header",
|
||
"Add payment method": "Add payment method",
|
||
"Add photos or files": "Add photos or files",
|
||
"Add product": "Add product",
|
||
"Add Provider": "Add Provider",
|
||
"Add Quota": "Add Quota",
|
||
"Add ratio override": "Add ratio override",
|
||
"Add Row": "Add Row",
|
||
"Add Rule": "Add Rule",
|
||
"Add rule group": "Add rule group",
|
||
"Add selectable group": "Add selectable group",
|
||
"Add subscription": "Add subscription",
|
||
"Add tags...": "Add tags...",
|
||
"Add tier": "Add tier",
|
||
"Add time condition": "Add time condition",
|
||
"Add time rule group": "Add time rule group",
|
||
"Add Uptime Kuma Group": "Add Uptime Kuma Group",
|
||
"Add User": "Add User",
|
||
"Add user group": "Add user group",
|
||
"Add your API keys, set up channels and configure access permissions": "Add your API keys, set up channels and configure access permissions",
|
||
"Added {{count}} custom model(s)": "Added {{count}} custom model(s)",
|
||
"Added {{count}} model(s)": "Added {{count}} model(s)",
|
||
"Added successfully": "Added successfully",
|
||
"Additional information": "Additional information",
|
||
"Additional Information": "Additional Information",
|
||
"Additional Limit": "Additional Limit",
|
||
"Additional Limits": "Additional Limits",
|
||
"Additional metered capability": "Additional metered capability",
|
||
"Adjust Quota": "Adjust Quota",
|
||
"Adjust the appearance and layout to suit your preferences.": "Adjust the appearance and layout to suit your preferences.",
|
||
"Admin": "Admin",
|
||
"Admin access required": "Admin access required",
|
||
"Admin area": "Admin area",
|
||
"Admin notes (only visible to admins)": "Admin notes (only visible to admins)",
|
||
"Admin Only": "Admin Only",
|
||
"Administer user accounts and roles.": "Administer user accounts and roles.",
|
||
"Administrator account": "Administrator account",
|
||
"Administrator username": "Administrator username",
|
||
"Advanced": "Advanced",
|
||
"Advanced Configuration": "Advanced Configuration",
|
||
"Advanced options": "Advanced options",
|
||
"Advanced Options": "Advanced Options",
|
||
"Advanced platform configuration.": "Advanced platform configuration.",
|
||
"Advanced Settings": "Advanced Settings",
|
||
"After clicking the button, you'll be asked to authorize the bot": "After clicking the button, you'll be asked to authorize the bot",
|
||
"After disabling, it will no longer be shown to users, but historical orders are not affected. Continue?": "After disabling, it will no longer be shown to users, but historical orders are not affected. Continue?",
|
||
"After enabling, the plan will be shown to users. Continue?": "After enabling, the plan will be shown to users. Continue?",
|
||
"After invalidating, this subscription will be immediately deactivated. Historical records are not affected. Continue?": "After invalidating, this subscription will be immediately deactivated. Historical records are not affected. Continue?",
|
||
"After scanning, the binding will complete automatically": "After scanning, the binding will complete automatically",
|
||
"Agent ID *": "Agent ID *",
|
||
"Aggregated usage metrics and trend charts.": "Aggregated usage metrics and trend charts.",
|
||
"aggregates 50+ AI providers behind one unified API. Manage access, track costs, and scale effortlessly.": "aggregates 50+ AI providers behind one unified API. Manage access, track costs, and scale effortlessly.",
|
||
"AGPL v3.0 License": "AGPL v3.0 License",
|
||
"AI model testing environment": "AI model testing environment",
|
||
"AI models": "AI models",
|
||
"AI models supported": "AI models supported",
|
||
"AI Proxy": "AI Proxy",
|
||
"AI Proxy Library": "AI Proxy Library",
|
||
"AIGC2D": "AIGC2D",
|
||
"AILS": "AILS",
|
||
"AK/SK mode: use AccessKey|SecretAccessKey|Region": "AK/SK mode: use AccessKey|SecretAccessKey|Region",
|
||
"Ali": "Ali",
|
||
"All": "All",
|
||
"All edits are overwrite operations. Leave fields empty to keep current values unchanged.": "All edits are overwrite operations. Leave fields empty to keep current values unchanged.",
|
||
"All files exceed the maximum size.": "All files exceed the maximum size.",
|
||
"All Groups": "All Groups",
|
||
"All Models": "All Models",
|
||
"All models in use are properly configured.": "All models in use are properly configured.",
|
||
"All Status": "All Status",
|
||
"All Sync Status": "All Sync Status",
|
||
"All Tags": "All Tags",
|
||
"All Types": "All Types",
|
||
"All upstream data is trusted": "All upstream data is trusted",
|
||
"All Vendors": "All Vendors",
|
||
"All Your AI Models": "All Your AI Models",
|
||
"Allocated Memory": "Allocated Memory",
|
||
"Allow accountFilter parameter": "Allow accountFilter parameter",
|
||
"Allow Claude beta query passthrough": "Allow Claude beta query passthrough",
|
||
"Allow clients to query configured ratios via `/api/ratio`.": "Allow clients to query configured ratios via `/api/ratio`.",
|
||
"Allow HTTP image requests": "Allow HTTP image requests",
|
||
"Allow include usage obfuscation passthrough": "Allow include usage obfuscation passthrough",
|
||
"Allow inference geography passthrough": "Allow inference geography passthrough",
|
||
"Allow inference_geo passthrough": "Allow inference_geo passthrough",
|
||
"Allow Insecure Origins": "Allow Insecure Origins",
|
||
"Allow new users to register": "Allow new users to register",
|
||
"Allow Private IPs": "Allow Private IPs",
|
||
"Allow registration with password": "Allow registration with password",
|
||
"Allow requests to private IP ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)": "Allow requests to private IP ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)",
|
||
"Allow safety_identifier passthrough": "Allow safety_identifier passthrough",
|
||
"Allow service_tier passthrough": "Allow service_tier passthrough",
|
||
"Allow speed passthrough": "Allow speed passthrough",
|
||
"Allow upstream callbacks": "Allow upstream callbacks",
|
||
"Allow users to check in daily for random quota rewards": "Allow users to check in daily for random quota rewards",
|
||
"Allow users to enter promo codes": "Allow users to enter promo codes",
|
||
"Allow users to log in with password": "Allow users to log in with password",
|
||
"Allow users to register and sign in with Passkey (WebAuthn)": "Allow users to register and sign in with Passkey (WebAuthn)",
|
||
"Allow users to sign in with Discord": "Allow users to sign in with Discord",
|
||
"Allow users to sign in with GitHub": "Allow users to sign in with GitHub",
|
||
"Allow users to sign in with LinuxDO": "Allow users to sign in with LinuxDO",
|
||
"Allow users to sign in with OpenID Connect": "Allow users to sign in with OpenID Connect",
|
||
"Allow users to sign in with Telegram": "Allow users to sign in with Telegram",
|
||
"Allow users to sign in with this provider": "Allow users to sign in with this provider",
|
||
"Allow users to sign in with WeChat": "Allow users to sign in with WeChat",
|
||
"Allow using models without price configuration": "Allow using models without price configuration",
|
||
"Allowed": "Allowed",
|
||
"Allowed Origins": "Allowed Origins",
|
||
"Allowed Ports": "Allowed Ports",
|
||
"Already have an account?": "Already have an account?",
|
||
"Always matches (default tier).": "Always matches (default tier).",
|
||
"Amount": "Amount",
|
||
"Amount cannot be changed when editing.": "Amount cannot be changed when editing.",
|
||
"Amount discount": "Amount discount",
|
||
"Amount Due": "Amount Due",
|
||
"Amount must be a whole number": "Amount must be a whole number",
|
||
"Amount must be greater than 0": "Amount must be greater than 0",
|
||
"Amount of quota to credit to user account.": "Amount of quota to credit to user account.",
|
||
"Amount options must be a JSON array": "Amount options must be a JSON array",
|
||
"Amount to pay:": "Amount to pay:",
|
||
"An unexpected error occurred": "An unexpected error occurred",
|
||
"and": "and",
|
||
"Announcement added. Click \"Save Settings\" to apply.": "Announcement added. Click \"Save Settings\" to apply.",
|
||
"Announcement content": "Announcement content",
|
||
"Announcement deleted. Click \"Save Settings\" to apply.": "Announcement deleted. Click \"Save Settings\" to apply.",
|
||
"Announcement Details": "Announcement Details",
|
||
"Announcement displayed to users (supports Markdown & HTML)": "Announcement displayed to users (supports Markdown & HTML)",
|
||
"Announcement updated. Click \"Save Settings\" to apply.": "Announcement updated. Click \"Save Settings\" to apply.",
|
||
"Announcements": "Announcements",
|
||
"Announcements saved successfully": "Announcements saved successfully",
|
||
"Answer": "Answer",
|
||
"Anthropic": "Anthropic",
|
||
"API Addresses": "API Addresses",
|
||
"API Base URL (Important: Not Chat API) *": "API Base URL (Important: Not Chat API) *",
|
||
"API Base URL *": "API Base URL *",
|
||
"API Endpoints": "API Endpoints",
|
||
"API Info": "API Info",
|
||
"API info added. Click \"Save Settings\" to apply.": "API info added. Click \"Save Settings\" to apply.",
|
||
"API info deleted. Click \"Save Settings\" to apply.": "API info deleted. Click \"Save Settings\" to apply.",
|
||
"API info saved successfully": "API info saved successfully",
|
||
"API info updated. Click \"Save Settings\" to apply.": "API info updated. Click \"Save Settings\" to apply.",
|
||
"API key": "API key",
|
||
"API Key": "API Key",
|
||
"API Key (one per line for batch mode)": "API Key (one per line for batch mode)",
|
||
"API Key (Production)": "API Key (Production)",
|
||
"API Key (Sandbox)": "API Key (Sandbox)",
|
||
"API Key *": "API Key *",
|
||
"API Key created successfully": "API Key created successfully",
|
||
"API Key deleted successfully": "API Key deleted successfully",
|
||
"API Key disabled successfully": "API Key disabled successfully",
|
||
"API Key enabled successfully": "API Key enabled successfully",
|
||
"API key from the provider": "API key from the provider",
|
||
"API key is required": "API key is required",
|
||
"API Key mode (does not support batch creation)": "API Key mode (does not support batch creation)",
|
||
"API Key mode: use APIKey|Region": "API Key mode: use APIKey|Region",
|
||
"API Key updated successfully": "API Key updated successfully",
|
||
"API Keys": "API Keys",
|
||
"API Private Key": "API Private Key",
|
||
"API Requests": "API Requests",
|
||
"API secret": "API secret",
|
||
"API token management": "API token management",
|
||
"API URL": "API URL",
|
||
"API usage records": "API usage records",
|
||
"API2GPT": "API2GPT",
|
||
"Append": "Append",
|
||
"Append mode: New keys will be added to the end of the existing key list": "Append mode: New keys will be added to the end of the existing key list",
|
||
"Append to channel": "Append to channel",
|
||
"Append to existing keys": "Append to existing keys",
|
||
"appended": "appended",
|
||
"Application": "Application",
|
||
"Applies to custom completion endpoints. JSON map of model → ratio.": "Applies to custom completion endpoints. JSON map of model → ratio.",
|
||
"Apply All Upstream Updates": "Apply All Upstream Updates",
|
||
"Apply Filters": "Apply Filters",
|
||
"Apply IP Filter to Resolved Domains": "Apply IP Filter to Resolved Domains",
|
||
"Apply Overwrite": "Apply Overwrite",
|
||
"Apply Sync": "Apply Sync",
|
||
"Applying...": "Applying...",
|
||
"Approx.": "Approx.",
|
||
"are also listed here. Remove them from Models to keep the `/v1/models` response user-friendly and hide vendor-specific names.": "are also listed here. Remove them from Models to keep the `/v1/models` response user-friendly and hide vendor-specific names.",
|
||
"Are you sure you want to delete": "Are you sure you want to delete",
|
||
"Are you sure you want to delete all auto-disabled keys? This action cannot be undone.": "Are you sure you want to delete all auto-disabled keys? This action cannot be undone.",
|
||
"Are you sure you want to delete deployment \"{{name}}\"? This action cannot be undone.": "Are you sure you want to delete deployment \"{{name}}\"? This action cannot be undone.",
|
||
"Are you sure you want to delete this key? This action cannot be undone.": "Are you sure you want to delete this key? This action cannot be undone.",
|
||
"Are you sure you want to disable all enabled keys?": "Are you sure you want to disable all enabled keys?",
|
||
"Are you sure you want to enable all keys?": "Are you sure you want to enable all keys?",
|
||
"Are you sure you want to manually complete this order? The user will be credited with the corresponding quota.": "Are you sure you want to manually complete this order? The user will be credited with the corresponding quota.",
|
||
"Are you sure you want to sign out? You will need to sign in again to access your account.": "Are you sure you want to sign out? You will need to sign in again to access your account.",
|
||
"Are you sure you want to unbind {{provider}} for this user? The user will no longer be able to log in via this method.": "Are you sure you want to unbind {{provider}} for this user? The user will no longer be able to log in via this method.",
|
||
"Are you sure you want to unbind {{provider}}? You will no longer be able to log in via this method.": "Are you sure you want to unbind {{provider}}? You will no longer be able to log in via this method.",
|
||
"Are you sure?": "Are you sure?",
|
||
"Args (space separated)": "Args (space separated)",
|
||
"Array of chat client presets. Each item is an object with one key-value pair: client name and its URL.": "Array of chat client presets. Each item is an object with one key-value pair: client name and its URL.",
|
||
"Asc": "Asc",
|
||
"Ask anything": "Ask anything",
|
||
"Async task refund": "Async task refund",
|
||
"At least one model regex pattern is required": "At least one model regex pattern is required",
|
||
"At least one valid key source is required": "At least one valid key source is required",
|
||
"Attach": "Attach",
|
||
"Audio": "Audio",
|
||
"Audio comp.": "Audio comp.",
|
||
"Audio completion ratio": "Audio completion ratio",
|
||
"Audio In": "Audio In",
|
||
"Audio input": "Audio input",
|
||
"Audio Input": "Audio Input",
|
||
"Audio Input Price": "Audio Input Price",
|
||
"Audio Out": "Audio Out",
|
||
"Audio output": "Audio output",
|
||
"Audio Output": "Audio Output",
|
||
"Audio playback failed": "Audio playback failed",
|
||
"Audio Preview": "Audio Preview",
|
||
"Audio ratio": "Audio ratio",
|
||
"Audio Tokens": "Audio Tokens",
|
||
"Auth Style": "Auth Style",
|
||
"Authentication": "Authentication",
|
||
"Authenticator code": "Authenticator code",
|
||
"Authorization Endpoint": "Authorization Endpoint",
|
||
"Authorization Endpoint (Optional)": "Authorization Endpoint (Optional)",
|
||
"Authorize": "Authorize",
|
||
"Auto": "Auto",
|
||
"Auto (Circuit Breaker)": "Auto (Circuit Breaker)",
|
||
"Auto assignment order": "Auto assignment order",
|
||
"Auto Ban": "Auto Ban",
|
||
"Auto detect (default)": "Auto detect (default)",
|
||
"Auto Disabled": "Auto Disabled",
|
||
"Auto Group Chain": "Auto Group Chain",
|
||
"Auto group enables circuit breaker mechanism": "Auto group enables circuit breaker mechanism",
|
||
"Auto refresh": "Auto refresh",
|
||
"Auto Sync Upstream Models": "Auto Sync Upstream Models",
|
||
"Auto-disable status codes": "Auto-disable status codes",
|
||
"Auto-discover": "Auto-discover",
|
||
"Auto-discovers endpoints from the provider": "Auto-discovers endpoints from the provider",
|
||
"Auto-retry status codes": "Auto-retry status codes",
|
||
"Automatically disable channel on repeated failures": "Automatically disable channel on repeated failures",
|
||
"Automatically disable channels exceeding this response time": "Automatically disable channels exceeding this response time",
|
||
"Automatically disable channels when tests fail": "Automatically disable channels when tests fail",
|
||
"Automatically probe all channels in the background": "Automatically probe all channels in the background",
|
||
"Automatically replaces upstream callback URLs with the server address.": "Automatically replaces upstream callback URLs with the server address.",
|
||
"Automatically selects the best available group with circuit breaker mechanism": "Automatically selects the best available group with circuit breaker mechanism",
|
||
"Automatically sync model list when upstream changes are detected": "Automatically sync model list when upstream changes are detected",
|
||
"Automatically test channels and notify users when limits are hit": "Automatically test channels and notify users when limits are hit",
|
||
"Available": "Available",
|
||
"Available disk space": "Available disk space",
|
||
"Available Models": "Available Models",
|
||
"Available Rewards": "Available Rewards",
|
||
"Average RPM": "Average RPM",
|
||
"Average TPM": "Average TPM",
|
||
"AWS": "AWS",
|
||
"AWS Key Format": "AWS Key Format",
|
||
"Azure": "Azure",
|
||
"AZURE_OPENAI_ENDPOINT *": "AZURE_OPENAI_ENDPOINT *",
|
||
"Back": "Back",
|
||
"Back to Home": "Back to Home",
|
||
"Back to login": "Back to login",
|
||
"Back to Models": "Back to Models",
|
||
"Backed up": "Backed up",
|
||
"Background job tracker for queued work.": "Background job tracker for queued work.",
|
||
"Backup Code": "Backup Code",
|
||
"Backup code must be in format XXXX-XXXX": "Backup code must be in format XXXX-XXXX",
|
||
"Backup codes regenerated successfully": "Backup codes regenerated successfully",
|
||
"Backup codes remaining: {{count}}": "Backup codes remaining: {{count}}",
|
||
"Badge Color": "Badge Color",
|
||
"Baidu": "Baidu",
|
||
"Baidu V2": "Baidu V2",
|
||
"Balance": "Balance",
|
||
"Balance and top-up management": "Balance and top-up management",
|
||
"Balance queried successfully": "Balance queried successfully",
|
||
"Balance updated successfully": "Balance updated successfully",
|
||
"Balance updated: {{balance}}": "Balance updated: {{balance}}",
|
||
"Bark Push URL": "Bark Push URL",
|
||
"Base address provided by your Epay service": "Base address provided by your Epay service",
|
||
"Base amount. Actual deduction = base amount × system group rate.": "Base amount. Actual deduction = base amount × system group rate.",
|
||
"Base Limits": "Base Limits",
|
||
"Base multipliers applied when users select specific groups.": "Base multipliers applied when users select specific groups.",
|
||
"Base rate limit windows for this account.": "Base rate limit windows for this account.",
|
||
"Base URL": "Base URL",
|
||
"Base URL of your Uptime Kuma instance": "Base URL of your Uptime Kuma instance",
|
||
"Basic Authentication": "Basic Authentication",
|
||
"Basic Configuration": "Basic Configuration",
|
||
"Basic Info": "Basic Info",
|
||
"Basic Information": "Basic Information",
|
||
"Batch Add (one key per line)": "Batch Add (one key per line)",
|
||
"Batch delete failed": "Batch delete failed",
|
||
"Batch detection complete: {{channels}} channels, {{add}} to add, {{remove}} to remove, {{fails}} failed": "Batch detection complete: {{channels}} channels, {{add}} to add, {{remove}} to remove, {{fails}} failed",
|
||
"Batch detection failed": "Batch detection failed",
|
||
"Batch disable failed": "Batch disable failed",
|
||
"Batch Edit": "Batch Edit",
|
||
"Batch edit all channels with this tag. Leave fields empty to keep current values.": "Batch edit all channels with this tag. Leave fields empty to keep current values.",
|
||
"Batch Edit by Tag": "Batch Edit by Tag",
|
||
"Batch enable failed": "Batch enable failed",
|
||
"Batch processing failed": "Batch processing failed",
|
||
"Batch upstream model updates applied: {{channels}} channels, {{added}} added, {{removed}} removed, {{fails}} failed": "Batch upstream model updates applied: {{channels}} channels, {{added}} added, {{removed}} removed, {{fails}} failed",
|
||
"Best for single-tenant deployments. Pricing and billing options stay hidden.": "Best for single-tenant deployments. Pricing and billing options stay hidden.",
|
||
"Billing": "Billing",
|
||
"Billing currency": "Billing currency",
|
||
"Billing Details": "Billing Details",
|
||
"Billing History": "Billing History",
|
||
"Billing Mode": "Billing Mode",
|
||
"Billing Process": "Billing Process",
|
||
"Billing Source": "Billing Source",
|
||
"Bind": "Bind",
|
||
"Bind an email address to your account.": "Bind an email address to your account.",
|
||
"Bind Email": "Bind Email",
|
||
"Bind Telegram Account": "Bind Telegram Account",
|
||
"Bind WeChat Account": "Bind WeChat Account",
|
||
"Binding Information": "Binding Information",
|
||
"Binding successful!": "Binding successful!",
|
||
"Binding your {{provider}} account": "Binding your {{provider}} account",
|
||
"Binding...": "Binding...",
|
||
"Bindings": "Bindings",
|
||
"Blacklist": "Blacklist",
|
||
"Blacklist (Block listed domains)": "Blacklist (Block listed domains)",
|
||
"Blacklist (Block listed IPs)": "Blacklist (Block listed IPs)",
|
||
"Blank Rule": "Blank Rule",
|
||
"Blend": "Blend",
|
||
"Block email aliases (e.g., user+alias@domain.com)": "Block email aliases (e.g., user+alias@domain.com)",
|
||
"Blocked keywords": "Blocked keywords",
|
||
"Blocks messages when sensitive keywords are detected.": "Blocks messages when sensitive keywords are detected.",
|
||
"Body param": "Body param",
|
||
"Bot Name": "Bot Name",
|
||
"Bot Protection": "Bot Protection",
|
||
"Bot Token": "Bot Token",
|
||
"Bot:": "Bot:",
|
||
"Bound": "Bound",
|
||
"Bound Channels": "Bound Channels",
|
||
"Bound Only": "Bound Only",
|
||
"Bring channels back online after successful checks": "Bring channels back online after successful checks",
|
||
"Broadcast a global banner to users. Markdown is supported.": "Broadcast a global banner to users. Markdown is supported.",
|
||
"Broadcast short system notices on the dashboard": "Broadcast short system notices on the dashboard",
|
||
"Browse and compare": "Browse and compare",
|
||
"Budget tokens = max tokens × ratio. Accepts a decimal between 0.002 and 1. Recommended to keep aligned with upstream billing.": "Budget tokens = max tokens × ratio. Accepts a decimal between 0.002 and 1. Recommended to keep aligned with upstream billing.",
|
||
"Budget tokens = max tokens × ratio. Accepts a decimal between 0.1 and 1.": "Budget tokens = max tokens × ratio. Accepts a decimal between 0.1 and 1.",
|
||
"Budget Tokens Ratio": "Budget Tokens Ratio",
|
||
"Budgets": "Budgets",
|
||
"Built for developers,": "Built for developers,",
|
||
"Built-in": "Built-in",
|
||
"Built-in Device": "Built-in Device",
|
||
"Built-in: phone fingerprint/face, or Windows Hello; External: USB security key": "Built-in: phone fingerprint/face, or Windows Hello; External: USB security key",
|
||
"by": "by",
|
||
"Cache": "Cache",
|
||
"Cache Creation": "Cache Creation",
|
||
"Cache Creation (1h)": "Cache Creation (1h)",
|
||
"Cache Creation (5m)": "Cache Creation (5m)",
|
||
"Cache Directory": "Cache Directory",
|
||
"Cache Directory Disk Space": "Cache Directory Disk Space",
|
||
"Cache Directory Info": "Cache Directory Info",
|
||
"Cache Entries": "Cache Entries",
|
||
"Cache mode": "Cache mode",
|
||
"Cache ratio": "Cache ratio",
|
||
"Cache Read": "Cache Read",
|
||
"Cache write": "Cache write",
|
||
"Cache Write": "Cache Write",
|
||
"Cache Write (1h)": "Cache Write (1h)",
|
||
"Cache Write (5m)": "Cache Write (5m)",
|
||
"Cached": "Cached",
|
||
"Cached input": "Cached input",
|
||
"Calculated price: ${{price}} per 1M tokens": "Calculated price: ${{price}} per 1M tokens",
|
||
"Calculated ratio: {{ratio}}": "Calculated ratio: {{ratio}}",
|
||
"Calculating...": "Calculating...",
|
||
"Call Proportion": "Call Proportion",
|
||
"Call Trend": "Call Trend",
|
||
"Callback address": "Callback address",
|
||
"Callback Caller IP": "Callback Caller IP",
|
||
"Callback notification URL": "Callback notification URL",
|
||
"Callback Payment Method": "Callback Payment Method",
|
||
"Callback URL": "Callback URL",
|
||
"Cancel": "Cancel",
|
||
"Cancelled": "Cancelled",
|
||
"Cancelled at": "Cancelled at",
|
||
"Capture a reusable bundle of models, tags, or endpoints.": "Capture a reusable bundle of models, tags, or endpoints.",
|
||
"Category Name": "Category Name",
|
||
"Category name is required": "Category name is required",
|
||
"Category name must be less than 50 characters": "Category name must be less than 50 characters",
|
||
"Caution": "Caution",
|
||
"CC Switch": "CC Switch",
|
||
"Chain": "Chain",
|
||
"Change": "Change",
|
||
"Change language": "Change language",
|
||
"Change Password": "Change Password",
|
||
"Change To": "Change To",
|
||
"Changing...": "Changing...",
|
||
"Channel": "Channel",
|
||
"Channel Affinity": "Channel Affinity",
|
||
"Channel affinity reuses the last successful channel based on keys extracted from the request context or JSON body.": "Channel affinity reuses the last successful channel based on keys extracted from the request context or JSON body.",
|
||
"Channel Affinity: Upstream Cache Hit": "Channel Affinity: Upstream Cache Hit",
|
||
"Channel copied successfully": "Channel copied successfully",
|
||
"Channel created successfully": "Channel created successfully",
|
||
"Channel deleted successfully": "Channel deleted successfully",
|
||
"Channel disabled successfully": "Channel disabled successfully",
|
||
"Channel enabled successfully": "Channel enabled successfully",
|
||
"Channel Extra Settings": "Channel Extra Settings",
|
||
"Channel ID": "Channel ID",
|
||
"Channel key unlocked": "Channel key unlocked",
|
||
"Channel models": "Channel models",
|
||
"Channel name is required": "Channel name is required",
|
||
"Channel test completed": "Channel test completed",
|
||
"Channel type is required": "Channel type is required",
|
||
"Channel updated successfully": "Channel updated successfully",
|
||
"Channel-specific settings (JSON format)": "Channel-specific settings (JSON format)",
|
||
"Channel:": "Channel:",
|
||
"channel(s)? This action cannot be undone.": "channel(s)? This action cannot be undone.",
|
||
"Channels": "Channels",
|
||
"Channels deleted successfully": "Channels deleted successfully",
|
||
"Chart Settings": "Chart Settings",
|
||
"Chat": "Chat",
|
||
"Chat area": "Chat area",
|
||
"Chat Area": "Chat Area",
|
||
"Chat Client Name": "Chat Client Name",
|
||
"Chat client name is required": "Chat client name is required",
|
||
"Chat configuration JSON": "Chat configuration JSON",
|
||
"Chat preset not found": "Chat preset not found",
|
||
"Chat Presets": "Chat Presets",
|
||
"Chat session management": "Chat session management",
|
||
"ChatCompletions -> Responses Compatibility": "ChatCompletions -> Responses Compatibility",
|
||
"Check for updates": "Check for updates",
|
||
"Check in daily to receive random quota rewards": "Check in daily to receive random quota rewards",
|
||
"Check in now": "Check in now",
|
||
"Check resolved IPs against IP filters even when accessing by domain": "Check resolved IPs against IP filters even when accessing by domain",
|
||
"Check-in failed": "Check-in failed",
|
||
"Check-in Settings": "Check-in Settings",
|
||
"Check-in successful! Received": "Check-in successful! Received",
|
||
"Checked in": "Checked in",
|
||
"Checking connection": "Checking connection",
|
||
"Checking name...": "Checking name...",
|
||
"Checking updates...": "Checking updates...",
|
||
"checkout.session.completed": "checkout.session.completed",
|
||
"checkout.session.expired": "checkout.session.expired",
|
||
"Chinese": "Chinese",
|
||
"Choose a username": "Choose a username",
|
||
"Choose an amount and payment method": "Choose an amount and payment method",
|
||
"Choose between default expanded, compact icon-only, or full layout mode": "Choose between default expanded, compact icon-only, or full layout mode",
|
||
"Choose between inset, floating, or standard sidebar layout": "Choose between inset, floating, or standard sidebar layout",
|
||
"Choose between left-to-right or right-to-left site direction": "Choose between left-to-right or right-to-left site direction",
|
||
"Choose between system preference, light mode, or dark mode": "Choose between system preference, light mode, or dark mode",
|
||
"Choose channels to sync upstream ratio configurations from": "Choose channels to sync upstream ratio configurations from",
|
||
"Choose Group": "Choose Group",
|
||
"Choose how quota values are shown to users": "Choose how quota values are shown to users",
|
||
"Choose how the platform will operate": "Choose how the platform will operate",
|
||
"Choose how to filter domains": "Choose how to filter domains",
|
||
"Choose how to filter IP addresses": "Choose how to filter IP addresses",
|
||
"Choose the bundle type and define the items inside it.": "Choose the bundle type and define the items inside it.",
|
||
"Choose where to fetch upstream metadata.": "Choose where to fetch upstream metadata.",
|
||
"Classic (Legacy Frontend)": "Classic (Legacy Frontend)",
|
||
"Claude": "Claude",
|
||
"Clean history logs": "Clean history logs",
|
||
"Clean logs": "Clean logs",
|
||
"Clean up inactive cache": "Clean up inactive cache",
|
||
"Clean Up Log Files": "Clean Up Log Files",
|
||
"Cleaned up {{count}} log files, freed {{size}}": "Cleaned up {{count}} log files, freed {{size}}",
|
||
"Cleaning...": "Cleaning...",
|
||
"Cleanup failed": "Cleanup failed",
|
||
"Cleanup Mode": "Cleanup Mode",
|
||
"Clear": "Clear",
|
||
"Clear all": "Clear all",
|
||
"Clear All": "Clear All",
|
||
"Clear All Cache": "Clear All Cache",
|
||
"Clear all filters": "Clear all filters",
|
||
"Clear cache for this rule": "Clear cache for this rule",
|
||
"Clear filters": "Clear filters",
|
||
"Clear Mapping": "Clear Mapping",
|
||
"Clear mode flags in prompts": "Clear mode flags in prompts",
|
||
"Clear search": "Clear search",
|
||
"Clear selection": "Clear selection",
|
||
"Clear selection (Escape)": "Clear selection (Escape)",
|
||
"Cleared": "Cleared",
|
||
"Cleared all models": "Cleared all models",
|
||
"Click \"Create Plan\" to create your first subscription plan": "Click \"Create Plan\" to create your first subscription plan",
|
||
"Click \"Generate\" to create a token": "Click \"Generate\" to create a token",
|
||
"Click for details": "Click for details",
|
||
"Click save when you're done.": "Click save when you're done.",
|
||
"Click save when you're done.": "Click save when you're done.",
|
||
"Click the button below to bind your Telegram account": "Click the button below to bind your Telegram account",
|
||
"Click to open deployment": "Click to open deployment",
|
||
"Click to preview audio": "Click to preview audio",
|
||
"Click to preview video": "Click to preview video",
|
||
"Click to update balance": "Click to update balance",
|
||
"Click to view Codex usage": "Click to view Codex usage",
|
||
"Click to view full details": "Click to view full details",
|
||
"Click to view full error message": "Click to view full error message",
|
||
"Click to view full prompt": "Click to view full prompt",
|
||
"Client ID": "Client ID",
|
||
"Client Secret": "Client Secret",
|
||
"Close": "Close",
|
||
"Close dialog": "Close dialog",
|
||
"Close menu": "Close menu",
|
||
"Close Today": "Close Today",
|
||
"Cloudflare": "Cloudflare",
|
||
"CNY": "CNY",
|
||
"CNY per USD": "CNY per USD",
|
||
"Code": "Code",
|
||
"Codes copied!": "Codes copied!",
|
||
"Codex": "Codex",
|
||
"Codex Account & Usage": "Codex Account & Usage",
|
||
"Codex Authorization": "Codex Authorization",
|
||
"Codex channels use an OAuth JSON credential as the key.": "Codex channels use an OAuth JSON credential as the key.",
|
||
"Cohere": "Cohere",
|
||
"Collapse": "Collapse",
|
||
"Color": "Color",
|
||
"Color is required": "Color is required",
|
||
"Color:": "Color:",
|
||
"Coming Soon!": "Coming Soon!",
|
||
"Comma-separated list of allowed ports (empty = all ports)": "Comma-separated list of allowed ports (empty = all ports)",
|
||
"Comma-separated model names (leave empty to keep current)": "Comma-separated model names (leave empty to keep current)",
|
||
"Comma-separated model names, e.g., gpt-4,gpt-3.5-turbo": "Comma-separated model names, e.g., gpt-4,gpt-3.5-turbo",
|
||
"Command": "Command",
|
||
"Common": "Common",
|
||
"Common Keys": "Common Keys",
|
||
"Common Logs": "Common Logs",
|
||
"Common ports include 25, 465, and 587": "Common ports include 25, 465, and 587",
|
||
"Common User": "Common User",
|
||
"Complete API documentation with multi-language SDK support": "Complete API documentation with multi-language SDK support",
|
||
"Complete Order": "Complete Order",
|
||
"Complete these steps to finish the initial installation.": "Complete these steps to finish the initial installation.",
|
||
"Completed": "Completed",
|
||
"Completion": "Completion",
|
||
"Completion price ($/1M tokens)": "Completion price ($/1M tokens)",
|
||
"Completion ratio": "Completion ratio",
|
||
"Concatenate channel system prompt with user's prompt": "Concatenate channel system prompt with user's prompt",
|
||
"Conditional multipliers": "Conditional multipliers",
|
||
"Conditions (AND)": "Conditions (AND)",
|
||
"Confidence": "Confidence",
|
||
"Configuration": "Configuration",
|
||
"Configuration File": "Configuration File",
|
||
"Configuration for Creem payment integration": "Configuration for Creem payment integration",
|
||
"Configuration for Epay payment integration": "Configuration for Epay payment integration",
|
||
"Configuration for Stripe payment integration": "Configuration for Stripe payment integration",
|
||
"Configuration required": "Configuration required",
|
||
"Configure": "Configure",
|
||
"Configure a Creem product for user recharge options.": "Configure a Creem product for user recharge options.",
|
||
"Configure a custom ratio for when users use a specific token group.": "Configure a custom ratio for when users use a specific token group.",
|
||
"Configure a group that users can select when creating API keys.": "Configure a group that users can select when creating API keys.",
|
||
"Configure a new custom OAuth provider for user authentication.": "Configure a new custom OAuth provider for user authentication.",
|
||
"Configure a payment method for user recharge options.": "Configure a payment method for user recharge options.",
|
||
"Configure a predefined chat link for end users.": "Configure a predefined chat link for end users.",
|
||
"Configure and deploy a new container instance.": "Configure and deploy a new container instance.",
|
||
"Configure API documentation links for the dashboard": "Configure API documentation links for the dashboard",
|
||
"Configure at:": "Configure at:",
|
||
"Configure available payment methods. Provide a JSON array.": "Configure available payment methods. Provide a JSON array.",
|
||
"Configure basic system information and branding": "Configure basic system information and branding",
|
||
"Configure channel affinity (sticky routing) rules": "Configure channel affinity (sticky routing) rules",
|
||
"Configure Creem products. Provide a JSON array.": "Configure Creem products. Provide a JSON array.",
|
||
"Configure custom OAuth providers for user authentication": "Configure custom OAuth providers for user authentication",
|
||
"Configure daily check-in rewards for users": "Configure daily check-in rewards for users",
|
||
"Configure discount rates based on recharge amounts": "Configure discount rates based on recharge amounts",
|
||
"Configure experimental data export for the dashboard": "Configure experimental data export for the dashboard",
|
||
"Configure Gemini safety behavior, version overrides, and thinking adapter": "Configure Gemini safety behavior, version overrides, and thinking adapter",
|
||
"Configure in your Creem dashboard": "Configure in your Creem dashboard",
|
||
"Configure io.net API key for model deployments": "Configure io.net API key for model deployments",
|
||
"Configure keyword filtering for prompts and responses.": "Configure keyword filtering for prompts and responses.",
|
||
"Configure model, caching, and group ratios used for billing": "Configure model, caching, and group ratios used for billing",
|
||
"Configure monitoring status page groups for the dashboard": "Configure monitoring status page groups for the dashboard",
|
||
"Configure outgoing email server for notifications": "Configure outgoing email server for notifications",
|
||
"Configure Passkey (WebAuthn) login settings": "Configure Passkey (WebAuthn) login settings",
|
||
"Configure password-based login and registration": "Configure password-based login and registration",
|
||
"Configure per-model ratio for image inputs or outputs.": "Configure per-model ratio for image inputs or outputs.",
|
||
"Configure per-tool unit prices ($/1K calls). Per-request models do not incur additional tool fees.": "Configure per-tool unit prices ($/1K calls). Per-request models do not incur additional tool fees.",
|
||
"Configure predefined chat links surfaced to end users.": "Configure predefined chat links surfaced to end users.",
|
||
"Configure pricing model and display options": "Configure pricing model and display options",
|
||
"Configure pricing ratios for a specific model.": "Configure pricing ratios for a specific model.",
|
||
"Configure rate limiting rules for a specific user group.": "Configure rate limiting rules for a specific user group.",
|
||
"Configure recharge pricing and payment gateway integrations": "Configure recharge pricing and payment gateway integrations",
|
||
"Configure system-wide behavior and defaults": "Configure system-wide behavior and defaults",
|
||
"Configure the ratio for this group.": "Configure the ratio for this group.",
|
||
"Configure third-party authentication providers": "Configure third-party authentication providers",
|
||
"Configure upstream providers and routing.": "Configure upstream providers and routing.",
|
||
"Configure upstream worker or proxy service for outbound requests": "Configure upstream worker or proxy service for outbound requests",
|
||
"Configure user quota allocation and rewards": "Configure user quota allocation and rewards",
|
||
"Configure Waffo Pancake hosted checkout integration for USD-priced top-ups": "Configure Waffo Pancake hosted checkout integration for USD-priced top-ups",
|
||
"Configure Waffo payment aggregation platform integration": "Configure Waffo payment aggregation platform integration",
|
||
"Configure xAI Grok model settings": "Configure xAI Grok model settings",
|
||
"Configure xAI Grok model specific settings": "Configure xAI Grok model specific settings",
|
||
"Configure your account behavior preferences": "Configure your account behavior preferences",
|
||
"Configure your account preferences and integrations": "Configure your account preferences and integrations",
|
||
"Confirm": "Confirm",
|
||
"Confirm Action": "Confirm Action",
|
||
"Confirm Batch Update": "Confirm Batch Update",
|
||
"Confirm Billing Conflicts": "Confirm Billing Conflicts",
|
||
"Confirm Changes": "Confirm Changes",
|
||
"Confirm Cleanup": "Confirm Cleanup",
|
||
"Confirm cleanup of inactive disk cache?": "Confirm cleanup of inactive disk cache?",
|
||
"Confirm clearing all channel affinity cache": "Confirm clearing all channel affinity cache",
|
||
"Confirm clearing cache for this rule": "Confirm clearing cache for this rule",
|
||
"Confirm Creem Purchase": "Confirm Creem Purchase",
|
||
"Confirm delete": "Confirm delete",
|
||
"Confirm disable": "Confirm Disable",
|
||
"Confirm enable": "Confirm Enable",
|
||
"Confirm invalidate": "Confirm Invalidate",
|
||
"Confirm log cleanup": "Confirm log cleanup",
|
||
"Confirm log file cleanup?": "Confirm log file cleanup?",
|
||
"Confirm New Password": "Confirm New Password",
|
||
"Confirm password": "Confirm password",
|
||
"Confirm Payment": "Confirm Payment",
|
||
"Confirm Selection": "Confirm Selection",
|
||
"Confirm settings and finish setup": "Confirm settings and finish setup",
|
||
"Confirm Unbind": "Confirm Unbind",
|
||
"Confirm your identity before removing this Passkey from your account.": "Confirm your identity before removing this Passkey from your account.",
|
||
"Confirm your identity with Two-factor Authentication before registering a Passkey.": "Confirm your identity with Two-factor Authentication before registering a Passkey.",
|
||
"Conflict": "Conflict",
|
||
"Connect": "Connect",
|
||
"Connected to io.net service normally.": "Connected to io.net service normally.",
|
||
"Connection error": "Connection error",
|
||
"Connection failed": "Connection failed",
|
||
"Connection successful": "Connection successful",
|
||
"Console": "Console",
|
||
"Console area": "Console area",
|
||
"Console Area": "Console Area",
|
||
"Consume": "Consume",
|
||
"Container": "Container",
|
||
"Container name": "Container name",
|
||
"Containers": "Containers",
|
||
"Contains": "Contains",
|
||
"Contains Match": "Contains Match",
|
||
"Content": "Content",
|
||
"Content displayed on the home page (supports Markdown)": "Content displayed on the home page (supports Markdown)",
|
||
"Content not found.": "Content not found.",
|
||
"Content not modified!": "Content not modified!",
|
||
"Continue": "Continue",
|
||
"Continue with {{name}}": "Continue with {{name}}",
|
||
"Continue with Discord": "Continue with Discord",
|
||
"Continue with GitHub": "Continue with GitHub",
|
||
"Continue with LinuxDO": "Continue with LinuxDO",
|
||
"Continue with OIDC": "Continue with OIDC",
|
||
"Continue with Telegram": "Continue with Telegram",
|
||
"Continue with WeChat": "Continue with WeChat",
|
||
"Control log retention and clean historical data.": "Control log retention and clean historical data.",
|
||
"Control passthrough behavior and connection keep-alive settings": "Control passthrough behavior and connection keep-alive settings",
|
||
"Control request frequency to prevent abuse and manage system load.": "Control request frequency to prevent abuse and manage system load.",
|
||
"Control which sidebar areas and modules are available to all users.": "Control which sidebar areas and modules are available to all users.",
|
||
"Controls whether user verification (biometrics/PIN) is required during Passkey flows.": "Controls whether user verification (biometrics/PIN) is required during Passkey flows.",
|
||
"Conversion rate from USD to your custom currency": "Conversion rate from USD to your custom currency",
|
||
"Convert reasoning_content to <think> tag in content": "Convert reasoning_content to <think> tag in content",
|
||
"Copied": "Copied",
|
||
"Copied {{count}} key(s)": "Copied {{count}} key(s)",
|
||
"Copied to clipboard": "Copied to clipboard",
|
||
"Copied: {{model}}": "Copied: {{model}}",
|
||
"Copied!": "Copied!",
|
||
"Copy": "Copy",
|
||
"Copy All": "Copy All",
|
||
"Copy all backup codes": "Copy all backup codes",
|
||
"Copy All Codes": "Copy All Codes",
|
||
"Copy API key": "Copy API key",
|
||
"Copy authorization link": "Copy authorization link",
|
||
"Copy Channel": "Copy Channel",
|
||
"Copy code": "Copy code",
|
||
"Copy Connection Info": "Copy Connection Info",
|
||
"Copy failed": "Copy failed",
|
||
"Copy Header": "Copy Header",
|
||
"Copy Key": "Copy Key",
|
||
"Copy Link": "Copy Link",
|
||
"Copy model name": "Copy model name",
|
||
"Copy model names": "Copy model names",
|
||
"Copy prompt": "Copy prompt",
|
||
"Copy redemption code": "Copy redemption code",
|
||
"Copy referral link": "Copy referral link",
|
||
"Copy secret key": "Copy secret key",
|
||
"Copy selected codes": "Copy selected codes",
|
||
"Copy selected keys": "Copy selected keys",
|
||
"Copy the key and paste it here": "Copy the key and paste it here",
|
||
"Copy this prompt and send it to an LLM (e.g. ChatGPT / Claude) to help design your billing expression.": "Copy this prompt and send it to an LLM (e.g. ChatGPT / Claude) to help design your billing expression.",
|
||
"Copy to clipboard": "Copy to clipboard",
|
||
"Copy token": "Copy token",
|
||
"Copy URL": "Copy URL",
|
||
"Core Features": "Core Features",
|
||
"Cost": "Cost",
|
||
"Cost in USD per request, regardless of tokens used.": "Cost in USD per request, regardless of tokens used.",
|
||
"Cost Tracking": "Cost Tracking",
|
||
"Count must be between {{min}} and {{max}}": "Count must be between {{min}} and {{max}}",
|
||
"Coze": "Coze",
|
||
"CPU Threshold (%)": "CPU Threshold (%)",
|
||
"Create": "Create",
|
||
"Create a copy of:": "Create a copy of:",
|
||
"Create a new user group to configure ratio overrides for.": "Create a new user group to configure ratio overrides for.",
|
||
"Create account": "Create account",
|
||
"Create an account": "Create an account",
|
||
"Create and review invite or credit codes.": "Create and review invite or credit codes.",
|
||
"Create API Key": "Create API Key",
|
||
"Create cache": "Create cache",
|
||
"Create cache ratio": "Create cache ratio",
|
||
"Create Channel": "Create Channel",
|
||
"Create Code": "Create Code",
|
||
"Create credentials for the root user": "Create credentials for the root user",
|
||
"Create deployment": "Create deployment",
|
||
"Create Model": "Create Model",
|
||
"Create multiple API keys at once (random suffix will be added to names)": "Create multiple API keys at once (random suffix will be added to names)",
|
||
"Create multiple channels from multiple keys": "Create multiple channels from multiple keys",
|
||
"Create multiple redemption codes at once (1-100)": "Create multiple redemption codes at once (1-100)",
|
||
"Create new subscription plan": "Create New Subscription Plan",
|
||
"Create or update frequently asked questions for users": "Create or update frequently asked questions for users",
|
||
"Create or update system announcements for the dashboard": "Create or update system announcements for the dashboard",
|
||
"Create Plan": "Create Plan",
|
||
"Create Prefill Group": "Create Prefill Group",
|
||
"Create Provider": "Create Provider",
|
||
"Create Redemption Code": "Create Redemption Code",
|
||
"Create reusable bundles of models, tags, endpoints, and user groups to speed up configuration elsewhere in the console.": "Create reusable bundles of models, tags, endpoints, and user groups to speed up configuration elsewhere in the console.",
|
||
"Create succeeded": "Create succeeded",
|
||
"Create Vendor": "Create Vendor",
|
||
"Create your first group to reuse model, tag, or endpoint selections anywhere in the dashboard.": "Create your first group to reuse model, tag, or endpoint selections anywhere in the dashboard.",
|
||
"Create, revoke, and audit API tokens.": "Create, revoke, and audit API tokens.",
|
||
"Created": "Created",
|
||
"Created At": "Created At",
|
||
"Credential generated": "Credential generated",
|
||
"Credential refreshed": "Credential refreshed",
|
||
"Credentials": "Credentials",
|
||
"Creem API key (leave blank unless updating)": "Creem API key (leave blank unless updating)",
|
||
"Creem Gateway": "Creem Gateway",
|
||
"Creem Payment": "Creem Payment",
|
||
"Creem product ID from your Creem dashboard.": "Creem product ID from your Creem dashboard.",
|
||
"Creem products must be a JSON array": "Creem products must be a JSON array",
|
||
"Cross-group": "Cross-group",
|
||
"Cross-group retry": "Cross-group retry",
|
||
"Curate quick links to your different Domains": "Curate quick links to your different Domains",
|
||
"Currency": "Currency",
|
||
"Current Balance": "Current Balance",
|
||
"Current Billing": "Current Billing",
|
||
"Current Cache Size": "Current Cache Size",
|
||
"Current email: {{email}}. Enter a new email to change.": "Current email: {{email}}. Enter a new email to change.",
|
||
"Current key": "Current key",
|
||
"Current models for the longest channel in this tag. May not include all models from all channels.": "Current models for the longest channel in this tag. May not include all models from all channels.",
|
||
"Current Password": "Current Password",
|
||
"Current Price": "Current Price",
|
||
"Current quota": "Current quota",
|
||
"Current Value": "Current Value",
|
||
"Current version": "Current version",
|
||
"Current:": "Current:",
|
||
"Custom": "Custom",
|
||
"Custom (seconds)": "Custom (seconds)",
|
||
"Custom Amount": "Custom Amount",
|
||
"Custom API base URL. For official channels, New API has built-in addresses. Only fill this for third-party proxy sites or special endpoints. Do not add /v1 or trailing slash.": "Custom API base URL. For official channels, New API has built-in addresses. Only fill this for third-party proxy sites or special endpoints. Do not add /v1 or trailing slash.",
|
||
"Custom API base URL. Leave empty to use provider default.": "Custom API base URL. Leave empty to use provider default.",
|
||
"Custom Currency": "Custom Currency",
|
||
"Custom Currency Symbol": "Custom Currency Symbol",
|
||
"Custom currency symbol is required": "Custom currency symbol is required",
|
||
"Custom database driver detected.": "Custom database driver detected.",
|
||
"Custom Home Page": "Custom Home Page",
|
||
"Custom message shown when access is denied": "Custom message shown when access is denied",
|
||
"Custom model (comma-separated)": "Custom model (comma-separated)",
|
||
"Custom module": "Custom module",
|
||
"Custom multipliers when specific user groups use specific token groups. Example: VIP users get 0.9x rate when using \"edit_this\" group tokens.": "Custom multipliers when specific user groups use specific token groups. Example: VIP users get 0.9x rate when using \"edit_this\" group tokens.",
|
||
"Custom OAuth": "Custom OAuth",
|
||
"Custom OAuth Providers": "Custom OAuth Providers",
|
||
"Custom Seconds": "Custom Seconds",
|
||
"Custom sidebar section": "Custom sidebar section",
|
||
"Custom Time Range": "Custom Time Range",
|
||
"Custom Zoom": "Custom Zoom",
|
||
"Customize sidebar display content": "Customize sidebar display content",
|
||
"Daily": "Daily",
|
||
"Daily Check-in": "Daily Check-in",
|
||
"Dark": "Dark",
|
||
"Dashboard": "Dashboard",
|
||
"Dashboards, tokens, and usage analytics.": "Dashboards, tokens, and usage analytics.",
|
||
"Data Dashboard": "Data Dashboard",
|
||
"Data directory:": "Data directory:",
|
||
"Data is stored locally on this device. Use system backups to keep a safe copy.": "Data is stored locally on this device. Use system backups to keep a safe copy.",
|
||
"Data management and log viewing": "Data management and log viewing",
|
||
"Database": "Database",
|
||
"Database check": "Database check",
|
||
"Date and time when this announcement should be displayed": "Date and time when this announcement should be displayed",
|
||
"Date Range": "Date Range",
|
||
"Day": "Day",
|
||
"days": "days",
|
||
"Days to Retain": "Days to Retain",
|
||
"Deducted by subscription": "Deducted by subscription",
|
||
"DeepSeek": "DeepSeek",
|
||
"default": "default",
|
||
"Default": "Default",
|
||
"Default (New Frontend)": "Default (New Frontend)",
|
||
"Default API Version *": "Default API Version *",
|
||
"Default API version for this channel": "Default API version for this channel",
|
||
"Default Collapse Sidebar": "Default Collapse Sidebar",
|
||
"Default Max Tokens": "Default Max Tokens",
|
||
"Default Responses API version, if empty, will use the API version above": "Default Responses API version, if empty, will use the API version above",
|
||
"Default system prompt for this channel": "Default system prompt for this channel",
|
||
"Default time granularity": "Default time granularity",
|
||
"Default to auto groups": "Default to auto groups",
|
||
"Default TTL (seconds)": "Default TTL (seconds)",
|
||
"Defaults to the wallet page when empty": "Defaults to the wallet page when empty",
|
||
"Define API endpoints for this model (JSON format)": "Define API endpoints for this model (JSON format)",
|
||
"Define endpoint mappings for each provider.": "Define endpoint mappings for each provider.",
|
||
"Define per-group rules to add, remove, or append selectable groups for specific user groups.": "Define per-group rules to add, remove, or append selectable groups for specific user groups.",
|
||
"Delete": "Delete",
|
||
"Delete (": "Delete (",
|
||
"Delete {{count}} API key(s)?": "Delete {{count}} API key(s)?",
|
||
"Delete Account": "Delete Account",
|
||
"Delete All Disabled": "Delete All Disabled",
|
||
"Delete All Disabled Channels?": "Delete All Disabled Channels?",
|
||
"Delete Auto-Disabled": "Delete Auto-Disabled",
|
||
"Delete Channel": "Delete Channel",
|
||
"Delete Channels?": "Delete Channels?",
|
||
"Delete failed": "Delete failed",
|
||
"Delete group": "Delete group",
|
||
"Delete Header": "Delete Header",
|
||
"Delete Invalid": "Delete Invalid",
|
||
"Delete invalid codes": "Delete invalid codes",
|
||
"Delete invalid codes (used/disabled/expired)": "Delete invalid codes (used/disabled/expired)",
|
||
"Delete invalid redemption codes": "Delete invalid redemption codes",
|
||
"Delete Invalid Redemption Codes?": "Delete Invalid Redemption Codes?",
|
||
"Delete logs": "Delete logs",
|
||
"Delete Model": "Delete Model",
|
||
"Delete Models?": "Delete Models?",
|
||
"Delete Provider": "Delete Provider",
|
||
"Delete selected API keys": "Delete selected API keys",
|
||
"Delete selected channels": "Delete selected channels",
|
||
"Delete selected models": "Delete selected models",
|
||
"Deleted": "Deleted",
|
||
"Deleted successfully": "Deleted successfully",
|
||
"Deleting will permanently remove this subscription record (including benefit details). Continue?": "Deleting will permanently remove this subscription record (including benefit details). Continue?",
|
||
"Deleting...": "Deleting...",
|
||
"Demo site": "Demo site",
|
||
"Demo site mode": "Demo site mode",
|
||
"Demo Site Mode": "Demo Site Mode",
|
||
"Demote": "Demote",
|
||
"Deployment created successfully": "Deployment created successfully",
|
||
"Deployment details": "Deployment details",
|
||
"Deployment ID": "Deployment ID",
|
||
"Deployment location": "Deployment location",
|
||
"Deployment logs": "Deployment logs",
|
||
"Deployment Region *": "Deployment Region *",
|
||
"Deployment requested": "Deployment requested",
|
||
"Deployments": "Deployments",
|
||
"Desc": "Desc",
|
||
"Describe": "Describe",
|
||
"Describe this model...": "Describe this model...",
|
||
"Describe this vendor...": "Describe this vendor...",
|
||
"Description": "Description",
|
||
"Description is required": "Description is required",
|
||
"Designed and Developed by": "Designed and Developed by",
|
||
"designed for scale": "designed for scale",
|
||
"Destroyed": "Destroyed",
|
||
"Detailed request logs for investigations.": "Detailed request logs for investigations.",
|
||
"Details": "Details",
|
||
"Detect All Upstream Updates": "Detect All Upstream Updates",
|
||
"Detected database": "Detected database",
|
||
"Detected high-risk status code redirect rules": "The following high-risk status code redirect rules were detected:",
|
||
"Detection complete: {{add}} to add, {{remove}} to remove": "Detection complete: {{add}} to add, {{remove}} to remove",
|
||
"Detection failed": "Detection failed",
|
||
"Determines how this group is applied elsewhere.": "Determines how this group is applied elsewhere.",
|
||
"Developer Friendly": "Developer Friendly",
|
||
"Device Type Preference": "Device Type Preference",
|
||
"Dify": "Dify",
|
||
"Dify channels only support chatflow and agent, and agent does not support images": "Dify channels only support chatflow and agent, and agent does not support images",
|
||
"Digest:": "Digest:",
|
||
"Direction": "Direction",
|
||
"Directory File Count": "Directory File Count",
|
||
"Directory Total Size": "Directory Total Size",
|
||
"Disable": "Disable",
|
||
"Disable 2FA": "Disable 2FA",
|
||
"Disable All": "Disable All",
|
||
"Disable on failure": "Disable on failure",
|
||
"Disable selected channels": "Disable selected channels",
|
||
"Disable selected models": "Disable selected models",
|
||
"Disable store passthrough": "Disable store passthrough",
|
||
"Disable thinking processing models": "Disable thinking processing models",
|
||
"Disable this key?": "Disable this key?",
|
||
"Disable threshold (seconds)": "Disable threshold (seconds)",
|
||
"Disable Two-Factor Authentication": "Disable Two-Factor Authentication",
|
||
"disabled": "disabled",
|
||
"Disabled": "Disabled",
|
||
"Disabled all channels with tag: {{tag}}": "Disabled all channels with tag: {{tag}}",
|
||
"Disabled Reason": "Disabled Reason",
|
||
"Disabled Time": "Disabled Time",
|
||
"Disabling...": "Disabling...",
|
||
"Discord": "Discord",
|
||
"Discount": "Discount",
|
||
"Discount map by recharge amount (JSON object)": "Discount map by recharge amount (JSON object)",
|
||
"Discount Rate": "Discount Rate",
|
||
"Discount rate must be ≤ 1": "Discount rate must be ≤ 1",
|
||
"Discount rate must be greater than 0": "Discount rate must be greater than 0",
|
||
"Discount Rate:": "Discount Rate:",
|
||
"Discount ratio for cache hits.": "Discount ratio for cache hits.",
|
||
"Discouraged": "Discouraged",
|
||
"Discovering...": "Discovering...",
|
||
"Disk cache cleared": "Disk cache cleared",
|
||
"Disk Cache Settings": "Disk Cache Settings",
|
||
"Disk Cache Threshold (MB)": "Disk Cache Threshold (MB)",
|
||
"Disk cache, system performance monitoring, and operation statistics": "Disk cache, system performance monitoring, and operation statistics",
|
||
"Disk Hits": "Disk Hits",
|
||
"Disk Threshold (%)": "Disk Threshold (%)",
|
||
"Display in Currency": "Display in Currency",
|
||
"Display Mode": "Display Mode",
|
||
"Display name": "Display name",
|
||
"Display Name": "Display Name",
|
||
"Display name and email used in outgoing messages": "Display name and email used in outgoing messages",
|
||
"Display Name Field": "Display Name Field",
|
||
"Display name for this chat client.": "Display name for this chat client.",
|
||
"Display name for this monitoring group (max 50 characters)": "Display name for this monitoring group (max 50 characters)",
|
||
"Display name for this payment method.": "Display name for this payment method.",
|
||
"Display name shown to users.": "Display name shown to users.",
|
||
"Display Options": "Display Options",
|
||
"Display Token Statistics": "Display Token Statistics",
|
||
"Displays the mobile sidebar.": "Displays the mobile sidebar.",
|
||
"Do not over-trust this feature. IP may be spoofed. Please use with nginx, CDN and other gateways.": "Do not over-trust this feature. IP may be spoofed. Please use with nginx, CDN and other gateways.",
|
||
"Do not repeat check-in; only once per day": "Do not repeat check-in; only once per day",
|
||
"Docs": "Docs",
|
||
"Documentation Link": "Documentation Link",
|
||
"Documentation or external knowledge base.": "Documentation or external knowledge base.",
|
||
"does not exist or might have been removed.": "does not exist or might have been removed.",
|
||
"Domain": "Domain",
|
||
"Domain Filter Mode": "Domain Filter Mode",
|
||
"Don't have an account?": "Don't have an account?",
|
||
"Done": "Done",
|
||
"Doubao Coding Plan": "Doubao Coding Plan",
|
||
"Doubao custom API address editing unlocked": "Doubao custom API address editing unlocked",
|
||
"DoubaoVideo": "DoubaoVideo",
|
||
"Double check the configuration below. Your system will be locked until initialization is complete.": "Double check the configuration below. Your system will be locked until initialization is complete.",
|
||
"Download": "Download",
|
||
"Draw": "Draw",
|
||
"Drawing": "Drawing",
|
||
"Drawing logs": "Drawing logs",
|
||
"Drawing Logs": "Drawing Logs",
|
||
"Drawing task records": "Drawing task records",
|
||
"Duplicate": "Duplicate",
|
||
"Duration": "Duration",
|
||
"Duration (hours)": "Duration (hours)",
|
||
"Duration Settings": "Duration Settings",
|
||
"Duration Unit": "Duration Unit",
|
||
"Duration Value": "Duration Value",
|
||
"Dynamic Pricing": "Dynamic Pricing",
|
||
"e.g. ¥ or HK$": "e.g. ¥ or HK$",
|
||
"e.g. 401, 403, 429, 500-599": "e.g. 401, 403, 429, 500-599",
|
||
"e.g. 8 means 1 USD = 8 units": "e.g. 8 means 1 USD = 8 units",
|
||
"e.g. Basic Plan": "e.g. Basic Plan",
|
||
"e.g. example.com": "e.g. example.com",
|
||
"e.g. llama3.1:8b": "e.g. llama3.1:8b",
|
||
"e.g. My GitLab": "e.g. My GitLab",
|
||
"e.g. my-gitlab": "e.g. my-gitlab",
|
||
"e.g. New API Console": "e.g. New API Console",
|
||
"e.g. openid profile email": "e.g. openid profile email",
|
||
"e.g. Suitable for light usage": "e.g. Suitable for light usage",
|
||
"e.g., 0.95": "e.g., 0.95",
|
||
"e.g., 100": "e.g., 100",
|
||
"e.g., 123456": "e.g., 123456",
|
||
"e.g., 2025-04-01-preview": "e.g., 2025-04-01-preview",
|
||
"e.g., 50": "e.g., 50",
|
||
"e.g., 500000": "e.g., 500000",
|
||
"e.g., 7342866812345": "e.g., 7342866812345",
|
||
"e.g., 8 means 8 local currency per USD": "e.g., 8 means 8 local currency per USD",
|
||
"e.g., Alipay, WeChat": "e.g., Alipay, WeChat",
|
||
"e.g., Basic Package": "e.g., Basic Package",
|
||
"e.g., CN2 GIA": "e.g., CN2 GIA",
|
||
"e.g., Core APIs, OpenAI, Claude": "e.g., Core APIs, OpenAI, Claude",
|
||
"e.g., d6b5da8hk1awo8nap34ube6gh": "e.g., d6b5da8hk1awo8nap34ube6gh",
|
||
"e.g., default, vip, premium": "e.g., default, vip, premium",
|
||
"e.g., gpt-4, claude-3": "e.g., gpt-4, claude-3",
|
||
"e.g., https://api.example.com (path before /suno)": "e.g., https://api.example.com (path before /suno)",
|
||
"e.g., https://api.openai.com/v1/chat/completions": "e.g., https://api.openai.com/v1/chat/completions",
|
||
"e.g., https://ark.cn-beijing.volces.com": "e.g., https://ark.cn-beijing.volces.com",
|
||
"e.g., https://docs-test-001.openai.azure.com": "e.g., https://docs-test-001.openai.azure.com",
|
||
"e.g., https://fastgpt.run/api/openapi": "e.g., https://fastgpt.run/api/openapi",
|
||
"e.g., OpenAI GPT-4 Production": "e.g., OpenAI GPT-4 Production",
|
||
"e.g., preview": "e.g., preview",
|
||
"e.g., prod_xxx": "e.g., prod_xxx",
|
||
"e.g., Recommended for China Mainland Users": "e.g., Recommended for China Mainland Users",
|
||
"e.g., us-central1 or JSON format for model-specific regions": "e.g., us-central1 or JSON format for model-specific regions",
|
||
"e.g., v2.1": "e.g., v2.1",
|
||
"Each backup code can only be used once.": "Each backup code can only be used once.",
|
||
"Each item must be an object with a single key-value pair.": "Each item must be an object with a single key-value pair.",
|
||
"Each item must have exactly one key-value pair.": "Each item must have exactly one key-value pair.",
|
||
"Each line represents one keyword. Leave blank to disable the list but keep the switch states.": "Each line represents one keyword. Leave blank to disable the list but keep the switch states.",
|
||
"Each tier supports 0~2 conditions (over len, p, c); the last tier is the catch-all without conditions. Use len (full input length, including cache hits) for tier conditions to avoid mis-routing when cache hits reduce p.": "Each tier supports 0~2 conditions (over len, p, c); the last tier is the catch-all without conditions. Use len (full input length, including cache hits) for tier conditions to avoid mis-routing when cache hits reduce p.",
|
||
"Earn rewards when your referrals add funds. Transfer accumulated rewards to your balance anytime.": "Earn rewards when your referrals add funds. Transfer accumulated rewards to your balance anytime.",
|
||
"Edit": "Edit",
|
||
"Edit {{title}}": "Edit {{title}}",
|
||
"Edit all channels with tag:": "Edit all channels with tag:",
|
||
"Edit Announcement": "Edit Announcement",
|
||
"Edit API Shortcut": "Edit API Shortcut",
|
||
"Edit Channel": "Edit Channel",
|
||
"Edit chat preset": "Edit chat preset",
|
||
"Edit discount tier": "Edit discount tier",
|
||
"Edit FAQ": "Edit FAQ",
|
||
"Edit group rate limit": "Edit group rate limit",
|
||
"Edit model": "Edit model",
|
||
"Edit Model": "Edit Model",
|
||
"Edit OAuth Provider": "Edit OAuth Provider",
|
||
"Edit payment method": "Edit payment method",
|
||
"Edit Prefill Group": "Edit Prefill Group",
|
||
"Edit product": "Edit product",
|
||
"Edit ratio override": "Edit ratio override",
|
||
"Edit Rule": "Edit Rule",
|
||
"Edit selectable group": "Edit selectable group",
|
||
"Edit Tag": "Edit Tag",
|
||
"Edit Tag:": "Edit Tag:",
|
||
"Edit Uptime Kuma Group": "Edit Uptime Kuma Group",
|
||
"Edit Vendor": "Edit Vendor",
|
||
"edit_this": "edit_this",
|
||
"Editor mode": "Editor mode",
|
||
"Email": "Email",
|
||
"Email (required for verification)": "Email (required for verification)",
|
||
"Email Address": "Email Address",
|
||
"Email Alias Restriction": "Email Alias Restriction",
|
||
"Email bound successfully!": "Email bound successfully!",
|
||
"Email Domain Restriction": "Email Domain Restriction",
|
||
"Email Domain Whitelist": "Email Domain Whitelist",
|
||
"Email Field": "Email Field",
|
||
"Email Verification": "Email Verification",
|
||
"Embeddings": "Embeddings",
|
||
"Empty value will be saved as {}.": "Empty value will be saved as {}.",
|
||
"Enable": "Enable",
|
||
"Enable 2FA": "Enable 2FA",
|
||
"Enable All": "Enable All",
|
||
"Enable check-in feature": "Enable check-in feature",
|
||
"Enable Data Dashboard": "Enable Data Dashboard",
|
||
"Enable demo mode with limited functionality": "Enable demo mode with limited functionality",
|
||
"Enable Discord OAuth": "Enable Discord OAuth",
|
||
"Enable Disk Cache": "Enable Disk Cache",
|
||
"Enable drawing features": "Enable drawing features",
|
||
"Enable filtering": "Enable filtering",
|
||
"Enable FunctionCall thoughtSignature Fill": "Enable FunctionCall thoughtSignature Fill",
|
||
"Enable GitHub OAuth": "Enable GitHub OAuth",
|
||
"Enable Groups": "Enable Groups",
|
||
"Enable if this is an OpenRouter enterprise account with special response format": "Enable if this is an OpenRouter enterprise account with special response format",
|
||
"Enable io.net deployments": "Enable io.net deployments",
|
||
"Enable io.net model deployment service in console": "Enable io.net model deployment service in console",
|
||
"Enable LinuxDO OAuth": "Enable LinuxDO OAuth",
|
||
"Enable OIDC": "Enable OIDC",
|
||
"Enable or disable this channel": "Enable or disable this channel",
|
||
"Enable or disable this model": "Enable or disable this model",
|
||
"Enable or disable top navigation modules globally.": "Enable or disable top navigation modules globally.",
|
||
"Enable Passkey": "Enable Passkey",
|
||
"Enable Performance Monitoring": "Enable Performance Monitoring",
|
||
"Enable rate limiting": "Enable rate limiting",
|
||
"Enable Request Passthrough": "Enable Request Passthrough",
|
||
"Enable selected channels": "Enable selected channels",
|
||
"Enable selected models": "Enable selected models",
|
||
"Enable SSL/TLS": "Enable SSL/TLS",
|
||
"Enable SSRF Protection": "Enable SSRF Protection",
|
||
"Enable streaming mode for the test request.": "Enable streaming mode for the test request.",
|
||
"Enable Telegram OAuth": "Enable Telegram OAuth",
|
||
"Enable test mode for Creem payments": "Enable test mode for Creem payments",
|
||
"Enable this key?": "Enable this key?",
|
||
"Enable Turnstile": "Enable Turnstile",
|
||
"Enable Two-factor Authentication or Passkey in your profile to unlock sensitive operations.": "Enable Two-factor Authentication or Passkey in your profile to unlock sensitive operations.",
|
||
"Enable unlimited quota for this API key": "Enable unlimited quota for this API key",
|
||
"Enable violation deduction": "Enable violation deduction",
|
||
"Enable Waffo": "Enable Waffo",
|
||
"Enable Waffo Pancake": "Enable Waffo Pancake",
|
||
"Enable WeChat Auth": "Enable WeChat Auth",
|
||
"Enable when proxying workers that fetch images over HTTP.": "Enable when proxying workers that fetch images over HTTP.",
|
||
"Enabled": "Enabled",
|
||
"Enabled all channels with tag: {{tag}}": "Enabled all channels with tag: {{tag}}",
|
||
"Enabled Status": "Enabled Status",
|
||
"Enabling...": "Enabling...",
|
||
"End": "End",
|
||
"End Error": "End Error",
|
||
"End Reason": "End Reason",
|
||
"End Time": "End Time",
|
||
"Endpoint": "Endpoint",
|
||
"Endpoint config": "Endpoint config",
|
||
"Endpoint Configuration": "Endpoint Configuration",
|
||
"Endpoint Type": "Endpoint Type",
|
||
"Endpoint:": "Endpoint:",
|
||
"Endpoints": "Endpoints",
|
||
"English": "English",
|
||
"Ensure Prefix": "Ensure Prefix",
|
||
"Ensure Suffix": "Ensure Suffix",
|
||
"Enter 6-digit code": "Enter 6-digit code",
|
||
"Enter a name": "Enter a name",
|
||
"Enter a new name": "Enter a new name",
|
||
"Enter a positive or negative amount to adjust the quota": "Enter a positive or negative amount to adjust the quota",
|
||
"Enter a valid email or leave blank": "Enter a valid email or leave blank",
|
||
"Enter a value and press Enter": "Enter a value and press Enter",
|
||
"Enter amount in {{currency}}": "Enter amount in {{currency}}",
|
||
"Enter amount in tokens": "Enter amount in tokens",
|
||
"Enter announcement content (supports Markdown & HTML)": "Enter announcement content (supports Markdown & HTML)",
|
||
"Enter announcement content (supports Markdown/HTML)": "Enter announcement content (supports Markdown/HTML)",
|
||
"Enter API Key": "Enter API Key",
|
||
"Enter API Key, format: APIKey|Region": "Enter API Key, format: APIKey|Region",
|
||
"Enter API Key, one per line, format: APIKey|Region": "Enter API Key, one per line, format: APIKey|Region",
|
||
"Enter application token": "Enter application token",
|
||
"Enter authenticator code": "Enter authenticator code",
|
||
"Enter backup code (e.g., CAWD-OQDV)": "Enter backup code (e.g., CAWD-OQDV)",
|
||
"Enter code": "Enter code",
|
||
"Enter code or backup code": "Enter code or backup code",
|
||
"Enter Completion price to calculate ratio": "Enter Completion price to calculate ratio",
|
||
"Enter Creem API key": "Enter Creem API key",
|
||
"Enter custom API endpoint URL": "Enter custom API endpoint URL",
|
||
"Enter deployment region or JSON mapping:": "Enter deployment region or JSON mapping:",
|
||
"Enter display name": "Enter display name",
|
||
"Enter HTML code (e.g., <p>About us...</p>) or a URL (e.g., https://example.com) to embed as iframe": "Enter HTML code (e.g., <p>About us...</p>) or a URL (e.g., https://example.com) to embed as iframe",
|
||
"Enter Input price to calculate ratio": "Enter Input price to calculate ratio",
|
||
"Enter key, format: AccessKey|SecretAccessKey|Region": "Enter key, format: AccessKey|SecretAccessKey|Region",
|
||
"Enter key, one per line, format: AccessKey|SecretAccessKey|Region": "Enter key, one per line, format: AccessKey|SecretAccessKey|Region",
|
||
"Enter model name": "Enter model name",
|
||
"Enter new key to update": "Enter new key to update",
|
||
"Enter new key to update, or leave empty to keep current key": "Enter new key to update, or leave empty to keep current key",
|
||
"Enter new tag name (leave empty to disband tag)": "Enter new tag name (leave empty to disband tag)",
|
||
"Enter new tag name or leave empty": "Enter new tag name or leave empty",
|
||
"Enter new token to update": "Enter new token to update",
|
||
"Enter one API key per line for batch creation": "Enter one API key per line for batch creation",
|
||
"Enter one key per line for batch creation": "Enter one key per line for batch creation",
|
||
"Enter one keyword per line": "Enter one keyword per line",
|
||
"Enter password": "Enter password",
|
||
"Enter password (8-20 characters)": "Enter password (8-20 characters)",
|
||
"Enter password (min 8 characters)": "Enter password (min 8 characters)",
|
||
"Enter quota in {{currency}}": "Enter quota in {{currency}}",
|
||
"Enter quota in tokens": "Enter quota in tokens",
|
||
"Enter secret key": "Enter secret key",
|
||
"Enter system prompt (user prompt takes priority)": "Enter system prompt (user prompt takes priority)",
|
||
"Enter tag name (optional)": "Enter tag name (optional)",
|
||
"Enter the 6-digit code from your authenticator app": "Enter the 6-digit code from your authenticator app",
|
||
"Enter the 6-digit Time-based One-Time Password or 8-character backup code from your authenticator app.": "Enter the 6-digit Time-based One-Time Password or 8-character backup code from your authenticator app.",
|
||
"Enter the complete URL, supports": "Enter the complete URL, supports",
|
||
"Enter the Coze agent ID": "Enter the Coze agent ID",
|
||
"Enter the full URL of your Gotify server": "Enter the full URL of your Gotify server",
|
||
"Enter the knowledge base ID": "Enter the knowledge base ID",
|
||
"Enter the path before /suno, usually just the domain": "Enter the path before /suno, usually just the domain",
|
||
"Enter the quota amount in {{currency}}": "Enter the quota amount in {{currency}}",
|
||
"Enter the quota amount in tokens": "Enter the quota amount in tokens",
|
||
"Enter the verification code": "Enter the verification code",
|
||
"Enter threshold": "Enter threshold",
|
||
"Enter token counts to preview the estimated cost (excluding group multipliers).": "Enter token counts to preview the estimated cost (excluding group multipliers).",
|
||
"Enter URL...": "Enter URL...",
|
||
"Enter username": "Enter username",
|
||
"Enter verification code": "Enter verification code",
|
||
"Enter webhook secret": "Enter webhook secret",
|
||
"Enter your authenticator code or a backup code": "Enter your authenticator code or a backup code",
|
||
"Enter your email": "Enter your email",
|
||
"Enter your redemption code": "Enter your redemption code",
|
||
"Enter your registered email and we will send you a link to reset your password.": "Enter your registered email and we will send you a link to reset your password.",
|
||
"Enter your username": "Enter your username",
|
||
"Enter your username or email": "Enter your username or email",
|
||
"Enterprise Account": "Enterprise Account",
|
||
"Enterprise-grade security with comprehensive permission management": "Enterprise-grade security with comprehensive permission management",
|
||
"Entrypoint (space separated)": "Entrypoint (space separated)",
|
||
"Env (JSON object)": "Env (JSON object)",
|
||
"Environment variables": "Environment variables",
|
||
"Environment variables (JSON)": "Environment variables (JSON)",
|
||
"Epay endpoint": "Epay endpoint",
|
||
"Epay Gateway": "Epay Gateway",
|
||
"Epay merchant ID": "Epay merchant ID",
|
||
"Epay secret key": "Epay secret key",
|
||
"Error": "Error",
|
||
"Error Message": "Error Message",
|
||
"Estimated cost": "Estimated cost",
|
||
"Estimated quota cost": "Estimated quota cost",
|
||
"Exact": "Exact",
|
||
"Exact Match": "Exact Match",
|
||
"Example": "Example",
|
||
"Example (all channels):": "Example (all channels):",
|
||
"Example (specific channels):": "Example (specific channels):",
|
||
"Example:": "Example:",
|
||
"example.com blocked-site.com": "example.com blocked-site.com",
|
||
"example.com company.com": "example.com company.com",
|
||
"Excellent": "Excellent",
|
||
"Exchange rate is required": "Exchange rate is required",
|
||
"Exchange rate must be greater than 0": "Exchange rate must be greater than 0",
|
||
"Exhausted": "Exhausted",
|
||
"Existing account will be reused": "Existing account will be reused",
|
||
"Existing Models ({{count}})": "Existing Models ({{count}})",
|
||
"Exists": "Exists",
|
||
"Expected a JSON array.": "Expected a JSON array.",
|
||
"Experiment with prompts and models in real time.": "Experiment with prompts and models in real time.",
|
||
"Expiration Time": "Expiration Time",
|
||
"expired": "expired",
|
||
"Expired": "Expired",
|
||
"Expired at": "Expired at",
|
||
"Expired time cannot be earlier than current time": "Expired time cannot be earlier than current time",
|
||
"Expires": "Expires",
|
||
"Expose grouped Uptime Kuma status pages directly on the dashboard": "Expose grouped Uptime Kuma status pages directly on the dashboard",
|
||
"Expose ratio API": "Expose ratio API",
|
||
"Exposes the pricing/models catalog in the top navigation.": "Exposes the pricing/models catalog in the top navigation.",
|
||
"Expression billing": "Expression billing",
|
||
"Expression editor": "Expression editor",
|
||
"Expression error": "Expression error",
|
||
"Extend": "Extend",
|
||
"Extend deployment": "Extend deployment",
|
||
"Extend failed": "Extend failed",
|
||
"Extended successfully": "Extended successfully",
|
||
"External Device": "External Device",
|
||
"External link for users to purchase quota": "External link for users to purchase quota",
|
||
"External operations": "External operations",
|
||
"External operations mode": "External operations mode",
|
||
"External Speed Test": "External Speed Test",
|
||
"Extra": "Extra",
|
||
"Extra Notes (Optional)": "Extra Notes (Optional)",
|
||
"Fail Reason": "Fail Reason",
|
||
"Fail Reason Details": "Fail Reason Details",
|
||
"Failed": "Failed",
|
||
"Failed to {{action}} user": "Failed to {{action}} user",
|
||
"Failed to adjust quota": "Failed to adjust quota",
|
||
"Failed to apply overwrite.": "Failed to apply overwrite.",
|
||
"Failed to bind email": "Failed to bind email",
|
||
"Failed to change password": "Failed to change password",
|
||
"Failed to check for updates": "Failed to check for updates",
|
||
"Failed to clean logs": "Failed to clean logs",
|
||
"Failed to complete order": "Failed to complete order",
|
||
"Failed to complete Passkey login": "Failed to complete Passkey login",
|
||
"Failed to contact GitHub releases API": "Failed to contact GitHub releases API",
|
||
"Failed to copy": "Failed to copy",
|
||
"Failed to copy channel": "Failed to copy channel",
|
||
"Failed to copy keys": "Failed to copy keys",
|
||
"Failed to copy model names": "Failed to copy model names",
|
||
"Failed to copy to clipboard": "Failed to copy to clipboard",
|
||
"Failed to create API key": "Failed to create API key",
|
||
"Failed to create channel": "Failed to create channel",
|
||
"Failed to create deployment": "Failed to create deployment",
|
||
"Failed to create provider": "Failed to create provider",
|
||
"Failed to create redemption code": "Failed to create redemption code",
|
||
"Failed to create user": "Failed to create user",
|
||
"Failed to delete {{count}} model(s)": "Failed to delete {{count}} model(s)",
|
||
"Failed to delete account": "Failed to delete account",
|
||
"Failed to delete API key": "Failed to delete API key",
|
||
"Failed to delete API keys": "Failed to delete API keys",
|
||
"Failed to delete channel": "Failed to delete channel",
|
||
"Failed to delete disabled channels": "Failed to delete disabled channels",
|
||
"Failed to delete invalid redemption codes": "Failed to delete invalid redemption codes",
|
||
"Failed to delete model": "Failed to delete model",
|
||
"Failed to delete provider": "Failed to delete provider",
|
||
"Failed to delete redemption code": "Failed to delete redemption code",
|
||
"Failed to delete user": "Failed to delete user",
|
||
"Failed to delete vendor": "Failed to delete vendor",
|
||
"Failed to disable {{count}} model(s)": "Failed to disable {{count}} model(s)",
|
||
"Failed to disable 2FA": "Failed to disable 2FA",
|
||
"Failed to disable channels": "Failed to disable channels",
|
||
"Failed to disable model": "Failed to disable model",
|
||
"Failed to disable tag channels": "Failed to disable tag channels",
|
||
"Failed to discover OIDC endpoints": "Failed to discover OIDC endpoints",
|
||
"Failed to enable {{count}} model(s)": "Failed to enable {{count}} model(s)",
|
||
"Failed to enable 2FA": "Failed to enable 2FA",
|
||
"Failed to enable channels": "Failed to enable channels",
|
||
"Failed to enable model": "Failed to enable model",
|
||
"Failed to enable tag channels": "Failed to enable tag channels",
|
||
"Failed to fetch checkin status": "Failed to fetch check-in status",
|
||
"Failed to fetch deployment details": "Failed to fetch deployment details",
|
||
"Failed to fetch models": "Failed to fetch models",
|
||
"Failed to fetch OIDC configuration. Please check the URL and network status": "Failed to fetch OIDC configuration. Please check the URL and network status",
|
||
"Failed to fetch upstream prices": "Failed to fetch upstream prices",
|
||
"Failed to fetch upstream ratios": "Failed to fetch upstream ratios",
|
||
"Failed to fetch usage": "Failed to fetch usage",
|
||
"Failed to fetch user information": "Failed to fetch user information",
|
||
"Failed to fix abilities": "Failed to fix abilities",
|
||
"Failed to generate token": "Failed to generate token",
|
||
"Failed to initialize OAuth": "Failed to initialize OAuth",
|
||
"Failed to initialize system": "Failed to initialize system",
|
||
"Failed to load": "Failed to load",
|
||
"Failed to load API keys": "Failed to load API keys",
|
||
"Failed to load billing history": "Failed to load billing history",
|
||
"Failed to load home page content": "Failed to load home page content",
|
||
"Failed to load image": "Failed to load image",
|
||
"Failed to load logs": "Failed to load logs",
|
||
"Failed to load Passkey status": "Failed to load Passkey status",
|
||
"Failed to load profile": "Failed to load profile",
|
||
"Failed to load redemption codes": "Failed to load redemption codes",
|
||
"Failed to load setup data": "Failed to load setup data",
|
||
"Failed to load setup status": "Failed to load setup status",
|
||
"Failed to load tag data": "Failed to load tag data",
|
||
"Failed to load users": "Failed to load users",
|
||
"Failed to parse group items": "Failed to parse group items",
|
||
"Failed to parse JSON file: {{name}}": "Failed to parse JSON file: {{name}}",
|
||
"Failed to query balance": "Failed to query balance",
|
||
"Failed to refresh cache stats": "Failed to refresh cache stats",
|
||
"Failed to regenerate backup codes": "Failed to regenerate backup codes",
|
||
"Failed to register Passkey": "Failed to register Passkey",
|
||
"Failed to remove Passkey": "Failed to remove Passkey",
|
||
"Failed to reset 2FA": "Failed to reset 2FA",
|
||
"Failed to reset model ratios": "Failed to reset model ratios",
|
||
"Failed to reset Passkey": "Failed to reset Passkey",
|
||
"Failed to save": "Failed to save",
|
||
"Failed to save announcements": "Failed to save announcements",
|
||
"Failed to save API info": "Failed to save API info",
|
||
"Failed to save FAQ": "Failed to save FAQ",
|
||
"Failed to save Uptime Kuma groups": "Failed to save Uptime Kuma groups",
|
||
"Failed to search API keys": "Failed to search API keys",
|
||
"Failed to search redemption codes": "Failed to search redemption codes",
|
||
"Failed to search users": "Failed to search users",
|
||
"Failed to send verification code": "Failed to send verification code",
|
||
"Failed to set tag": "Failed to set tag",
|
||
"Failed to setup 2FA": "Failed to setup 2FA",
|
||
"Failed to start {{provider}} login": "Failed to start {{provider}} login",
|
||
"Failed to start Discord login": "Failed to start Discord login",
|
||
"Failed to start GitHub login": "Failed to start GitHub login",
|
||
"Failed to start LinuxDO login": "Failed to start LinuxDO login",
|
||
"Failed to start OIDC login": "Failed to start OIDC login",
|
||
"Failed to start Passkey login": "Failed to start Passkey login",
|
||
"Failed to start Passkey registration": "Failed to start Passkey registration",
|
||
"Failed to start testing all channels": "Failed to start testing all channels",
|
||
"Failed to sync prices": "Failed to sync prices",
|
||
"Failed to sync ratios": "Failed to sync ratios",
|
||
"Failed to test all channels": "Failed to test all channels",
|
||
"Failed to test channel": "Failed to test channel",
|
||
"Failed to update all balances": "Failed to update all balances",
|
||
"Failed to update API key": "Failed to update API key",
|
||
"Failed to update API key status": "Failed to update API key status",
|
||
"Failed to update balance": "Failed to update balance",
|
||
"Failed to update channel": "Failed to update channel",
|
||
"Failed to update models": "Failed to update models",
|
||
"Failed to update profile": "Failed to update profile",
|
||
"Failed to update provider": "Failed to update provider",
|
||
"Failed to update redemption code": "Failed to update redemption code",
|
||
"Failed to update redemption code status": "Failed to update redemption code status",
|
||
"Failed to update setting": "Failed to update setting",
|
||
"Failed to update settings": "Failed to update settings",
|
||
"Failed to update tag": "Failed to update tag",
|
||
"Failed to update user": "Failed to update user",
|
||
"Failure keywords": "Failure keywords",
|
||
"Fair": "Fair",
|
||
"FAQ": "FAQ",
|
||
"FAQ added. Click \"Save Settings\" to apply.": "FAQ added. Click \"Save Settings\" to apply.",
|
||
"FAQ deleted. Click \"Save Settings\" to apply.": "FAQ deleted. Click \"Save Settings\" to apply.",
|
||
"FAQ saved successfully": "FAQ saved successfully",
|
||
"FAQ updated. Click \"Save Settings\" to apply.": "FAQ updated. Click \"Save Settings\" to apply.",
|
||
"FastGPT": "FastGPT",
|
||
"Feature in development": "Feature in development",
|
||
"Fee": "Fee",
|
||
"Fee Amount": "Fee Amount",
|
||
"Fetch available models for:": "Fetch available models for:",
|
||
"Fetch from Upstream": "Fetch from Upstream",
|
||
"Fetch Models": "Fetch Models",
|
||
"Fetched {{count}} model(s) from upstream": "Fetched {{count}} model(s) from upstream",
|
||
"Fetched {{count}} models": "Fetched {{count}} models",
|
||
"Fetching prefill groups...": "Fetching prefill groups...",
|
||
"Fetching upstream prices...": "Fetching upstream prices...",
|
||
"Fetching upstream ratios...": "Fetching upstream ratios...",
|
||
"field": "field",
|
||
"Field Mapping": "Field Mapping",
|
||
"Field passthrough controls": "Field passthrough controls",
|
||
"File Search": "File Search",
|
||
"Files to Retain": "Files to Retain",
|
||
"Fill All Models": "Fill All Models",
|
||
"Fill Codex CLI / Claude CLI Templates": "Fill Codex CLI / Claude CLI Templates",
|
||
"Fill example (all channels)": "Fill example (all channels)",
|
||
"Fill example (specific channels)": "Fill example (specific channels)",
|
||
"Fill in the following info to create a new subscription plan": "Fill in the following info to create a new subscription plan",
|
||
"Fill Related Models": "Fill Related Models",
|
||
"Fill Template": "Fill Template",
|
||
"Fill Templates": "Fill Templates",
|
||
"Fill thoughtSignature only for Gemini/Vertex channels using the OpenAI format": "Fill thoughtSignature only for Gemini/Vertex channels using the OpenAI format",
|
||
"Filled {{count}} model(s)": "Filled {{count}} model(s)",
|
||
"Filled {{count}} related model(s)": "Filled {{count}} related model(s)",
|
||
"Filter": "Filter",
|
||
"Filter by channel ID": "Filter by channel ID",
|
||
"Filter by group": "Filter by group",
|
||
"Filter by Midjourney task ID": "Filter by Midjourney task ID",
|
||
"Filter by model name...": "Filter by model name...",
|
||
"Filter by model...": "Filter by model...",
|
||
"Filter by name or ID...": "Filter by name or ID...",
|
||
"Filter by name or key...": "Filter by name or key...",
|
||
"Filter by name, ID, or key...": "Filter by name, ID, or key...",
|
||
"Filter by price field": "Filter by price field",
|
||
"Filter by ratio type": "Filter by ratio type",
|
||
"Filter by request ID": "Filter by request ID",
|
||
"Filter by task ID": "Filter by task ID",
|
||
"Filter by token name": "Filter by token name",
|
||
"Filter by username": "Filter by username",
|
||
"Filter by username, name or email...": "Filter by username, name or email...",
|
||
"Filter Dashboard Models": "Filter Dashboard Models",
|
||
"Filter models by type, endpoint, vendor, group and tags": "Filter models by type, endpoint, vendor, group and tags",
|
||
"Filter models...": "Filter models...",
|
||
"Filter...": "Filter...",
|
||
"Filters": "Filters",
|
||
"Final Consumed": "Final Consumed",
|
||
"Final cost = base × multiplier when conditions match": "Final cost = base × multiplier when conditions match",
|
||
"Final price multiplier (0.95 = 5% discount": "Final price multiplier (0.95 = 5% discount",
|
||
"Fine-tune Midjourney integration and guardrails.": "Fine-tune Midjourney integration and guardrails.",
|
||
"Finish Time": "Finish Time",
|
||
"First/Last Frame to Video": "First/Last Frame to Video",
|
||
"Fix Abilities": "Fix Abilities",
|
||
"Fixed abilities: {{success}} succeeded, {{fails}} failed": "Fixed abilities: {{success}} succeeded, {{fails}} failed",
|
||
"Fixed price": "Fixed price",
|
||
"Fixed price (USD)": "Fixed price (USD)",
|
||
"FluentRead extension not detected. Please ensure it is installed and active.": "FluentRead extension not detected. Please ensure it is installed and active.",
|
||
"Follow the guided steps to prepare your workspace before the first login.": "Follow the guided steps to prepare your workspace before the first login.",
|
||
"Footer": "Footer",
|
||
"Footer text displayed at the bottom of pages": "Footer text displayed at the bottom of pages",
|
||
"footer.columns.about.links.aboutProject": "About Project",
|
||
"footer.columns.about.links.contact": "Contact Us",
|
||
"footer.columns.about.links.features": "Features",
|
||
"footer.columns.about.title": "About Us",
|
||
"footer.columns.docs.links.apiDocs": "API Documentation",
|
||
"footer.columns.docs.links.installation": "Installation Guide",
|
||
"footer.columns.docs.links.quickStart": "Quick Start",
|
||
"footer.columns.docs.title": "Documentation",
|
||
"footer.columns.related.links.midjourney": "Midjourney-Proxy",
|
||
"footer.columns.related.links.neko": "neko-api-key-tool",
|
||
"footer.columns.related.links.oneApi": "One API",
|
||
"footer.columns.related.title": "Related Projects",
|
||
"footer.defaultCopyright": "All rights reserved.",
|
||
"For channels added after May 10, 2025, no need to remove \".\" from model names during deployment": "For channels added after May 10, 2025, no need to remove \".\" from model names during deployment",
|
||
"For private deployments, format: https://fastgpt.run/api/openapi": "For private deployments, format: https://fastgpt.run/api/openapi",
|
||
"Force AUTH LOGIN": "Force AUTH LOGIN",
|
||
"Force Format": "Force Format",
|
||
"Force format response to OpenAI standard (OpenAI channel only)": "Force format response to OpenAI standard (OpenAI channel only)",
|
||
"Force SMTP authentication using AUTH LOGIN method": "Force SMTP authentication using AUTH LOGIN method",
|
||
"Forgot password": "Forgot password",
|
||
"Forgot password?": "Forgot password?",
|
||
"Form reset to saved values": "Form reset to saved values",
|
||
"Format": "Format",
|
||
"Format JSON": "Format JSON",
|
||
"Format:": "Format:",
|
||
"Format: Access Key ID|Secret Access Key": "Format: Access Key ID|Secret Access Key",
|
||
"Format: AccessKey|SecretKey (or just ApiKey if upstream is New API)": "Format: AccessKey|SecretKey (or just ApiKey if upstream is New API)",
|
||
"Format: Ak|Sk|Region": "Format: Ak|Sk|Region",
|
||
"Format: APIKey-AppId, e.g., fastgpt-0sp2gtvfdgyi4k30jwlgwf1i-64f335d84283f05518e9e041": "Format: APIKey-AppId, e.g., fastgpt-0sp2gtvfdgyi4k30jwlgwf1i-64f335d84283f05518e9e041",
|
||
"Format: APIKey|SecretKey": "Format: APIKey|SecretKey",
|
||
"Format: APPID|APISecret|APIKey": "Format: APPID|APISecret|APIKey",
|
||
"Format: AppId|SecretId|SecretKey": "Format: AppId|SecretId|SecretKey",
|
||
"Forward requests directly to upstream providers without any post-processing.": "Forward requests directly to upstream providers without any post-processing.",
|
||
"Free: {{free}} / Total: {{total}}": "Free: {{free}} / Total: {{total}}",
|
||
"Friendly name to identify this channel": "Friendly name to identify this channel",
|
||
"From Address": "From Address",
|
||
"From IO.NET deployment": "From IO.NET deployment",
|
||
"From model redirect, not yet added to models list": "From model redirect, not yet added to models list",
|
||
"Frontend Theme": "Frontend Theme",
|
||
"Full API Key": "Full API Key",
|
||
"Full Base URL (supports": "Full Base URL (supports",
|
||
"Full Code": "Full Code",
|
||
"Functions": "Functions",
|
||
"GC Count": "GC Count",
|
||
"GC executed": "GC executed",
|
||
"GC execution failed": "GC execution failed",
|
||
"Gemini": "Gemini",
|
||
"Gemini will continue to auto-detect thinking mode even with the adapter disabled. Enable this only when you need finer control over pricing and budgeting.": "Gemini will continue to auto-detect thinking mode even with the adapter disabled. Enable this only when you need finer control over pricing and budgeting.",
|
||
"General": "General",
|
||
"General Settings": "General Settings",
|
||
"Generate a Codex OAuth credential and paste it into the channel key field.": "Generate a Codex OAuth credential and paste it into the channel key field.",
|
||
"Generate and manage your API access token": "Generate and manage your API access token",
|
||
"Generate credential": "Generate credential",
|
||
"Generate Lyrics": "Generate Lyrics",
|
||
"Generate Music": "Generate Music",
|
||
"Generate new backup codes for account recovery": "Generate new backup codes for account recovery",
|
||
"Generate New Codes": "Generate New Codes",
|
||
"Generated image": "Generated image",
|
||
"Generating new codes will invalidate all existing backup codes.": "Generating new codes will invalidate all existing backup codes.",
|
||
"Generating...": "Generating...",
|
||
"Generic cache": "Generic cache",
|
||
"Get notified when balance falls below this value": "Get notified when balance falls below this value",
|
||
"Get Started": "Get Started",
|
||
"GitHub": "GitHub",
|
||
"Give the group a recognizable name and optional description.": "Give the group a recognizable name and optional description.",
|
||
"Give this group a recognizable name.": "Give this group a recognizable name.",
|
||
"Global configuration and administrative tools.": "Global configuration and administrative tools.",
|
||
"Global Coverage": "Global Coverage",
|
||
"Global Model Configuration": "Global Model Configuration",
|
||
"Go Back": "Go Back",
|
||
"Go back and edit": "Go back and edit",
|
||
"Go to Dashboard": "Go to Dashboard",
|
||
"Go to first page": "Go to first page",
|
||
"Go to io.net API Keys": "Go to io.net API Keys",
|
||
"Go to last page": "Go to last page",
|
||
"Go to next page": "Go to next page",
|
||
"Go to previous page": "Go to previous page",
|
||
"Go to settings": "Go to settings",
|
||
"Go to Settings": "Go to Settings",
|
||
"Good": "Good",
|
||
"Gotify Application Token": "Gotify Application Token",
|
||
"Gotify Documentation": "Gotify Documentation",
|
||
"Gotify Server URL": "Gotify Server URL",
|
||
"gpt-3.5-turbo": "gpt-3.5-turbo",
|
||
"gpt-3.5-turbo-0125": "gpt-3.5-turbo-0125",
|
||
"gpt-4": "gpt-4",
|
||
"gpt-4, claude-3-opus, etc.": "gpt-4, claude-3-opus, etc.",
|
||
"GPU count": "GPU count",
|
||
"Grok": "Grok",
|
||
"Grok Settings": "Grok Settings",
|
||
"Group": "Group",
|
||
"Group & Quota": "Group & Quota",
|
||
"Group added. Click \"Save Settings\" to apply.": "Group added. Click \"Save Settings\" to apply.",
|
||
"Group channels by tag for batch operations": "Group channels by tag for batch operations",
|
||
"Group config overrides global limits, shares the same period": "Group config overrides global limits, shares the same period",
|
||
"Group deleted. Click \"Save Settings\" to apply.": "Group deleted. Click \"Save Settings\" to apply.",
|
||
"Group details": "Group details",
|
||
"Group identifier": "Group identifier",
|
||
"Group is required": "Group is required",
|
||
"Group name": "Group name",
|
||
"Group Name": "Group Name",
|
||
"Group name cannot be changed when editing.": "Group name cannot be changed when editing.",
|
||
"group ratio": "group ratio",
|
||
"Group Ratio": "Group Ratio",
|
||
"Group ratios": "Group ratios",
|
||
"Group updated. Click \"Save Settings\" to apply.": "Group updated. Click \"Save Settings\" to apply.",
|
||
"Group-based rate limits": "Group-based rate limits",
|
||
"Group:": "Group:",
|
||
"Group: {{ratio}}x": "Group: {{ratio}}x",
|
||
"Groups": "Groups",
|
||
"Groups *": "Groups *",
|
||
"Groups that users can select when creating API keys.": "Groups that users can select when creating API keys.",
|
||
"Guardrails": "Guardrails",
|
||
"Guest": "Guest",
|
||
"h": "h",
|
||
"Haiku Model": "Haiku Model",
|
||
"Hang tight while we finish connecting your account.": "Hang tight while we finish connecting your account.",
|
||
"Hang tight while we securely link this account to your profile.": "Hang tight while we securely link this account to your profile.",
|
||
"Hardware": "Hardware",
|
||
"Hardware type": "Hardware type",
|
||
"Has been disabled": "Disabled successfully",
|
||
"Has been enabled": "Enabled successfully",
|
||
"Has been invalidated": "Invalidated successfully",
|
||
"Have a Code?": "Have a Code?",
|
||
"Header": "Header",
|
||
"Header navigation": "Header navigation",
|
||
"Header Override": "Header Override",
|
||
"Hidden — verify to reveal": "Hidden — verify to reveal",
|
||
"Hide": "Hide",
|
||
"Hide API key": "Hide API key",
|
||
"High Performance": "High Performance",
|
||
"High-risk operation confirmation": "High-risk Operation Confirmation",
|
||
"High-risk status code retry confirmation text": "I CONFIRM",
|
||
"High-risk status code retry input mismatch": "The entered text does not match, please try again.",
|
||
"High-risk status code retry input placeholder": "Please type the confirmation text above",
|
||
"High-risk status code retry risk check 1": "I understand that retrying on these status codes may cause the upstream provider to charge normally, and the charges cannot be recovered.",
|
||
"High-risk status code retry risk check 2": "I understand that these status codes typically indicate that the request has been processed successfully by the upstream provider, and retrying may result in duplicate billing.",
|
||
"High-risk status code retry risk check 3": "I acknowledge that these configurations may cause significant financial losses and accept all related risks.",
|
||
"High-risk status code retry risk check 4": "I have carefully reviewed the above status code redirect rules and confirm they are correct.",
|
||
"High-risk status code retry risk disclaimer": "The following status code redirect rules contain high-risk configurations. Retrying on these status codes may cause normal upstream charges that cannot be recovered. Please carefully verify these configurations.",
|
||
"Higher priority channels are selected first": "Higher priority channels are selected first",
|
||
"Historical Usage": "Historical Usage",
|
||
"History of Midjourney-style image tasks.": "History of Midjourney-style image tasks.",
|
||
"Hit criteria: If cached tokens exist in usage, it counts as a hit.": "Hit criteria: If cached tokens exist in usage, it counts as a hit.",
|
||
"Hit Rate": "Hit Rate",
|
||
"Hit tier": "Hit tier",
|
||
"Home": "Home",
|
||
"Home Page Content": "Home Page Content",
|
||
"Hostname or IP of your SMTP provider": "Hostname or IP of your SMTP provider",
|
||
"Hour": "Hour",
|
||
"hours": "hours",
|
||
"How client credentials are sent to the token endpoint": "How client credentials are sent to the token endpoint",
|
||
"How frequently the system tests all channels": "How frequently the system tests all channels",
|
||
"How It Works": "How It Works",
|
||
"How model mapping works": "How model mapping works",
|
||
"How much to charge for each US dollar of balance (Epay)": "How much to charge for each US dollar of balance (Epay)",
|
||
"How this model name should match requests": "How this model name should match requests",
|
||
"How to get an io.net API Key": "How to get an io.net API Key",
|
||
"How to reset my quota?": "How to reset my quota?",
|
||
"How to select keys: random or sequential polling": "How to select keys: random or sequential polling",
|
||
"How will you use the platform?": "How will you use the platform?",
|
||
"https://api.day.app/yourkey/{{title}}/{{content}}": "https://api.day.app/yourkey/{{title}}/{{content}}",
|
||
"https://api.example.com": "https://api.example.com",
|
||
"https://ark.ap-southeast.bytepluses.com": "https://ark.ap-southeast.bytepluses.com",
|
||
"https://ark.cn-beijing.volces.com": "https://ark.cn-beijing.volces.com",
|
||
"https://cloud.siliconflow.cn/i/hij0YNTZ": "https://cloud.siliconflow.cn/i/hij0YNTZ",
|
||
"https://docs.example.com": "https://docs.example.com",
|
||
"https://example.com": "https://example.com",
|
||
"https://example.com/logo.png": "https://example.com/logo.png",
|
||
"https://example.com/qr-code.png": "https://example.com/qr-code.png",
|
||
"https://example.com/topup": "https://example.com/topup",
|
||
"https://example.com/webhook": "https://example.com/webhook",
|
||
"https://gateway.example.com": "https://gateway.example.com",
|
||
"https://github.com/QuantumNous/new-api": "https://github.com/QuantumNous/new-api",
|
||
"https://gotify.example.com": "https://gotify.example.com",
|
||
"https://pay.example.com": "https://pay.example.com",
|
||
"https://provider.com/.well-known/openid-configuration": "https://provider.com/.well-known/openid-configuration",
|
||
"https://status.example.com": "https://status.example.com",
|
||
"https://wechat-server.example.com": "https://wechat-server.example.com",
|
||
"https://worker.example.workers.dev": "https://worker.example.workers.dev",
|
||
"https://your-server.example.com": "https://your-server.example.com",
|
||
"Human-readable name shown to users during Passkey prompts.": "Human-readable name shown to users during Passkey prompts.",
|
||
"I confirm enabling high-risk retry": "I Confirm Enabling High-risk Retry",
|
||
"I have read and agree to the": "I have read and agree to the",
|
||
"I understand that disabling 2FA will remove all protection and backup codes": "I understand that disabling 2FA will remove all protection and backup codes",
|
||
"Icon": "Icon",
|
||
"Icon file must be 100 KB or smaller": "Icon file must be 100 KB or smaller",
|
||
"Icon identifier (e.g. github, gitlab)": "Icon identifier (e.g. github, gitlab)",
|
||
"ID": "ID",
|
||
"If an upstream error contains any of these keywords (case insensitive), the channel will be disabled automatically.": "If an upstream error contains any of these keywords (case insensitive), the channel will be disabled automatically.",
|
||
"If authorization succeeds, the generated JSON will be inserted into the key field. You still need to save the channel to persist it.": "If authorization succeeds, the generated JSON will be inserted into the key field. You still need to save the channel to persist it.",
|
||
"If connecting to upstream One API or New API relay projects, use OpenAI type instead unless you know what you are doing": "If connecting to upstream One API or New API relay projects, use OpenAI type instead unless you know what you are doing",
|
||
"If the affinity channel fails and retry succeeds on another channel, update affinity to the successful channel.": "If the affinity channel fails and retry succeeds on another channel, update affinity to the successful channel.",
|
||
"Image": "Image",
|
||
"Image Generation": "Image Generation",
|
||
"Image In": "Image In",
|
||
"Image input": "Image input",
|
||
"Image Out": "Image Out",
|
||
"Image Preview": "Image Preview",
|
||
"Image ratio": "Image ratio",
|
||
"Image to Video": "Image to Video",
|
||
"Image Tokens": "Image Tokens",
|
||
"Import to CC Switch": "Import to CC Switch",
|
||
"In Progress": "In Progress",
|
||
"In:": "In:",
|
||
"Include Group": "Include Group",
|
||
"Include Model": "Include Model",
|
||
"Include Rule Name": "Include Rule Name",
|
||
"Including failed requests, 0 = unlimited": "Including failed requests, 0 = unlimited",
|
||
"Index": "Index",
|
||
"Initial quota given to new users": "Initial quota given to new users",
|
||
"Initialization failed, please try again.": "Initialization failed, please try again.",
|
||
"Initialize": "Initialize",
|
||
"Initialize system": "Initialize system",
|
||
"Initializing…": "Initializing…",
|
||
"Inpaint": "Inpaint",
|
||
"Input": "Input",
|
||
"Input mode": "Input mode",
|
||
"Input price": "Input price",
|
||
"Input tokens": "Input tokens",
|
||
"Input Tokens": "Input Tokens",
|
||
"Inspect user prompts": "Inspect user prompts",
|
||
"Instance": "Instance",
|
||
"Integrations": "Integrations",
|
||
"Inter-group overrides": "Inter-group overrides",
|
||
"Inter-group ratio overrides": "Inter-group ratio overrides",
|
||
"Internal notes (not shown to users)": "Internal notes (not shown to users)",
|
||
"Internal Server Error!": "Internal Server Error!",
|
||
"Invalid chat link. Please contact the administrator.": "Invalid chat link. Please contact the administrator.",
|
||
"Invalid chat link. Please contact your administrator.": "Invalid chat link. Please contact your administrator.",
|
||
"Invalid code": "Invalid code",
|
||
"Invalid JSON": "Invalid JSON",
|
||
"Invalid JSON format": "Invalid JSON format",
|
||
"Invalid JSON format or values out of allowed range": "Invalid JSON format or values out of allowed range",
|
||
"Invalid JSON in parameter override template": "Invalid JSON in parameter override template",
|
||
"Invalid JSON string.": "Invalid JSON string.",
|
||
"Invalid model mapping format": "Invalid model mapping format",
|
||
"Invalid Passkey registration response": "Invalid Passkey registration response",
|
||
"Invalid Passkey response": "Invalid Passkey response",
|
||
"Invalid payment redirect URL": "Invalid payment redirect URL",
|
||
"Invalid reset link, please request a new password reset": "Invalid reset link, please request a new password reset",
|
||
"Invalid reset link, please request a new password reset.": "Invalid reset link, please request a new password reset.",
|
||
"Invalid rules JSON format": "Invalid rules JSON format",
|
||
"Invalid status code mapping entries: {{entries}}": "Invalid status code mapping entries: {{entries}}",
|
||
"Invalidate": "Invalidate",
|
||
"Invalidated": "Invalidated",
|
||
"Invitation Code": "Invitation Code",
|
||
"Invitation Quota": "Invitation Quota",
|
||
"Invite Info": "Invite Info",
|
||
"Invited": "Invited",
|
||
"Invited by user ID": "Invited by user ID",
|
||
"Invited Users": "Invited Users",
|
||
"Invitee Reward": "Invitee Reward",
|
||
"Inviter": "Inviter",
|
||
"Inviter Reward": "Inviter Reward",
|
||
"Invites": "Invites",
|
||
"io.net API Key": "io.net API Key",
|
||
"io.net Deployments": "io.net Deployments",
|
||
"IP": "IP",
|
||
"IP Address": "IP Address",
|
||
"IP Filter Mode": "IP Filter Mode",
|
||
"IP Restriction": "IP Restriction",
|
||
"IP Whitelist (supports CIDR)": "IP Whitelist (supports CIDR)",
|
||
"is less than the configured maximum cache size": "is less than the configured maximum cache size",
|
||
"is the default price; ": "is the default price; ",
|
||
"It seems like the page you're looking for": "It seems like the page you're looking for",
|
||
"Items": "Items",
|
||
"Japanese": "Japanese",
|
||
"Jimeng": "Jimeng",
|
||
"Jina": "Jina",
|
||
"JSON": "JSON",
|
||
"JSON array of group identifiers. When enabled below, new tokens rotate through this list.": "JSON array of group identifiers. When enabled below, new tokens rotate through this list.",
|
||
"JSON Editor": "JSON Editor",
|
||
"JSON format supports service account JSON files": "JSON format supports service account JSON files",
|
||
"JSON map of group → description exposed when users create API keys.": "JSON map of group → description exposed when users create API keys.",
|
||
"JSON map of group → ratio applied when the user selects the group explicitly.": "JSON map of group → ratio applied when the user selects the group explicitly.",
|
||
"JSON map of model → multiplier applied to quota billing.": "JSON map of model → multiplier applied to quota billing.",
|
||
"JSON map of model → USD cost per request. Takes precedence over ratio based billing.": "JSON map of model → USD cost per request. Takes precedence over ratio based billing.",
|
||
"JSON Mode": "JSON Mode",
|
||
"JSON must be an object": "JSON must be an object",
|
||
"JSON object:": "JSON object:",
|
||
"JSON-based access control rules. Leave empty to allow all users.": "JSON-based access control rules. Leave empty to allow all users.",
|
||
"Just now": "Just now",
|
||
"JustSong": "JustSong",
|
||
"K": "K",
|
||
"Keep enabled if you need to proxy requests for different upstream accounts.": "Keep enabled if you need to proxy requests for different upstream accounts.",
|
||
"Keep this above 1 minute to avoid heavy database load": "Keep this above 1 minute to avoid heavy database load",
|
||
"Keep-alive Ping": "Keep-alive Ping",
|
||
"Key": "Key",
|
||
"Key Fingerprint": "Key Fingerprint",
|
||
"Key Sources": "Key Sources",
|
||
"Key Summary": "Key Summary",
|
||
"Key Update Mode": "Key Update Mode",
|
||
"Kling": "Kling",
|
||
"Knowledge Base ID *": "Knowledge Base ID *",
|
||
"Landing page with system overview.": "Landing page with system overview.",
|
||
"Last Login": "Last Login",
|
||
"Last Seen": "Last Seen",
|
||
"Last Tested": "Last Tested",
|
||
"Last updated:": "Last updated:",
|
||
"Last Used": "Last Used",
|
||
"Last used:": "Last used:",
|
||
"Layout": "Layout",
|
||
"Learn more": "Learn more",
|
||
"Learn more:": "Learn more:",
|
||
"Leave": "Leave",
|
||
"Leave blank to keep the existing credential": "Leave blank to keep the existing credential",
|
||
"Leave blank to keep the existing key": "Leave blank to keep the existing key",
|
||
"Leave blank unless rotating the secret": "Leave blank unless rotating the secret",
|
||
"Leave empty for never expires": "Leave empty for never expires",
|
||
"Leave empty to disable the agreement requirement. Supports Markdown, HTML, or a full URL to redirect users.": "Leave empty to disable the agreement requirement. Supports Markdown, HTML, or a full URL to redirect users.",
|
||
"Leave empty to disable the privacy policy requirement. Supports Markdown, HTML, or a full URL to redirect users.": "Leave empty to disable the privacy policy requirement. Supports Markdown, HTML, or a full URL to redirect users.",
|
||
"Leave empty to disband the tag": "Leave empty to disband the tag",
|
||
"Leave empty to keep existing key": "Leave empty to keep existing key",
|
||
"Leave empty to keep unchanged": "Leave empty to keep unchanged",
|
||
"Leave empty to use account email": "Leave empty to use account email",
|
||
"Leave empty to use default": "Leave empty to use default",
|
||
"Leave empty to use system temp directory": "Leave empty to use system temp directory",
|
||
"Leave empty to use username": "Leave empty to use username",
|
||
"Less": "Less",
|
||
"Light": "Light",
|
||
"Lightning Fast": "Lightning Fast",
|
||
"Limit period": "Limit period",
|
||
"Limit Reached": "Limit Reached",
|
||
"Limit which models can be used with this key": "Limit which models can be used with this key",
|
||
"Limited": "Limited",
|
||
"LingYiWanWu": "LingYiWanWu",
|
||
"Link to your documentation site": "Link to your documentation site",
|
||
"LinuxDO": "LinuxDO",
|
||
"LinuxDO Client ID": "LinuxDO Client ID",
|
||
"LinuxDO Client Secret": "LinuxDO Client Secret",
|
||
"List of models supported by this channel. Use comma to separate multiple models.": "List of models supported by this channel. Use comma to separate multiple models.",
|
||
"List of origins (one per line) allowed for Passkey registration and authentication.": "List of origins (one per line) allowed for Passkey registration and authentication.",
|
||
"List view": "List view",
|
||
"LLM prompt helper": "LLM prompt helper",
|
||
"Load Balancing": "Load Balancing",
|
||
"Load template...": "Load template...",
|
||
"Loader": "Loader",
|
||
"Loading configuration": "Loading configuration",
|
||
"Loading content settings...": "Loading content settings...",
|
||
"Loading current models...": "Loading current models...",
|
||
"Loading failed": "Loading failed",
|
||
"Loading maintenance settings...": "Loading maintenance settings...",
|
||
"Loading settings...": "Loading settings...",
|
||
"Loading setup status…": "Loading setup status…",
|
||
"Loading...": "Loading...",
|
||
"Local": "Local",
|
||
"Local Billing": "Local Billing",
|
||
"Local models": "Local models",
|
||
"Locations": "Locations",
|
||
"Locked": "Locked",
|
||
"log": "log",
|
||
"Log Details": "Log Details",
|
||
"Log Directory": "Log Directory",
|
||
"Log File Count": "Log File Count",
|
||
"Log files older than {{value}} days will be deleted.": "Log files older than {{value}} days will be deleted.",
|
||
"Log IP address for usage and error logs": "Log IP address for usage and error logs",
|
||
"Log Maintenance": "Log Maintenance",
|
||
"Log Type": "Log Type",
|
||
"Login failed": "Login failed",
|
||
"Logo": "Logo",
|
||
"Logo URL": "Logo URL",
|
||
"Logs": "Logs",
|
||
"m": "m",
|
||
"Maintain a list of common questions for the dashboard help panel": "Maintain a list of common questions for the dashboard help panel",
|
||
"Maintenance": "Maintenance",
|
||
"Make it easier for teammates to pick the right group.": "Make it easier for teammates to pick the right group.",
|
||
"Manage": "Manage",
|
||
"Manage account bindings for this user": "Manage account bindings for this user",
|
||
"Manage and configure": "Manage and configure",
|
||
"Manage API channels and provider configurations": "Manage API channels and provider configurations",
|
||
"Manage Bindings": "Manage Bindings",
|
||
"Manage catalog visibility and pricing.": "Manage catalog visibility and pricing.",
|
||
"Manage custom OAuth providers for user authentication": "Manage custom OAuth providers for user authentication",
|
||
"Manage Keys": "Manage Keys",
|
||
"Manage local models for:": "Manage local models for:",
|
||
"Manage model deployments": "Manage model deployments",
|
||
"Manage model metadata and configuration": "Manage model metadata and configuration",
|
||
"Manage multi-key status and configuration for this channel": "Manage multi-key status and configuration for this channel",
|
||
"Manage Ollama Models": "Manage Ollama Models",
|
||
"Manage redemption codes for quota top-up": "Manage redemption codes for quota top-up",
|
||
"Manage server log files. Log files accumulate over time; regular cleanup is recommended to free disk space.": "Manage server log files. Log files accumulate over time; regular cleanup is recommended to free disk space.",
|
||
"Manage subscription plan creation, pricing and status": "Manage subscription plan creation, pricing and status",
|
||
"Manage subscription plans and pricing.": "Manage subscription plans and pricing.",
|
||
"Manage Subscriptions": "Manage Subscriptions",
|
||
"Manage users and their permissions": "Manage users and their permissions",
|
||
"Manage Vendors": "Manage Vendors",
|
||
"Manage your API keys for accessing the service": "Manage your API keys for accessing the service",
|
||
"Manage your balance and payment methods": "Manage your balance and payment methods",
|
||
"Manage your security settings and account access": "Manage your security settings and account access",
|
||
"Manual Disabled": "Manual Disabled",
|
||
"Map fields from the user info response to local user attributes. Supports nested paths (e.g. ocs.data.id).": "Map fields from the user info response to local user attributes. Supports nested paths (e.g. ocs.data.id).",
|
||
"Map model identifiers to Gemini API versions. A `default` entry applies when no specific match is found.": "Map model identifiers to Gemini API versions. A `default` entry applies when no specific match is found.",
|
||
"Map request model names to actual provider model names (JSON format)": "Map request model names to actual provider model names (JSON format)",
|
||
"Map response status codes (JSON format)": "Map response status codes (JSON format)",
|
||
"Map upstream status codes to different codes": "Map upstream status codes to different codes",
|
||
"Match model name exactly": "Match model name exactly",
|
||
"Match models containing this name": "Match models containing this name",
|
||
"Match models ending with this name": "Match models ending with this name",
|
||
"Match models starting with this name": "Match models starting with this name",
|
||
"Match Type": "Match Type",
|
||
"Matched": "Matched",
|
||
"Matched Tier": "Matched Tier",
|
||
"Matching Rules": "Matching Rules",
|
||
"Max Disk Cache Size (MB)": "Max Disk Cache Size (MB)",
|
||
"Max Entries": "Max Entries",
|
||
"Max Requests (incl. failures)": "Max Requests (incl. failures)",
|
||
"Max Requests (including failures)": "Max Requests (including failures)",
|
||
"Max requests per period": "Max requests per period",
|
||
"Max Success": "Max Success",
|
||
"Max successful requests": "Max successful requests",
|
||
"Max Successful Requests": "Max Successful Requests",
|
||
"Maximum 1000 characters. Supports Markdown and HTML.": "Maximum 1000 characters. Supports Markdown and HTML.",
|
||
"Maximum 200 characters": "Maximum 200 characters",
|
||
"Maximum 500 characters. Supports Markdown and HTML.": "Maximum 500 characters. Supports Markdown and HTML.",
|
||
"Maximum check-in quota": "Maximum check-in quota",
|
||
"Maximum quota amount awarded for check-in": "Maximum quota amount awarded for check-in",
|
||
"maxRequests ≥ 0, maxSuccess ≥ 1, both ≤ 2,147,483,647": "maxRequests ≥ 0, maxSuccess ≥ 1, both ≤ 2,147,483,647",
|
||
"Memory Hits": "Memory Hits",
|
||
"Memory Threshold (%)": "Memory Threshold (%)",
|
||
"Merchant ID": "Merchant ID",
|
||
"Merchant ID is required": "Merchant ID is required",
|
||
"Message Priority": "Message Priority",
|
||
"Metadata": "Metadata",
|
||
"Midjourney": "Midjourney",
|
||
"MidjourneyPlus": "MidjourneyPlus",
|
||
"Min Top-up": "Min Top-up",
|
||
"Min Top-up:": "Min Top-up:",
|
||
"MiniMax": "MiniMax",
|
||
"Minimum check-in quota": "Minimum check-in quota",
|
||
"Minimum LinuxDO trust level required": "Minimum LinuxDO trust level required",
|
||
"Minimum quota amount awarded for check-in": "Minimum quota amount awarded for check-in",
|
||
"Minimum recharge amount in USD": "Minimum recharge amount in USD",
|
||
"Minimum recharge amount to qualify for this discount.": "Minimum recharge amount to qualify for this discount.",
|
||
"Minimum top-up (optional)": "Minimum top-up (optional)",
|
||
"Minimum top-up (USD)": "Minimum top-up (USD)",
|
||
"Minimum top-up amount must be at least 1": "Minimum top-up amount must be at least 1",
|
||
"Minimum top-up quantity": "Minimum top-up quantity",
|
||
"Minimum topup amount: {{amount}}": "Minimum topup amount: {{amount}}",
|
||
"Minimum Trust Level": "Minimum Trust Level",
|
||
"Minimum:": "Minimum:",
|
||
"Minute": "Minute",
|
||
"minutes": "minutes",
|
||
"Missing code": "Missing code",
|
||
"Missing Models": "Missing Models",
|
||
"Missing user data from Passkey login response": "Missing user data from Passkey login response",
|
||
"Mistral": "Mistral",
|
||
"Mode": "Mode",
|
||
"model": "model",
|
||
"Model": "Model",
|
||
"Model Access": "Model Access",
|
||
"Model Analytics": "Model Analytics",
|
||
"Model context usage": "Model context usage",
|
||
"Model deleted": "Model deleted",
|
||
"Model deleted successfully": "Model deleted successfully",
|
||
"Model deployment service is disabled": "Model deployment service is disabled",
|
||
"Model Description": "Model Description",
|
||
"Model disabled successfully": "Model disabled successfully",
|
||
"Model enabled successfully": "Model enabled successfully",
|
||
"Model fixed pricing": "Model fixed pricing",
|
||
"Model Group": "Model Group",
|
||
"Model Limits": "Model Limits",
|
||
"Model Mapping": "Model Mapping",
|
||
"Model Mapping (JSON)": "Model Mapping (JSON)",
|
||
"Model Mapping must be a JSON object like": "Model Mapping must be a JSON object like",
|
||
"Model mapping must be valid JSON": "Model mapping must be valid JSON",
|
||
"Model name": "Model name",
|
||
"Model Name": "Model Name",
|
||
"Model Name *": "Model Name *",
|
||
"Model name is required": "Model name is required",
|
||
"Model names copied to clipboard": "Model names copied to clipboard",
|
||
"Model not found": "Model not found",
|
||
"Model Price": "Model Price",
|
||
"Model Price Not Configured": "Model Price Not Configured",
|
||
"Model Pricing": "Model Pricing",
|
||
"Model pull failed: {{msg}}": "Model pull failed: {{msg}}",
|
||
"Model ratio": "Model ratio",
|
||
"Model ratios": "Model ratios",
|
||
"Model ratios reset successfully": "Model ratios reset successfully",
|
||
"Model Regex": "Model Regex",
|
||
"Model Regex (one per line)": "Model Regex (one per line)",
|
||
"Model to use for testing": "Model to use for testing",
|
||
"Model to use when testing channel connectivity": "Model to use when testing channel connectivity",
|
||
"Model Version *": "Model Version *",
|
||
"model(s) selected out of": "model(s) selected out of",
|
||
"model(s)? This action cannot be undone.": "model(s)? This action cannot be undone.",
|
||
"models": "models",
|
||
"Models": "Models",
|
||
"Models *": "Models *",
|
||
"Models & Groups": "Models & Groups",
|
||
"Models appended successfully": "Models appended successfully",
|
||
"Models are required": "Models are required",
|
||
"Models directory": "Models directory",
|
||
"Models fetched successfully": "Models fetched successfully",
|
||
"Models filled to form": "Models filled to form",
|
||
"Models listed here will not automatically append or remove -thinking / -nothinking suffixes.": "Models listed here will not automatically append or remove -thinking / -nothinking suffixes.",
|
||
"Models not in list, may fail to invoke": "Models not in list, may fail to invoke",
|
||
"Models that are being used but not configured in the system": "Models that are being used but not configured in the system",
|
||
"Models updated successfully": "Models updated successfully",
|
||
"Modify existing subscription plan configuration": "Modify existing subscription plan configuration",
|
||
"Module availability": "Module availability",
|
||
"MokaAI": "MokaAI",
|
||
"Monitor": "Monitor",
|
||
"Monitoring & Alerts": "Monitoring & Alerts",
|
||
"Month": "Month",
|
||
"Monthly": "Monthly",
|
||
"months": "months",
|
||
"Moonshot": "Moonshot",
|
||
"More": "More",
|
||
"more mapping": "more mapping",
|
||
"More templates...": "More templates...",
|
||
"More...": "More...",
|
||
"Move": "Move",
|
||
"Move affiliate rewards to your main balance": "Move affiliate rewards to your main balance",
|
||
"Move Header": "Move Header",
|
||
"ms": "ms",
|
||
"Multi-key channel: Keys will be": "Multi-key channel: Keys will be",
|
||
"Multi-Key Management": "Multi-Key Management",
|
||
"Multi-Key Mode (multiple keys, one channel)": "Multi-Key Mode (multiple keys, one channel)",
|
||
"Multi-Key Strategy": "Multi-Key Strategy",
|
||
"Multi-key: Polling rotation": "Multi-key: Polling rotation",
|
||
"Multi-key: Random rotation": "Multi-key: Random rotation",
|
||
"Multi-region deployment for stable global access": "Multi-region deployment for stable global access",
|
||
"Multi-user management with flexible permission allocation": "Multi-user management with flexible permission allocation",
|
||
"Multiplier": "Multiplier",
|
||
"Multiplier applied when": "Multiplier applied when",
|
||
"Multiplier applied when {{userGroup}} uses {{targetGroup}}": "Multiplier applied when {{userGroup}} uses {{targetGroup}}",
|
||
"Multiplier for audio inputs.": "Multiplier for audio inputs.",
|
||
"Multiplier for audio outputs.": "Multiplier for audio outputs.",
|
||
"Multiplier for completion tokens.": "Multiplier for completion tokens.",
|
||
"Multiplier for image processing.": "Multiplier for image processing.",
|
||
"Multiplier for prompt tokens.": "Multiplier for prompt tokens.",
|
||
"Multipliers for recharge pricing based on user groups.": "Multipliers for recharge pricing based on user groups.",
|
||
"Must be a valid URL": "Must be a valid URL",
|
||
"Must be at least 8 characters": "Must be at least 8 characters",
|
||
"My Subscriptions": "My Subscriptions",
|
||
"my-status": "my-status",
|
||
"MySQL detected": "MySQL detected",
|
||
"MySQL is a production-ready relational database. Keep your credentials secure.": "MySQL is a production-ready relational database. Keep your credentials secure.",
|
||
"MySQL is production ready. Ensure automated backups and a dedicated user with the minimal required privileges are configured.": "MySQL is production ready. Ensure automated backups and a dedicated user with the minimal required privileges are configured.",
|
||
"N/A": "N/A",
|
||
"Name": "Name",
|
||
"Name *": "Name *",
|
||
"Name for this redemption code (1-20 characters)": "Name for this redemption code (1-20 characters)",
|
||
"Name is available": "Name is available",
|
||
"Name is not available": "Name is not available",
|
||
"Name must be between {{min}} and {{max}} characters": "Name must be between {{min}} and {{max}} characters",
|
||
"Name Rule": "Name Rule",
|
||
"Name Suffix": "Name Suffix",
|
||
"name@example.com": "name@example.com",
|
||
"Native format": "Native format",
|
||
"Need a code?": "Need a code?",
|
||
"Nested JSON defining per-group rules for adding (+:), removing (-:), or appending usable groups.": "Nested JSON defining per-group rules for adding (+:), removing (-:), or appending usable groups.",
|
||
"Nested JSON: source group →": "Nested JSON: source group →",
|
||
"Network proxy for this channel (supports socks5 protocol)": "Network proxy for this channel (supports socks5 protocol)",
|
||
"Never": "Never",
|
||
"Never expires": "Never expires",
|
||
"New API": "New API",
|
||
"New API <noreply@example.com>": "New API <noreply@example.com>",
|
||
"New API Project Repository:": "New API Project Repository:",
|
||
"New Format Template": "New Format Template",
|
||
"New Group": "New Group",
|
||
"New Models ({{count}})": "New Models ({{count}})",
|
||
"New name will be:": "New name will be:",
|
||
"New password": "New password",
|
||
"New Password": "New Password",
|
||
"New password must be different from current password": "New password must be different from current password",
|
||
"New User Quota": "New User Quota",
|
||
"New version available: {{version}}": "New version available: {{version}}",
|
||
"NewAPI": "NewAPI",
|
||
"Next": "Next",
|
||
"Next branch": "Next branch",
|
||
"Next page": "Next page",
|
||
"Next reset": "Next reset",
|
||
"No About Content Set": "No About Content Set",
|
||
"No Active": "No Active",
|
||
"No additional type-specific settings for this channel type.": "No additional type-specific settings for this channel type.",
|
||
"No amount options configured. Add amounts below to get started.": "No amount options configured. Add amounts below to get started.",
|
||
"No announcements at this time": "No announcements at this time",
|
||
"No announcements yet. Click \"Add Announcement\" to create one.": "No announcements yet. Click \"Add Announcement\" to create one.",
|
||
"No API Domains yet. Click \"Add API\" to create one.": "No API Domains yet. Click \"Add API\" to create one.",
|
||
"No API keys available. Create your first API key to get started.": "No API keys available. Create your first API key to get started.",
|
||
"No API Keys Found": "No API Keys Found",
|
||
"No API routes configured": "No API routes configured",
|
||
"No available models": "No available models",
|
||
"No available Web chat links": "No available Web chat links",
|
||
"No backup": "No backup",
|
||
"No billing records found": "No billing records found",
|
||
"No Change": "No Change",
|
||
"No changes": "No changes",
|
||
"No changes made": "No changes made",
|
||
"No changes to save": "No changes to save",
|
||
"No channel selected": "No channel selected",
|
||
"No channels available. Create your first channel to get started.": "No channels available. Create your first channel to get started.",
|
||
"No channels found": "No channels found",
|
||
"No Channels Found": "No Channels Found",
|
||
"No channels selected": "No channels selected",
|
||
"No chat presets configured. Click \"Add chat preset\" to get started.": "No chat presets configured. Click \"Add chat preset\" to get started.",
|
||
"No chat presets match your search": "No chat presets match your search",
|
||
"No conflict entries available.": "No conflict entries available.",
|
||
"No conflicts match your search.": "No conflicts match your search.",
|
||
"No console output": "No console output",
|
||
"No containers": "No containers",
|
||
"No custom OAuth providers configured yet.": "No custom OAuth providers configured yet.",
|
||
"No data": "No data",
|
||
"No Data": "No Data",
|
||
"No data available": "No data available",
|
||
"No deployments available. Create one to get started.": "No deployments available. Create one to get started.",
|
||
"No Deployments Found": "No Deployments Found",
|
||
"No discount tiers configured. Click \"Add discount tier\" to get started.": "No discount tiers configured. Click \"Add discount tier\" to get started.",
|
||
"No duplicate keys found": "No duplicate keys found",
|
||
"No enabled tokens available": "No enabled tokens available",
|
||
"No endpoints configured. Switch to JSON mode or add rows to define endpoints.": "No endpoints configured. Switch to JSON mode or add rows to define endpoints.",
|
||
"No FAQ entries available": "No FAQ entries available",
|
||
"No FAQ entries yet. Click \"Add FAQ\" to create one.": "No FAQ entries yet. Click \"Add FAQ\" to create one.",
|
||
"No files match the accepted types.": "No files match the accepted types.",
|
||
"No group found.": "No group found.",
|
||
"No group-based rate limits configured. Click \"Add group\" to get started.": "No group-based rate limits configured. Click \"Add group\" to get started.",
|
||
"No groups match your search": "No groups match your search",
|
||
"No header overrides configured.": "No header overrides configured.",
|
||
"No Inviter": "No Inviter",
|
||
"No keys found": "No keys found",
|
||
"No log entries matched the selected time.": "No log entries matched the selected time.",
|
||
"No logs": "No logs",
|
||
"No Logs Found": "No Logs Found",
|
||
"No mappings configured. Click \"Add Row\" to get started.": "No mappings configured. Click \"Add Row\" to get started.",
|
||
"No matches found": "No matches found",
|
||
"No matching results": "No matching results",
|
||
"No messages yet": "No messages yet",
|
||
"No missing models found.": "No missing models found.",
|
||
"No model found.": "No model found.",
|
||
"No model mappings configured. Click \"Add Mapping\" to get started.": "No model mappings configured. Click \"Add Mapping\" to get started.",
|
||
"No models available": "No models available",
|
||
"No models available in this category": "No models available in this category",
|
||
"No models available. Create your first model to get started.": "No models available. Create your first model to get started.",
|
||
"No models fetched from upstream": "No models fetched from upstream",
|
||
"No models fetched yet.": "No models fetched yet.",
|
||
"No models found": "No models found",
|
||
"No Models Found": "No Models Found",
|
||
"No models found.": "No models found.",
|
||
"No models match your current filters.": "No models match your current filters.",
|
||
"No models match your search": "No models match your search",
|
||
"No models selected": "No models selected",
|
||
"No models to add": "No models to add",
|
||
"No models to copy": "No models to copy",
|
||
"No models to remove": "No models to remove",
|
||
"No new models to add": "No new models to add",
|
||
"No parameter overrides configured.": "No parameter overrides configured.",
|
||
"No payment methods available. Please contact administrator.": "No payment methods available. Please contact administrator.",
|
||
"No payment methods configured": "No payment methods configured",
|
||
"No payment methods configured. Click \"Add method\" or use templates to get started.": "No payment methods configured. Click \"Add method\" or use templates to get started.",
|
||
"No payment methods match your search": "No payment methods match your search",
|
||
"No plans available": "No plans available",
|
||
"No preference": "No preference",
|
||
"No prefill groups yet": "No prefill groups yet",
|
||
"No price differences found": "No price differences found",
|
||
"No processable upstream model updates for this channel": "No processable upstream model updates for this channel",
|
||
"No products configured. Click \"Add product\" to get started.": "No products configured. Click \"Add product\" to get started.",
|
||
"No products match your search": "No products match your search",
|
||
"No providers available": "No providers available",
|
||
"No Quota": "No Quota",
|
||
"No ratio differences found": "No ratio differences found",
|
||
"No records found. Try adjusting your filters.": "No records found. Try adjusting your filters.",
|
||
"No redemption codes available. Create your first redemption code to get started.": "No redemption codes available. Create your first redemption code to get started.",
|
||
"No Redemption Codes Found": "No Redemption Codes Found",
|
||
"No related models available for this channel type": "No related models available for this channel type",
|
||
"No release notes provided.": "No release notes provided.",
|
||
"No Reset": "No Reset",
|
||
"No restriction": "No restriction",
|
||
"No results for \"{{query}}\". Try adjusting your search or filters.": "No results for \"{{query}}\". Try adjusting your search or filters.",
|
||
"No results found": "No results found",
|
||
"No results found.": "No results found.",
|
||
"No Retry": "No Retry",
|
||
"No rules yet": "No rules yet",
|
||
"No rules yet. Add a group below to get started.": "No rules yet. Add a group below to get started.",
|
||
"No status code mappings configured.": "No status code mappings configured.",
|
||
"No subscription plans yet": "No subscription plans yet",
|
||
"No subscription records": "No subscription records",
|
||
"No Sync": "No Sync",
|
||
"No system announcements": "No system announcements",
|
||
"No token found.": "No token found.",
|
||
"No tools configured": "No tools configured",
|
||
"No Upgrade": "No Upgrade",
|
||
"No upstream price differences found": "No upstream price differences found",
|
||
"No upstream ratio differences found": "No upstream ratio differences found",
|
||
"No Uptime Kuma groups yet. Click \"Add Group\" to create one.": "No Uptime Kuma groups yet. Click \"Add Group\" to create one.",
|
||
"No uptime monitoring configured": "No uptime monitoring configured",
|
||
"No usage logs available. Logs will appear here once API calls are made.": "No usage logs available. Logs will appear here once API calls are made.",
|
||
"No user information available": "No user information available",
|
||
"No user selected": "No user selected",
|
||
"No users available. Try adjusting your search or filters.": "No users available. Try adjusting your search or filters.",
|
||
"No Users Found": "No Users Found",
|
||
"Node Name": "Node Name",
|
||
"Non-stream": "Non-stream",
|
||
"None": "None",
|
||
"noreply@example.com": "noreply@example.com",
|
||
"Normalized:": "Normalized:",
|
||
"Not available": "Not available",
|
||
"Not backed up": "Not backed up",
|
||
"Not bound": "Not bound",
|
||
"Not Set": "Not Set",
|
||
"Not set yet": "Not set yet",
|
||
"Not Started": "Not Started",
|
||
"Not Submitted": "Not Submitted",
|
||
"Not tested": "Not tested",
|
||
"Not used yet": "Not used yet",
|
||
"Notice": "Notice",
|
||
"Notification Email": "Notification Email",
|
||
"Notification Method": "Notification Method",
|
||
"Notifications": "Notifications",
|
||
"Number of codes to create": "Number of codes to create",
|
||
"Number of keys to create": "Number of keys to create",
|
||
"Number of times to retry failed requests (0-10)": "Number of times to retry failed requests (0-10)",
|
||
"Number of tokens per unit quota": "Number of tokens per unit quota",
|
||
"Number of users invited": "Number of users invited",
|
||
"OAuth Client ID": "OAuth Client ID",
|
||
"OAuth Client Secret": "OAuth Client Secret",
|
||
"OAuth failed": "OAuth failed",
|
||
"OAuth Integrations": "OAuth Integrations",
|
||
"OAuth start failed": "OAuth start failed",
|
||
"Observability": "Observability",
|
||
"Obtain the API key, merchant ID, and RSA key pair from the Waffo dashboard, and configure the callback URL.": "Obtain the API key, merchant ID, and RSA key pair from the Waffo dashboard, and configure the callback URL.",
|
||
"Obtain the merchant, store, product and signing keys from your Waffo dashboard. Webhook URL: <ServerAddress>/api/waffo-pancake/webhook": "Obtain the merchant, store, product and signing keys from your Waffo dashboard. Webhook URL: <ServerAddress>/api/waffo-pancake/webhook",
|
||
"of": "of",
|
||
"of 3:": "of 3:",
|
||
"off": "off",
|
||
"Official": "Official",
|
||
"Official documentation": "Official documentation",
|
||
"Official Repository": "Official Repository",
|
||
"Official Sync": "Official Sync",
|
||
"OhMyGPT": "OhMyGPT",
|
||
"OIDC": "OIDC",
|
||
"OIDC Client ID": "OIDC Client ID",
|
||
"OIDC Client Secret": "OIDC Client Secret",
|
||
"OIDC configuration fetched successfully": "OIDC configuration fetched successfully",
|
||
"OIDC discovery URL. Click \"Auto-discover\" to fetch endpoints automatically.": "OIDC discovery URL. Click \"Auto-discover\" to fetch endpoints automatically.",
|
||
"OIDC endpoints discovered successfully": "OIDC endpoints discovered successfully",
|
||
"Old Format Template": "Old Format Template",
|
||
"Old format: Direct override. New format: Supports conditional judgment and custom JSON operations.": "Old format: Direct override. New format: Supports conditional judgment and custom JSON operations.",
|
||
"Ollama": "Ollama",
|
||
"Ollama Models": "Ollama Models",
|
||
"One API": "One API",
|
||
"One domain per line": "One domain per line",
|
||
"One domain per line (only used when domain restriction is enabled)": "One domain per line (only used when domain restriction is enabled)",
|
||
"One IP or CIDR range per line": "One IP or CIDR range per line",
|
||
"One IP per line (empty for no restriction)": "One IP per line (empty for no restriction)",
|
||
"one keyword per line": "one keyword per line",
|
||
"Online payment is not enabled. Please contact the administrator.": "Online payment is not enabled. Please contact the administrator.",
|
||
"Online topup is not enabled. Please use redemption code or contact administrator.": "Online topup is not enabled. Please use redemption code or contact administrator.",
|
||
"Only allow specific email domains": "Only allow specific email domains",
|
||
"Only available for admins. When enabled, you will receive a summary notification via your selected method when the scheduled model check detects upstream model changes or check failures.": "Only available for admins. When enabled, you will receive a summary notification via your selected method when the scheduled model check detects upstream model changes or check failures.",
|
||
"Only selected fields will be overwritten. You can re-run the sync wizard if new conflicts appear.": "Only selected fields will be overwritten. You can re-run the sync wizard if new conflicts appear.",
|
||
"Only successful requests": "Only successful requests",
|
||
"Only successful requests count toward this limit.": "Only successful requests count toward this limit.",
|
||
"Only the last {{value}} log files will be retained; the rest will be deleted.": "Only the last {{value}} log files will be retained; the rest will be deleted.",
|
||
"Oops! Page Not Found!": "Oops! Page Not Found!",
|
||
"Oops! Something went wrong": "Oops! Something went wrong",
|
||
"Open": "Open",
|
||
"Open authorization page": "Open authorization page",
|
||
"Open CC Switch": "Open CC Switch",
|
||
"Open in chat": "Open in chat",
|
||
"Open in new tab": "Open in new tab",
|
||
"Open in New Tab": "Open in New Tab",
|
||
"Open menu": "Open menu",
|
||
"Open release": "Open release",
|
||
"Open the io.net console API Keys page": "Open the io.net console API Keys page",
|
||
"Open theme settings": "Open theme settings",
|
||
"OpenAI": "OpenAI",
|
||
"OpenAI Compatible": "OpenAI Compatible",
|
||
"OpenAI Organization": "OpenAI Organization",
|
||
"OpenAI Organization ID (optional)": "OpenAI Organization ID (optional)",
|
||
"OpenAI, Anthropic, etc.": "OpenAI, Anthropic, etc.",
|
||
"OpenAI, Anthropic, Google, etc.": "OpenAI, Anthropic, Google, etc.",
|
||
"OpenAIMax": "OpenAIMax",
|
||
"Opened authorization page": "Opened authorization page",
|
||
"OpenRouter": "OpenRouter",
|
||
"opens in an external client. Trigger it from the sidebar or API key actions to launch the configured application.": "opens in an external client. Trigger it from the sidebar or API key actions to launch the configured application.",
|
||
"Operation failed": "Operation failed",
|
||
"Operator Admin": "Operator Admin",
|
||
"Optimize system for self-hosted single-user usage": "Optimize system for self-hosted single-user usage",
|
||
"Optimized network architecture ensures millisecond response times": "Optimized network architecture ensures millisecond response times",
|
||
"Optional callback override. Leave blank to use server address": "Optional callback override. Leave blank to use server address",
|
||
"Optional icon identifier for the login button": "Optional icon identifier for the login button",
|
||
"Optional JSON policy to restrict access based on user info fields": "Optional JSON policy to restrict access based on user info fields",
|
||
"Optional minimum recharge amount for this method.": "Optional minimum recharge amount for this method.",
|
||
"Optional multiplier per user group used when calculating recharge pricing. Provide a JSON object such as": "Optional multiplier per user group used when calculating recharge pricing. Provide a JSON object such as",
|
||
"Optional notes about this channel": "Optional notes about this channel",
|
||
"Optional notes about when to use this group": "Optional notes about when to use this group",
|
||
"Optional ratio used when upstream cache hits occur.": "Optional ratio used when upstream cache hits occur.",
|
||
"Optional settings for advanced container configuration.": "Optional settings for advanced container configuration.",
|
||
"Optional supplementary information (max 100 characters)": "Optional supplementary information (max 100 characters)",
|
||
"Optional tag for grouping channels": "Optional tag for grouping channels",
|
||
"Opus Model": "Opus Model",
|
||
"Or continue with": "Or continue with",
|
||
"Or enter this key manually:": "Or enter this key manually:",
|
||
"Order completed successfully": "Order completed successfully",
|
||
"Order Payment Method": "Order Payment Method",
|
||
"org-...": "org-...",
|
||
"Original Model": "Original Model",
|
||
"Other": "Other",
|
||
"Output": "Output",
|
||
"Output price": "Output price",
|
||
"Output tokens": "Output tokens",
|
||
"Output Tokens": "Output Tokens",
|
||
"override": "override",
|
||
"Override": "Override",
|
||
"Override Anthropic headers, defaults, and thinking adapter behavior": "Override Anthropic headers, defaults, and thinking adapter behavior",
|
||
"Override auto-discovered endpoint": "Override auto-discovered endpoint",
|
||
"Override request headers": "Override request headers",
|
||
"Override request headers (JSON format)": "Override request headers (JSON format)",
|
||
"Override request parameters (JSON format)": "Override request parameters (JSON format)",
|
||
"Override request parameters. Cannot override": "Override request parameters. Cannot override",
|
||
"Override the endpoint used for testing. Leave empty to auto detect.": "Override the endpoint used for testing. Leave empty to auto detect.",
|
||
"overrides for matching model prefix.": "overrides for matching model prefix.",
|
||
"Overview": "Overview",
|
||
"Overwritten": "Overwritten",
|
||
"Page": "Page",
|
||
"Page {{current}} of {{total}}": "Page {{current}} of {{total}}",
|
||
"PaLM": "PaLM",
|
||
"Pan": "Pan",
|
||
"Param Override": "Param Override",
|
||
"Parameter Override": "Parameter Override",
|
||
"Parameter Override Template (JSON)": "Parameter Override Template (JSON)",
|
||
"Parameter override template must be a JSON object": "Parameter override template must be a JSON object",
|
||
"parameter.": "parameter.",
|
||
"Parameters": "Parameters",
|
||
"Parsed {{count}} service account file(s)": "Parsed {{count}} service account file(s)",
|
||
"Partial Submission": "Partial Submission",
|
||
"Pass Headers": "Pass Headers",
|
||
"Pass request body directly to upstream": "Pass request body directly to upstream",
|
||
"Pass Through Body": "Pass Through Body",
|
||
"Pass through the anthropic-beta header for beta features": "Pass through the anthropic-beta header for beta features",
|
||
"Pass through the include field for usage obfuscation": "Pass through the include field for usage obfuscation",
|
||
"Pass through the inference_geo field for Claude data residency region control": "Pass through the inference_geo field for Claude data residency region control",
|
||
"Pass through the inference_geo field for geographic routing": "Pass through the inference_geo field for geographic routing",
|
||
"Pass through the safety_identifier field": "Pass through the safety_identifier field",
|
||
"Pass through the service_tier field": "Pass through the service_tier field",
|
||
"Pass through the speed field for Claude inference speed mode control": "Pass through the speed field for Claude inference speed mode control",
|
||
"Pass-Through": "Pass-Through",
|
||
"Passkey": "Passkey",
|
||
"Passkey Authentication": "Passkey Authentication",
|
||
"Passkey is not available in this browser": "Passkey is not available in this browser",
|
||
"Passkey is not supported in this environment": "Passkey is not supported in this environment",
|
||
"Passkey is not supported on this device": "Passkey is not supported on this device",
|
||
"Passkey is not supported on this device.": "Passkey is not supported on this device.",
|
||
"Passkey Login": "Passkey Login",
|
||
"Passkey login failed": "Passkey login failed",
|
||
"Passkey login was cancelled": "Passkey login was cancelled",
|
||
"Passkey login was cancelled or timed out": "Passkey login was cancelled or timed out",
|
||
"Passkey not supported on this device": "Passkey not supported on this device",
|
||
"Passkey registered successfully": "Passkey registered successfully",
|
||
"Passkey registration was cancelled": "Passkey registration was cancelled",
|
||
"Passkey removed successfully": "Passkey removed successfully",
|
||
"Passkey reset successfully": "Passkey reset successfully",
|
||
"Password": "Password",
|
||
"Password / Access Token": "Password / Access Token",
|
||
"Password changed successfully": "Password changed successfully",
|
||
"Password copied to clipboard: {{password}}": "Password copied to clipboard: {{password}}",
|
||
"Password has been copied to clipboard": "Password has been copied to clipboard",
|
||
"Password Login": "Password Login",
|
||
"Password must be at least 8 characters": "Password must be at least 8 characters",
|
||
"Password must be at least 8 characters long": "Password must be at least 8 characters long",
|
||
"Password Registration": "Password Registration",
|
||
"Password reset and copied to clipboard: {{password}}": "Password reset and copied to clipboard: {{password}}",
|
||
"Password reset: {{password}}": "Password reset: {{password}}",
|
||
"Passwords do not match": "Passwords do not match",
|
||
"Paste the full callback URL (includes code & state)": "Paste the full callback URL (includes code & state)",
|
||
"Path": "Path",
|
||
"Path Regex (one per line)": "Path Regex (one per line)",
|
||
"Path:": "Path:",
|
||
"Pay": "Pay",
|
||
"Pay-as-you-go with real-time usage monitoring": "Pay-as-you-go with real-time usage monitoring",
|
||
"Payment Channel": "Payment Channel",
|
||
"Payment Gateway": "Payment Gateway",
|
||
"Payment initiated": "Payment initiated",
|
||
"Payment Method": "Payment Method",
|
||
"Payment method name": "Payment method name",
|
||
"Payment method name is required": "Payment method name is required",
|
||
"Payment method type": "Payment method type",
|
||
"Payment method type is required": "Payment method type is required",
|
||
"Payment methods": "Payment methods",
|
||
"Payment Methods": "Payment Methods",
|
||
"Payment page opened": "Payment page opened",
|
||
"Payment request failed": "Payment request failed",
|
||
"Payment return URL": "Payment return URL",
|
||
"Pending": "Pending",
|
||
"per": "per",
|
||
"Per 1K tokens": "Per 1K tokens",
|
||
"Per 1M tokens": "Per 1M tokens",
|
||
"per request": "per request",
|
||
"Per request": "Per request",
|
||
"Per Request": "Per Request",
|
||
"Per-call": "Per-call",
|
||
"Per-feature metered windows split by model or capability.": "Per-feature metered windows split by model or capability.",
|
||
"Per-request (fixed price)": "Per-request (fixed price)",
|
||
"Per-token": "Per-token",
|
||
"Per-token (ratio based)": "Per-token (ratio based)",
|
||
"Percentage:": "Percentage:",
|
||
"Performance": "Performance",
|
||
"Performance Monitor": "Performance Monitor",
|
||
"Performance Settings": "Performance Settings",
|
||
"Periodically check for upstream model changes": "Periodically check for upstream model changes",
|
||
"Periodically send ping frames to keep streaming connections active.": "Periodically send ping frames to keep streaming connections active.",
|
||
"Permanently delete your account and all data": "Permanently delete your account and all data",
|
||
"Permit Passkey registration on non-HTTPS origins (only recommended for development)": "Permit Passkey registration on non-HTTPS origins (only recommended for development)",
|
||
"Perplexity": "Perplexity",
|
||
"Persist your data file": "Persist your data file",
|
||
"Personal area": "Personal area",
|
||
"Personal Center Area": "Personal Center Area",
|
||
"Personal info settings": "Personal info settings",
|
||
"Personal Settings": "Personal Settings",
|
||
"Personal settings and profile management.": "Personal settings and profile management.",
|
||
"Personal use": "Personal use",
|
||
"Personal use mode": "Personal use mode",
|
||
"Pick a date": "Pick a date",
|
||
"Ping Interval (seconds)": "Ping Interval (seconds)",
|
||
"Plan": "Plan",
|
||
"Plan Name": "Plan Name",
|
||
"Plan Subtitle": "Plan Subtitle",
|
||
"Plan Title": "Plan Title",
|
||
"Planned maintenance on Friday at 22:00 UTC...": "Planned maintenance on Friday at 22:00 UTC...",
|
||
"Platform": "Platform",
|
||
"Playground": "Playground",
|
||
"Playground and chat functions": "Playground and chat functions",
|
||
"Playground experiments and live conversations.": "Playground experiments and live conversations.",
|
||
"Please agree to the legal terms first": "Please agree to the legal terms first",
|
||
"Please complete the security check to continue.": "Please complete the security check to continue.",
|
||
"Please confirm that you understand the consequences": "Please confirm that you understand the consequences",
|
||
"Please enable io.net model deployment service and configure an API key in System Settings.": "Please enable io.net model deployment service and configure an API key in System Settings.",
|
||
"Please enable Two-factor Authentication or Passkey before proceeding": "Please enable Two-factor Authentication or Passkey before proceeding",
|
||
"Please enter a name": "Please enter a name",
|
||
"Please enter a new password": "Please enter a new password",
|
||
"Please enter a redemption code": "Please enter a redemption code",
|
||
"Please enter a valid duration": "Please enter a valid duration",
|
||
"Please enter a valid email address": "Please enter a valid email address",
|
||
"Please enter a valid number": "Please enter a valid number",
|
||
"Please enter a Well-Known URL first": "Please enter a Well-Known URL first",
|
||
"Please enter amount": "Please enter amount",
|
||
"Please enter an administrator username": "Please enter an administrator username",
|
||
"Please enter API key first": "Please enter API key first",
|
||
"Please enter chat client name": "Please enter chat client name",
|
||
"Please enter email and verification code": "Please enter email and verification code",
|
||
"Please enter keys first": "Please enter keys first",
|
||
"Please enter model name": "Please enter model name",
|
||
"Please enter plan title": "Please enter plan title",
|
||
"Please enter the authentication code.": "Please enter the authentication code.",
|
||
"Please enter the URL": "Please enter the URL",
|
||
"Please enter the verification code": "Please enter the verification code",
|
||
"Please enter your current password": "Please enter your current password",
|
||
"Please enter your email": "Please enter your email",
|
||
"Please enter your email first": "Please enter your email first",
|
||
"Please enter your verification code": "Please enter your verification code",
|
||
"Please enter your verification code or backup code": "Please enter your verification code or backup code",
|
||
"Please fix JSON errors before saving": "Please fix JSON errors before saving",
|
||
"Please log in with the appropriate credentials": "Please log in with the appropriate credentials",
|
||
"Please manually copy and open the authorization link": "Please manually copy and open the authorization link",
|
||
"Please select a container": "Please select a container",
|
||
"Please select a payment method": "Please select a payment method",
|
||
"Please select a primary model": "Please select a primary model",
|
||
"Please select a subscription plan": "Please select a subscription plan",
|
||
"Please select at least one channel": "Please select at least one channel",
|
||
"Please select at least one model": "Please select at least one model",
|
||
"Please select items to delete": "Please select items to delete",
|
||
"Please Select user groups that can access this channel.": "Please Select user groups that can access this channel.",
|
||
"Please set Ollama API Base URL first": "Please set Ollama API Base URL first",
|
||
"Please try again later.": "Please try again later.",
|
||
"Please upload key file(s)": "Please upload key file(s)",
|
||
"Please wait a moment, human check is initializing...": "Please wait a moment, human check is initializing...",
|
||
"Policy JSON": "Policy JSON",
|
||
"Polling": "Polling",
|
||
"Polling mode requires Redis and memory cache, otherwise performance will be significantly degraded": "Polling mode requires Redis and memory cache, otherwise performance will be significantly degraded",
|
||
"Poor": "Poor",
|
||
"Port": "Port",
|
||
"Port must be a positive integer": "Port must be a positive integer",
|
||
"Post Delta": "Post Delta",
|
||
"PostgreSQL detected": "PostgreSQL detected",
|
||
"PostgreSQL offers advanced reliability and data integrity for production workloads.": "PostgreSQL offers advanced reliability and data integrity for production workloads.",
|
||
"PostgreSQL offers strong reliability guarantees. Double check your maintenance window and retention policies before going live.": "PostgreSQL offers strong reliability guarantees. Double check your maintenance window and retention policies before going live.",
|
||
"Powerful API Management Platform": "Powerful API Management Platform",
|
||
"Pre-Consume for Free Models": "Pre-Consume for Free Models",
|
||
"Pre-consumed": "Pre-consumed",
|
||
"Pre-Consumed Quota": "Pre-Consumed Quota",
|
||
"Preference saved as {{pref}}, but no active subscription. Wallet will be used automatically.": "Preference saved as {{pref}}, but no active subscription. Wallet will be used automatically.",
|
||
"Preferences": "Preferences",
|
||
"Prefill Group Management": "Prefill Group Management",
|
||
"Prefill Groups": "Prefill Groups",
|
||
"Prefill groups help you keep complex configurations in sync.": "Prefill groups help you keep complex configurations in sync.",
|
||
"Prefix": "Prefix",
|
||
"Prefix Match": "Prefix Match",
|
||
"Prefix used when displaying prices": "Prefix used when displaying prices",
|
||
"Premium chat models": "Premium chat models",
|
||
"Preparing chat keys…": "Preparing chat keys…",
|
||
"Preparing your chat link, please try again in a moment.": "Preparing your chat link, please try again in a moment.",
|
||
"Preparing your chat link…": "Preparing your chat link…",
|
||
"Prepend": "Prepend",
|
||
"Preset recharge amounts (JSON array)": "Preset recharge amounts (JSON array)",
|
||
"Preset recharge amounts displayed to users": "Preset recharge amounts displayed to users",
|
||
"Preset Template": "Preset Template",
|
||
"Preset templates": "Preset templates",
|
||
"Press Enter or comma to add tags": "Press Enter or comma to add tags",
|
||
"Press Enter to use \"{{value}}\"": "Press Enter to use \"{{value}}\"",
|
||
"Prevent server-side request forgery attacks": "Prevent server-side request forgery attacks",
|
||
"Prevent server-side request forgery attacks by controlling outbound requests.": "Prevent server-side request forgery attacks by controlling outbound requests.",
|
||
"Preview": "Preview",
|
||
"Previous": "Previous",
|
||
"Previous branch": "Previous branch",
|
||
"Previous page": "Previous page",
|
||
"Price": "Price",
|
||
"Price ($/1K calls)": "Price ($/1K calls)",
|
||
"Price (local currency / USD)": "Price (local currency / USD)",
|
||
"Price display": "Price display",
|
||
"Price display mode": "Price display mode",
|
||
"Price estimation": "Price estimation",
|
||
"Price estimation description": "After completing the hardware type, deployment location, replica count, etc., the price will be automatically calculated.",
|
||
"Price ID": "Price ID",
|
||
"Price mode (USD per 1M tokens)": "Price mode (USD per 1M tokens)",
|
||
"price_xxx": "price_xxx",
|
||
"Price:": "Price:",
|
||
"Price: High to Low": "Price: High to Low",
|
||
"Price: Low to High": "Price: Low to High",
|
||
"Prices shown per": "Prices shown per",
|
||
"Prices synced successfully": "Prices synced successfully",
|
||
"Prices vary by usage tier and request conditions": "Prices vary by usage tier and request conditions",
|
||
"Pricing": "Pricing",
|
||
"Pricing & Display": "Pricing & Display",
|
||
"Pricing by Group": "Pricing by Group",
|
||
"Pricing Configuration": "Pricing Configuration",
|
||
"Pricing mode": "Pricing mode",
|
||
"Pricing Ratios": "Pricing Ratios",
|
||
"Pricing Type": "Pricing Type",
|
||
"Primary Model": "Primary Model",
|
||
"Prioritize reusing the last successful channel based on keys extracted from request context (sticky routing)": "Prioritize reusing the last successful channel based on keys extracted from request context (sticky routing)",
|
||
"Priority": "Priority",
|
||
"Priority (Default)": "Priority (Default)",
|
||
"Priority level from 0 (lowest) to 10 (highest), default is 5": "Priority level from 0 (lowest) to 10 (highest), default is 5",
|
||
"Priority order for automatic group assignment. New tokens rotate through this list.": "Priority order for automatic group assignment. New tokens rotate through this list.",
|
||
"Privacy Policy": "Privacy Policy",
|
||
"Private Deployment URL": "Private Deployment URL",
|
||
"Processing OAuth response...": "Processing OAuth response...",
|
||
"Processing...": "Processing...",
|
||
"Product": "Product",
|
||
"Product ID": "Product ID",
|
||
"Product ID is required": "Product ID is required",
|
||
"Product Name": "Product Name",
|
||
"Products": "Products",
|
||
"Professional team providing 24/7 technical support": "Professional team providing 24/7 technical support",
|
||
"Profile": "Profile",
|
||
"Profile updated successfully": "Profile updated successfully",
|
||
"Progress": "Progress",
|
||
"Project": "Project",
|
||
"Promote": "Promote",
|
||
"Promotion codes": "Promotion codes",
|
||
"Prompt": "Prompt",
|
||
"Prompt (EN)": "Prompt (EN)",
|
||
"Prompt cache ratio": "Prompt cache ratio",
|
||
"Prompt Caching": "Prompt Caching",
|
||
"Prompt Details": "Prompt Details",
|
||
"Prompt price ($/1M tokens)": "Prompt price ($/1M tokens)",
|
||
"Protect login and registration with Cloudflare Turnstile": "Protect login and registration with Cloudflare Turnstile",
|
||
"Provide a JSON object where each key maps to an endpoint definition.": "Provide a JSON object where each key maps to an endpoint definition.",
|
||
"Provide a valid URL starting with http:// or https://": "Provide a valid URL starting with http:// or https://",
|
||
"Provide Markdown, HTML, or an external URL for the privacy policy": "Provide Markdown, HTML, or an external URL for the privacy policy",
|
||
"Provide Markdown, HTML, or an external URL for the user agreement": "Provide Markdown, HTML, or an external URL for the user agreement",
|
||
"Provide per-category safety overrides as JSON. Use `default` for fallback values.": "Provide per-category safety overrides as JSON. Use `default` for fallback values.",
|
||
"Provide per-model header overrides as JSON. Useful for enabling beta features such as expanded context windows.": "Provide per-model header overrides as JSON. Useful for enabling beta features such as expanded context windows.",
|
||
"Provider": "Provider",
|
||
"Provider created successfully": "Provider created successfully",
|
||
"Provider deleted successfully": "Provider deleted successfully",
|
||
"Provider Name": "Provider Name",
|
||
"Provider type (OpenAI, Anthropic, etc.)": "Provider type (OpenAI, Anthropic, etc.)",
|
||
"Provider updated successfully": "Provider updated successfully",
|
||
"Proxy Address": "Proxy Address",
|
||
"Publish Date": "Publish Date",
|
||
"Published": "Published",
|
||
"Published:": "Published:",
|
||
"Pull": "Pull",
|
||
"Pull model": "Pull model",
|
||
"Pulling...": "Pulling...",
|
||
"Purchase a plan to enjoy model benefits": "Purchase a plan to enjoy model benefits",
|
||
"Purchase here": "Purchase here",
|
||
"Purchase Limit": "Purchase Limit",
|
||
"Purchase limit reached": "Purchase limit reached",
|
||
"Purchase Subscription": "Purchase Subscription",
|
||
"QR Code Image URL": "QR Code Image URL",
|
||
"QR code is not configured. Please contact support.": "QR code is not configured. Please contact support.",
|
||
"Quantity": "Quantity",
|
||
"QuantumNous": "QuantumNous",
|
||
"Query Balance": "Query Balance",
|
||
"Query Param": "Query Param",
|
||
"Querying...": "Querying...",
|
||
"Question": "Question",
|
||
"Queued": "Queued",
|
||
"Quick insert common payment methods": "Quick insert common payment methods",
|
||
"Quick Range": "Quick Range",
|
||
"Quick Setup from Preset": "Quick Setup from Preset",
|
||
"Quota": "Quota",
|
||
"Quota ({{currency}})": "Quota ({{currency}})",
|
||
"Quota adjusted successfully": "Quota adjusted successfully",
|
||
"Quota consumed before charging users": "Quota consumed before charging users",
|
||
"Quota Distribution": "Quota Distribution",
|
||
"Quota given to invited users": "Quota given to invited users",
|
||
"Quota given to users who invite others": "Quota given to users who invite others",
|
||
"Quota must be a positive number": "Quota must be a positive number",
|
||
"Quota Per Unit": "Quota Per Unit",
|
||
"Quota reminder (tokens)": "Quota reminder (tokens)",
|
||
"Quota Reset": "Quota Reset",
|
||
"Quota Settings": "Quota Settings",
|
||
"Quota Types": "Quota Types",
|
||
"Quota Warning Threshold": "Quota Warning Threshold",
|
||
"Quota:": "Quota:",
|
||
"Random": "Random",
|
||
"Randomly select a key from the pool for each request": "Randomly select a key from the pool for each request",
|
||
"Rate Limit Windows": "Rate Limit Windows",
|
||
"Rate Limiting": "Rate Limiting",
|
||
"Ratio": "Ratio",
|
||
"Ratio applied to audio completions for streaming models.": "Ratio applied to audio completions for streaming models.",
|
||
"Ratio applied to audio inputs where supported by the upstream model.": "Ratio applied to audio inputs where supported by the upstream model.",
|
||
"Ratio applied when creating cache entries for supported models.": "Ratio applied when creating cache entries for supported models.",
|
||
"Ratio mode": "Ratio mode",
|
||
"Ratio Type": "Ratio Type",
|
||
"Ratio: {{value}}": "Ratio: {{value}}",
|
||
"Ratios synced successfully": "Ratios synced successfully",
|
||
"Raw JSON": "Raw JSON",
|
||
"Raw Quota": "Raw Quota",
|
||
"Re-enable on success": "Re-enable on success",
|
||
"Re-login": "Re-login",
|
||
"Ready to initialize": "Ready to initialize",
|
||
"Ready to simplify": "Ready to simplify",
|
||
"Real exchange rate between USD and your payment gateway currency": "Real exchange rate between USD and your payment gateway currency",
|
||
"Reason": "Reason",
|
||
"Reason:": "Reason:",
|
||
"Reasoning": "Reasoning",
|
||
"Reasoning Effort": "Reasoning Effort",
|
||
"Receive Upstream Model Update Notifications": "Receive Upstream Model Update Notifications",
|
||
"Received": "Received",
|
||
"Recharge": "Recharge",
|
||
"Recharge Amount": "Recharge Amount",
|
||
"Recharge Amount (USD)": "Recharge Amount (USD)",
|
||
"Recommended": "Recommended",
|
||
"Recommended to keep this high to avoid upstream throttling.": "Recommended to keep this high to avoid upstream throttling.",
|
||
"Record IP Address": "Record IP Address",
|
||
"Record quota usage": "Record quota usage",
|
||
"Redeem": "Redeem",
|
||
"Redeem codes": "Redeem codes",
|
||
"Redeemed By": "Redeemed By",
|
||
"Redeemed:": "Redeemed:",
|
||
"redemption code": "redemption code",
|
||
"Redemption Code": "Redemption Code",
|
||
"Redemption code deleted successfully": "Redemption code deleted successfully",
|
||
"Redemption code disabled successfully": "Redemption code disabled successfully",
|
||
"Redemption code enabled successfully": "Redemption code enabled successfully",
|
||
"Redemption code updated successfully": "Redemption code updated successfully",
|
||
"Redemption code(s) created successfully": "Redemption code(s) created successfully",
|
||
"Redemption Codes": "Redemption Codes",
|
||
"redemption codes.": "redemption codes.",
|
||
"Redemption failed": "Redemption failed",
|
||
"Redemption successful! Added: {{quota}}": "Redemption successful! Added: {{quota}}",
|
||
"Redirecting to chat page...": "Redirecting to chat page...",
|
||
"Redirecting to Creem checkout...": "Redirecting to Creem checkout...",
|
||
"Redirecting to GitHub...": "Redirecting to GitHub...",
|
||
"Redirecting to payment page...": "Redirecting to payment page...",
|
||
"Reference Video": "Reference Video",
|
||
"Referral link:": "Referral link:",
|
||
"Referral Program": "Referral Program",
|
||
"Refresh": "Refresh",
|
||
"Refresh Cache": "Refresh Cache",
|
||
"Refresh credential": "Refresh credential",
|
||
"Refresh failed": "Refresh failed",
|
||
"Refresh interval (minutes)": "Refresh interval (minutes)",
|
||
"Refresh Stats": "Refresh Stats",
|
||
"Refreshing...": "Refreshing...",
|
||
"Refund": "Refund",
|
||
"Refund Details": "Refund Details",
|
||
"Regenerate": "Regenerate",
|
||
"Regenerate Backup Codes": "Regenerate Backup Codes",
|
||
"Regex Replace": "Regex Replace",
|
||
"Register Passkey": "Register Passkey",
|
||
"Registration Enabled": "Registration Enabled",
|
||
"Registry (optional)": "Registry (optional)",
|
||
"Registry secret": "Registry secret",
|
||
"Registry username": "Registry username",
|
||
"Reject Reason": "Reject Reason",
|
||
"Release details": "Release details",
|
||
"Relying Party Display Name": "Relying Party Display Name",
|
||
"Relying Party ID": "Relying Party ID",
|
||
"Remaining": "Remaining",
|
||
"Remaining quota": "Remaining quota",
|
||
"Remaining Quota ({{currency}})": "Remaining Quota ({{currency}})",
|
||
"Remaining quota units": "Remaining quota units",
|
||
"Remaining:": "Remaining:",
|
||
"Remark": "Remark",
|
||
"Remove": "Remove",
|
||
"Remove ${{amount}}": "Remove ${{amount}}",
|
||
"Remove all log entries created before the selected timestamp.": "Remove all log entries created before the selected timestamp.",
|
||
"Remove attachment": "Remove attachment",
|
||
"Remove condition": "Remove condition",
|
||
"Remove Duplicates": "Remove Duplicates",
|
||
"Remove filter": "Remove filter",
|
||
"Remove functionResponse.id field": "Remove functionResponse.id field",
|
||
"Remove Models": "Remove Models",
|
||
"Remove Passkey": "Remove Passkey",
|
||
"Remove Passkey?": "Remove Passkey?",
|
||
"Remove rule group": "Remove rule group",
|
||
"Remove tier": "Remove tier",
|
||
"Removed": "Removed",
|
||
"Removed {{removed}} duplicate key(s). Before: {{before}}, After: {{after}}": "Removed {{removed}} duplicate key(s). Before: {{before}}, After: {{after}}",
|
||
"Removed Models ({{count}})": "Removed Models ({{count}})",
|
||
"Removes Midjourney flags such as --fast, --relax, and --turbo from user prompts.": "Removes Midjourney flags such as --fast, --relax, and --turbo from user prompts.",
|
||
"Removing Passkey will require you to sign in with your password next time. You can re-register anytime.": "Removing Passkey will require you to sign in with your password next time. You can re-register anytime.",
|
||
"Rename": "Rename",
|
||
"Rename deployment": "Rename deployment",
|
||
"Rename failed": "Rename failed",
|
||
"Renamed successfully": "Renamed successfully",
|
||
"Repeat the administrator password": "Repeat the administrator password",
|
||
"Replace": "Replace",
|
||
"Replace all existing keys": "Replace all existing keys",
|
||
"Replace channel models": "Replace channel models",
|
||
"Replace mode: Will completely replace all existing keys": "Replace mode: Will completely replace all existing keys",
|
||
"replaced": "replaced",
|
||
"Replacement Model": "Replacement Model",
|
||
"Replica count": "Replica count",
|
||
"Replicate": "Replicate",
|
||
"request": "request",
|
||
"Request": "Request",
|
||
"Request Body Disk Cache": "Request Body Disk Cache",
|
||
"Request Body Memory Cache": "Request Body Memory Cache",
|
||
"Request body pass-through is enabled. The request body will be sent directly to the upstream without any conversion.": "Request body pass-through is enabled. The request body will be sent directly to the upstream without any conversion.",
|
||
"Request conversion": "Request conversion",
|
||
"Request Conversion": "Request Conversion",
|
||
"Request Count": "Request Count",
|
||
"Request failed": "Request failed",
|
||
"Request flow": "Request flow",
|
||
"Request Header Overrides": "Request Header Overrides",
|
||
"Request ID": "Request ID",
|
||
"Request Limits": "Request Limits",
|
||
"Request Model": "Request Model",
|
||
"Request Model:": "Request Model:",
|
||
"Request rule pricing": "Request rule pricing",
|
||
"Request timed out, please refresh and restart GitHub login": "Request timed out, please refresh and restart GitHub login",
|
||
"Request-based": "Request-based",
|
||
"Requests per minute": "Requests per minute",
|
||
"requests served": "requests served",
|
||
"Requests will be forwarded to this worker. Trailing slashes are removed automatically.": "Requests will be forwarded to this worker. Trailing slashes are removed automatically.",
|
||
"Requests:": "Requests:",
|
||
"Require email verification for new accounts": "Require email verification for new accounts",
|
||
"Require job success before follow-up actions": "Require job success before follow-up actions",
|
||
"Require login to view models": "Require login to view models",
|
||
"Required": "Required",
|
||
"Required events:": "Required events:",
|
||
"Required to expose Midjourney-style image generation to end users.": "Required to expose Midjourney-style image generation to end users.",
|
||
"Rerank": "Rerank",
|
||
"Reroll": "Reroll",
|
||
"Resend ({{seconds}}s)": "Resend ({{seconds}}s)",
|
||
"Reset": "Reset",
|
||
"Reset 2FA": "Reset 2FA",
|
||
"Reset all model ratios?": "Reset all model ratios?",
|
||
"Reset all settings to default values": "Reset all settings to default values",
|
||
"Reset at:": "Reset at:",
|
||
"Reset balance and used quota": "Reset balance and used quota",
|
||
"Reset Cycle": "Reset Cycle",
|
||
"Reset email sent, please check your inbox": "Reset email sent, please check your inbox",
|
||
"Reset failed": "Reset failed",
|
||
"Reset Passkey": "Reset Passkey",
|
||
"Reset password": "Reset password",
|
||
"Reset Period": "Reset Period",
|
||
"Reset ratios": "Reset ratios",
|
||
"Reset Stats": "Reset Stats",
|
||
"Reset to default": "Reset to default",
|
||
"Reset to Default": "Reset to Default",
|
||
"Reset to default configuration": "Reset to default configuration",
|
||
"Reset Two-Factor Authentication": "Reset Two-Factor Authentication",
|
||
"Resets in:": "Resets in:",
|
||
"Resolve Conflicts": "Resolve Conflicts",
|
||
"Resource Configuration": "Resource Configuration",
|
||
"Response": "Response",
|
||
"Response Time": "Response Time",
|
||
"Responses API Version": "Responses API Version",
|
||
"Restore defaults": "Restore defaults",
|
||
"Restrict user model request frequency (may impact high concurrency performance)": "Restrict user model request frequency (may impact high concurrency performance)",
|
||
"Retain last N days": "Retain last N days",
|
||
"Retain last N files": "Retain last N files",
|
||
"Retry": "Retry",
|
||
"Retry Chain": "Retry Chain",
|
||
"Retry Times": "Retry Times",
|
||
"Return Error": "Return Error",
|
||
"Return to dashboard": "Return to dashboard",
|
||
"Reveal API key": "Reveal API key",
|
||
"Reveal key": "Reveal key",
|
||
"Revenue": "Revenue",
|
||
"Review & initialize": "Review & initialize",
|
||
"Review current version and fetch release notes.": "Review current version and fetch release notes.",
|
||
"Review your payment details": "Review your payment details",
|
||
"Review your purchase details before proceeding.": "Review your purchase details before proceeding.",
|
||
"Rewards will be added directly to your balance": "Rewards will be added directly to your balance",
|
||
"Rewrite callback URLs to the local server": "Rewrite callback URLs to the local server",
|
||
"Role": "Role",
|
||
"Root": "Root",
|
||
"Route": "Route",
|
||
"Route Description": "Route Description",
|
||
"Route is required": "Route is required",
|
||
"Rows per page": "Rows per page",
|
||
"RPM": "RPM",
|
||
"RSA Private Key (Production)": "RSA Private Key (Production)",
|
||
"RSA Private Key (Sandbox)": "RSA Private Key (Sandbox)",
|
||
"Rule": "Rule",
|
||
"Rule group": "Rule group",
|
||
"rules": "rules",
|
||
"Rules JSON": "Rules JSON",
|
||
"Rules JSON must be an array": "Rules JSON must be an array",
|
||
"Run GC": "Run GC",
|
||
"Run tests for the selected models": "Run tests for the selected models",
|
||
"Running": "Running",
|
||
"s": "s",
|
||
"Safety Settings": "Safety Settings",
|
||
"Same as Local": "Same as Local",
|
||
"Sandbox mode": "Sandbox mode",
|
||
"Save": "Save",
|
||
"Save all settings": "Save all settings",
|
||
"Save Backup Codes": "Save Backup Codes",
|
||
"Save changes": "Save changes",
|
||
"Save Changes": "Save Changes",
|
||
"Save chat settings": "Save chat settings",
|
||
"Save check-in settings": "Save check-in settings",
|
||
"Save Creem settings": "Save Creem settings",
|
||
"Save drawing settings": "Save drawing settings",
|
||
"Save Epay settings": "Save Epay settings",
|
||
"Save failed": "Save failed",
|
||
"Save failed, please retry": "Save failed, please retry",
|
||
"Save general settings": "Save general settings",
|
||
"Save group ratios": "Save group ratios",
|
||
"Save io.net settings": "Save io.net settings",
|
||
"Save log settings": "Save log settings",
|
||
"Save model ratios": "Save model ratios",
|
||
"Save Models": "Save Models",
|
||
"Save monitoring rules": "Save monitoring rules",
|
||
"Save navigation": "Save navigation",
|
||
"Save notice": "Save notice",
|
||
"Save rate limits": "Save rate limits",
|
||
"Save sensitive words": "Save sensitive words",
|
||
"Save Settings": "Save Settings",
|
||
"Save sidebar modules": "Save sidebar modules",
|
||
"Save SMTP settings": "Save SMTP settings",
|
||
"Save SSRF settings": "Save SSRF settings",
|
||
"Save Stripe settings": "Save Stripe settings",
|
||
"Save these backup codes in a safe place. Each code can only be used once.": "Save these backup codes in a safe place. Each code can only be used once.",
|
||
"Save these codes in a safe place. Each code can only be used once.": "Save these codes in a safe place. Each code can only be used once.",
|
||
"Save tool prices": "Save tool prices",
|
||
"Save Waffo Pancake settings": "Save Waffo Pancake settings",
|
||
"Save Worker settings": "Save Worker settings",
|
||
"Saved successfully": "Saved successfully",
|
||
"Saving...": "Saving...",
|
||
"Scan QR Code": "Scan QR Code",
|
||
"Scan the QR code to follow the official account and reply with “验证码” to receive your verification code.": "Scan the QR code to follow the official account and send the message “验证码” to receive your verification code.",
|
||
"Scan the QR code with WeChat to bind your account": "Scan the QR code with WeChat to bind your account",
|
||
"Scan this QR code with your authenticator app (Google Authenticator, Microsoft Authenticator, etc.)": "Scan this QR code with your authenticator app (Google Authenticator, Microsoft Authenticator, etc.)",
|
||
"Scheduled channel tests": "Scheduled channel tests",
|
||
"Scope": "Scope",
|
||
"Scopes": "Scopes",
|
||
"Search": "Search",
|
||
"Search by name or URL...": "Search by name or URL...",
|
||
"Search by order number...": "Search by order number...",
|
||
"Search chat presets...": "Search chat presets...",
|
||
"Search colors...": "Search colors...",
|
||
"Search conflicting models or fields": "Search conflicting models or fields",
|
||
"Search deployments...": "Search deployments...",
|
||
"Search feature in development": "Search feature in development",
|
||
"Search group names...": "Search group names...",
|
||
"Search groups...": "Search groups...",
|
||
"Search missing models": "Search missing models",
|
||
"Search model name...": "Search model name...",
|
||
"Search models": "Search models",
|
||
"Search models or fields...": "Search models or fields...",
|
||
"Search models...": "Search models...",
|
||
"Search payment methods...": "Search payment methods...",
|
||
"Search payment types...": "Search payment types...",
|
||
"Search products...": "Search products...",
|
||
"Search tags...": "Search tags...",
|
||
"Search vendors...": "Search vendors...",
|
||
"Search...": "Search...",
|
||
"seconds": "seconds",
|
||
"Secret env (JSON object)": "Secret env (JSON object)",
|
||
"Secret environment variables (JSON)": "Secret environment variables (JSON)",
|
||
"Secret Key": "Secret Key",
|
||
"Secure & Reliable": "Secure & Reliable",
|
||
"Security": "Security",
|
||
"Security Check": "Security Check",
|
||
"Security verification": "Security verification",
|
||
"Select": "Select",
|
||
"Select a color": "Select a color",
|
||
"Select a group": "Select a group",
|
||
"Select a group type": "Select a group type",
|
||
"Select a preset...": "Select a preset...",
|
||
"Select a role": "Select a role",
|
||
"Select a timestamp before clearing logs.": "Select a timestamp before clearing logs.",
|
||
"Select a usage mode to continue": "Select a usage mode to continue",
|
||
"Select a verification method first": "Select a verification method first",
|
||
"Select all": "Select all",
|
||
"Select all (filtered)": "Select all (filtered)",
|
||
"Select all models": "Select all models",
|
||
"Select All Visible": "Select All Visible",
|
||
"Select an operation mode and enter the amount": "Select an operation mode and enter the amount",
|
||
"Select announcement type": "Select announcement type",
|
||
"Select at least one field to overwrite.": "Select at least one field to overwrite.",
|
||
"Select channel type": "Select channel type",
|
||
"Select currency": "Select currency",
|
||
"Select date": "Select date",
|
||
"Select display mode": "Select display mode",
|
||
"Select end time": "Select end time",
|
||
"Select from presets or type custom identifier.": "Select from presets or type custom identifier.",
|
||
"Select granularity": "Select granularity",
|
||
"Select groups (leave empty to keep current)": "Select groups (leave empty to keep current)",
|
||
"Select items...": "Select items...",
|
||
"Select key format": "Select key format",
|
||
"Select Language": "Select Language",
|
||
"Select layout style": "Select layout style",
|
||
"Select locations": "Select locations",
|
||
"Select Model": "Select Model",
|
||
"Select models (empty for allow all)": "Select models (empty for allow all)",
|
||
"Select models and apply to channel models list.": "Select models and apply to channel models list.",
|
||
"Select models or add custom ones": "Select models or add custom ones",
|
||
"Select models to process. Unselected \"add\" models will be ignored.": "Select models to process. Unselected \"add\" models will be ignored.",
|
||
"Select models to run batch tests.": "Select models to run batch tests.",
|
||
"Select or enter color value": "Select or enter color value",
|
||
"Select or enter model name": "Select or enter model name",
|
||
"Select or enter payment type": "Select or enter payment type",
|
||
"Select payment method": "Select payment method",
|
||
"Select preset or enter custom CSS color value.": "Select preset or enter custom CSS color value.",
|
||
"Select publish date": "Select publish date",
|
||
"Select requirement": "Select requirement",
|
||
"Select row": "Select row",
|
||
"Select sidebar style": "Select sidebar style",
|
||
"Select site direction": "Select site direction",
|
||
"Select start time": "Select start time",
|
||
"Select subscription plan": "Select subscription plan",
|
||
"Select Sync Channels": "Select Sync Channels",
|
||
"Select sync channels to compare prices": "Select sync channels to compare prices",
|
||
"Select sync channels to compare ratios": "Select sync channels to compare ratios",
|
||
"Select Sync Source": "Select Sync Source",
|
||
"Select the API endpoint region": "Select the API endpoint region",
|
||
"Select the fields you want to overwrite with upstream data. Unselected fields keep their local values.": "Select the fields you want to overwrite with upstream data. Unselected fields keep their local values.",
|
||
"Select theme preference": "Select theme preference",
|
||
"Select time granularity": "Select time granularity",
|
||
"Select vendor": "Select vendor",
|
||
"Selectable groups": "Selectable groups",
|
||
"selected": "selected",
|
||
"selected channel(s). Leave empty to remove tag.": "selected channel(s). Leave empty to remove tag.",
|
||
"Selected conflicts were overwritten successfully.": "Selected conflicts were overwritten successfully.",
|
||
"Self-Use Mode": "Self-Use Mode",
|
||
"Send": "Send",
|
||
"Send code": "Send code",
|
||
"Send email alerts when a user falls below this quota": "Send email alerts when a user falls below this quota",
|
||
"Sending...": "Sending...",
|
||
"Sensitive Words": "Sensitive Words",
|
||
"Sent the API key to FluentRead.": "Sent the API key to FluentRead.",
|
||
"Serve multiple users or teams with billing and quota control.": "Serve multiple users or teams with billing and quota control.",
|
||
"Server Address": "Server Address",
|
||
"Server IP": "Server IP",
|
||
"Server Log Management": "Server Log Management",
|
||
"Server logging is not enabled (log directory not configured)": "Server logging is not enabled (log directory not configured)",
|
||
"Server Token": "Server Token",
|
||
"Service account JSON file(s)": "Service account JSON file(s)",
|
||
"Session expired!": "Session expired!",
|
||
"Session expired?": "Session expired?",
|
||
"Set": "Set",
|
||
"Set a discount rate for a specific recharge amount threshold.": "Set a discount rate for a specific recharge amount threshold.",
|
||
"Set a secure password (min. 8 characters)": "Set a secure password (min. 8 characters)",
|
||
"Set a tag for": "Set a tag for",
|
||
"Set filters to customize your dashboard statistics and charts.": "Set filters to customize your dashboard statistics and charts.",
|
||
"Set filters to narrow down your log search results.": "Set filters to narrow down your log search results.",
|
||
"Set Header": "Set Header",
|
||
"Set Project to io.cloud when creating/selecting key": "Set Project to io.cloud when creating/selecting key",
|
||
"Set Tag": "Set Tag",
|
||
"Set tag for selected channels": "Set tag for selected channels",
|
||
"Set the user's role (cannot be Root)": "Set the user's role (cannot be Root)",
|
||
"Setting saved": "Setting saved",
|
||
"Setting up 2FA...": "Setting up 2FA...",
|
||
"Setting updated successfully": "Setting updated successfully",
|
||
"Settings": "Settings",
|
||
"Settings & Preferences": "Settings & Preferences",
|
||
"Settings updated successfully": "Settings updated successfully",
|
||
"Setup Instructions": "Setup Instructions",
|
||
"Setup Two-Factor Authentication": "Setup Two-Factor Authentication",
|
||
"Share your link and earn rewards": "Share your link and earn rewards",
|
||
"Shared configuration for all payment gateways": "Shared configuration for all payment gateways",
|
||
"Shorten": "Shorten",
|
||
"Show": "Show",
|
||
"Show All": "Show All",
|
||
"Show all providers including unbound": "Show all providers including unbound",
|
||
"Show only bound providers": "Show only bound providers",
|
||
"Show prices in currency instead of quota.": "Show prices in currency instead of quota.",
|
||
"Show token usage statistics in the UI": "Show token usage statistics in the UI",
|
||
"Showcase core capabilities with demo credentials and limited access.": "Showcase core capabilities with demo credentials and limited access.",
|
||
"Showing": "Showing",
|
||
"showing •": "showing •",
|
||
"Sidebar": "Sidebar",
|
||
"Sidebar collapsed by default for new users": "Sidebar collapsed by default for new users",
|
||
"Sidebar modules": "Sidebar modules",
|
||
"Sidebar Personal Settings": "Sidebar Personal Settings",
|
||
"Sign in": "Sign in",
|
||
"Sign In": "Sign In",
|
||
"Sign in with Passkey": "Sign in with Passkey",
|
||
"Sign out": "Sign out",
|
||
"Sign up": "Sign up",
|
||
"Signed in": "Signed in",
|
||
"Signed in successfully!": "Signed in successfully!",
|
||
"Signed in via WeChat": "Signed in via WeChat",
|
||
"Signed in with Passkey": "Signed in with Passkey",
|
||
"Signed out": "Signed out",
|
||
"Signing you in with {{provider}}": "Signing you in with {{provider}}",
|
||
"SiliconFlow": "SiliconFlow",
|
||
"Single Key": "Single Key",
|
||
"Site Key": "Site Key",
|
||
"Size:": "Size:",
|
||
"sk_xxx or rk_xxx": "sk_xxx or rk_xxx",
|
||
"Skip retry on failure": "Skip retry on failure",
|
||
"Skip to Main": "Skip to Main",
|
||
"Slug": "Slug",
|
||
"Slug can only contain letters, numbers, hyphens, and underscores": "Slug can only contain letters, numbers, hyphens, and underscores",
|
||
"Slug is required": "Slug is required",
|
||
"Slug must be less than 100 characters": "Slug must be less than 100 characters",
|
||
"Smallest USD amount users can recharge (Epay)": "Smallest USD amount users can recharge (Epay)",
|
||
"SMTP Email": "SMTP Email",
|
||
"SMTP Host": "SMTP Host",
|
||
"smtp.example.com": "smtp.example.com",
|
||
"socks5://user:pass@host:port": "socks5://user:pass@host:port",
|
||
"Soft Errors": "Soft Errors",
|
||
"Some channels failed: {{errorMsg}}": "Some channels failed: {{errorMsg}}",
|
||
"Something went wrong!": "Something went wrong!",
|
||
"Sonnet Model": "Sonnet Model",
|
||
"Sora": "Sora",
|
||
"Sort": "Sort",
|
||
"Sort by ID": "Sort by ID",
|
||
"Sort Order": "Sort Order",
|
||
"Source": "Source",
|
||
"sources": "sources",
|
||
"Space-separated OAuth scopes": "Space-separated OAuth scopes",
|
||
"Spark model version, e.g., v2.1 (version number in API URL)": "Spark model version, e.g., v2.1 (version number in API URL)",
|
||
"Special usable group rules": "Special usable group rules",
|
||
"SQLite stores all data in a single file. Make sure that file is persisted when running in containers.": "SQLite stores all data in a single file. Make sure that file is persisted when running in containers.",
|
||
"SSRF Protection": "SSRF Protection",
|
||
"Standard": "Standard",
|
||
"Start": "Start",
|
||
"Start a conversation to see messages here": "Start a conversation to see messages here",
|
||
"Start for free with generous limits. No credit card required.": "Start for free with generous limits. No credit card required.",
|
||
"Start Time": "Start Time",
|
||
"Static page describing the platform.": "Static page describing the platform.",
|
||
"Statistical count": "Statistical count",
|
||
"Statistical quota": "Statistical quota",
|
||
"Statistical tokens": "Statistical tokens",
|
||
"Statistics reset": "Statistics reset",
|
||
"Status": "Status",
|
||
"Status & Sync": "Status & Sync",
|
||
"Status Code Mapping": "Status Code Mapping",
|
||
"Status Page Slug": "Status Page Slug",
|
||
"Status:": "Status:",
|
||
"Stay": "Stay",
|
||
"Stay tuned though!": "Stay tuned though!",
|
||
"Step": "Step",
|
||
"Stop": "Stop",
|
||
"Store ID": "Store ID",
|
||
"Store ID is required": "Store ID is required",
|
||
"Stored value is not echoed back for security": "Stored value is not echoed back for security",
|
||
"stream": "stream",
|
||
"Stream": "Stream",
|
||
"Stream Mode": "Stream Mode",
|
||
"Stream Status": "Stream Status",
|
||
"Stripe": "Stripe",
|
||
"Stripe API key (leave blank unless updating)": "Stripe API key (leave blank unless updating)",
|
||
"Stripe Dashboard": "Stripe Dashboard",
|
||
"Stripe Gateway": "Stripe Gateway",
|
||
"Stripe product price ID": "Stripe product price ID",
|
||
"Stripe/Creem requires creating products on the third-party platform and entering the ID": "Stripe/Creem requires creating products on the third-party platform and entering the ID",
|
||
"Submit": "Submit",
|
||
"Submit directly": "Submit directly",
|
||
"Submit Result": "Submit Result",
|
||
"Submit Time": "Submit Time",
|
||
"Submitted": "Submitted",
|
||
"Submitting": "Submitting",
|
||
"Submitting...": "Submitting...",
|
||
"Submodel": "Submodel",
|
||
"Subscribe Now": "Subscribe Now",
|
||
"Subscription": "Subscription",
|
||
"Subscription Billing": "Subscription Billing",
|
||
"Subscription First": "Subscription First",
|
||
"Subscription Management": "Subscription Management",
|
||
"Subscription Only": "Subscription Only",
|
||
"Subscription Plans": "Subscription Plans",
|
||
"Subtract": "Subtract",
|
||
"Success": "Success",
|
||
"Successfully created {{count}} API Key(s)": "Successfully created {{count}} API Key(s)",
|
||
"Successfully created {{count}} redemption codes": "Successfully created {{count}} redemption codes",
|
||
"Successfully deleted {{count}} API key(s)": "Successfully deleted {{count}} API key(s)",
|
||
"Successfully deleted {{count}} invalid redemption codes": "Successfully deleted {{count}} invalid redemption codes",
|
||
"Successfully deleted {{count}} model(s)": "Successfully deleted {{count}} model(s)",
|
||
"Successfully disabled {{count}} model(s)": "Successfully disabled {{count}} model(s)",
|
||
"Successfully enabled {{count}} model(s)": "Successfully enabled {{count}} model(s)",
|
||
"Suffix": "Suffix",
|
||
"Suffix Match": "Suffix Match",
|
||
"SunoAPI": "SunoAPI",
|
||
"Super Admin": "Super Admin",
|
||
"Support for high concurrency with automatic load balancing": "Support for high concurrency with automatic load balancing",
|
||
"Supported Imagine Models": "Supported Imagine Models",
|
||
"Supports `-thinking`, `-thinking-": "Supports `-thinking`, `-thinking-",
|
||
"Supports HTML markup or iframe embedding. Enter HTML code directly, or provide a complete URL to automatically embed it as an iframe.": "Supports HTML markup or iframe embedding. Enter HTML code directly, or provide a complete URL to automatically embed it as an iframe.",
|
||
"Supports PNG, JPG, SVG, or WebP. Recommended size: 128×128 or smaller.": "Supports PNG, JPG, SVG, or WebP. Recommended size: 128×128 or smaller.",
|
||
"Swap Face": "Swap Face",
|
||
"Switch affinity on success": "Switch affinity on success",
|
||
"Switch between the new frontend and the classic frontend. Changes take effect after page reload.": "Switch between the new frontend and the classic frontend. Changes take effect after page reload.",
|
||
"Switch to JSON": "Switch to JSON",
|
||
"Switch to Visual": "Switch to Visual",
|
||
"Sync Endpoint": "Sync Endpoint",
|
||
"Sync Fields": "Sync Fields",
|
||
"Sync from the public upstream metadata repository.": "Sync from the public upstream metadata repository.",
|
||
"Sync this model with official upstream": "Sync this model with official upstream",
|
||
"Sync Upstream": "Sync Upstream",
|
||
"Sync Upstream Models": "Sync Upstream Models",
|
||
"Synchronize models and vendors from an upstream source": "Synchronize models and vendors from an upstream source",
|
||
"Syncing prices, please wait...": "Syncing prices, please wait...",
|
||
"System": "System",
|
||
"System Administration": "System Administration",
|
||
"System Announcements": "System Announcements",
|
||
"System Behavior": "System Behavior",
|
||
"System data statistics": "System data statistics",
|
||
"System Information": "System Information",
|
||
"System initialized successfully! Redirecting…": "System initialized successfully! Redirecting…",
|
||
"System logo": "System logo",
|
||
"System maintenance": "System maintenance",
|
||
"System Memory": "System Memory",
|
||
"System Memory Stats": "System Memory Stats",
|
||
"System Name": "System Name",
|
||
"System name is required": "System name is required",
|
||
"System Notice": "System Notice",
|
||
"System Performance Monitoring": "System Performance Monitoring",
|
||
"System Prompt": "System Prompt",
|
||
"System Prompt Concatenation": "System Prompt Concatenation",
|
||
"System Prompt Override": "System Prompt Override",
|
||
"System settings": "System settings",
|
||
"System Settings": "System Settings",
|
||
"System setup wizard": "System setup wizard",
|
||
"System task records": "System task records",
|
||
"System Version": "System Version",
|
||
"Table view": "Table view",
|
||
"Tag": "Tag",
|
||
"Tag Aggregate": "Tag Aggregate",
|
||
"Tag Mode": "Tag Mode",
|
||
"Tag Name": "Tag Name",
|
||
"Tag set successfully": "Tag set successfully",
|
||
"Tag updated successfully": "Tag updated successfully",
|
||
"Tag:": "Tag:",
|
||
"Tags": "Tags",
|
||
"Take photo": "Take photo",
|
||
"Take screenshot": "Take screenshot",
|
||
"Target group": "Target group",
|
||
"Task": "Task",
|
||
"Task ID": "Task ID",
|
||
"Task ID:": "Task ID:",
|
||
"Task logs": "Task logs",
|
||
"Task Logs": "Task Logs",
|
||
"Team Collaboration": "Team Collaboration",
|
||
"Technical Support": "Technical Support",
|
||
"Telegram": "Telegram",
|
||
"Telegram login requires widget integration; coming soon": "Telegram login requires widget integration; coming soon",
|
||
"Telegram Login Widget": "Telegram Login Widget",
|
||
"Template variables:": "Template variables:",
|
||
"Templates": "Templates",
|
||
"Templates appended": "Templates appended",
|
||
"Tencent": "Tencent",
|
||
"Termination requested": "Termination requested",
|
||
"Test All Channels": "Test All Channels",
|
||
"Test Channel Connection": "Test Channel Connection",
|
||
"Test Connection": "Test Connection",
|
||
"Test connectivity for:": "Test connectivity for:",
|
||
"Test interval (minutes)": "Test interval (minutes)",
|
||
"Test Latency": "Test Latency",
|
||
"Test Mode": "Test Mode",
|
||
"Test Model": "Test Model",
|
||
"Testing all enabled channels started. Please refresh to see results.": "Testing all enabled channels started. Please refresh to see results.",
|
||
"Testing...": "Testing...",
|
||
"Text Input": "Text Input",
|
||
"Text Output": "Text Output",
|
||
"Text to Video": "Text to Video",
|
||
"The administrator account is already initialized. You can keep your existing credentials and continue to the next step.": "The administrator account is already initialized. You can keep your existing credentials and continue to the next step.",
|
||
"The administrator configured an external link for this document.": "The administrator configured an external link for this document.",
|
||
"The administrator has not configured a privacy policy yet.": "The administrator has not configured a privacy policy yet.",
|
||
"The administrator has not configured a user agreement yet.": "The administrator has not configured a user agreement yet.",
|
||
"The administrator has not configured any about content yet. You can set it in the settings page, supporting HTML or URL.": "The administrator has not configured any about content yet. You can set it in the settings page, supporting HTML or URL.",
|
||
"The binding will complete automatically after authorization": "The binding will complete automatically after authorization",
|
||
"The effective domain for Passkey registration. Must match the current domain or be its parent domain.": "The effective domain for Passkey registration. Must match the current domain or be its parent domain.",
|
||
"The exact model identifier as used in API requests.": "The exact model identifier as used in API requests.",
|
||
"The following models have billing type conflicts (fixed price vs ratio billing). Confirm to proceed with the changes.": "The following models have billing type conflicts (fixed price vs ratio billing). Confirm to proceed with the changes.",
|
||
"The following models in the model redirect have not been added to the \"Models\" list and may fail during invocation due to missing available models:": "The following models in the model redirect have not been added to the \"Models\" list and may fail during invocation due to missing available models:",
|
||
"The mapped upstream model(s)": "The mapped upstream model(s)",
|
||
"The model you're looking for doesn't exist.": "The model you're looking for doesn't exist.",
|
||
"The name displayed across the application": "The name displayed across the application",
|
||
"The public URL of your server, used for OAuth callbacks, webhooks, and other external integrations": "The public URL of your server, used for OAuth callbacks, webhooks, and other external integrations",
|
||
"The requested chat preset does not exist or has been removed.": "The requested chat preset does not exist or has been removed.",
|
||
"The setup wizard will use this database during initialization.": "The setup wizard will use this database during initialization.",
|
||
"The site is not available at the moment.": "The site is not available at the moment.",
|
||
"The slug is appended to the URL:": "The slug is appended to the URL:",
|
||
"The sync will fetch missing models and vendors from the selected source. Existing records are updated only when you approve conflicts.": "The sync will fetch missing models and vendors from the selected source. Existing records are updated only when you approve conflicts.",
|
||
"The token group that will have a custom ratio": "The token group that will have a custom ratio",
|
||
"The unique identifier for this model": "The unique identifier for this model",
|
||
"The unique name for this vendor": "The unique name for this vendor",
|
||
"The URL for this chat client.": "The URL for this chat client.",
|
||
"Theme": "Theme",
|
||
"Theme Settings": "Theme Settings",
|
||
"There are both add and remove models pending, but you only selected one type. Confirm submitting only the selected items?": "There are both add and remove models pending, but you only selected one type. Confirm submitting only the selected items?",
|
||
"These models are still in your selection but were not returned by the upstream listing. Entries that are only model_mapping source aliases are omitted. Toggle to adjust before saving.": "These models are still in your selection but were not returned by the upstream listing. Entries that are only model_mapping source aliases are omitted. Toggle to adjust before saving.",
|
||
"These toggles affect whether certain request fields are passed through to the upstream provider.": "These toggles affect whether certain request fields are passed through to the upstream provider.",
|
||
"Thinking Adapter": "Thinking Adapter",
|
||
"Thinking to Content": "Thinking to Content",
|
||
"Third-party account bindings (read-only, managed by user in profile settings)": "Third-party account bindings (read-only, managed by user in profile settings)",
|
||
"Third-party Payment Config": "Third-party Payment Config",
|
||
"This action cannot be undone.": "This action cannot be undone.",
|
||
"This action cannot be undone. This will permanently delete your account and remove all your data from our servers.": "This action cannot be undone. This will permanently delete your account and remove all your data from our servers.",
|
||
"This action will permanently remove 2FA protection from your account.": "This action will permanently remove 2FA protection from your account.",
|
||
"This channel is not an Ollama channel.": "This channel is not an Ollama channel.",
|
||
"This channel type does not support fetching models": "This channel type does not support fetching models",
|
||
"This data may be unreliable, use with caution": "This data may be unreliable, use with caution",
|
||
"This device does not support Passkey": "This device does not support Passkey",
|
||
"This device does not support Passkey verification.": "This device does not support Passkey verification.",
|
||
"This expression is too complex for the visual editor. Please switch to expression mode to edit.": "This expression is too complex for the visual editor. Please switch to expression mode to edit.",
|
||
"This feature is experimental. Configuration format and behavior may change.": "This feature is experimental. Configuration format and behavior may change.",
|
||
"This feature requires server-side WeChat configuration": "This feature requires server-side WeChat configuration",
|
||
"This may cause cache failures.": "This may cause cache failures.",
|
||
"This may take a few moments while we validate the request and update your session.": "This may take a few moments while we validate the request and update your session.",
|
||
"This model has both fixed price and ratio billing conflicts": "This model has both fixed price and ratio billing conflicts",
|
||
"This model is not available in any group, or no group pricing information is configured.": "This model is not available in any group, or no group pricing information is configured.",
|
||
"This month": "This month",
|
||
"This page has not been created yet.": "This page has not been created yet.",
|
||
"This project must be used in compliance with the": "This project must be used in compliance with the",
|
||
"This record was written by a pre-upgrade instance and lacks audit info. Upgrade the instance to record server IP, callback IP, payment method and system version.": "This record was written by a pre-upgrade instance and lacks audit info. Upgrade the instance to record server IP, callback IP, payment method and system version.",
|
||
"this token group": "this token group",
|
||
"this user group": "this user group",
|
||
"This user has no bindings": "This user has no bindings",
|
||
"This will append 2 template rules (Codex CLI and Claude CLI) to the existing rule list.": "This will append 2 template rules (Codex CLI and Claude CLI) to the existing rule list.",
|
||
"This will clear custom pricing ratios and revert to upstream defaults.": "This will clear custom pricing ratios and revert to upstream defaults.",
|
||
"This will delete all": "This will delete all",
|
||
"This will delete all channel affinity cache entries still in memory.": "This will delete all channel affinity cache entries still in memory.",
|
||
"This will delete temporary cache files that have not been used for more than 10 minutes": "This will delete temporary cache files that have not been used for more than 10 minutes",
|
||
"This will extend the deployment by the specified hours.": "This will extend the deployment by the specified hours.",
|
||
"This will permanently delete API key": "This will permanently delete API key",
|
||
"This will permanently delete redemption code": "This will permanently delete redemption code",
|
||
"This will permanently delete user": "This will permanently delete user",
|
||
"This will permanently remove all log entries created before {{date}}.": "This will permanently remove all log entries created before {{date}}.",
|
||
"This will permanently remove log entries before the selected timestamp.": "This will permanently remove log entries before the selected timestamp.",
|
||
"Three steps to get started": "Three steps to get started",
|
||
"Tier": "Tier",
|
||
"Tier name": "Tier name",
|
||
"Tiered": "Tiered",
|
||
"Tiered (billing expression)": "Tiered (billing expression)",
|
||
"Tiered price table": "Tiered price table",
|
||
"Time": "Time",
|
||
"Time Granularity": "Time Granularity",
|
||
"Time remaining": "Time remaining",
|
||
"Time window for rate limiting": "Time window for rate limiting",
|
||
"Time-based": "Time-based",
|
||
"Time:": "Time:",
|
||
"Timed cache (1h)": "Timed cache (1h)",
|
||
"Timeline": "Timeline",
|
||
"times": "times",
|
||
"Timing": "Timing",
|
||
"Tip: The generated key is a JSON credential including access_token / refresh_token / account_id.": "Tip: The generated key is a JSON credential including access_token / refresh_token / account_id.",
|
||
"to access this resource.": "to access this resource.",
|
||
"to confirm": "to confirm",
|
||
"To Lower": "To Lower",
|
||
"to override billing when a user in one group uses a token of another group.": "to override billing when a user in one group uses a token of another group.",
|
||
"to the Models list so users can use them before the mapping sends traffic upstream.": "to the Models list so users can use them before the mapping sends traffic upstream.",
|
||
"To Upper": "To Upper",
|
||
"to view this resource.": "to view this resource.",
|
||
"Today": "Today",
|
||
"Toggle columns": "Toggle columns",
|
||
"Toggle navigation menu": "Toggle navigation menu",
|
||
"Toggle plan": "Toggle plan",
|
||
"Toggle theme": "Toggle theme",
|
||
"Token": "Token",
|
||
"Token Breakdown": "Token Breakdown",
|
||
"Token Endpoint": "Token Endpoint",
|
||
"Token Endpoint (Optional)": "Token Endpoint (Optional)",
|
||
"Token estimator": "Token estimator",
|
||
"Token management": "Token management",
|
||
"Token Management": "Token Management",
|
||
"Token Mgmt": "Token Mgmt",
|
||
"Token Name": "Token Name",
|
||
"Token obtained from your Gotify application": "Token obtained from your Gotify application",
|
||
"Token regenerated and copied to clipboard": "Token regenerated and copied to clipboard",
|
||
"Token unit": "Token unit",
|
||
"Token-based": "Token-based",
|
||
"tokens": "tokens",
|
||
"Tokens": "Tokens",
|
||
"Tokens Only": "Tokens Only",
|
||
"Tokens per minute": "Tokens per minute",
|
||
"Tokens-only mode will show raw quota values regardless of this toggle.": "Tokens-only mode will show raw quota values regardless of this toggle.",
|
||
"Too many files. Some were not added.": "Too many files. Some were not added.",
|
||
"Tool identifier": "Tool identifier",
|
||
"Tool price settings": "Tool price settings",
|
||
"Tool prices": "Tool prices",
|
||
"Top Models": "Top Models",
|
||
"Top up balance and view billing history.": "Top up balance and view billing history.",
|
||
"Top-up": "Top-up",
|
||
"Top-up amount options": "Top-up amount options",
|
||
"Top-up Audit Info": "Top-up Audit Info",
|
||
"Top-up group ratios": "Top-up group ratios",
|
||
"Top-Up Link": "Top-Up Link",
|
||
"top-up ratio": "top-up ratio",
|
||
"Topup Amount": "Topup Amount",
|
||
"Total": "Total",
|
||
"Total Allocated": "Total Allocated",
|
||
"Total check-ins": "Total check-ins",
|
||
"Total consumed": "Total consumed",
|
||
"Total consumed quota": "Total consumed quota",
|
||
"Total cost": "Total cost",
|
||
"Total Cost": "Total Cost",
|
||
"Total Count": "Total Count",
|
||
"Total earned": "Total earned",
|
||
"Total Earned": "Total Earned",
|
||
"Total GPUs": "Total GPUs",
|
||
"Total invitation revenue": "Total invitation revenue",
|
||
"Total Log Size": "Total Log Size",
|
||
"Total Quota": "Total Quota",
|
||
"Total requests allowed per period. 0 = unlimited.": "Total requests allowed per period. 0 = unlimited.",
|
||
"Total requests made": "Total requests made",
|
||
"Total Tokens": "Total Tokens",
|
||
"Total Usage": "Total Usage",
|
||
"Total:": "Total:",
|
||
"TPM": "TPM",
|
||
"Track per-request consumption to power usage analytics. Keeping this on increases database writes.": "Track per-request consumption to power usage analytics. Keeping this on increases database writes.",
|
||
"Track usage, costs and performance with real-time analytics": "Track usage, costs and performance with real-time analytics",
|
||
"Tracks current account base limits and additional metered usage on Codex upstream.": "Tracks current account base limits and additional metered usage on Codex upstream.",
|
||
"Transfer": "Transfer",
|
||
"Transfer Amount": "Transfer Amount",
|
||
"Transfer failed": "Transfer failed",
|
||
"Transfer Rewards": "Transfer Rewards",
|
||
"Transfer successful": "Transfer successful",
|
||
"Transfer to Balance": "Transfer to Balance",
|
||
"Translate `-thinking` suffixes into Anthropic native thinking models while keeping pricing predictable.": "Translate `-thinking` suffixes into Anthropic native thinking models while keeping pricing predictable.",
|
||
"Transparent Billing": "Transparent Billing",
|
||
"Trim Prefix": "Trim Prefix",
|
||
"Trim Space": "Trim Space",
|
||
"Trim Suffix": "Trim Suffix",
|
||
"Trusted": "Trusted",
|
||
"Try adjusting your search to locate a missing model.": "Try adjusting your search to locate a missing model.",
|
||
"TTL": "TTL",
|
||
"TTL (seconds, 0 = default)": "TTL (seconds, 0 = default)",
|
||
"TTL (seconds)": "TTL (seconds)",
|
||
"Turnstile is enabled but site key is empty.": "Turnstile is enabled but site key is empty.",
|
||
"Two-factor Authentication": "Two-factor Authentication",
|
||
"Two-Factor Authentication": "Two-Factor Authentication",
|
||
"Two-factor authentication disabled": "Two-factor authentication disabled",
|
||
"Two-factor authentication enabled successfully!": "Two-factor authentication enabled successfully!",
|
||
"Two-factor authentication reset": "Two-factor authentication reset",
|
||
"Two-Step Verification": "Two-Step Verification",
|
||
"Type": "Type",
|
||
"Type *": "Type *",
|
||
"Type a command or search...": "Type a command or search...",
|
||
"Type-Specific Settings": "Type-Specific Settings",
|
||
"Type:": "Type:",
|
||
"UI granularity only — data is still aggregated hourly": "UI granularity only — data is still aggregated hourly",
|
||
"Unable to estimate price for this deployment.": "Unable to estimate price for this deployment.",
|
||
"Unable to generate chat link. Please contact your administrator.": "Unable to generate chat link. Please contact your administrator.",
|
||
"Unable to load groups": "Unable to load groups",
|
||
"Unable to open chat": "Unable to open chat",
|
||
"Unable to prepare chat link. Please ensure you have an enabled API key.": "Unable to prepare chat link. Please ensure you have an enabled API key.",
|
||
"Unauthorized Access": "Unauthorized Access",
|
||
"Unbind": "Unbind",
|
||
"Unbind failed": "Unbind failed",
|
||
"Unbound {{provider}}": "Unbound {{provider}}",
|
||
"Unexpected release payload": "Unexpected release payload",
|
||
"Unified API Gateway for": "Unified API Gateway for",
|
||
"Unique identifier for this group.": "Unique identifier for this group.",
|
||
"Unit price (local currency / USD)": "Unit price (local currency / USD)",
|
||
"Unit price (USD)": "Unit price (USD)",
|
||
"Unit price must be greater than 0": "Unit price must be greater than 0",
|
||
"Units per USD": "Units per USD",
|
||
"Unknown": "Unknown",
|
||
"Unknown version": "Unknown version",
|
||
"Unlimited": "Unlimited",
|
||
"Unlimited Quota": "Unlimited Quota",
|
||
"Unsaved changes": "Unsaved changes",
|
||
"Until": "Until",
|
||
"Untitled": "Untitled",
|
||
"Untrusted upstream data:": "Untrusted upstream data:",
|
||
"Unused": "Unused",
|
||
"Update": "Update",
|
||
"Update All Balances": "Update All Balances",
|
||
"Update API Key": "Update API Key",
|
||
"Update Balance": "Update Balance",
|
||
"Update balance for:": "Update balance for:",
|
||
"Update Channel": "Update Channel",
|
||
"Update channel configuration and click save when you're done.": "Update channel configuration and click save when you're done.",
|
||
"Update configuration": "Update configuration",
|
||
"Update failed": "Update failed",
|
||
"Update Model": "Update Model",
|
||
"Update model configuration and click save when you're done.": "Update model configuration and click save when you're done.",
|
||
"Update plan info": "Update Plan Info",
|
||
"Update Provider": "Update Provider",
|
||
"Update Redemption Code": "Update Redemption Code",
|
||
"Update succeeded": "Update succeeded",
|
||
"Update the API key by providing necessary info.": "Update the API key by providing necessary info.",
|
||
"Update the configuration for this custom OAuth provider.": "Update the configuration for this custom OAuth provider.",
|
||
"Update the redemption code by providing necessary info.": "Update the redemption code by providing necessary info.",
|
||
"Update the reusable bundle below.": "Update the reusable bundle below.",
|
||
"Update the user by providing necessary info.": "Update the user by providing necessary info.",
|
||
"Update vendor information for {{name}}": "Update vendor information for {{name}}",
|
||
"Update your password for account:": "Update your password for account:",
|
||
"Update your password to keep your account secure": "Update your password to keep your account secure",
|
||
"Updated": "Updated",
|
||
"Updated successfully": "Updated successfully",
|
||
"Updating all channel balances. This may take a while. Please refresh to see results.": "Updating all channel balances. This may take a while. Please refresh to see results.",
|
||
"Upgrade Group": "Upgrade Group",
|
||
"Upload": "Upload",
|
||
"Upload a single service account JSON file": "Upload a single service account JSON file",
|
||
"Upload file": "Upload file",
|
||
"Upload files": "Upload files",
|
||
"Upload multiple JSON files in batch modes": "Upload multiple JSON files in batch modes",
|
||
"Upload or reference a local configuration file.": "Upload or reference a local configuration file.",
|
||
"Upload photo": "Upload photo",
|
||
"Upscale": "Upscale",
|
||
"Upstream": "Upstream",
|
||
"Upstream Model Update Check": "Upstream Model Update Check",
|
||
"Upstream Model Updates": "Upstream Model Updates",
|
||
"Upstream model updates applied: {{added}} added, {{removed}} removed, {{ignored}} ignored this time, {{totalIgnored}} total ignored models": "Upstream model updates applied: {{added}} added, {{removed}} removed, {{ignored}} ignored this time, {{totalIgnored}} total ignored models",
|
||
"Upstream price sync": "Upstream price sync",
|
||
"Upstream prices fetched successfully": "Upstream prices fetched successfully",
|
||
"Upstream ratios fetched successfully": "Upstream ratios fetched successfully",
|
||
"Upstream Response": "Upstream Response",
|
||
"Upstream Updates": "Upstream Updates",
|
||
"uptime": "uptime",
|
||
"Uptime": "Uptime",
|
||
"Uptime Kuma": "Uptime Kuma",
|
||
"Uptime Kuma groups saved successfully": "Uptime Kuma groups saved successfully",
|
||
"Uptime Kuma URL": "Uptime Kuma URL",
|
||
"Uptime since": "Uptime since",
|
||
"URL": "URL",
|
||
"URL is required": "URL is required",
|
||
"URL to your logo image (optional)": "URL to your logo image (optional)",
|
||
"Usage": "Usage",
|
||
"Usage logs": "Usage logs",
|
||
"Usage Logs": "Usage Logs",
|
||
"Usage mode": "Usage mode",
|
||
"Usage-based": "Usage-based",
|
||
"USD": "USD",
|
||
"USD Exchange Rate": "USD Exchange Rate",
|
||
"Use a compatible browser or device with biometric authentication or a security key to register a Passkey.": "Use a compatible browser or device with biometric authentication or a security key to register a Passkey.",
|
||
"Use authenticator code": "Use authenticator code",
|
||
"Use backup code": "Use backup code",
|
||
"Use disk cache when request body exceeds this size": "Use disk cache when request body exceeds this size",
|
||
"Use our unified OpenAI-compatible endpoint in your applications": "Use our unified OpenAI-compatible endpoint in your applications",
|
||
"Use Passkey to sign in without entering your password.": "Use Passkey to sign in without entering your password.",
|
||
"Use secure connection when sending emails": "Use secure connection when sending emails",
|
||
"Use sidebar shortcut": "Use sidebar shortcut",
|
||
"Use this token for API authentication": "Use this token for API authentication",
|
||
"Use your Passkey": "Use your Passkey",
|
||
"used": "used",
|
||
"Used": "Used",
|
||
"Used / Remaining": "Used / Remaining",
|
||
"Used for load balancing. Higher weight = more requests": "Used for load balancing. Higher weight = more requests",
|
||
"Used in URLs and API routes": "Used in URLs and API routes",
|
||
"Used Quota": "Used Quota",
|
||
"Used to authenticate with io.net deployment API": "Used to authenticate with io.net deployment API",
|
||
"Used to authenticate with the worker. Leave blank to keep the existing secret.": "Used to authenticate with the worker. Leave blank to keep the existing secret.",
|
||
"Used:": "Used:",
|
||
"User": "User",
|
||
"User {{id}}": "User {{id}}",
|
||
"User Agreement": "User Agreement",
|
||
"User Analytics": "User Analytics",
|
||
"User Consumption Ranking": "User Consumption Ranking",
|
||
"User Consumption Trend": "User Consumption Trend",
|
||
"User created successfully": "User created successfully",
|
||
"User dashboard and quota controls.": "User dashboard and quota controls.",
|
||
"User Exclusive Ratio": "User Exclusive Ratio",
|
||
"User Group": "User Group",
|
||
"User group name": "User group name",
|
||
"User Group: {{ratio}}x": "User Group: {{ratio}}x",
|
||
"User groups that can access channels with this tag": "User groups that can access channels with this tag",
|
||
"User groups that can access this channel. ": "User groups that can access this channel. ",
|
||
"User ID": "User ID",
|
||
"User ID Field": "User ID Field",
|
||
"User ID:": "User ID:",
|
||
"User Info Endpoint": "User Info Endpoint",
|
||
"User Info Endpoint (Optional)": "User Info Endpoint (Optional)",
|
||
"User Information": "User Information",
|
||
"User Menu": "User Menu",
|
||
"User personal functions": "User personal functions",
|
||
"User Subscription Management": "User Subscription Management",
|
||
"User updated successfully": "User updated successfully",
|
||
"User Verification": "User Verification",
|
||
"User-Agent include (one per line)": "User-Agent include (one per line)",
|
||
"Username": "Username",
|
||
"Username confirmation does not match": "Username confirmation does not match",
|
||
"Username Field": "Username Field",
|
||
"Username or Email": "Username or Email",
|
||
"Users": "Users",
|
||
"Users call the model on the left. The platform forwards the request to the upstream model on the right.": "Users call the model on the left. The platform forwards the request to the upstream model on the right.",
|
||
"Users must wait for a successful drawing before upscales or variations.": "Users must wait for a successful drawing before upscales or variations.",
|
||
"uses": "uses",
|
||
"Validity": "Validity",
|
||
"Validity Period": "Validity Period",
|
||
"Value": "Value",
|
||
"Value must be at least 0": "Value must be at least 0",
|
||
"Value Regex": "Value Regex",
|
||
"variable": "variable",
|
||
"variable) *": "variable) *",
|
||
"Variables": "Variables",
|
||
"Vary": "Vary",
|
||
"Vary (Strong)": "Vary (Strong)",
|
||
"Vary (Subtle)": "Vary (Subtle)",
|
||
"Vendor": "Vendor",
|
||
"Vendor deleted successfully": "Vendor deleted successfully",
|
||
"Vendor Name *": "Vendor Name *",
|
||
"Vendor:": "Vendor:",
|
||
"Verification code": "Verification code",
|
||
"Verification Code": "Verification Code",
|
||
"Verification code must be 6 digits": "Verification code must be 6 digits",
|
||
"Verification code sent! Please check your email.": "Verification code sent! Please check your email.",
|
||
"Verification code updates every 30 seconds.": "Verification code updates every 30 seconds.",
|
||
"Verification email sent": "Verification email sent",
|
||
"Verification failed": "Verification failed",
|
||
"Verification is not configured properly": "Verification is not configured properly",
|
||
"Verification required to reveal the saved key.": "Verification required to reveal the saved key.",
|
||
"Verify": "Verify",
|
||
"Verify and Sign In": "Verify and Sign In",
|
||
"Verify Setup": "Verify Setup",
|
||
"Verify your database connection": "Verify your database connection",
|
||
"Version Overrides": "Version Overrides",
|
||
"Vertex AI": "Vertex AI",
|
||
"Vertex AI does not support functionResponse.id. Enable this to remove the field automatically.": "Vertex AI does not support functionResponse.id. Enable this to remove the field automatically.",
|
||
"Vertex AI Key Format": "Vertex AI Key Format",
|
||
"Video": "Video",
|
||
"Video Remix": "Video Remix",
|
||
"Vidu": "Vidu",
|
||
"View": "View",
|
||
"View all currently available models": "View all currently available models",
|
||
"View and manage your API usage logs": "View and manage your API usage logs",
|
||
"View and manage your drawing logs": "View and manage your drawing logs",
|
||
"View and manage your task logs": "View and manage your task logs",
|
||
"View dashboard overview and statistics": "View dashboard overview and statistics",
|
||
"View detailed information about this user including balance, usage statistics, and invitation details.": "View detailed information about this user including balance, usage statistics, and invitation details.",
|
||
"View details": "View details",
|
||
"View document": "View document",
|
||
"View logs": "View logs",
|
||
"View mode": "View mode",
|
||
"View model statistics and charts": "View model statistics and charts",
|
||
"View Pricing": "View Pricing",
|
||
"View the complete details for this": "View the complete details for this",
|
||
"View the complete details for this log entry": "View the complete details for this log entry",
|
||
"View the complete error message and details": "View the complete error message and details",
|
||
"View the complete prompt and its English translation": "View the complete prompt and its English translation",
|
||
"View the generated image": "View the generated image",
|
||
"View user consumption statistics and charts": "View user consumption statistics and charts",
|
||
"View your topup transaction records and payment history": "View your topup transaction records and payment history",
|
||
"Violation Code": "Violation Code",
|
||
"Violation deduction amount": "Violation deduction amount",
|
||
"Violation Fee": "Violation Fee",
|
||
"Violation Marker": "Violation Marker",
|
||
"vip": "vip",
|
||
"VIP users with premium access": "VIP users with premium access",
|
||
"Visit Settings → General and adjust quota options...": "Visit Settings → General and adjust quota options...",
|
||
"Visitors must authenticate before accessing the pricing directory.": "Visitors must authenticate before accessing the pricing directory.",
|
||
"Visual": "Visual",
|
||
"Visual editor": "Visual editor",
|
||
"Visual Editor": "Visual Editor",
|
||
"Visual indicator color for the API card": "Visual indicator color for the API card",
|
||
"Visual Mode": "Visual Mode",
|
||
"VolcEngine": "VolcEngine",
|
||
"Waffo Pancake Payment Gateway": "Waffo Pancake payment gateway",
|
||
"Waffo Payment": "Waffo Payment",
|
||
"Waffo Payment Gateway": "Waffo Payment Gateway",
|
||
"Waffo Public Key (Production)": "Waffo Public Key (Production)",
|
||
"Waffo Public Key (Sandbox)": "Waffo Public Key (Sandbox)",
|
||
"Waiting": "Waiting",
|
||
"Waiting for email...": "Waiting for email...",
|
||
"Wallet": "Wallet",
|
||
"Wallet First": "Wallet First",
|
||
"Wallet Management": "Wallet Management",
|
||
"Wallet management and personal preferences.": "Wallet management and personal preferences.",
|
||
"Wallet Only": "Wallet Only",
|
||
"Warning": "Warning",
|
||
"Warning: Base URL should not end with /v1. New API will handle it automatically. This may cause request failures.": "Warning: Base URL should not end with /v1. New API will handle it automatically. This may cause request failures.",
|
||
"Warning: Disabling 2FA will make your account less secure.": "Warning: Disabling 2FA will make your account less secure.",
|
||
"Warning: This action is permanent and irreversible!": "Warning: This action is permanent and irreversible!",
|
||
"We apologize for the inconvenience.": "We apologize for the inconvenience.",
|
||
"We could not load the setup status.": "We could not load the setup status.",
|
||
"We will prompt your device to confirm using biometrics or your hardware key.": "We will prompt your device to confirm using biometrics or your hardware key.",
|
||
"We'll be back online shortly.": "We'll be back online shortly.",
|
||
"Web Search": "Web Search",
|
||
"Webhook Configuration:": "Webhook Configuration:",
|
||
"Webhook public key (production)": "Webhook public key (production)",
|
||
"Webhook public key (production) is required": "Webhook public key (production) is required",
|
||
"Webhook public key (sandbox)": "Webhook public key (sandbox)",
|
||
"Webhook public key (sandbox) is required": "Webhook public key (sandbox) is required",
|
||
"Webhook secret": "Webhook secret",
|
||
"Webhook Secret": "Webhook Secret",
|
||
"Webhook signing secret (leave blank unless updating)": "Webhook signing secret (leave blank unless updating)",
|
||
"Webhook URL": "Webhook URL",
|
||
"Webhook URL:": "Webhook URL:",
|
||
"Website is under maintenance!": "Website is under maintenance!",
|
||
"WeChat": "WeChat",
|
||
"WeChat login QR code": "WeChat login QR code",
|
||
"WeChat QR code will be displayed here": "WeChat QR code will be displayed here",
|
||
"WeChat sign in": "WeChat sign in",
|
||
"Week": "Week",
|
||
"Weekday": "Weekday",
|
||
"Weekly": "Weekly",
|
||
"Weekly Window": "Weekly Window",
|
||
"Weight": "Weight",
|
||
"Welcome back!": "Welcome back!",
|
||
"Welcome to our New API...": "Welcome to our New API...",
|
||
"Well-Known URL": "Well-Known URL",
|
||
"Well-Known URL must start with http:// or https://": "Well-Known URL must start with http:// or https://",
|
||
"What would you like to know?": "What would you like to know?",
|
||
"When conditions match, the final price is multiplied by X. Multiple matches multiply together; values < 1 act as discounts.": "When conditions match, the final price is multiplied by X. Multiple matches multiply together; values < 1 act as discounts.",
|
||
"When enabled, if channels in the current group fail, it will try channels in the next group in order.": "When enabled, if channels in the current group fail, it will try channels in the next group in order.",
|
||
"When enabled, large request bodies are temporarily stored on disk instead of memory, significantly reducing memory usage. SSD recommended.": "When enabled, large request bodies are temporarily stored on disk instead of memory, significantly reducing memory usage. SSD recommended.",
|
||
"When enabled, Midjourney callbacks are accepted (reveals server IP).": "When enabled, Midjourney callbacks are accepted (reveals server IP).",
|
||
"When enabled, newly created tokens start in the first auto group.": "When enabled, newly created tokens start in the first auto group.",
|
||
"When enabled, prompts are scanned before reaching upstream models.": "When enabled, prompts are scanned before reaching upstream models.",
|
||
"When enabled, the store field will be blocked": "When enabled, the store field will be blocked",
|
||
"When enabled, violation requests will incur additional charges.": "When enabled, violation requests will incur additional charges.",
|
||
"When enabled, zero-cost models also pre-consume quota before final settlement.": "When enabled, zero-cost models also pre-consume quota before final settlement.",
|
||
"When performance monitoring is enabled and system resource usage exceeds the set threshold, new Relay requests will be rejected.": "When performance monitoring is enabled and system resource usage exceeds the set threshold, new Relay requests will be rejected.",
|
||
"When running in containers or ephemeral environments, ensure the SQLite file is mapped to persistent storage to avoid data loss on restart.": "When running in containers or ephemeral environments, ensure the SQLite file is mapped to persistent storage to avoid data loss on restart.",
|
||
"Whitelist": "Whitelist",
|
||
"Whitelist (Only allow listed domains)": "Whitelist (Only allow listed domains)",
|
||
"Whitelist (Only allow listed IPs)": "Whitelist (Only allow listed IPs)",
|
||
"whsec_xxx": "whsec_xxx",
|
||
"Window:": "Window:",
|
||
"with conflicts": "with conflicts",
|
||
"Worker Access Key": "Worker Access Key",
|
||
"Worker Proxy": "Worker Proxy",
|
||
"Worker URL": "Worker URL",
|
||
"Workspaces": "Workspaces",
|
||
"x": "x",
|
||
"xAI": "xAI",
|
||
"Xinference": "Xinference",
|
||
"Xunfei": "Xunfei",
|
||
"years": "years",
|
||
"You are about to delete {{count}} API key(s).": "You are about to delete {{count}} API key(s).",
|
||
"You are running the latest version ({{version}}).": "You are running the latest version ({{version}}).",
|
||
"You can close this tab once the binding completes or a success message appears in the original window.": "You can close this tab once the binding completes or a success message appears in the original window.",
|
||
"You can manually add them in \"Custom Model Names\", click \"Fill\" and then submit, or use the operations below to handle automatically.": "You can manually add them in \"Custom Model Names\", click \"Fill\" and then submit, or use the operations below to handle automatically.",
|
||
"You can only check in once per day": "You can only check in once per day",
|
||
"You don't have necessary permission": "You don't have necessary permission",
|
||
"You have unsaved changes": "You have unsaved changes",
|
||
"You have unsaved changes. Are you sure you want to leave?": "You have unsaved changes. Are you sure you want to leave?",
|
||
"You Pay": "You Pay",
|
||
"You save": "You save",
|
||
"You will be redirected to Telegram to complete the binding process.": "You will be redirected to Telegram to complete the binding process.",
|
||
"You'll be redirected automatically. You can return to the previous page if nothing happens after a few seconds.": "You'll be redirected automatically. You can return to the previous page if nothing happens after a few seconds.",
|
||
"your AI integration?": "your AI integration?",
|
||
"Your Azure OpenAI endpoint URL": "Your Azure OpenAI endpoint URL",
|
||
"Your Bot Name": "Your Bot Name",
|
||
"Your Cloudflare Account ID": "Your Cloudflare Account ID",
|
||
"Your Discord OAuth Client ID": "Your Discord OAuth Client ID",
|
||
"Your Discord OAuth Client Secret": "Your Discord OAuth Client Secret",
|
||
"Your GitHub OAuth Client ID": "Your GitHub OAuth Client ID",
|
||
"Your GitHub OAuth Client Secret": "Your GitHub OAuth Client Secret",
|
||
"Your new backup codes are ready": "Your new backup codes are ready",
|
||
"Your Referral Link": "Your Referral Link",
|
||
"Your system access token for API authentication. Keep it secure and don't share it with others.": "Your system access token for API authentication. Keep it secure and don't share it with others.",
|
||
"Your Telegram Bot Token": "Your Telegram Bot Token",
|
||
"Your Turnstile secret key": "Your Turnstile secret key",
|
||
"Your Turnstile site key": "Your Turnstile site key",
|
||
"Zhipu": "Zhipu",
|
||
"Zhipu V4": "Zhipu V4",
|
||
"Zoom": "Zoom"
|
||
}
|
||
}
|