泰语菜单

经常去家附近的一家小酒吧。
那里的菜都做得很好吃,服务员和老板都不会说英文和中文,
只有泰语菜单,而且是纯泰语、没有配图的那种。
每次去吃饭,老板和服务员都很开心,然后各种翻译工具来点菜,也挺折腾的。
于是一拍脑袋,就想给他们做一份带英文和中文翻译的菜单。
用手机拍了他们的菜单,带回家研究。
菜单设计
核心需求很简单:把泰语菜单翻译成对应的英文和中文。
之前做点餐软件时了解过多语言方案,但现在不一样了——Agent 能很快理解诉求,只要把思路说清楚,它就能给出不错的数据方案。
翻译的小尴尬
对泰语还不熟,只能靠 AI 翻译菜名。
有 AI 就好办很多:在 prompt 里说明这是菜单、把上下文给足,准确率大概能到 95%。
但也有翻不准的地方,比如泰语里的「罗非鱼」和「红鲷鱼」,AI 容易搞混,可能是模型的问题。
开发用时
整体开发用了一天多,挺感慨的。这些内容要是以前纯手写,估计得两周以上;
现在大部分时间其实花在调代码上。真是程序员的春天。
测试优先
以前写页面时,测试用例最让人头疼;现在用 vitest 写起来很轻松,代码也更有底。每次加完新功能,让 AI 补一波测试用例就行。
一些技术拆解
路由设计.
通过 [route-path] 来实现 类似 xxx.com/shop/route-path 导航导对应的 shop 页面,这块能力 NextJS 实现起来很容易。
混合使用 SSR 和 Client View.
合理使用 SSR 直出一些数据,并且 用 Client view 来异步获取数据,这样做的好处是页面加载会快一些。 一些请求较久的借口转移到 client view 上做。避免SSR阻塞。
Radis 做缓存
在做接口缓存的时候,不知道是不是自己对 NextJS 的 db cache 理解问题,感觉清理缓存有的时候不成功,比如更新菜单信息后,需要清理缓存。
后来临时做了 radis 缓存,体感要稍微慢一些。
地址:
计划弄个域名。 还没想好起什么。
