Django翻译:添加自定义翻译

5
我有一个应用程序,用户可以填写文本字段。 如果用户输入的字符串在.po翻译文件中,则我想要“尝试”将其翻译。 因此,在我的某个详细视图中,我做了以下操作:
class InterrogationDetailView(generic.DetailView):
    model = Interrogation

    def get_context_data(self, **kwargs):
        context = super(InterrogationDetailView, self)\
            .get_context_data(**kwargs)
        if self.object is not None:
            context[u'translated_word'] = {
                u'description': _(self.object.description),
            }
        return context

很好,看起来它能够工作。所以它在.po文件中搜索。因此,我想在这些.po文件中添加自己的句子或单词。当我尝试添加一个不在我的源文件中的翻译时,当我调用makemessages时,它们会被注释掉:

#~ msgid "I'm a test"
#~ msgstr "Godsmack - Cryin' like a b"

如何解决这个问题?如果我没有用正确的方式(我已经读了很多有关django translation的资料),那应该怎么做呢?

1
我似乎找不到重复的部分,但我曾经看到建议只需创建一个包含翻译的单独的.py文件... - Sayse
2
没有理由投票关闭这个问题,我认为它完全有效且不带主观性。 - Wtower
https://dev59.com/Y2sz5IYBdhLWcg3weHqU#20439571 - psychok7
1个回答

1
Django文档提到makemessages无法提取计算值的翻译,就像您的示例一样。为了使从其他地方检索到的字符串也能够进行翻译,您必须将它们作为字符串文字放入代码中。可以通过@psychok7建议的方法实现这一点,创建一个单独的.py文件来列出所有这些字符串。自定义django-admin命令的一种自动化方法是从数据库中检索要翻译的字符串并将其放入某个文件中,可由makemessages定位,例如带有翻译标记的.txt文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接