日语站个人中心显示“太郎 山田”,会员邮件称呼也反了,上线一周收到 9 封用户来信。日志里能对上时间点,这种反而好排。

代码固定用 first_name 加空格加 last_name,日语的姓名顺序是姓在前。注册表单又没有区分姓和名的输入框,两个值是从单个全名拆出来的。显示层没有按 locale 调整顺序。这一点先确认清楚,后面就不用反复试。

const name = locale.startsWith('ja') ? [last, first] : [first, last];
name.join(' ');

「姓名顺序」确认了原因之后,改动尽量只碰那一处,顺手改的东西后面最容易出问题。偶发问题先统计频率,一小时几次和一天一次,查法完全不同。

改完顺手把文档补一句,省得下次自己重新推一遍。监控和日志的时间要对上,时区不一致会多绕很大一圈。

处理上按这个顺序:注册表单拆成姓和名两个字段 分别存储;显示时按 locale 决定拼接顺序 日语姓在前;称呼只取姓 不要拼全名;补一条数据迁移 把历史全名按规则回填。

结果对不对很好判断,日语站个人中心显示“山田 太郎”,英文站仍是“Taro Yamada”。

作者 9823189