网站国际化
- 作者仓库星标 0
- 作者仓库 skills-registry
Internationalizing Websites
Complete workflow for adding multi-language support to Next.js websites with SEO best practices.
When to use this Skill
- Adding new language versions to existing website
- Setting up i18n (internationalization) for new website
- Configuring SEO for multiple languages
- User mentions: "add language", "translation", "localization", "hreflang", "multi-language"
Supported Languages
Common target markets:
- 🇺🇸 English (en) - Global market
- 🇯🇵 Japanese (ja) - Asian market
- 🇨🇳 Chinese (zh) - Chinese market
Extended support available for:
- Korean (ko), Portuguese (pt), Spanish (es), French (fr), German (de)
- Arabic (ar), Vietnamese (vi), Hindi (hi), Indonesian (id), Thai (th)
- Traditional Chinese (zh-hk), Italian (it), Russian (ru)
Internationalization Workflow
Copy this checklist and track your progress:
i18n Progress:
- [ ] Step 1: Prepare base language files
- [ ] Step 2: Add new language files
- [ ] Step 3: Update configuration files
- [ ] Step 4: Add translations
- [ ] Step 5: Configure SEO elements
- [ ] Step 6: Validate and test
Step 1: Prepare base language files
Ensure English (en.json) files exist as templates:
Required directories:
i18n/messages/en.json- Main translationsi18n/pages/landing/en.json- Landing page translations
Verify structure:
# Check if base files exist
ls i18n/messages/en.json
ls i18n/pages/landing/en.json
If missing, create them with complete translation keys for your website.
Step 2: Add new language files
Run the language addition script:
node scripts/i18n-add-languages.mjs
What this script does:
- Copies
en.jsonto all target language files - Updates
i18n/locale.tswith new locales - Updates
i18n/request.tswith language mappings - Updates
public/sitemap.xmlwith new language URLs
Script configuration (in i18n-add-languages.mjs):
languagesarray - List of languages to addlanguageNamesobject - Language display namestargetDirsarray - Directories containing translation files
See WORKFLOW.md for detailed step-by-step guide.
Step 3: Verify configuration updates
Check i18n/locale.ts:
export const locales = ["en", "ja", "zh", "ko", ...];
export const localeNames: any = {
en: "English",
ja: "日本語",
zh: "中文",
ko: "한국어",
...
};
Check i18n/request.ts:
- Language code mappings configured
zh-CN→zh,zh-HK→zh-hkmappings present
Check public/sitemap.xml:
- All language versions listed
hreflangtags present for each URL
Step 4: Add translations
Option A: Using AI translation (faster but needs review):
# Add structured data and pricing translations
node scripts/i18n-add-schema.js
Configure translations in the script's translations object.
Option B: Manual translation (recommended for quality):
Edit each language file with proper translations:
# Open language file
code i18n/messages/ja.json
Translation best practices:
- Use native speakers when possible
- Maintain SEO keywords in target language
- Adapt content to local culture, don't just translate
- Keep formatting consistent (placeholders, variables)
See reference/locale-codes.md for language code reference.
Step 5: Configure SEO elements
hreflang tags - Automatic via sitemap, but verify:
See reference/hreflang-guide.md for complete guide.
Localized meta tags - Translate in each language file:
{
"metadata": {
"title": "Your Site Title",
"description": "Your SEO description"
}
}
URL structure - Verify correct format:
- English:
https://example.com/orhttps://example.com/en/ - Japanese:
https://example.com/ja/ - Chinese:
https://example.com/zh/
Step 6: Validate and test
Build the project:
npm run build
CRITICAL: Fix any errors before proceeding.
Manual testing:
Language switcher:
- Visit each language version
- Verify language switcher shows all languages
- Click each language link, verify correct page loads
Content display:
- Check all pages render correctly in each language
- Verify no untranslated text (check for English in non-English pages)
- Test special characters display correctly (Japanese, Chinese, Arabic)
SEO elements:
- Inspect
<html lang="...">attribute matches page language - Verify
<link rel="alternate" hreflang="...">tags present - Check meta tags are in correct language
- Inspect
Automated validation:
# Check sitemap
curl https://your-site.com/sitemap.xml | grep hreflang
# Validate hreflang (use online tool)
# Google Search Console > Internationalization > hreflang
SEO checklist - See reference/seo-checklist.md.
If validation fails:
- Review error messages carefully
- Check configuration files for typos
- Verify language codes are correct
- Return to Step 3 and fix issues
Only proceed when all validations pass.
Important Notes
Language Code Standards
Use ISO 639-1 (two-letter codes) with optional regional variants:
en- Englishja- Japanesezh- Simplified Chinesezh-hk- Traditional Chinese (Hong Kong)pt- Portuguesept-br- Brazilian Portuguese
See reference/locale-codes.md for complete list.
SEO Implications
Correct i18n improves SEO by:
- Targeting users in their native language
- Avoiding duplicate content penalties
- Helping search engines serve correct language version
Common SEO mistakes to avoid:
- ❌ Auto-redirect based on IP (prevents search engines from crawling all versions)
- ❌ Missing hreflang tags (causes duplicate content issues)
- ❌ Inconsistent URL structure across languages
- ❌ Untranslated meta tags
Translation Quality
AI translation vs Human translation:
- ✅ AI: Fast, cost-effective, good for initial draft
- ⚠️ AI: May miss cultural nuances, needs review
- ✅ Human: Better quality, cultural adaptation
- ⚠️ Human: Slower, more expensive
Recommended approach:
- Use AI to generate initial translations
- Have native speaker review and refine
- Test with target market users
- Iterate based on feedback
Next.js i18n Routing
The system uses next-intl for routing:
- Automatic locale detection from URL
- Language switcher component
- Localized navigation
Configuration in i18n/locale.ts and i18n/request.ts.
Post-Internationalization Tasks
After adding languages:
- Submit updated sitemap to Google Search Console
- Create separate Search Console properties for each language/region
- Monitor international organic traffic in Analytics
- A/B test translations if conversion rates differ by language
- Set up alerts for international crawl errors
Script Locations
All i18n scripts are in the scripts/ directory:
i18n-add-languages.mjs- Add new language filesi18n-add-schema.js- Add structured data translations
Reference Materials
- WORKFLOW.md - Detailed step-by-step workflow
- reference/hreflang-guide.md - hreflang implementation guide
- reference/locale-codes.md - Language codes reference
- reference/seo-checklist.md - International SEO checklist
For troubleshooting, see WORKFLOW.md troubleshooting section.
<!-- tomevault:4.0:skill_md:2026-05-22 -->Source: ComeOnOliver/skillshub — distributed by TomeVault.
- 流狐分类
- 工程开发
- 作者声明 Agent
- 未找到明确声明;不据此推断已兼容或已测试
- 静态检查
- 88 / 100 · 启发式扫描,不代表运行安全
- 作者 / 版本 / 许可
- @tomevault-io · 未声明 license
- 流狐 Token 估算
- 低消耗
- 流狐接入估算
- 即装即用
- 是否需要外部 API Key
- 未发现要求
- 检测到的系统要求
- macOS · Linux · Windows
- 底层运行要求
- Node.js
- 检测到的文件与系统行为
-
- 只读
- 允许写入 / 修改
- 检测到的网络行为
- 允许外网请求
- 安装命令数
- 无(仅作为资料)
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。
作者没有在当前 SKILL.md 中定义固定输出样例。 Copy this checklist and track your progress:
Ensure English (en.json) files exist as templates: Required directories: i18n/messages/en.json - Main translations
Run the language addition script: What this script does: Copies en.json to all target language files
Check i18n/locale.ts: Check i18n/request.ts: Language code mappings configured
Option A: Using AI translation (faster but needs review): Configure translations in the script's translations object. Option B: Manual translation (recommended for quality):
hreflang tags - Automatic via sitemap, but verify: See reference/hreflang-guide.md for complete guide. Localized meta tags - Translate in each language file:
# Internationalizing Websites
Complete workflow for adding multi-language support to Next.js websites with SEO best practices.
## When to use this Skill
- Adding new language versions to existing website
- Setting up i18n (internationalization) for new website
- Configuring SEO for multiple languages
- User mentions: "add language", "translation", "localization", "hreflang", "multi-language"
## Supported Languages
Common target markets:
- 🇺🇸 English (en) - Global market
- 🇯🇵 Japanese (ja) - Asian market
- 🇨🇳 Chinese (zh) - Chinese market
Extended support available for:
- Korean (ko), Portuguese (pt), Spanish (es), French (fr), German (de)
- Arabic (ar), Vietnamese (vi), Hindi (hi), Indonesian (id), Thai (th)
- Traditional Chinese (zh-hk), Italian (it), Russian (ru)
## Internationalization Workflow
Copy this checklist and track your progress:
```
i18n Progress:
- [ ] Step 1: Prepare base language files
- [ ] Step 2: Add new language files
- [ ] Step 3: Update configuration files
- [ ] Step 4: Add translations
- [ ] Step 5: Configure SEO elements
- [ ] Step 6: Validate and test
```
### Step 1: Prepare base language files
Ensure English (`en.json`) files exist as templates:
**Required directories**:
- `i18n/messages/en.json` - Main translations
- `i18n/pages/landing/en.json` - Landing page translations
**Verify structure**:
```bash
# Check if base files exist
ls i18n/messages/en.json
ls i18n/pages/landing/en.json
```
If missing, create them with complete translation keys for your website.
### Step 2: Add new language files
Run the language addition script:
```bash
node scripts/i18n-add-languages.mjs
```
**What this script does**:
- Copies `en.json` to all target language files
- Updates `i18n/locale.ts` with new locales
… 作者原文负责流程事实;流狐只索引当前章节、要点、文件与命令。
章节 -> When to use this Skill → Supported Languages → Internationalization Workflow → Step 1: Prepare base language files → Step 2: Add new language files → Step 3: Verify configuration updates
要点 -> Required directories · Verify structure · What this script does · Script configuration · Check i18n/locale.ts · Check i18n/request.ts · Check public/sitemap.xml · Option A: Using AI translation
文件/命令 -> en.json · i18n/messages/en.json · i18n/pages/landing/en.json · i18n/locale.ts · i18n/request.ts · public/sitemap.xml · i18n-add-languages.mjs · languages
内容 SHA-256 -> ac6b16b8e1ac
方法与流程
适用与边界
原文中的明确线索
en.json、i18n/messages/en.json、i18n/pages/landing/en.json、i18n/locale.ts、i18n/request.ts、public/sitemap.xml、i18n-add-languages.mjs、languages