Files
zeekayandGitHub e20dc71ad8 i18n: /s* to /z*, the app's rooms and settings read their copy through t (#69)
The product pages from /s3 to /zap, /university and its course data,
/trust, /security, /sdks, /support, /tasks, /startups, /sms-opt-in, the
buying specialist, Zen, Kai's guide, Studio, the settings pages, and the
shared sales, solutions, zap and ui pieces. Client code draws with t(),
server components with <T>, copy held as data is marked with phrase()
and drawn through t() where it lands. A link or a figure inside a
sentence is a value, so a translator reorders the whole sentence.

Rebased on main: every page main moved onto Fold or Steps keeps main's
layout, with its words wrapped (label, title, lede, points). Steps now
draws a step's body through t, as it already drew the title. Settings
keeps main's usage panel, refresh, rewards wallet and sign-in wallet
rows, each label wrapped.

Left English: the skills page's install line (a command and two URLs),
and the solution eyebrow and sibling heading built from a kind label.

Claude-Session: https://claude.ai/code/session_015XYKLjZtDTJEnMo4eK3AFH
2026-10-29 23:51:44 -07:00

53 lines
2.4 KiB
TypeScript

'use client'
import { Box, XStack, YStack } from '@hanzo/ui'
import { Grid } from '@hanzo/ui/grid'
import { Action, Display, Leaf, Lede, Line } from '@hanzo/ui/marketing'
import { Band, Head } from '@/components/marketing/band'
import Rack from '@/components/enterprise/Rack'
import { phrase } from '@hanzo/i18n'
import { useI18n } from '@hanzo/i18n/react'
const POINTS = [
[phrase('One name'), phrase('You call Zen 6 Max. You never choose among the models behind it.')],
[phrase('The right specialist, per request'), phrase('Enso reads each request and runs it on the specialist built for that kind of work, transparently.')],
[phrase('Long context'), phrase('A long context, for large codebases and long documents.')],
[phrase('Tools and code'), phrase('Tool calls and code, built in.')],
] as const
export default function MaxView() {
const { t } = useI18n()
return (
<Box minH="100vh" $platform-web={{ color: 'var(--foreground)' }}>
<Band rule={false} pad="$14" measure={1000}>
<YStack gap={24} items="center" $platform-web={{ textAlign: 'center' }}>
<Display render="h1" fontSize="3rem" $lg={{ fontSize: '5rem' }}>Zen 6 Max</Display>
<Lede maxW={720}>
{t('{n} trillion parameters across a routed fusion. Each request runs on the specialist Enso picks, so it behaves as one model.', { n: '3.7' })}
</Lede>
<XStack gap={16} flexWrap="wrap" justify="center">
<Action href="/contact-sales" fill>{t('Talk to sales')}</Action>
<Action href="/enterprise">{t('Run it on your own GPUs')}</Action>
</XStack>
</YStack>
</Band>
<Band pad="$10" measure={1152}>
<Grid columns={{ min: 240, max: 4 }} gap={16}>
{POINTS.map(([title, body]) => (
<Leaf key={title} p={24} borderColor="var(--border)">
<Line render="h3" display="block" mb={8} fontSize="$4" lineHeight="1.4" fontWeight="600" color="var(--foreground)">{t(title)}</Line>
<Line render="p" display="block" fontSize="$2" lineHeight="1.5" color="var(--muted-foreground)">{t(body)}</Line>
</Leaf>
))}
</Grid>
</Band>
<Band id="deploy" pad="$10" measure={1100}>
<Head eyebrow={phrase('Enterprise deployment')} title={t('On your own premises')} lede={t('What a rack for Zen 6 Max is made of.')} />
<Rack ask />
</Band>
</Box>
)
}