feat: rename UCloud provider to Compshare/优云智算 with i18n support

Add optional `nameKey` field to all preset interfaces for localized
display names. The preset selector and form now resolve `nameKey` via
i18next, falling back to `name` when unset.

- zh: 优云智算 / en+ja: Compshare
- Update model ID prefix ucloud/ → compshare/ in OpenClaw presets
- Update partner promotion copy and README sponsor descriptions
This commit is contained in:
Jason
2026-03-10 23:43:23 +08:00
parent 273a756869
commit 0bcbffb8a0
13 changed files with 38 additions and 19 deletions
@@ -1033,7 +1033,7 @@ export function ProviderForm({
resetCodexConfig(auth, config);
form.reset({
name: preset.name,
name: preset.nameKey ? t(preset.nameKey) : preset.name,
websiteUrl: preset.websiteUrl ?? "",
settingsConfig: JSON.stringify({ auth, config }, null, 2),
icon: preset.icon ?? "",
@@ -1050,7 +1050,7 @@ export function ProviderForm({
resetGeminiConfig(env, config);
form.reset({
name: preset.name,
name: preset.nameKey ? t(preset.nameKey) : preset.name,
websiteUrl: preset.websiteUrl ?? "",
settingsConfig: JSON.stringify(preset.settingsConfig, null, 2),
icon: preset.icon ?? "",
@@ -1078,7 +1078,7 @@ export function ProviderForm({
opencodeForm.resetOpencodeState(config);
form.reset({
name: preset.name,
name: preset.nameKey ? t(preset.nameKey) : preset.name,
websiteUrl: preset.websiteUrl ?? "",
settingsConfig: JSON.stringify(config, null, 2),
icon: preset.icon ?? "",
@@ -1105,7 +1105,7 @@ export function ProviderForm({
// Update form fields
form.reset({
name: preset.name,
name: preset.nameKey ? t(preset.nameKey) : preset.name,
websiteUrl: preset.websiteUrl ?? "",
settingsConfig: JSON.stringify(config, null, 2),
icon: preset.icon ?? "",
@@ -1129,7 +1129,7 @@ export function ProviderForm({
setLocalApiKeyField(preset.apiKeyField ?? "ANTHROPIC_AUTH_TOKEN");
form.reset({
name: preset.name,
name: preset.nameKey ? t(preset.nameKey) : preset.name,
websiteUrl: preset.websiteUrl ?? "",
settingsConfig: JSON.stringify(config, null, 2),
icon: preset.icon ?? "",
@@ -159,7 +159,9 @@ export function ProviderPresetSelector({
}
>
{renderPresetIcon(entry.preset)}
{entry.preset.name}
{entry.preset.nameKey
? t(entry.preset.nameKey)
: entry.preset.name}
{isPartner && (
<span className="absolute -top-1 -right-1 flex items-center gap-0.5 rounded-full bg-gradient-to-r from-amber-500 to-yellow-500 px-1.5 py-0.5 text-[10px] font-bold text-white shadow-md">
<Star className="h-2.5 w-2.5 fill-current" />