diff --git a/src/components/VoiceDownload.astro b/src/components/VoiceDownload.astro
index c7dae1c..42e90f3 100644
--- a/src/components/VoiceDownload.astro
+++ b/src/components/VoiceDownload.astro
@@ -242,7 +242,7 @@ const allCls =
{entries.map((e) => (
-
+
))}
{/* The last line, and the only one that isn't a download: every
diff --git a/src/components/VoiceDownloadAll.astro b/src/components/VoiceDownloadAll.astro
index c36a2a2..d351e0d 100644
--- a/src/components/VoiceDownloadAll.astro
+++ b/src/components/VoiceDownloadAll.astro
@@ -81,7 +81,7 @@ const groups = buildGroups(
{group.rows.map((row) => (
-
+
))}
{/* Only Windows has a note, and it is about the two direct .exe rows
diff --git a/src/components/VoiceDownloadRow.astro b/src/components/VoiceDownloadRow.astro
index 17fd103..30d425e 100644
--- a/src/components/VoiceDownloadRow.astro
+++ b/src/components/VoiceDownloadRow.astro
@@ -10,7 +10,6 @@
// of component imports.
import { Apple, Package, AppWindow } from '@lucide/astro';
import StoreBadge from './StoreBadge.astro';
-import type { UIStrings } from '../lib/i18n';
import { resolveLocale } from '../lib/i18n';
import { badgeStoreFor } from '../lib/badges';
import type { DownloadGroup, DownloadRow, PlatformGroupKey } from '../lib/voice-download-groups';
@@ -19,7 +18,6 @@ import { rowAvailable } from '../lib/voice-download-groups';
interface Props {
group: DownloadGroup;
row: DownloadRow;
- ui: UIStrings;
/**
* `menu` rows carry `data-dl-alt*`, which the promotion script uses to
* hide whichever row the button is already offering. Grid rows carry
@@ -30,7 +28,7 @@ interface Props {
/** Menu only: whether this row starts hidden because it is the SSR primary. */
hidden?: boolean;
}
-const { group, row, ui, context, hidden = false } = Astro.props;
+const { group, row, context, hidden = false } = Astro.props;
// The icon earns its place in the menu, where rows from all three systems
// sit in one list and it is what tells them apart at a glance. In the grid
@@ -85,17 +83,6 @@ const avail = rowAvailable(row);
const rowCls =
'w-full cursor-pointer items-center gap-2.5 rounded border-0 bg-transparent px-3 py-2 text-left transition-colors hover:bg-gray-100 dark:hover:bg-white/5';
-
-// `shrink-0 whitespace-nowrap` — the label beside it wraps in several
-// languages, and a two-line pill looks broken.
-// Inline rather than a flex sibling of the label. As a sibling it was laid
-// out beside the whole label, so a label that wrapped to two lines pushed
-// the pill out to the row's right edge with a gap in between; inline, it
-// simply follows the last word wherever that lands. `align-middle` because
-// its font is smaller than the label's, and `whitespace-nowrap` so the pill
-// itself is never the thing that breaks.
-const tagCls =
- 'ml-1.5 inline-block rounded-full bg-gray-100 px-1.5 py-0.5 align-middle text-[10px] font-semibold whitespace-nowrap uppercase tracking-wide text-gray-500 dark:bg-white/10 dark:text-gray-400';
---
{/* Each row is WRAPPED so promoting a platform toggles the wrapper while
@@ -122,7 +109,7 @@ const tagCls =
) : (
- {row.label}{group.windows && {ui.dlEarly}}
+ {row.label}
)}
{/* The size is ours to state only for a file we publish. A store row
@@ -144,12 +131,7 @@ const tagCls =
context === 'menu' && 'sm:whitespace-nowrap',
]}
>
- {row.arch}{row.dl &&
· {row.dl.size}}{/*
- The Early tag rides the label on a normal row, but a badge row has
- no label — the artwork is fixed and may not be annotated. So on
- those rows it moves down here, which keeps the claim on the page
- for the Microsoft Store row instead of quietly dropping it. */}
- {badgeStore && group.windows &&
{ui.dlEarly}}
+ {row.arch}{row.dl &&
· {row.dl.size}}
diff --git a/src/lib/i18n.ts b/src/lib/i18n.ts
index 44714f4..d99aa43 100644
--- a/src/lib/i18n.ts
+++ b/src/lib/i18n.ts
@@ -246,8 +246,6 @@ export interface UIStrings {
dlArchMsStore: string;
dlArchWindowsX64: string;
dlArchWindowsArm64: string;
- /** Tag on the Windows choices: shipped, but younger than the others. */
- dlEarly: string;
/**
* Caveat on the two direct .exe rows — NOT on Windows as a whole. The
* Microsoft Store package is signed, so the sentence has to say which
@@ -342,7 +340,6 @@ const strings: Record
= {
dlArchMsStore: 'Windows 10 & 11, Intel, AMD & ARM',
dlArchWindowsX64: 'Windows 10 & 11, Intel & AMD (x64)',
dlArchWindowsArm64: 'Windows 11, Snapdragon (ARM64)',
- dlEarly: 'Early',
dlWindowsUnsigned:
"The direct Windows downloads aren't code-signed, so Windows warns on first launch. The Microsoft Store version is signed.",
dlWindowsUnsignedLink: 'How to get past it',
@@ -397,7 +394,6 @@ const strings: Record = {
dlArchMsStore: 'Windows 10 与 11,Intel、AMD 与 ARM',
dlArchWindowsX64: 'Windows 10 与 11,Intel 与 AMD(x64)',
dlArchWindowsArm64: 'Windows 11,骁龙(ARM64)',
- dlEarly: '早期版本',
dlWindowsUnsigned:
'直接下载的 Windows 版尚未进行代码签名,首次启动时系统会弹出提醒;Microsoft Store 版本已签名。',
dlWindowsUnsignedLink: '如何继续安装',
diff --git a/src/lib/ui/de.ts b/src/lib/ui/de.ts
index a1bfc0e..6185c1a 100644
--- a/src/lib/ui/de.ts
+++ b/src/lib/ui/de.ts
@@ -29,7 +29,6 @@ export const ui: UIStrings = {
dlArchMsStore: 'Windows 10 & 11, Intel, AMD & ARM',
dlArchWindowsX64: 'Windows 10 & 11, Intel & AMD (x64)',
dlArchWindowsArm64: 'Windows 11, Snapdragon (ARM64)',
- dlEarly: 'Früh',
dlWindowsUnsigned:
'Die direkten Windows-Downloads sind nicht signiert, deshalb warnt Windows beim ersten Start. Die Version aus dem Microsoft Store ist signiert.',
dlWindowsUnsignedLink: 'So kommen Sie daran vorbei',
diff --git a/src/lib/ui/es.ts b/src/lib/ui/es.ts
index 7da4254..5be6452 100644
--- a/src/lib/ui/es.ts
+++ b/src/lib/ui/es.ts
@@ -29,7 +29,6 @@ export const ui: UIStrings = {
dlArchMsStore: 'Windows 10 y 11, Intel, AMD y ARM',
dlArchWindowsX64: 'Windows 10 y 11, Intel y AMD (x64)',
dlArchWindowsArm64: 'Windows 11, Snapdragon (ARM64)',
- dlEarly: 'Inicial',
dlWindowsUnsigned:
'Las descargas directas para Windows no están firmadas, así que Windows avisa al abrirlas por primera vez. La versión de Microsoft Store sí está firmada.',
dlWindowsUnsignedLink: 'Cómo continuar',
diff --git a/src/lib/ui/fr.ts b/src/lib/ui/fr.ts
index 8574e5c..4285153 100644
--- a/src/lib/ui/fr.ts
+++ b/src/lib/ui/fr.ts
@@ -29,7 +29,6 @@ export const ui: UIStrings = {
dlArchMsStore: 'Windows 10 et 11, Intel, AMD et ARM',
dlArchWindowsX64: 'Windows 10 et 11, Intel et AMD (x64)',
dlArchWindowsArm64: 'Windows 11, Snapdragon (ARM64)',
- dlEarly: 'Débuts',
dlWindowsUnsigned:
"Les téléchargements directs pour Windows ne sont pas signés : Windows affiche un avertissement au premier lancement. La version du Microsoft Store, elle, est signée.",
dlWindowsUnsignedLink: 'Comment passer outre',
diff --git a/src/lib/ui/it.ts b/src/lib/ui/it.ts
index aec2da3..119974d 100644
--- a/src/lib/ui/it.ts
+++ b/src/lib/ui/it.ts
@@ -29,7 +29,6 @@ export const ui: UIStrings = {
dlArchMsStore: 'Windows 10 e 11, Intel, AMD e ARM',
dlArchWindowsX64: 'Windows 10 e 11, Intel e AMD (x64)',
dlArchWindowsArm64: 'Windows 11, Snapdragon (ARM64)',
- dlEarly: 'Iniziale',
dlWindowsUnsigned:
'I download diretti per Windows non sono firmati, quindi Windows avvisa al primo avvio. La versione di Microsoft Store è firmata.',
dlWindowsUnsignedLink: 'Come procedere',
diff --git a/src/lib/ui/ja.ts b/src/lib/ui/ja.ts
index f241e31..74a7fd2 100644
--- a/src/lib/ui/ja.ts
+++ b/src/lib/ui/ja.ts
@@ -29,7 +29,6 @@ export const ui: UIStrings = {
dlArchMsStore: 'Windows 10・11(Intel・AMD・ARM)',
dlArchWindowsX64: 'Windows 10・11(Intel・AMD、x64)',
dlArchWindowsArm64: 'Windows 11(Snapdragon、ARM64)',
- dlEarly: '早期版',
dlWindowsUnsigned:
'直接ダウンロードした Windows 版はコード署名されていないため、初回起動時に警告が表示されます。Microsoft Store 版は署名済みです。',
dlWindowsUnsignedLink: '進める方法',
diff --git a/src/lib/ui/ko.ts b/src/lib/ui/ko.ts
index 35d233f..c8b138e 100644
--- a/src/lib/ui/ko.ts
+++ b/src/lib/ui/ko.ts
@@ -29,7 +29,6 @@ export const ui: UIStrings = {
dlArchMsStore: 'Windows 10 및 11, Intel · AMD · ARM',
dlArchWindowsX64: 'Windows 10 및 11, Intel 및 AMD(x64)',
dlArchWindowsArm64: 'Windows 11, Snapdragon(ARM64)',
- dlEarly: '초기 버전',
dlWindowsUnsigned:
'직접 내려받은 Windows 빌드는 코드 서명이 되어 있지 않아 첫 실행 시 경고가 표시됩니다. Microsoft Store 버전은 서명되어 있습니다.',
dlWindowsUnsignedLink: '넘어가는 방법',
diff --git a/src/lib/ui/zh-hant.ts b/src/lib/ui/zh-hant.ts
index 3c3604b..727ed99 100644
--- a/src/lib/ui/zh-hant.ts
+++ b/src/lib/ui/zh-hant.ts
@@ -29,7 +29,6 @@ export const ui: UIStrings = {
dlArchMsStore: 'Windows 10 與 11,Intel、AMD 與 ARM',
dlArchWindowsX64: 'Windows 10 與 11,Intel 與 AMD(x64)',
dlArchWindowsArm64: 'Windows 11,Snapdragon(ARM64)',
- dlEarly: '早期版本',
dlWindowsUnsigned:
'直接下載的 Windows 版尚未進行程式碼簽章,首次啟動時系統會跳出提醒;Microsoft Store 版本已簽章。',
dlWindowsUnsignedLink: '如何繼續安裝',
diff --git a/src/lib/voice-download-groups.ts b/src/lib/voice-download-groups.ts
index 38954e2..1b318a9 100644
--- a/src/lib/voice-download-groups.ts
+++ b/src/lib/voice-download-groups.ts
@@ -45,7 +45,7 @@ export interface DownloadGroup {
key: PlatformGroupKey;
/** Column heading on the grid. A product name, so it isn't translated. */
title: string;
- /** Windows rows carry the Early tag, and only Windows has an unsigned note. */
+ /** Only Windows carries the unsigned-download note under its column. */
windows: boolean;
rows: DownloadRow[];
}