Skip to main content

国际化(英语)Implementation Plan

For Claude: REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.

Goal: 为全球代理帮助文档站点添加英语(en)国际化支持,包括文档、博客、首页及所有 UI 文本。

Architecture: 使用 Docusaurus 原生 i18n 文件副本方案。中文为默认 locale(/),英文通过 /en/ 前缀访问。导航栏提供语言切换下拉菜单。首页通过 <Translate> 组件 + 英文页面副本实现翻译。

Tech Stack: Docusaurus 2.4.1, @docusaurus/Translate 组件, i18n JSON 翻译文件


Task 1:修改 docusaurus.config.js — 启用 i18n 并添加语言切换器

Files:

  • Modify: docusaurus.config.js:33-37(i18n 块)
  • Modify: docusaurus.config.js:82-107(navbar.items)

Step 1: 修改 i18n 配置

docusaurus.config.js 第 33-37 行:

  i18n: {
defaultLocale: 'zh-Hans',
locales: ['zh-Hans'],
},

改为:

  i18n: {
defaultLocale: 'zh-Hans',
locales: ['zh-Hans', 'en'],
localeConfigs: {
'zh-Hans': { label: '中文' },
en: { label: 'English' },
},
},

Step 2: 在 navbar.items 数组末尾添加语言切换器

navbar.items 数组的最后一个元素(套餐介绍 dropdown)之后,添加:

          {
type: 'localeDropdown',
position: 'right',
},

Step 3: 验证

Run: npm run start Expected: 站点正常启动,导航栏右侧出现语言切换下拉菜单。

Step 4: Commit

git add docusaurus.config.js
git commit -m "feat(i18n): enable en locale and add locale dropdown"

Task 2:生成翻译模板文件

Step 1: 运行 write-translations 命令

Run: npm run write-translations -- --locale en

Expected: 在 i18n/en/ 下自动生成以下文件:

  • i18n/en/code.json
  • i18n/en/docusaurus-theme-classic/navbar.json
  • i18n/en/docusaurus-theme-classic/footer.json
  • i18n/en/docusaurus-plugin-content-docs/current.json

Step 2: 查看生成的文件

Run: Get-ChildItem -Recurse i18n/en/ -Name

确认文件结构完整。

Step 3: Commit

git add i18n/
git commit -m "feat(i18n): generate en translation templates"

Task 3:翻译 navbar JSON

Files:

  • Modify: i18n/en/docusaurus-theme-classic/navbar.json

Step 1: 先读取自动生成的 navbar.json,查看实际的 key 格式

Run: Get-Content i18n/en/docusaurus-theme-classic/navbar.json

Step 2: 根据实际 key,将所有 message 字段翻译为英文

翻译对照表:

中文原文英文翻译
全球代理Global Proxies
帮助文档Documentation
开发者接入Developer API
官网主页Homepage
套餐介绍Plans
动态住宅Dynamic Residential
静态住宅Static Residential
静态机房Static Data Center

Step 3: Commit

git add i18n/en/docusaurus-theme-classic/navbar.json
git commit -m "feat(i18n): translate navbar to English"

Files:

  • Modify: i18n/en/docusaurus-theme-classic/footer.json

Step 1: 先读取自动生成的 footer.json,查看实际的 key 格式

Run: Get-Content i18n/en/docusaurus-theme-classic/footer.json

Step 2: 根据实际 key,将所有 message 字段翻译为英文

翻译对照表:

中文原文英文翻译
文档Docs
帮助文档Help Center
官网主页Homepage
产品Products
全球动态住宅Dynamic Residential Proxy
全球静态住宅Static Residential Proxy
全球静态机房Static Data Center Proxy
热门地区Popular Regions
美国United States
英国United Kingdom
德国Germany
泰国Thailand
韩国South Korea
新加坡Singapore
代理商Partners
成为代理商Become a Partner
推广计划Affiliate Program

copyright 字段翻译为: Copyright © {year} quanqiudaili.com(保持不变或按需修改)

Step 3: Commit

git add i18n/en/docusaurus-theme-classic/footer.json
git commit -m "feat(i18n): translate footer to English"

Task 5:翻译侧边栏 category 标签

Files:

  • Modify: i18n/en/docusaurus-plugin-content-docs/current.json

Step 1: 先读取自动生成的 current.json,查看实际的 key 格式

Run: Get-Content i18n/en/docusaurus-plugin-content-docs/current.json

Step 2: 根据实际 key,将 message 字段翻译为英文

翻译对照表(侧边栏 category):

中文原文英文翻译
🌎产品介绍🌎 Products
⚙️代理设置⚙️ Proxy Settings
📱安卓手机📱 Android
📱iphone手机📱 iPhone
💻Windows电脑💻 Windows
👍指纹浏览器👍 Fingerprint Browser
❓常见问题❓ FAQ

侧边栏 generated-index description 翻译:

中文原文英文翻译
如何使用quanqiudaili的代理IP?How to use Global Proxies?
Android系统手机使用代理IP教程...Android proxy setup tutorial
IOS系统iphone手机使用代理IP教程iPhone proxy setup tutorial
windows系统使用代理IP教程Windows proxy setup tutorial
指纹浏览器使用代理IP教程Fingerprint browser proxy setup tutorial

Step 3: Commit

git add i18n/en/docusaurus-plugin-content-docs/current.json
git commit -m "feat(i18n): translate sidebar labels to English"

Task 6:改造首页 — 用 <Translate> 包裹中文静态文本

Files:

  • Modify: src/pages/index.js

Step 1: 添加 import

src/pages/index.js 顶部已有 import 区域,添加:

import Translate, {translate} from '@docusaurus/Translate';

Step 2: 替换 Layout 组件的 title 和 description 属性

将第 73-75 行:

    <Layout
title="帮助文档"
description="帮助文档,全球代理帮助文档,socks5代理ip,动态ip代理,http代理ip,动态ip,静态ip,住宅ip,独享ip,爬虫代理ip,美国ip,固定ip,http隧道代理,socks代理ip,在线代理ip,免费代理ip,代理服务器ip地址,国外动态ip,海外代理ip,国内ip代理,国外http代理,海外ip"
>

改为:

    <Layout
title={translate({id: 'homepage.layoutTitle', message: '帮助文档'})}
description={translate({id: 'homepage.description', message: '帮助文档,全球代理帮助文档,socks5代理ip,动态ip代理,http代理ip,动态ip,静态ip,住宅ip,独享ip,爬虫代理ip,美国ip,固定ip,http隧道代理,socks代理ip,在线代理ip,免费代理ip,代理服务器ip地址,国外动态ip,海外代理ip,国内ip代理,国外http代理,海外ip'})}
>

Step 3: 替换 header-title

将第 77 行:

        <div className='header-title'>全球代理文档中心</div>

改为:

        <div className='header-title'><Translate id="homepage.title">全球代理文档中心</Translate></div>

Step 4: 替换 HotQA 组件中的"热门问答:"

将第 17 行:

      <span style={{ fontSize: '14px', marginLeft: '26px' }}>热门问答:</span>

改为:

      <span style={{ fontSize: '14px', marginLeft: '26px' }}><Translate id="homepage.hotQA">热门问答:</Translate></span>

Step 5: 替换 QAList 组件中的"常见问题:"

将第 48 行:

      <span className='warpper-title'>常见问题:</span>

改为:

      <span className='warpper-title'><Translate id="homepage.faqTitle">常见问题:</Translate></span>

Step 6: 替换"查看更多"

将第 60 行:

              <div className='more-link'><Link to={item.moreLink}>查看更多&nbsp;<RightCircleOutlined /></Link></div>

改为:

              <div className='more-link'><Link to={item.moreLink}><Translate id="homepage.viewMore">查看更多</Translate>&nbsp;<RightCircleOutlined /></Link></div>

Step 7: 验证中文版首页正常

Run: npm run start Expected: 首页显示与改造前一致。

Step 8: Commit

git add src/pages/index.js
git commit -m "feat(i18n): wrap homepage static text with Translate component"

Task 7:创建英文版首页数据文件

Files:

  • Create: home-questions-en.js(项目根目录)

Step 1: 创建 home-questions-en.js

内容如下(完整文件):

// English version of homepage questions
export const hotQuestions = [
[
{ label: 'What is Dynamic Residential Proxy?', href: '/docs/List/drf' },
{ label: 'How to purchase?', href: '/docs/Buy-lssues/' },
],
[
{ label: 'What is Static Residential Proxy?', href: '/docs/List/srt' },
{ label: 'What is Static Data Center Proxy?', href: '/docs/List/sct' },
],
[
{ label: 'How to get proxy?', href: '/docs/Get-Proxy/' },
{ label: 'How to set up proxy?', href: '/docs/proxy-Settings' },
],
[
{ label: 'Why do I need an acceleration tunnel?', href: '/docs/Faq/#为什么需要加速通道' },
{ label: 'What devices does Global Proxies support?', href: '/docs/Faq/#quanqiudaili支持哪些设备' },
],
]

export const qaQuestions = [
{
title: 'Products',
moreLink: '/docs/intro',
items: [
{ label: 'What is Dynamic Residential Proxy?', href: '/docs/List/drf' },
{ label: 'What is Static Residential Proxy?', href: '/docs/List/srt' },
{ label: 'What is Static Data Center Proxy?', href: '/docs/List/sct' },
]
},
{
title: 'Proxy Settings',
moreLink: '/docs/proxy-Settings',
items: [
{ label: 'How to set up proxy on Android?', href: '/docs/proxy-Settings/Android' },
{ label: 'How to set up proxy on iPhone?', href: '/docs/proxy-Settings/iphone' },
{ label: 'How to set up proxy on Windows?', href: '/docs/proxy-Settings/Windows' },
{ label: 'How to set up proxy in Fingerprint Browser?', href: '/docs/proxy-Settings/fingerprint-browser' },
]
},
{
title: 'How to Purchase',
moreLink: '/docs/Buy-lssues/',
items: [
{ label: 'Purchase Dynamic Residential Data Package', href: '/docs/Buy-lssues/#%EF%B8%8F购买全球动态住宅流量包' },
{ label: 'Purchase Static Residential Proxy IP', href: '/docs/Buy-lssues/#购买全球静态住宅代理ip' },
{ label: 'Purchase Static Data Center Proxy IP', href: '/docs/Buy-lssues/#购买全球静态机房代理ip' },
]
},
{
title: 'How to Get Proxy',
moreLink: '/docs/Get-Proxy/',
items: [
{ label: 'How to get proxy after purchasing Dynamic Residential?', href: '/docs/Get-Proxy/#全球动态住宅购买后如何获取代理ip' },
{ label: 'How to get proxy after purchasing Static Residential?', href: '/docs/Get-Proxy/#全球静态住宅购买后如何获取代理ip' },
{ label: 'How to get proxy after purchasing Static Data Center?', href: '/docs/Get-Proxy/#全球静态机房购买后如何获取代理ip' },
]
},
{
title: 'Process',
moreLink: '/docs/Process',
items: [
{ label: 'Usage Process', href: '/docs/Process' },
]
},
{
title: 'FAQ',
moreLink: '/docs/Faq/',
items: [
{ label: 'Dynamic Residential Proxy FAQ', href: '/docs/Faq/Dynamic-Residence-Faq' },
{ label: 'Static Residential Proxy FAQ', href: '/docs/Faq/Static-Residence-Faq' },
{ label: 'Static Data Center Proxy FAQ', href: '/docs/Faq/Data-Center-Faq' },
{ label: 'Relationship between acceleration tunnel and proxy IP', href: '/docs/Faq/#加速通道和代理ip之间的关系' },
{ label: 'Why we don\'t provide VPN', href: '/docs/Faq/#为什么不提供vpn' },
]
}
]

Step 2: Commit

git add home-questions-en.js
git commit -m "feat(i18n): add English homepage question data"

Task 8:创建英文版首页组件

Files:

  • Create: i18n/en/docusaurus-plugin-content-pages/index.js

Step 1: 创建英文版首页

复制 src/pages/index.js 的内容,但修改 import 路径。完整文件内容:

import React from 'react';
import Link from '@docusaurus/Link';
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
import Layout from '@theme/Layout';
import Translate, {translate} from '@docusaurus/Translate';
import { RightCircleOutlined } from '@ant-design/icons';
import { hotQuestions, qaQuestions } from '../../../../home-questions-en';
import SearchBar from '@theme/SearchBar';

import { Carousel, Radio } from 'antd';

function HotQA() {
return (
<div className='hot-qa-list'>
<span style={{ fontSize: '14px', marginLeft: '26px' }}><Translate id="homepage.hotQA">热门问答:</Translate></span>
<div style={{ width: '80%' }}>
<Carousel dotPosition={'left'} autoplay={true} dots={false} autoplaySpeed={3000} >
{
hotQuestions.map((item, index) => (
<div key={index} className='hot-qa-item'>
<Link to={item[0].href}>{item[0].label}</Link>
<Link to={item[1].href}>{item[1].label}</Link>
</div>
))
}
</Carousel>
</div>
</div>
)
}

function QAList() {
const qaItemTitle = {
fontSize: '16px',
fontWeight: 'bold',
paddingLeft: '15px',
marginTop: '20px',
}

return (
<div className='qa-list-warpper'>
<span className='warpper-title'><Translate id="homepage.faqTitle">常见问题:</Translate></span>
<div className='qa-item-warpper'>
{
qaQuestions.map((item, index) => (
<div className='qa-item-container' key={index}>
<div style={{...qaItemTitle, borderLeft: '5px solid #213ECB'}}>{item.title}</div>
<div style={{ padding: '20px 0 0 20px' }}>
{
item.items.map((item, index) => (
<div key={index} style={{ marginBottom: '10px',fontSize:'14px' }} className='qa-item'><Link to={item.href}>{item.label}</Link></div>
))
}
</div>
<div className='more-link'><Link to={item.moreLink}><Translate id="homepage.viewMore">查看更多</Translate>&nbsp;<RightCircleOutlined /></Link></div>
</div>
))
}
</div>
</div>
)
}


export default function Home() {
const { siteConfig } = useDocusaurusContext();
return (
<Layout
title={translate({id: 'homepage.layoutTitle', message: '帮助文档'})}
description={translate({id: 'homepage.description', message: 'Help center, Global Proxies documentation, socks5 proxy ip, dynamic ip proxy, http proxy ip'})}
>
<div className='section1'>
<div className='header-title'><Translate id="homepage.title">全球代理文档中心</Translate></div>
<div className='homePageSearchBar'>
<SearchBar />
<HotQA />
</div>
</div>
<div className='section2' style={{ display: 'flex', justifyContent: 'center' }}>
<QAList />
</div>
</Layout>
);
}

注意:此文件的 CSS 样式由 Docusaurus 主题全局加载,不需要在此文件中单独 import custom-index.css。如果样式缺失,需额外在此文件中 import CSS:import "../../../../src/pages/custom-index.css"

Step 2: Commit

git add i18n/en/docusaurus-plugin-content-pages/index.js
git commit -m "feat(i18n): add English homepage component"

Task 9:填写 code.json 翻译

Files:

  • Modify: i18n/en/code.json

Step 1: 重新生成 code.json 以包含 Translate 组件的 id

Run: npm run write-translations -- --locale en

Step 2: 读取并编辑 code.json

Run: Get-Content i18n/en/code.json

将所有 message 字段翻译为英文,参考对照表:

id英文翻译
homepage.layoutTitleHelp Center
homepage.descriptionHelp center, Global Proxies documentation, socks5 proxy ip, dynamic ip proxy, http proxy ip, dynamic ip, static ip, residential ip, dedicated ip
homepage.titleGlobal Proxies Documentation Center
homepage.hotQAHot Questions:
homepage.faqTitleFAQ:
homepage.viewMoreView More
theme.SearchBar.label (如果存在)Search

Step 3: Commit

git add i18n/en/code.json
git commit -m "feat(i18n): translate code.json to English"

Task 10:复制核心文档到英文目录

Files:

  • Create: i18n/en/docusaurus-plugin-content-docs/current/ 下的所有 .md 文件

Step 1: 创建目录并复制文件(不复制 image 文件夹)

在项目根目录运行以下命令:

# 根目录文档
$dest = "i18n/en/docusaurus-plugin-content-docs/current"
New-Item -ItemType Directory -Force -Path $dest

Copy-Item docs/intro.md "$dest/"
Copy-Item docs/Process.md "$dest/"
Copy-Item docs/Smart-check.md "$dest/"
Copy-Item docs/Contact-Us.md "$dest/"

# List
New-Item -ItemType Directory -Force -Path "$dest/List"
Copy-Item docs/List/*.md "$dest/List/"

# Buy-lssues
New-Item -ItemType Directory -Force -Path "$dest/Buy-lssues"
Copy-Item docs/Buy-lssues/Buy-lssues.md "$dest/Buy-lssues/"

# Get-Proxy
New-Item -ItemType Directory -Force -Path "$dest/Get-Proxy"
Copy-Item docs/Get-Proxy/*.md "$dest/Get-Proxy/"

# Faq
New-Item -ItemType Directory -Force -Path "$dest/Faq"
Copy-Item docs/Faq/*.md "$dest/Faq/"
Copy-Item docs/Faq/_category_.json "$dest/Faq/"

# proxy-Settings / Android-Setting
New-Item -ItemType Directory -Force -Path "$dest/proxy-Settings/Android-Setting"
Copy-Item docs/proxy-Settings/Android-Setting/Android-V2ray.md "$dest/proxy-Settings/Android-Setting/"
Copy-Item docs/proxy-Settings/Android-Setting/Android-Kitsunebi.md "$dest/proxy-Settings/Android-Setting/"
Copy-Item docs/proxy-Settings/Android-Setting/Android-Shadowrocket.md "$dest/proxy-Settings/Android-Setting/"

# proxy-Settings / ios-Setting
New-Item -ItemType Directory -Force -Path "$dest/proxy-Settings/ios-Setting"
Copy-Item docs/proxy-Settings/ios-Setting/iphone-settings.md "$dest/proxy-Settings/ios-Setting/"
Copy-Item docs/proxy-Settings/ios-Setting/iphone-Kitsunebi.md "$dest/proxy-Settings/ios-Setting/"
Copy-Item docs/proxy-Settings/ios-Setting/iphone-Shadowrocket.md "$dest/proxy-Settings/ios-Setting/"

# proxy-Settings / Windows-Setting
New-Item -ItemType Directory -Force -Path "$dest/proxy-Settings/Windows-Setting"
Copy-Item docs/proxy-Settings/Windows-Setting/windows-sstap.md "$dest/proxy-Settings/Windows-Setting/"
Copy-Item docs/proxy-Settings/Windows-Setting/windows-V2ray.md "$dest/proxy-Settings/Windows-Setting/"
Copy-Item docs/proxy-Settings/Windows-Setting/windows-edge.md "$dest/proxy-Settings/Windows-Setting/"
Copy-Item docs/proxy-Settings/Windows-Setting/windows-Google-Chrome.md "$dest/proxy-Settings/Windows-Setting/"
Copy-Item docs/proxy-Settings/Windows-Setting/windows-360Browser.md "$dest/proxy-Settings/Windows-Setting/"

# proxy-Settings / Fingerprint-Browser-Setting
New-Item -ItemType Directory -Force -Path "$dest/proxy-Settings/Fingerprint-Browser-Setting"
Copy-Item docs/proxy-Settings/Fingerprint-Browser-Setting/mbbrowser.md "$dest/proxy-Settings/Fingerprint-Browser-Setting/"
Copy-Item docs/proxy-Settings/Fingerprint-Browser-Setting/Adspower.md "$dest/proxy-Settings/Fingerprint-Browser-Setting/"
Copy-Item docs/proxy-Settings/Fingerprint-Browser-Setting/Hubstudio.md "$dest/proxy-Settings/Fingerprint-Browser-Setting/"
Copy-Item docs/proxy-Settings/Fingerprint-Browser-Setting/bitbrowser.md "$dest/proxy-Settings/Fingerprint-Browser-Setting/"
Copy-Item docs/proxy-Settings/Fingerprint-Browser-Setting/VMLogin.md "$dest/proxy-Settings/Fingerprint-Browser-Setting/"

Step 2: 确认文件复制完成

Run: Get-ChildItem -Recurse i18n/en/docusaurus-plugin-content-docs/current/ -Name | Where-Object { $_ -like "*.md" }

Expected: 应看到约 25-30 个 .md 文件。

Step 3: Commit

git add i18n/en/docusaurus-plugin-content-docs/current/
git commit -m "feat(i18n): copy docs to en locale (untranslated)"

Task 11:翻译核心文档(第一批 - 高优先级)

Files:

  • Modify: i18n/en/docusaurus-plugin-content-docs/current/ 下的文档

翻译顺序(按优先级):

  1. intro.md — 快速上手页面
  2. Process.md — 使用流程
  3. List/drf.md — 动态住宅产品介绍
  4. List/srt.md — 静态住宅产品介绍
  5. List/sct.md — 静态机房产品介绍
  6. Buy-lssues/Buy-lssues.md — 购买指南
  7. Get-Proxy/Get-Proxy.md — 获取代理
  8. Get-Proxy/Dynamic-flow-api-ip.md — 动态流量 API
  9. Smart-check.md — 智能检测
  10. Contact-Us.md — 联系我们

每个文件的翻译步骤:

  1. 读取文件内容
  2. 保留 frontmatter 结构(sidebar_position 等不变),将 title 翻译为英文
  3. 将正文 Markdown 内容全部翻译为英文
  4. 图片引用路径保持不变(Docusaurus 自动回退到中文版图片)
  5. 内部链接路径保持不变(不需要加 /en/ 前缀)

Step 最后: Commit

git add i18n/en/docusaurus-plugin-content-docs/current/
git commit -m "feat(i18n): translate core docs to English (batch 1)"

Task 12:翻译 FAQ 文档

Files:

  • Modify: i18n/en/docusaurus-plugin-content-docs/current/Faq/Faq.md
  • Modify: i18n/en/docusaurus-plugin-content-docs/current/Faq/Dynamic-Residence-Faq.md
  • Modify: i18n/en/docusaurus-plugin-content-docs/current/Faq/Static-Residence-Faq.md
  • Modify: i18n/en/docusaurus-plugin-content-docs/current/Faq/Data-Center-Faq.md

Step 1: 逐个翻译每个 FAQ 文件

  • 保留 frontmatter,翻译 title
  • 翻译所有问答内容
  • 图片路径保持不变

Step 2: Commit

git add i18n/en/docusaurus-plugin-content-docs/current/Faq/
git commit -m "feat(i18n): translate FAQ docs to English"

Task 13:翻译代理设置教程

Files:

  • Modify: i18n/en/docusaurus-plugin-content-docs/current/proxy-Settings/ 下所有 .md 文件

翻译顺序:

  1. Android-Setting/Android-V2ray.md
  2. Android-Setting/Android-Kitsunebi.md
  3. Android-Setting/Android-Shadowrocket.md
  4. ios-Setting/iphone-settings.md
  5. ios-Setting/iphone-Kitsunebi.md
  6. ios-Setting/iphone-Shadowrocket.md
  7. Windows-Setting/windows-sstap.md
  8. Windows-Setting/windows-V2ray.md
  9. Windows-Setting/windows-edge.md
  10. Windows-Setting/windows-Google-Chrome.md
  11. Windows-Setting/windows-360Browser.md
  12. Fingerprint-Browser-Setting/mbbrowser.md
  13. Fingerprint-Browser-Setting/Adspower.md
  14. Fingerprint-Browser-Setting/Hubstudio.md
  15. Fingerprint-Browser-Setting/bitbrowser.md
  16. Fingerprint-Browser-Setting/VMLogin.md

翻译要点:

  • 步骤说明翻译为英文
  • 软件名称保持原文(V2ray、Shadowrocket、Kitsunebi 等)
  • 截图中的中文界面无法翻译,但步骤描述需用英文清晰说明
  • 图片引用路径保持不变

Step 最后: Commit

git add i18n/en/docusaurus-plugin-content-docs/current/proxy-Settings/
git commit -m "feat(i18n): translate proxy settings docs to English"

Task 14:复制并翻译博客

Files:

  • Create: i18n/en/docusaurus-plugin-content-blog/ 下的文件

Step 1: 复制博客文件

$blogDest = "i18n/en/docusaurus-plugin-content-blog"
New-Item -ItemType Directory -Force -Path "$blogDest/2021-08-26-welcome"

Copy-Item blog/2019-05-28-first-blog-post.md "$blogDest/"
Copy-Item blog/2019-05-29-long-blog-post.md "$blogDest/"
Copy-Item blog/2021-08-01-mdx-blog-post.mdx "$blogDest/"
Copy-Item blog/2023-09-01-Updates.md "$blogDest/"
Copy-Item blog/authors.yml "$blogDest/"
Copy-Item blog/2021-08-26-welcome/index.md "$blogDest/2021-08-26-welcome/"

Step 2: 逐个翻译博客内容为英文

Step 3: Commit

git add i18n/en/docusaurus-plugin-content-blog/
git commit -m "feat(i18n): translate blog posts to English"

Task 15:端到端验证

Step 1: 验证英文版

Run: npm run start -- --locale en

检查清单:

  • 导航栏显示英文标签(Documentation / Developer API / Homepage / Plans)
  • 语言切换下拉显示 "中文 / English"
  • 首页标题显示 "Global Proxies Documentation Center"
  • 首页热门问答和常见问题显示英文
  • 侧边栏 category 标签显示英文
  • 文档内容显示英文
  • 博客内容显示英文
  • Footer 显示英文
  • 图片正常加载
  • 内部链接跳转正确(在 /en/ 前缀下)

Step 2: 验证中文版未受影响

Run: npm run start

检查清单:

  • 所有页面内容仍为中文
  • 导航栏语言切换器出现,点击 "English" 可切换到英文版

Step 3: 构建验证

Run: npm run build

Expected: 构建成功,无报错。build/ 目录下包含中文版(根目录)和英文版(/en/ 子目录)。

Step 4: Final Commit

git add .
git commit -m "feat(i18n): complete English internationalization"

执行顺序总结

阶段Task说明文件数
基础配置Task 1-2改 config + 生成模板1 + 自动生成
UI 翻译Task 3-5navbar / footer / sidebar JSON3
首页改造Task 6-9<Translate> + 英文首页 + code.json4
文档复制Task 10复制所有 md 文件到 en 目录~25
核心文档翻译Task 11首页/产品/购买/获取代理等10
FAQ 翻译Task 12常见问题4
教程翻译Task 13代理设置教程16
博客翻译Task 14博客文章5
验证Task 15端到端检查0

If this document is not helpful, or if you have any suggestions, please click the area below to submit feedback. We will process it promptly.

Did this article answer your question?