style: update enterprise card dimensions and self-hosted descriptions

- Set desktop card dimensions: 438px width, 371.5px min-height
- Add rounded-2xl (16px border-radius) and border to cards
- Add separate short description for self-hosted card:
  'Deploy OpenHands on your own infrastructure. Full control over data, compliance, and security.'
- Keep longer description for form page CTA card:
  'Deploy OpenHands on your own infrastructure. Full control over your data, compliance, and security. Ideal for enterprises that require on-premises or private cloud deployment.'
- Add ENTERPRISE$SELF_HOSTED_CARD_DESCRIPTION i18n key with all 15 languages

Co-authored-by: openhands <openhands@all-hands.dev>
This commit is contained in:
openhands
2026-03-19 17:02:46 +00:00
parent 02d0d840ec
commit 2963277639
3 changed files with 24 additions and 2 deletions

View File

@@ -1200,6 +1200,7 @@ export enum I18nKey {
ENTERPRISE$SAAS_FEATURE_AUTO_UPDATES = "ENTERPRISE$SAAS_FEATURE_AUTO_UPDATES",
ENTERPRISE$SELF_HOSTED_TITLE = "ENTERPRISE$SELF_HOSTED_TITLE",
ENTERPRISE$SELF_HOSTED_DESCRIPTION = "ENTERPRISE$SELF_HOSTED_DESCRIPTION",
ENTERPRISE$SELF_HOSTED_CARD_DESCRIPTION = "ENTERPRISE$SELF_HOSTED_CARD_DESCRIPTION",
ENTERPRISE$SELF_HOSTED_FEATURE_ON_PREMISES = "ENTERPRISE$SELF_HOSTED_FEATURE_ON_PREMISES",
ENTERPRISE$SELF_HOSTED_FEATURE_DATA_CONTROL = "ENTERPRISE$SELF_HOSTED_FEATURE_DATA_CONTROL",
ENTERPRISE$SELF_HOSTED_FEATURE_COMPLIANCE = "ENTERPRISE$SELF_HOSTED_FEATURE_COMPLIANCE",

View File

@@ -20405,6 +20405,23 @@
"tr": "OpenHands'i kendi altyapınızda dağıtın. Verileriniz, uyumluluk ve güvenlik üzerinde tam kontrol. Şirket içi veya özel bulut dağıtımı gerektiren işletmeler için idealdir.",
"uk": "Розгорніть OpenHands на власній інфраструктурі. Повний контроль над вашими даними, відповідністю та безпекою. Ідеально для підприємств, які потребують локального або приватного хмарного розгортання."
},
"ENTERPRISE$SELF_HOSTED_CARD_DESCRIPTION": {
"en": "Deploy OpenHands on your own infrastructure. Full control over data, compliance, and security.",
"ja": "独自のインフラストラクチャにOpenHandsをデプロイ。データ、コンプライアンス、セキュリティを完全にコントロール。",
"zh-CN": "在您自己的基础设施上部署 OpenHands。完全控制数据、合规性和安全性。",
"zh-TW": "在您自己的基礎設施上部署 OpenHands。完全控制資料、合規性和安全性。",
"ko-KR": "자체 인프라에 OpenHands를 배포하세요. 데이터, 규정 준수 및 보안을 완벽하게 제어합니다.",
"no": "Distribuer OpenHands på din egen infrastruktur. Full kontroll over data, samsvar og sikkerhet.",
"ar": "انشر OpenHands على البنية التحتية الخاصة بك. تحكم كامل في البيانات والامتثال والأمان.",
"de": "Stellen Sie OpenHands auf Ihrer eigenen Infrastruktur bereit. Volle Kontrolle über Daten, Compliance und Sicherheit.",
"fr": "Déployez OpenHands sur votre propre infrastructure. Contrôle total sur les données, la conformité et la sécurité.",
"it": "Distribuisci OpenHands sulla tua infrastruttura. Controllo completo su dati, conformità e sicurezza.",
"pt": "Implante o OpenHands em sua própria infraestrutura. Controle total sobre dados, conformidade e segurança.",
"es": "Implemente OpenHands en su propia infraestructura. Control total sobre datos, cumplimiento y seguridad.",
"ca": "Desplegueu OpenHands a la vostra pròpia infraestructura. Control total sobre dades, compliment i seguretat.",
"tr": "OpenHands'i kendi altyapınızda dağıtın. Veriler, uyumluluk ve güvenlik üzerinde tam kontrol.",
"uk": "Розгорніть OpenHands на власній інфраструктурі. Повний контроль над даними, відповідністю та безпекою."
},
"ENTERPRISE$SELF_HOSTED_FEATURE_ON_PREMISES": {
"en": "On-premises or private cloud",
"ja": "オンプレミスまたはプライベートクラウド",

View File

@@ -48,7 +48,11 @@ function EnterpriseCard({
learnMoreLabel,
}: EnterpriseCardProps) {
return (
<Card theme="dark" hover="elevated" className="flex-1 flex-col p-6 gap-4">
<Card
theme="dark"
hover="elevated"
className="w-full md:w-[438px] md:min-h-[371.5px] flex-col p-6 gap-4"
>
<div className="w-10 h-10">{icon}</div>
<h3 className="text-lg font-semibold text-white">{title}</h3>
<Text className="text-[#8C8C8C]">{description}</Text>
@@ -143,7 +147,7 @@ export default function InformationRequest() {
<EnterpriseCard
icon={<StackedIcon className="w-10 h-10" />}
title={t(I18nKey.ENTERPRISE$SELF_HOSTED_TITLE)}
description={t(I18nKey.ENTERPRISE$SELF_HOSTED_DESCRIPTION)}
description={t(I18nKey.ENTERPRISE$SELF_HOSTED_CARD_DESCRIPTION)}
features={selfHostedFeatures}
onLearnMore={() => handleLearnMore("self-hosted")}
learnMoreLabel={t(I18nKey.ENTERPRISE$LEARN_MORE)}