Skip to content

Commit 6591a70

Browse files
ericyangpanclaude
andcommitted
chore(misc): miscellaneous updates
Various small improvements and updates: - Update commit-all.md command documentation - Update Chinese documentation content - Update translation files (en.json, zh-Hans.json) - Update layout configuration - Update favicon - Add cspell.json for spell checking 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
1 parent 65fa415 commit 6591a70

File tree

8 files changed

+48
-78
lines changed

8 files changed

+48
-78
lines changed

.claude/commands/commit-all.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@ description: Group all uncommitted files by content and business logic, then com
55

66
Analyze all uncommitted files, group them by content and business logic, then commit by groups.
77
Follow `Conventional Commits specification` for commit messages.
8+
Before committing, organize and confirm the content to be committed first.
89
Execute this only once, subsequent commits still need to be initiated by me.

content/docs/zh-Hans/getting-started.mdx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ AI Coding Stack 是一个全面的 AI 编码生态系统目录和元数据仓库
1212

1313
访问 [aicodingstack.io](https://aicodingstack.io) 探索不同类别的 AI 编码工具:
1414

15-
- **终端** - 发现具有 AI 功能的现代终端模拟器(iTerm2、Warp、Ghostty、WezTerm)
1615
- **IDE** - 查找 AI 驱动的集成开发环境(VS Code、Cursor、TRAE)
1716
- **命令行工具** - 探索 AI 编码命令行助手(Codex、Claude Code)
1817
- **模型** - 比较用于编码的大语言模型(Kimi K2、DeepSeek V3.1、GLM 4.5、Qwen3 Coder)

content/faq/zh-Hans/index.mdx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ AI Coding Stack 包含 AI 编码工具和服务的全面目录:
2020
- **IDE**: Visual Studio Code、Cursor、TRAE 和其他 AI 增强代码编辑器
2121
- **命令行**: Claude Code、Codex 和其他命令行 AI 助手
2222
- **扩展插件**: GitHub Copilot、Cline、Continue、Roo Code 和其他 AI 代码助手插件
23-
- **终端**: iTerm2、Warp、Ghostty、WezTerm 和现代终端模拟器
2423
- **模型**: DeepSeek、Kimi K2、GLM、Qwen、GPT、Claude 和其他领先的 AI 模型
2524
- **提供商**: OpenAI、Anthropic、DeepSeek、Moonshot、OpenRouter、SiliconFlow 等
2625

cspell.json

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{
2+
"$schema": "https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json",
3+
"version": "0.2",
4+
"useGitignore": true,
5+
"ignorePaths": [
6+
"cloudflare-env.d.ts",
7+
"docs"
8+
],
9+
"words": [
10+
"agentic",
11+
"AiCodingStack",
12+
"BMAD",
13+
"BYOK",
14+
"CLIs",
15+
"Junie",
16+
"Kimi",
17+
"Kiro",
18+
"Kode",
19+
"Neovate",
20+
"Qoder",
21+
"QoderCLI",
22+
"Qwen",
23+
"Roo",
24+
"shareAI",
25+
"TRAE"
26+
],
27+
"allowCompoundWords": true
28+
}

messages/en.json

Lines changed: 3 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
"aiCodingStack": "AI Coding Stack",
44
"ides": "IDEs",
55
"clis": "CLIs",
6-
"terminals": "Terminals",
76
"extensions": "Extensions",
87
"models": "Models",
98
"modelProviders": "Model Providers",
@@ -31,7 +30,6 @@
3130
"aiCodingLandscape": "AI Coding Landscape",
3231
"aiCodingLandscapeDesc": "Visualize the complete AI coding ecosystem",
3332
"developmentTools": "Development Tools",
34-
"integration": "Integration",
3533
"intelligence": "Intelligence"
3634
},
3735
"footer": {
@@ -52,12 +50,12 @@
5250
"home": {
5351
"meta": {
5452
"title": "AI Coding Stack - Your AI Coding Ecosystem Hub",
55-
"description": "Comprehensive directory for AI coding tools. Discover, compare and explore IDEs, CLIs, terminals, models and providers.",
53+
"description": "Comprehensive directory for AI coding tools. Discover, compare and explore IDEs, CLIs, extensions, models and providers.",
5654
"name": "AI Coding Stack"
5755
},
5856
"title": "Your AI Coding Ecosystem Hub",
5957
"subtitle": "Discover, Compare, Build Faster.",
60-
"description": "Explore and compare AI coding tools: IDEs, CLIs, Terminals, Models, and Providers — all in one place.",
58+
"description": "Explore and compare AI coding tools: IDEs, CLIs, extensions, models, and providers — all in one place.",
6159
"exploreTools": "Explore Tools",
6260
"readDocs": "Read Documentation",
6361
"faq": "Frequently Asked Questions",
@@ -112,7 +110,7 @@
112110
"stacksPages": {
113111
"overview": {
114112
"title": "AI Coding Stack",
115-
"subtitle": "Explore the complete AI coding ecosystem: IDEs, CLIs, terminals, models, and providers.",
113+
"subtitle": "Explore the complete AI coding ecosystem: IDEs, CLIs, extensions, models, and providers.",
116114
"slogan": "Discover. Compare. Build 10x Faster.",
117115
"exploreStack": "Explore the Stack",
118116
"overviewTitle": "AI Coding Stack Overview",
@@ -124,10 +122,6 @@
124122
"title": "CLIs",
125123
"description": "Command-line AI assistants that bring the power of large language models directly to your terminal. Execute complex tasks with natural language, right from your shell."
126124
},
127-
"terminals": {
128-
"title": "Terminals",
129-
"description": "Modern terminal emulators with built-in AI capabilities. From command suggestions to workflow automation, these terminals are built for the AI era."
130-
},
131125
"extensions": {
132126
"title": "Extensions",
133127
"description": "AI-powered coding extensions and plugins for your favorite IDE. From code completion to intelligent refactoring, enhance your development experience with AI assistance."
@@ -145,13 +139,6 @@
145139
"description": "Leading companies and organizations building AI technologies. From OpenAI to Anthropic, discover the vendors behind the AI coding revolution."
146140
}
147141
},
148-
"terminals": {
149-
"title": "Terminals",
150-
"subtitle": "Modern terminal emulators with built-in AI capabilities",
151-
"compareAll": "Compare All",
152-
"noMatches": "No terminals match your filters",
153-
"allTerminals": "All Terminals"
154-
},
155142
"ides": {
156143
"title": "IDEs",
157144
"subtitle": "AI-enhanced integrated development environments",
@@ -194,13 +181,6 @@
194181
},
195182

196183
"stackDetailPages": {
197-
"terminalDetail": {
198-
"breadcrumb": {
199-
"aiCodingStack": "AI Coding Stack",
200-
"terminals": "Terminals"
201-
},
202-
"allTerminals": "All Terminals"
203-
},
204184
"ideDetail": {
205185
"breadcrumb": {
206186
"aiCodingStack": "AI Coding Stack",
@@ -337,14 +317,8 @@
337317
"ides": "IDEs",
338318
"clis": "CLIs",
339319
"extensions": "Extensions",
340-
"terminals": "Terminals",
341320
"models": "Models"
342321
},
343-
"terminals": {
344-
"title": "Terminal Comparison",
345-
"subtitle": "Compare features, pricing, and specifications of terminal emulators side by side.",
346-
"backTo": "Back to Terminals"
347-
},
348322
"ides": {
349323
"title": "IDE Comparison",
350324
"subtitle": "Compare features, pricing, and specifications of AI-powered IDEs side by side.",
@@ -447,7 +421,6 @@
447421
"IDE": "IDE",
448422
"CLI": "CLI",
449423
"EXTENSION": "Extension",
450-
"TERMINAL": "Terminal",
451424
"MODEL": "Model",
452425
"PROVIDER": "Model Provider",
453426
"VENDOR": "Vendor"

messages/zh-Hans.json

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
"aiCodingStack": "AI 编码技术栈",
44
"ides": "IDE",
55
"clis": "命令行",
6-
"terminals": "终端",
76
"extensions": "扩展插件",
87
"models": "模型",
98
"modelProviders": "模型提供商",
@@ -31,7 +30,6 @@
3130
"aiCodingLandscape": "AI 编码全景图",
3231
"aiCodingLandscapeDesc": "可视化 AI 编码生态系统全貌",
3332
"developmentTools": "开发工具",
34-
"integration": "集成",
3533
"intelligence": "智能层"
3634
},
3735
"footer": {
@@ -47,7 +45,6 @@
4745
"faq": "常见问题",
4846
"selectLanguage": "选择语言"
4947
},
50-
5148
"pages": {
5249
"home": {
5350
"meta": {
@@ -108,7 +105,6 @@
108105
"keywords": "AI 编码技术栈文档, AI 编码工具指南, IDE 对比, 命令行对比, AI 模型规格"
109106
}
110107
},
111-
112108
"stacksPages": {
113109
"overview": {
114110
"title": "AI 编码技术栈",
@@ -124,10 +120,6 @@
124120
"title": "命令行",
125121
"description": "将大语言模型的强大功能直接带到终端的命令行 AI 助手。用自然语言直接在 shell 中执行复杂任务。"
126122
},
127-
"terminals": {
128-
"title": "终端",
129-
"description": "内置 AI 功能的现代终端模拟器。从命令建议到工作流自动化,这些终端为 AI 时代而生。"
130-
},
131123
"extensions": {
132124
"title": "扩展插件",
133125
"description": "为你喜爱的 IDE 提供的 AI 驱动编码扩展和插件。从代码补全到智能重构,用 AI 辅助增强你的开发体验。"
@@ -145,13 +137,6 @@
145137
"description": "构建 AI 技术的领先公司和组织。从 OpenAI 到 Anthropic,发现 AI 编码革命背后的厂商。"
146138
}
147139
},
148-
"terminals": {
149-
"title": "终端",
150-
"subtitle": "内置 AI 功能的现代终端模拟器",
151-
"compareAll": "对比所有",
152-
"noMatches": "没有符合筛选条件的终端",
153-
"allTerminals": "所有终端"
154-
},
155140
"ides": {
156141
"title": "IDE",
157142
"subtitle": "AI 增强的集成开发环境",
@@ -192,15 +177,7 @@
192177
"subtitle": "构建 AI 技术的领先公司和组织"
193178
}
194179
},
195-
196180
"stackDetailPages": {
197-
"terminalDetail": {
198-
"breadcrumb": {
199-
"aiCodingStack": "AI 编码技术栈",
200-
"terminals": "终端"
201-
},
202-
"allTerminals": "所有终端"
203-
},
204181
"ideDetail": {
205182
"breadcrumb": {
206183
"aiCodingStack": "AI 编码技术栈",
@@ -329,22 +306,15 @@
329306
"indexLabel": "索引"
330307
}
331308
},
332-
333309
"comparison": {
334310
"breadcrumb": {
335311
"aiCodingStack": "AI 编码技术栈",
336312
"comparison": "对比",
337313
"ides": "IDE",
338314
"clis": "命令行",
339315
"extensions": "扩展插件",
340-
"terminals": "终端",
341316
"models": "模型"
342317
},
343-
"terminals": {
344-
"title": "终端对比",
345-
"subtitle": "并排对比终端模拟器的功能、定价和规格。",
346-
"backTo": "返回终端列表"
347-
},
348318
"ides": {
349319
"title": "IDE 对比",
350320
"subtitle": "并排对比 AI 增强 IDE 的功能、定价和规格。",
@@ -391,11 +361,9 @@
391361
"freeOnly": "仅免费"
392362
}
393363
},
394-
395364
"license": {
396365
"proprietary": "专有"
397366
},
398-
399367
"components": {
400368
"sidebar": {
401369
"selectItem": "选择一个项目",
@@ -447,7 +415,6 @@
447415
"IDE": "IDE",
448416
"CLI": "命令行",
449417
"EXTENSION": "扩展插件",
450-
"TERMINAL": "终端",
451418
"MODEL": "模型",
452419
"PROVIDER": "模型提供商",
453420
"VENDOR": "厂商"

src/app/[locale]/layout.tsx

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ import "./globals.css";
88
import ClientLayout from "@/components/ClientLayout";
99
import { WebVitals } from "./web-vitals";
1010
import { JsonLd } from "@/components/JsonLd";
11-
import { locales, type Locale } from '@/i18n/config';
11+
import { locales, defaultLocale, type Locale } from '@/i18n/config';
12+
import { getOgLocale, getOgAlternateLocales, getLanguageAlternates } from '@/lib/seo-helpers';
1213

1314
// Reduced font weights from 4 to 2 for better performance
1415
const ibmPlexMono = IBM_Plex_Mono({
@@ -45,11 +46,12 @@ export async function generateMetadata({ params }: Props): Promise<Metadata> {
4546
const title = siteMessages?.title || "AI Coding Stack - Your AI Coding Ecosystem Hub";
4647
const description = siteMessages?.description || "Comprehensive directory for AI coding tools. Discover, compare and explore IDEs, CLIs, MCP servers, models and providers.";
4748

48-
// Map locale to OpenGraph locale format
49-
const ogLocale = locale === 'zh-Hans' ? 'zh_CN' : 'en_US';
49+
// Get canonical path based on locale
50+
const canonicalPath = locale === defaultLocale ? '/' : `/${locale}`;
51+
const baseUrl = 'https://aicodingstack.io';
5052

5153
return {
52-
metadataBase: new URL('https://aicodingstack.io'),
54+
metadataBase: new URL(baseUrl),
5355
title,
5456
description,
5557
keywords: [
@@ -58,17 +60,18 @@ export async function generateMetadata({ params }: Props): Promise<Metadata> {
5860
'AI IDE',
5961
'AI coding assistant',
6062
'AI CLI',
61-
'MCP servers',
6263
'LLM models',
6364
'AI coding directory',
6465
'coding tools comparison',
6566
].join(', '),
67+
icons: {
68+
icon: '/icon.svg',
69+
shortcut: '/icon.svg',
70+
apple: '/icon.svg',
71+
},
6672
alternates: {
67-
canonical: locale === 'en' ? '/' : `/${locale}`,
68-
languages: {
69-
'en': '/',
70-
'zh-Hans': '/zh-Hans',
71-
},
73+
canonical: canonicalPath,
74+
languages: getLanguageAlternates('/'),
7275
},
7376
appleWebApp: {
7477
capable: true,
@@ -81,9 +84,9 @@ export async function generateMetadata({ params }: Props): Promise<Metadata> {
8184
},
8285
openGraph: {
8386
type: 'website',
84-
locale: ogLocale,
85-
alternateLocale: locale === 'en' ? ['zh_CN'] : ['en_US'],
86-
url: locale === 'en' ? 'https://aicodingstack.io' : `https://aicodingstack.io/${locale}`,
87+
locale: getOgLocale(locale),
88+
alternateLocale: getOgAlternateLocales(locale),
89+
url: `${baseUrl}${canonicalPath}`,
8790
siteName: 'AI Coding Stack',
8891
title,
8992
description,

src/app/favicon.ico

-10.6 KB
Binary file not shown.

0 commit comments

Comments
 (0)