Django i18n无法在dict中使用翻译文本

q3qa4bjr  于 2023-08-08  发布在  Go
关注(0)|答案(1)|浏览(99)

我无法将翻译的文本存储在字典中

class TestAPIView(APIView):

    def get(self, request):
        return Response({'msg': _("My error msg")})

字符串
上面的代码是有效的。然而当我试着把文本变成口述时。

msg = {
   123 : _("My error msg")
}

class TestAPIView(APIView):

    def get(self, request):
        return Response({'msg': msg[123]})


这并没有翻译文本。我试过重新运行makemessages和compilemessages,但是没有用。
有什么帮助吗?

sdnqo3pr

sdnqo3pr1#

你需要使用**gettext_lazy(…)[Django-doc],而不是gettext(…)**[Django-doc]来防止翻译字符串“* preferably *":

from django.utils.translation import gettext_lazy as _

msg = {123: _('My error msg')}

class TestAPIView(APIView):
    def get(self, request):
        return Response({'msg': msg[123]})

字符串

相关问题