- astro i18n(zh 默认无前缀,en /en/)+ locale.ts 路径工具
- Header 语言切换(同路径跨前缀跳转,预构建毫秒级)
- /en/index + /en/archives/{slug}(postsEn 优先,缺译回退 zh 正文
+ AiTranslatedBadge 虚线标注 TMT);en RSS(标题回退同策略)
- BaseLayout hreflang 双向 + x-default 指向 zh 源
- posts-en 集合(postsSchema.extend locked 润色锁)
- 坑:ts 端点文件误带 --- 开头会以 undefined:2:7 报 Unexpected token
验证: astro build 18 页 exit 0;/en/ 六文章路由+首页+rss 产物断言过;
zh 侧零回归(11 页不变);hreflang 抽查 dist/index.html
Spec: 2026-10-25_add-blog-i18n
Co-authored-by: GLM-5.3
29 lines
723 B
Plaintext
29 lines
723 B
Plaintext
---
|
|
// AI 译文标注(用户拍板:文学内容机器翻译须明示)
|
|
import { t } from '../i18n/ui';
|
|
interface Props { locale?: 'zh' | 'en' }
|
|
const { locale = 'en' } = Astro.props;
|
|
---
|
|
|
|
<p class="ai-note" role="note">{t('ai_translated_note', locale)}<span class="ai-tag">TMT</span></p>
|
|
|
|
<style>
|
|
.ai-note {
|
|
font-family: var(--font-mono);
|
|
font-size: 12px;
|
|
color: var(--ink-3);
|
|
border: 1px dashed var(--line);
|
|
border-radius: 6px;
|
|
padding: var(--space-2) var(--space-3);
|
|
margin-bottom: var(--space-4);
|
|
}
|
|
.ai-tag {
|
|
margin-left: var(--space-2);
|
|
color: var(--ink-4);
|
|
font-size: 10px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 3px;
|
|
padding: 0 4px;
|
|
}
|
|
</style>
|