Django跨应用传递ugettext_lazy标记的消息时翻译失效问题求助
Django跨应用传递ugettext_lazy标记的消息时翻译失效问题求助
大家好,我最近碰到个棘手的Django翻译问题,想请教下各位大佬。我现在在维护两个第三方开发的Django应用:一个是负责前端UI的app-ui,另一个是后端服务app-api。
app-api用了Django的消息翻译机制,默认语言是英语,原作者已经完成了意大利语的翻译,对应的翻译文件存在app-api/apps/sub_app1/locale/it/LC_MESSAGES/django.po里。代码里标记需要翻译的消息用的是ugettext_lazy,导入方式是:
from django.utils.translation import ugettext_lazy as _
另外,app-api里还有几个子应用,其中sub_app1的models.py文件里定义了模型,同时写了一些数据验证逻辑,比如下面这段:
if client.status != ACTIVE: raise ValidationError(_(f'customer {customer.name}...'))
现在的问题是,当这个验证错误信息从app-api传递到app-ui之后,翻译就失效了——本该显示意大利语的消息,要么还是英语原文,要么就是没被正确解析的字符串。有没有朋友遇到过类似的跨应用传递翻译消息失效的情况?求指点解决办法!
备注:内容来源于stack exchange,提问作者Tms91
相关产品推荐
相关产品推荐

