diff --git a/web/src/i18n/locales/fr.json b/web/src/i18n/locales/fr.json index d4c76db698..a244a0df51 100644 --- a/web/src/i18n/locales/fr.json +++ b/web/src/i18n/locales/fr.json @@ -2730,6 +2730,104 @@ "缓存写": "Écriture cache", "写": "Écriture", "根据 Anthropic 协定,/v1/messages 的输入 tokens 仅统计非缓存输入,不包含缓存读取与缓存写入 tokens。": "Selon la convention Anthropic, les tokens d'entrée de /v1/messages ne comptent que les entrées non mises en cache et excluent les tokens de lecture/écriture du cache.", - "设计版本": "b80c3466cb6feafeb3990c7820e10e50" + "设计版本": "b80c3466cb6feafeb3990c7820e10e50", + "Recharge Quota": "Recharger le quota", + "自动禁用状态码": "Codes d'état de désactivation automatique", + "自动禁用状态码格式不正确": "Format de code d'état de désactivation automatique incorrect", + "自动重试状态码": "Codes d'état de nouvelle tentative automatique", + "自动重试状态码格式不正确": "Format de code d'état de nouvelle tentative automatique incorrect", + "支持填写单个状态码或范围(含首尾),使用逗号分隔": "Prend en charge les codes d'état individuels ou les plages (inclusives) ; séparer par des virgules", + "例如:401, 403, 429, 500-599": "Ex. : 401, 403, 429, 500-599", + "请求转换": "Conversion de requête", + "原生格式": "Format natif", + "转换": "Convertir", + "磁盘缓存设置(磁盘换内存)": "Paramètres du cache disque (échange disque/mémoire)", + "启用磁盘缓存后,大请求体将临时存储到磁盘而非内存,可显著降低内存占用,适用于处理包含大量图片/文件的请求。建议在 SSD 环境下使用。": "Lorsque activé, les corps de requête volumineux sont temporairement stockés sur le disque au lieu de la mémoire, réduisant significativement l'utilisation mémoire. Adapté aux requêtes avec de nombreuses images/fichiers. SSD recommandé.", + "启用磁盘缓存": "Activer le cache disque", + "将大请求体临时存储到磁盘": "Stocker temporairement les corps de requête volumineux sur le disque", + "磁盘缓存阈值 (MB)": "Seuil du cache disque (Mo)", + "请求体超过此大小时使用磁盘缓存": "Utiliser le cache disque quand le corps de requête dépasse cette taille", + "磁盘缓存最大总量 (MB)": "Taille maximale du cache disque (Mo)", + "可用空间: {{free}} / 总空间: {{total}}": "Espace libre : {{free}} / Total : {{total}}", + "磁盘缓存占用的最大空间": "Espace maximum occupé par le cache disque", + "留空使用系统临时目录": "Laisser vide pour utiliser le répertoire temporaire système", + "例如 /var/cache/new-api": "Ex. /var/cache/new-api", + "性能监控": "Surveillance des performances", + "刷新统计": "Actualiser les statistiques", + "重置统计": "Réinitialiser les statistiques", + "执行 GC": "Exécuter le GC", + "请求体磁盘缓存": "Cache disque des corps de requête", + "活跃文件": "Fichiers actifs", + "磁盘命中": "Succès disque", + "请求体内存缓存": "Cache mémoire des corps de requête", + "当前缓存大小": "Taille actuelle du cache", + "活跃缓存数": "Nombre de caches actifs", + "内存命中": "Succès mémoire", + "缓存目录磁盘空间": "Espace disque du répertoire de cache", + "磁盘可用空间小于缓存最大总量设置": "L'espace disque disponible est inférieur au paramètre de taille maximale du cache", + "已分配内存": "Mémoire allouée", + "总分配内存": "Mémoire totale allouée", + "系统内存": "Mémoire système", + "GC 次数": "Nombre de GC", + "Goroutine 数": "Nombre de Goroutines", + "目录文件数": "Nombre de fichiers dans le répertoire", + "目录总大小": "Taille totale du répertoire", + "磁盘缓存已清理": "Cache disque nettoyé", + "清理失败": "Échec du nettoyage", + "统计已重置": "Statistiques réinitialisées", + "重置失败": "Échec de la réinitialisation", + "GC 已执行": "GC exécuté", + "GC 执行失败": "Échec de l'exécution du GC", + "缓存目录": "Répertoire de cache", + "可用": "Disponible", + "选择充值套餐": "Choisir un forfait de recharge", + "GC execution failed": "Échec de l'exécution du GC", + "Cache Directory": "Répertoire de cache", + "Available": "Disponible", + "偏好设置": "Préférences", + "界面语言和其他个人偏好": "Langue de l'interface et autres préférences personnelles", + "语言偏好": "Préférence de langue", + "选择您的首选界面语言,设置将自动保存并同步到所有设备": "Sélectionnez votre langue d'interface préférée. Les paramètres seront automatiquement enregistrés et synchronisés sur tous les appareils", + "语言偏好已保存": "Préférence de langue enregistrée", + "提示:语言偏好会同步到您登录的所有设备,并影响API返回的错误消息语言。": "Note : La préférence de langue est synchronisée sur tous vos appareils connectés et affecte la langue des messages d'erreur de l'API.", + "自定义 OAuth 提供商": "Fournisseurs OAuth personnalisés", + "配置自定义 OAuth 提供商,支持 GitHub Enterprise、GitLab、Gitea、Nextcloud、Keycloak、ORY 等兼容 OAuth 2.0 协议的身份提供商": "Configurer des fournisseurs OAuth personnalisés, prend en charge GitHub Enterprise, GitLab, Gitea, Nextcloud, Keycloak, ORY et autres fournisseurs d'identité compatibles OAuth 2.0", + "回调 URL 格式": "Format de l'URL de rappel", + "添加提供商": "Ajouter un fournisseur", + "编辑提供商": "Modifier le fournisseur", + "选择预设...": "Sélectionner un préréglage...", + "输入基础 URL": "Entrer l'URL de base", + "例如": "Ex.", + "提供商名称": "Nom du fournisseur", + "标识符 (Slug)": "Identifiant (Slug)", + "授权端点": "Point de terminaison d'autorisation", + "令牌端点": "Point de terminaison de jeton", + "用户信息端点": "Point de terminaison des informations utilisateur", + "用户 ID 字段": "Champ ID utilisateur", + "支持 JSONPath,如 sub, id, data.user.id": "Prend en charge JSONPath, ex. sub, id, data.user.id", + "用户名字段": "Champ nom d'utilisateur", + "支持 JSONPath,如 preferred_username, login, data.user.username": "Prend en charge JSONPath, ex. preferred_username, login, data.user.username", + "显示名称字段": "Champ nom d'affichage", + "支持 JSONPath,如 name, display_name, data.user.name": "Prend en charge JSONPath, ex. name, display_name, data.user.name", + "邮箱字段": "Champ e-mail", + "支持 JSONPath,如 email, data.user.email": "Prend en charge JSONPath, ex. email, data.user.email", + "授权范围 (Scopes)": "Portées (Scopes)", + "认证方式": "Style d'authentification", + "参数传递": "Dans les paramètres", + "Basic Auth 头": "En-tête Basic Auth", + "暂无自定义 OAuth 提供商": "Aucun fournisseur OAuth personnalisé", + "确定要删除该提供商吗?": "Êtes-vous sûr de vouloir supprimer ce fournisseur ?", + "确定要解绑 {{name}} 吗?": "Êtes-vous sûr de vouloir dissocier {{name}} ?", + "解绑成功": "Dissociation réussie", + "{{name}} ID": "ID {{name}}", + "使用 {{name}} 继续": "Continuer avec {{name}}", + "端点 URL 必须以 http:// 或 https:// 开头:": "L'URL du point de terminaison doit commencer par http:// ou https:// : ", + "OAuth 配置错误:授权端点必须是完整的 URL(以 http:// 或 https:// 开头)": "Erreur de configuration OAuth : Le point de terminaison d'autorisation doit être une URL complète (commençant par http:// ou https://)", + "OAuth 登录失败:": "Échec de la connexion OAuth : ", + "必填:请输入服务器地址以自动生成完整端点 URL": "Requis : Entrez l'adresse du serveur pour générer automatiquement les URL complètes des points de terminaison", + "填写服务器地址后自动生成:": "Généré automatiquement après avoir entré l'adresse du serveur : ", + "自动生成:": "Généré automatiquement : ", + "请先填写服务器地址,以自动生成完整的端点 URL": "Veuillez d'abord entrer l'adresse du serveur pour générer automatiquement les URL complètes des points de terminaison", + "端点 URL 必须是完整地址(以 http:// 或 https:// 开头)": "L'URL du point de terminaison doit être une adresse complète (commençant par http:// ou https://)" } } diff --git a/web/src/i18n/locales/ja.json b/web/src/i18n/locales/ja.json index 9ab727ec4d..d23c901e59 100644 --- a/web/src/i18n/locales/ja.json +++ b/web/src/i18n/locales/ja.json @@ -2713,6 +2713,109 @@ "缓存写": "キャッシュ書込", "写": "書込", "根据 Anthropic 协定,/v1/messages 的输入 tokens 仅统计非缓存输入,不包含缓存读取与缓存写入 tokens。": "Anthropic の仕様により、/v1/messages の入力 tokens は非キャッシュ入力のみを集計し、キャッシュ読み取り/書き込み tokens は含みません。", - "设计版本": "b80c3466cb6feafeb3990c7820e10e50" + "设计版本": "b80c3466cb6feafeb3990c7820e10e50", + "(筛选后显示 {{count}} 条)_one": "(フィルター後 {{count}} 件表示)", + "Recharge Quota": "クォータをチャージ", + "共 {{count}} 个模型_one": "{{count}} モデル", + "共 {{count}} 条日志_one": "{{count}} ログエントリ", + "和Claude不同,默认情况下Gemini的思考模型会自动决定要不要思考,就算不开启适配模型也可以正常使用,如果您需要计费,推荐设置无后缀模型价格按思考价格设置。支持使用 gemini-2.5-pro-preview-06-05-thinking-128 格式来精确传递思考预算。": "Claudeとは異なり、Geminiの思考モデルはデフォルトで自動的に思考するかどうかを決定します。アダプターを有効にしなくても正常に動作します。課金が必要な場合は、サフィックスなしのモデル価格を思考価格に設定することをお勧めします。gemini-2.5-pro-preview-06-05-thinking-128 の形式で正確な思考バジェットを指定できます。", + "已删除 {{count}} 个令牌!_one": "{{count}} トークンを削除しました!", + "自动禁用状态码": "自動無効化ステータスコード", + "自动禁用状态码格式不正确": "自動無効化ステータスコードの形式が正しくありません", + "自动重试状态码": "自動リトライステータスコード", + "自动重试状态码格式不正确": "自動リトライステータスコードの形式が正しくありません", + "支持填写单个状态码或范围(含首尾),使用逗号分隔": "単一のステータスコードまたは範囲(両端含む)をサポート;カンマで区切ってください", + "例如:401, 403, 429, 500-599": "例:401, 403, 429, 500-599", + "请求转换": "リクエスト変換", + "原生格式": "ネイティブ形式", + "转换": "変換", + "磁盘缓存设置(磁盘换内存)": "ディスクキャッシュ設定(ディスク/メモリスワップ)", + "启用磁盘缓存后,大请求体将临时存储到磁盘而非内存,可显著降低内存占用,适用于处理包含大量图片/文件的请求。建议在 SSD 环境下使用。": "有効にすると、大きなリクエストボディがメモリの代わりにディスクに一時保存され、メモリ使用量が大幅に削減されます。大量の画像/ファイルを含むリクエストに適しています。SSD推奨。", + "启用磁盘缓存": "ディスクキャッシュを有効にする", + "将大请求体临时存储到磁盘": "大きなリクエストボディをディスクに一時保存", + "磁盘缓存阈值 (MB)": "ディスクキャッシュしきい値 (MB)", + "请求体超过此大小时使用磁盘缓存": "リクエストボディがこのサイズを超えた場合にディスクキャッシュを使用", + "磁盘缓存最大总量 (MB)": "ディスクキャッシュ最大サイズ (MB)", + "可用空间: {{free}} / 总空间: {{total}}": "空き容量: {{free}} / 合計: {{total}}", + "磁盘缓存占用的最大空间": "ディスクキャッシュが占める最大容量", + "留空使用系统临时目录": "空欄でシステムの一時ディレクトリを使用", + "例如 /var/cache/new-api": "例:/var/cache/new-api", + "性能监控": "パフォーマンスモニター", + "刷新统计": "統計を更新", + "重置统计": "統計をリセット", + "执行 GC": "GCを実行", + "请求体磁盘缓存": "リクエストボディのディスクキャッシュ", + "活跃文件": "アクティブファイル", + "磁盘命中": "ディスクヒット", + "请求体内存缓存": "リクエストボディのメモリキャッシュ", + "当前缓存大小": "現在のキャッシュサイズ", + "活跃缓存数": "アクティブキャッシュ数", + "内存命中": "メモリヒット", + "缓存目录磁盘空间": "キャッシュディレクトリのディスク容量", + "磁盘可用空间小于缓存最大总量设置": "ディスクの空き容量がキャッシュ最大サイズの設定を下回っています", + "已分配内存": "割り当て済みメモリ", + "总分配内存": "総割り当てメモリ", + "系统内存": "システムメモリ", + "GC 次数": "GC回数", + "Goroutine 数": "Goroutine数", + "目录文件数": "ディレクトリファイル数", + "目录总大小": "ディレクトリ合計サイズ", + "磁盘缓存已清理": "ディスクキャッシュをクリアしました", + "清理失败": "クリアに失敗しました", + "统计已重置": "統計がリセットされました", + "重置失败": "リセットに失敗しました", + "GC 已执行": "GCを実行しました", + "GC 执行失败": "GCの実行に失敗しました", + "缓存目录": "キャッシュディレクトリ", + "可用": "利用可能", + "选择充值套餐": "チャージパッケージを選択", + "GC execution failed": "GCの実行に失敗しました", + "Cache Directory": "キャッシュディレクトリ", + "Available": "利用可能", + "偏好设置": "設定", + "界面语言和其他个人偏好": "インターフェース言語とその他の個人設定", + "语言偏好": "言語設定", + "选择您的首选界面语言,设置将自动保存并同步到所有设备": "優先するインターフェース言語を選択してください。設定は自動的に保存され、すべてのデバイスで同期されます", + "语言偏好已保存": "言語設定を保存しました", + "提示:语言偏好会同步到您登录的所有设备,并影响API返回的错误消息语言。": "注意:言語設定はログインしているすべてのデバイスで同期され、APIエラーメッセージの言語にも影響します。", + "自定义 OAuth 提供商": "カスタムOAuthプロバイダー", + "配置自定义 OAuth 提供商,支持 GitHub Enterprise、GitLab、Gitea、Nextcloud、Keycloak、ORY 等兼容 OAuth 2.0 协议的身份提供商": "カスタムOAuthプロバイダーを設定します。GitHub Enterprise、GitLab、Gitea、Nextcloud、Keycloak、ORYなどのOAuth 2.0互換IDプロバイダーに対応", + "回调 URL 格式": "コールバックURL形式", + "添加提供商": "プロバイダーを追加", + "编辑提供商": "プロバイダーを編集", + "选择预设...": "プリセットを選択...", + "输入基础 URL": "ベースURLを入力", + "例如": "例", + "提供商名称": "プロバイダー名", + "标识符 (Slug)": "識別子 (Slug)", + "授权端点": "認可エンドポイント", + "令牌端点": "トークンエンドポイント", + "用户信息端点": "ユーザー情報エンドポイント", + "用户 ID 字段": "ユーザーIDフィールド", + "支持 JSONPath,如 sub, id, data.user.id": "JSONPathをサポート、例:sub, id, data.user.id", + "用户名字段": "ユーザー名フィールド", + "支持 JSONPath,如 preferred_username, login, data.user.username": "JSONPathをサポート、例:preferred_username, login, data.user.username", + "显示名称字段": "表示名フィールド", + "支持 JSONPath,如 name, display_name, data.user.name": "JSONPathをサポート、例:name, display_name, data.user.name", + "邮箱字段": "メールフィールド", + "支持 JSONPath,如 email, data.user.email": "JSONPathをサポート、例:email, data.user.email", + "授权范围 (Scopes)": "スコープ", + "认证方式": "認証方式", + "参数传递": "パラメータで送信", + "Basic Auth 头": "Basic Authヘッダー", + "暂无自定义 OAuth 提供商": "カスタムOAuthプロバイダーはありません", + "确定要删除该提供商吗?": "このプロバイダーを削除してもよろしいですか?", + "确定要解绑 {{name}} 吗?": "{{name}}の連携を解除してもよろしいですか?", + "解绑成功": "連携を解除しました", + "{{name}} ID": "{{name}} ID", + "使用 {{name}} 继续": "{{name}}で続行", + "端点 URL 必须以 http:// 或 https:// 开头:": "エンドポイントURLはhttp://またはhttps://で始まる必要があります:", + "OAuth 配置错误:授权端点必须是完整的 URL(以 http:// 或 https:// 开头)": "OAuth設定エラー:認可エンドポイントは完全なURL(http://またはhttps://で始まる)である必要があります", + "OAuth 登录失败:": "OAuthログインに失敗しました:", + "必填:请输入服务器地址以自动生成完整端点 URL": "必須:サーバーアドレスを入力して完全なエンドポイントURLを自動生成", + "填写服务器地址后自动生成:": "サーバーアドレス入力後に自動生成:", + "自动生成:": "自動生成:", + "请先填写服务器地址,以自动生成完整的端点 URL": "まずサーバーアドレスを入力して、完全なエンドポイントURLを自動生成してください", + "端点 URL 必须是完整地址(以 http:// 或 https:// 开头)": "エンドポイントURLは完全なアドレス(http://またはhttps://で始まる)である必要があります" } } diff --git a/web/src/i18n/locales/ru.json b/web/src/i18n/locales/ru.json index 97e243d37c..c4cce84b95 100644 --- a/web/src/i18n/locales/ru.json +++ b/web/src/i18n/locales/ru.json @@ -2743,6 +2743,104 @@ "缓存写": "Запись в кэш", "写": "Запись", "根据 Anthropic 协定,/v1/messages 的输入 tokens 仅统计非缓存输入,不包含缓存读取与缓存写入 tokens。": "Согласно соглашению Anthropic, входные токены /v1/messages учитывают только некэшированный ввод и не включают токены чтения/записи кэша.", - "设计版本": "b80c3466cb6feafeb3990c7820e10e50" + "设计版本": "b80c3466cb6feafeb3990c7820e10e50", + "Recharge Quota": "Пополнить квоту", + "自动禁用状态码": "Коды состояния автоотключения", + "自动禁用状态码格式不正确": "Неверный формат кода состояния автоотключения", + "自动重试状态码": "Коды состояния автоповтора", + "自动重试状态码格式不正确": "Неверный формат кода состояния автоповтора", + "支持填写单个状态码或范围(含首尾),使用逗号分隔": "Поддерживает одиночные коды состояния или диапазоны (включительно); разделяйте запятыми", + "例如:401, 403, 429, 500-599": "Напр.: 401, 403, 429, 500-599", + "请求转换": "Преобразование запроса", + "原生格式": "Нативный формат", + "转换": "Преобразовать", + "磁盘缓存设置(磁盘换内存)": "Настройки дискового кеша (подкачка диск/память)", + "启用磁盘缓存后,大请求体将临时存储到磁盘而非内存,可显著降低内存占用,适用于处理包含大量图片/文件的请求。建议在 SSD 环境下使用。": "При включении большие тела запросов временно сохраняются на диск вместо памяти, значительно снижая использование памяти. Подходит для запросов с большим количеством изображений/файлов. Рекомендуется SSD.", + "启用磁盘缓存": "Включить дисковый кеш", + "将大请求体临时存储到磁盘": "Временно сохранять большие тела запросов на диск", + "磁盘缓存阈值 (MB)": "Порог дискового кеша (МБ)", + "请求体超过此大小时使用磁盘缓存": "Использовать дисковый кеш, когда тело запроса превышает этот размер", + "磁盘缓存最大总量 (MB)": "Максимальный размер дискового кеша (МБ)", + "可用空间: {{free}} / 总空间: {{total}}": "Свободно: {{free}} / Всего: {{total}}", + "磁盘缓存占用的最大空间": "Максимальное пространство, занимаемое дисковым кешем", + "留空使用系统临时目录": "Оставьте пустым для использования системной временной директории", + "例如 /var/cache/new-api": "Напр. /var/cache/new-api", + "性能监控": "Мониторинг производительности", + "刷新统计": "Обновить статистику", + "重置统计": "Сбросить статистику", + "执行 GC": "Запустить GC", + "请求体磁盘缓存": "Дисковый кеш тел запросов", + "活跃文件": "Активные файлы", + "磁盘命中": "Попадания на диске", + "请求体内存缓存": "Кеш тел запросов в памяти", + "当前缓存大小": "Текущий размер кеша", + "活跃缓存数": "Количество активных кешей", + "内存命中": "Попадания в памяти", + "缓存目录磁盘空间": "Дисковое пространство каталога кеша", + "磁盘可用空间小于缓存最大总量设置": "Свободное место на диске меньше настройки максимального размера кеша", + "已分配内存": "Выделенная память", + "总分配内存": "Общая выделенная память", + "系统内存": "Системная память", + "GC 次数": "Количество GC", + "Goroutine 数": "Количество Goroutine", + "目录文件数": "Количество файлов в каталоге", + "目录总大小": "Общий размер каталога", + "磁盘缓存已清理": "Дисковый кеш очищен", + "清理失败": "Ошибка очистки", + "统计已重置": "Статистика сброшена", + "重置失败": "Ошибка сброса", + "GC 已执行": "GC выполнен", + "GC 执行失败": "Ошибка выполнения GC", + "缓存目录": "Каталог кеша", + "可用": "Доступно", + "选择充值套餐": "Выбрать пакет пополнения", + "GC execution failed": "Ошибка выполнения GC", + "Cache Directory": "Каталог кеша", + "Available": "Доступно", + "偏好设置": "Настройки", + "界面语言和其他个人偏好": "Язык интерфейса и другие личные настройки", + "语言偏好": "Языковые настройки", + "选择您的首选界面语言,设置将自动保存并同步到所有设备": "Выберите предпочитаемый язык интерфейса. Настройки будут автоматически сохранены и синхронизированы на всех устройствах", + "语言偏好已保存": "Языковые настройки сохранены", + "提示:语言偏好会同步到您登录的所有设备,并影响API返回的错误消息语言。": "Примечание: Языковые настройки синхронизируются на всех ваших устройствах и влияют на язык сообщений об ошибках API.", + "自定义 OAuth 提供商": "Пользовательские OAuth-провайдеры", + "配置自定义 OAuth 提供商,支持 GitHub Enterprise、GitLab、Gitea、Nextcloud、Keycloak、ORY 等兼容 OAuth 2.0 协议的身份提供商": "Настройка пользовательских OAuth-провайдеров, поддержка GitHub Enterprise, GitLab, Gitea, Nextcloud, Keycloak, ORY и других OAuth 2.0-совместимых провайдеров идентификации", + "回调 URL 格式": "Формат URL обратного вызова", + "添加提供商": "Добавить провайдера", + "编辑提供商": "Редактировать провайдера", + "选择预设...": "Выбрать пресет...", + "输入基础 URL": "Введите базовый URL", + "例如": "Напр.", + "提供商名称": "Имя провайдера", + "标识符 (Slug)": "Идентификатор (Slug)", + "授权端点": "Эндпоинт авторизации", + "令牌端点": "Эндпоинт токена", + "用户信息端点": "Эндпоинт информации о пользователе", + "用户 ID 字段": "Поле ID пользователя", + "支持 JSONPath,如 sub, id, data.user.id": "Поддерживает JSONPath, напр. sub, id, data.user.id", + "用户名字段": "Поле имени пользователя", + "支持 JSONPath,如 preferred_username, login, data.user.username": "Поддерживает JSONPath, напр. preferred_username, login, data.user.username", + "显示名称字段": "Поле отображаемого имени", + "支持 JSONPath,如 name, display_name, data.user.name": "Поддерживает JSONPath, напр. name, display_name, data.user.name", + "邮箱字段": "Поле электронной почты", + "支持 JSONPath,如 email, data.user.email": "Поддерживает JSONPath, напр. email, data.user.email", + "授权范围 (Scopes)": "Области доступа (Scopes)", + "认证方式": "Стиль аутентификации", + "参数传递": "В параметрах", + "Basic Auth 头": "Заголовок Basic Auth", + "暂无自定义 OAuth 提供商": "Нет пользовательских OAuth-провайдеров", + "确定要删除该提供商吗?": "Вы уверены, что хотите удалить этого провайдера?", + "确定要解绑 {{name}} 吗?": "Вы уверены, что хотите отвязать {{name}}?", + "解绑成功": "Успешно отвязано", + "{{name}} ID": "ID {{name}}", + "使用 {{name}} 继续": "Продолжить с {{name}}", + "端点 URL 必须以 http:// 或 https:// 开头:": "URL эндпоинта должен начинаться с http:// или https://: ", + "OAuth 配置错误:授权端点必须是完整的 URL(以 http:// 或 https:// 开头)": "Ошибка конфигурации OAuth: Эндпоинт авторизации должен быть полным URL (начинающимся с http:// или https://)", + "OAuth 登录失败:": "Ошибка входа через OAuth: ", + "必填:请输入服务器地址以自动生成完整端点 URL": "Обязательно: Введите адрес сервера для автоматической генерации полных URL эндпоинтов", + "填写服务器地址后自动生成:": "Автоматически сгенерировано после ввода адреса сервера: ", + "自动生成:": "Автоматически сгенерировано: ", + "请先填写服务器地址,以自动生成完整的端点 URL": "Сначала введите адрес сервера для автоматической генерации полных URL эндпоинтов", + "端点 URL 必须是完整地址(以 http:// 或 https:// 开头)": "URL эндпоинта должен быть полным адресом (начинающимся с http:// или https://)" } } diff --git a/web/src/i18n/locales/vi.json b/web/src/i18n/locales/vi.json index 8875b1b5f3..01cb3b3aaa 100644 --- a/web/src/i18n/locales/vi.json +++ b/web/src/i18n/locales/vi.json @@ -3290,6 +3290,105 @@ "缓存写": "Ghi bộ nhớ đệm", "写": "Ghi", "根据 Anthropic 协定,/v1/messages 的输入 tokens 仅统计非缓存输入,不包含缓存读取与缓存写入 tokens。": "Theo quy ước của Anthropic, input tokens của /v1/messages chỉ tính phần đầu vào không dùng cache và không bao gồm tokens đọc/ghi cache.", - "设计版本": "b80c3466cb6feafeb3990c7820e10e50" + "设计版本": "b80c3466cb6feafeb3990c7820e10e50", + "(筛选后显示 {{count}} 条)_one": "(Hiển thị {{count}} mục sau khi lọc)", + "共 {{count}} 个模型_one": "{{count}} mô hình", + "共 {{count}} 条日志_one": "{{count}} bản ghi nhật ký", + "已删除 {{count}} 个令牌!_one": "Đã xóa {{count}} token!", + "自动禁用状态码": "Mã trạng thái tự động vô hiệu hóa", + "自动禁用状态码格式不正确": "Định dạng mã trạng thái tự động vô hiệu hóa không đúng", + "自动重试状态码": "Mã trạng thái tự động thử lại", + "自动重试状态码格式不正确": "Định dạng mã trạng thái tự động thử lại không đúng", + "支持填写单个状态码或范围(含首尾),使用逗号分隔": "Hỗ trợ mã trạng thái đơn lẻ hoặc phạm vi (bao gồm cả hai đầu); phân cách bằng dấu phẩy", + "例如:401, 403, 429, 500-599": "Ví dụ: 401, 403, 429, 500-599", + "请求转换": "Chuyển đổi yêu cầu", + "原生格式": "Định dạng gốc", + "转换": "Chuyển đổi", + "磁盘缓存设置(磁盘换内存)": "Cài đặt bộ nhớ đệm đĩa (hoán đổi đĩa/bộ nhớ)", + "启用磁盘缓存后,大请求体将临时存储到磁盘而非内存,可显著降低内存占用,适用于处理包含大量图片/文件的请求。建议在 SSD 环境下使用。": "Khi bật, nội dung yêu cầu lớn được lưu tạm trên đĩa thay vì bộ nhớ, giảm đáng kể mức sử dụng bộ nhớ. Phù hợp cho các yêu cầu có nhiều hình ảnh/tệp. Khuyến nghị dùng SSD.", + "启用磁盘缓存": "Bật bộ nhớ đệm đĩa", + "将大请求体临时存储到磁盘": "Lưu tạm nội dung yêu cầu lớn trên đĩa", + "磁盘缓存阈值 (MB)": "Ngưỡng bộ nhớ đệm đĩa (MB)", + "请求体超过此大小时使用磁盘缓存": "Sử dụng bộ nhớ đệm đĩa khi nội dung yêu cầu vượt quá kích thước này", + "磁盘缓存最大总量 (MB)": "Kích thước tối đa bộ nhớ đệm đĩa (MB)", + "可用空间: {{free}} / 总空间: {{total}}": "Trống: {{free}} / Tổng: {{total}}", + "磁盘缓存占用的最大空间": "Dung lượng tối đa bộ nhớ đệm đĩa chiếm dụng", + "留空使用系统临时目录": "Để trống để sử dụng thư mục tạm của hệ thống", + "例如 /var/cache/new-api": "Ví dụ: /var/cache/new-api", + "性能监控": "Giám sát hiệu suất", + "刷新统计": "Làm mới thống kê", + "重置统计": "Đặt lại thống kê", + "执行 GC": "Chạy GC", + "请求体磁盘缓存": "Bộ nhớ đệm đĩa nội dung yêu cầu", + "活跃文件": "Tệp hoạt động", + "磁盘命中": "Lượt trúng đĩa", + "请求体内存缓存": "Bộ nhớ đệm nội dung yêu cầu", + "当前缓存大小": "Kích thước bộ nhớ đệm hiện tại", + "活跃缓存数": "Số bộ nhớ đệm hoạt động", + "内存命中": "Lượt trúng bộ nhớ", + "缓存目录磁盘空间": "Dung lượng đĩa thư mục bộ nhớ đệm", + "磁盘可用空间小于缓存最大总量设置": "Dung lượng trống trên đĩa nhỏ hơn cài đặt kích thước tối đa bộ nhớ đệm", + "已分配内存": "Bộ nhớ đã cấp phát", + "总分配内存": "Tổng bộ nhớ đã cấp phát", + "系统内存": "Bộ nhớ hệ thống", + "GC 次数": "Số lần GC", + "Goroutine 数": "Số Goroutine", + "目录文件数": "Số tệp trong thư mục", + "目录总大小": "Tổng kích thước thư mục", + "磁盘缓存已清理": "Đã xóa bộ nhớ đệm đĩa", + "清理失败": "Xóa thất bại", + "统计已重置": "Đã đặt lại thống kê", + "重置失败": "Đặt lại thất bại", + "GC 已执行": "Đã chạy GC", + "GC 执行失败": "Chạy GC thất bại", + "缓存目录": "Thư mục bộ nhớ đệm", + "可用": "Khả dụng", + "GC execution failed": "Chạy GC thất bại", + "Cache Directory": "Thư mục bộ nhớ đệm", + "Available": "Khả dụng", + "偏好设置": "Tùy chọn", + "界面语言和其他个人偏好": "Ngôn ngữ giao diện và các tùy chọn cá nhân khác", + "语言偏好": "Tùy chọn ngôn ngữ", + "选择您的首选界面语言,设置将自动保存并同步到所有设备": "Chọn ngôn ngữ giao diện ưa thích. Cài đặt sẽ được tự động lưu và đồng bộ trên tất cả thiết bị", + "语言偏好已保存": "Đã lưu tùy chọn ngôn ngữ", + "提示:语言偏好会同步到您登录的所有设备,并影响API返回的错误消息语言。": "Lưu ý: Tùy chọn ngôn ngữ được đồng bộ trên tất cả thiết bị đã đăng nhập và ảnh hưởng đến ngôn ngữ thông báo lỗi API.", + "自定义 OAuth 提供商": "Nhà cung cấp OAuth tùy chỉnh", + "配置自定义 OAuth 提供商,支持 GitHub Enterprise、GitLab、Gitea、Nextcloud、Keycloak、ORY 等兼容 OAuth 2.0 协议的身份提供商": "Cấu hình nhà cung cấp OAuth tùy chỉnh, hỗ trợ GitHub Enterprise, GitLab, Gitea, Nextcloud, Keycloak, ORY và các nhà cung cấp danh tính tương thích OAuth 2.0 khác", + "回调 URL 格式": "Định dạng URL callback", + "添加提供商": "Thêm nhà cung cấp", + "编辑提供商": "Sửa nhà cung cấp", + "选择预设...": "Chọn cài đặt sẵn...", + "输入基础 URL": "Nhập URL cơ sở", + "例如": "Ví dụ", + "提供商名称": "Tên nhà cung cấp", + "标识符 (Slug)": "Định danh (Slug)", + "授权端点": "Endpoint ủy quyền", + "令牌端点": "Endpoint token", + "用户信息端点": "Endpoint thông tin người dùng", + "用户 ID 字段": "Trường ID người dùng", + "支持 JSONPath,如 sub, id, data.user.id": "Hỗ trợ JSONPath, ví dụ: sub, id, data.user.id", + "用户名字段": "Trường tên người dùng", + "支持 JSONPath,如 preferred_username, login, data.user.username": "Hỗ trợ JSONPath, ví dụ: preferred_username, login, data.user.username", + "显示名称字段": "Trường tên hiển thị", + "支持 JSONPath,如 name, display_name, data.user.name": "Hỗ trợ JSONPath, ví dụ: name, display_name, data.user.name", + "邮箱字段": "Trường email", + "支持 JSONPath,如 email, data.user.email": "Hỗ trợ JSONPath, ví dụ: email, data.user.email", + "授权范围 (Scopes)": "Phạm vi (Scopes)", + "认证方式": "Kiểu xác thực", + "参数传递": "Trong tham số", + "Basic Auth 头": "Header Basic Auth", + "暂无自定义 OAuth 提供商": "Chưa có nhà cung cấp OAuth tùy chỉnh", + "确定要删除该提供商吗?": "Bạn có chắc muốn xóa nhà cung cấp này?", + "确定要解绑 {{name}} 吗?": "Bạn có chắc muốn hủy liên kết {{name}}?", + "{{name}} ID": "ID {{name}}", + "使用 {{name}} 继续": "Tiếp tục với {{name}}", + "端点 URL 必须以 http:// 或 https:// 开头:": "URL endpoint phải bắt đầu bằng http:// hoặc https://: ", + "OAuth 配置错误:授权端点必须是完整的 URL(以 http:// 或 https:// 开头)": "Lỗi cấu hình OAuth: Endpoint ủy quyền phải là URL đầy đủ (bắt đầu bằng http:// hoặc https://)", + "OAuth 登录失败:": "Đăng nhập OAuth thất bại: ", + "必填:请输入服务器地址以自动生成完整端点 URL": "Bắt buộc: Nhập địa chỉ máy chủ để tự động tạo URL endpoint đầy đủ", + "填写服务器地址后自动生成:": "Tự động tạo sau khi nhập địa chỉ máy chủ: ", + "自动生成:": "Tự động tạo: ", + "请先填写服务器地址,以自动生成完整的端点 URL": "Vui lòng nhập địa chỉ máy chủ trước để tự động tạo URL endpoint đầy đủ", + "端点 URL 必须是完整地址(以 http:// 或 https:// 开头)": "URL endpoint phải là địa chỉ đầy đủ (bắt đầu bằng http:// hoặc https://)" } } diff --git a/web/src/i18n/locales/zh-TW.json b/web/src/i18n/locales/zh-TW.json index 562a7d5438..e38965c772 100644 --- a/web/src/i18n/locales/zh-TW.json +++ b/web/src/i18n/locales/zh-TW.json @@ -2788,6 +2788,33 @@ "填写服务器地址后自动生成:": "填寫伺服器位址後自動生成:", "自动生成:": "自動生成:", "请先填写服务器地址,以自动生成完整的端点 URL": "請先填寫伺服器位址,以自動生成完整的端點 URL", - "端点 URL 必须是完整地址(以 http:// 或 https:// 开头)": "端點 URL 必須是完整位址(以 http:// 或 https:// 開頭)" + "端点 URL 必须是完整地址(以 http:// 或 https:// 开头)": "端點 URL 必須是完整位址(以 http:// 或 https:// 開頭)", + " + Web搜索 {{count}}次 / 1K 次 * {{symbol}}{{price}} * {{ratioType}} {{ratio}}_one": " + Web搜尋 {{count}}次 / 1K 次 * {{symbol}}{{price}} * {{ratioType}} {{ratio}}", + " + 文件搜索 {{count}}次 / 1K 次 * {{symbol}}{{price}} * {{ratioType}} {{ratio}}_one": " + 檔案搜尋 {{count}}次 / 1K 次 * {{symbol}}{{price}} * {{ratioType}} {{ratio}}", + "(筛选后显示 {{count}} 条)_one": "(篩選後顯示 {{count}} 條)", + "Recharge Quota": "充值額度", + "共 {{count}} 个密钥_one": "共 {{count}} 個金鑰", + "共 {{count}} 个模型_one": "共 {{count}} 個模型", + "共 {{count}} 条日志_one": "共 {{count}} 條日誌", + "已为 {{count}} 个模型设置{{type}}_one": "已為 {{count}} 個模型設置{{type}}", + "已删除 {{count}} 个令牌!_one": "已刪除 {{count}} 個令牌!", + "已删除 {{count}} 条失效兑换码_one": "已刪除 {{count}} 條失效兌換碼", + "已新增 {{count}} 个模型:{{list}}_one": "已新增 {{count}} 個模型:{{list}}", + "已选择 {{count}} 个模型_one": "已選擇 {{count}} 個模型", + "确定要删除所选的 {{count}} 个令牌吗?_one": "確定要刪除所選的 {{count}} 個令牌嗎?", + "确定要删除所选的 {{count}} 个模型吗?_one": "確定要刪除所選的 {{count}} 個模型嗎?", + "选择充值套餐": "選擇充值套餐", + "输入额度": "輸入額度", + "金额": "金額", + "输入金额": "輸入金額", + "仅用于换算,实际保存的是额度": "僅用於換算,實際保存的是額度", + "GC execution failed": "GC 執行失敗", + "Cache Directory": "快取目錄", + "Available": "可用", + "缓存读": "快取讀", + "缓存写": "快取寫", + "写": "寫", + "根据 Anthropic 协定,/v1/messages 的输入 tokens 仅统计非缓存输入,不包含缓存读取与缓存写入 tokens。": "根據 Anthropic 協定,/v1/messages 的輸入 tokens 僅統計非快取輸入,不包含快取讀取與快取寫入 tokens。", + "设计版本": "設計版本" } } diff --git a/web/src/index.jsx b/web/src/index.jsx index 5162b0cbdd..95299c065d 100644 --- a/web/src/index.jsx +++ b/web/src/index.jsx @@ -31,7 +31,12 @@ import './index.css'; import { LocaleProvider } from '@douyinfe/semi-ui'; import { useTranslation } from 'react-i18next'; import zh_CN from '@douyinfe/semi-ui/lib/es/locale/source/zh_CN'; +import zh_TW from '@douyinfe/semi-ui/lib/es/locale/source/zh_TW'; import en_GB from '@douyinfe/semi-ui/lib/es/locale/source/en_GB'; +import fr from '@douyinfe/semi-ui/lib/es/locale/source/fr'; +import ru_RU from '@douyinfe/semi-ui/lib/es/locale/source/ru_RU'; +import ja_JP from '@douyinfe/semi-ui/lib/es/locale/source/ja_JP'; +import vi_VN from '@douyinfe/semi-ui/lib/es/locale/source/vi_VN'; // 欢迎信息(二次开发者未经允许不准将此移除) // Welcome message (Do not remove this without permission from the original developer) @@ -46,7 +51,16 @@ if (typeof window !== 'undefined') { function SemiLocaleWrapper({ children }) { const { i18n } = useTranslation(); const semiLocale = React.useMemo( - () => ({ zh: zh_CN, en: en_GB })[i18n.language] || zh_CN, + () => + ({ + 'zh-CN': zh_CN, + 'zh-TW': zh_TW, + en: en_GB, + fr: fr, + ru: ru_RU, + ja: ja_JP, + vi: vi_VN, + })[i18n.language] || en_GB, [i18n.language], ); return {children};