omniroute 1.7.7 → 1.7.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/app-path-routes-manifest.json +37 -37
  3. package/app/.next/build-manifest.json +2 -2
  4. package/app/.next/prerender-manifest.json +3 -3
  5. package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  6. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
  7. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page_client-reference-manifest.js +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/media/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/settings/page.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  27. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  28. package/app/.next/server/app/_global-error.html +2 -2
  29. package/app/.next/server/app/_global-error.rsc +1 -1
  30. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  31. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  32. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  33. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  34. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  35. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  36. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  37. package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  39. package/app/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  40. package/app/.next/server/app/api/cache/route_client-reference-manifest.js +1 -1
  41. package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
  42. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  43. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  44. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +2 -2
  45. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  46. package/app/.next/server/app/api/cli-tools/backups/route.js +1 -1
  47. package/app/.next/server/app/api/cli-tools/backups/route_client-reference-manifest.js +1 -1
  48. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +1 -1
  49. package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  50. package/app/.next/server/app/api/cli-tools/cline-settings/route.js +1 -1
  51. package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
  52. package/app/.next/server/app/api/cli-tools/codex-profiles/route.js +2 -2
  53. package/app/.next/server/app/api/cli-tools/codex-profiles/route_client-reference-manifest.js +1 -1
  54. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +1 -1
  55. package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  56. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +1 -1
  57. package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  58. package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route_client-reference-manifest.js +1 -1
  59. package/app/.next/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  60. package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
  61. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  62. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  63. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route.js +2 -2
  64. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route_client-reference-manifest.js +1 -1
  65. package/app/.next/server/app/api/cli-tools/status/route.js +2 -2
  66. package/app/.next/server/app/api/cli-tools/status/route_client-reference-manifest.js +1 -1
  67. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
  68. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
  69. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
  70. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
  71. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  72. package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
  73. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  74. package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
  75. package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -1
  76. package/app/.next/server/app/api/db-backups/export/route_client-reference-manifest.js +1 -1
  77. package/app/.next/server/app/api/db-backups/exportAll/route_client-reference-manifest.js +1 -1
  78. package/app/.next/server/app/api/db-backups/import/route_client-reference-manifest.js +1 -1
  79. package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
  80. package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
  81. package/app/.next/server/app/api/evals/route_client-reference-manifest.js +1 -1
  82. package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
  83. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  84. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  85. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  86. package/app/.next/server/app/api/logs/console/route_client-reference-manifest.js +1 -1
  87. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  88. package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
  89. package/app/.next/server/app/api/models/catalog/route_client-reference-manifest.js +1 -1
  90. package/app/.next/server/app/api/models/route.js +1 -1
  91. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  92. package/app/.next/server/app/api/monitoring/health/route.js +1 -1
  93. package/app/.next/server/app/api/monitoring/health/route_client-reference-manifest.js +1 -1
  94. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  95. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  96. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  97. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  98. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  99. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  100. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  101. package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
  102. package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
  103. package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
  104. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  105. package/app/.next/server/app/api/provider-metrics/route_client-reference-manifest.js +1 -1
  106. package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
  107. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  108. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  109. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  110. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  111. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  112. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  113. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  114. package/app/.next/server/app/api/providers/route.js +1 -1
  115. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  116. package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  117. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  118. package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
  119. package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
  120. package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
  121. package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
  122. package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  123. package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  124. package/app/.next/server/app/api/settings/background-degradation/route_client-reference-manifest.js +1 -1
  125. package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
  126. package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
  127. package/app/.next/server/app/api/settings/model-aliases/route_client-reference-manifest.js +1 -1
  128. package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
  129. package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
  130. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  131. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  132. package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
  133. package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
  134. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  135. package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
  136. package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
  137. package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
  138. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  139. package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -1
  140. package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -1
  141. package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
  142. package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
  143. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  144. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  145. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  146. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  147. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  148. package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
  149. package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -1
  150. package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
  151. package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
  152. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  153. package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
  154. package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
  155. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  156. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  157. package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
  158. package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
  159. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  160. package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  161. package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
  162. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  163. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  164. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  165. package/app/.next/server/app/api/v1/moderations/route_client-reference-manifest.js +1 -1
  166. package/app/.next/server/app/api/v1/music/generations/route_client-reference-manifest.js +1 -1
  167. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route_client-reference-manifest.js +1 -1
  168. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route_client-reference-manifest.js +1 -1
  169. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route_client-reference-manifest.js +1 -1
  170. package/app/.next/server/app/api/v1/rerank/route_client-reference-manifest.js +1 -1
  171. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  172. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  173. package/app/.next/server/app/api/v1/videos/generations/route_client-reference-manifest.js +1 -1
  174. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  175. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  176. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  177. package/app/.next/server/app/docs/page.js +1 -1
  178. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  179. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
  180. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  181. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  182. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  183. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  184. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  185. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  186. package/app/.next/server/app-paths-manifest.json +37 -37
  187. package/app/.next/server/chunks/1248.js +1 -1
  188. package/app/.next/server/chunks/1526.js +1 -1
  189. package/app/.next/server/chunks/1584.js +1 -1
  190. package/app/.next/server/chunks/1623.js +1 -1
  191. package/app/.next/server/chunks/1880.js +1 -1
  192. package/app/.next/server/chunks/1960.js +1 -1
  193. package/app/.next/server/chunks/1990.js +1 -1
  194. package/app/.next/server/chunks/2214.js +1 -1
  195. package/app/.next/server/chunks/2372.js +1 -1
  196. package/app/.next/server/chunks/2594.js +1 -1
  197. package/app/.next/server/chunks/3371.js +1 -1
  198. package/app/.next/server/chunks/3911.js +1 -1
  199. package/app/.next/server/chunks/496.js +1 -1
  200. package/app/.next/server/chunks/5047.js +1 -1
  201. package/app/.next/server/chunks/5094.js +1 -1
  202. package/app/.next/server/chunks/5097.js +1 -1
  203. package/app/.next/server/chunks/5393.js +1 -1
  204. package/app/.next/server/chunks/5521.js +1 -1
  205. package/app/.next/server/chunks/5945.js +1 -1
  206. package/app/.next/server/chunks/6118.js +1 -1
  207. package/app/.next/server/chunks/6930.js +1 -1
  208. package/app/.next/server/chunks/7011.js +1 -1
  209. package/app/.next/server/chunks/708.js +1 -1
  210. package/app/.next/server/chunks/7650.js +1 -1
  211. package/app/.next/server/chunks/8220.js +1 -1
  212. package/app/.next/server/chunks/8464.js +1 -1
  213. package/app/.next/server/chunks/8706.js +1 -1
  214. package/app/.next/server/chunks/8976.js +1 -1
  215. package/app/.next/server/chunks/9119.js +1 -1
  216. package/app/.next/server/chunks/944.js +1 -1
  217. package/app/.next/server/chunks/9837.js +1 -1
  218. package/app/.next/server/pages/500.html +2 -2
  219. package/app/.next/server/server-reference-manifest.js +1 -1
  220. package/app/.next/server/server-reference-manifest.json +1 -1
  221. package/app/.next/static/chunks/{5846-378e8d47dcdb007b.js → 5846-f75d4e65fe204f14.js} +1 -1
  222. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/{page-6f35c346007978c1.js → page-cea3403400ee20c8.js} +1 -1
  223. package/app/.next/static/css/336f2a3d3ab30906.css +1 -0
  224. package/app/package.json +1 -1
  225. package/package.json +1 -1
  226. package/app/.next/static/css/bcd1741aee9d39ab.css +0 -1
  227. /package/app/.next/static/{T-5UmSSo6iJJWQkbQ8C1j → -P4jw6v9RBoyi7mYkJUav}/_buildManifest.js +0 -0
  228. /package/app/.next/static/{T-5UmSSo6iJJWQkbQ8C1j → -P4jw6v9RBoyi7mYkJUav}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=5521,exports.ids=[5521],exports.modules={65521:a=>{a.exports=JSON.parse('{"common":{"save":"保存","cancel":"取消","delete":"删除","loading":"正在加载...","error":"发生错误","success":"成功","confirm":"你确定吗?","refresh":"刷新","close":"关闭","add":"添加","edit":"编辑","search":"搜索","back":"返回","next":"下一页","submit":"提交","reset":"重置","copy":"复制","copied":"复制了!","enabled":"启用","disabled":"残疾人","active":"活跃","inactive":"不活跃","noData":"无可用数据","configure":"配置","manage":"管理","name":"名称","actions":"行动","status":"状态","type":"类型","model":"型号","models":"型号","provider":"提供者","account":"账户","time":"时间","details":"详情","created":"已创建","lastUsed":"最后使用","loadMore":"加载更多","noResults":"没有找到结果","reloadPage":"重新加载页面","connected":"已连接","disconnected":"已断开连接","notConfigured":"未配置","testConnection":"测试连接","enable":"启用","disable":"禁用","columns":"专栏","newest":"最新","oldest":"最古老的","all":"全部","none":"无","yes":"是的","no":"否","warning":"警告","note":"注意事项","free":"免费","skipToContent":"跳至内容"},"sidebar":{"home":"首页","dashboard":"仪表板","providers":"供应商","combos":"组合","usage":"用途","analytics":"分析","costs":"成本","health":"健康","limits":"限制和配额","cliTools":"CLI工具","settings":"设置","translator":"翻译者","docs":"文档","issues":"问题","endpoint":"端点","apiManager":"API管理器","logs":"日志","auditLog":"审核日志","shutdown":"关机","restart":"重新启动","shutdownConfirm":"关闭 OmniRoute?","restartConfirm":"重新启动 OmniRoute?","version":"v{version}","debug":"调试","system":"系统","help":"帮助","serverDisconnected":"服务器已断开连接","serverDisconnectedMsg":"代理服务器已停止或正在重新启动。","expandSidebar":"展开侧边栏","collapseSidebar":"折叠侧边栏"},"header":{"logout":"退出","language":"语言","providers":"供应商","providerDescription":"管理您的 AI 提供商连接","combos":"组合","comboDescription":"具有后备功能的模型组合","usage":"使用与分析","usageDescription":"监控您的 API 使用情况、令牌消耗和请求日志","analytics":"分析","analyticsDescription":"图表、趋势和评估见解","cliTools":"CLI工具","cliToolsDescription":"配置 CLI 工具","home":"首页","homeDescription":"欢迎来到 OmniRoute","endpoint":"端点","endpointDescription":"API端点配置","settings":"设置","settingsDescription":"管理您的偏好","openaiCompatible":"兼容 OpenAI","anthropicCompatible":"人择兼容"},"home":{"quickStart":"快速入门","quickStartDesc":"只需 4 个步骤即可启动并运行。连接提供商、路线模型、监控一切。","fullDocs":"完整文档","step1Title":"1. 创建API密钥","step1Desc":"转至 <endpoint>Endpoint</endpoint> -> 注册密钥。每个环境生成一个密钥。","step2Title":"2. 连接提供商","step2Desc":"在 <providers>Providers</providers> 中添加帐户。支持 OAuth、API 密钥和免费套餐。","step3Title":"3. 指出你的客户","step3Desc":"在 IDE 或 API 客户端中将基本 URL 设置为 {url}。","step4Title":"4. 监控和优化","step4Desc":"在<logs>请求日志</logs>和<analytics>Analytics</analytics>中跟踪令牌、成本和错误。","providersOverview":"供应商概览","configuredOf":"{configured} 配置了 {total} 可用提供程序","noModelsAvailable":"该提供商没有可用的型号。","configureFirst":"首先在 {providers} 中配置连接","configureProvider":"配置提供商","modelAvailable":"{count} 模型可用","modelsAvailable":"{count} 可用型号","connectionsActive":"{count} 连接处于活动状态","connectionsActivePlural":"{count} 连接处于活动状态","copyModelName":"复制型号名称","documentation":"文档","healthMonitor":"健康监测","reportIssue":"报告问题","activeError":"{active} 有效 \xb7 {errors} 错误","oauthLabel":"开放认证","apiKeyLabel":"API密钥","requestsShort":"{count} 要求","providerModelsTitle":"{provider} - 模型","copiedModel":"已复制:{model}","aliasLabel":"别名"},"analytics":{"title":"分析","overviewDescription":"监控所有提供商和模型的 API 使用模式、令牌消耗、成本和活动趋势。","evalsDescription":"运行评估套件来测试和验证您的 LLM 端点。比较模型质量、检测回归和基准延迟。","overview":"概述","evals":"埃瓦尔斯"},"apiManager":{"title":"API 密钥","createKey":"创建 API 密钥","key":"钥匙","revokeKey":"撤销密钥","revokeConfirm":"您确定要撤销此 API 密钥吗?","noKeys":"还没有 API 密钥","noKeysDesc":"创建您的第一个 API 密钥以验证对端点的请求","keyLabel":"钥匙标签","permissions":"权限","expiresAt":"过期","never":"从来没有","revoke":"撤销","showKey":"显示密钥","hideKey":"隐藏键","copyKey":"复制 API 密钥","allModels":"所有型号","selectedModels":"选定型号","readOnly":"只读","fullAccess":"完全访问权限","keyManagement":"API密钥管理","keyManagementDesc":"创建和管理 API 密钥以验证对端点的请求","totalKeys":"总按键数","restricted":"受限","totalRequests":"请求总数","modelsAvailable":"可用型号","registeredKeys":"注册密钥","keysRegistered":"{count} 已注册密钥","keyRegistered":"{count} 密钥已注册","keysSecurityNote":"每个密钥都隔离使用情况跟踪,并且可以独立撤销。为了安全起见,密钥在创建后会被屏蔽。","createFirstKey":"创建你的第一把钥匙","name":"名称","usage":"用途","created":"已创建","actions":"行动","reqs":"要求","neverUsed":"从未使用过","deleteConfirm":"删除此 API 密钥吗?","usageTips":"使用技巧","tipAuth":"使用授权标头中的 API 密钥作为 Bearer YOUR_KEY","tipSecure":"密钥在创建过程中仅显示一次 - 安全地存储它们","tipSeparate":"为不同的客户端或环境创建单独的密钥","tipRestrict":"将密钥限制为特定型号,以实现更好的安全性和成本控制","keyName":"按键名称","keyNamePlaceholder":"例如,生产密钥、开发密钥","keyNameDesc":"选择一个描述性名称来标识此密钥的用途","keyCreated":"API 密钥已创建","keyCreatedSuccess":"密钥创建成功!","keyCreatedNote":"立即复制并存储此密钥 - 它不会再次显示。","done":"完成","savePermissions":"保存权限","allowAll":"允许全部","restrict":"限制","allowAllInfo":"该键可以访问所有可用的模型。","restrictInfo":"此密钥可以访问 {total} 模型中的 {selected}。","selected":"已选择 {count}","all":"全部","clear":"清除","searchModels":"按名称或提供商搜索模型...","noModelsFound":"没有找到型号","keyNameRequired":"密钥名称为必填项","keyNameTooLong":"键名不得超过 {max} 个字符","keyNameInvalid":"键名只能包含字母、数字、空格、连字符和下划线","invalidKeyName":"键名无效","failedCreateKey":"创建密钥失败","failedCreateKeyRetry":"创建密钥失败。请再试一次。","invalidKeyId":"密钥 ID 无效","failedDeleteKey":"删除密钥失败","failedDeleteKeyRetry":"删除密钥失败。请再试一次。","invalidModelsSelection":"型号选择无效","cannotSelectMoreThanModels":"无法选择超过 {max} 个型号","failedUpdatePermissions":"更新权限失败","failedUpdatePermissionsRetry":"更新权限失败。请再试一次。","unknownProvider":"未知","copyMaskedKey":"复制屏蔽密钥","modelsCount":"{count, plural, one {# model} other {# models}}","lastUsedOn":"最后:{date}","editPermissions":"编辑权限","deleteKey":"删除键","model":"{count} 模型","models":"{count} 模型","permissionsTitle":"权限:{name}","allowAllDesc":"该键可以访问所有可用的模型。","restrictDesc":"此密钥可以访问 {totalModels} 模型中的 {selectedCount}。","selectedCount":"已选择 {count}"},"auditLog":{"title":"审核日志","searchPlaceholder":"搜索操作...","action":"行动","actor":"演员","target":"目标","ipAddress":"IP地址","timestamp":"时间戳","noEntries":"未找到审核条目","filterByAction":"按操作过滤...","filterByActor":"按演员筛选...","filterEntriesAria":"过滤审核日志条目","filterByActionTypeAria":"按操作类型过滤","filterByActorAria":"按演员筛选","refreshAuditLogAria":"刷新审核日志","tableAria":"审核日志条目","failedFetchAuditLog":"无法获取审核日志","notAvailable":"—","description":"行政行为和安全事件","showing":"显示 {count} 条目(偏移量 {offset})","previous":"上一页"},"cliTools":{"title":"CLI工具","noActiveProviders":"没有活跃的提供商","noActiveProvidersDesc":"请先添加并连接提供商以配置 CLI 工具。","mapModels":"地图模型","testConnection":"测试连接","connectionStatus":"连接状态","configureEndpoint":"配置端点","instructions":"使用说明","modelMapping":"模型映射","baseUrl":"基本网址","apiKey":"API密钥","configured":"已配置","notConfigured":"未配置","notInstalled":"未安装","custom":"定制","unknown":"未知","lastSavedAt":"最后保存:{date}","never":"从来没有","justNow":"刚才","minutesAgoShort":"{count} 分钟前","hoursAgoShort":"{count} 小时前","daysAgoShort":"{count} 天前","monthsAgoShort":"{count} 个月前","yearsAgoShort":"{count}年前","runtimeCheckFailed":"运行时检查失败","yourApiKeyPlaceholder":"你的 api 密钥","modelPlaceholder":"提供商/型号 ID","configurationSaved":"配置保存成功。","failedToSave":"保存配置失败。","noApiKeysCreateOne":"无 API 密钥 - 在“密钥”页面创建一个","defaultOmnirouteKey":"sk_omniroute(默认)","selectModel":"选择型号","selectModelForAlias":"选择 {alias} 的模型","selectModelForTool":"选择 {tool} 的模型","select":"选择","clear":"清除","comingSoon":"即将推出","checkingRuntime":"正在检查运行时状态...","guideOnlyIntegration":"仅指南集成(无需本地运行时)","cliRuntimeDetected":"CLI 运行时已检测到并准备就绪","cliFoundNotRunnable":"CLI 已找到但无法运行{reason}","cliRuntimeNotDetected":"未检测到 CLI 运行时","binary":"二进制","configPath":"配置路径","configPathShort":"配置","failedCheckRuntimeStatus":"无法检查运行时状态。","copy":"复制","copied":"已复制","copyConfig":"复制配置","saveConfig":"保存配置","selectionSaved":"选择已保存","guide":"指南","detected":"检测到","notReady":"还没准备好","active":"活跃","inactive":"不活跃","startMitm":"启动中间人","stopMitm":"停止中间人","mitmStarted":"MITM启动成功!","mitmStopped":"MITM 成功停止!","failedStart":"无法启动 MITM","failedStop":"未能阻止 MITM","saveMappings":"保存映射","mappingsSaved":"映射已保存!","failedSaveMappings":"保存映射失败","howItWorks":"工作原理:","antigravityHowWorksDesc":"Antigravity 向 Google 端点发送请求。 MITM 拦截并将它们重定向到 OmniRoute。","antigravityStep1":"1. 启动 MITM 通过 OmniRoute 路由请求。","antigravityStep2Prefix":"2. 添加","antigravityStep2Suffix":"添加到您的主机文件中作为 127.0.0.1。","antigravityStep3":"3. 开放Antigravity,请求将被代理。","sudoPasswordRequiredTitle":"需要 sudo 密码","sudoPasswordHint":"修改主机文件和系统代理设置需要管理员密码。","enterSudoPassword":"输入sudo密码","sudoPasswordRequiredError":"需要 sudo 密码。","cancel":"取消","confirm":"确认","settingsApplied":"设置应用成功!","failedApplySettings":"无法应用设置","settingsReset":"设置重置成功!","failedResetSettings":"重置设置失败","backupRestored":"备份已恢复!","failedRestore":"恢复失败","checkingCli":"正在检查 {tool} CLI...","cliNotRunnable":"{tool} CLI 已安装但无法运行","cliNotInstalled":"{tool} CLI 未安装","cliNotDetected":"未检测到 {tool} CLI","cliDetectedReady":"{tool} CLI 已检测到并准备就绪","cliFoundFailedHealthcheck":"找到 {tool} CLI,但运行时运行状况检查失败{reason}。","installCliPrompt":"请安装 {tool} CLI 以使用此功能。","installCodexPrompt":"请安装 Codex CLI 以使用自动应用功能。","hide":"隐藏","howToInstall":"如何安装","installationGuide":"安装指南","platforms":"macOS / Linux / Windows:","afterInstallationRun":"安装后,运行","toVerify":"来验证。","current":"当前","baseUrlPlaceholder":"https://.../v1","resetToDefault":"重置为默认值","providerModelPlaceholder":"提供商/型号 ID","apply":"申请","reset":"重置","manualConfig":"手动配置","backups":"备份","configBackups":"配置备份","noBackupsYet":"还没有备份。每次应用或重置之前都会自动创建备份。","restore":"恢复","backupRestoredReloading":"备份已恢复!正在重新加载状态...","failedRestoreBackup":"恢复备份失败","applied":"已应用!","failed":"失败","resetDone":"重置!","omnirouteConfiguredOpenAiCompatible":"OmniRoute 配置为 OpenAI 兼容提供商","provider":"提供者","model":"型号","providers":"供应商","auth":"授权","noApiKeysAvailable":"没有可用的 API 密钥","usingDefaultOmniroute":"使用默认值:sk_omniroute","updateConfig":"更新配置","applyConfig":"应用配置","noBackupsAvailable":"没有可用的备份。","profileSaved":"个人资料“{name}”已保存!","failedSaveProfile":"保存个人资料失败","profileActivated":"个人资料已激活!","failedActivateProfile":"无法激活个人资料","profiles":"型材","savedProfiles":"保存的配置文件","noProfilesYet":"尚未保存配置文件。将当前配置保存为下面的配置文件。","activate":"激活","deleteProfile":"删除个人资料","profileNamePlaceholder":"个人资料名称(例如个人帐户)","saveCurrent":"保存当前","codexAuthNotePrefix":"法典用途","codexAuthNoteMiddle":"与","codexAuthNoteSuffix":"单击“应用”进行自动配置。","claudeManualConfiguration":"Claude CLI - 手动配置","codexManualConfiguration":"Codex CLI - 手动配置","droidManualConfiguration":"Factory Droid - 手动配置","openClawManualConfiguration":"开爪 - 手动配置","clineManualConfiguration":"Cline手动配置","kiloManualConfiguration":"千码手动配置","toolDescriptions":{"antigravity":"带有 MITM 的 Google 反重力 IDE","claude":"人类克劳德代码 CLI","codex":"OpenAI Codex CLI","droid":"工厂机器人AI助手","openclaw":"开爪AI助手","cline":"Cline AI 编码助手 CLI","kilo":"Kilo Code AI 助手 CLI","cursor":"光标AI代码编辑器","continue":"继续AI助手"},"guides":{"cursor":{"notes":{"0":"需要 Cursor Pro 帐户才能使用此功能。","1":"Cursor 通过自己的服务器路由请求,因此不支持本地端点。请在“设置”中启用云端点。"},"steps":{"1":{"title":"打开设置","desc":"转到设置 -> 模型"},"2":{"title":"启用 OpenAI API","desc":"启用“OpenAI API 密钥”选项"},"3":{"title":"基本网址"},"4":{"title":"API密钥"},"5":{"title":"添加自定义模型","desc":"点击“查看所有模型”->“添加自定义模型”"},"6":{"title":"选择型号"}}},"continue":{"steps":{"1":{"title":"打开配置","desc":"打开继续配置文件"},"2":{"title":"API密钥"},"3":{"title":"选择型号"},"4":{"title":"添加模型配置","desc":"将以下配置添加到您的模型数组中:"}}}}},"combos":{"title":"组合","description":"创建具有加权路由和后备支持的模型组合","createCombo":"创建组合","editCombo":"编辑组合","deleteCombo":"删除组合","noModels":"没有型号","noModelsYet":"尚未添加型号","addModel":"添加型号","addModelToCombo":"将模型添加到组合","routingStrategy":"路由策略","maxRetries":"最大重试次数","timeout":"超时(毫秒)","healthcheck":"健康检查","priority":"优先级","fallback":"回退","roundRobin":"循环赛","random":"随机","leastLatency":"最低延迟","comboName":"组合名称","comboNamePlaceholder":"我的组合","deleteConfirm":"删除这个组合?","noCombosYet":"还没有组合","comboCreated":"组合创建成功","comboUpdated":"组合更新成功","comboDeleted":"组合已删除","failedCreate":"创建组合失败","failedUpdate":"更新组合失败","errorCreating":"创建组合时出错","errorUpdating":"更新组合时出错","errorDeleting":"删除组合时出错","testFailed":"测试请求失败","failedToggle":"无法切换组合","testResults":"测试结果 — {name}","resolvedBy":"解决方法:","more":"+{count} 更多","reqs":"要求","success":"成功","proxyConfigured":"代理已配置","copyComboName":"复制组合名称","enableCombo":"启用组合","disableCombo":"禁用组合","testCombo":"测试组合","duplicate":"重复","proxyConfig":"代理配置","nameRequired":"姓名为必填项","nameInvalid":"仅限字母、数字、-、_、/ 和 。允许","nameHint":"字母、数字、-、_、/ 和 。允许","priorityDesc":"顺序回退:首先尝试模型 1,然后尝试模型 2,依此类推。","weightedDesc":"按权重百分比分配流量并进行回退","roundRobinDesc":"循环分发:每个请求轮流转到下一个模型","randomDesc":"统一随机选择,然后回退到剩余模型","leastUsedDesc":"选择请求最少的模型,随着时间的推移平衡负载","costOptimizedDesc":"首先根据定价路由至最便宜的型号","models":"型号","autoBalance":"自动平衡","advancedSettings":"高级设置","retryDelay":"重试延迟(毫秒)","concurrencyPerModel":"并发/模型","queueTimeout":"队列超时(毫秒)","advancedHint":"留空以使用全局默认值。这些会覆盖每个提供商的设置。","moveUp":"向上移动","moveDown":"下移","removeModel":"删除","saving":"正在保存...","weighted":"加权","leastUsed":"最少使用的","costOpt":"成本选择"},"costs":{"title":"成本","budget":"预算","totalCost":"总成本","breakdown":"成本明细","noData":"无成本数据","byModel":"按型号","byProvider":"按提供商"},"endpoint":{"title":"API端点","available":"可用端点","cloudProxy":"云代理","disableConfirm":"您确定要禁用云代理吗?","baseUrl":"基本网址","apiKeyLabel":"API密钥","registeredKeys":"注册密钥","chatCompletions":"聊天完成","responses":"回应","listModels":"列出型号","usingCloudProxy":"使用云代理","usingLocalServer":"使用本地服务器","machineId":"机器 ID:{id}...","disableCloud":"禁用云","enableCloud":"启用云","modelsAcrossEndpoints":"跨 {endpoints} 端点的 {models} 模型","chatDesc":"与所有提供商的流式和非流式聊天","embeddings":"嵌入","embeddingsDesc":"用于搜索和 RAG 管道的文本嵌入","imageGeneration":"图像生成","imageDesc":"根据文本提示生成图像","rerank":"重新排序","rerankDesc":"按与查询的相关性对文档重新排序","audioTranscription":"音频转录","audioTranscriptionDesc":"将音频文件转录为文本(Whisper)","textToSpeech":"文字转语音","textToSpeechDesc":"将文本转换为听起来自然的语音","moderations":"节制","moderationsDesc":"内容审核和安全分级","enableCloudTitle":"启用云代理","whatYouGet":"你会得到什么","cloudBenefitAccess":"从世界任何地方访问您的 API","cloudBenefitShare":"轻松与您的团队共享端点","cloudBenefitPorts":"无需开放端口或配置防火墙","cloudBenefitEdge":"快速的全球边缘网络","cloudSessionNote":"云会将您的身份验证会话保留 1 天。如果不使用,它将被自动删除。","cloudUnstableNote":"目前,云在某些情况下使用 Claude Code OAuth 不稳定。","cloudConnected":"云代理已连接!","connectingToCloud":"正在连接到云...","verifyingConnection":"正在验证连接...","connecting":"正在连接...","verifying":"正在验证...","connected":"已连接!","disableCloudTitle":"禁用云代理","disableWarning":"所有身份验证会话都将从云中删除。","syncingData":"正在同步最新数据...","disablingCloud":"禁用云...","syncing":"正在同步...","disabling":"禁用...","cloudConnectedVerified":"云代理已连接并已验证!","connectedVerificationPending":"已连接 — 待验证","connectedVerificationPendingWithError":"已连接 — 验证待处理:{error}","cloudDisabledSuccess":"云禁用成功","syncedSuccess":"同步成功","failedDisable":"禁用云失败","failedEnable":"启用云失败","cloudRequestTimeout":"云请求超时","cloudRequestFailed":"云请求失败","cloudWorkerUnreachable":"无法联系云工作人员。确保云服务正在运行(npm run dev in /cloud)。","connectionFailed":"连接失败","syncFailed":"云数据同步失败","providerModelsTitle":"{provider} — 模型","noModelsForProvider":"该提供商没有可用的型号。","chat":"聊天","embedding":"嵌入","image":"图片","custom":"定制","modelsCount":"{count, plural, one {# model} other {# models}}","responsesDesc":"用于 Codex 和高级智能体工作流的 OpenAI Responses API","listModelsDesc":"列出所有已连接提供商的所有可用模型","settingsApi":"Settings API","settingsApiDesc":"通过 API 读取和修改 OmniRoute 配置","categoryCore":"核心 API","categoryMedia":"媒体和多模态","categoryUtility":"实用工具和管理"},"health":{"title":"系统健康状况","description":"实时监控您的 OmniRoute 实例","healthy":"健康","degraded":"降级","down":"向下","uptime":"正常运行时间","memory":"内存","memoryRss":"记忆 (RSS)","heap":"堆","cpu":"中央处理器","database":"数据库","version":"版本","lastCheck":"最后检查","providerHealth":"提供者健康","systemMetrics":"系统指标","tokenHealth":"令牌健康","refreshAll":"全部刷新","checkNow":"立即查看","loadingHealth":"正在加载健康数据...","failedToLoad":"无法加载健康数据:{error}","retry":"重试","allOperational":"所有系统均可运行","issuesDetected":"检测到系统问题","updatedAt":"更新了 {time}","latency":"延迟","latencyP50":"p50","latencyP95":"p95","latencyP99":"p99","millisecondsShort":"{value}ms","notAvailable":"—","totalRequests":"请求总数","noDataYet":"还没有数据","promptCache":"提示缓存","entries":"参赛作品","hitRate":"命中率","hitsMisses":"命中/未命中","signatureCache":"签名缓存","signatureDefaults":"默认值","signatureTool":"工具","signatureFamily":"家庭","signatureSession":"会议","recovering":"正在恢复中","noCBData":"没有可用的断路器数据。先提出一些要求。","providerHealthStatusAria":"提供者健康状况","issuesLabel":"检测到的问题","operational":"运营中","providers":"供应商","healthyCount":"{count} 健康","nodeVersion":"节点 {version}","failures":"{count} 失败","failuresPlural":"{count} 失败","lastFailure":"最后","rateLimitStatus":"速率限制状态","activeLimiters":"{count} 主动限制器","activeLimitersPlural":"{count} 主动限制器","queued":"排队","queuedCount":"{count} 已排队","running":"跑步","runningCount":"{count} 正在运行","ok":"好的","activeLockouts":"主动锁定","resetConfirm":"将所有断路器重置为正常状态?这将清除所有故障计数并将所有提供程序恢复到运行状态。","resetAllTitle":"将所有断路器重置为正常状态","resetting":"正在重置...","resetAll":"全部重置","until":"直到 {time}"},"limits":{"title":"限制和配额","rateLimit":"速率限制","remaining":"剩余","requestsPerMinute":"请求/分钟","tokensPerMinute":"令牌/分钟","dailyLimit":"每日限额"},"logs":{"title":"日志","requestLogs":"请求日志","proxyLogs":"代理日志","auditLog":"审核日志","console":"控制台","auditLogDesc":"行政行为和安全事件","loading":"正在加载...","refresh":"刷新","filterByAction":"按操作过滤...","filterByActor":"按演员筛选...","filterEntriesAria":"过滤审核日志条目","filterByActionTypeAria":"按操作类型过滤","filterByActorAria":"按演员筛选","refreshAuditLogAria":"刷新审核日志","tableAria":"审核日志条目","failedFetchAuditLog":"无法获取审核日志","showing":"显示 {count} 条目(偏移量 {offset})","search":"搜索","timestamp":"时间戳","action":"行动","actor":"演员","target":"目标","details":"详情","ipAddress":"IP地址","notAvailable":"—","noEntries":"未找到审核日志条目","previous":"上一页","next":"下一页"},"onboarding":{"welcome":"欢迎","security":"安全","test":"测试","ready":"准备好了!","setPassword":"设置密码","addProvider":"添加您的第一个提供商","getStarted":"开始使用","skip":"跳过","skipWizard":"完全跳过向导","skipPassword":"跳过密码设置","skipAndContinue":"跳过并继续","passwordLabel":"密码","confirmPassword":"确认密码","enterPassword":"输入密码","confirmPasswordPlaceholder":"确认密码","passwordsMismatch":"密码不匹配","setupComplete":"设置完成!","goToDashboard":"转到仪表板→","welcomeDesc":"OmniRoute 是您的本地 AI API 代理。它通过负载平衡、故障转移和使用情况跟踪将请求路由到多个 AI 提供商。","multiProvider":"多提供商","usageTracking":"使用情况追踪","apiKeyMgmt":"API密钥管理","securityDesc":"设置密码以保护您的仪表板,或暂时跳过。","providerDesc":"连接您的第一个人工智能提供商。您可以稍后添加更多。","apiKeyRequired":"API 密钥(必填)","customUrlOptional":"自定义 URL(可选)","testDesc":"让我们验证您的提供商连接是否有效。","runTest":"运行连接测试","testingConnection":"测试连接...","connectionSuccessful":"连接成功!您的提供商已准备就绪。","noProviderFound":"未找到提供者。您可以稍后从仪表板添加一个。","testFailed":"测试失败,但您可以稍后配置。","couldNotTest":"现在无法测试。您可以从仪表板进行测试。","doneDesc":"你都准备好了!您的 OmniRoute 实例已配置并准备好代理 AI 请求。","yourEndpoint":"您的端点:","continue":"继续","retry":"重试","failedSetPassword":"设置密码失败。再试一次。","failedAddProvider":"添加提供商失败。再试一次。","connectionError":"连接错误。请再试一次。","provider":"提供者"},"providers":{"title":"供应商","addProvider":"添加提供商","editProvider":"编辑提供商","deleteProvider":"删除提供商","noProviders":"没有配置提供商","modelAvailability":"型号可供选择","accounts":"账户","newAccount":"新账户","deleteConfirm":"您确定要删除该提供商吗?","testing":"测试...","testConnection":"测试连接","testSuccess":"连接成功","testFailed":"连接失败","available":"可用","cooldown":"冷却时间","unavailable":"不可用","unknown":"未知","oauthLabel":"开放认证","compatibleLabel":"兼容","chat":"聊天","responses":"回应","messages":"留言","oauthProviders":"OAuth 提供商","freeProviders":"免费提供商","apiKeyProviders":"API 密钥提供商","compatibleProviders":"API 密钥兼容提供商","testAll":"测试全部","testAllOAuth":"测试所有 OAuth 连接","testAllFree":"测试所有免费连接","testAllApiKey":"测试所有 API 密钥连接","testAllCompatible":"测试所有兼容连接","connected":"{count} 已连接","errorCount":"{count} 错误 ({code})","errorCountNoCode":"{count} 错误","noConnections":"无连接","disabled":"残疾人","enableProvider":"启用提供商","disableProvider":"禁用提供商","testResults":"测试结果","noCompatibleYet":"尚未添加兼容的提供商","compatibleHint":"使用上面的按钮添加 OpenAI 或 Anthropic 兼容端点","addOpenAICompatible":"添加 OpenAI 兼容","addAnthropicCompatible":"添加人择兼容","addNewProvider":"添加新提供商","backToProviders":"返回提供商","configureNewProvider":"配置新的 AI 提供程序以与您的应用程序一起使用。","providerLabel":"提供者","selectProvider":"选择提供商","selectedProvider":"选定的提供商","authMethod":"认证方式","apiKeyLabel":"API密钥","apiKeyRequired":"需要 API 密钥","selectProviderRequired":"请选择提供商","enterApiKey":"输入您的 API 密钥","apiKeySecure":"您的 API 密钥将被加密并安全存储。","oauth2Connect":"使用 OAuth2 连接","oauth2Label":"OAuth2","oauth2Desc":"使用 OAuth2 身份验证连接您的帐户。","displayName":"显示名称","displayNamePlaceholder":"例如,生产 API、开发环境","displayNameHint":"可选。用于标识此配置的友好名称。","active":"活跃","activeDescription":"启用此提供程序以在您的应用程序中使用","cancel":"取消","createProvider":"创建提供者","failedCreate":"创建提供商失败","errorOccurred":"发生错误。请再试一次。","modelStatus":"型号状态","allModelsOperational":"所有型号均可运行","modelsWithIssues":"{count} 有问题的模型","allModelsNormal":"所有型号均响应正常。","cooldownCleared":"{model} 的冷却时间已清除","failedClearCooldown":"无法清除冷却时间","loadingAvailability":"正在加载模型可用性...","clearCooldown":"清除","clearing":"清算...","until":"直到 {time}","providerTestFailed":"提供商测试失败","modeTest":"{mode} 测试","passedCount":"{count} 通过","failedCount":"{count} 失败","testedCount":"{count} 已测试","millisecondsAbbr":"{value}ms","okShort":"好的","errorShort":"错误","noActiveConnectionsInGroup":"未找到该组的活动连接。","allTestsPassed":"所有 {total} 测试均已通过","testSummary":"{passed}/{total} 通过,{failed} 失败","nameLabel":"名称","prefixLabel":"前缀","baseUrlLabel":"基本网址","apiTypeLabel":"API类型","prefixHint":"必填。型号名称的唯一前缀。","nameHint":"必填。该节点的友好标签。","baseUrlHint":"必填。  提供商 API 基本 URL。","anthropicPrefixPlaceholder":"交流产品","openaiPrefixPlaceholder":"OC-产品","anthropicBaseUrlPlaceholder":"https://api.anthropic.com/v1","openaiBaseUrlPlaceholder":"https://api.openai.com/v1","validateConnection":"验证连接","validating":"正在验证...","connectionValid":"连接有效!","connectionFailed":"连接失败。检查 URL 和密钥。","testKeyLabel":"测试 API 密钥","testKeyPlaceholder":"sk-...(仅用于验证)","providerNotFound":"找不到提供者","deleteConnectionConfirm":"删除这个连接吗?","failedSetAlias":"设置别名失败","failedSaveConnection":"保存连接失败","failedSaveConnectionRetry":"无法保存连接。请再试一次。","failedRetestConnection":"重新测试连接失败","deleteCompatibleNodeConfirm":"删除此 {type} 兼容节点?","anthropicCompatibleDetails":"人择兼容细节","openaiCompatibleDetails":"OpenAI 兼容详细信息","messagesApi":"消息API","responsesApi":"响应API","chatCompletions":"聊天完成","importingModels":"正在导入...","importFromModels":"从 /models 导入","addConnectionToImport":"添加连接以启用导入。","noModelsConfigured":"没有配置型号","connectionCount":"{count} 连接","fetchingModels":"正在获取可用模型...","failedFetchModels":"获取模型失败","noModelsFound":"没有找到型号","importFailed":"导入失败","noNewModelsAdded":"没有添加新模型。","adding":"添加...","importingModelsTitle":"导入模型","copyModel":"复制模型","removeModel":"删除模型","rateLimitProtected":"受保护","rateLimitUnprotected":"无保护","enableRateLimitProtection":"单击启用速率限制保护","disableRateLimitProtection":"单击以禁用速率限制保护","productionKey":"生产密钥","enterNewApiKey":"输入新的 API 密钥","optional":"可选","anthropicCompatibleName":"人择兼容","openaiCompatibleName":"兼容 OpenAI","failedImportModels":"导入模型失败","noModelsReturnedFromEndpoint":"/models 端点没有返回任何模型。","importingModelsProgress":"正在导入 {current} 个模型(共 {total} 个)...","foundModelsStartingImport":"找到 {count} 模型。开始导入...","importingModelById":"正在导入 {modelId}...","importSuccessCount":"成功导入{count, plural, one {# model} other {# models}}!","noNewModelsAddedExisting":"没有添加新模型(全部已存在)。","importDoneCount":"✓ 完成! {count, plural, one {# model imported.} other {# models imported.}}","unexpectedErrorOccurred":"发生意外错误","connectionCountLabel":"{count, plural, one {# connection} other {# connections}}","messagesPath":"消息","responsesPath":"回应","chatCompletionsPath":"聊天/完成","add":"添加","edit":"编辑","delete":"删除","anthropic":"人择","openai":"开放人工智能","singleConnectionPerCompatible":"每个兼容节点仅允许一个连接。如果需要更多连接,请添加另一个节点。","connections":"连接","providerProxyTitleConfigured":"提供商代理:{host}","configured":"配置的","providerProxyConfigureHint":"为该提供商的所有连接配置代理","providerProxy":"提供商代理","noConnectionsYet":"还没有连接","addFirstConnectionHint":"添加您的第一个连接以开始使用","addConnection":"添加连接","availableModels":"可用型号","pageAutoRefresh":"页面会自动刷新...","statusDisabled":"残疾人","statusConnected":"已连接","statusRuntimeIssue":"运行时问题","statusAuthFailed":"验证失败","statusRateLimited":"速率有限","statusNetworkIssue":"网络问题","statusTestUnsupported":"测试不受支持","statusUnavailable":"不可用","statusFailed":"失败了","statusError":"错误","oauthAccount":"OAuth 帐户","errorTypeRuntime":"本地运行时","errorTypeUpstreamAuth":"上游授权","errorTypeMissingCredential":"缺少凭证","errorTypeRefreshFailed":"刷新失败","errorTypeTokenExpired":"令牌已过期","errorTypeRateLimited":"速率有限","errorTypeUpstreamUnavailable":"上游不可用","errorTypeNetworkError":"网络错误","errorTypeTestUnsupported":"测试不支持","errorTypeUpstreamError":"上游错误","proxySourceGlobal":"全球","proxySourceProvider":"提供者","proxySourceKey":"钥匙","proxyConfiguredBySource":"代理 ({source}):{host}","autoPriority":"自动:{priority}","proxy":"代理","retestAuthentication":"重新测试认证","retest":"重新测试","disableConnection":"禁用连接","enableConnection":"启用连接","reauthenticateConnection":"重新验证此连接","proxyConfig":"代理配置","aliasExistsAlert":"别名“{alias}”已存在。请使用不同的模型或编辑现有别名。","openRouterAnyModelHint":"OpenRouter 支持任何型号。添加模型并创建别名以便快速访问。","modelIdFromOpenRouter":"型号 ID(来自 OpenRouter)","openRouterModelPlaceholder":"人类/claude-3-opus","customModels":"定制型号","customModelsHint":"添加不在默认列表中的型号 ID。这些将可用于路由。","modelId":"型号编号","customModelPlaceholder":"例如GPT-4.5-涡轮","loading":"正在加载...","removeCustomModel":"删除自定义模型","noCustomModels":"尚未添加自定义模型。","allSuggestedAliasesExist":"所有建议的别名均已存在。请选择不同的型号或删除有冲突的别名。","failedSaveCustomModel":"保存自定义模型失败","modelAddedSuccess":"模型 {modelId} 添加成功","failedAddModelTryAgain":"添加型号失败。请再试一次。","failedSaveImportedModel":"无法将导入的模型保存到自定义数据库","failedImportModelsTryAgain":"导入模型失败。请再试一次。","failedRemoveModelFromDatabase":"无法从数据库中删除模型","modelRemovedSuccess":"模型删除成功","failedDeleteModelTryAgain":"删除模型失败。请再试一次。","compatibleModelsDescription":"手动添加 {type} 兼容模型或从 /models 端点导入它们。","anthropicCompatibleModelPlaceholder":"克劳德-3-opus-20240229","openaiCompatibleModelPlaceholder":"GPT-4O","apiKeyValidationFailed":"API 密钥验证失败。请检查您的密钥并重试。","addProviderApiKeyTitle":"添加 {provider} API 密钥","checking":"正在检查...","check":"检查","valid":"有效","invalid":"无效","creating":"创造...","validationChecksAnthropicCompatible":"验证通过验证 API 密钥来检查 {provider}。","validationChecksOpenAiCompatible":"验证通过基本 URL 上的 /models 检查 {provider}。","priorityLabel":"优先级","saving":"正在保存...","save":"保存","editConnection":"编辑连接","accountName":"账户名称","email":"电子邮件","healthCheckMinutes":"健康检查(分钟)","healthCheckHint":"主动令牌刷新间隔。 0 = 禁用。","failedTestConnection":"测试连接失败","failed":"失败","leaveBlankKeepCurrentApiKey":"留空以保留当前的 API 密钥。","editCompatibleTitle":"编辑 {type} 兼容","compatibleBaseUrlHint":"使用 {type} 兼容 API 的基本 URL(以 /v1 结尾)。","apiKeyForCheck":"API 密钥(用于检查)","compatibleProdPlaceholder":"{type} 兼容(产品)"},"settings":{"title":"设置","general":"一般","security":"安全","appearance":"外观","routing":"路由","cache":"缓存","resilience":"韧性","systemPrompt":"系统提示","thinkingBudget":"思考预算","proxy":"代理","pricing":"定价","storage":"存储","policies":"政策","ipFilter":"IP过滤器","comboDefaults":"组合默认值","fallbackChains":"后备链","changePassword":"更改密码","enablePassword":"启用密码","darkMode":"深色模式","lightMode":"灯光模式","systemTheme":"系统主题","enableCache":"启用缓存","cacheTTL":"缓存生存时间","maxCacheSize":"最大缓存大小","clearCache":"清除缓存","cacheHits":"缓存命中","cacheMisses":"缓存未命中","hitRate":"命中率","cacheEntries":"缓存条目","circuitBreaker":"断路器","retryPolicy":"重试政策","maxRetries":"最大重试次数","retryDelay":"重试延迟","timeoutMs":"超时(毫秒)","enableSystemPrompt":"启用系统提示","systemPromptText":"系统提示文字","enableThinking":"激发思考","maxThinkingTokens":"最大思考令牌","enableProxy":"启用代理","proxyUrl":"代理网址","pricingRates":"定价格式","currentPricing":"当前定价概述","loadingPricing":"正在加载定价数据...","noPricing":"无可用定价数据","input":"输入","output":"输出","cached":"缓存","reasoning":"推理","cacheCreation":"缓存创建","customPricing":"定制定价","databaseSize":"数据库大小","backupDb":"备份数据库","restoreDb":"恢复数据库","exportData":"导出数据","importData":"导入数据","clearData":"清除所有数据","clearDataConfirm":"这将永久删除所有数据。你确定吗?","enableRequestLogs":"启用请求日志","logRetention":"日志保留","ipWhitelist":"IP白名单","ipBlacklist":"IP黑名单","addIP":"添加IP","savedSuccessfully":"设置保存成功","ai":"人工智能","advanced":"高级","localMode":"本地模式 - 所有数据都存储在您的计算机上","settingsSectionsAria":"设置部分","switchThemes":"在浅色和深色主题之间切换","themeSelectionAria":"主题选择","themeLight":"光","themeDark":"黑暗","themeSystem":"系统","hideHealthLogs":"隐藏健康检查日志","hideHealthLogsDesc":"当打开时,抑制服务器控制台中的 [HealthCheck] 消息","promptCache":"提示缓存","flushCache":"刷新缓存","flushing":"法拉盛…","size":"尺寸","hits":"点击数","evictions":"驱逐","loadingCacheStats":"正在加载缓存统计信息...","globalProxy":"全球代理","globalProxyDesc":"为所有 API 调用配置全局出站代理。单独的提供程序、组合和键可以覆盖此设置。","noGlobalProxy":"没有配置全局代理","globalLabel":"全球","configure":"配置","globalSystemPrompt":"全局系统提示","systemPromptDesc":"在代理级别注入所有请求","saved":"已保存","systemPromptPlaceholder":"输入系统提示符注入所有请求...","systemPromptHint":"此提示会添加到每个请求的系统消息之前。用于全局说明、安全指南或响应格式规则。","chars":"{count} 字符","thinkingBudgetTitle":"思考预算","thinkingBudgetDesc":"控制所有请求中 AI 推理令牌的使用","passthrough":"直通","passthroughDesc":"没有变化——客户控制思维预算","auto":"汽车","autoDesc":"放弃所有思考配置——让提供商决定","custom":"定制","customDesc":"为所有请求设置固定的令牌预算","adaptive":"自适应","adaptiveDesc":"根据请求复杂性调整预算","effortNone":"无(0 代币)","effortLow":"低(1K 代币)","effortMedium":"中型(10K 代币)","effortHigh":"高(128K 代币)","tokenBudget":"代币预算","tokens":"代币","baseEffortLevel":"基本努力水平","adaptiveHint":"自适应模式根据消息计数、工具使用情况和提示长度从此基本级别进行扩展。","requireLogin":"需要登录","requireLoginDesc":"当打开时,仪表板需要密码。当关闭时,无需登录即可访问。","currentPassword":"当前密码","enterCurrentPassword":"输入当前密码","newPassword":"新密码","enterNewPassword":"输入新密码","confirmPassword":"确认新密码","confirmPasswordPlaceholder":"确认新密码","passwordsNoMatch":"密码不匹配","passwordUpdated":"密码更新成功","failedUpdatePassword":"更新密码失败","errorOccurred":"发生错误","updatePassword":"更新密码","setPassword":"设置密码","apiEndpointProtection":"API端点保护","requireAuthModels":"/models 需要 API 密钥","requireAuthModelsDesc":"当打开时,/v1/models 端点针对未经身份验证的请求返回 404。防止未经授权的用户发现模型。","blockedProviders":"被阻止的提供商","blockedProvidersDesc":"从 /v1/models 响应中隐藏特定提供程序。被阻止的提供商不会出现在模型列表中。","providersBlocked":"{count} 提供商被阻止/模型","blockProviderTitle":"区块 {provider}","unblockProviderTitle":"解锁 {provider}","routingStrategy":"路由策略","fillFirst":"先填写","fillFirstDesc":"按优先顺序使用帐户","roundRobin":"循环赛","roundRobinDesc":"循环浏览所有帐户","p2c":"P2C","p2cDesc":"随机选2个,使用更健康的一个","random":"随机","randomDesc":"每个请求随机帐户","leastUsed":"最少使用","leastUsedDesc":"选择最近最少使用的帐户","costOpt":"成本选择","costOptDesc":"更喜欢最便宜的可用帐户","stickyLimit":"粘性限制","stickyLimitDesc":"切换前每个账户的通话次数","modelAliases":"模型别名","modelAliasesDesc":"重新映射模型名称的通配符模式 • 使用 * 和 ?","aliasPatternPlaceholder":"克劳德十四行诗-*","aliasTargetPlaceholder":"克劳德十四行诗-4-20250514","pattern":"图案","targetModel":"目标模型","add":"+ 添加","session":"会议","sessionDetailsAria":"会议详情","status":"状态","authenticated":"已认证","guest":"嘉宾","loginTime":"登录时间","sessionAge":"会话年龄","browser":"浏览器","clearLocalData":"清除本地数据","logout":"退出","clearLocalDataConfirm":"清除所有本地数据?这将重置您的首选项。","unknown":"未知","systemActor":"系统","ipAccessControl":"IP访问控制","ipAccessControlDesc":"阻止或允许特定 IP 地址","ipModeDisabled":"残疾人","ipModeBlacklist":"黑名单","ipModeWhitelist":"白名单","ipModeWhitelistPriority":"WL优先级","addIpAddress":"添加IP地址","ipAddressPlaceholder":"192.168.1.0/24 或 10.0.*.*","block":"+ 块","allow":"+ 允许","blocked":"已被阻止 ({count})","allowed":"允许 ({count})","temporaryBans":"临时禁令 ({count})","minLeft":"还剩 {min}m","auditLog":"审核日志","searchAuditLogs":"搜索审核日志...","failedLoadAuditLog":"无法加载审核日志","noAuditEvents":"未找到审核事件","action":"行动","actor":"演员","details":"详情","time":"时间","fallbackChainsTitle":"后备链","fallbackChainsDesc":"定义每个模型的提供者后备顺序","addChain":"+ 添加链","modelName":"型号名称","modelNamePlaceholder":"克劳德十四行诗-4-20250514","providersCommaSeparated":"提供者(以逗号分隔,按优先顺序排列)","providersCommaSeparatedPlaceholder":"人类、openai、双子座","createChain":"创建链","noFallbackChains":"无后备链","noFallbackChainsDesc":"创建一个链来定义模型的提供者回退顺序。","loadingFallbackChains":"正在加载后备链...","deleteChainConfirm":"删除“{model}”的后备链?","chainCreated":"为 {model} 创建的链","chainDeleted":"已删除 {model} 链","failedCreateChain":"创建链失败","failedDeleteChain":"删除链失败","deleteChain":"删除链","fillModelAndProviders":"请填写型号名称和提供商","addAtLeastOneProvider":"添加至少一个提供商","comboDefaultsTitle":"组合默认值","globalComboConfig":"全局组合配置","defaultStrategy":"默认策略","defaultStrategyDesc":"应用于没有明确策略的新组合","comboStrategyAria":"组合策略","priority":"优先级","weighted":"加权","maxRetriesLabel":"最大重试次数","retryDelayLabel":"重试延迟(毫秒)","timeoutLabel":"超时(毫秒)","healthCheck":"健康检查","healthCheckDesc":"预先检查提供商的可用性","trackMetrics":"跟踪指标","trackMetricsDesc":"记录每个组合请求指标","providerOverrides":"提供者覆盖","providerOverridesDesc":"覆盖每个提供商的超时和重试。提供程序设置会覆盖全局默认设置。","providerMaxRetriesAria":"{provider} 最大重试次数","providerTimeoutAria":"{provider} 超时毫秒","removeProviderOverrideAria":"删除 {provider} 覆盖","newProviderNamePlaceholder":"例如谷歌、开放式...","newProviderNameAria":"新的提供商名称","retries":"重试","ms":"女士","saveComboDefaults":"保存组合默认值","maxNestingDepth":"最大嵌套深度","concurrencyPerModel":"并发/模型","queueTimeout":"队列超时(毫秒)","providerProfiles":"供应商简介","providerProfilesDesc":"OAuth(基于会话)和 API 密钥(计量)提供商的单独弹性设置。由于速率限制较低,OAuth 提供商具有更严格的阈值。","oauthProviders":"OAuth 提供商","apiKeyProviders":"API 密钥提供商","transientCooldown":"短暂冷却","rateLimitCooldown":"速率限制冷却","maxBackoffLevel":"最大退避级别","cbThreshold":"CB阈值","cbResetTime":"CB 复位时间","rateLimiting":"速率限制","rateLimitingDesc":"API 密钥提供程序会自动受到安全默认值的速率限制。限制是从响应标头中学习的,并随着时间的推移进行调整。","defaultSafetyNet":"默认安全网","rpm":"转速","minGap":"最小间隙","maxConcurrent":"最大并发数","activeLimiters":"有源限制器","noActiveLimiters":"尚无活动的速率限制器。","reservoir":"水库","running":"跑步","queued":"排队","circuitBreakers":"断路器","breakerStateClosed":"关闭","breakerStateOpen":"打开","breakerStateHalfOpen":"半开式","tripped":"{count} 已触发","healthy":"{count} 健康","resetAll":"全部重置","noCircuitBreakers":"尚未激活断路器。当请求流经组合管道时,它们会自动创建。","failures":"{count} 失败","policiesLocked":"策略和锁定标识符","allOperational":"所有系统均可运行——无停工或断路器跳闸","loadingPolicies":"正在加载政策...","lockedIdentifiers":"锁定标识符","unlockedIdentifier":"解锁:{identifier}","sinceDate":"自 {date} 起","forceUnlock":"强制解锁","unlocking":"解锁...","failedUnlock":"解锁失败","failedLoadWithStatus":"加载失败:{status}","failedLoadResilience":"无法加载弹性状态","saveFailed":"保存失败","resetFailed":"重置失败","loadingResilience":"正在加载弹性状态...","retry":"重试","systemStorage":"系统与存储","allDataLocal":"所有数据都存储在本地计算机上","databasePath":"数据库路径","exportDatabase":"导出数据库","exportAll":"全部导出 (.tar.gz)","importDatabase":"导入数据库","confirmDbImport":"确认数据库导入","confirmDbImportDesc":"这会将所有当前数据替换为 {file} 中的内容。导入前将自动创建备份。","yesImport":"是的,导入","lastBackup":"上次备份","noBackupYet":"还没有备份","backupNow":"立即备份","backupRestore":"备份与恢复","viewBackups":"查看备份","hide":"隐藏","backupRetentionDesc":"数据库快照会在还原之前自动创建,并且在数据更改时每 15 分钟自动创建一次。保留:24 小时 + 30 每日备份,智能轮换。","loadingBackups":"正在加载备份...","noBackupsYet":"尚无可用的备份。当数据发生变化时,将自动创建备份。","backupsAvailable":"{count} 可用备份","refresh":"刷新","confirm":"确认?","yes":"是的","no":"否","restore":"恢复","invalidFileType":"文件类型无效。仅接受 .sqlite 文件。","exportFailed":"导出失败","exportFailedWithError":"导出失败:{error}","fullExportFailedWithError":"完全导出失败:{error}","backupCreated":"创建备份:{file}","restoreSuccess":"恢复了! {connections} 连接、{nodes} 节点、{combos} 组合、{apiKeys} API 密钥。","importSuccess":"数据库导入! {connections} 连接、{nodes} 节点、{combos} 组合、{apiKeys} API 密钥。","justNow":"刚才","minutesAgo":"{count} 分钟前","hoursAgo":"{count} 小时前","daysAgo":"{count} 天前","backupReasonManual":"手册","backupReasonPreRestore":"预恢复","connectionsCount":"{count, plural, one {# connection} other {# connections}}","noChangesSinceBackup":"自上次备份以来没有任何变化","backupFailed":"备份失败","restoreFailed":"恢复失败","importFailed":"导入失败","errorDuringRestore":"恢复期间发生错误","errorDuringImport":"导入时发生错误","modelPricing":"型号定价","modelPricingDesc":"配置每个模型的成本费率 • 所有费率均以美元/100 万代币为单位","providers":"供应商","registry":"登记处","priced":"定价","searchProvidersModels":"搜索供应商或型号...","showAll":"显示全部","noProvidersMatch":"没有与您的搜索匹配的提供商。","howPricingWorks":"定价如何运作","cacheWrite":"缓存写入","unsaved":"未保存","resetDefaults":"重置默认值","saveProvider":"保存提供者","saving":"正在保存...","model":"型号","models":"型号","moreProviders":"{count} 更多提供商","withPricing":"配置定价","policiesCircuitBreakers":"政策与断路器","activeIssuesDetected":"检测到活跃问题","off":"关闭","resetPricingConfirm":"将 {provider} 的所有定价重置为默认值?","pricingDescInput":"输入:发送到模型的令牌","pricingDescOutput":"输出:生成的代币","pricingDescCached":"缓存:重用输入(约输入率的 50%)","pricingDescReasoning":"推理:思考标记(回到输出)","pricingDescCacheWrite":"缓存写入:创建缓存条目(回退到输入)","pricingDescFormula":"成本 = (输入 \xd7 输入率) + (输出 \xd7 输出率) + (缓存 \xd7 缓存率) 每百万代币。","pricingSettingsTitle":"定价设置","totalModels":"型号总数","active":"活跃","costCalculation":"成本计算","costCalculationDesc":"成本是根据为每个模型配置的令牌使用情况和定价费率计算的。","pricingFormat":"定价格式","pricingFormatDesc":"所有费率均以美元/100 万代币为单位(每百万代币美元)。","tokenTypes":"代币类型","inputTokenDesc":"标准提示标记","outputTokenDesc":"完成/响应标记","cachedTokenDesc":"缓存输入令牌(通常为输入速率的 50%)","reasoningTokenDesc":"特殊推理/思维标记(回退到输出率)","cacheCreationTokenDesc":"用于创建缓存条目的令牌(回退到输入速率)","customPricingNote":"您可以覆盖特定型号的默认定价。自定义覆盖优先于自动检测的定价。","editPricing":"编辑定价","viewFullDetails":"查看完整详情","modelAliasesTitle":"模型别名","addCustomAlias":"添加自定义别名","deprecatedModelId":"已弃用的模型 ID","newModelId":"新模型 ID","customAliases":"自定义别名","builtInAliases":"内置别名","backgroundDegradationTitle":"后台任务降级","backgroundDegradationDesc":"自动检测后台任务(标题、摘要)并路由到更便宜的模型","enableDegradation":"启用后台任务降级","enableDegradationHint":"启用后,标题生成和摘要等后台任务会自动路由到更便宜的模型","tasksDetected":"检测到的任务","degradationMap":"模型降级映射","premiumModel":"高级模型","cheapModel":"低成本模型","detectionPatterns":"检测模式","newPattern":"例如:\\"生成标题\\""},"translator":{"title":"翻译者","metaTitle":"翻译游乐场 |全方位路由","metaDescription":"调试、测试和可视化提供商之间的 API 格式转换","playgroundTitle":"翻译游乐场","playground":"游乐场","realtime":"实时翻译活动","chatTester":"聊天测试仪","testBench":"测试台","liveMonitor":"实时监控","modeDescriptionPlayground":"粘贴任何 API 请求正文,然后查看 OmniRoute 如何在提供程序格式之间进行转换(OpenAI ↔ Claude ↔ Gemini ↔ Responses API)","modeDescriptionChatTester":"通过 OmniRoute 发送真实的聊天请求并检查完整的往返过程:输入、翻译后的请求、提供商响应和翻译后的输出。","modeDescriptionTestBench":"运行预定义的场景并比较提供商和模型之间的兼容性。","modeDescriptionLiveMonitor":"当请求流经 OmniRoute 时,实时观看翻译事件。","modeDescriptionFallback":"调试、测试和可视化 OmniRoute 如何在提供者之间转换 API 请求。","recentTranslations":"最近的翻译","noTranslations":"还没有翻译","source":"来源","target":"目标","time":"时间","model":"型号","status":"状态","latency":"延迟","totalTranslations":"总翻译数","successful":"成功","errors":"错误","avgLatency":"平均延迟","millisecondsShort":"{value}ms","notAvailableSymbol":"—","liveAutoRefreshing":"直播 — 自动刷新","paused":"已暂停","eventsAppearHint":"当请求流经 OmniRoute 时,翻译事件会出现在此处。使用以下任意方法生成事件:","chatTesterTab":"聊天测试选项卡","testBenchTab":"测试台选项卡","externalApiCalls":"外部API调用","ideCliIntegrations":"IDE/CLI 集成","inMemoryNote":"注意:事件存储在内存中,并在服务器重新启动时重置。","ok":"好的","errorShort":"错误率","formatConverter":"格式转换器","formatConverterDescription":"粘贴或输入 JSON 请求正文。翻译器将自动检测源格式并将其转换为目标格式。使用它来调试 OmniRoute 如何在格式之间转换请求(OpenAI ↔ Claude ↔ Gemini ↔ Responses API)。","input":"输入","output":"输出","auto":"汽车","swapFormats":"交换格式","translateAction":"翻译","clear":"清除","inputPlaceholder":"在此处粘贴请求正文或选择下面的模板...","exampleTemplates":"示例模板","exampleTemplatesHint":"— 点击加载","templateLoadHint":"模板以 {format} 格式加载请求。更改源格式以以不同的格式加载。","compatibilityTester":"兼容性测试仪","compatibilityReport":"兼容性报告","testBenchDescription":"运行预定义的场景(简单聊天、工具调用等)以验证翻译和提供程序兼容性。选择源格式和目标提供程序,然后运行所有测试以查看兼容性百分比。使用它来查找哪些功能可以跨提供商使用。","targetProvider":"目标提供商","runAllTests":"运行所有测试","runTest":"运行测试","reRun":"重新运行","running":"运行...","passed":"通过了","failed":"失败了","passedIconLabel":"✅ 通过","chunks":"块","scenarioSimpleChat":"简单聊天","scenarioToolCalling":"工具调用","scenarioMultiTurn":"多圈","scenarioThinking":"思考","scenarioSystemPrompt":"系统提示","scenarioStreaming":"流媒体","templateNames":{"simple-chat":"简单聊天","tool-calling":"工具调用","multi-turn":"多圈","thinking":"思考","system-prompt":"系统提示","streaming":"流媒体"},"templateDescriptions":{"simple-chat":"基本短信","tool-calling":"函数/工具调用","multi-turn":"与历史对话","thinking":"扩展思维/推理","system-prompt":"复杂系统指令","streaming":"SSE 流请求"},"templatePayloads":{"simpleChat":{"system":"你是一个有用的助手。","userGreeting":"你好!你今天怎么样?"},"toolCalling":{"userWeather":"圣保罗 的天气怎么样?","toolDescription":"获取某个位置的当前天气","cityNameDescription":"城市名称"},"multiTurn":{"system":"你是一名编码助理。","userInitial":"在 Python 中编写一个函数对数组进行排序。","assistantExample":"这是一个简单的排序函数:\\n\\n````蟒蛇\\ndef sort_array(arr):\\n 返回已排序(arr)\\n````","userFollowUp":"现在将其按降序排序。"},"thinking":{"question":"前 100 个质数之和是多少?"},"systemPrompt":{"systemInstruction":"您是一名专门研究分布式系统的高级软件工程师。使用行业最佳实践简洁地回答问题。始终提供相关的代码示例。使用 Markdown 格式化您的回复。","question":"如何实现断路器模式?"},"streaming":{"prompt":"给我讲一个关于机器人学习绘画的小故事。"}},"openaiCompatibleLabel":"兼容 OpenAI","anthropicCompatibleLabel":"人择兼容","noTemplateForFormat":"没有此格式的模板","translationFailed":"翻译失败:{error}","pipelineDebugger":"管道调试器","translationPipeline":"翻译管道","pipelineVisualization":"管道可视化","pipelineVisualizationHint":"发送消息以查看您的请求如何经过检测 → 翻译 → 提供商调用。","chatTesterDescription":"以特定客户端格式发送消息并检查翻译管道的每个步骤。","chatTesterFlow":"客户端请求 → 格式检测 → OpenAI Intermediate → 提供者格式 → 响应","clickStepToInspect":"单击任意步骤即可检查该阶段的数据。","clientFormat":"客户端格式","provider":"提供者","modelPlaceholder":"选择或输入型号名称...","sendMessageToSeePipeline":"发送消息查看翻译管道","chatMessageHintPrefix":"您的消息将被格式化为","chatMessageHintSuffix":"请求,通过管道进行翻译,然后发送给选定的提供者。","youWithFormat":"您 ({format})","assistant":"助理","typeMessage":"输入消息...","send":"发送","clientRequest":"客户要求","clientRequestDescription":"您的客户端发送的请求正文","formatDetected":"检测到格式","formatDetectedDescription":"OmniRoute 自动从请求结构中检测 API 格式","openaiIntermediate":"OpenAI 中级","openaiIntermediateDescription":"所有格式首先标准化为 OpenAI 格式(通用桥)","providerFormat":"提供者格式","providerFormatDescription":"OpenAI 格式转换为提供商的本机格式","providerResponse":"供应商回应","providerResponseRawDescription":"来自提供商 API 的原始响应","providerResponseSseDescription":"来自提供商 API 的原始 SSE 流","unexpectedError":"发生意外错误","error":"错误","errorMessage":"错误:{message}","requestFailed":"请求失败","noTextExtracted":"(未提取文字)","liveMonitorDescriptionPrefix":"当 API 调用流经 OmniRoute 时显示翻译事件。事件来自内存缓冲区(重新启动时重置)。使用","liveMonitorDescriptionSuffix":",或外部 API 调用来生成事件。"},"usage":{"title":"用途","loggerTab":"记录器","proxyTab":"代理","budgetManagement":"预算管理","budgetSaved":"已保存预算限制","budgetSaveFailed":"未能节省预算","loadingBudgetData":"正在加载预算数据...","noApiKeysTitle":"没有 API 密钥","noApiKeysDescription":"首先添加 API 密钥以设置预算限制。","apiKey":"API密钥","todaysSpend":"今天的花费","thisMonth":"本月","setLimits":"设定限制","dailyLimitUsd":"每日限额(美元)","monthlyLimitUsd":"每月限额(美元)","warningThresholdPercent":"警告阈值 (%)","dailyLimitPlaceholder":"例如5.00","monthlyLimitPlaceholder":"例如50.00","warningThresholdPlaceholder":"80","saveLimits":"保存限制","budgetOk":"预算正常 — 剩余 {remaining}","budgetExceeded":"超出预算 - 请求可能被阻止","totalRequests":"请求总数","noDataYet":"还没有数据","latency":"延迟","latencyP50":"p50","latencyP95":"p95","latencyP99":"p99","promptCache":"提示缓存","systemHealth":"系统健康状况","entries":"参赛作品","activeCount":"{count} 活跃","openCircuitBreakersDetected":"检测到断路器开路","hitRate":"命中率","hitsMisses":"命中/未命中","circuitBreakers":"断路器","lockedIPs":"锁定IP","lockoutsAutoRefreshHint":"每个模型速率限制锁定 • 自动刷新 10 秒","lockedCount":"{count, plural, one {# locked} other {# locked}}","timeLeft":"剩余 {time}","howItWorks":"它是如何运作的","howItWorksSubtitle":"了解评估如何验证您的 LLM 回答","define":"定义","defineStepDescription":"使用包含、正则表达式或完全匹配等策略创建带有输入提示和预期输出标准的测试用例。","run":"运行","runStepDescription":"通过 OmniRoute 针对您的 LLM 端点执行测试用例。每个案例都作为真实的 API 请求发送。","evaluate":"评价","evaluateStepDescription":"将响应与预期标准进行比较。查看每种情况的通过/失败情况以及延迟指标和详细反馈。","evalSuites":"评估套件","evalSuitesHint":"单击套件查看测试用例,然后运行以评估您的 LLM 端点","evalsLoading":"正在加载评估套件...","noEvalSuitesFound":"未找到评估套件","noEvalSuitesDescription":"评估套件可以通过 API 或代码来定义。他们使用包含、正则表达式、精确匹配和自定义函数等策略根据预期结果测试模型输出。","columnCase":"案例","columnStatus":"状态","columnLatency":"延迟","columnDetails":"详情","columnModel":"型号","columnStrategy":"策略","columnExpected":"预计","statsSuites":"套房","statsTestCases":"测试用例","statsModels":"型号","statsCoverage":"覆盖范围","statsStrategiesCount":"{count} 策略","evaluationStrategies":"评估策略","modelsUnderTest":"测试中的模型","searchSuitesPlaceholder":"搜索套房...","passSuffix":"通过","casesCount":"{count, plural, one {# case} other {# cases}}","runEval":"运行评估","runningProgress":"正在运行 {current}/{total}...","passRate":"通过率","summaryBreakdown":"{passed} 通过 \xb7 {failed} 失败 \xb7 {total} 总计","passedIconLabel":"✅ 通过","failedIconLabel":"❌ 失败","detailsContains":"包含:“{term}”","detailsRegex":"正则表达式:{pattern}","detailsExpected":"预期:“{expected}”","noResultsYet":"还没有结果","testCasesCount":"测试用例 ({count})","noTestCasesDefined":"没有定义测试用例","runEvalHint":"单击“运行评估”以针对您的 LLM 端点执行所有案例。每个测试都通过 OmniRoute 发送真实请求。","notifyNoTestCases":"没有为此套件定义测试用例","notifyAllCasesPassed":"所有 {total} 案例均已通过 ✅","notifySomeCasesFailed":"{passed}/{total} 通过,{failed} 失败","notifyEvalRunFailed":"评估运行失败","notifyEvalTitle":"评估:{name}","modelEvals":"模型评估","evalsHeroDescription":"通过运行预定义的评估套件来测试和验证您的 LLM 端点。每个套件都包含测试用例,这些测试用例通过 OmniRoute 发送真实提示并将响应与预期标准进行比较 - 帮助您检测回归、比较模型并确保跨提供商的响应质量。","qualityValidation":"质量验证","modelComparison":"型号对比","regressionDetection":"回归检测","latencyBenchmarks":"延迟基准","modelLockouts":"模型锁定","noLockouts":"目前没有锁定型号","activeSessions":"活跃会话","noSessions":"没有活动会话","sessionsHint":"会话显示为请求流经代理","sessionsTrackedHint":"通过请求指纹跟踪 • 自动刷新 5 秒","session":"会议","age":"年龄","requests":"要求","connection":"连接方式","durationMillisecondsShort":"{value}ms","durationSecondsShort":"{value}s","durationMinutesShort":"{value}m","durationHoursShort":"{value}h","reasonSeparator":" - ","notAvailableSymbol":"-","providerLimits":"提供商限制","noProviders":"没有连接提供商","connectProvidersForQuota":"使用 OAuth 连接到提供商以跟踪您的 API 配额限制和使用情况。","accountsCount":"{count, plural, one {# account} other {# accounts}}","filteredFromCount":"(从 {count} 过滤)","autoRefresh":"自动刷新","refreshAll":"全部刷新","loadingQuotas":"正在加载...","account":"账户","modelQuotas":"模型配额","lastUsed":"最后使用","actions":"行动","refreshQuota":"刷新配额","today":"今天","tomorrow":"明天","dayTimeFormat":"{day}、{time}","inDuration":"在 {duration} 中","notApplicable":"不适用","rawPlanWithValue":"原始计划:{plan}","noPlanFromProvider":"提供商没有计划","noQuotaData":"无配额数据","noQuotaDataAvailable":"无可用配额数据","noAccountsForTierFilter":"未找到适用于层过滤器的帐户","tierAll":"全部","tierEnterprise":"企业","tierTeam":"团队","tierBusiness":"商务","tierUltra":"超","tierPro":"专业版","tierPlus":"加号","tierFree":"免费","tierUnknown":"未知"},"modals":{"waitingAuth":"等待授权","verificationUrl":"验证网址","yourCode":"你的代码","remoteAccess":"远程访问:","connectedSuccess":"连接成功!","connectionFailed":"连接失败","chooseAuthMethod":"选择您的身份验证方法:","awsBuilderId":"AWS 构建器 ID","awsIamIdentity":"AWS IAM 身份中心","googleAccount":"谷歌帐户","githubAccount":"GitHub 帐户","importToken":"导入令牌","pasteToken":"从 Kiro IDE 粘贴刷新令牌。","awsRegion":"AWS 区域","autoDetecting":"自动检测令牌...","readingFromCache":"从 AWS SSO 缓存中读取","readingFromCursor":"从 Cursor IDE 数据库读取","initializing":"正在初始化...","pricingConfig":"定价配置","loadingPricing":"正在加载定价数据...","pricingRatesFormat":"定价格式","noPricingData":"无可用定价数据","noModelsFound":"没有找到型号"},"loggers":{"allProviders":"所有提供商","allModels":"所有型号","allAccounts":"所有账户","allApiKeys":"所有 API 密钥","allTypes":"所有类型","allLevels":"所有级别","modelAZ":"型号 A-Z","modelZA":"Z-A型","loadingLogs":"正在加载日志...","loadingProxyLogs":"正在加载代理日志...","noLogEntries":"未找到日志条目","noPayloadData":"此日志条目没有可用的有效负载数据。","proxyEvent":"代理事件","proxy":"代理","level":"等级","directNative":"直接(本地)","combo":"组合","inputTokens":"我:","outputTokens":"哦:"},"stats":{"usageOverview":"使用概述","outputTokens":"输出代币","totalCost":"总成本","usageByModel":"按型号使用","usageByAccount":"按帐户使用情况","failedToLoad":"无法加载使用情况统计信息。","tokenHealth":"令牌健康","totalOAuth":"总 OAuth","healthy":"健康","warning":"警告","errored":"出错了","lastCheck":"最后检查","noData":"无数据","share":"分享","unableToLoad":"无法加载系统指标","product":"产品展示","resources":"资源","company":"公司简介"},"auth":{"welcome":"欢迎","signIn":"登录","enterPassword":"输入您的密码以继续","password":"密码","unifiedProxy":"统一AI API代理","unifiedAiApiProxy":"统一AI API代理","unifiedAiApiProxyDesc":"通过单个端点将请求路由到多个 AI 提供商。内置负载平衡、故障转移和使用情况跟踪。","passwordNotEnabled":"未启用密码保护","loading":"正在加载...","invalidPassword":"密码无效","errorOccurredRetry":"发生错误。请再试一次。","configureInstance":"让我们配置您的 OmniRoute 实例","runOnboardingWizard":"运行入门向导来设置您的密码并连接您的第一个 AI 提供商。","startOnboarding":"开始入职","secureYourInstance":"保护您的实例","setPasswordDescription":"设置密码以保护您的仪表板并保护您的 API 端点免遭未经授权的访问。","configurePassword":"配置密码","continue":"继续","windowWillClose":"该窗口将自动关闭...","closeTabNow":"您现在可以关闭此选项卡。","copyUrlManual":"请复制地址栏中的 URL 并将其粘贴到应用程序中。","accessDeniedDescription":"您无权访问此资源。检查您的 API 密钥或联系管理员。","goToDashboard":"转到仪表板","featureMultiProviderTitle":"多提供商","featureMultiProviderDesc":"OpenAI、Anthropic、Google 等","featureLoadBalancingTitle":"负载均衡","featureLoadBalancingDesc":"智能分配请求","featureUsageTrackingTitle":"使用情况追踪","featureUsageTrackingDesc":"监控成本和代币","resetPassword":"重置密码","resetDescription":"选择一种方法来恢复对仪表板的访问权限","stopServer":"停止 OmniRoute 服务器","processing":"处理中...","pleaseWait":"我们正在完成授权,请稍候。","authSuccess":"授权成功!","copyUrl":"复制此网址","accessDenied":"访问被拒绝","methodCliTitle":"方法 1:CLI 重置","methodCliDescription":"在运行 OmniRoute 的服务器上运行以下命令:","methodCliHint":"这将提示您设置新密码。必须首先停止服务器。","methodManualTitle":"方法二:手动复位","methodManualDescription":"从数据库中删除密码并在启动时设置新密码:","setPasswordInYour":"在您的密码中设置一个新密码","fileLabelSuffix":"文件:","newPasswordPlaceholder":"你的新密码","deleteSettingsFile":"删除","orRemovePasswordHashField":"或删除passwordHash字段","restartServerWithNewPassword":"重新启动服务器 - 它将使用新密码","backToLogin":"返回登录","forgotPassword":"忘记密码?"},"landing":{"brandName":"全方位路由","navigateHome":"导航至主页","toggleMenu":"切换菜单","featuresLink":"特点","docsLink":"文档","github":"GitHub","versionLive":"v1.0 现已上线","oneEndpoint":"一个端点","allProviders":"所有人工智能提供商","heroDescription":"带有 Web 仪表板的 AI 端点代理 - CLIProxyAPI 的 JavaScript 端口。与 Claude Code、OpenAI Codex、Cline、RooCode 和其他 CLI 工具无缝协作。","getStarted":"开始使用","viewOnGithub":"在 GitHub 上查看","powerfulFeatures":"强大的功能","featuresSubtitle":"在一个地方管理 AI 基础设施所需的一切,专为规模化而构建。","featureUnifiedEndpointTitle":"统一端点","featureUnifiedEndpointDesc":"通过单一标准 API URL 访问所有提供商。","featureEasySetupTitle":"轻松设置","featureEasySetupDesc":"使用 npx 命令在几分钟内启动并运行。","featureModelFallbackTitle":"模型回退","featureModelFallbackDesc":"发生故障或高延迟时自动切换提供商。","featureUsageTrackingTitle":"使用情况追踪","featureUsageTrackingDesc":"所有模型的详细分析和成本监控。","featureOAuthApiKeysTitle":"OAuth 和 API 密钥","featureOAuthApiKeysDesc":"在一个保管库中安全地管理凭据。","featureCloudSyncTitle":"云同步","featureCloudSyncDesc":"立即跨设备同步您的配置。","featureCliSupportTitle":"CLI 支持","featureCliSupportDesc":"适用于 Claude Code、Codex、Cline、Cursor 等。","featureDashboardTitle":"仪表板","featureDashboardDesc":"用于实时流量分析的可视化仪表板。","howItWorks":"OmniRoute 的工作原理","howItWorksDescription":"数据从您的应用程序通过我们的智能路由层无缝流向最适合该工作的提供商。","howItWorksStep1Title":"1. CLI 和 SDK","howItWorksStep1Description":"您的请求从您最喜欢的工具或我们的统一 SDK 开始。只需更改基本 URL 即可。","howItWorksStep2Title":"2.OmniRoute 中心","howItWorksStep2Description":"我们的引擎分析提示、检查提供商的运行状况以及最低延迟或成本的路线。","howItWorksStep3Title":"3.人工智能提供商","howItWorksStep3Description":"OpenAI、Anthropic、Gemini 或其他公司会立即满足该请求。","getStartedIn30Seconds":"30 秒内开始","getStartedDescription":"安装 OmniRoute,通过 Web 仪表板配置您的提供商,并开始路由 AI 请求。","installOmniRoute":"安装 OmniRoute","installStepDescription":"运行 npx 命令立即启动服务器","openDashboard":"打开仪表板","openDashboardStepDescription":"通过 Web 界面配置提供商和 API 密钥","routeRequests":"路线请求","routeRequestsStepDescription":"将您的 CLI 工具指向 {endpoint}","terminal":"终端","copy":"复制","copied":"✓ 已复制","startingOmniRoute":"正在启动 OmniRoute...","serverRunningOnLabel":"服务器运行于","dashboardLabel":"仪表板","readyToRoute":"准备好路线! ✓","configureProvidersNote":"\uD83D\uDCDD 在仪表板中配置提供程序或使用环境变量","dataLocation":"数据位置:","dataLocationMacLinux":" macOS/Linux:","dataLocationWindows":" 窗户:","product":"产品展示","dashboardLink":"仪表板","changelog":"变更日志","resources":"资源","documentation":"文档","npm":"国家公共管理","legal":"法律","mitLicense":"麻省理工学院许可证","footerTagline":"AI 生成的统一端点。轻松连接、路由和管理您的 AI 提供商。","copyright":"\xa9 {year} OmniRoute。版权所有。","flowToolClaudeCode":"克劳德\xb7科德","flowToolOpenAICodex":"OpenAI 法典","flowToolCline":"克莱因","flowToolCursor":"光标","flowProviderOpenAI":"开放人工智能","flowProviderAnthropic":"人择","flowProviderGemini":"双子座","flowProviderGithubCopilot":"GitHub 副驾驶","interactiveDiagram":"桌面上可见的交互式图表","ctaTitle":"准备好简化您的人工智能基础设施了吗?","ctaDescription":"与开发人员一起简化 AI 与 OmniRoute 的集成。开源且免费启动。","startFree":"免费开始","readDocumentation":"阅读文档"},"docs":{"title":"文档","quickStart":"快速入门","features":"特点","supportedProviders":"支持的提供商","supportedProvidersToc":"供应商","commonUseCases":"常见用例","clientCompatibility":"客户端兼容性","apiReference":"API参考","method":"方法","path":"路径","notes":"注释","modelPrefixes":"型号前缀","prefix":"前缀","troubleshooting":"故障排除","supportsChat":"支持聊天和响应端点。","oauthAutoRefresh":"具有自动令牌刷新功能的 OAuth 连接。","fullStreaming":"对所有型号的完全流媒体支持。","docsLabel":"文档","docsHeroDescription":"适用于多提供商法学硕士的人工智能网关。 OpenAI、Anthropic、Gemini、GitHub Copilot、Claude Code、Cursor 以及 20 多个提供商的一个端点。","openDashboard":"打开仪表板","endpointPage":"端点页面","github":"GitHub","reportIssue":"报告问题","onThisPage":"在此页面上","documentationVersion":"文档 - v{version}","quickStartStep1Title":"1.安装并运行","quickStartStep1Prefix":"运行","quickStartStep1Middle":"或者从 GitHub 克隆并运行","quickStartStep2Title":"2. 创建API密钥","quickStartStep2Text":"转至端点 -> 注册密钥。每个环境生成一个密钥。","quickStartStep3Title":"3. 连接提供商","quickStartStep3Text":"通过 OAuth 登录、API 密钥或免费层自动连接添加提供商帐户。","quickStartStep4Title":"4. 设置客户端基本 URL","quickStartStep4Prefix":"将您的 IDE 或 API 客户端指向","quickStartStep4Suffix":"例如,使用提供者前缀","featureRoutingTitle":"多提供商路由","featureRoutingText":"通过单个 OpenAI 兼容端点将请求路由到 30 多个 AI 提供商。支持聊天、响应、音频和图像 API。","featureCombosTitle":"组合和平衡","featureCombosText":"使用后备链和平衡策略创建模型组合:循环、优先级、随机、最少使用和成本优化。","featureUsageTitle":"使用情况和成本跟踪","featureUsageText":"实时令牌计数、每个提供商/模型的成本计算以及按 API 密钥和帐户划分的详细使用情况细分。","featureAnalyticsTitle":"分析仪表板","featureAnalyticsText":"可视化分析,包含随时间变化的请求、令牌、错误、延迟、成本和模型受欢迎程度的图表。","featureHealthTitle":"健康监测","featureHealthText":"实时健康检查、提供商状态、断路器状态以及具有指数退避功能的自动速率限制检测。","featureCliTitle":"CLI工具","featureCliText":"管理 IDE 配置、导出/导入备份、发现 Codex 配置文件以及从仪表板配置设置。","featureSecurityTitle":"安全和政策","featureSecurityText":"API 密钥身份验证、IP 过滤、提示注入防护、域策略、会话管理和审核日志记录。","featureCloudSyncTitle":"云同步","featureCloudSyncText":"将您的配置同步到 Cloudflare Workers,以便通过加密凭据和自动故障转移进行远程访问。","providersAcrossConnectionTypes":"跨三种连接类型的 {count} 提供程序。","manageProviders":"管理提供商","providersCount":"{count} 提供商","providerTypeFree":"免费套餐","providerTypeOAuth":"开放认证","providerTypeApiKey":"API密钥","useCaseSingleEndpointTitle":"许多提供商的单一端点","useCaseSingleEndpointText":"将客户端指向一个基本 URL 并按模型前缀进行路由(例如:gh/、cc/、kr/、openai/)。","useCaseFallbackTitle":"使用组合进行回退和模型切换","useCaseFallbackText":"在仪表板中创建组合模型,并在提供商内部轮换时保持客户端配置稳定。","useCaseUsageVisibilityTitle":"使用情况、成本和调试可见性","useCaseUsageVisibilityText":"在“使用情况”和“分析”选项卡中按提供商、帐户和 API 密钥跟踪令牌和成本。","clientCherryStudioTitle":"樱桃工作室","baseUrlLabel":"基本网址","chatEndpointLabel":"聊天端点","modelRecommendationLabel":"型号推荐:显式前缀","clientCodexTitle":"Codex / GitHub 副驾驶模型","clientCodexBullet1":"使用模型 ID","clientCodexBullet2":"Codex 系列模型自动路由至","clientCodexBullet3":"非法典模型继续","clientCursorTitle":"光标集成开发环境","clientCursorBullet1":"使用","clientCursorBullet1Suffix":"光标模型的前缀。","clientCursorBullet2":"OAuth 连接 - 从提供商页面登录。","clientClaudeTitle":"克劳德\xb7代码 / 反重力","clientClaudeBullet1Prefix":"使用","clientClaudeBullet1Middle":"(克劳德)或","clientClaudeBullet1Suffix":"(反重力)前缀。","endpointChatNote":"与 OpenAI 兼容的聊天端点(默认)。","endpointResponsesNote":"响应 API 端点(Codex、o 系列)。","endpointModelsNote":"所有连接的提供商的模型目录。","endpointAudioNote":"音频转录(Deepgram、AssemblyAI)。","endpointImagesNote":"图像生成(NanoBanana)。","endpointRewriteChatNote":"为没有 /v1 的客户端重写帮助程序。","endpointRewriteResponsesNote":"重写不带 /v1 的响应帮助程序。","endpointRewriteModelsNote":"重写模型发现助手,无需 /v1。","modelPrefixesDescriptionStart":"在模型名称之前使用提供程序前缀可路由到特定提供程序。示例:","modelPrefixesDescriptionEnd":"路由至 GitHub Copilot。","provider":"提供者","type":"类型","troubleshootingModelRouting":"如果客户端模型路由失败,请使用显式提供程序/模型(例如:gh/gpt-5.1-codex)。","troubleshootingAmbiguousModels":"如果您收到不明确的模型错误,请选择提供程序前缀而不是裸模型 ID。","troubleshootingCodexFamily":"对于 GitHub Codex 系列模型,将模型保留为 gh/<codex-model>;路由器自动选择/响应。","troubleshootingTestConnection":"在从 IDE 或外部客户端进行测试之前,请使用仪表板 > 提供程序 > 测试连接。","troubleshootingCircuitBreaker":"如果提供商显示断路器已打开,请等待冷却或查看运行状况页面以了解详细信息。","troubleshootingOAuth":"对于 OAuth 提供商,如果令牌过期,请重新进行身份验证。检查提供商卡状态指示灯。"},"legal":{"privacyPolicy":"隐私政策","termsOfService":"服务条款","providerConfigurations":"提供商配置","apiKeys":"API 密钥","usageLogs":"使用日志","applicationSettings":"应用程序设置","viewExportAnalytics":"查看和导出使用情况分析","clearHistory":"随时清除使用记录","configureRetention":"配置日志保留策略","backupRestore":"备份和恢复您的数据库","privacyMetadataTitle":"隐私政策 |全方位路由","privacyMetadataDescription":"OmniRoute AI API 代理路由器的隐私政策。","termsMetadataTitle":"服务条款 |全方位路由","termsMetadataDescription":"OmniRoute AI API 代理路由器的服务条款。","backToHome":"回到家","lastUpdated":"最后更新:{date}","policyLastUpdatedDate":"2026 年 2 月 13 日","listSeparator":"-","questionsVisit":"有问题吗?访问我们的","githubRepository":"GitHub 存储库","privacySection1Title":"1. 本地优先架构","privacySection1Text":"OmniRoute 被设计为本地优先的应用程序。所有数据处理和存储完全发生在您的机器上。没有集中服务器收集您的信息。","privacySection2Title":"2. 我们存储的数据","privacyDataStoredIn":"以下数据存储在本地","privacyDataProviderConfigurationsDesc":"连接 URL、提供程序类型和优先级设置","privacyDataApiKeysDesc":"加密并存储在本地,以便与人工智能提供商进行身份验证","privacyDataUsageLogsDesc":"请求计数、令牌使用情况、模型名称、时间戳和响应时间","privacyDataApplicationSettingsDesc":"主题偏好、路由策略和组合配置","privacySection3Title":"3. 无遥测","privacySection3Text":"OmniRoute 不收集遥测、分析或崩溃报告。不会向我们或任何第三方发送任何数据。您的使用模式、API 调用和配置完全保密。","privacySection4Title":"4. 第三方人工智能提供商","privacySection4Text":"当您通过 OmniRoute 进行 API 调用时,您的请求将转发到您已配置的 AI 提供商(例如:OpenAI、Anthropic、Google)。这些提供商有自己的隐私政策来管理他们如何处理您的数据。请查看:","privacyOpenAiPolicy":"OpenAI 隐私政策","privacyAnthropicPolicy":"人择隐私政策","privacyGooglePolicy":"谷歌隐私政策","privacySection5Title":"5. 云同步(可选)","privacySection5Text":"如果您启用可选的云同步功能,提供商配置和 API 密钥可能会传输到配置的云端点。此功能默认处于禁用状态,需要明确选择加入。","privacySection6Title":"6. 日志记录","privacyLoggingIntro":"可以通过仪表板设置配置请求日志。您可以:","privacySection7Title":"7. 您的权利","privacySection7TextStart":"由于所有数据都存储在本地,因此您拥有完全的控制权。您可以随时删除您的数据,方法是删除","privacySection7TextEnd":"目录或使用仪表板中的数据库备份和恢复功能。","termsSection1Title":"1. 概述","termsSection1Text":"OmniRoute 是本地优先的 AI API 代理路由器,完全在您的计算机上运行。它通过负载平衡、故障转移和使用情况跟踪将请求路由到多个 AI 提供商。","termsSection2Title":"2. 用户的责任","termsResponsibilityApiKeys":"您全权负责管理您自己的 API 密钥和第三方 AI 提供商(OpenAI、Anthropic、Google 等)的凭证。","termsResponsibilityCompliance":"您必须遵守您通过 OmniRoute 访问其 API 的每个 AI 提供商的服务条款。","termsResponsibilitySecurity":"您负责本地 OmniRoute 安装的安全,包括设置密码和限制网络访问。","termsSection3Title":"3. 工作原理","termsSection3Text":"OmniRoute 充当中间代理。发送到 OmniRoute 的 API 调用将被转换并转发到您配置的 AI 提供商。除了必要的协议转换之外,OmniRoute 不会修改您的请求或响应的内容。","termsSection4Title":"4. 数据处理","termsDataStoredLocally":"所有数据都存储在您本地计算机上的 SQLite 数据库中。","termsNoTransmission":"除非您明确启用云同步功能,否则 OmniRoute 不会将任何数据传输到外部服务器。","termsDataLocationText":"使用日志、API 密钥和配置存储在","termsSection5Title":"5. 免责声明","termsSection5Text":"OmniRoute 按“原样”提供,不提供任何形式的保证。我们不对因 API 使用、服务中断或数据丢失而产生的任何费用负责。始终维护配置的备份。","termsSection6Title":"6. 开源","termsSection6Text":"OmniRoute 是开源软件。您可以根据其许可条款自由检查、修改和分发它。"}}')}};
1
+ "use strict";exports.id=5521,exports.ids=[5521],exports.modules={65521:a=>{a.exports=JSON.parse('{"common":{"save":"保存","cancel":"取消","delete":"删除","loading":"正在加载...","error":"发生错误","success":"成功","confirm":"你确定吗?","refresh":"刷新","close":"关闭","add":"添加","edit":"编辑","search":"搜索","back":"返回","next":"下一页","submit":"提交","reset":"重置","copy":"复制","copied":"复制了!","enabled":"启用","disabled":"残疾人","active":"活跃","inactive":"不活跃","noData":"无可用数据","configure":"配置","manage":"管理","name":"名称","actions":"行动","status":"状态","type":"类型","model":"型号","models":"型号","provider":"提供者","account":"账户","time":"时间","details":"详情","created":"已创建","lastUsed":"最后使用","loadMore":"加载更多","noResults":"没有找到结果","reloadPage":"重新加载页面","connected":"已连接","disconnected":"已断开连接","notConfigured":"未配置","testConnection":"测试连接","enable":"启用","disable":"禁用","columns":"专栏","newest":"最新","oldest":"最古老的","all":"全部","none":"无","yes":"是的","no":"否","warning":"警告","note":"注意事项","free":"免费","skipToContent":"跳至内容"},"sidebar":{"home":"首页","dashboard":"仪表板","providers":"供应商","combos":"组合","usage":"用途","analytics":"分析","costs":"成本","health":"健康","limits":"限制和配额","cliTools":"CLI工具","settings":"设置","translator":"翻译者","docs":"文档","issues":"问题","endpoint":"端点","apiManager":"API管理器","logs":"日志","auditLog":"审核日志","shutdown":"关机","restart":"重新启动","shutdownConfirm":"关闭 OmniRoute?","restartConfirm":"重新启动 OmniRoute?","version":"v{version}","debug":"调试","system":"系统","help":"帮助","serverDisconnected":"服务器已断开连接","serverDisconnectedMsg":"代理服务器已停止或正在重新启动。","expandSidebar":"展开侧边栏","collapseSidebar":"折叠侧边栏","media":"媒体"},"header":{"logout":"退出","language":"语言","providers":"供应商","providerDescription":"管理您的 AI 提供商连接","combos":"组合","comboDescription":"具有后备功能的模型组合","usage":"使用与分析","usageDescription":"监控您的 API 使用情况、令牌消耗和请求日志","analytics":"分析","analyticsDescription":"图表、趋势和评估见解","cliTools":"CLI工具","cliToolsDescription":"配置 CLI 工具","home":"首页","homeDescription":"欢迎来到 OmniRoute","endpoint":"端点","endpointDescription":"API端点配置","settings":"设置","settingsDescription":"管理您的偏好","openaiCompatible":"兼容 OpenAI","anthropicCompatible":"人择兼容"},"home":{"quickStart":"快速入门","quickStartDesc":"只需 4 个步骤即可启动并运行。连接提供商、路线模型、监控一切。","fullDocs":"完整文档","step1Title":"1. 创建API密钥","step1Desc":"转至 <endpoint>Endpoint</endpoint> -> 注册密钥。每个环境生成一个密钥。","step2Title":"2. 连接提供商","step2Desc":"在 <providers>Providers</providers> 中添加帐户。支持 OAuth、API 密钥和免费套餐。","step3Title":"3. 指出你的客户","step3Desc":"在 IDE 或 API 客户端中将基本 URL 设置为 {url}。","step4Title":"4. 监控和优化","step4Desc":"在<logs>请求日志</logs>和<analytics>Analytics</analytics>中跟踪令牌、成本和错误。","providersOverview":"供应商概览","configuredOf":"{configured} 配置了 {total} 可用提供程序","noModelsAvailable":"该提供商没有可用的型号。","configureFirst":"首先在 {providers} 中配置连接","configureProvider":"配置提供商","modelAvailable":"{count} 模型可用","modelsAvailable":"{count} 可用型号","connectionsActive":"{count} 连接处于活动状态","connectionsActivePlural":"{count} 连接处于活动状态","copyModelName":"复制型号名称","documentation":"文档","healthMonitor":"健康监测","reportIssue":"报告问题","activeError":"{active} 有效 \xb7 {errors} 错误","oauthLabel":"开放认证","apiKeyLabel":"API密钥","requestsShort":"{count} 要求","providerModelsTitle":"{provider} - 模型","copiedModel":"已复制:{model}","aliasLabel":"别名"},"analytics":{"title":"分析","overviewDescription":"监控所有提供商和模型的 API 使用模式、令牌消耗、成本和活动趋势。","evalsDescription":"运行评估套件来测试和验证您的 LLM 端点。比较模型质量、检测回归和基准延迟。","overview":"概述","evals":"埃瓦尔斯"},"apiManager":{"title":"API 密钥","createKey":"创建 API 密钥","key":"钥匙","revokeKey":"撤销密钥","revokeConfirm":"您确定要撤销此 API 密钥吗?","noKeys":"还没有 API 密钥","noKeysDesc":"创建您的第一个 API 密钥以验证对端点的请求","keyLabel":"钥匙标签","permissions":"权限","expiresAt":"过期","never":"从来没有","revoke":"撤销","showKey":"显示密钥","hideKey":"隐藏键","copyKey":"复制 API 密钥","allModels":"所有型号","selectedModels":"选定型号","readOnly":"只读","fullAccess":"完全访问权限","keyManagement":"API密钥管理","keyManagementDesc":"创建和管理 API 密钥以验证对端点的请求","totalKeys":"总按键数","restricted":"受限","totalRequests":"请求总数","modelsAvailable":"可用型号","registeredKeys":"注册密钥","keysRegistered":"{count} 已注册密钥","keyRegistered":"{count} 密钥已注册","keysSecurityNote":"每个密钥都隔离使用情况跟踪,并且可以独立撤销。为了安全起见,密钥在创建后会被屏蔽。","createFirstKey":"创建你的第一把钥匙","name":"名称","usage":"用途","created":"已创建","actions":"行动","reqs":"要求","neverUsed":"从未使用过","deleteConfirm":"删除此 API 密钥吗?","usageTips":"使用技巧","tipAuth":"使用授权标头中的 API 密钥作为 Bearer YOUR_KEY","tipSecure":"密钥在创建过程中仅显示一次 - 安全地存储它们","tipSeparate":"为不同的客户端或环境创建单独的密钥","tipRestrict":"将密钥限制为特定型号,以实现更好的安全性和成本控制","keyName":"按键名称","keyNamePlaceholder":"例如,生产密钥、开发密钥","keyNameDesc":"选择一个描述性名称来标识此密钥的用途","keyCreated":"API 密钥已创建","keyCreatedSuccess":"密钥创建成功!","keyCreatedNote":"立即复制并存储此密钥 - 它不会再次显示。","done":"完成","savePermissions":"保存权限","allowAll":"允许全部","restrict":"限制","allowAllInfo":"该键可以访问所有可用的模型。","restrictInfo":"此密钥可以访问 {total} 模型中的 {selected}。","selected":"已选择 {count}","all":"全部","clear":"清除","searchModels":"按名称或提供商搜索模型...","noModelsFound":"没有找到型号","keyNameRequired":"密钥名称为必填项","keyNameTooLong":"键名不得超过 {max} 个字符","keyNameInvalid":"键名只能包含字母、数字、空格、连字符和下划线","invalidKeyName":"键名无效","failedCreateKey":"创建密钥失败","failedCreateKeyRetry":"创建密钥失败。请再试一次。","invalidKeyId":"密钥 ID 无效","failedDeleteKey":"删除密钥失败","failedDeleteKeyRetry":"删除密钥失败。请再试一次。","invalidModelsSelection":"型号选择无效","cannotSelectMoreThanModels":"无法选择超过 {max} 个型号","failedUpdatePermissions":"更新权限失败","failedUpdatePermissionsRetry":"更新权限失败。请再试一次。","unknownProvider":"未知","copyMaskedKey":"复制屏蔽密钥","modelsCount":"{count, plural, one {# model} other {# models}}","lastUsedOn":"最后:{date}","editPermissions":"编辑权限","deleteKey":"删除键","model":"{count} 模型","models":"{count} 模型","permissionsTitle":"权限:{name}","allowAllDesc":"该键可以访问所有可用的模型。","restrictDesc":"此密钥可以访问 {totalModels} 模型中的 {selectedCount}。","selectedCount":"已选择 {count}"},"auditLog":{"title":"审核日志","searchPlaceholder":"搜索操作...","action":"行动","actor":"演员","target":"目标","ipAddress":"IP地址","timestamp":"时间戳","noEntries":"未找到审核条目","filterByAction":"按操作过滤...","filterByActor":"按演员筛选...","filterEntriesAria":"过滤审核日志条目","filterByActionTypeAria":"按操作类型过滤","filterByActorAria":"按演员筛选","refreshAuditLogAria":"刷新审核日志","tableAria":"审核日志条目","failedFetchAuditLog":"无法获取审核日志","notAvailable":"—","description":"行政行为和安全事件","showing":"显示 {count} 条目(偏移量 {offset})","previous":"上一页"},"cliTools":{"title":"CLI工具","noActiveProviders":"没有活跃的提供商","noActiveProvidersDesc":"请先添加并连接提供商以配置 CLI 工具。","mapModels":"地图模型","testConnection":"测试连接","connectionStatus":"连接状态","configureEndpoint":"配置端点","instructions":"使用说明","modelMapping":"模型映射","baseUrl":"基本网址","apiKey":"API密钥","configured":"已配置","notConfigured":"未配置","notInstalled":"未安装","custom":"定制","unknown":"未知","lastSavedAt":"最后保存:{date}","never":"从来没有","justNow":"刚才","minutesAgoShort":"{count} 分钟前","hoursAgoShort":"{count} 小时前","daysAgoShort":"{count} 天前","monthsAgoShort":"{count} 个月前","yearsAgoShort":"{count}年前","runtimeCheckFailed":"运行时检查失败","yourApiKeyPlaceholder":"你的 api 密钥","modelPlaceholder":"提供商/型号 ID","configurationSaved":"配置保存成功。","failedToSave":"保存配置失败。","noApiKeysCreateOne":"无 API 密钥 - 在“密钥”页面创建一个","defaultOmnirouteKey":"sk_omniroute(默认)","selectModel":"选择型号","selectModelForAlias":"选择 {alias} 的模型","selectModelForTool":"选择 {tool} 的模型","select":"选择","clear":"清除","comingSoon":"即将推出","checkingRuntime":"正在检查运行时状态...","guideOnlyIntegration":"仅指南集成(无需本地运行时)","cliRuntimeDetected":"CLI 运行时已检测到并准备就绪","cliFoundNotRunnable":"CLI 已找到但无法运行{reason}","cliRuntimeNotDetected":"未检测到 CLI 运行时","binary":"二进制","configPath":"配置路径","configPathShort":"配置","failedCheckRuntimeStatus":"无法检查运行时状态。","copy":"复制","copied":"已复制","copyConfig":"复制配置","saveConfig":"保存配置","selectionSaved":"选择已保存","guide":"指南","detected":"检测到","notReady":"还没准备好","active":"活跃","inactive":"不活跃","startMitm":"启动中间人","stopMitm":"停止中间人","mitmStarted":"MITM启动成功!","mitmStopped":"MITM 成功停止!","failedStart":"无法启动 MITM","failedStop":"未能阻止 MITM","saveMappings":"保存映射","mappingsSaved":"映射已保存!","failedSaveMappings":"保存映射失败","howItWorks":"工作原理:","antigravityHowWorksDesc":"Antigravity 向 Google 端点发送请求。 MITM 拦截并将它们重定向到 OmniRoute。","antigravityStep1":"1. 启动 MITM 通过 OmniRoute 路由请求。","antigravityStep2Prefix":"2. 添加","antigravityStep2Suffix":"添加到您的主机文件中作为 127.0.0.1。","antigravityStep3":"3. 开放Antigravity,请求将被代理。","sudoPasswordRequiredTitle":"需要 sudo 密码","sudoPasswordHint":"修改主机文件和系统代理设置需要管理员密码。","enterSudoPassword":"输入sudo密码","sudoPasswordRequiredError":"需要 sudo 密码。","cancel":"取消","confirm":"确认","settingsApplied":"设置应用成功!","failedApplySettings":"无法应用设置","settingsReset":"设置重置成功!","failedResetSettings":"重置设置失败","backupRestored":"备份已恢复!","failedRestore":"恢复失败","checkingCli":"正在检查 {tool} CLI...","cliNotRunnable":"{tool} CLI 已安装但无法运行","cliNotInstalled":"{tool} CLI 未安装","cliNotDetected":"未检测到 {tool} CLI","cliDetectedReady":"{tool} CLI 已检测到并准备就绪","cliFoundFailedHealthcheck":"找到 {tool} CLI,但运行时运行状况检查失败{reason}。","installCliPrompt":"请安装 {tool} CLI 以使用此功能。","installCodexPrompt":"请安装 Codex CLI 以使用自动应用功能。","hide":"隐藏","howToInstall":"如何安装","installationGuide":"安装指南","platforms":"macOS / Linux / Windows:","afterInstallationRun":"安装后,运行","toVerify":"来验证。","current":"当前","baseUrlPlaceholder":"https://.../v1","resetToDefault":"重置为默认值","providerModelPlaceholder":"提供商/型号 ID","apply":"申请","reset":"重置","manualConfig":"手动配置","backups":"备份","configBackups":"配置备份","noBackupsYet":"还没有备份。每次应用或重置之前都会自动创建备份。","restore":"恢复","backupRestoredReloading":"备份已恢复!正在重新加载状态...","failedRestoreBackup":"恢复备份失败","applied":"已应用!","failed":"失败","resetDone":"重置!","omnirouteConfiguredOpenAiCompatible":"OmniRoute 配置为 OpenAI 兼容提供商","provider":"提供者","model":"型号","providers":"供应商","auth":"授权","noApiKeysAvailable":"没有可用的 API 密钥","usingDefaultOmniroute":"使用默认值:sk_omniroute","updateConfig":"更新配置","applyConfig":"应用配置","noBackupsAvailable":"没有可用的备份。","profileSaved":"个人资料“{name}”已保存!","failedSaveProfile":"保存个人资料失败","profileActivated":"个人资料已激活!","failedActivateProfile":"无法激活个人资料","profiles":"型材","savedProfiles":"保存的配置文件","noProfilesYet":"尚未保存配置文件。将当前配置保存为下面的配置文件。","activate":"激活","deleteProfile":"删除个人资料","profileNamePlaceholder":"个人资料名称(例如个人帐户)","saveCurrent":"保存当前","codexAuthNotePrefix":"法典用途","codexAuthNoteMiddle":"与","codexAuthNoteSuffix":"单击“应用”进行自动配置。","claudeManualConfiguration":"Claude CLI - 手动配置","codexManualConfiguration":"Codex CLI - 手动配置","droidManualConfiguration":"Factory Droid - 手动配置","openClawManualConfiguration":"开爪 - 手动配置","clineManualConfiguration":"Cline手动配置","kiloManualConfiguration":"千码手动配置","toolDescriptions":{"antigravity":"带有 MITM 的 Google 反重力 IDE","claude":"人类克劳德代码 CLI","codex":"OpenAI Codex CLI","droid":"工厂机器人AI助手","openclaw":"开爪AI助手","cline":"Cline AI 编码助手 CLI","kilo":"Kilo Code AI 助手 CLI","cursor":"光标AI代码编辑器","continue":"继续AI助手"},"guides":{"cursor":{"notes":{"0":"需要 Cursor Pro 帐户才能使用此功能。","1":"Cursor 通过自己的服务器路由请求,因此不支持本地端点。请在“设置”中启用云端点。"},"steps":{"1":{"title":"打开设置","desc":"转到设置 -> 模型"},"2":{"title":"启用 OpenAI API","desc":"启用“OpenAI API 密钥”选项"},"3":{"title":"基本网址"},"4":{"title":"API密钥"},"5":{"title":"添加自定义模型","desc":"点击“查看所有模型”->“添加自定义模型”"},"6":{"title":"选择型号"}}},"continue":{"steps":{"1":{"title":"打开配置","desc":"打开继续配置文件"},"2":{"title":"API密钥"},"3":{"title":"选择型号"},"4":{"title":"添加模型配置","desc":"将以下配置添加到您的模型数组中:"}}}}},"combos":{"title":"组合","description":"创建具有加权路由和后备支持的模型组合","createCombo":"创建组合","editCombo":"编辑组合","deleteCombo":"删除组合","noModels":"没有型号","noModelsYet":"尚未添加型号","addModel":"添加型号","addModelToCombo":"将模型添加到组合","routingStrategy":"路由策略","maxRetries":"最大重试次数","timeout":"超时(毫秒)","healthcheck":"健康检查","priority":"优先级","fallback":"回退","roundRobin":"循环赛","random":"随机","leastLatency":"最低延迟","comboName":"组合名称","comboNamePlaceholder":"我的组合","deleteConfirm":"删除这个组合?","noCombosYet":"还没有组合","comboCreated":"组合创建成功","comboUpdated":"组合更新成功","comboDeleted":"组合已删除","failedCreate":"创建组合失败","failedUpdate":"更新组合失败","errorCreating":"创建组合时出错","errorUpdating":"更新组合时出错","errorDeleting":"删除组合时出错","testFailed":"测试请求失败","failedToggle":"无法切换组合","testResults":"测试结果 — {name}","resolvedBy":"解决方法:","more":"+{count} 更多","reqs":"要求","success":"成功","proxyConfigured":"代理已配置","copyComboName":"复制组合名称","enableCombo":"启用组合","disableCombo":"禁用组合","testCombo":"测试组合","duplicate":"重复","proxyConfig":"代理配置","nameRequired":"姓名为必填项","nameInvalid":"仅限字母、数字、-、_、/ 和 。允许","nameHint":"字母、数字、-、_、/ 和 。允许","priorityDesc":"顺序回退:首先尝试模型 1,然后尝试模型 2,依此类推。","weightedDesc":"按权重百分比分配流量并进行回退","roundRobinDesc":"循环分发:每个请求轮流转到下一个模型","randomDesc":"统一随机选择,然后回退到剩余模型","leastUsedDesc":"选择请求最少的模型,随着时间的推移平衡负载","costOptimizedDesc":"首先根据定价路由至最便宜的型号","models":"型号","autoBalance":"自动平衡","advancedSettings":"高级设置","retryDelay":"重试延迟(毫秒)","concurrencyPerModel":"并发/模型","queueTimeout":"队列超时(毫秒)","advancedHint":"留空以使用全局默认值。这些会覆盖每个提供商的设置。","moveUp":"向上移动","moveDown":"下移","removeModel":"删除","saving":"正在保存...","weighted":"加权","leastUsed":"最少使用的","costOpt":"成本选择"},"costs":{"title":"成本","budget":"预算","totalCost":"总成本","breakdown":"成本明细","noData":"无成本数据","byModel":"按型号","byProvider":"按提供商"},"endpoint":{"title":"API端点","available":"可用端点","cloudProxy":"云代理","disableConfirm":"您确定要禁用云代理吗?","baseUrl":"基本网址","apiKeyLabel":"API密钥","registeredKeys":"注册密钥","chatCompletions":"聊天完成","responses":"回应","listModels":"列出型号","usingCloudProxy":"使用云代理","usingLocalServer":"使用本地服务器","machineId":"机器 ID:{id}...","disableCloud":"禁用云","enableCloud":"启用云","modelsAcrossEndpoints":"跨 {endpoints} 端点的 {models} 模型","chatDesc":"与所有提供商的流式和非流式聊天","embeddings":"嵌入","embeddingsDesc":"用于搜索和 RAG 管道的文本嵌入","imageGeneration":"图像生成","imageDesc":"根据文本提示生成图像","rerank":"重新排序","rerankDesc":"按与查询的相关性对文档重新排序","audioTranscription":"音频转录","audioTranscriptionDesc":"将音频文件转录为文本(Whisper)","textToSpeech":"文字转语音","textToSpeechDesc":"将文本转换为听起来自然的语音","moderations":"节制","moderationsDesc":"内容审核和安全分级","enableCloudTitle":"启用云代理","whatYouGet":"你会得到什么","cloudBenefitAccess":"从世界任何地方访问您的 API","cloudBenefitShare":"轻松与您的团队共享端点","cloudBenefitPorts":"无需开放端口或配置防火墙","cloudBenefitEdge":"快速的全球边缘网络","cloudSessionNote":"云会将您的身份验证会话保留 1 天。如果不使用,它将被自动删除。","cloudUnstableNote":"目前,云在某些情况下使用 Claude Code OAuth 不稳定。","cloudConnected":"云代理已连接!","connectingToCloud":"正在连接到云...","verifyingConnection":"正在验证连接...","connecting":"正在连接...","verifying":"正在验证...","connected":"已连接!","disableCloudTitle":"禁用云代理","disableWarning":"所有身份验证会话都将从云中删除。","syncingData":"正在同步最新数据...","disablingCloud":"禁用云...","syncing":"正在同步...","disabling":"禁用...","cloudConnectedVerified":"云代理已连接并已验证!","connectedVerificationPending":"已连接 — 待验证","connectedVerificationPendingWithError":"已连接 — 验证待处理:{error}","cloudDisabledSuccess":"云禁用成功","syncedSuccess":"同步成功","failedDisable":"禁用云失败","failedEnable":"启用云失败","cloudRequestTimeout":"云请求超时","cloudRequestFailed":"云请求失败","cloudWorkerUnreachable":"无法联系云工作人员。确保云服务正在运行(npm run dev in /cloud)。","connectionFailed":"连接失败","syncFailed":"云数据同步失败","providerModelsTitle":"{provider} — 模型","noModelsForProvider":"该提供商没有可用的型号。","chat":"聊天","embedding":"嵌入","image":"图片","custom":"定制","modelsCount":"{count, plural, one {# model} other {# models}}","responsesDesc":"用于 Codex 和高级智能体工作流的 OpenAI Responses API","listModelsDesc":"列出所有已连接提供商的所有可用模型","settingsApi":"Settings API","settingsApiDesc":"通过 API 读取和修改 OmniRoute 配置","categoryCore":"核心 API","categoryMedia":"媒体和多模态","categoryUtility":"实用工具和管理"},"health":{"title":"系统健康状况","description":"实时监控您的 OmniRoute 实例","healthy":"健康","degraded":"降级","down":"向下","uptime":"正常运行时间","memory":"内存","memoryRss":"记忆 (RSS)","heap":"堆","cpu":"中央处理器","database":"数据库","version":"版本","lastCheck":"最后检查","providerHealth":"提供者健康","systemMetrics":"系统指标","tokenHealth":"令牌健康","refreshAll":"全部刷新","checkNow":"立即查看","loadingHealth":"正在加载健康数据...","failedToLoad":"无法加载健康数据:{error}","retry":"重试","allOperational":"所有系统均可运行","issuesDetected":"检测到系统问题","updatedAt":"更新了 {time}","latency":"延迟","latencyP50":"p50","latencyP95":"p95","latencyP99":"p99","millisecondsShort":"{value}ms","notAvailable":"—","totalRequests":"请求总数","noDataYet":"还没有数据","promptCache":"提示缓存","entries":"参赛作品","hitRate":"命中率","hitsMisses":"命中/未命中","signatureCache":"签名缓存","signatureDefaults":"默认值","signatureTool":"工具","signatureFamily":"家庭","signatureSession":"会议","recovering":"正在恢复中","noCBData":"没有可用的断路器数据。先提出一些要求。","providerHealthStatusAria":"提供者健康状况","issuesLabel":"检测到的问题","operational":"运营中","providers":"供应商","healthyCount":"{count} 健康","nodeVersion":"节点 {version}","failures":"{count} 失败","failuresPlural":"{count} 失败","lastFailure":"最后","rateLimitStatus":"速率限制状态","activeLimiters":"{count} 主动限制器","activeLimitersPlural":"{count} 主动限制器","queued":"排队","queuedCount":"{count} 已排队","running":"跑步","runningCount":"{count} 正在运行","ok":"好的","activeLockouts":"主动锁定","resetConfirm":"将所有断路器重置为正常状态?这将清除所有故障计数并将所有提供程序恢复到运行状态。","resetAllTitle":"将所有断路器重置为正常状态","resetting":"正在重置...","resetAll":"全部重置","until":"直到 {time}"},"limits":{"title":"限制和配额","rateLimit":"速率限制","remaining":"剩余","requestsPerMinute":"请求/分钟","tokensPerMinute":"令牌/分钟","dailyLimit":"每日限额"},"logs":{"title":"日志","requestLogs":"请求日志","proxyLogs":"代理日志","auditLog":"审核日志","console":"控制台","auditLogDesc":"行政行为和安全事件","loading":"正在加载...","refresh":"刷新","filterByAction":"按操作过滤...","filterByActor":"按演员筛选...","filterEntriesAria":"过滤审核日志条目","filterByActionTypeAria":"按操作类型过滤","filterByActorAria":"按演员筛选","refreshAuditLogAria":"刷新审核日志","tableAria":"审核日志条目","failedFetchAuditLog":"无法获取审核日志","showing":"显示 {count} 条目(偏移量 {offset})","search":"搜索","timestamp":"时间戳","action":"行动","actor":"演员","target":"目标","details":"详情","ipAddress":"IP地址","notAvailable":"—","noEntries":"未找到审核日志条目","previous":"上一页","next":"下一页"},"onboarding":{"welcome":"欢迎","security":"安全","test":"测试","ready":"准备好了!","setPassword":"设置密码","addProvider":"添加您的第一个提供商","getStarted":"开始使用","skip":"跳过","skipWizard":"完全跳过向导","skipPassword":"跳过密码设置","skipAndContinue":"跳过并继续","passwordLabel":"密码","confirmPassword":"确认密码","enterPassword":"输入密码","confirmPasswordPlaceholder":"确认密码","passwordsMismatch":"密码不匹配","setupComplete":"设置完成!","goToDashboard":"转到仪表板→","welcomeDesc":"OmniRoute 是您的本地 AI API 代理。它通过负载平衡、故障转移和使用情况跟踪将请求路由到多个 AI 提供商。","multiProvider":"多提供商","usageTracking":"使用情况追踪","apiKeyMgmt":"API密钥管理","securityDesc":"设置密码以保护您的仪表板,或暂时跳过。","providerDesc":"连接您的第一个人工智能提供商。您可以稍后添加更多。","apiKeyRequired":"API 密钥(必填)","customUrlOptional":"自定义 URL(可选)","testDesc":"让我们验证您的提供商连接是否有效。","runTest":"运行连接测试","testingConnection":"测试连接...","connectionSuccessful":"连接成功!您的提供商已准备就绪。","noProviderFound":"未找到提供者。您可以稍后从仪表板添加一个。","testFailed":"测试失败,但您可以稍后配置。","couldNotTest":"现在无法测试。您可以从仪表板进行测试。","doneDesc":"你都准备好了!您的 OmniRoute 实例已配置并准备好代理 AI 请求。","yourEndpoint":"您的端点:","continue":"继续","retry":"重试","failedSetPassword":"设置密码失败。再试一次。","failedAddProvider":"添加提供商失败。再试一次。","connectionError":"连接错误。请再试一次。","provider":"提供者"},"providers":{"title":"供应商","addProvider":"添加提供商","editProvider":"编辑提供商","deleteProvider":"删除提供商","noProviders":"没有配置提供商","modelAvailability":"型号可供选择","accounts":"账户","newAccount":"新账户","deleteConfirm":"您确定要删除该提供商吗?","testing":"测试...","testConnection":"测试连接","testSuccess":"连接成功","testFailed":"连接失败","available":"可用","cooldown":"冷却时间","unavailable":"不可用","unknown":"未知","oauthLabel":"开放认证","compatibleLabel":"兼容","chat":"聊天","responses":"回应","messages":"留言","oauthProviders":"OAuth 提供商","freeProviders":"免费提供商","apiKeyProviders":"API 密钥提供商","compatibleProviders":"API 密钥兼容提供商","testAll":"测试全部","testAllOAuth":"测试所有 OAuth 连接","testAllFree":"测试所有免费连接","testAllApiKey":"测试所有 API 密钥连接","testAllCompatible":"测试所有兼容连接","connected":"{count} 已连接","errorCount":"{count} 错误 ({code})","errorCountNoCode":"{count} 错误","noConnections":"无连接","disabled":"残疾人","enableProvider":"启用提供商","disableProvider":"禁用提供商","testResults":"测试结果","noCompatibleYet":"尚未添加兼容的提供商","compatibleHint":"使用上面的按钮添加 OpenAI 或 Anthropic 兼容端点","addOpenAICompatible":"添加 OpenAI 兼容","addAnthropicCompatible":"添加人择兼容","addNewProvider":"添加新提供商","backToProviders":"返回提供商","configureNewProvider":"配置新的 AI 提供程序以与您的应用程序一起使用。","providerLabel":"提供者","selectProvider":"选择提供商","selectedProvider":"选定的提供商","authMethod":"认证方式","apiKeyLabel":"API密钥","apiKeyRequired":"需要 API 密钥","selectProviderRequired":"请选择提供商","enterApiKey":"输入您的 API 密钥","apiKeySecure":"您的 API 密钥将被加密并安全存储。","oauth2Connect":"使用 OAuth2 连接","oauth2Label":"OAuth2","oauth2Desc":"使用 OAuth2 身份验证连接您的帐户。","displayName":"显示名称","displayNamePlaceholder":"例如,生产 API、开发环境","displayNameHint":"可选。用于标识此配置的友好名称。","active":"活跃","activeDescription":"启用此提供程序以在您的应用程序中使用","cancel":"取消","createProvider":"创建提供者","failedCreate":"创建提供商失败","errorOccurred":"发生错误。请再试一次。","modelStatus":"型号状态","allModelsOperational":"所有型号均可运行","modelsWithIssues":"{count} 有问题的模型","allModelsNormal":"所有型号均响应正常。","cooldownCleared":"{model} 的冷却时间已清除","failedClearCooldown":"无法清除冷却时间","loadingAvailability":"正在加载模型可用性...","clearCooldown":"清除","clearing":"清算...","until":"直到 {time}","providerTestFailed":"提供商测试失败","modeTest":"{mode} 测试","passedCount":"{count} 通过","failedCount":"{count} 失败","testedCount":"{count} 已测试","millisecondsAbbr":"{value}ms","okShort":"好的","errorShort":"错误","noActiveConnectionsInGroup":"未找到该组的活动连接。","allTestsPassed":"所有 {total} 测试均已通过","testSummary":"{passed}/{total} 通过,{failed} 失败","nameLabel":"名称","prefixLabel":"前缀","baseUrlLabel":"基本网址","apiTypeLabel":"API类型","prefixHint":"必填。型号名称的唯一前缀。","nameHint":"必填。该节点的友好标签。","baseUrlHint":"必填。  提供商 API 基本 URL。","anthropicPrefixPlaceholder":"交流产品","openaiPrefixPlaceholder":"OC-产品","anthropicBaseUrlPlaceholder":"https://api.anthropic.com/v1","openaiBaseUrlPlaceholder":"https://api.openai.com/v1","validateConnection":"验证连接","validating":"正在验证...","connectionValid":"连接有效!","connectionFailed":"连接失败。检查 URL 和密钥。","testKeyLabel":"测试 API 密钥","testKeyPlaceholder":"sk-...(仅用于验证)","providerNotFound":"找不到提供者","deleteConnectionConfirm":"删除这个连接吗?","failedSetAlias":"设置别名失败","failedSaveConnection":"保存连接失败","failedSaveConnectionRetry":"无法保存连接。请再试一次。","failedRetestConnection":"重新测试连接失败","deleteCompatibleNodeConfirm":"删除此 {type} 兼容节点?","anthropicCompatibleDetails":"人择兼容细节","openaiCompatibleDetails":"OpenAI 兼容详细信息","messagesApi":"消息API","responsesApi":"响应API","chatCompletions":"聊天完成","importingModels":"正在导入...","importFromModels":"从 /models 导入","addConnectionToImport":"添加连接以启用导入。","noModelsConfigured":"没有配置型号","connectionCount":"{count} 连接","fetchingModels":"正在获取可用模型...","failedFetchModels":"获取模型失败","noModelsFound":"没有找到型号","importFailed":"导入失败","noNewModelsAdded":"没有添加新模型。","adding":"添加...","importingModelsTitle":"导入模型","copyModel":"复制模型","removeModel":"删除模型","rateLimitProtected":"受保护","rateLimitUnprotected":"无保护","enableRateLimitProtection":"单击启用速率限制保护","disableRateLimitProtection":"单击以禁用速率限制保护","productionKey":"生产密钥","enterNewApiKey":"输入新的 API 密钥","optional":"可选","anthropicCompatibleName":"人择兼容","openaiCompatibleName":"兼容 OpenAI","failedImportModels":"导入模型失败","noModelsReturnedFromEndpoint":"/models 端点没有返回任何模型。","importingModelsProgress":"正在导入 {current} 个模型(共 {total} 个)...","foundModelsStartingImport":"找到 {count} 模型。开始导入...","importingModelById":"正在导入 {modelId}...","importSuccessCount":"成功导入{count, plural, one {# model} other {# models}}!","noNewModelsAddedExisting":"没有添加新模型(全部已存在)。","importDoneCount":"✓ 完成! {count, plural, one {# model imported.} other {# models imported.}}","unexpectedErrorOccurred":"发生意外错误","connectionCountLabel":"{count, plural, one {# connection} other {# connections}}","messagesPath":"消息","responsesPath":"回应","chatCompletionsPath":"聊天/完成","add":"添加","edit":"编辑","delete":"删除","anthropic":"人择","openai":"开放人工智能","singleConnectionPerCompatible":"每个兼容节点仅允许一个连接。如果需要更多连接,请添加另一个节点。","connections":"连接","providerProxyTitleConfigured":"提供商代理:{host}","configured":"配置的","providerProxyConfigureHint":"为该提供商的所有连接配置代理","providerProxy":"提供商代理","noConnectionsYet":"还没有连接","addFirstConnectionHint":"添加您的第一个连接以开始使用","addConnection":"添加连接","availableModels":"可用型号","pageAutoRefresh":"页面会自动刷新...","statusDisabled":"残疾人","statusConnected":"已连接","statusRuntimeIssue":"运行时问题","statusAuthFailed":"验证失败","statusRateLimited":"速率有限","statusNetworkIssue":"网络问题","statusTestUnsupported":"测试不受支持","statusUnavailable":"不可用","statusFailed":"失败了","statusError":"错误","oauthAccount":"OAuth 帐户","errorTypeRuntime":"本地运行时","errorTypeUpstreamAuth":"上游授权","errorTypeMissingCredential":"缺少凭证","errorTypeRefreshFailed":"刷新失败","errorTypeTokenExpired":"令牌已过期","errorTypeRateLimited":"速率有限","errorTypeUpstreamUnavailable":"上游不可用","errorTypeNetworkError":"网络错误","errorTypeTestUnsupported":"测试不支持","errorTypeUpstreamError":"上游错误","proxySourceGlobal":"全球","proxySourceProvider":"提供者","proxySourceKey":"钥匙","proxyConfiguredBySource":"代理 ({source}):{host}","autoPriority":"自动:{priority}","proxy":"代理","retestAuthentication":"重新测试认证","retest":"重新测试","disableConnection":"禁用连接","enableConnection":"启用连接","reauthenticateConnection":"重新验证此连接","proxyConfig":"代理配置","aliasExistsAlert":"别名“{alias}”已存在。请使用不同的模型或编辑现有别名。","openRouterAnyModelHint":"OpenRouter 支持任何型号。添加模型并创建别名以便快速访问。","modelIdFromOpenRouter":"型号 ID(来自 OpenRouter)","openRouterModelPlaceholder":"人类/claude-3-opus","customModels":"定制型号","customModelsHint":"添加不在默认列表中的型号 ID。这些将可用于路由。","modelId":"型号编号","customModelPlaceholder":"例如GPT-4.5-涡轮","loading":"正在加载...","removeCustomModel":"删除自定义模型","noCustomModels":"尚未添加自定义模型。","allSuggestedAliasesExist":"所有建议的别名均已存在。请选择不同的型号或删除有冲突的别名。","failedSaveCustomModel":"保存自定义模型失败","modelAddedSuccess":"模型 {modelId} 添加成功","failedAddModelTryAgain":"添加型号失败。请再试一次。","failedSaveImportedModel":"无法将导入的模型保存到自定义数据库","failedImportModelsTryAgain":"导入模型失败。请再试一次。","failedRemoveModelFromDatabase":"无法从数据库中删除模型","modelRemovedSuccess":"模型删除成功","failedDeleteModelTryAgain":"删除模型失败。请再试一次。","compatibleModelsDescription":"手动添加 {type} 兼容模型或从 /models 端点导入它们。","anthropicCompatibleModelPlaceholder":"克劳德-3-opus-20240229","openaiCompatibleModelPlaceholder":"GPT-4O","apiKeyValidationFailed":"API 密钥验证失败。请检查您的密钥并重试。","addProviderApiKeyTitle":"添加 {provider} API 密钥","checking":"正在检查...","check":"检查","valid":"有效","invalid":"无效","creating":"创造...","validationChecksAnthropicCompatible":"验证通过验证 API 密钥来检查 {provider}。","validationChecksOpenAiCompatible":"验证通过基本 URL 上的 /models 检查 {provider}。","priorityLabel":"优先级","saving":"正在保存...","save":"保存","editConnection":"编辑连接","accountName":"账户名称","email":"电子邮件","healthCheckMinutes":"健康检查(分钟)","healthCheckHint":"主动令牌刷新间隔。 0 = 禁用。","failedTestConnection":"测试连接失败","failed":"失败","leaveBlankKeepCurrentApiKey":"留空以保留当前的 API 密钥。","editCompatibleTitle":"编辑 {type} 兼容","compatibleBaseUrlHint":"使用 {type} 兼容 API 的基本 URL(以 /v1 结尾)。","apiKeyForCheck":"API 密钥(用于检查)","compatibleProdPlaceholder":"{type} 兼容(产品)"},"settings":{"title":"设置","general":"一般","security":"安全","appearance":"外观","routing":"路由","cache":"缓存","resilience":"韧性","systemPrompt":"系统提示","thinkingBudget":"思考预算","proxy":"代理","pricing":"定价","storage":"存储","policies":"政策","ipFilter":"IP过滤器","comboDefaults":"组合默认值","fallbackChains":"后备链","changePassword":"更改密码","enablePassword":"启用密码","darkMode":"深色模式","lightMode":"灯光模式","systemTheme":"系统主题","enableCache":"启用缓存","cacheTTL":"缓存生存时间","maxCacheSize":"最大缓存大小","clearCache":"清除缓存","cacheHits":"缓存命中","cacheMisses":"缓存未命中","hitRate":"命中率","cacheEntries":"缓存条目","circuitBreaker":"断路器","retryPolicy":"重试政策","maxRetries":"最大重试次数","retryDelay":"重试延迟","timeoutMs":"超时(毫秒)","enableSystemPrompt":"启用系统提示","systemPromptText":"系统提示文字","enableThinking":"激发思考","maxThinkingTokens":"最大思考令牌","enableProxy":"启用代理","proxyUrl":"代理网址","pricingRates":"定价格式","currentPricing":"当前定价概述","loadingPricing":"正在加载定价数据...","noPricing":"无可用定价数据","input":"输入","output":"输出","cached":"缓存","reasoning":"推理","cacheCreation":"缓存创建","customPricing":"定制定价","databaseSize":"数据库大小","backupDb":"备份数据库","restoreDb":"恢复数据库","exportData":"导出数据","importData":"导入数据","clearData":"清除所有数据","clearDataConfirm":"这将永久删除所有数据。你确定吗?","enableRequestLogs":"启用请求日志","logRetention":"日志保留","ipWhitelist":"IP白名单","ipBlacklist":"IP黑名单","addIP":"添加IP","savedSuccessfully":"设置保存成功","ai":"人工智能","advanced":"高级","localMode":"本地模式 - 所有数据都存储在您的计算机上","settingsSectionsAria":"设置部分","switchThemes":"在浅色和深色主题之间切换","themeSelectionAria":"主题选择","themeLight":"光","themeDark":"黑暗","themeSystem":"系统","hideHealthLogs":"隐藏健康检查日志","hideHealthLogsDesc":"当打开时,抑制服务器控制台中的 [HealthCheck] 消息","themeAccent":"主题颜色","themeAccentDesc":"选择预设颜色,或使用单一颜色创建你自己的主题","themeCreate":"创建主题","themeCustom":"自定义主题","themeCoral":"珊瑚色","themeBlue":"蓝色","themeRed":"红色","themeGreen":"绿色","themeViolet":"紫色","themeOrange":"橙色","themeCyan":"青色","promptCache":"提示缓存","flushCache":"刷新缓存","flushing":"法拉盛…","size":"尺寸","hits":"点击数","evictions":"驱逐","loadingCacheStats":"正在加载缓存统计信息...","globalProxy":"全球代理","globalProxyDesc":"为所有 API 调用配置全局出站代理。单独的提供程序、组合和键可以覆盖此设置。","noGlobalProxy":"没有配置全局代理","globalLabel":"全球","configure":"配置","globalSystemPrompt":"全局系统提示","systemPromptDesc":"在代理级别注入所有请求","saved":"已保存","systemPromptPlaceholder":"输入系统提示符注入所有请求...","systemPromptHint":"此提示会添加到每个请求的系统消息之前。用于全局说明、安全指南或响应格式规则。","chars":"{count} 字符","thinkingBudgetTitle":"思考预算","thinkingBudgetDesc":"控制所有请求中 AI 推理令牌的使用","passthrough":"直通","passthroughDesc":"没有变化——客户控制思维预算","auto":"汽车","autoDesc":"放弃所有思考配置——让提供商决定","custom":"定制","customDesc":"为所有请求设置固定的令牌预算","adaptive":"自适应","adaptiveDesc":"根据请求复杂性调整预算","effortNone":"无(0 代币)","effortLow":"低(1K 代币)","effortMedium":"中型(10K 代币)","effortHigh":"高(128K 代币)","tokenBudget":"代币预算","tokens":"代币","baseEffortLevel":"基本努力水平","adaptiveHint":"自适应模式根据消息计数、工具使用情况和提示长度从此基本级别进行扩展。","requireLogin":"需要登录","requireLoginDesc":"当打开时,仪表板需要密码。当关闭时,无需登录即可访问。","currentPassword":"当前密码","enterCurrentPassword":"输入当前密码","newPassword":"新密码","enterNewPassword":"输入新密码","confirmPassword":"确认新密码","confirmPasswordPlaceholder":"确认新密码","passwordsNoMatch":"密码不匹配","passwordUpdated":"密码更新成功","failedUpdatePassword":"更新密码失败","errorOccurred":"发生错误","updatePassword":"更新密码","setPassword":"设置密码","apiEndpointProtection":"API端点保护","requireAuthModels":"/models 需要 API 密钥","requireAuthModelsDesc":"当打开时,/v1/models 端点针对未经身份验证的请求返回 404。防止未经授权的用户发现模型。","blockedProviders":"被阻止的提供商","blockedProvidersDesc":"从 /v1/models 响应中隐藏特定提供程序。被阻止的提供商不会出现在模型列表中。","providersBlocked":"{count} 提供商被阻止/模型","blockProviderTitle":"区块 {provider}","unblockProviderTitle":"解锁 {provider}","routingStrategy":"路由策略","fillFirst":"先填写","fillFirstDesc":"按优先顺序使用帐户","roundRobin":"循环赛","roundRobinDesc":"循环浏览所有帐户","p2c":"P2C","p2cDesc":"随机选2个,使用更健康的一个","random":"随机","randomDesc":"每个请求随机帐户","leastUsed":"最少使用","leastUsedDesc":"选择最近最少使用的帐户","costOpt":"成本选择","costOptDesc":"更喜欢最便宜的可用帐户","stickyLimit":"粘性限制","stickyLimitDesc":"切换前每个账户的通话次数","modelAliases":"模型别名","modelAliasesDesc":"重新映射模型名称的通配符模式 • 使用 * 和 ?","aliasPatternPlaceholder":"克劳德十四行诗-*","aliasTargetPlaceholder":"克劳德十四行诗-4-20250514","pattern":"图案","targetModel":"目标模型","add":"+ 添加","session":"会议","sessionDetailsAria":"会议详情","status":"状态","authenticated":"已认证","guest":"嘉宾","loginTime":"登录时间","sessionAge":"会话年龄","browser":"浏览器","clearLocalData":"清除本地数据","logout":"退出","clearLocalDataConfirm":"清除所有本地数据?这将重置您的首选项。","unknown":"未知","systemActor":"系统","ipAccessControl":"IP访问控制","ipAccessControlDesc":"阻止或允许特定 IP 地址","ipModeDisabled":"残疾人","ipModeBlacklist":"黑名单","ipModeWhitelist":"白名单","ipModeWhitelistPriority":"WL优先级","addIpAddress":"添加IP地址","ipAddressPlaceholder":"192.168.1.0/24 或 10.0.*.*","block":"+ 块","allow":"+ 允许","blocked":"已被阻止 ({count})","allowed":"允许 ({count})","temporaryBans":"临时禁令 ({count})","minLeft":"还剩 {min}m","auditLog":"审核日志","searchAuditLogs":"搜索审核日志...","failedLoadAuditLog":"无法加载审核日志","noAuditEvents":"未找到审核事件","action":"行动","actor":"演员","details":"详情","time":"时间","fallbackChainsTitle":"后备链","fallbackChainsDesc":"定义每个模型的提供者后备顺序","addChain":"+ 添加链","modelName":"型号名称","modelNamePlaceholder":"克劳德十四行诗-4-20250514","providersCommaSeparated":"提供者(以逗号分隔,按优先顺序排列)","providersCommaSeparatedPlaceholder":"人类、openai、双子座","createChain":"创建链","noFallbackChains":"无后备链","noFallbackChainsDesc":"创建一个链来定义模型的提供者回退顺序。","loadingFallbackChains":"正在加载后备链...","deleteChainConfirm":"删除“{model}”的后备链?","chainCreated":"为 {model} 创建的链","chainDeleted":"已删除 {model} 链","failedCreateChain":"创建链失败","failedDeleteChain":"删除链失败","deleteChain":"删除链","fillModelAndProviders":"请填写型号名称和提供商","addAtLeastOneProvider":"添加至少一个提供商","comboDefaultsTitle":"组合默认值","globalComboConfig":"全局组合配置","defaultStrategy":"默认策略","defaultStrategyDesc":"应用于没有明确策略的新组合","comboStrategyAria":"组合策略","priority":"优先级","weighted":"加权","maxRetriesLabel":"最大重试次数","retryDelayLabel":"重试延迟(毫秒)","timeoutLabel":"超时(毫秒)","healthCheck":"健康检查","healthCheckDesc":"预先检查提供商的可用性","trackMetrics":"跟踪指标","trackMetricsDesc":"记录每个组合请求指标","providerOverrides":"提供者覆盖","providerOverridesDesc":"覆盖每个提供商的超时和重试。提供程序设置会覆盖全局默认设置。","providerMaxRetriesAria":"{provider} 最大重试次数","providerTimeoutAria":"{provider} 超时毫秒","removeProviderOverrideAria":"删除 {provider} 覆盖","newProviderNamePlaceholder":"例如谷歌、开放式...","newProviderNameAria":"新的提供商名称","retries":"重试","ms":"女士","saveComboDefaults":"保存组合默认值","maxNestingDepth":"最大嵌套深度","concurrencyPerModel":"并发/模型","queueTimeout":"队列超时(毫秒)","providerProfiles":"供应商简介","providerProfilesDesc":"OAuth(基于会话)和 API 密钥(计量)提供商的单独弹性设置。由于速率限制较低,OAuth 提供商具有更严格的阈值。","oauthProviders":"OAuth 提供商","apiKeyProviders":"API 密钥提供商","transientCooldown":"短暂冷却","rateLimitCooldown":"速率限制冷却","maxBackoffLevel":"最大退避级别","cbThreshold":"CB阈值","cbResetTime":"CB 复位时间","rateLimiting":"速率限制","rateLimitingDesc":"API 密钥提供程序会自动受到安全默认值的速率限制。限制是从响应标头中学习的,并随着时间的推移进行调整。","defaultSafetyNet":"默认安全网","rpm":"转速","minGap":"最小间隙","maxConcurrent":"最大并发数","activeLimiters":"有源限制器","noActiveLimiters":"尚无活动的速率限制器。","reservoir":"水库","running":"跑步","queued":"排队","circuitBreakers":"断路器","breakerStateClosed":"关闭","breakerStateOpen":"打开","breakerStateHalfOpen":"半开式","tripped":"{count} 已触发","healthy":"{count} 健康","resetAll":"全部重置","noCircuitBreakers":"尚未激活断路器。当请求流经组合管道时,它们会自动创建。","failures":"{count} 失败","policiesLocked":"策略和锁定标识符","allOperational":"所有系统均可运行——无停工或断路器跳闸","loadingPolicies":"正在加载政策...","lockedIdentifiers":"锁定标识符","unlockedIdentifier":"解锁:{identifier}","sinceDate":"自 {date} 起","forceUnlock":"强制解锁","unlocking":"解锁...","failedUnlock":"解锁失败","failedLoadWithStatus":"加载失败:{status}","failedLoadResilience":"无法加载弹性状态","saveFailed":"保存失败","resetFailed":"重置失败","loadingResilience":"正在加载弹性状态...","retry":"重试","systemStorage":"系统与存储","allDataLocal":"所有数据都存储在本地计算机上","databasePath":"数据库路径","exportDatabase":"导出数据库","exportAll":"全部导出 (.tar.gz)","importDatabase":"导入数据库","confirmDbImport":"确认数据库导入","confirmDbImportDesc":"这会将所有当前数据替换为 {file} 中的内容。导入前将自动创建备份。","yesImport":"是的,导入","lastBackup":"上次备份","noBackupYet":"还没有备份","backupNow":"立即备份","backupRestore":"备份与恢复","viewBackups":"查看备份","hide":"隐藏","backupRetentionDesc":"数据库快照会在还原之前自动创建,并且在数据更改时每 15 分钟自动创建一次。保留:24 小时 + 30 每日备份,智能轮换。","loadingBackups":"正在加载备份...","noBackupsYet":"尚无可用的备份。当数据发生变化时,将自动创建备份。","backupsAvailable":"{count} 可用备份","refresh":"刷新","confirm":"确认?","yes":"是的","no":"否","restore":"恢复","invalidFileType":"文件类型无效。仅接受 .sqlite 文件。","exportFailed":"导出失败","exportFailedWithError":"导出失败:{error}","fullExportFailedWithError":"完全导出失败:{error}","backupCreated":"创建备份:{file}","restoreSuccess":"恢复了! {connections} 连接、{nodes} 节点、{combos} 组合、{apiKeys} API 密钥。","importSuccess":"数据库导入! {connections} 连接、{nodes} 节点、{combos} 组合、{apiKeys} API 密钥。","justNow":"刚才","minutesAgo":"{count} 分钟前","hoursAgo":"{count} 小时前","daysAgo":"{count} 天前","backupReasonManual":"手册","backupReasonPreRestore":"预恢复","connectionsCount":"{count, plural, one {# connection} other {# connections}}","noChangesSinceBackup":"自上次备份以来没有任何变化","backupFailed":"备份失败","restoreFailed":"恢复失败","importFailed":"导入失败","errorDuringRestore":"恢复期间发生错误","errorDuringImport":"导入时发生错误","modelPricing":"型号定价","modelPricingDesc":"配置每个模型的成本费率 • 所有费率均以美元/100 万代币为单位","providers":"供应商","registry":"登记处","priced":"定价","searchProvidersModels":"搜索供应商或型号...","showAll":"显示全部","noProvidersMatch":"没有与您的搜索匹配的提供商。","howPricingWorks":"定价如何运作","cacheWrite":"缓存写入","unsaved":"未保存","resetDefaults":"重置默认值","saveProvider":"保存提供者","saving":"正在保存...","model":"型号","models":"型号","moreProviders":"{count} 更多提供商","withPricing":"配置定价","policiesCircuitBreakers":"政策与断路器","activeIssuesDetected":"检测到活跃问题","off":"关闭","resetPricingConfirm":"将 {provider} 的所有定价重置为默认值?","pricingDescInput":"输入:发送到模型的令牌","pricingDescOutput":"输出:生成的代币","pricingDescCached":"缓存:重用输入(约输入率的 50%)","pricingDescReasoning":"推理:思考标记(回到输出)","pricingDescCacheWrite":"缓存写入:创建缓存条目(回退到输入)","pricingDescFormula":"成本 = (输入 \xd7 输入率) + (输出 \xd7 输出率) + (缓存 \xd7 缓存率) 每百万代币。","pricingSettingsTitle":"定价设置","totalModels":"型号总数","active":"活跃","costCalculation":"成本计算","costCalculationDesc":"成本是根据为每个模型配置的令牌使用情况和定价费率计算的。","pricingFormat":"定价格式","pricingFormatDesc":"所有费率均以美元/100 万代币为单位(每百万代币美元)。","tokenTypes":"代币类型","inputTokenDesc":"标准提示标记","outputTokenDesc":"完成/响应标记","cachedTokenDesc":"缓存输入令牌(通常为输入速率的 50%)","reasoningTokenDesc":"特殊推理/思维标记(回退到输出率)","cacheCreationTokenDesc":"用于创建缓存条目的令牌(回退到输入速率)","customPricingNote":"您可以覆盖特定型号的默认定价。自定义覆盖优先于自动检测的定价。","editPricing":"编辑定价","viewFullDetails":"查看完整详情","modelAliasesTitle":"模型别名","addCustomAlias":"添加自定义别名","deprecatedModelId":"已弃用的模型 ID","newModelId":"新模型 ID","customAliases":"自定义别名","builtInAliases":"内置别名","backgroundDegradationTitle":"后台任务降级","backgroundDegradationDesc":"自动检测后台任务(标题、摘要)并路由到更便宜的模型","enableDegradation":"启用后台任务降级","enableDegradationHint":"启用后,标题生成和摘要等后台任务会自动路由到更便宜的模型","tasksDetected":"检测到的任务","degradationMap":"模型降级映射","premiumModel":"高级模型","cheapModel":"低成本模型","detectionPatterns":"检测模式","newPattern":"例如:\\"生成标题\\""},"translator":{"title":"翻译者","metaTitle":"翻译游乐场 |全方位路由","metaDescription":"调试、测试和可视化提供商之间的 API 格式转换","playgroundTitle":"翻译游乐场","playground":"游乐场","realtime":"实时翻译活动","chatTester":"聊天测试仪","testBench":"测试台","liveMonitor":"实时监控","modeDescriptionPlayground":"粘贴任何 API 请求正文,然后查看 OmniRoute 如何在提供程序格式之间进行转换(OpenAI ↔ Claude ↔ Gemini ↔ Responses API)","modeDescriptionChatTester":"通过 OmniRoute 发送真实的聊天请求并检查完整的往返过程:输入、翻译后的请求、提供商响应和翻译后的输出。","modeDescriptionTestBench":"运行预定义的场景并比较提供商和模型之间的兼容性。","modeDescriptionLiveMonitor":"当请求流经 OmniRoute 时,实时观看翻译事件。","modeDescriptionFallback":"调试、测试和可视化 OmniRoute 如何在提供者之间转换 API 请求。","recentTranslations":"最近的翻译","noTranslations":"还没有翻译","source":"来源","target":"目标","time":"时间","model":"型号","status":"状态","latency":"延迟","totalTranslations":"总翻译数","successful":"成功","errors":"错误","avgLatency":"平均延迟","millisecondsShort":"{value}ms","notAvailableSymbol":"—","liveAutoRefreshing":"直播 — 自动刷新","paused":"已暂停","eventsAppearHint":"当请求流经 OmniRoute 时,翻译事件会出现在此处。使用以下任意方法生成事件:","chatTesterTab":"聊天测试选项卡","testBenchTab":"测试台选项卡","externalApiCalls":"外部API调用","ideCliIntegrations":"IDE/CLI 集成","inMemoryNote":"注意:事件存储在内存中,并在服务器重新启动时重置。","ok":"好的","errorShort":"错误率","formatConverter":"格式转换器","formatConverterDescription":"粘贴或输入 JSON 请求正文。翻译器将自动检测源格式并将其转换为目标格式。使用它来调试 OmniRoute 如何在格式之间转换请求(OpenAI ↔ Claude ↔ Gemini ↔ Responses API)。","input":"输入","output":"输出","auto":"汽车","swapFormats":"交换格式","translateAction":"翻译","clear":"清除","inputPlaceholder":"在此处粘贴请求正文或选择下面的模板...","exampleTemplates":"示例模板","exampleTemplatesHint":"— 点击加载","templateLoadHint":"模板以 {format} 格式加载请求。更改源格式以以不同的格式加载。","compatibilityTester":"兼容性测试仪","compatibilityReport":"兼容性报告","testBenchDescription":"运行预定义的场景(简单聊天、工具调用等)以验证翻译和提供程序兼容性。选择源格式和目标提供程序,然后运行所有测试以查看兼容性百分比。使用它来查找哪些功能可以跨提供商使用。","targetProvider":"目标提供商","runAllTests":"运行所有测试","runTest":"运行测试","reRun":"重新运行","running":"运行...","passed":"通过了","failed":"失败了","passedIconLabel":"✅ 通过","chunks":"块","scenarioSimpleChat":"简单聊天","scenarioToolCalling":"工具调用","scenarioMultiTurn":"多圈","scenarioThinking":"思考","scenarioSystemPrompt":"系统提示","scenarioStreaming":"流媒体","templateNames":{"simple-chat":"简单聊天","tool-calling":"工具调用","multi-turn":"多圈","thinking":"思考","system-prompt":"系统提示","streaming":"流媒体"},"templateDescriptions":{"simple-chat":"基本短信","tool-calling":"函数/工具调用","multi-turn":"与历史对话","thinking":"扩展思维/推理","system-prompt":"复杂系统指令","streaming":"SSE 流请求"},"templatePayloads":{"simpleChat":{"system":"你是一个有用的助手。","userGreeting":"你好!你今天怎么样?"},"toolCalling":{"userWeather":"圣保罗 的天气怎么样?","toolDescription":"获取某个位置的当前天气","cityNameDescription":"城市名称"},"multiTurn":{"system":"你是一名编码助理。","userInitial":"在 Python 中编写一个函数对数组进行排序。","assistantExample":"这是一个简单的排序函数:\\n\\n````蟒蛇\\ndef sort_array(arr):\\n 返回已排序(arr)\\n````","userFollowUp":"现在将其按降序排序。"},"thinking":{"question":"前 100 个质数之和是多少?"},"systemPrompt":{"systemInstruction":"您是一名专门研究分布式系统的高级软件工程师。使用行业最佳实践简洁地回答问题。始终提供相关的代码示例。使用 Markdown 格式化您的回复。","question":"如何实现断路器模式?"},"streaming":{"prompt":"给我讲一个关于机器人学习绘画的小故事。"}},"openaiCompatibleLabel":"兼容 OpenAI","anthropicCompatibleLabel":"人择兼容","noTemplateForFormat":"没有此格式的模板","translationFailed":"翻译失败:{error}","pipelineDebugger":"管道调试器","translationPipeline":"翻译管道","pipelineVisualization":"管道可视化","pipelineVisualizationHint":"发送消息以查看您的请求如何经过检测 → 翻译 → 提供商调用。","chatTesterDescription":"以特定客户端格式发送消息并检查翻译管道的每个步骤。","chatTesterFlow":"客户端请求 → 格式检测 → OpenAI Intermediate → 提供者格式 → 响应","clickStepToInspect":"单击任意步骤即可检查该阶段的数据。","clientFormat":"客户端格式","provider":"提供者","modelPlaceholder":"选择或输入型号名称...","sendMessageToSeePipeline":"发送消息查看翻译管道","chatMessageHintPrefix":"您的消息将被格式化为","chatMessageHintSuffix":"请求,通过管道进行翻译,然后发送给选定的提供者。","youWithFormat":"您 ({format})","assistant":"助理","typeMessage":"输入消息...","send":"发送","clientRequest":"客户要求","clientRequestDescription":"您的客户端发送的请求正文","formatDetected":"检测到格式","formatDetectedDescription":"OmniRoute 自动从请求结构中检测 API 格式","openaiIntermediate":"OpenAI 中级","openaiIntermediateDescription":"所有格式首先标准化为 OpenAI 格式(通用桥)","providerFormat":"提供者格式","providerFormatDescription":"OpenAI 格式转换为提供商的本机格式","providerResponse":"供应商回应","providerResponseRawDescription":"来自提供商 API 的原始响应","providerResponseSseDescription":"来自提供商 API 的原始 SSE 流","unexpectedError":"发生意外错误","error":"错误","errorMessage":"错误:{message}","requestFailed":"请求失败","noTextExtracted":"(未提取文字)","liveMonitorDescriptionPrefix":"当 API 调用流经 OmniRoute 时显示翻译事件。事件来自内存缓冲区(重新启动时重置)。使用","liveMonitorDescriptionSuffix":",或外部 API 调用来生成事件。"},"usage":{"title":"用途","loggerTab":"记录器","proxyTab":"代理","budgetManagement":"预算管理","budgetSaved":"已保存预算限制","budgetSaveFailed":"未能节省预算","loadingBudgetData":"正在加载预算数据...","noApiKeysTitle":"没有 API 密钥","noApiKeysDescription":"首先添加 API 密钥以设置预算限制。","apiKey":"API密钥","todaysSpend":"今天的花费","thisMonth":"本月","setLimits":"设定限制","dailyLimitUsd":"每日限额(美元)","monthlyLimitUsd":"每月限额(美元)","warningThresholdPercent":"警告阈值 (%)","dailyLimitPlaceholder":"例如5.00","monthlyLimitPlaceholder":"例如50.00","warningThresholdPlaceholder":"80","saveLimits":"保存限制","budgetOk":"预算正常 — 剩余 {remaining}","budgetExceeded":"超出预算 - 请求可能被阻止","totalRequests":"请求总数","noDataYet":"还没有数据","latency":"延迟","latencyP50":"p50","latencyP95":"p95","latencyP99":"p99","promptCache":"提示缓存","systemHealth":"系统健康状况","entries":"参赛作品","activeCount":"{count} 活跃","openCircuitBreakersDetected":"检测到断路器开路","hitRate":"命中率","hitsMisses":"命中/未命中","circuitBreakers":"断路器","lockedIPs":"锁定IP","lockoutsAutoRefreshHint":"每个模型速率限制锁定 • 自动刷新 10 秒","lockedCount":"{count, plural, one {# locked} other {# locked}}","timeLeft":"剩余 {time}","howItWorks":"它是如何运作的","howItWorksSubtitle":"了解评估如何验证您的 LLM 回答","define":"定义","defineStepDescription":"使用包含、正则表达式或完全匹配等策略创建带有输入提示和预期输出标准的测试用例。","run":"运行","runStepDescription":"通过 OmniRoute 针对您的 LLM 端点执行测试用例。每个案例都作为真实的 API 请求发送。","evaluate":"评价","evaluateStepDescription":"将响应与预期标准进行比较。查看每种情况的通过/失败情况以及延迟指标和详细反馈。","evalSuites":"评估套件","evalSuitesHint":"单击套件查看测试用例,然后运行以评估您的 LLM 端点","evalsLoading":"正在加载评估套件...","noEvalSuitesFound":"未找到评估套件","noEvalSuitesDescription":"评估套件可以通过 API 或代码来定义。他们使用包含、正则表达式、精确匹配和自定义函数等策略根据预期结果测试模型输出。","columnCase":"案例","columnStatus":"状态","columnLatency":"延迟","columnDetails":"详情","columnModel":"型号","columnStrategy":"策略","columnExpected":"预计","statsSuites":"套房","statsTestCases":"测试用例","statsModels":"型号","statsCoverage":"覆盖范围","statsStrategiesCount":"{count} 策略","evaluationStrategies":"评估策略","modelsUnderTest":"测试中的模型","searchSuitesPlaceholder":"搜索套房...","passSuffix":"通过","casesCount":"{count, plural, one {# case} other {# cases}}","runEval":"运行评估","runningProgress":"正在运行 {current}/{total}...","passRate":"通过率","summaryBreakdown":"{passed} 通过 \xb7 {failed} 失败 \xb7 {total} 总计","passedIconLabel":"✅ 通过","failedIconLabel":"❌ 失败","detailsContains":"包含:“{term}”","detailsRegex":"正则表达式:{pattern}","detailsExpected":"预期:“{expected}”","noResultsYet":"还没有结果","testCasesCount":"测试用例 ({count})","noTestCasesDefined":"没有定义测试用例","runEvalHint":"单击“运行评估”以针对您的 LLM 端点执行所有案例。每个测试都通过 OmniRoute 发送真实请求。","notifyNoTestCases":"没有为此套件定义测试用例","notifyAllCasesPassed":"所有 {total} 案例均已通过 ✅","notifySomeCasesFailed":"{passed}/{total} 通过,{failed} 失败","notifyEvalRunFailed":"评估运行失败","notifyEvalTitle":"评估:{name}","modelEvals":"模型评估","evalsHeroDescription":"通过运行预定义的评估套件来测试和验证您的 LLM 端点。每个套件都包含测试用例,这些测试用例通过 OmniRoute 发送真实提示并将响应与预期标准进行比较 - 帮助您检测回归、比较模型并确保跨提供商的响应质量。","qualityValidation":"质量验证","modelComparison":"型号对比","regressionDetection":"回归检测","latencyBenchmarks":"延迟基准","modelLockouts":"模型锁定","noLockouts":"目前没有锁定型号","activeSessions":"活跃会话","noSessions":"没有活动会话","sessionsHint":"会话显示为请求流经代理","sessionsTrackedHint":"通过请求指纹跟踪 • 自动刷新 5 秒","session":"会议","age":"年龄","requests":"要求","connection":"连接方式","durationMillisecondsShort":"{value}ms","durationSecondsShort":"{value}s","durationMinutesShort":"{value}m","durationHoursShort":"{value}h","reasonSeparator":" - ","notAvailableSymbol":"-","providerLimits":"提供商限制","noProviders":"没有连接提供商","connectProvidersForQuota":"使用 OAuth 连接到提供商以跟踪您的 API 配额限制和使用情况。","accountsCount":"{count, plural, one {# account} other {# accounts}}","filteredFromCount":"(从 {count} 过滤)","autoRefresh":"自动刷新","refreshAll":"全部刷新","loadingQuotas":"正在加载...","account":"账户","modelQuotas":"模型配额","lastUsed":"最后使用","actions":"行动","refreshQuota":"刷新配额","today":"今天","tomorrow":"明天","dayTimeFormat":"{day}、{time}","inDuration":"在 {duration} 中","notApplicable":"不适用","rawPlanWithValue":"原始计划:{plan}","noPlanFromProvider":"提供商没有计划","noQuotaData":"无配额数据","noQuotaDataAvailable":"无可用配额数据","noAccountsForTierFilter":"未找到适用于层过滤器的帐户","tierAll":"全部","tierEnterprise":"企业","tierTeam":"团队","tierBusiness":"商务","tierUltra":"超","tierPro":"专业版","tierPlus":"加号","tierFree":"免费","tierUnknown":"未知"},"modals":{"waitingAuth":"等待授权","verificationUrl":"验证网址","yourCode":"你的代码","remoteAccess":"远程访问:","connectedSuccess":"连接成功!","connectionFailed":"连接失败","chooseAuthMethod":"选择您的身份验证方法:","awsBuilderId":"AWS 构建器 ID","awsIamIdentity":"AWS IAM 身份中心","googleAccount":"谷歌帐户","githubAccount":"GitHub 帐户","importToken":"导入令牌","pasteToken":"从 Kiro IDE 粘贴刷新令牌。","awsRegion":"AWS 区域","autoDetecting":"自动检测令牌...","readingFromCache":"从 AWS SSO 缓存中读取","readingFromCursor":"从 Cursor IDE 数据库读取","initializing":"正在初始化...","pricingConfig":"定价配置","loadingPricing":"正在加载定价数据...","pricingRatesFormat":"定价格式","noPricingData":"无可用定价数据","noModelsFound":"没有找到型号"},"loggers":{"allProviders":"所有提供商","allModels":"所有型号","allAccounts":"所有账户","allApiKeys":"所有 API 密钥","allTypes":"所有类型","allLevels":"所有级别","modelAZ":"型号 A-Z","modelZA":"Z-A型","loadingLogs":"正在加载日志...","loadingProxyLogs":"正在加载代理日志...","noLogEntries":"未找到日志条目","noPayloadData":"此日志条目没有可用的有效负载数据。","proxyEvent":"代理事件","proxy":"代理","level":"等级","directNative":"直接(本地)","combo":"组合","inputTokens":"我:","outputTokens":"哦:"},"stats":{"usageOverview":"使用概述","outputTokens":"输出代币","totalCost":"总成本","usageByModel":"按型号使用","usageByAccount":"按帐户使用情况","failedToLoad":"无法加载使用情况统计信息。","tokenHealth":"令牌健康","totalOAuth":"总 OAuth","healthy":"健康","warning":"警告","errored":"出错了","lastCheck":"最后检查","noData":"无数据","share":"分享","unableToLoad":"无法加载系统指标","product":"产品展示","resources":"资源","company":"公司简介"},"auth":{"welcome":"欢迎","signIn":"登录","enterPassword":"输入您的密码以继续","password":"密码","unifiedProxy":"统一AI API代理","unifiedAiApiProxy":"统一AI API代理","unifiedAiApiProxyDesc":"通过单个端点将请求路由到多个 AI 提供商。内置负载平衡、故障转移和使用情况跟踪。","passwordNotEnabled":"未启用密码保护","loading":"正在加载...","invalidPassword":"密码无效","errorOccurredRetry":"发生错误。请再试一次。","configureInstance":"让我们配置您的 OmniRoute 实例","runOnboardingWizard":"运行入门向导来设置您的密码并连接您的第一个 AI 提供商。","startOnboarding":"开始入职","secureYourInstance":"保护您的实例","setPasswordDescription":"设置密码以保护您的仪表板并保护您的 API 端点免遭未经授权的访问。","configurePassword":"配置密码","continue":"继续","windowWillClose":"该窗口将自动关闭...","closeTabNow":"您现在可以关闭此选项卡。","copyUrlManual":"请复制地址栏中的 URL 并将其粘贴到应用程序中。","accessDeniedDescription":"您无权访问此资源。检查您的 API 密钥或联系管理员。","goToDashboard":"转到仪表板","featureMultiProviderTitle":"多提供商","featureMultiProviderDesc":"OpenAI、Anthropic、Google 等","featureLoadBalancingTitle":"负载均衡","featureLoadBalancingDesc":"智能分配请求","featureUsageTrackingTitle":"使用情况追踪","featureUsageTrackingDesc":"监控成本和代币","resetPassword":"重置密码","resetDescription":"选择一种方法来恢复对仪表板的访问权限","stopServer":"停止 OmniRoute 服务器","processing":"处理中...","pleaseWait":"我们正在完成授权,请稍候。","authSuccess":"授权成功!","copyUrl":"复制此网址","accessDenied":"访问被拒绝","methodCliTitle":"方法 1:CLI 重置","methodCliDescription":"在运行 OmniRoute 的服务器上运行以下命令:","methodCliHint":"这将提示您设置新密码。必须首先停止服务器。","methodManualTitle":"方法二:手动复位","methodManualDescription":"从数据库中删除密码并在启动时设置新密码:","setPasswordInYour":"在您的密码中设置一个新密码","fileLabelSuffix":"文件:","newPasswordPlaceholder":"你的新密码","deleteSettingsFile":"删除","orRemovePasswordHashField":"或删除passwordHash字段","restartServerWithNewPassword":"重新启动服务器 - 它将使用新密码","backToLogin":"返回登录","forgotPassword":"忘记密码?"},"landing":{"brandName":"全方位路由","navigateHome":"导航至主页","toggleMenu":"切换菜单","featuresLink":"特点","docsLink":"文档","github":"GitHub","versionLive":"v1.0 现已上线","oneEndpoint":"一个端点","allProviders":"所有人工智能提供商","heroDescription":"带有 Web 仪表板的 AI 端点代理 - CLIProxyAPI 的 JavaScript 端口。与 Claude Code、OpenAI Codex、Cline、RooCode 和其他 CLI 工具无缝协作。","getStarted":"开始使用","viewOnGithub":"在 GitHub 上查看","powerfulFeatures":"强大的功能","featuresSubtitle":"在一个地方管理 AI 基础设施所需的一切,专为规模化而构建。","featureUnifiedEndpointTitle":"统一端点","featureUnifiedEndpointDesc":"通过单一标准 API URL 访问所有提供商。","featureEasySetupTitle":"轻松设置","featureEasySetupDesc":"使用 npx 命令在几分钟内启动并运行。","featureModelFallbackTitle":"模型回退","featureModelFallbackDesc":"发生故障或高延迟时自动切换提供商。","featureUsageTrackingTitle":"使用情况追踪","featureUsageTrackingDesc":"所有模型的详细分析和成本监控。","featureOAuthApiKeysTitle":"OAuth 和 API 密钥","featureOAuthApiKeysDesc":"在一个保管库中安全地管理凭据。","featureCloudSyncTitle":"云同步","featureCloudSyncDesc":"立即跨设备同步您的配置。","featureCliSupportTitle":"CLI 支持","featureCliSupportDesc":"适用于 Claude Code、Codex、Cline、Cursor 等。","featureDashboardTitle":"仪表板","featureDashboardDesc":"用于实时流量分析的可视化仪表板。","howItWorks":"OmniRoute 的工作原理","howItWorksDescription":"数据从您的应用程序通过我们的智能路由层无缝流向最适合该工作的提供商。","howItWorksStep1Title":"1. CLI 和 SDK","howItWorksStep1Description":"您的请求从您最喜欢的工具或我们的统一 SDK 开始。只需更改基本 URL 即可。","howItWorksStep2Title":"2.OmniRoute 中心","howItWorksStep2Description":"我们的引擎分析提示、检查提供商的运行状况以及最低延迟或成本的路线。","howItWorksStep3Title":"3.人工智能提供商","howItWorksStep3Description":"OpenAI、Anthropic、Gemini 或其他公司会立即满足该请求。","getStartedIn30Seconds":"30 秒内开始","getStartedDescription":"安装 OmniRoute,通过 Web 仪表板配置您的提供商,并开始路由 AI 请求。","installOmniRoute":"安装 OmniRoute","installStepDescription":"运行 npx 命令立即启动服务器","openDashboard":"打开仪表板","openDashboardStepDescription":"通过 Web 界面配置提供商和 API 密钥","routeRequests":"路线请求","routeRequestsStepDescription":"将您的 CLI 工具指向 {endpoint}","terminal":"终端","copy":"复制","copied":"✓ 已复制","startingOmniRoute":"正在启动 OmniRoute...","serverRunningOnLabel":"服务器运行于","dashboardLabel":"仪表板","readyToRoute":"准备好路线! ✓","configureProvidersNote":"\uD83D\uDCDD 在仪表板中配置提供程序或使用环境变量","dataLocation":"数据位置:","dataLocationMacLinux":" macOS/Linux:","dataLocationWindows":" 窗户:","product":"产品展示","dashboardLink":"仪表板","changelog":"变更日志","resources":"资源","documentation":"文档","npm":"国家公共管理","legal":"法律","mitLicense":"麻省理工学院许可证","footerTagline":"AI 生成的统一端点。轻松连接、路由和管理您的 AI 提供商。","copyright":"\xa9 {year} OmniRoute。版权所有。","flowToolClaudeCode":"克劳德\xb7科德","flowToolOpenAICodex":"OpenAI 法典","flowToolCline":"克莱因","flowToolCursor":"光标","flowProviderOpenAI":"开放人工智能","flowProviderAnthropic":"人择","flowProviderGemini":"双子座","flowProviderGithubCopilot":"GitHub 副驾驶","interactiveDiagram":"桌面上可见的交互式图表","ctaTitle":"准备好简化您的人工智能基础设施了吗?","ctaDescription":"与开发人员一起简化 AI 与 OmniRoute 的集成。开源且免费启动。","startFree":"免费开始","readDocumentation":"阅读文档"},"docs":{"title":"文档","quickStart":"快速入门","features":"特点","supportedProviders":"支持的提供商","supportedProvidersToc":"供应商","commonUseCases":"常见用例","clientCompatibility":"客户端兼容性","apiReference":"API参考","method":"方法","path":"路径","notes":"注释","modelPrefixes":"型号前缀","prefix":"前缀","troubleshooting":"故障排除","supportsChat":"支持聊天和响应端点。","oauthAutoRefresh":"具有自动令牌刷新功能的 OAuth 连接。","fullStreaming":"对所有型号的完全流媒体支持。","docsLabel":"文档","docsHeroDescription":"适用于多提供商法学硕士的人工智能网关。 OpenAI、Anthropic、Gemini、GitHub Copilot、Claude Code、Cursor 以及 20 多个提供商的一个端点。","openDashboard":"打开仪表板","endpointPage":"端点页面","github":"GitHub","reportIssue":"报告问题","onThisPage":"在此页面上","documentationVersion":"文档 - v{version}","quickStartStep1Title":"1.安装并运行","quickStartStep1Prefix":"运行","quickStartStep1Middle":"或者从 GitHub 克隆并运行","quickStartStep2Title":"2. 创建API密钥","quickStartStep2Text":"转至端点 -> 注册密钥。每个环境生成一个密钥。","quickStartStep3Title":"3. 连接提供商","quickStartStep3Text":"通过 OAuth 登录、API 密钥或免费层自动连接添加提供商帐户。","quickStartStep4Title":"4. 设置客户端基本 URL","quickStartStep4Prefix":"将您的 IDE 或 API 客户端指向","quickStartStep4Suffix":"例如,使用提供者前缀","featureRoutingTitle":"多提供商路由","featureRoutingText":"通过单个 OpenAI 兼容端点将请求路由到 30 多个 AI 提供商。支持聊天、响应、音频和图像 API。","featureCombosTitle":"组合和平衡","featureCombosText":"使用后备链和平衡策略创建模型组合:循环、优先级、随机、最少使用和成本优化。","featureUsageTitle":"使用情况和成本跟踪","featureUsageText":"实时令牌计数、每个提供商/模型的成本计算以及按 API 密钥和帐户划分的详细使用情况细分。","featureAnalyticsTitle":"分析仪表板","featureAnalyticsText":"可视化分析,包含随时间变化的请求、令牌、错误、延迟、成本和模型受欢迎程度的图表。","featureHealthTitle":"健康监测","featureHealthText":"实时健康检查、提供商状态、断路器状态以及具有指数退避功能的自动速率限制检测。","featureCliTitle":"CLI工具","featureCliText":"管理 IDE 配置、导出/导入备份、发现 Codex 配置文件以及从仪表板配置设置。","featureSecurityTitle":"安全和政策","featureSecurityText":"API 密钥身份验证、IP 过滤、提示注入防护、域策略、会话管理和审核日志记录。","featureCloudSyncTitle":"云同步","featureCloudSyncText":"将您的配置同步到 Cloudflare Workers,以便通过加密凭据和自动故障转移进行远程访问。","providersAcrossConnectionTypes":"跨三种连接类型的 {count} 提供程序。","manageProviders":"管理提供商","providersCount":"{count} 提供商","providerTypeFree":"免费套餐","providerTypeOAuth":"开放认证","providerTypeApiKey":"API密钥","useCaseSingleEndpointTitle":"许多提供商的单一端点","useCaseSingleEndpointText":"将客户端指向一个基本 URL 并按模型前缀进行路由(例如:gh/、cc/、kr/、openai/)。","useCaseFallbackTitle":"使用组合进行回退和模型切换","useCaseFallbackText":"在仪表板中创建组合模型,并在提供商内部轮换时保持客户端配置稳定。","useCaseUsageVisibilityTitle":"使用情况、成本和调试可见性","useCaseUsageVisibilityText":"在“使用情况”和“分析”选项卡中按提供商、帐户和 API 密钥跟踪令牌和成本。","clientCherryStudioTitle":"樱桃工作室","baseUrlLabel":"基本网址","chatEndpointLabel":"聊天端点","modelRecommendationLabel":"型号推荐:显式前缀","clientCodexTitle":"Codex / GitHub 副驾驶模型","clientCodexBullet1":"使用模型 ID","clientCodexBullet2":"Codex 系列模型自动路由至","clientCodexBullet3":"非法典模型继续","clientCursorTitle":"光标集成开发环境","clientCursorBullet1":"使用","clientCursorBullet1Suffix":"光标模型的前缀。","clientCursorBullet2":"OAuth 连接 - 从提供商页面登录。","clientClaudeTitle":"克劳德\xb7代码 / 反重力","clientClaudeBullet1Prefix":"使用","clientClaudeBullet1Middle":"(克劳德)或","clientClaudeBullet1Suffix":"(反重力)前缀。","endpointChatNote":"与 OpenAI 兼容的聊天端点(默认)。","endpointResponsesNote":"响应 API 端点(Codex、o 系列)。","endpointModelsNote":"所有连接的提供商的模型目录。","endpointAudioNote":"音频转录(Deepgram、AssemblyAI)。","endpointImagesNote":"图像生成(NanoBanana)。","endpointRewriteChatNote":"为没有 /v1 的客户端重写帮助程序。","endpointRewriteResponsesNote":"重写不带 /v1 的响应帮助程序。","endpointRewriteModelsNote":"重写模型发现助手,无需 /v1。","modelPrefixesDescriptionStart":"在模型名称之前使用提供程序前缀可路由到特定提供程序。示例:","modelPrefixesDescriptionEnd":"路由至 GitHub Copilot。","provider":"提供者","type":"类型","troubleshootingModelRouting":"如果客户端模型路由失败,请使用显式提供程序/模型(例如:gh/gpt-5.1-codex)。","troubleshootingAmbiguousModels":"如果您收到不明确的模型错误,请选择提供程序前缀而不是裸模型 ID。","troubleshootingCodexFamily":"对于 GitHub Codex 系列模型,将模型保留为 gh/<codex-model>;路由器自动选择/响应。","troubleshootingTestConnection":"在从 IDE 或外部客户端进行测试之前,请使用仪表板 > 提供程序 > 测试连接。","troubleshootingCircuitBreaker":"如果提供商显示断路器已打开,请等待冷却或查看运行状况页面以了解详细信息。","troubleshootingOAuth":"对于 OAuth 提供商,如果令牌过期,请重新进行身份验证。检查提供商卡状态指示灯。"},"legal":{"privacyPolicy":"隐私政策","termsOfService":"服务条款","providerConfigurations":"提供商配置","apiKeys":"API 密钥","usageLogs":"使用日志","applicationSettings":"应用程序设置","viewExportAnalytics":"查看和导出使用情况分析","clearHistory":"随时清除使用记录","configureRetention":"配置日志保留策略","backupRestore":"备份和恢复您的数据库","privacyMetadataTitle":"隐私政策 |全方位路由","privacyMetadataDescription":"OmniRoute AI API 代理路由器的隐私政策。","termsMetadataTitle":"服务条款 |全方位路由","termsMetadataDescription":"OmniRoute AI API 代理路由器的服务条款。","backToHome":"回到家","lastUpdated":"最后更新:{date}","policyLastUpdatedDate":"2026 年 2 月 13 日","listSeparator":"-","questionsVisit":"有问题吗?访问我们的","githubRepository":"GitHub 存储库","privacySection1Title":"1. 本地优先架构","privacySection1Text":"OmniRoute 被设计为本地优先的应用程序。所有数据处理和存储完全发生在您的机器上。没有集中服务器收集您的信息。","privacySection2Title":"2. 我们存储的数据","privacyDataStoredIn":"以下数据存储在本地","privacyDataProviderConfigurationsDesc":"连接 URL、提供程序类型和优先级设置","privacyDataApiKeysDesc":"加密并存储在本地,以便与人工智能提供商进行身份验证","privacyDataUsageLogsDesc":"请求计数、令牌使用情况、模型名称、时间戳和响应时间","privacyDataApplicationSettingsDesc":"主题偏好、路由策略和组合配置","privacySection3Title":"3. 无遥测","privacySection3Text":"OmniRoute 不收集遥测、分析或崩溃报告。不会向我们或任何第三方发送任何数据。您的使用模式、API 调用和配置完全保密。","privacySection4Title":"4. 第三方人工智能提供商","privacySection4Text":"当您通过 OmniRoute 进行 API 调用时,您的请求将转发到您已配置的 AI 提供商(例如:OpenAI、Anthropic、Google)。这些提供商有自己的隐私政策来管理他们如何处理您的数据。请查看:","privacyOpenAiPolicy":"OpenAI 隐私政策","privacyAnthropicPolicy":"人择隐私政策","privacyGooglePolicy":"谷歌隐私政策","privacySection5Title":"5. 云同步(可选)","privacySection5Text":"如果您启用可选的云同步功能,提供商配置和 API 密钥可能会传输到配置的云端点。此功能默认处于禁用状态,需要明确选择加入。","privacySection6Title":"6. 日志记录","privacyLoggingIntro":"可以通过仪表板设置配置请求日志。您可以:","privacySection7Title":"7. 您的权利","privacySection7TextStart":"由于所有数据都存储在本地,因此您拥有完全的控制权。您可以随时删除您的数据,方法是删除","privacySection7TextEnd":"目录或使用仪表板中的数据库备份和恢复功能。","termsSection1Title":"1. 概述","termsSection1Text":"OmniRoute 是本地优先的 AI API 代理路由器,完全在您的计算机上运行。它通过负载平衡、故障转移和使用情况跟踪将请求路由到多个 AI 提供商。","termsSection2Title":"2. 用户的责任","termsResponsibilityApiKeys":"您全权负责管理您自己的 API 密钥和第三方 AI 提供商(OpenAI、Anthropic、Google 等)的凭证。","termsResponsibilityCompliance":"您必须遵守您通过 OmniRoute 访问其 API 的每个 AI 提供商的服务条款。","termsResponsibilitySecurity":"您负责本地 OmniRoute 安装的安全,包括设置密码和限制网络访问。","termsSection3Title":"3. 工作原理","termsSection3Text":"OmniRoute 充当中间代理。发送到 OmniRoute 的 API 调用将被转换并转发到您配置的 AI 提供商。除了必要的协议转换之外,OmniRoute 不会修改您的请求或响应的内容。","termsSection4Title":"4. 数据处理","termsDataStoredLocally":"所有数据都存储在您本地计算机上的 SQLite 数据库中。","termsNoTransmission":"除非您明确启用云同步功能,否则 OmniRoute 不会将任何数据传输到外部服务器。","termsDataLocationText":"使用日志、API 密钥和配置存储在","termsSection5Title":"5. 免责声明","termsSection5Text":"OmniRoute 按“原样”提供,不提供任何形式的保证。我们不对因 API 使用、服务中断或数据丢失而产生的任何费用负责。始终维护配置的备份。","termsSection6Title":"6. 开源","termsSection6Text":"OmniRoute 是开源软件。您可以根据其许可条款自由检查、修改和分发它。"},"media":{"title":"媒体工作台","subtitle":"生成图像、视频和音乐","model":"Model","prompt":"Prompt","generate":"生成","generating":"Generating...","loadingModels":"Loading available models...","noModels":"No models available. Configure providers with media capabilities first.","error":"Generation Failed","result":"Result","imageDescription":"Generate images from text prompts using OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI and more.","videoDescription":"Create videos with AnimateDiff, Stable Video Diffusion via ComfyUI or SD WebUI.","musicDescription":"Compose music using Stable Audio Open or MusicGen via ComfyUI."}}')}};