如何最好地将作为变量传递的字符串转换为Django模块?

2024-09-30 16:26:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在Django中做我的第一步,并试图让文本的翻译工作,我通过一个.ini文件传递到应用程序中。在

假设我的init.ini是:

[test]
GREETING = Hello World

在我的settings.py中,我在做:

^{pr2}$

调用makemessage时,我的标记翻译不显示。在

documentation上写着

(The caveat with using variables or computed values, as in the previous two examples, is that Django’s translation-string-detecting utility, django-admin makemessages, won’t be able to find these strings. More on makemessages later.)

但是,尽管文档页面上有大量的makemessage,但它并没有提供如何转换变量/计算值的解决方案。因此,我的问题是:

有没有推荐的实用方法可以将字符串作为变量传递到python模块中并让makemessage捕捉它们?在

编辑
django-admin makemessages -l de --e=html,py,txt,ini中添加扩展名也不起作用,但是现在我想知道如何制作一个txt文件来覆盖它。也许这是个主意。在


Tags: 文件djangopytest文本txt应用程序hello
1条回答
网友
1楼 · 发布于 2024-09-30 16:26:42

所以这个django-admin makemessages -l de e=html,py,txt,ini让我走到了正确的轨道上,因为如果txt默认按照documentation包含,它一定会以某种方式工作。在

我创建了foo.txt

_("yeah why not")
{% trans "maybe like this" %}

当调用makemessages时,第二个片段出现在.po文件中。在

我创建了foo.ini

^{pr2}$

运行django-admin makemessages -l de e=html,py,txt,ini时,还将第二个片段包含在.po文件中。在

因此,{%trans”“%}-验证初始化文件中的所有文本片段似乎可以完成这项工作。然后我可以从我的模块中获取翻译后的值。在

相关问题 更多 >