# 一天上线七种语言，和我扣下的两个页面

我怎样让 laithjunaidy.com 在三个小时里从三种语言变成七种，上线前我会做哪两项检查，以及这两项检查可以直接复制的提示词。

https://laithjunaidy.com/zh/writing/seven-languages-two-held-back
作者 Laith Aljunaidy. 发布于: 2026-11-14.

---

![概括这次上线的五张卡片：按名字列出的七种语言，3 小时 14 分钟，一个写着 0 Artikel 的页面，83 个标题中的 16 个，以及规则：按设备语言，不按国家](https://laithjunaidy.com/writing/seven-languages/bento.jpg)

*五张卡片看这次上线。*

2026 年 11 月 9 日早上，这个网站有三种语言：英语、阿拉伯语和中文。它们覆盖了我目前工作的市场。我想在需要下一个市场之前，先把它打开。

10:07，我给出了方向：

```
给整个网站加上德语、法语、西班牙语和土耳其语。每个案例、每篇文章、每个研究页面都要加。我也要把我的服务带到欧盟。
```

13:21，网站上线了七种语言。三小时十四分钟。

我用 AI 编程 agent 来做网站，也按我带团队的方式安排它们工作。我给方向，定规则。它们来做。第二个 agent 必须先像陌生人一样读完，才能上线。这个 agent 没有写过其中任何内容。最后这条规则在三个小时里两次拦住了上线，两次都拦得对。

这篇文章写给要给网站或产品加一种语言的人。你不需要懂代码。我给出的每条指令都在这里，可以当作提示词直接复制。

## 访客会看到哪种语言？

第一个决定和翻译无关。我先决定一个人打开网站时会看到哪种语言。

大多数网站按访客的国家来选。这是一条死路。一个在迪拜工作的德国人会看到阿拉伯语。一个在安曼、说英语的经理会看到阿拉伯语。一个在柏林出差的沙特创始人会看到德语。三个都错了，而他们每个人其实都已经给出了正确答案：就是他们手机设置的语言。

所以我定了这条规则：

```
按访客的系统语言打开网站，绝不按国家。手机设置为阿拉伯语，就显示阿拉伯语。只在首页这样做：别人分享的链接，必须按发出时的样子打开。访客从菜单选过语言后，以后都以这个选择为准。绝不跳转搜索引擎。遇到还不支持的语言，就显示英语。
```

![三部手机显示 laithjunaidy.com 的同一页面：设置为德语的手机显示德语，设置为阿拉伯语的手机显示阿拉伯语，设置为英语的手机显示英语](https://laithjunaidy.com/writing/seven-languages/phones.jpg)

*同一个地址，三部手机。无论手机在哪里，都由手机的设置决定。*

这是 11 月 14 日的线上网站面对五个访客时的反应：

| 访客 | 网站怎么做 |
| :- | :- |
| 手机设置为德语，打开首页 | 跳到德语首页 |
| 手机设置为阿拉伯语，其次英语，打开首页 | 跳到阿拉伯语首页 |
| 手机设置为英语，其次阿拉伯语，打开首页 | 停在英语 |
| 手机设置为意大利语，打开首页 | 停在英语 |
| 手机设置为阿拉伯语，打开别人分享的案例链接 | 按发出时的样子打开链接 |

第三行是按国家判断做不到的。这位读者懂阿拉伯语，但更喜欢英语，所以停在英语。

## 可以上线了吗？

11:21，新语言已经做好了。我说：

```
现在上线。
```

网站没有上线。我自己的规则拦住了它：审查结果还没回来。每次上线都要经过这项审查：

```
像第一次来的访客一样审查这次上线。你没有写过其中任何内容。打开每种语言的每个新页面，读到最后。报告访客会看到的任何空白、错误或未完成的地方。不要修复。只报告。
```

11:29，审查回来了，带着一个警告：先别上线。

新语言和前三种用的是同一套模板，所以从第一分钟起，每种语言都有一个作品页面、一个文章页面和一个商店页面。而翻译还在陆续进来。这是那次构建出来的德语文章页面：

![浏览器窗口中的 laithjunaidy.com/de/writing，来自第一次构建：页面已经加载完毕，空白面板上方写着 0 Artikel](https://laithjunaidy.com/writing/seven-languages/empty-page.jpg)

*页面没有继续加载。这就是全部内容："0 Artikel"，零篇文章。为了拍这张图，我这周把那个版本重新构建了一遍。*

没有测试发现它，因为每个测试问的都是页面存不存在。一个德国访客会进到一个用很好的德语告诉他这里什么都没有的网站。

修复只需要一条规则，值得拿去用：

```
一种语言只有在有条目可列时，才能有列表页。在这种语言的第一篇文章出现之前，不要构建它的文章页面，不要链接到它，也不要让搜索引擎看到它。作品页面和商店页面也一样。
```

审查一共列了九个问题。还有一个值得知道。一位用德语手机的读者在一篇英文案例里点了首页，被送到了德语。他已经通过访问那篇页面选择了英语。现在跳转不会去动任何从网站内部发起的点击。

## 翻译好的文件就是完成的文件吗？

13:16，108 个翻译文件全部到齐，每种新语言 27 个，测试也通过了。我又把它送去审查。

13:19，审查回来了，有一个发现：这个网站最长的文章，[设计流程清单](https://laithjunaidy.com/zh/writing/design-process-checklist)，它的西班牙语和土耳其语版本被截断了。

| 版本 | 字数 | 标题数 |
| :- | -: | -: |
| 英语 | 10,918 | 83 |
| 德语 | 10,973 | 83 |
| 土耳其语 | 5,318 | 50 |
| 西班牙语 | 2,914 | 16 |

西班牙语文件在 83 个标题中的第 16 个之后就停了。它有翻译好的标题，翻译好的摘要，有效的日期，格式也干净。它里面没有任何坏掉的东西。它只是短，页面顶部看起来完全没问题。

一篇提前结束的翻译，在有人往下滚动之前，看起来和完整的翻译一模一样。所以我把往下滚动定成了规则。这项检查适用于任何一组翻译文件：

```
把每个翻译文件和它的原文比较。对每一对文件，统计标题数和词数。列出标题数不足原文 80% 的每篇翻译，同时给出两边的数量。不要修复。只报告。
```

现在，这个网站每次上线前都会做这项检查，没通过的翻译会阻止上线。西班牙语文件只有 83 个标题中的 16 个，没有通过。土耳其语文件只有 83 个中的 50 个，也没有通过。

这两个短文件我没有发布，也没有为了它们推迟另外 106 个。我把两个都标成了草稿。草稿没有页面，所以原来指向这两个页面的十二个链接，现在指向英文文章。网站在 13:21 上线，离那个发现两分钟。

![浏览器窗口中今天的 laithjunaidy.com/de/writing：17 Artikel，下方列着文章](https://laithjunaidy.com/writing/seven-languages/live-page.jpg)

*今天的同一个页面，已经有东西可列。*

我在 11 月 14 日写这篇文章时，那份清单的西班牙语和土耳其语地址仍然返回"找不到页面"，德语和法语地址返回文章。那两个扣下的页面还扣着。

## 如果你要加一种语言

- 不要按访客的国家选语言，读取他们设备请求的语言。
- 不要每个页面都跳转，只跳转首页，分享的链接按发出时的样子打开。
- 不要给每种语言构建每个页面，列表页在它第一个条目出现时再构建。
- 不要相信一次全绿的测试，让没有参与搭建的人像访客一样打开新语言。
- 不要只检查翻译存不存在，检查它和原文是不是一样大。数一数标题。
- 不要发布一篇短了的翻译，也不要为了它推迟一切，把它标成草稿，把它的链接指向原文。

我预料到的问题：为什么不把这两个文件做完，完整地上线？我没有，原因有两个。108 个文件里 106 个是完整的，两个短的只涉及四种语言里两种语言的一篇文章。而且草稿不会让西班牙语或土耳其语读者失去任何他们原来有的东西：前一天，那篇文章没有他们语言的版本，现在也还没有。
