Develop - #4713
Conversation
WalkthroughThe PR updates the product's localization strategy and branding by disabling automatic browser language detection, establishing English as the default language, changing the theme default to dark mode, removing footer attribution components from both UI implementations, and refreshing marketing copy with new brand messaging across six languages. ChangesUI Localization & Branding Strategy
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Tip 💬 Introducing Slack Agent: The best way for teams to turn conversations into code.Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.
Built for teams:
One agent for your entire SDLC. Right inside Slack. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment Warning |
|
调整首页文案,优化版权信息与格式 |
There was a problem hiding this comment.
Actionable comments posted: 9
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
CLAUDE.md (1)
125-137:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winFix rule numbering gap (Rule 5 → Rule 7).
Line 135 should be renumbered to keep sequential rule references consistent; current numbering skips Rule 6 and can cause confusion in cross-references.
Proposed doc fix
-### Rule 7: Billing Expression System — Read `pkg/billingexpr/expr.md` +### Rule 6: Billing Expression System — Read `pkg/billingexpr/expr.md`🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@CLAUDE.md` around lines 125 - 137, The rules numbering jumps from "Rule 5" to "Rule 7"; update the heading and any internal references so the sequence is contiguous by renaming "Rule 7: Billing Expression System — Read `pkg/billingexpr/expr.md`" to "Rule 6: Billing Expression System — Read `pkg/billingexpr/expr.md`" and adjust any mentions of "Rule 7" elsewhere in the document to "Rule 6" to keep cross-references consistent (look for the exact heading text "Billing Expression System — Read `pkg/billingexpr/expr.md`" and any inline references to "Rule 7").
🧹 Nitpick comments (1)
web/default/src/components/layout/components/footer.tsx (1)
25-29: ⚡ Quick winPrefer deleting commented-out attribution code instead of keeping it inline.
Lines 25-29 and 59-78 leave large dead blocks that make future edits noisier. If attribution is intentionally removed, delete these blocks and rely on git history for recovery.
Also applies to: 59-78
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@web/default/src/components/layout/components/footer.tsx` around lines 25 - 29, Remove the dead commented-out attribution constant and any other large commented blocks in footer.tsx (specifically the commented NEW_API_FOOTER_ATTRIBUTION_KEY declaration and the subsequent commented attribution block around lines 59-78); delete these commented lines from the Footer component so the file contains only active code (rely on git history to recover if needed) and ensure no remaining references to NEW_API_FOOTER_ATTRIBUTION_KEY linger in functions like Footer or related helpers.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@web/default/src/components/layout/components/footer.tsx`:
- Around line 167-169: The empty attribution wrapper div in the Footer component
(the <div> with class 'border-border/60 w-full border-t pt-4 sm:w-auto
sm:border-t-0 sm:border-l sm:pt-0 sm:pl-5') is leaving stray divider and padding
after ProjectAttribution was removed; delete that wrapper (or conditionally
render it only when ProjectAttribution/currentYear is present) inside the Footer
component so the left border and sm padding are not output when there's no
attribution content.
In `@web/default/src/context/theme-provider.tsx`:
- Line 14: The DEFAULT_THEME constant was changed to 'dark', causing new users
to get dark mode regardless of OS preferences; revert DEFAULT_THEME back to
'system' so the existing getSystemTheme() logic in theme-provider.tsx and the
ThemeProvider component can detect and honor OS accessibility settings on first
visit (keep cookie/persist logic as-is).
In `@web/default/src/i18n/locales/en.json`:
- Line 2057: The localized value for the key "is an open-source AI API gateway
for self-hosted deployments. Connect multiple upstream services, manage models,
keys, quotas, logs, and routing policies in one place." has a leading space;
remove that leading whitespace so the value starts with "is the unified AI API
gateway..." (update the value string in en.json to trim the initial space) to
prevent inconsistent UI spacing when concatenating or rendering this copy.
In `@web/default/src/i18n/locales/fr.json`:
- Line 2057: The French translation for the key "is an open-source AI API
gateway for self-hosted deployments. Connect multiple upstream services, manage
models, keys, quotas, logs, and routing policies in one place." contains an
unintended leading space before "est"; remove that leading whitespace so the
value starts with "est" (no leading space) in
web/default/src/i18n/locales/fr.json to avoid awkward spacing when concatenated
in the UI.
In `@web/default/src/i18n/locales/ja.json`:
- Line 259: The Japanese translation for the key "All Your AI Models" is
currently a verb phrase ("私たちはAIモデルを集約する") and should be replaced with a concise
noun-style heading; update the value for the key "All Your AI Models" to a
natural short phrase such as "すべてのAIモデル" or "あなたのAIモデル" so it reads like a
heading rather than a sentence.
- Line 4062: The translation for the key "Unified API Gateway for" was replaced
with an unrelated sentence and breaks the composed homepage phrase; update the
value for the "Unified API Gateway for" key in ja.json so it is a short fragment
that composes naturally with the existing "your AI integration?" string (e.g. a
phrase like "…のための統合APIゲートウェイ" or similar natural Japanese fragment), keeping
tone and punctuation consistent with the surrounding keys.
In `@web/default/src/i18n/locales/vi.json`:
- Line 2057: The localized Vietnamese value for the key "is an open-source AI
API gateway for self-hosted deployments. Connect multiple upstream services,
manage models, keys, quotas, logs, and routing policies in one place." contains
an unintended leading space; remove that leading whitespace so the value begins
with "là cổng API..." (update the value associated with that exact key in
vi.json) to prevent double-spacing when concatenated.
- Line 4062: The translation for the key "Unified API Gateway for" was replaced
with a full slogan, breaking composition with the adjacent "your AI
integration?" key; change the value of "Unified API Gateway for" back to a
fragment that composes with other keys (e.g., a literal phrase like "Cổng API
hợp nhất cho" or another concise fragment) so UI concatenation with "your AI
integration?" renders a coherent sentence; update the value for the "Unified API
Gateway for" key only and keep "your AI integration?" unchanged.
In `@web/default/src/i18n/locales/zh.json`:
- Line 2057: The Chinese translation for the key "is an open-source AI API
gateway for self-hosted deployments. Connect multiple upstream services, manage
models, keys, quotas, logs, and routing policies in one place." contains a
leading space before "是统一…"; remove that leading whitespace so the value begins
with the first Chinese character, and ensure no trailing whitespace remains.
Apply the same fix to the identical key in the other locale files (en.json,
fr.json, ja.json, ru.json, vi.json) and run a quick whitespace trim verification
across locale values to prevent similar issues.
---
Outside diff comments:
In `@CLAUDE.md`:
- Around line 125-137: The rules numbering jumps from "Rule 5" to "Rule 7";
update the heading and any internal references so the sequence is contiguous by
renaming "Rule 7: Billing Expression System — Read `pkg/billingexpr/expr.md`" to
"Rule 6: Billing Expression System — Read `pkg/billingexpr/expr.md`" and adjust
any mentions of "Rule 7" elsewhere in the document to "Rule 6" to keep
cross-references consistent (look for the exact heading text "Billing Expression
System — Read `pkg/billingexpr/expr.md`" and any inline references to "Rule 7").
---
Nitpick comments:
In `@web/default/src/components/layout/components/footer.tsx`:
- Around line 25-29: Remove the dead commented-out attribution constant and any
other large commented blocks in footer.tsx (specifically the commented
NEW_API_FOOTER_ATTRIBUTION_KEY declaration and the subsequent commented
attribution block around lines 59-78); delete these commented lines from the
Footer component so the file contains only active code (rely on git history to
recover if needed) and ensure no remaining references to
NEW_API_FOOTER_ATTRIBUTION_KEY linger in functions like Footer or related
helpers.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 7d35bc79-a023-4a6e-bc6c-a916fdab478f
📒 Files selected for processing (12)
CLAUDE.mdweb/classic/src/components/layout/Footer.jsxweb/classic/src/i18n/i18n.jsweb/default/src/components/layout/components/footer.tsxweb/default/src/context/theme-provider.tsxweb/default/src/i18n/config.tsweb/default/src/i18n/locales/en.jsonweb/default/src/i18n/locales/fr.jsonweb/default/src/i18n/locales/ja.jsonweb/default/src/i18n/locales/ru.jsonweb/default/src/i18n/locales/vi.jsonweb/default/src/i18n/locales/zh.json
| <div className='border-border/60 w-full border-t pt-4 sm:w-auto sm:border-t-0 sm:border-l sm:pt-0 sm:pl-5'> | ||
| <ProjectAttribution currentYear={currentYear} /> | ||
| {/* <ProjectAttribution currentYear={currentYear} /> */} | ||
| </div> |
There was a problem hiding this comment.
Remove the now-empty attribution wrapper to avoid stray divider spacing.
At Line 168 the attribution render is gone, but the wrapper at Lines 167-169 still adds border-l/padding in sm layouts, leaving empty visual space.
Suggested diff
- <div className='border-border/60 w-full border-t pt-4 sm:w-auto sm:border-t-0 sm:border-l sm:pt-0 sm:pl-5'>
- {/* <ProjectAttribution currentYear={currentYear} /> */}
- </div>
+ {/* attribution removed */}📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| <div className='border-border/60 w-full border-t pt-4 sm:w-auto sm:border-t-0 sm:border-l sm:pt-0 sm:pl-5'> | |
| <ProjectAttribution currentYear={currentYear} /> | |
| {/* <ProjectAttribution currentYear={currentYear} /> */} | |
| </div> | |
| {/* attribution removed */} |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@web/default/src/components/layout/components/footer.tsx` around lines 167 -
169, The empty attribution wrapper div in the Footer component (the <div> with
class 'border-border/60 w-full border-t pt-4 sm:w-auto sm:border-t-0 sm:border-l
sm:pt-0 sm:pl-5') is leaving stray divider and padding after ProjectAttribution
was removed; delete that wrapper (or conditionally render it only when
ProjectAttribution/currentYear is present) inside the Footer component so the
left border and sm padding are not output when there's no attribution content.
| type ResolvedTheme = Exclude<Theme, 'system'> | ||
|
|
||
| const DEFAULT_THEME = 'system' | ||
| const DEFAULT_THEME = 'dark' |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
cat -n web/default/src/context/theme-provider.tsxRepository: QuantumNous/new-api
Length of output: 4219
Default theme forces dark mode, ignoring OS accessibility preferences.
Changing the default theme from 'system' to 'dark' means the application no longer respects operating system preferences on first visit. Users who have configured their OS to light mode for accessibility reasons (photosensitivity, visual impairments, readability) will be served dark mode by default.
While the code fully supports respecting system preferences (getSystemTheme() on line 43 properly detects OS settings, and users can manually change the theme via persisted cookies), this change degrades the initial user experience for accessibility-conscious users.
Consider reverting to DEFAULT_THEME = 'system' to honor user accessibility preferences by default.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@web/default/src/context/theme-provider.tsx` at line 14, The DEFAULT_THEME
constant was changed to 'dark', causing new users to get dark mode regardless of
OS preferences; revert DEFAULT_THEME back to 'system' so the existing
getSystemTheme() logic in theme-provider.tsx and the ThemeProvider component can
detect and honor OS accessibility settings on first visit (keep cookie/persist
logic as-is).
| "IP Restriction": "IP Restriction", | ||
| "IP Whitelist (supports CIDR)": "IP Whitelist (supports CIDR)", | ||
| "is an open-source AI API gateway for self-hosted deployments. Connect multiple upstream services, manage models, keys, quotas, logs, and routing policies in one place.": "is an open-source AI API gateway for self-hosted deployments. Connect multiple upstream services, manage models, keys, quotas, logs, and routing policies in one place.", | ||
| "is an open-source AI API gateway for self-hosted deployments. Connect multiple upstream services, manage models, keys, quotas, logs, and routing policies in one place.": " is the unified AI API gateway that connects and orchestrates multiple LLM providers. Easily manage models, keys, quotas, logs, and routing in one place.", |
There was a problem hiding this comment.
Remove the leading whitespace in this localized value.
Line 2057 starts with a literal space, which can produce inconsistent spacing in UI copy depending on how the string is composed.
💡 Suggested fix
- "is an open-source AI API gateway for self-hosted deployments. Connect multiple upstream services, manage models, keys, quotas, logs, and routing policies in one place.": " is the unified AI API gateway that connects and orchestrates multiple LLM providers. Easily manage models, keys, quotas, logs, and routing in one place.",
+ "is an open-source AI API gateway for self-hosted deployments. Connect multiple upstream services, manage models, keys, quotas, logs, and routing policies in one place.": "is the unified AI API gateway that connects and orchestrates multiple LLM providers. Easily manage models, keys, quotas, logs, and routing in one place.",🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@web/default/src/i18n/locales/en.json` at line 2057, The localized value for
the key "is an open-source AI API gateway for self-hosted deployments. Connect
multiple upstream services, manage models, keys, quotas, logs, and routing
policies in one place." has a leading space; remove that leading whitespace so
the value starts with "is the unified AI API gateway..." (update the value
string in en.json to trim the initial space) to prevent inconsistent UI spacing
when concatenating or rendering this copy.
| "IP Restriction": "Restriction IP", | ||
| "IP Whitelist (supports CIDR)": "Liste blanche IP (supporte CIDR)", | ||
| "is an open-source AI API gateway for self-hosted deployments. Connect multiple upstream services, manage models, keys, quotas, logs, and routing policies in one place.": "est une passerelle API IA open source pour les déploiements auto-hébergés. Connectez plusieurs services en amont et gérez au même endroit les modèles, les clés, les quotas, les journaux et les politiques de routage.", | ||
| "is an open-source AI API gateway for self-hosted deployments. Connect multiple upstream services, manage models, keys, quotas, logs, and routing policies in one place.": " est la passerelle API IA unifiée qui connecte et orchestre plusieurs fournisseurs de LLM. Gérez facilement les modèles, les clés, les quotas, les logs et le routage en un seul endroit.", |
There was a problem hiding this comment.
Remove unintended leading whitespace in translated sentence.
Line 2057 starts with a leading space (" est..."), which can render with awkward spacing depending on how the sentence is concatenated in the UI.
✂️ Suggested fix
- "is an open-source AI API gateway for self-hosted deployments. Connect multiple upstream services, manage models, keys, quotas, logs, and routing policies in one place.": " est la passerelle API IA unifiée qui connecte et orchestre plusieurs fournisseurs de LLM. Gérez facilement les modèles, les clés, les quotas, les logs et le routage en un seul endroit.",
+ "is an open-source AI API gateway for self-hosted deployments. Connect multiple upstream services, manage models, keys, quotas, logs, and routing policies in one place.": "est la passerelle API IA unifiée qui connecte et orchestre plusieurs fournisseurs de LLM. Gérez facilement les modèles, les clés, les quotas, les logs et le routage en un seul endroit.",🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@web/default/src/i18n/locales/fr.json` at line 2057, The French translation
for the key "is an open-source AI API gateway for self-hosted deployments.
Connect multiple upstream services, manage models, keys, quotas, logs, and
routing policies in one place." contains an unintended leading space before
"est"; remove that leading whitespace so the value starts with "est" (no leading
space) in web/default/src/i18n/locales/fr.json to avoid awkward spacing when
concatenated in the UI.
| "All upstream data is trusted": "すべてのアップストリームデータは信頼されています", | ||
| "All Vendors": "すべてのベンダー", | ||
| "All Your AI Models": "すべてのAIモデル", | ||
| "All Your AI Models": "私たちはAIモデルを集約する", |
There was a problem hiding this comment.
Japanese tagline wording is awkward for this key
Line 259 currently reads like “we aggregate AI models,” which is less natural for a short heading fragment. A noun-style translation would fit better.
💡 Suggested tweak
- "All Your AI Models": "私たちはAIモデルを集約する",
+ "All Your AI Models": "すべてのAIモデルを一つに",🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@web/default/src/i18n/locales/ja.json` at line 259, The Japanese translation
for the key "All Your AI Models" is currently a verb phrase ("私たちはAIモデルを集約する")
and should be replaced with a concise noun-style heading; update the value for
the key "All Your AI Models" to a natural short phrase such as "すべてのAIモデル" or
"あなたのAIモデル" so it reads like a heading rather than a sentence.
| "Understand image inputs alongside text": "テキストとともに画像入力を理解", | ||
| "Unexpected release payload": "予期しないリリースデータ", | ||
| "Unified API Gateway for": "統合APIゲートウェイ -", | ||
| "Unified API Gateway for": "AIは世界を再形成する", |
There was a problem hiding this comment.
Homepage fragment likely breaks composed sentence
Line 4062 no longer translates the key meaning (“Unified API Gateway for”). If this fragment is combined with the existing "your AI integration?" string, the rendered Japanese copy becomes inconsistent/nonsensical.
🛠️ Suggested fix
- "Unified API Gateway for": "AIは世界を再形成する",
+ "Unified API Gateway for": "統合APIゲートウェイで、",📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "Unified API Gateway for": "AIは世界を再形成する", | |
| "Unified API Gateway for": "統合APIゲートウェイで、", |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@web/default/src/i18n/locales/ja.json` at line 4062, The translation for the
key "Unified API Gateway for" was replaced with an unrelated sentence and breaks
the composed homepage phrase; update the value for the "Unified API Gateway for"
key in ja.json so it is a short fragment that composes naturally with the
existing "your AI integration?" string (e.g. a phrase like "…のための統合APIゲートウェイ" or
similar natural Japanese fragment), keeping tone and punctuation consistent with
the surrounding keys.
| "IP Restriction": "Giới hạn IP", | ||
| "IP Whitelist (supports CIDR)": "Danh sách trắng IP (hỗ trợ CIDR)", | ||
| "is an open-source AI API gateway for self-hosted deployments. Connect multiple upstream services, manage models, keys, quotas, logs, and routing policies in one place.": "là cổng API AI mã nguồn mở dành cho triển khai tự lưu trữ. Kết nối nhiều dịch vụ thượng nguồn, quản lý mô hình, khóa, hạn mức, nhật ký và chính sách định tuyến tại một nơi.", | ||
| "is an open-source AI API gateway for self-hosted deployments. Connect multiple upstream services, manage models, keys, quotas, logs, and routing policies in one place.": " là cổng API AI thống nhất kết nối và điều phối nhiều nhà cung cấp LLM. Dễ dàng quản lý mô hình, khóa, hạn mức, nhật ký và định tuyến chỉ trong một nơi.", |
There was a problem hiding this comment.
Remove unintended leading whitespace in localized value
Line 2057 starts with a leading space. This can produce double-spacing or inconsistent rendering depending on how the string is concatenated.
Suggested fix
- "is an open-source AI API gateway for self-hosted deployments. Connect multiple upstream services, manage models, keys, quotas, logs, and routing policies in one place.": " là cổng API AI thống nhất kết nối và điều phối nhiều nhà cung cấp LLM. Dễ dàng quản lý mô hình, khóa, hạn mức, nhật ký và định tuyến chỉ trong một nơi.",
+ "is an open-source AI API gateway for self-hosted deployments. Connect multiple upstream services, manage models, keys, quotas, logs, and routing policies in one place.": "là cổng API AI thống nhất kết nối và điều phối nhiều nhà cung cấp LLM. Dễ dàng quản lý mô hình, khóa, hạn mức, nhật ký và định tuyến chỉ trong một nơi.",📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "is an open-source AI API gateway for self-hosted deployments. Connect multiple upstream services, manage models, keys, quotas, logs, and routing policies in one place.": " là cổng API AI thống nhất kết nối và điều phối nhiều nhà cung cấp LLM. Dễ dàng quản lý mô hình, khóa, hạn mức, nhật ký và định tuyến chỉ trong một nơi.", | |
| "is an open-source AI API gateway for self-hosted deployments. Connect multiple upstream services, manage models, keys, quotas, logs, and routing policies in one place.": "là cổng API AI thống nhất kết nối và điều phối nhiều nhà cung cấp LLM. Dễ dàng quản lý mô hình, khóa, hạn mức, nhật ký và định tuyến chỉ trong một nơi.", |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@web/default/src/i18n/locales/vi.json` at line 2057, The localized Vietnamese
value for the key "is an open-source AI API gateway for self-hosted deployments.
Connect multiple upstream services, manage models, keys, quotas, logs, and
routing policies in one place." contains an unintended leading space; remove
that leading whitespace so the value begins with "là cổng API..." (update the
value associated with that exact key in vi.json) to prevent double-spacing when
concatenated.
| "Understand image inputs alongside text": "Hiểu hình ảnh cùng với văn bản", | ||
| "Unexpected release payload": "Dữ liệu phiên bản không mong đợi", | ||
| "Unified API Gateway for": "Cổng API thống nhất cho", | ||
| "Unified API Gateway for": "AI tái định hình thế giới", |
There was a problem hiding this comment.
Restore semantic alignment for split heading text
Line 4062 changes "Unified API Gateway for" to a slogan ("AI tái định hình thế giới"), which likely breaks composed UI text with the existing "your AI integration?" key and produces an incoherent sentence.
Suggested fix
- "Unified API Gateway for": "AI tái định hình thế giới",
+ "Unified API Gateway for": "Cổng API thống nhất cho",📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "Unified API Gateway for": "AI tái định hình thế giới", | |
| "Unified API Gateway for": "Cổng API thống nhất cho", |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@web/default/src/i18n/locales/vi.json` at line 4062, The translation for the
key "Unified API Gateway for" was replaced with a full slogan, breaking
composition with the adjacent "your AI integration?" key; change the value of
"Unified API Gateway for" back to a fragment that composes with other keys
(e.g., a literal phrase like "Cổng API hợp nhất cho" or another concise
fragment) so UI concatenation with "your AI integration?" renders a coherent
sentence; update the value for the "Unified API Gateway for" key only and keep
"your AI integration?" unchanged.
| "IP Restriction": "IP 限制", | ||
| "IP Whitelist (supports CIDR)": "IP 白名单(支持 CIDR 表达式)", | ||
| "is an open-source AI API gateway for self-hosted deployments. Connect multiple upstream services, manage models, keys, quotas, logs, and routing policies in one place.": "是一个用于自托管部署的开源 AI API 网关。接入多家上游服务,并集中管理模型、密钥、额度、日志与路由策略。", | ||
| "is an open-source AI API gateway for self-hosted deployments. Connect multiple upstream services, manage models, keys, quotas, logs, and routing policies in one place.": " 是统一的大模型 API 网关,聚合多家 LLM 服务商。在一个平台内轻松管理模型、密钥、配额、日志和路由策略。", |
There was a problem hiding this comment.
Remove leading space in translation value.
The Chinese translation value starts with a space character (" 是统一的大模型..."), which is inconsistent with standard translation formatting and may cause unexpected spacing in the UI.
According to the AI summary, this same leading space issue appears in the corresponding translations in en.json, fr.json, ja.json, ru.json, and vi.json files. Please verify and fix across all affected locale files.
🔧 Proposed fix
- "is an open-source AI API gateway for self-hosted deployments. Connect multiple upstream services, manage models, keys, quotas, logs, and routing policies in one place.": " 是统一的大模型 API 网关,聚合多家 LLM 服务商。在一个平台内轻松管理模型、密钥、配额、日志和路由策略。",
+ "is an open-source AI API gateway for self-hosted deployments. Connect multiple upstream services, manage models, keys, quotas, logs, and routing policies in one place.": "是统一的大模型 API 网关,聚合多家 LLM 服务商。在一个平台内轻松管理模型、密钥、配额、日志和路由策略。",📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "is an open-source AI API gateway for self-hosted deployments. Connect multiple upstream services, manage models, keys, quotas, logs, and routing policies in one place.": " 是统一的大模型 API 网关,聚合多家 LLM 服务商。在一个平台内轻松管理模型、密钥、配额、日志和路由策略。", | |
| "is an open-source AI API gateway for self-hosted deployments. Connect multiple upstream services, manage models, keys, quotas, logs, and routing policies in one place.": "是统一的大模型 API 网关,聚合多家 LLM 服务商。在一个平台内轻松管理模型、密钥、配额、日志和路由策略。", |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@web/default/src/i18n/locales/zh.json` at line 2057, The Chinese translation
for the key "is an open-source AI API gateway for self-hosted deployments.
Connect multiple upstream services, manage models, keys, quotas, logs, and
routing policies in one place." contains a leading space before "是统一…"; remove
that leading whitespace so the value begins with the first Chinese character,
and ensure no trailing whitespace remains. Apply the same fix to the identical
key in the other locale files (en.json, fr.json, ja.json, ru.json, vi.json) and
run a quick whitespace trim verification across locale values to prevent similar
issues.
Important
📝 变更描述 / Description
调整首页文案,优化版权信息与格式
🚀 变更类型 / Type of change
🔗 关联任务 / Related Issue
✅ 提交前检查项 / Checklist
Bug fix,我已提交或关联对应 Issue,且不会将设计取舍、预期不一致或理解偏差直接归类为 bug。📸 运行证明 / Proof of Work
(请在此粘贴截图、关键日志或测试报告,以证明变更生效)
Summary by CodeRabbit
Documentation
Style
Configuration
Localization