Commit 5d943281 by RedwindA Committed by GitHub

feat(system-settings): add user token limit configuration section (#5678)

parent 0b2cf43e
/*
Copyright (C) 2023-2026 QuantumNous
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
For commercial licensing, please contact support@quantumnous.com
*/
import { zodResolver } from '@hookform/resolvers/zod'
import { useEffect } from 'react'
import { useForm } from 'react-hook-form'
import { useTranslation } from 'react-i18next'
import * as z from 'zod'
import {
Form,
FormControl,
FormDescription,
FormField,
FormItem,
FormLabel,
FormMessage,
} from '@/components/ui/form'
import { Input } from '@/components/ui/input'
import { SettingsForm } from '../components/settings-form-layout'
import { SettingsPageFormActions } from '../components/settings-page-context'
import { SettingsSection } from '../components/settings-section'
import { useUpdateOption } from '../hooks/use-update-option'
const tokenLimitSchema = z.object({
token_setting: z.object({
max_user_tokens: z.number().min(1),
}),
})
type TokenLimitFormValues = z.output<typeof tokenLimitSchema>
type TokenLimitFormInput = z.input<typeof tokenLimitSchema>
type NormalizedTokenLimitValues = {
'token_setting.max_user_tokens': number
}
type TokenLimitSectionProps = {
defaultValues: NormalizedTokenLimitValues
}
const buildFormDefaults = (
defaults: TokenLimitSectionProps['defaultValues']
): TokenLimitFormInput => ({
token_setting: {
max_user_tokens: defaults['token_setting.max_user_tokens'],
},
})
const normalizeFormValues = (
values: TokenLimitFormValues
): NormalizedTokenLimitValues => ({
'token_setting.max_user_tokens': values.token_setting.max_user_tokens,
})
export function TokenLimitSection({ defaultValues }: TokenLimitSectionProps) {
const { t } = useTranslation()
const updateOption = useUpdateOption()
const form = useForm<TokenLimitFormInput, unknown, TokenLimitFormValues>({
resolver: zodResolver(tokenLimitSchema),
mode: 'onChange',
defaultValues: buildFormDefaults(defaultValues),
})
useEffect(() => {
form.reset(buildFormDefaults(defaultValues))
}, [defaultValues, form])
const onSubmit = async (values: TokenLimitFormValues) => {
const key = 'token_setting.max_user_tokens' as const
const normalized = normalizeFormValues(values)
const value = normalized[key]
if (value !== defaultValues[key]) {
await updateOption.mutateAsync({ key, value })
}
}
return (
<SettingsSection title={t('Token Limits')}>
<Form {...form}>
<SettingsForm onSubmit={form.handleSubmit(onSubmit)}>
<SettingsPageFormActions
onSave={form.handleSubmit(onSubmit)}
isSaving={updateOption.isPending}
saveLabel='Save token limits'
/>
<FormField
control={form.control}
name='token_setting.max_user_tokens'
render={({ field }) => (
<FormItem>
<FormLabel>{t('Maximum tokens per user')}</FormLabel>
<FormControl>
<Input
type='number'
min={1}
step={1}
{...field}
onChange={(e) =>
field.onChange(Number.parseInt(e.target.value) || 1)
}
/>
</FormControl>
<FormDescription>
{t(
'Maximum number of tokens each user can create. Default 1000. Setting too large may affect performance.'
)}
</FormDescription>
<FormMessage />
</FormItem>
)}
/>
</SettingsForm>
</Form>
</SettingsSection>
)
}
...@@ -41,6 +41,7 @@ const defaultSecuritySettings: SecuritySettings = { ...@@ -41,6 +41,7 @@ const defaultSecuritySettings: SecuritySettings = {
'fetch_setting.ip_list': [], 'fetch_setting.ip_list': [],
'fetch_setting.allowed_ports': [], 'fetch_setting.allowed_ports': [],
'fetch_setting.apply_ip_filter_for_domain': false, 'fetch_setting.apply_ip_filter_for_domain': false,
'token_setting.max_user_tokens': 1000,
} }
export function SecuritySettings() { export function SecuritySettings() {
......
...@@ -19,6 +19,7 @@ For commercial licensing, please contact support@quantumnous.com ...@@ -19,6 +19,7 @@ For commercial licensing, please contact support@quantumnous.com
import { RateLimitSection } from '../request-limits/rate-limit-section' import { RateLimitSection } from '../request-limits/rate-limit-section'
import { SensitiveWordsSection } from '../request-limits/sensitive-words-section' import { SensitiveWordsSection } from '../request-limits/sensitive-words-section'
import { SSRFSection } from '../request-limits/ssrf-section' import { SSRFSection } from '../request-limits/ssrf-section'
import { TokenLimitSection } from '../request-limits/token-limit-section'
import type { SecuritySettings } from '../types' import type { SecuritySettings } from '../types'
import { createSectionRegistry } from '../utils/section-registry' import { createSectionRegistry } from '../utils/section-registry'
...@@ -77,6 +78,18 @@ const SECURITY_SECTIONS = [ ...@@ -77,6 +78,18 @@ const SECURITY_SECTIONS = [
/> />
), ),
}, },
{
id: 'token-limits',
titleKey: 'Token Limits',
build: (settings: SecuritySettings) => (
<TokenLimitSection
defaultValues={{
'token_setting.max_user_tokens':
settings['token_setting.max_user_tokens'],
}}
/>
),
},
] as const ] as const
export type SecuritySectionId = (typeof SECURITY_SECTIONS)[number]['id'] export type SecuritySectionId = (typeof SECURITY_SECTIONS)[number]['id']
......
...@@ -378,6 +378,7 @@ export type SecuritySettings = { ...@@ -378,6 +378,7 @@ export type SecuritySettings = {
'fetch_setting.ip_list': string[] 'fetch_setting.ip_list': string[]
'fetch_setting.allowed_ports': number[] 'fetch_setting.allowed_ports': number[]
'fetch_setting.apply_ip_filter_for_domain': boolean 'fetch_setting.apply_ip_filter_for_domain': boolean
'token_setting.max_user_tokens': number
} }
export type UpstreamChannel = { export type UpstreamChannel = {
......
...@@ -370,6 +370,7 @@ ...@@ -370,6 +370,7 @@
"API Key disabled successfully": "API Key disabled successfully", "API Key disabled successfully": "API Key disabled successfully",
"API Key enabled successfully": "API Key enabled successfully", "API Key enabled successfully": "API Key enabled successfully",
"API key from the provider": "API key from the provider", "API key from the provider": "API key from the provider",
"API key is loading, please try again in a moment": "API key is loading, please try again in a moment",
"API key is required": "API key is required", "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 (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 mode: use APIKey|Region": "API Key mode: use APIKey|Region",
...@@ -1701,6 +1702,7 @@ ...@@ -1701,6 +1702,7 @@
"Failed to copy keys": "Failed to copy keys", "Failed to copy keys": "Failed to copy keys",
"Failed to copy model names": "Failed to copy model names", "Failed to copy model names": "Failed to copy model names",
"Failed to copy to clipboard": "Failed to copy to clipboard", "Failed to copy to clipboard": "Failed to copy to clipboard",
"Failed to create account": "Failed to create account",
"Failed to create API key": "Failed to create API key", "Failed to create API key": "Failed to create API key",
"Failed to create channel": "Failed to create channel", "Failed to create channel": "Failed to create channel",
"Failed to create deployment": "Failed to create deployment", "Failed to create deployment": "Failed to create deployment",
...@@ -1753,6 +1755,8 @@ ...@@ -1753,6 +1755,8 @@
"Failed to load key status": "Failed to load key status", "Failed to load key status": "Failed to load key status",
"Failed to load logs": "Failed to load logs", "Failed to load logs": "Failed to load logs",
"Failed to load Passkey status": "Failed to load Passkey status", "Failed to load Passkey status": "Failed to load Passkey status",
"Failed to load playground groups": "Failed to load playground groups",
"Failed to load playground models": "Failed to load playground models",
"Failed to load profile": "Failed to load profile", "Failed to load profile": "Failed to load profile",
"Failed to load redemption codes": "Failed to load redemption codes", "Failed to load redemption codes": "Failed to load redemption codes",
"Failed to load setup data": "Failed to load setup data", "Failed to load setup data": "Failed to load setup data",
...@@ -1779,7 +1783,9 @@ ...@@ -1779,7 +1783,9 @@
"Failed to search API keys": "Failed to search API keys", "Failed to search API keys": "Failed to search API keys",
"Failed to search redemption codes": "Failed to search redemption codes", "Failed to search redemption codes": "Failed to search redemption codes",
"Failed to search users": "Failed to search users", "Failed to search users": "Failed to search users",
"Failed to send reset email": "Failed to send reset email",
"Failed to send verification code": "Failed to send verification code", "Failed to send verification code": "Failed to send verification code",
"Failed to send verification email": "Failed to send verification email",
"Failed to set tag": "Failed to set tag", "Failed to set tag": "Failed to set tag",
"Failed to setup 2FA": "Failed to setup 2FA", "Failed to setup 2FA": "Failed to setup 2FA",
"Failed to start {{provider}} login": "Failed to start {{provider}} login", "Failed to start {{provider}} login": "Failed to start {{provider}} login",
...@@ -1822,6 +1828,7 @@ ...@@ -1822,6 +1828,7 @@
"Fee": "Fee", "Fee": "Fee",
"Fee Amount": "Fee Amount", "Fee Amount": "Fee Amount",
"Fetch available models for:": "Fetch available models for:", "Fetch available models for:": "Fetch available models for:",
"Fetch available models from upstream": "Fetch available models from upstream",
"Fetch from Upstream": "Fetch from Upstream", "Fetch from Upstream": "Fetch from Upstream",
"Fetch Models": "Fetch Models", "Fetch Models": "Fetch Models",
"Fetched {{count}} model(s) from upstream": "Fetched {{count}} model(s) from upstream", "Fetched {{count}} model(s) from upstream": "Fetched {{count}} model(s) from upstream",
...@@ -2445,10 +2452,12 @@ ...@@ -2445,10 +2452,12 @@
"Maximum 500 characters. Supports Markdown and HTML.": "Maximum 500 characters. Supports Markdown and HTML.", "Maximum 500 characters. Supports Markdown and HTML.": "Maximum 500 characters. Supports Markdown and HTML.",
"Maximum check-in quota": "Maximum check-in quota", "Maximum check-in quota": "Maximum check-in quota",
"Maximum input window": "Maximum input window", "Maximum input window": "Maximum input window",
"Maximum number of tokens each user can create. Default 1000. Setting too large may affect performance.": "Maximum number of tokens each user can create. Default 1000. Setting too large may affect performance.",
"Maximum number of tokens in the response": "Maximum number of tokens in the response", "Maximum number of tokens in the response": "Maximum number of tokens in the response",
"Maximum quota amount awarded for check-in": "Maximum quota amount awarded for check-in", "Maximum quota amount awarded for check-in": "Maximum quota amount awarded for check-in",
"Maximum tokens including hidden reasoning tokens": "Maximum tokens including hidden reasoning tokens", "Maximum tokens including hidden reasoning tokens": "Maximum tokens including hidden reasoning tokens",
"Maximum tokens per response": "Maximum tokens per response", "Maximum tokens per response": "Maximum tokens per response",
"Maximum tokens per user": "Maximum tokens per user",
"maxRequests ≥ 0, maxSuccess ≥ 1, both ≤ 2,147,483,647": "maxRequests ≥ 0, maxSuccess ≥ 1, both ≤ 2,147,483,647", "maxRequests ≥ 0, maxSuccess ≥ 1, both ≤ 2,147,483,647": "maxRequests ≥ 0, maxSuccess ≥ 1, both ≤ 2,147,483,647",
"May be used for training by upstream provider": "May be used for training by upstream provider", "May be used for training by upstream provider": "May be used for training by upstream provider",
"Media pricing": "Media pricing", "Media pricing": "Media pricing",
...@@ -2517,7 +2526,9 @@ ...@@ -2517,7 +2526,9 @@
"Model Mapping (JSON)": "Model Mapping (JSON)", "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 a JSON object like": "Model Mapping must be a JSON object like",
"Model mapping must be a JSON object with string values": "Model mapping must be a JSON object with string values", "Model mapping must be a JSON object with string values": "Model mapping must be a JSON object with string values",
"Model mapping must be a valid JSON object": "Model mapping must be a valid JSON object",
"Model mapping must be valid JSON": "Model mapping must be valid JSON", "Model mapping must be valid JSON": "Model mapping must be valid JSON",
"Model mapping must be valid JSON format": "Model mapping must be valid JSON format",
"Model mapping values must be strings": "Model mapping values must be strings", "Model mapping values must be strings": "Model mapping values must be strings",
"Model name": "Model name", "Model name": "Model name",
"Model Name": "Model Name", "Model Name": "Model Name",
...@@ -2748,6 +2759,7 @@ ...@@ -2748,6 +2759,7 @@
"No missing models found.": "No missing models found.", "No missing models found.": "No missing models found.",
"No model found.": "No model 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 model mappings configured. Click \"Add Mapping\" to get started.": "No model mappings configured. Click \"Add Mapping\" to get started.",
"No model price changes to save": "No model price changes to save",
"No models available": "No models available", "No models available": "No models available",
"No models available in this category": "No models available in this category", "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 available. Create your first model to get started.": "No models available. Create your first model to get started.",
...@@ -2760,6 +2772,7 @@ ...@@ -2760,6 +2772,7 @@
"No models match the selected filters": "No models match the selected filters", "No models match the selected filters": "No models match the selected filters",
"No models match your current filters.": "No models match your current filters.", "No models match your current filters.": "No models match your current filters.",
"No models match your search": "No models match your search", "No models match your search": "No models match your search",
"No models matched your search.": "No models matched your search.",
"No models selected": "No models selected", "No models selected": "No models selected",
"No models to add": "No models to add", "No models to add": "No models to add",
"No models to copy": "No models to copy", "No models to copy": "No models to copy",
...@@ -3072,6 +3085,7 @@ ...@@ -3072,6 +3085,7 @@
"Password Login": "Password Login", "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": "Password must be at least 8 characters",
"Password must be at least 8 characters long": "Password must be at least 8 characters long", "Password must be at least 8 characters long": "Password must be at least 8 characters long",
"Password must be between 8 and 20 characters": "Password must be between 8 and 20 characters",
"Password Registration": "Password Registration", "Password Registration": "Password Registration",
"Password reset and copied to clipboard: {{password}}": "Password reset and copied to clipboard: {{password}}", "Password reset and copied to clipboard: {{password}}": "Password reset and copied to clipboard: {{password}}",
"Password reset: {{password}}": "Password reset: {{password}}", "Password reset: {{password}}": "Password reset: {{password}}",
...@@ -3323,6 +3337,7 @@ ...@@ -3323,6 +3337,7 @@
"Prompt Details": "Prompt Details", "Prompt Details": "Prompt Details",
"Prompt price ($/1M tokens)": "Prompt price ($/1M tokens)", "Prompt price ($/1M tokens)": "Prompt price ($/1M tokens)",
"Proprietary": "Proprietary", "Proprietary": "Proprietary",
"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 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 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 privacy policy": "Provide Markdown, HTML, or an external URL for the privacy policy",
...@@ -3860,6 +3875,7 @@ ...@@ -3860,6 +3875,7 @@
"Send a request": "Send a request", "Send a request": "Send a request",
"Send code": "Send code", "Send code": "Send code",
"Send email alerts when a user falls below this quota": "Send email alerts when a user falls below this quota", "Send email alerts when a user falls below this quota": "Send email alerts when a user falls below this quota",
"Send reset email": "Send reset email",
"Sending...": "Sending...", "Sending...": "Sending...",
"Sensitive Words": "Sensitive Words", "Sensitive Words": "Sensitive Words",
"Sent the API key to FluentRead.": "Sent the API key to FluentRead.", "Sent the API key to FluentRead.": "Sent the API key to FluentRead.",
...@@ -4240,6 +4256,7 @@ ...@@ -4240,6 +4256,7 @@
"This action cannot be undone.": "This action cannot be undone.", "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 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 action will permanently remove 2FA protection from your account.": "This action will permanently remove 2FA protection from your account.",
"This channel has no configured models.": "This channel has no configured models.",
"This channel is not an Ollama channel.": "This channel is not an Ollama channel.", "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 channel type does not support fetching models": "This channel type does not support fetching models",
"This channel type requires additional configuration": "This channel type requires additional configuration", "This channel type requires additional configuration": "This channel type requires additional configuration",
...@@ -4326,6 +4343,7 @@ ...@@ -4326,6 +4343,7 @@
"Token Endpoint (Optional)": "Token Endpoint (Optional)", "Token Endpoint (Optional)": "Token Endpoint (Optional)",
"Token estimator": "Token estimator", "Token estimator": "Token estimator",
"Token group": "Token group", "Token group": "Token group",
"Token Limits": "Token Limits",
"Token management": "Token management", "Token management": "Token management",
"Token Management": "Token Management", "Token Management": "Token Management",
"Token Mgmt": "Token Mgmt", "Token Mgmt": "Token Mgmt",
...@@ -4524,6 +4542,7 @@ ...@@ -4524,6 +4542,7 @@
"Updated system setting {{key}}": "Updated system setting {{key}}", "Updated system setting {{key}}": "Updated system setting {{key}}",
"Updated user {{username}} (ID: {{id}})": "Updated user {{username}} (ID: {{id}})", "Updated user {{username}} (ID: {{id}})": "Updated user {{username}} (ID: {{id}})",
"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.", "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.",
"Updating...": "Updating...",
"Upgrade Group": "Upgrade Group", "Upgrade Group": "Upgrade Group",
"Upgrade plaintext SMTP connection with STARTTLS before authentication": "Upgrade plaintext SMTP connection with STARTTLS before authentication", "Upgrade plaintext SMTP connection with STARTTLS before authentication": "Upgrade plaintext SMTP connection with STARTTLS before authentication",
"Upload": "Upload", "Upload": "Upload",
...@@ -4728,6 +4747,7 @@ ...@@ -4728,6 +4747,7 @@
"Visual Parameter Override": "Visual Parameter Override", "Visual Parameter Override": "Visual Parameter Override",
"VolcEngine": "VolcEngine", "VolcEngine": "VolcEngine",
"vs. previous": "vs. previous", "vs. previous": "vs. previous",
"Waffo": "Waffo",
"Waffo Aggregator Gateway": "Waffo Aggregator Gateway", "Waffo Aggregator Gateway": "Waffo Aggregator Gateway",
"Waffo Pancake Dashboard": "Waffo Pancake Dashboard", "Waffo Pancake Dashboard": "Waffo Pancake Dashboard",
"Waffo Pancake MoR": "Waffo Pancake MoR", "Waffo Pancake MoR": "Waffo Pancake MoR",
......
...@@ -370,6 +370,7 @@ ...@@ -370,6 +370,7 @@
"API Key disabled successfully": "Clé API désactivée avec succès", "API Key disabled successfully": "Clé API désactivée avec succès",
"API Key enabled successfully": "Clé API activée avec succès", "API Key enabled successfully": "Clé API activée avec succès",
"API key from the provider": "Clé API du fournisseur", "API key from the provider": "Clé API du fournisseur",
"API key is loading, please try again in a moment": "La clé API est en cours de chargement, veuillez réessayer dans un instant",
"API key is required": "La clé API est requise", "API key is required": "La clé API est requise",
"API Key mode (does not support batch creation)": "Mode clé API (ne prend pas en charge la création par lots)", "API Key mode (does not support batch creation)": "Mode clé API (ne prend pas en charge la création par lots)",
"API Key mode: use APIKey|Region": "Mode clé API : utiliser APIKey|Region", "API Key mode: use APIKey|Region": "Mode clé API : utiliser APIKey|Region",
...@@ -1701,6 +1702,7 @@ ...@@ -1701,6 +1702,7 @@
"Failed to copy keys": "Échec de la copie des clés", "Failed to copy keys": "Échec de la copie des clés",
"Failed to copy model names": "Échec de la copie des noms de modèles", "Failed to copy model names": "Échec de la copie des noms de modèles",
"Failed to copy to clipboard": "Échec de la copie dans le presse-papiers", "Failed to copy to clipboard": "Échec de la copie dans le presse-papiers",
"Failed to create account": "Échec de la création du compte",
"Failed to create API key": "Échec de la création de la clé API", "Failed to create API key": "Échec de la création de la clé API",
"Failed to create channel": "Échec de la création du canal", "Failed to create channel": "Échec de la création du canal",
"Failed to create deployment": "Échec de la création du déploiement", "Failed to create deployment": "Échec de la création du déploiement",
...@@ -1753,6 +1755,8 @@ ...@@ -1753,6 +1755,8 @@
"Failed to load key status": "Échec du chargement du statut des clés", "Failed to load key status": "Échec du chargement du statut des clés",
"Failed to load logs": "Échec du chargement des journaux", "Failed to load logs": "Échec du chargement des journaux",
"Failed to load Passkey status": "Échec du chargement du statut Passkey", "Failed to load Passkey status": "Échec du chargement du statut Passkey",
"Failed to load playground groups": "Échec du chargement des groupes du playground",
"Failed to load playground models": "Échec du chargement des modèles du playground",
"Failed to load profile": "Échec du chargement du profil", "Failed to load profile": "Échec du chargement du profil",
"Failed to load redemption codes": "Échec du chargement des codes d'échange", "Failed to load redemption codes": "Échec du chargement des codes d'échange",
"Failed to load setup data": "Échec du chargement des données de configuration", "Failed to load setup data": "Échec du chargement des données de configuration",
...@@ -1779,7 +1783,9 @@ ...@@ -1779,7 +1783,9 @@
"Failed to search API keys": "Échec de la recherche des Clés API", "Failed to search API keys": "Échec de la recherche des Clés API",
"Failed to search redemption codes": "Échec de la recherche des codes d'échange", "Failed to search redemption codes": "Échec de la recherche des codes d'échange",
"Failed to search users": "Échec de la recherche des utilisateurs", "Failed to search users": "Échec de la recherche des utilisateurs",
"Failed to send reset email": "Échec de l'envoi de l'e-mail de réinitialisation",
"Failed to send verification code": "Échec de l'envoi du code de vérification", "Failed to send verification code": "Échec de l'envoi du code de vérification",
"Failed to send verification email": "Échec de l'envoi de l'e-mail de vérification",
"Failed to set tag": "Échec de la définition de l'étiquette", "Failed to set tag": "Échec de la définition de l'étiquette",
"Failed to setup 2FA": "Échec de la configuration de 2FA", "Failed to setup 2FA": "Échec de la configuration de 2FA",
"Failed to start {{provider}} login": "Échec du démarrage de la connexion {{provider}}", "Failed to start {{provider}} login": "Échec du démarrage de la connexion {{provider}}",
...@@ -1822,6 +1828,7 @@ ...@@ -1822,6 +1828,7 @@
"Fee": "Frais", "Fee": "Frais",
"Fee Amount": "Montant des frais", "Fee Amount": "Montant des frais",
"Fetch available models for:": "Récupérer les modèles disponibles pour :", "Fetch available models for:": "Récupérer les modèles disponibles pour :",
"Fetch available models from upstream": "Récupérer les modèles disponibles en amont",
"Fetch from Upstream": "Récupérer depuis l'amont", "Fetch from Upstream": "Récupérer depuis l'amont",
"Fetch Models": "Récupérer les modèles", "Fetch Models": "Récupérer les modèles",
"Fetched {{count}} model(s) from upstream": "{{count}} modèle(s) récupéré(s) depuis l'amont", "Fetched {{count}} model(s) from upstream": "{{count}} modèle(s) récupéré(s) depuis l'amont",
...@@ -2445,10 +2452,12 @@ ...@@ -2445,10 +2452,12 @@
"Maximum 500 characters. Supports Markdown and HTML.": "Maximum 500 caractères. Prend en charge Markdown et HTML.", "Maximum 500 characters. Supports Markdown and HTML.": "Maximum 500 caractères. Prend en charge Markdown et HTML.",
"Maximum check-in quota": "Quota maximum de connexion", "Maximum check-in quota": "Quota maximum de connexion",
"Maximum input window": "Fenêtre d'entrée maximale", "Maximum input window": "Fenêtre d'entrée maximale",
"Maximum number of tokens each user can create. Default 1000. Setting too large may affect performance.": "Nombre maximum de jetons que chaque utilisateur peut créer. Par défaut 1000. Une valeur trop élevée peut affecter les performances.",
"Maximum number of tokens in the response": "Nombre maximum de jetons dans la réponse", "Maximum number of tokens in the response": "Nombre maximum de jetons dans la réponse",
"Maximum quota amount awarded for check-in": "Montant maximum de quota attribué pour la connexion", "Maximum quota amount awarded for check-in": "Montant maximum de quota attribué pour la connexion",
"Maximum tokens including hidden reasoning tokens": "Jetons maximum, y compris les jetons de raisonnement masqués", "Maximum tokens including hidden reasoning tokens": "Jetons maximum, y compris les jetons de raisonnement masqués",
"Maximum tokens per response": "Nombre maximal de jetons par réponse", "Maximum tokens per response": "Nombre maximal de jetons par réponse",
"Maximum tokens per user": "Nombre maximum de jetons par utilisateur",
"maxRequests ≥ 0, maxSuccess ≥ 1, both ≤ 2,147,483,647": "maxRequests ≥ 0, maxSuccess ≥ 1, les deux ≤ 2 147 483 647", "maxRequests ≥ 0, maxSuccess ≥ 1, both ≤ 2,147,483,647": "maxRequests ≥ 0, maxSuccess ≥ 1, les deux ≤ 2 147 483 647",
"May be used for training by upstream provider": "Peut être utilisé pour l'entraînement par le fournisseur amont", "May be used for training by upstream provider": "Peut être utilisé pour l'entraînement par le fournisseur amont",
"Media pricing": "Tarification multimédia", "Media pricing": "Tarification multimédia",
...@@ -2517,7 +2526,9 @@ ...@@ -2517,7 +2526,9 @@
"Model Mapping (JSON)": "Mappage de modèle (JSON)", "Model Mapping (JSON)": "Mappage de modèle (JSON)",
"Model Mapping must be a JSON object like": "Le mappage de modèle doit être un objet JSON tel que", "Model Mapping must be a JSON object like": "Le mappage de modèle doit être un objet JSON tel que",
"Model mapping must be a JSON object with string values": "Le mappage de modèles doit être un objet JSON avec des valeurs de chaîne", "Model mapping must be a JSON object with string values": "Le mappage de modèles doit être un objet JSON avec des valeurs de chaîne",
"Model mapping must be a valid JSON object": "Le mapping des modèles doit être un objet JSON valide",
"Model mapping must be valid JSON": "La cartographie des modèles doit être un JSON valide", "Model mapping must be valid JSON": "La cartographie des modèles doit être un JSON valide",
"Model mapping must be valid JSON format": "Le mapping des modèles doit être au format JSON valide",
"Model mapping values must be strings": "Les valeurs du mappage de modèles doivent être des chaînes", "Model mapping values must be strings": "Les valeurs du mappage de modèles doivent être des chaînes",
"Model name": "Nom du modèle", "Model name": "Nom du modèle",
"Model Name": "Nom du modèle", "Model Name": "Nom du modèle",
...@@ -2748,6 +2759,7 @@ ...@@ -2748,6 +2759,7 @@
"No missing models found.": "Aucun modèle manquant trouvé.", "No missing models found.": "Aucun modèle manquant trouvé.",
"No model found.": "Aucun modèle trouvé.", "No model found.": "Aucun modèle trouvé.",
"No model mappings configured. Click \"Add Mapping\" to get started.": "Aucun mappage de modèle configuré. Cliquez sur « Ajouter un mappage » pour commencer.", "No model mappings configured. Click \"Add Mapping\" to get started.": "Aucun mappage de modèle configuré. Cliquez sur « Ajouter un mappage » pour commencer.",
"No model price changes to save": "Aucun changement de prix de modèle à sauvegarder",
"No models available": "Aucun modèle disponible", "No models available": "Aucun modèle disponible",
"No models available in this category": "Aucun modèle disponible dans cette catégorie", "No models available in this category": "Aucun modèle disponible dans cette catégorie",
"No models available. Create your first model to get started.": "Aucun modèle disponible. Créez votre premier modèle pour commencer.", "No models available. Create your first model to get started.": "Aucun modèle disponible. Créez votre premier modèle pour commencer.",
...@@ -2760,6 +2772,7 @@ ...@@ -2760,6 +2772,7 @@
"No models match the selected filters": "Aucun modèle ne correspond aux filtres", "No models match the selected filters": "Aucun modèle ne correspond aux filtres",
"No models match your current filters.": "Aucun modèle ne correspond à vos filtres actuels.", "No models match your current filters.": "Aucun modèle ne correspond à vos filtres actuels.",
"No models match your search": "Aucun modèle ne correspond à votre recherche", "No models match your search": "Aucun modèle ne correspond à votre recherche",
"No models matched your search.": "Aucun modèle ne correspond à votre recherche.",
"No models selected": "Aucun modèle sélectionné", "No models selected": "Aucun modèle sélectionné",
"No models to add": "Aucun modèle à ajouter", "No models to add": "Aucun modèle à ajouter",
"No models to copy": "Aucun modèle à copier", "No models to copy": "Aucun modèle à copier",
...@@ -3072,6 +3085,7 @@ ...@@ -3072,6 +3085,7 @@
"Password Login": "Connexion par mot de passe", "Password Login": "Connexion par mot de passe",
"Password must be at least 8 characters": "Le mot de passe doit comporter au moins 8 caractères", "Password must be at least 8 characters": "Le mot de passe doit comporter au moins 8 caractères",
"Password must be at least 8 characters long": "Le mot de passe doit comporter au moins 8 caractères", "Password must be at least 8 characters long": "Le mot de passe doit comporter au moins 8 caractères",
"Password must be between 8 and 20 characters": "Le mot de passe doit comporter entre 8 et 20 caractères",
"Password Registration": "Inscription par mot de passe", "Password Registration": "Inscription par mot de passe",
"Password reset and copied to clipboard: {{password}}": "Mot de passe réinitialisé et copié dans le presse-papiers : {{password}}", "Password reset and copied to clipboard: {{password}}": "Mot de passe réinitialisé et copié dans le presse-papiers : {{password}}",
"Password reset: {{password}}": "Mot de passe réinitialisé : {{password}}", "Password reset: {{password}}": "Mot de passe réinitialisé : {{password}}",
...@@ -3323,6 +3337,7 @@ ...@@ -3323,6 +3337,7 @@
"Prompt Details": "Détails de l'invite", "Prompt Details": "Détails de l'invite",
"Prompt price ($/1M tokens)": "Prix du prompt ($/1M de jetons)", "Prompt price ($/1M tokens)": "Prix du prompt ($/1M de jetons)",
"Proprietary": "Propriétaire", "Proprietary": "Propriétaire",
"Protect login and registration with Cloudflare Turnstile": "Protéger la connexion et l'inscription avec Cloudflare Turnstile",
"Provide a JSON object where each key maps to an endpoint definition.": "Fournissez un objet JSON où chaque clé correspond à une définition de point de terminaison.", "Provide a JSON object where each key maps to an endpoint definition.": "Fournissez un objet JSON où chaque clé correspond à une définition de point de terminaison.",
"Provide a valid URL starting with http:// or https://": "Fournissez une URL valide commençant par http:// ou https://", "Provide a valid URL starting with http:// or https://": "Fournissez une URL valide commençant par http:// ou https://",
"Provide Markdown, HTML, or an external URL for the privacy policy": "Fournir du Markdown, du HTML ou une URL externe pour la politique de confidentialité", "Provide Markdown, HTML, or an external URL for the privacy policy": "Fournir du Markdown, du HTML ou une URL externe pour la politique de confidentialité",
...@@ -3860,6 +3875,7 @@ ...@@ -3860,6 +3875,7 @@
"Send a request": "Envoyer une requête", "Send a request": "Envoyer une requête",
"Send code": "Envoyer le code", "Send code": "Envoyer le code",
"Send email alerts when a user falls below this quota": "Envoyer des alertes par e-mail lorsqu'un utilisateur descend en dessous de ce quota", "Send email alerts when a user falls below this quota": "Envoyer des alertes par e-mail lorsqu'un utilisateur descend en dessous de ce quota",
"Send reset email": "Envoyer l'e-mail de réinitialisation",
"Sending...": "Envoi en cours...", "Sending...": "Envoi en cours...",
"Sensitive Words": "Mots sensibles", "Sensitive Words": "Mots sensibles",
"Sent the API key to FluentRead.": "Clé API envoyée à FluentRead.", "Sent the API key to FluentRead.": "Clé API envoyée à FluentRead.",
...@@ -4240,6 +4256,7 @@ ...@@ -4240,6 +4256,7 @@
"This action cannot be undone.": "Cette action est irréversible.", "This action cannot be undone.": "Cette action est irréversible.",
"This action cannot be undone. This will permanently delete your account and remove all your data from our servers.": "Cette action est irréversible. Cela supprimera définitivement votre compte et toutes vos données de nos serveurs.", "This action cannot be undone. This will permanently delete your account and remove all your data from our servers.": "Cette action est irréversible. Cela supprimera définitivement votre compte et toutes vos données de nos serveurs.",
"This action will permanently remove 2FA protection from your account.": "Cette action supprimera définitivement la protection 2FA de votre compte.", "This action will permanently remove 2FA protection from your account.": "Cette action supprimera définitivement la protection 2FA de votre compte.",
"This channel has no configured models.": "Ce canal n'a aucun modèle configuré.",
"This channel is not an Ollama channel.": "Ce canal n'est pas un canal Ollama.", "This channel is not an Ollama channel.": "Ce canal n'est pas un canal Ollama.",
"This channel type does not support fetching models": "Ce type de canal ne prend pas en charge la récupération de modèles", "This channel type does not support fetching models": "Ce type de canal ne prend pas en charge la récupération de modèles",
"This channel type requires additional configuration": "Ce type de canal nécessite une configuration supplémentaire", "This channel type requires additional configuration": "Ce type de canal nécessite une configuration supplémentaire",
...@@ -4326,6 +4343,7 @@ ...@@ -4326,6 +4343,7 @@
"Token Endpoint (Optional)": "Point de terminaison du jeton (Facultatif)", "Token Endpoint (Optional)": "Point de terminaison du jeton (Facultatif)",
"Token estimator": "Estimation des jetons", "Token estimator": "Estimation des jetons",
"Token group": "Groupe de jetons", "Token group": "Groupe de jetons",
"Token Limits": "Limites de jetons",
"Token management": "Gestion des jetons", "Token management": "Gestion des jetons",
"Token Management": "Gestion des tokens", "Token Management": "Gestion des tokens",
"Token Mgmt": "Gestion des jetons", "Token Mgmt": "Gestion des jetons",
...@@ -4524,6 +4542,7 @@ ...@@ -4524,6 +4542,7 @@
"Updated system setting {{key}}": "Paramètre système {{key}} mis à jour", "Updated system setting {{key}}": "Paramètre système {{key}} mis à jour",
"Updated user {{username}} (ID: {{id}})": "Utilisateur {{username}} mis à jour (ID : {{id}})", "Updated user {{username}} (ID: {{id}})": "Utilisateur {{username}} mis à jour (ID : {{id}})",
"Updating all channel balances. This may take a while. Please refresh to see results.": "Mise à jour de tous les soldes des canaux. Cela peut prendre un certain temps. Veuillez actualiser pour voir les résultats.", "Updating all channel balances. This may take a while. Please refresh to see results.": "Mise à jour de tous les soldes des canaux. Cela peut prendre un certain temps. Veuillez actualiser pour voir les résultats.",
"Updating...": "Mise à jour...",
"Upgrade Group": "Groupe de mise à niveau", "Upgrade Group": "Groupe de mise à niveau",
"Upgrade plaintext SMTP connection with STARTTLS before authentication": "Mettre à niveau la connexion SMTP en clair avec STARTTLS avant l'authentification", "Upgrade plaintext SMTP connection with STARTTLS before authentication": "Mettre à niveau la connexion SMTP en clair avec STARTTLS avant l'authentification",
"Upload": "Téléverser", "Upload": "Téléverser",
...@@ -4728,6 +4747,7 @@ ...@@ -4728,6 +4747,7 @@
"Visual Parameter Override": "Remplacement visuel des paramètres", "Visual Parameter Override": "Remplacement visuel des paramètres",
"VolcEngine": "VolcEngine", "VolcEngine": "VolcEngine",
"vs. previous": "vs. précédent", "vs. previous": "vs. précédent",
"Waffo": "Waffo",
"Waffo Aggregator Gateway": "Passerelle agrégatrice Waffo", "Waffo Aggregator Gateway": "Passerelle agrégatrice Waffo",
"Waffo Pancake Dashboard": "Waffo Pancake Dashboard", "Waffo Pancake Dashboard": "Waffo Pancake Dashboard",
"Waffo Pancake MoR": "Waffo Pancake MoR", "Waffo Pancake MoR": "Waffo Pancake MoR",
......
...@@ -370,6 +370,7 @@ ...@@ -370,6 +370,7 @@
"API Key disabled successfully": "APIキーが正常に無効化されました", "API Key disabled successfully": "APIキーが正常に無効化されました",
"API Key enabled successfully": "APIキーが正常に有効化されました", "API Key enabled successfully": "APIキーが正常に有効化されました",
"API key from the provider": "プロバイダからのAPIキー", "API key from the provider": "プロバイダからのAPIキー",
"API key is loading, please try again in a moment": "APIキーを読み込み中です。しばらくしてからもう一度お試しください",
"API key is required": "APIキーが必要です", "API key is required": "APIキーが必要です",
"API Key mode (does not support batch creation)": "APIキー モード(一括作成には対応していません)", "API Key mode (does not support batch creation)": "APIキー モード(一括作成には対応していません)",
"API Key mode: use APIKey|Region": "APIキーモード: use APIKey | Region", "API Key mode: use APIKey|Region": "APIキーモード: use APIKey | Region",
...@@ -1701,6 +1702,7 @@ ...@@ -1701,6 +1702,7 @@
"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 account": "アカウントの作成に失敗しました",
"Failed to create API key": "APIキーの作成に失敗しました", "Failed to create API key": "APIキーの作成に失敗しました",
"Failed to create channel": "チャネルの作成に失敗しました", "Failed to create channel": "チャネルの作成に失敗しました",
"Failed to create deployment": "デプロイの作成に失敗しました", "Failed to create deployment": "デプロイの作成に失敗しました",
...@@ -1753,6 +1755,8 @@ ...@@ -1753,6 +1755,8 @@
"Failed to load key status": "キー状態の読み込みに失敗しました", "Failed to load key status": "キー状態の読み込みに失敗しました",
"Failed to load logs": "ログの読み込みに失敗しました", "Failed to load logs": "ログの読み込みに失敗しました",
"Failed to load Passkey status": "Passkeyのステータスの読み込みに失敗しました", "Failed to load Passkey status": "Passkeyのステータスの読み込みに失敗しました",
"Failed to load playground groups": "プレイグラウンドのグループ読み込みに失敗しました",
"Failed to load playground models": "プレイグラウンドのモデル読み込みに失敗しました",
"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": "セットアップデータの読み込みに失敗しました",
...@@ -1779,7 +1783,9 @@ ...@@ -1779,7 +1783,9 @@
"Failed to search API keys": "APIキーの検索に失敗しました", "Failed to search API keys": "APIキーの検索に失敗しました",
"Failed to search redemption codes": "引き換えコードの検索に失敗しました", "Failed to search redemption codes": "引き換えコードの検索に失敗しました",
"Failed to search users": "ユーザーの検索に失敗しました", "Failed to search users": "ユーザーの検索に失敗しました",
"Failed to send reset email": "リセットメールの送信に失敗しました",
"Failed to send verification code": "認証コードの送信に失敗しました", "Failed to send verification code": "認証コードの送信に失敗しました",
"Failed to send verification email": "確認メールの送信に失敗しました",
"Failed to set tag": "タグの設定に失敗しました", "Failed to set tag": "タグの設定に失敗しました",
"Failed to setup 2FA": "2FA の設定に失敗しました", "Failed to setup 2FA": "2FA の設定に失敗しました",
"Failed to start {{provider}} login": "{{provider}} ログインの開始に失敗しました", "Failed to start {{provider}} login": "{{provider}} ログインの開始に失敗しました",
...@@ -1822,6 +1828,7 @@ ...@@ -1822,6 +1828,7 @@
"Fee": "手数料", "Fee": "手数料",
"Fee Amount": "料金額", "Fee Amount": "料金額",
"Fetch available models for:": "利用可能なモデルを取得:", "Fetch available models for:": "利用可能なモデルを取得:",
"Fetch available models from upstream": "アップストリームから利用可能なモデルを取得する",
"Fetch from Upstream": "Upstreamからフェッチ", "Fetch from Upstream": "Upstreamからフェッチ",
"Fetch Models": "モデルを取得", "Fetch Models": "モデルを取得",
"Fetched {{count}} model(s) from upstream": "上流から {{count}} 個のモデルを取得しました", "Fetched {{count}} model(s) from upstream": "上流から {{count}} 個のモデルを取得しました",
...@@ -2445,10 +2452,12 @@ ...@@ -2445,10 +2452,12 @@
"Maximum 500 characters. Supports Markdown and HTML.": "最大500文字。MarkdownとHTMLをサポートしています。", "Maximum 500 characters. Supports Markdown and HTML.": "最大500文字。MarkdownとHTMLをサポートしています。",
"Maximum check-in quota": "最大チェックインクォータ", "Maximum check-in quota": "最大チェックインクォータ",
"Maximum input window": "最大入力ウィンドウ", "Maximum input window": "最大入力ウィンドウ",
"Maximum number of tokens each user can create. Default 1000. Setting too large may affect performance.": "各ユーザーが作成できる最大トークン数。デフォルトは 1000。大きすぎる値はパフォーマンスに影響を与える可能性があります。",
"Maximum number of tokens in the response": "レスポンスの最大トークン数", "Maximum number of tokens in the response": "レスポンスの最大トークン数",
"Maximum quota amount awarded for check-in": "チェックインで付与される最大クォータ量", "Maximum quota amount awarded for check-in": "チェックインで付与される最大クォータ量",
"Maximum tokens including hidden reasoning tokens": "隠れ推論トークンを含む最大トークン数", "Maximum tokens including hidden reasoning tokens": "隠れ推論トークンを含む最大トークン数",
"Maximum tokens per response": "1 回の応答あたりの最大トークン数", "Maximum tokens per response": "1 回の応答あたりの最大トークン数",
"Maximum tokens per user": "ユーザーあたりの最大トークン数",
"maxRequests ≥ 0, maxSuccess ≥ 1, both ≤ 2,147,483,647": "maxRequests ≥ 0、maxSuccess ≥ 1、両方とも ≤ 2,147,483,647", "maxRequests ≥ 0, maxSuccess ≥ 1, both ≤ 2,147,483,647": "maxRequests ≥ 0、maxSuccess ≥ 1、両方とも ≤ 2,147,483,647",
"May be used for training by upstream provider": "上流プロバイダーが学習に利用する可能性があります", "May be used for training by upstream provider": "上流プロバイダーが学習に利用する可能性があります",
"Media pricing": "メディア料金", "Media pricing": "メディア料金",
...@@ -2517,7 +2526,9 @@ ...@@ -2517,7 +2526,9 @@
"Model Mapping (JSON)": "モデルマッピング (JSON)", "Model Mapping (JSON)": "モデルマッピング (JSON)",
"Model Mapping must be a JSON object like": "モデルマッピングは次のようなJSONオブジェクトである必要があります", "Model Mapping must be a JSON object like": "モデルマッピングは次のようなJSONオブジェクトである必要があります",
"Model mapping must be a JSON object with string values": "モデルマッピングは文字列値を持つ JSON オブジェクトである必要があります", "Model mapping must be a JSON object with string values": "モデルマッピングは文字列値を持つ JSON オブジェクトである必要があります",
"Model mapping must be a valid JSON object": "モデルマッピングは有効なJSONオブジェクトである必要があります",
"Model mapping must be valid JSON": "モデルマッピングは有効な JSON である必要があります", "Model mapping must be valid JSON": "モデルマッピングは有効な JSON である必要があります",
"Model mapping must be valid JSON format": "モデルマッピングは有効なJSON形式である必要があります",
"Model mapping values must be strings": "モデルマッピングの値は文字列である必要があります", "Model mapping values must be strings": "モデルマッピングの値は文字列である必要があります",
"Model name": "モデル名", "Model name": "モデル名",
"Model Name": "モデル名", "Model Name": "モデル名",
...@@ -2748,6 +2759,7 @@ ...@@ -2748,6 +2759,7 @@
"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 model price changes to save": "保存するモデル価格の変更はありません",
"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.": "利用可能なモデルがありません。最初のモデルを作成して開始してください。",
...@@ -2760,6 +2772,7 @@ ...@@ -2760,6 +2772,7 @@
"No models match the selected filters": "条件に一致するモデルはありません", "No models match the selected filters": "条件に一致するモデルはありません",
"No models match your current filters.": "現在のフィルターに一致するモデルはありません。", "No models match your current filters.": "現在のフィルターに一致するモデルはありません。",
"No models match your search": "検索に一致するモデルがありません", "No models match your search": "検索に一致するモデルがありません",
"No models matched your search.": "検索条件に一致するモデルはありません。",
"No models selected": "モデルが選択されていません", "No models selected": "モデルが選択されていません",
"No models to add": "追加するモデルがありません", "No models to add": "追加するモデルがありません",
"No models to copy": "コピーするモデルがありません", "No models to copy": "コピーするモデルがありません",
...@@ -3072,6 +3085,7 @@ ...@@ -3072,6 +3085,7 @@
"Password Login": "パスワードログイン", "Password Login": "パスワードログイン",
"Password must be at least 8 characters": "パスワードは少なくとも8文字である必要があります", "Password must be at least 8 characters": "パスワードは少なくとも8文字である必要があります",
"Password must be at least 8 characters long": "パスワードは8文字以上である必要があります", "Password must be at least 8 characters long": "パスワードは8文字以上である必要があります",
"Password must be between 8 and 20 characters": "パスワードは8文字以上20文字以下である必要があります",
"Password Registration": "パスワード登録", "Password Registration": "パスワード登録",
"Password reset and copied to clipboard: {{password}}": "パスワードがリセットされ、クリップボードにコピーされました:{{password}}", "Password reset and copied to clipboard: {{password}}": "パスワードがリセットされ、クリップボードにコピーされました:{{password}}",
"Password reset: {{password}}": "パスワードがリセットされました:{{password}}", "Password reset: {{password}}": "パスワードがリセットされました:{{password}}",
...@@ -3323,6 +3337,7 @@ ...@@ -3323,6 +3337,7 @@
"Prompt Details": "プロンプトの詳細", "Prompt Details": "プロンプトの詳細",
"Prompt price ($/1M tokens)": "プロンプト価格 (100万トークンあたり$)", "Prompt price ($/1M tokens)": "プロンプト価格 (100万トークンあたり$)",
"Proprietary": "プロプライエタリ", "Proprietary": "プロプライエタリ",
"Protect login and registration with Cloudflare Turnstile": "Cloudflare Turnstile でログインと登録を保護する",
"Provide a JSON object where each key maps to an endpoint definition.": "各キーがエンドポイント定義にマップされる JSON オブジェクトを提供してください。", "Provide a JSON object where each key maps to an endpoint definition.": "各キーがエンドポイント定義にマップされる JSON オブジェクトを提供してください。",
"Provide a valid URL starting with http:// or https://": "http:// または https:// で始まる有効な URL を入力してください", "Provide a valid URL starting with http:// or https://": "http:// または https:// で始まる有効な URL を入力してください",
"Provide Markdown, HTML, or an external URL for the privacy policy": "プライバシーポリシーにMarkdown、HTML、または外部URLを提供する", "Provide Markdown, HTML, or an external URL for the privacy policy": "プライバシーポリシーにMarkdown、HTML、または外部URLを提供する",
...@@ -3860,6 +3875,7 @@ ...@@ -3860,6 +3875,7 @@
"Send a request": "リクエストを送信", "Send a request": "リクエストを送信",
"Send code": "コードを送信", "Send code": "コードを送信",
"Send email alerts when a user falls below this quota": "ユーザーがこのクォータを下回ったときにメールアラートを送信", "Send email alerts when a user falls below this quota": "ユーザーがこのクォータを下回ったときにメールアラートを送信",
"Send reset email": "リセットメールを送信",
"Sending...": "送信中...", "Sending...": "送信中...",
"Sensitive Words": "機密語", "Sensitive Words": "機密語",
"Sent the API key to FluentRead.": "API キーを FluentRead に送信しました。", "Sent the API key to FluentRead.": "API キーを FluentRead に送信しました。",
...@@ -4240,6 +4256,7 @@ ...@@ -4240,6 +4256,7 @@
"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.": "この操作により、アカウントから2FA保護が完全に削除されます。", "This action will permanently remove 2FA protection from your account.": "この操作により、アカウントから2FA保護が完全に削除されます。",
"This channel has no configured models.": "このチャンネルには構成されたモデルがありません。",
"This channel is not an Ollama channel.": "このチャネルはOllamaチャネルではありません。", "This channel is not an Ollama channel.": "このチャネルはOllamaチャネルではありません。",
"This channel type does not support fetching models": "このチャネルタイプはモデルの取得をサポートしていません", "This channel type does not support fetching models": "このチャネルタイプはモデルの取得をサポートしていません",
"This channel type requires additional configuration": "このチャネルタイプには追加設定が必要です", "This channel type requires additional configuration": "このチャネルタイプには追加設定が必要です",
...@@ -4326,6 +4343,7 @@ ...@@ -4326,6 +4343,7 @@
"Token Endpoint (Optional)": "トークンエンドポイント (オプション)", "Token Endpoint (Optional)": "トークンエンドポイント (オプション)",
"Token estimator": "トークン見積り", "Token estimator": "トークン見積り",
"Token group": "トークングループ", "Token group": "トークングループ",
"Token Limits": "トークン制限",
"Token management": "トークン管理", "Token management": "トークン管理",
"Token Management": "トークン管理", "Token Management": "トークン管理",
"Token Mgmt": "トークン管理", "Token Mgmt": "トークン管理",
...@@ -4524,6 +4542,7 @@ ...@@ -4524,6 +4542,7 @@
"Updated system setting {{key}}": "システム設定 {{key}} を更新しました", "Updated system setting {{key}}": "システム設定 {{key}} を更新しました",
"Updated user {{username}} (ID: {{id}})": "ユーザー {{username}} を更新しました(ID: {{id}})", "Updated user {{username}} (ID: {{id}})": "ユーザー {{username}} を更新しました(ID: {{id}})",
"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.": "すべてのチャネル残高を更新中です。これには少し時間がかかる場合があります。結果を確認するには更新してください。",
"Updating...": "更新中...",
"Upgrade Group": "グループをアップグレード", "Upgrade Group": "グループをアップグレード",
"Upgrade plaintext SMTP connection with STARTTLS before authentication": "認証前に STARTTLS で平文の SMTP 接続を暗号化する", "Upgrade plaintext SMTP connection with STARTTLS before authentication": "認証前に STARTTLS で平文の SMTP 接続を暗号化する",
"Upload": "アップロード", "Upload": "アップロード",
...@@ -4728,6 +4747,7 @@ ...@@ -4728,6 +4747,7 @@
"Visual Parameter Override": "パラメータ上書きのビジュアル編集", "Visual Parameter Override": "パラメータ上書きのビジュアル編集",
"VolcEngine": "VolcEngine", "VolcEngine": "VolcEngine",
"vs. previous": "前期比", "vs. previous": "前期比",
"Waffo": "Waffo",
"Waffo Aggregator Gateway": "Waffo アグリゲーターゲートウェイ", "Waffo Aggregator Gateway": "Waffo アグリゲーターゲートウェイ",
"Waffo Pancake Dashboard": "Waffo Pancake Dashboard", "Waffo Pancake Dashboard": "Waffo Pancake Dashboard",
"Waffo Pancake MoR": "Waffo Pancake MoR", "Waffo Pancake MoR": "Waffo Pancake MoR",
......
...@@ -370,6 +370,7 @@ ...@@ -370,6 +370,7 @@
"API Key disabled successfully": "API ключ успешно отключен", "API Key disabled successfully": "API ключ успешно отключен",
"API Key enabled successfully": "API ключ успешно включен", "API Key enabled successfully": "API ключ успешно включен",
"API key from the provider": "Ключ API от провайдера", "API key from the provider": "Ключ API от провайдера",
"API key is loading, please try again in a moment": "API-ключ загружается, пожалуйста, попробуйте еще раз через мгновение",
"API key is required": "Требуется ключ API", "API key is required": "Требуется ключ API",
"API Key mode (does not support batch creation)": "Режим API-ключа (не поддерживает пакетное создание)", "API Key mode (does not support batch creation)": "Режим API-ключа (не поддерживает пакетное создание)",
"API Key mode: use APIKey|Region": "Режим API Key: use APIKey|Region", "API Key mode: use APIKey|Region": "Режим API Key: use APIKey|Region",
...@@ -1701,6 +1702,7 @@ ...@@ -1701,6 +1702,7 @@
"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 account": "Не удалось создать аккаунт",
"Failed to create API key": "Не удалось создать API ключ", "Failed to create API key": "Не удалось создать API ключ",
"Failed to create channel": "Не удалось создать канал", "Failed to create channel": "Не удалось создать канал",
"Failed to create deployment": "Не удалось создать развертывание", "Failed to create deployment": "Не удалось создать развертывание",
...@@ -1753,6 +1755,8 @@ ...@@ -1753,6 +1755,8 @@
"Failed to load key status": "Не удалось загрузить статус ключей", "Failed to load key status": "Не удалось загрузить статус ключей",
"Failed to load logs": "Не удалось загрузить логи", "Failed to load logs": "Не удалось загрузить логи",
"Failed to load Passkey status": "Не удалось загрузить статус Passkey", "Failed to load Passkey status": "Не удалось загрузить статус Passkey",
"Failed to load playground groups": "Не удалось загрузить группы площадки",
"Failed to load playground models": "Не удалось загрузить модели площадки",
"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": "Не удалось загрузить данные настройки",
...@@ -1779,7 +1783,9 @@ ...@@ -1779,7 +1783,9 @@
"Failed to search API keys": "Не удалось найти API ключи", "Failed to search API keys": "Не удалось найти API ключи",
"Failed to search redemption codes": "Не удалось найти коды активации", "Failed to search redemption codes": "Не удалось найти коды активации",
"Failed to search users": "Не удалось найти пользователей", "Failed to search users": "Не удалось найти пользователей",
"Failed to send reset email": "Не удалось отправить письмо для сброса пароля",
"Failed to send verification code": "Не удалось отправить код подтверждения", "Failed to send verification code": "Не удалось отправить код подтверждения",
"Failed to send verification email": "Не удалось отправить письмо с подтверждением",
"Failed to set tag": "Не удалось установить тег", "Failed to set tag": "Не удалось установить тег",
"Failed to setup 2FA": "Не удалось настроить 2FA", "Failed to setup 2FA": "Не удалось настроить 2FA",
"Failed to start {{provider}} login": "Не удалось начать вход через {{provider}}", "Failed to start {{provider}} login": "Не удалось начать вход через {{provider}}",
...@@ -1822,6 +1828,7 @@ ...@@ -1822,6 +1828,7 @@
"Fee": "Сбор", "Fee": "Сбор",
"Fee Amount": "Сумма сбора", "Fee Amount": "Сумма сбора",
"Fetch available models for:": "Получить доступные модели для:", "Fetch available models for:": "Получить доступные модели для:",
"Fetch available models from upstream": "Получить доступные модели от вышестоящего поставщика",
"Fetch from Upstream": "Получить из Upstream", "Fetch from Upstream": "Получить из Upstream",
"Fetch Models": "Получить модели", "Fetch Models": "Получить модели",
"Fetched {{count}} model(s) from upstream": "Получено {{count}} моделей из upstream", "Fetched {{count}} model(s) from upstream": "Получено {{count}} моделей из upstream",
...@@ -2445,10 +2452,12 @@ ...@@ -2445,10 +2452,12 @@
"Maximum 500 characters. Supports Markdown and HTML.": "Максимум 500 символов. Поддерживает Markdown и HTML.", "Maximum 500 characters. Supports Markdown and HTML.": "Максимум 500 символов. Поддерживает Markdown и HTML.",
"Maximum check-in quota": "Максимальная квота регистрации", "Maximum check-in quota": "Максимальная квота регистрации",
"Maximum input window": "Максимальное окно ввода", "Maximum input window": "Максимальное окно ввода",
"Maximum number of tokens each user can create. Default 1000. Setting too large may affect performance.": "Максимальное количество токенов, которое может создать каждый пользователь. По умолчанию 1000. Слишком большое значение может повлиять на производительность.",
"Maximum number of tokens in the response": "Максимальное число токенов в ответе", "Maximum number of tokens in the response": "Максимальное число токенов в ответе",
"Maximum quota amount awarded for check-in": "Максимальная сумма квоты, присуждаемая за регистрацию", "Maximum quota amount awarded for check-in": "Максимальная сумма квоты, присуждаемая за регистрацию",
"Maximum tokens including hidden reasoning tokens": "Максимум токенов с учётом скрытых reasoning-токенов", "Maximum tokens including hidden reasoning tokens": "Максимум токенов с учётом скрытых reasoning-токенов",
"Maximum tokens per response": "Максимум токенов на ответ", "Maximum tokens per response": "Максимум токенов на ответ",
"Maximum tokens per user": "Максимальное количество токенов на пользователя",
"maxRequests ≥ 0, maxSuccess ≥ 1, both ≤ 2,147,483,647": "maxRequests ≥ 0, maxSuccess ≥ 1, оба ≤ 2,147,483,647", "maxRequests ≥ 0, maxSuccess ≥ 1, both ≤ 2,147,483,647": "maxRequests ≥ 0, maxSuccess ≥ 1, оба ≤ 2,147,483,647",
"May be used for training by upstream provider": "Может использоваться поставщиком для обучения", "May be used for training by upstream provider": "Может использоваться поставщиком для обучения",
"Media pricing": "Цены для медиа", "Media pricing": "Цены для медиа",
...@@ -2517,7 +2526,9 @@ ...@@ -2517,7 +2526,9 @@
"Model Mapping (JSON)": "Сопоставление моделей (JSON)", "Model Mapping (JSON)": "Сопоставление моделей (JSON)",
"Model Mapping must be a JSON object like": "Сопоставление моделей должно быть JSON-объектом, например", "Model Mapping must be a JSON object like": "Сопоставление моделей должно быть JSON-объектом, например",
"Model mapping must be a JSON object with string values": "Сопоставление моделей должно быть JSON-объектом со строковыми значениями", "Model mapping must be a JSON object with string values": "Сопоставление моделей должно быть JSON-объектом со строковыми значениями",
"Model mapping must be a valid JSON object": "Сопоставление моделей должно быть действительным объектом JSON",
"Model mapping must be valid JSON": "Сопоставление моделей должно быть допустимым JSON", "Model mapping must be valid JSON": "Сопоставление моделей должно быть допустимым JSON",
"Model mapping must be valid JSON format": "Сопоставление моделей должно быть в действительном формате JSON",
"Model mapping values must be strings": "Значения сопоставления моделей должны быть строками", "Model mapping values must be strings": "Значения сопоставления моделей должны быть строками",
"Model name": "Имя модели", "Model name": "Имя модели",
"Model Name": "Название модели", "Model Name": "Название модели",
...@@ -2748,6 +2759,7 @@ ...@@ -2748,6 +2759,7 @@
"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 model price changes to save": "Нет изменений цен моделей для сохранения",
"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.": "Нет доступных моделей. Создайте свою первую модель, чтобы начать.",
...@@ -2760,6 +2772,7 @@ ...@@ -2760,6 +2772,7 @@
"No models match the selected filters": "Нет моделей, соответствующих фильтрам", "No models match the selected filters": "Нет моделей, соответствующих фильтрам",
"No models match your current filters.": "Модели, соответствующие вашим текущим фильтрам, не найдены.", "No models match your current filters.": "Модели, соответствующие вашим текущим фильтрам, не найдены.",
"No models match your search": "Модели не найдены", "No models match your search": "Модели не найдены",
"No models matched your search.": "Нет моделей, соответствующих вашему поиску.",
"No models selected": "Модели не выбраны", "No models selected": "Модели не выбраны",
"No models to add": "Нет моделей для добавления", "No models to add": "Нет моделей для добавления",
"No models to copy": "Нет моделей для копирования", "No models to copy": "Нет моделей для копирования",
...@@ -3072,6 +3085,7 @@ ...@@ -3072,6 +3085,7 @@
"Password Login": "Вход по паролю", "Password Login": "Вход по паролю",
"Password must be at least 8 characters": "Пароль должен содержать не менее 8 символов", "Password must be at least 8 characters": "Пароль должен содержать не менее 8 символов",
"Password must be at least 8 characters long": "Пароль должен содержать не менее 8 символов", "Password must be at least 8 characters long": "Пароль должен содержать не менее 8 символов",
"Password must be between 8 and 20 characters": "Пароль должен содержать от 8 до 20 символов",
"Password Registration": "Регистрация пароля", "Password Registration": "Регистрация пароля",
"Password reset and copied to clipboard: {{password}}": "Пароль сброшен и скопирован в буфер обмена: {{password}}", "Password reset and copied to clipboard: {{password}}": "Пароль сброшен и скопирован в буфер обмена: {{password}}",
"Password reset: {{password}}": "Пароль сброшен: {{password}}", "Password reset: {{password}}": "Пароль сброшен: {{password}}",
...@@ -3323,6 +3337,7 @@ ...@@ -3323,6 +3337,7 @@
"Prompt Details": "Детали промпта", "Prompt Details": "Детали промпта",
"Prompt price ($/1M tokens)": "Цена промпта ($/1 млн токенов)", "Prompt price ($/1M tokens)": "Цена промпта ($/1 млн токенов)",
"Proprietary": "Проприетарная", "Proprietary": "Проприетарная",
"Protect login and registration with Cloudflare Turnstile": "Защитить вход и регистрацию с помощью Cloudflare Turnstile",
"Provide a JSON object where each key maps to an endpoint definition.": "Предоставьте JSON-объект, в котором каждый ключ соответствует определению конечной точки.", "Provide a JSON object where each key maps to an endpoint definition.": "Предоставьте JSON-объект, в котором каждый ключ соответствует определению конечной точки.",
"Provide a valid URL starting with http:// or https://": "Укажите действительный URL, начинающийся с http:// или https://", "Provide a valid URL starting with http:// or https://": "Укажите действительный URL, начинающийся с http:// или https://",
"Provide Markdown, HTML, or an external URL for the privacy policy": "Укажите Markdown, HTML или внешний URL для политики конфиденциальности", "Provide Markdown, HTML, or an external URL for the privacy policy": "Укажите Markdown, HTML или внешний URL для политики конфиденциальности",
...@@ -3860,6 +3875,7 @@ ...@@ -3860,6 +3875,7 @@
"Send a request": "Отправить запрос", "Send a request": "Отправить запрос",
"Send code": "Отправить код", "Send code": "Отправить код",
"Send email alerts when a user falls below this quota": "Отправлять оповещения по электронной почте, когда пользователь опускается ниже этой квоты", "Send email alerts when a user falls below this quota": "Отправлять оповещения по электронной почте, когда пользователь опускается ниже этой квоты",
"Send reset email": "Отправить письмо для сброса пароля",
"Sending...": "Отправка...", "Sending...": "Отправка...",
"Sensitive Words": "Чувствительные слова", "Sensitive Words": "Чувствительные слова",
"Sent the API key to FluentRead.": "API-ключ отправлен в FluentRead.", "Sent the API key to FluentRead.": "API-ключ отправлен в FluentRead.",
...@@ -4240,6 +4256,7 @@ ...@@ -4240,6 +4256,7 @@
"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.": "Это действие безвозвратно удалит защиту 2FA из вашей учетной записи.", "This action will permanently remove 2FA protection from your account.": "Это действие безвозвратно удалит защиту 2FA из вашей учетной записи.",
"This channel has no configured models.": "У этого канала нет настроенных моделей.",
"This channel is not an Ollama channel.": "Этот канал не является каналом Ollama.", "This channel is not an Ollama channel.": "Этот канал не является каналом Ollama.",
"This channel type does not support fetching models": "Этот тип канала не поддерживает получение моделей", "This channel type does not support fetching models": "Этот тип канала не поддерживает получение моделей",
"This channel type requires additional configuration": "Для этого типа канала требуется дополнительная конфигурация", "This channel type requires additional configuration": "Для этого типа канала требуется дополнительная конфигурация",
...@@ -4326,6 +4343,7 @@ ...@@ -4326,6 +4343,7 @@
"Token Endpoint (Optional)": "Конечная точка токена (необязательно)", "Token Endpoint (Optional)": "Конечная точка токена (необязательно)",
"Token estimator": "Оценка токенов", "Token estimator": "Оценка токенов",
"Token group": "Группа токена", "Token group": "Группа токена",
"Token Limits": "Ограничения токенов",
"Token management": "Управление токенами", "Token management": "Управление токенами",
"Token Management": "Управление токенами", "Token Management": "Управление токенами",
"Token Mgmt": "Управление токенами", "Token Mgmt": "Управление токенами",
...@@ -4524,6 +4542,7 @@ ...@@ -4524,6 +4542,7 @@
"Updated system setting {{key}}": "Обновлён системный параметр {{key}}", "Updated system setting {{key}}": "Обновлён системный параметр {{key}}",
"Updated user {{username}} (ID: {{id}})": "Обновлён пользователь {{username}} (ID: {{id}})", "Updated user {{username}} (ID: {{id}})": "Обновлён пользователь {{username}} (ID: {{id}})",
"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.": "Обновление балансов всех каналов. Это может занять некоторое время. Пожалуйста, обновите страницу, чтобы увидеть результаты.",
"Updating...": "Обновление...",
"Upgrade Group": "Повысить группу", "Upgrade Group": "Повысить группу",
"Upgrade plaintext SMTP connection with STARTTLS before authentication": "Перед аутентификацией повысить открытое SMTP-соединение до STARTTLS", "Upgrade plaintext SMTP connection with STARTTLS before authentication": "Перед аутентификацией повысить открытое SMTP-соединение до STARTTLS",
"Upload": "Загрузка", "Upload": "Загрузка",
...@@ -4728,6 +4747,7 @@ ...@@ -4728,6 +4747,7 @@
"Visual Parameter Override": "Визуальное переопределение параметров", "Visual Parameter Override": "Визуальное переопределение параметров",
"VolcEngine": "VolcEngine", "VolcEngine": "VolcEngine",
"vs. previous": "к предыдущему", "vs. previous": "к предыдущему",
"Waffo": "Waffo",
"Waffo Aggregator Gateway": "Шлюз-агрегатор Waffo", "Waffo Aggregator Gateway": "Шлюз-агрегатор Waffo",
"Waffo Pancake Dashboard": "Waffo Pancake Dashboard", "Waffo Pancake Dashboard": "Waffo Pancake Dashboard",
"Waffo Pancake MoR": "Waffo Pancake MoR", "Waffo Pancake MoR": "Waffo Pancake MoR",
......
...@@ -370,6 +370,7 @@ ...@@ -370,6 +370,7 @@
"API Key disabled successfully": "Vô hiệu hóa khóa API thành công", "API Key disabled successfully": "Vô hiệu hóa khóa API thành công",
"API Key enabled successfully": "Kích hoạt khóa API thành công", "API Key enabled successfully": "Kích hoạt khóa API thành công",
"API key from the provider": "khóa API từ nhà cung cấp", "API key from the provider": "khóa API từ nhà cung cấp",
"API key is loading, please try again in a moment": "Khóa API đang tải, vui lòng thử lại sau một chút",
"API key is required": "Khóa API là bắt buộc", "API key is required": "Khóa API là bắt buộc",
"API Key mode (does not support batch creation)": "Chế độ Khóa API (không hỗ trợ tạo hàng loạt)", "API Key mode (does not support batch creation)": "Chế độ Khóa API (không hỗ trợ tạo hàng loạt)",
"API Key mode: use APIKey|Region": "Chế độ khóa API: sử dụng APIKey|Region", "API Key mode: use APIKey|Region": "Chế độ khóa API: sử dụng APIKey|Region",
...@@ -1701,6 +1702,7 @@ ...@@ -1701,6 +1702,7 @@
"Failed to copy keys": "Không thể sao chép khóa", "Failed to copy keys": "Không thể sao chép khóa",
"Failed to copy model names": "Không thể sao chép tên mô hình", "Failed to copy model names": "Không thể sao chép tên mô hình",
"Failed to copy to clipboard": "Không thể sao chép vào bộ nhớ tạm", "Failed to copy to clipboard": "Không thể sao chép vào bộ nhớ tạm",
"Failed to create account": "Tạo tài khoản thất bại",
"Failed to create API key": "Tạo API key thất bại", "Failed to create API key": "Tạo API key thất bại",
"Failed to create channel": "Không thể tạo kênh", "Failed to create channel": "Không thể tạo kênh",
"Failed to create deployment": "Tạo triển khai thất bại", "Failed to create deployment": "Tạo triển khai thất bại",
...@@ -1753,6 +1755,8 @@ ...@@ -1753,6 +1755,8 @@
"Failed to load key status": "Không thể tải trạng thái khóa", "Failed to load key status": "Không thể tải trạng thái khóa",
"Failed to load logs": "Không tải được nhật ký", "Failed to load logs": "Không tải được nhật ký",
"Failed to load Passkey status": "Không thể tải trạng thái Passkey", "Failed to load Passkey status": "Không thể tải trạng thái Passkey",
"Failed to load playground groups": "Tải nhóm playground thất bại",
"Failed to load playground models": "Tải mô hình playground thất bại",
"Failed to load profile": "Không thể tải hồ sơ", "Failed to load profile": "Không thể tải hồ sơ",
"Failed to load redemption codes": "Không thể tải mã đổi thưởng", "Failed to load redemption codes": "Không thể tải mã đổi thưởng",
"Failed to load setup data": "Không thể tải dữ liệu thiết lập", "Failed to load setup data": "Không thể tải dữ liệu thiết lập",
...@@ -1779,7 +1783,9 @@ ...@@ -1779,7 +1783,9 @@
"Failed to search API keys": "Không thể tìm kiếm khóa API", "Failed to search API keys": "Không thể tìm kiếm khóa API",
"Failed to search redemption codes": "Không thể tìm kiếm mã đổi thưởng", "Failed to search redemption codes": "Không thể tìm kiếm mã đổi thưởng",
"Failed to search users": "Không thể tìm kiếm người dùng", "Failed to search users": "Không thể tìm kiếm người dùng",
"Failed to send reset email": "Gửi email đặt lại thất bại",
"Failed to send verification code": "Không thể gửi mã xác minh", "Failed to send verification code": "Không thể gửi mã xác minh",
"Failed to send verification email": "Gửi email xác minh thất bại",
"Failed to set tag": "Không thể đặt thẻ", "Failed to set tag": "Không thể đặt thẻ",
"Failed to setup 2FA": "Không thể thiết lập 2FA", "Failed to setup 2FA": "Không thể thiết lập 2FA",
"Failed to start {{provider}} login": "Không thể bắt đầu đăng nhập {{provider}}", "Failed to start {{provider}} login": "Không thể bắt đầu đăng nhập {{provider}}",
...@@ -1822,6 +1828,7 @@ ...@@ -1822,6 +1828,7 @@
"Fee": "Phí", "Fee": "Phí",
"Fee Amount": "Số tiền phí", "Fee Amount": "Số tiền phí",
"Fetch available models for:": "Tìm nạp các mô hình khả dụng cho:", "Fetch available models for:": "Tìm nạp các mô hình khả dụng cho:",
"Fetch available models from upstream": "Lấy các mô hình khả dụng từ nguồn trên",
"Fetch from Upstream": "Lấy từ nguồn", "Fetch from Upstream": "Lấy từ nguồn",
"Fetch Models": "Tìm nạp Mô hình", "Fetch Models": "Tìm nạp Mô hình",
"Fetched {{count}} model(s) from upstream": "Đã lấy {{count}} mô hình từ upstream", "Fetched {{count}} model(s) from upstream": "Đã lấy {{count}} mô hình từ upstream",
...@@ -2445,10 +2452,12 @@ ...@@ -2445,10 +2452,12 @@
"Maximum 500 characters. Supports Markdown and HTML.": "Tối đa 500 ký tự. Hỗ trợ Markdown và HTML.", "Maximum 500 characters. Supports Markdown and HTML.": "Tối đa 500 ký tự. Hỗ trợ Markdown và HTML.",
"Maximum check-in quota": "Hạn ngạch điểm danh tối đa", "Maximum check-in quota": "Hạn ngạch điểm danh tối đa",
"Maximum input window": "Cửa sổ nhập tối đa", "Maximum input window": "Cửa sổ nhập tối đa",
"Maximum number of tokens each user can create. Default 1000. Setting too large may affect performance.": "Số lượng token tối đa mỗi người dùng có thể tạo. Mặc định là 1000. Đặt quá lớn có thể ảnh hưởng đến hiệu suất.",
"Maximum number of tokens in the response": "Số token tối đa trong phản hồi", "Maximum number of tokens in the response": "Số token tối đa trong phản hồi",
"Maximum quota amount awarded for check-in": "Số lượng hạn ngạch tối đa được trao cho điểm danh", "Maximum quota amount awarded for check-in": "Số lượng hạn ngạch tối đa được trao cho điểm danh",
"Maximum tokens including hidden reasoning tokens": "Số token tối đa bao gồm token suy luận ẩn", "Maximum tokens including hidden reasoning tokens": "Số token tối đa bao gồm token suy luận ẩn",
"Maximum tokens per response": "Số token tối đa mỗi phản hồi", "Maximum tokens per response": "Số token tối đa mỗi phản hồi",
"Maximum tokens per user": "Số token tối đa trên mỗi người dùng",
"maxRequests ≥ 0, maxSuccess ≥ 1, both ≤ 2,147,483,647": "maxRequests ≥ 0, maxSuccess ≥ 1, cả hai đều ≤ 2,147,483,647", "maxRequests ≥ 0, maxSuccess ≥ 1, both ≤ 2,147,483,647": "maxRequests ≥ 0, maxSuccess ≥ 1, cả hai đều ≤ 2,147,483,647",
"May be used for training by upstream provider": "Có thể được nhà cung cấp dùng để huấn luyện", "May be used for training by upstream provider": "Có thể được nhà cung cấp dùng để huấn luyện",
"Media pricing": "Giá phương tiện", "Media pricing": "Giá phương tiện",
...@@ -2517,7 +2526,9 @@ ...@@ -2517,7 +2526,9 @@
"Model Mapping (JSON)": "Ánh xạ mô hình (JSON)", "Model Mapping (JSON)": "Ánh xạ mô hình (JSON)",
"Model Mapping must be a JSON object like": "Ánh xạ Mô hình phải là một đối tượng JSON như", "Model Mapping must be a JSON object like": "Ánh xạ Mô hình phải là một đối tượng JSON như",
"Model mapping must be a JSON object with string values": "Ánh xạ mô hình phải là đối tượng JSON với giá trị chuỗi", "Model mapping must be a JSON object with string values": "Ánh xạ mô hình phải là đối tượng JSON với giá trị chuỗi",
"Model mapping must be a valid JSON object": "Ánh xạ mô hình phải là một đối tượng JSON hợp lệ",
"Model mapping must be valid JSON": "Ánh xạ mô hình phải là JSON hợp lệ", "Model mapping must be valid JSON": "Ánh xạ mô hình phải là JSON hợp lệ",
"Model mapping must be valid JSON format": "Ánh xạ mô hình phải có định dạng JSON hợp lệ",
"Model mapping values must be strings": "Giá trị ánh xạ mô hình phải là chuỗi", "Model mapping values must be strings": "Giá trị ánh xạ mô hình phải là chuỗi",
"Model name": "Tên mẫu", "Model name": "Tên mẫu",
"Model Name": "Tên mẫu", "Model Name": "Tên mẫu",
...@@ -2748,6 +2759,7 @@ ...@@ -2748,6 +2759,7 @@
"No missing models found.": "Không tìm thấy mô hình nào bị thiếu.", "No missing models found.": "Không tìm thấy mô hình nào bị thiếu.",
"No model found.": "Không tìm thấy mô hình.", "No model found.": "Không tìm thấy mô hình.",
"No model mappings configured. Click \"Add Mapping\" to get started.": "Chưa có ánh xạ mô hình nào được cấu hình. Nhấp vào \"Thêm ánh xạ\" để bắt đầu.", "No model mappings configured. Click \"Add Mapping\" to get started.": "Chưa có ánh xạ mô hình nào được cấu hình. Nhấp vào \"Thêm ánh xạ\" để bắt đầu.",
"No model price changes to save": "Không có thay đổi giá mô hình nào cần lưu",
"No models available": "Không có mô hình nào khả dụng", "No models available": "Không có mô hình nào khả dụng",
"No models available in this category": "Không có mô hình nào trong danh mục này", "No models available in this category": "Không có mô hình nào trong danh mục này",
"No models available. Create your first model to get started.": "Không có mô hình nào khả dụng. Hãy tạo mô hình đầu tiên của bạn để bắt đầu.", "No models available. Create your first model to get started.": "Không có mô hình nào khả dụng. Hãy tạo mô hình đầu tiên của bạn để bắt đầu.",
...@@ -2760,6 +2772,7 @@ ...@@ -2760,6 +2772,7 @@
"No models match the selected filters": "Không có mô hình phù hợp bộ lọc", "No models match the selected filters": "Không có mô hình phù hợp bộ lọc",
"No models match your current filters.": "Không có mô hình nào khớp với bộ lọc hiện tại của bạn.", "No models match your current filters.": "Không có mô hình nào khớp với bộ lọc hiện tại của bạn.",
"No models match your search": "Không có mô hình phù hợp với tìm kiếm", "No models match your search": "Không có mô hình phù hợp với tìm kiếm",
"No models matched your search.": "Không có mô hình nào khớp với tìm kiếm của bạn.",
"No models selected": "Chưa chọn mô hình nào", "No models selected": "Chưa chọn mô hình nào",
"No models to add": "Không có mô hình để thêm", "No models to add": "Không có mô hình để thêm",
"No models to copy": "Không có mô hình nào để sao chép", "No models to copy": "Không có mô hình nào để sao chép",
...@@ -3072,6 +3085,7 @@ ...@@ -3072,6 +3085,7 @@
"Password Login": "Đăng nhập bằng mật khẩu", "Password Login": "Đăng nhập bằng mật khẩu",
"Password must be at least 8 characters": "Mật khẩu phải có ít nhất 8 ký tự", "Password must be at least 8 characters": "Mật khẩu phải có ít nhất 8 ký tự",
"Password must be at least 8 characters long": "Mật khẩu phải có ít nhất 8 ký tự", "Password must be at least 8 characters long": "Mật khẩu phải có ít nhất 8 ký tự",
"Password must be between 8 and 20 characters": "Mật khẩu phải từ 8 đến 20 ký tự",
"Password Registration": "Đăng ký mật khẩu", "Password Registration": "Đăng ký mật khẩu",
"Password reset and copied to clipboard: {{password}}": "Mật khẩu đã đặt lại và sao chép vào clipboard: {{password}}", "Password reset and copied to clipboard: {{password}}": "Mật khẩu đã đặt lại và sao chép vào clipboard: {{password}}",
"Password reset: {{password}}": "Mật khẩu đã đặt lại: {{password}}", "Password reset: {{password}}": "Mật khẩu đã đặt lại: {{password}}",
...@@ -3323,6 +3337,7 @@ ...@@ -3323,6 +3337,7 @@
"Prompt Details": "Chi tiết lời nhắc", "Prompt Details": "Chi tiết lời nhắc",
"Prompt price ($/1M tokens)": "Giá prompt ($/1 triệu token)", "Prompt price ($/1M tokens)": "Giá prompt ($/1 triệu token)",
"Proprietary": "Độc quyền", "Proprietary": "Độc quyền",
"Protect login and registration with Cloudflare Turnstile": "Bảo vệ đăng nhập và đăng ký bằng Cloudflare Turnstile",
"Provide a JSON object where each key maps to an endpoint definition.": "Cung cấp một đối tượng JSON nơi mỗi khóa ánh xạ đến một định nghĩa điểm cuối.", "Provide a JSON object where each key maps to an endpoint definition.": "Cung cấp một đối tượng JSON nơi mỗi khóa ánh xạ đến một định nghĩa điểm cuối.",
"Provide a valid URL starting with http:// or https://": "Cung cấp URL hợp lệ bắt đầu bằng http:// hoặc https://", "Provide a valid URL starting with http:// or https://": "Cung cấp URL hợp lệ bắt đầu bằng http:// hoặc https://",
"Provide Markdown, HTML, or an external URL for the privacy policy": "Cung cấp Markdown, HTML, hoặc một URL bên ngoài cho chính sách quyền riêng tư", "Provide Markdown, HTML, or an external URL for the privacy policy": "Cung cấp Markdown, HTML, hoặc một URL bên ngoài cho chính sách quyền riêng tư",
...@@ -3860,6 +3875,7 @@ ...@@ -3860,6 +3875,7 @@
"Send a request": "Gửi yêu cầu", "Send a request": "Gửi yêu cầu",
"Send code": "Gửi mã", "Send code": "Gửi mã",
"Send email alerts when a user falls below this quota": "Gửi cảnh báo email khi người dùng xuống dưới hạn mức này", "Send email alerts when a user falls below this quota": "Gửi cảnh báo email khi người dùng xuống dưới hạn mức này",
"Send reset email": "Gửi email đặt lại",
"Sending...": "Đang gửi...", "Sending...": "Đang gửi...",
"Sensitive Words": "Từ ngữ nhạy cảm", "Sensitive Words": "Từ ngữ nhạy cảm",
"Sent the API key to FluentRead.": "Đã gửi khóa API đến FluentRead.", "Sent the API key to FluentRead.": "Đã gửi khóa API đến FluentRead.",
...@@ -4240,6 +4256,7 @@ ...@@ -4240,6 +4256,7 @@
"This action cannot be undone.": "Hành động này không thể hoàn tác.", "This action cannot be undone.": "Hành động này không thể hoàn tác.",
"This action cannot be undone. This will permanently delete your account and remove all your data from our servers.": "Hành động này không thể hoàn tác. Việc này sẽ xóa vĩnh viễn tài khoản của bạn và loại bỏ tất cả dữ liệu của bạn khỏi máy chủ của chúng tôi.", "This action cannot be undone. This will permanently delete your account and remove all your data from our servers.": "Hành động này không thể hoàn tác. Việc này sẽ xóa vĩnh viễn tài khoản của bạn và loại bỏ tất cả dữ liệu của bạn khỏi máy chủ của chúng tôi.",
"This action will permanently remove 2FA protection from your account.": "Hành động này sẽ vĩnh viễn gỡ bỏ tính năng bảo vệ", "This action will permanently remove 2FA protection from your account.": "Hành động này sẽ vĩnh viễn gỡ bỏ tính năng bảo vệ",
"This channel has no configured models.": "Kênh này không có mô hình nào được cấu hình.",
"This channel is not an Ollama channel.": "Kênh này không phải là kênh Ollama.", "This channel is not an Ollama channel.": "Kênh này không phải là kênh Ollama.",
"This channel type does not support fetching models": "Loại kênh này không hỗ trợ lấy mô hình", "This channel type does not support fetching models": "Loại kênh này không hỗ trợ lấy mô hình",
"This channel type requires additional configuration": "Loại kênh này yêu cầu cấu hình bổ sung", "This channel type requires additional configuration": "Loại kênh này yêu cầu cấu hình bổ sung",
...@@ -4326,6 +4343,7 @@ ...@@ -4326,6 +4343,7 @@
"Token Endpoint (Optional)": "Điểm cuối Token (Tùy chọn)", "Token Endpoint (Optional)": "Điểm cuối Token (Tùy chọn)",
"Token estimator": "Ước tính token", "Token estimator": "Ước tính token",
"Token group": "Nhóm token", "Token group": "Nhóm token",
"Token Limits": "Giới hạn token",
"Token management": "Quản lý token", "Token management": "Quản lý token",
"Token Management": "Quản lý token", "Token Management": "Quản lý token",
"Token Mgmt": "Quản lý Token", "Token Mgmt": "Quản lý Token",
...@@ -4524,6 +4542,7 @@ ...@@ -4524,6 +4542,7 @@
"Updated system setting {{key}}": "Đã cập nhật cài đặt hệ thống {{key}}", "Updated system setting {{key}}": "Đã cập nhật cài đặt hệ thống {{key}}",
"Updated user {{username}} (ID: {{id}})": "Đã cập nhật người dùng {{username}} (ID: {{id}})", "Updated user {{username}} (ID: {{id}})": "Đã cập nhật người dùng {{username}} (ID: {{id}})",
"Updating all channel balances. This may take a while. Please refresh to see results.": "Đang cập nhật tất cả số dư kênh. Quá trình này có thể mất một chút thời gian. Vui lòng làm mới để xem kết quả.", "Updating all channel balances. This may take a while. Please refresh to see results.": "Đang cập nhật tất cả số dư kênh. Quá trình này có thể mất một chút thời gian. Vui lòng làm mới để xem kết quả.",
"Updating...": "Đang cập nhật...",
"Upgrade Group": "Nhóm nâng cấp", "Upgrade Group": "Nhóm nâng cấp",
"Upgrade plaintext SMTP connection with STARTTLS before authentication": "Nâng cấp kết nối SMTP dạng rõ bằng STARTTLS trước khi xác thực", "Upgrade plaintext SMTP connection with STARTTLS before authentication": "Nâng cấp kết nối SMTP dạng rõ bằng STARTTLS trước khi xác thực",
"Upload": "Tải lên", "Upload": "Tải lên",
...@@ -4728,6 +4747,7 @@ ...@@ -4728,6 +4747,7 @@
"Visual Parameter Override": "Ghi đè tham số trực quan", "Visual Parameter Override": "Ghi đè tham số trực quan",
"VolcEngine": "VolcEngine", "VolcEngine": "VolcEngine",
"vs. previous": "so với kỳ trước", "vs. previous": "so với kỳ trước",
"Waffo": "Waffo",
"Waffo Aggregator Gateway": "Cổng tổng hợp Waffo", "Waffo Aggregator Gateway": "Cổng tổng hợp Waffo",
"Waffo Pancake Dashboard": "Waffo Pancake Dashboard", "Waffo Pancake Dashboard": "Waffo Pancake Dashboard",
"Waffo Pancake MoR": "Waffo Pancake MoR", "Waffo Pancake MoR": "Waffo Pancake MoR",
......
...@@ -370,6 +370,7 @@ ...@@ -370,6 +370,7 @@
"API Key disabled successfully": "API 密钥禁用成功", "API Key disabled successfully": "API 密钥禁用成功",
"API Key enabled successfully": "API 密钥启用成功", "API Key enabled successfully": "API 密钥启用成功",
"API key from the provider": "来自提供商的 API 密钥", "API key from the provider": "来自提供商的 API 密钥",
"API key is loading, please try again in a moment": "API 密钥正在加载,请稍后再试",
"API key is required": "需要 API 密钥", "API key is required": "需要 API 密钥",
"API Key mode (does not support batch creation)": "API Key 模式(不支持批量创建)", "API Key mode (does not support batch creation)": "API Key 模式(不支持批量创建)",
"API Key mode: use APIKey|Region": "API Key 模式:使用 APIKey|Region", "API Key mode: use APIKey|Region": "API Key 模式:使用 APIKey|Region",
...@@ -1701,6 +1702,7 @@ ...@@ -1701,6 +1702,7 @@
"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 account": "创建账户失败",
"Failed to create API key": "创建API密钥失败", "Failed to create API key": "创建API密钥失败",
"Failed to create channel": "创建渠道失败", "Failed to create channel": "创建渠道失败",
"Failed to create deployment": "创建部署失败", "Failed to create deployment": "创建部署失败",
...@@ -1753,6 +1755,8 @@ ...@@ -1753,6 +1755,8 @@
"Failed to load key status": "加载密钥状态失败", "Failed to load key status": "加载密钥状态失败",
"Failed to load logs": "加载日志失败", "Failed to load logs": "加载日志失败",
"Failed to load Passkey status": "加载 Passkey 状态失败", "Failed to load Passkey status": "加载 Passkey 状态失败",
"Failed to load playground groups": "加载 playground 分组失败",
"Failed to load playground models": "加载 playground 模型失败",
"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": "无法加载设置数据",
...@@ -1779,7 +1783,9 @@ ...@@ -1779,7 +1783,9 @@
"Failed to search API keys": "搜索 API 密钥失败", "Failed to search API keys": "搜索 API 密钥失败",
"Failed to search redemption codes": "搜索兑换码失败", "Failed to search redemption codes": "搜索兑换码失败",
"Failed to search users": "搜索用户失败", "Failed to search users": "搜索用户失败",
"Failed to send reset email": "发送重置邮件失败",
"Failed to send verification code": "发送验证码失败", "Failed to send verification code": "发送验证码失败",
"Failed to send verification email": "发送验证邮件失败",
"Failed to set tag": "设置标签失败", "Failed to set tag": "设置标签失败",
"Failed to setup 2FA": "设置 2FA 失败", "Failed to setup 2FA": "设置 2FA 失败",
"Failed to start {{provider}} login": "启动 {{provider}} 登录失败", "Failed to start {{provider}} login": "启动 {{provider}} 登录失败",
...@@ -1822,6 +1828,7 @@ ...@@ -1822,6 +1828,7 @@
"Fee": "扣费", "Fee": "扣费",
"Fee Amount": "扣费金额", "Fee Amount": "扣费金额",
"Fetch available models for:": "获取可用模型:", "Fetch available models for:": "获取可用模型:",
"Fetch available models from upstream": "从上游获取可用模型",
"Fetch from Upstream": "从上游获取", "Fetch from Upstream": "从上游获取",
"Fetch Models": "获取模型", "Fetch Models": "获取模型",
"Fetched {{count}} model(s) from upstream": "从上游获取了 {{count}} 个模型", "Fetched {{count}} model(s) from upstream": "从上游获取了 {{count}} 个模型",
...@@ -2445,10 +2452,12 @@ ...@@ -2445,10 +2452,12 @@
"Maximum 500 characters. Supports Markdown and HTML.": "最多 500 个字符。支持 Markdown 和 HTML。", "Maximum 500 characters. Supports Markdown and HTML.": "最多 500 个字符。支持 Markdown 和 HTML。",
"Maximum check-in quota": "签到最大额度", "Maximum check-in quota": "签到最大额度",
"Maximum input window": "最大输入窗口", "Maximum input window": "最大输入窗口",
"Maximum number of tokens each user can create. Default 1000. Setting too large may affect performance.": "每个用户可创建的最大令牌数量。默认 1000。设置过大可能会影响性能。",
"Maximum number of tokens in the response": "响应中最大 token 数", "Maximum number of tokens in the response": "响应中最大 token 数",
"Maximum quota amount awarded for check-in": "签到奖励的最大额度", "Maximum quota amount awarded for check-in": "签到奖励的最大额度",
"Maximum tokens including hidden reasoning tokens": "最大 token 数(含隐藏的推理 token)", "Maximum tokens including hidden reasoning tokens": "最大 token 数(含隐藏的推理 token)",
"Maximum tokens per response": "单次响应最大 token 数", "Maximum tokens per response": "单次响应最大 token 数",
"Maximum tokens per user": "每个用户的最大令牌数",
"maxRequests ≥ 0, maxSuccess ≥ 1, both ≤ 2,147,483,647": "maxRequests ≥ 0, maxSuccess ≥ 1,两者均 ≤ 2,147,483,647", "maxRequests ≥ 0, maxSuccess ≥ 1, both ≤ 2,147,483,647": "maxRequests ≥ 0, maxSuccess ≥ 1,两者均 ≤ 2,147,483,647",
"May be used for training by upstream provider": "可能被上游提供商用于训练", "May be used for training by upstream provider": "可能被上游提供商用于训练",
"Media pricing": "媒体定价", "Media pricing": "媒体定价",
...@@ -2517,7 +2526,9 @@ ...@@ -2517,7 +2526,9 @@
"Model Mapping (JSON)": "模型映射 (JSON)", "Model Mapping (JSON)": "模型映射 (JSON)",
"Model Mapping must be a JSON object like": "模型映射必须是如下所示的 JSON 对象", "Model Mapping must be a JSON object like": "模型映射必须是如下所示的 JSON 对象",
"Model mapping must be a JSON object with string values": "模型映射必须是值为字符串的 JSON 对象", "Model mapping must be a JSON object with string values": "模型映射必须是值为字符串的 JSON 对象",
"Model mapping must be a valid JSON object": "模型映射必须是有效的 JSON 对象",
"Model mapping must be valid JSON": "模型映射必须是有效的 JSON", "Model mapping must be valid JSON": "模型映射必须是有效的 JSON",
"Model mapping must be valid JSON format": "模型映射必须是有效的 JSON 格式",
"Model mapping values must be strings": "模型映射的值必须是字符串", "Model mapping values must be strings": "模型映射的值必须是字符串",
"Model name": "模型名称", "Model name": "模型名称",
"Model Name": "模型名称", "Model Name": "模型名称",
...@@ -2748,6 +2759,7 @@ ...@@ -2748,6 +2759,7 @@
"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 model price changes to save": "没有模型价格变更需要保存",
"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.": "没有可用的模型。创建您的第一个模型即可开始使用。",
...@@ -2760,6 +2772,7 @@ ...@@ -2760,6 +2772,7 @@
"No models match the selected filters": "没有匹配筛选条件的模型", "No models match the selected filters": "没有匹配筛选条件的模型",
"No models match your current filters.": "没有模型匹配您当前的筛选条件。", "No models match your current filters.": "没有模型匹配您当前的筛选条件。",
"No models match your search": "没有匹配的模型", "No models match your search": "没有匹配的模型",
"No models matched your search.": "没有匹配搜索的模型",
"No models selected": "未选择模型", "No models selected": "未选择模型",
"No models to add": "无待新增模型", "No models to add": "无待新增模型",
"No models to copy": "没有模型可复制", "No models to copy": "没有模型可复制",
...@@ -3072,6 +3085,7 @@ ...@@ -3072,6 +3085,7 @@
"Password Login": "密码登录", "Password Login": "密码登录",
"Password must be at least 8 characters": "密码必须至少 8 个字符", "Password must be at least 8 characters": "密码必须至少 8 个字符",
"Password must be at least 8 characters long": "密码必须至少 8 个字符长", "Password must be at least 8 characters long": "密码必须至少 8 个字符长",
"Password must be between 8 and 20 characters": "密码长度必须在 8 到 20 个字符之间",
"Password Registration": "密码注册", "Password Registration": "密码注册",
"Password reset and copied to clipboard: {{password}}": "密码已重置并复制到剪贴板:{{password}}", "Password reset and copied to clipboard: {{password}}": "密码已重置并复制到剪贴板:{{password}}",
"Password reset: {{password}}": "密码已重置:{{password}}", "Password reset: {{password}}": "密码已重置:{{password}}",
...@@ -3323,6 +3337,7 @@ ...@@ -3323,6 +3337,7 @@
"Prompt Details": "提示词详情", "Prompt Details": "提示词详情",
"Prompt price ($/1M tokens)": "提示词价格(美元/100 万 token)", "Prompt price ($/1M tokens)": "提示词价格(美元/100 万 token)",
"Proprietary": "商业闭源", "Proprietary": "商业闭源",
"Protect login and registration with Cloudflare Turnstile": "使用 Cloudflare Turnstile 保护登录和注册",
"Provide a JSON object where each key maps to an endpoint definition.": "提供一个 JSON 对象,其中每个键映射到一个端点定义。", "Provide a JSON object where each key maps to an endpoint definition.": "提供一个 JSON 对象,其中每个键映射到一个端点定义。",
"Provide a valid URL starting with http:// or https://": "请提供以 http:// 或 https:// 开头的有效 URL", "Provide a valid URL starting with http:// or https://": "请提供以 http:// 或 https:// 开头的有效 URL",
"Provide Markdown, HTML, or an external URL for the privacy policy": "提供 Markdown、HTML 或外部 URL 作为隐私政策", "Provide Markdown, HTML, or an external URL for the privacy policy": "提供 Markdown、HTML 或外部 URL 作为隐私政策",
...@@ -3860,6 +3875,7 @@ ...@@ -3860,6 +3875,7 @@
"Send a request": "发送请求", "Send a request": "发送请求",
"Send code": "发送验证码", "Send code": "发送验证码",
"Send email alerts when a user falls below this quota": "当用户低于此配额时发送电子邮件警报", "Send email alerts when a user falls below this quota": "当用户低于此配额时发送电子邮件警报",
"Send reset email": "发送重置邮件",
"Sending...": "发送中...", "Sending...": "发送中...",
"Sensitive Words": "敏感词", "Sensitive Words": "敏感词",
"Sent the API key to FluentRead.": "API 密钥已发送至 FluentRead。", "Sent the API key to FluentRead.": "API 密钥已发送至 FluentRead。",
...@@ -4240,6 +4256,7 @@ ...@@ -4240,6 +4256,7 @@
"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.": "此操作将永久移除您账户的 2FA 保护。", "This action will permanently remove 2FA protection from your account.": "此操作将永久移除您账户的 2FA 保护。",
"This channel has no configured models.": "该渠道没有配置模型。",
"This channel is not an Ollama channel.": "该渠道不是 Ollama 渠道。", "This channel is not an Ollama channel.": "该渠道不是 Ollama 渠道。",
"This channel type does not support fetching models": "此渠道类型不支持获取模型", "This channel type does not support fetching models": "此渠道类型不支持获取模型",
"This channel type requires additional configuration": "此渠道类型需要填写额外配置", "This channel type requires additional configuration": "此渠道类型需要填写额外配置",
...@@ -4326,6 +4343,7 @@ ...@@ -4326,6 +4343,7 @@
"Token Endpoint (Optional)": "Token 端点(可选)", "Token Endpoint (Optional)": "Token 端点(可选)",
"Token estimator": "Token 估算器", "Token estimator": "Token 估算器",
"Token group": "令牌分组", "Token group": "令牌分组",
"Token Limits": "令牌限制",
"Token management": "令牌管理", "Token management": "令牌管理",
"Token Management": "令牌管理", "Token Management": "令牌管理",
"Token Mgmt": "令牌管理", "Token Mgmt": "令牌管理",
...@@ -4524,6 +4542,7 @@ ...@@ -4524,6 +4542,7 @@
"Updated system setting {{key}}": "修改系统设置 {{key}}", "Updated system setting {{key}}": "修改系统设置 {{key}}",
"Updated user {{username}} (ID: {{id}})": "更新用户 {{username}}(ID: {{id}})", "Updated user {{username}} (ID: {{id}})": "更新用户 {{username}}(ID: {{id}})",
"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.": "正在更新所有渠道余额。这可能需要一段时间。请刷新以查看结果。",
"Updating...": "更新中...",
"Upgrade Group": "升级分组", "Upgrade Group": "升级分组",
"Upgrade plaintext SMTP connection with STARTTLS before authentication": "在身份验证前使用 STARTTLS 升级明文 SMTP 连接", "Upgrade plaintext SMTP connection with STARTTLS before authentication": "在身份验证前使用 STARTTLS 升级明文 SMTP 连接",
"Upload": "上传", "Upload": "上传",
...@@ -4728,6 +4747,7 @@ ...@@ -4728,6 +4747,7 @@
"Visual Parameter Override": "可视化参数覆盖", "Visual Parameter Override": "可视化参数覆盖",
"VolcEngine": "火山方舟", "VolcEngine": "火山方舟",
"vs. previous": "相较上期", "vs. previous": "相较上期",
"Waffo": "Waffo",
"Waffo Aggregator Gateway": "Waffo 聚合网关", "Waffo Aggregator Gateway": "Waffo 聚合网关",
"Waffo Pancake Dashboard": "Waffo Pancake 控制台", "Waffo Pancake Dashboard": "Waffo Pancake 控制台",
"Waffo Pancake MoR": "Waffo Pancake MoR", "Waffo Pancake MoR": "Waffo Pancake MoR",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment