Oli*_*ons 5 django translation
我有一个应用程序,用户可以在其中填写文本字段。.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
Run Code Online (Sandbox Code Playgroud)
这很好,似乎有效。所以它在文件中搜索.po。所以我想在这些.po文件中添加自己的句子或单词。当我尝试添加源文件中没有的翻译时,当我调用makemessages时,我会得到如下评论:
#~ msgid "I'm a test"
#~ msgstr "Godsmack - Cryin' like a b"
Run Code Online (Sandbox Code Playgroud)
怎么解决这个问题呢?如果我没有以正确的方式这样做(我已经阅读了很多有关django 翻译的内容),那么该怎么做?
Django 文档提到它makemessages无法提取计算值的翻译,正如您的示例中所发生的那样。
为了对从其他地方检索的字符串进行翻译,您必须将它们作为字符串文字包含在代码中。这可以通过 @psychok7 建议的方式来实现,创建一个单独的 .py 列出所有这些字符串。
自动化此操作的一种方法是编写自定义django-admin命令,该命令将从数据库检索要翻译的字符串并将它们放入某个文件中,可通过 定位makemessages,例如.txt使用翻译标签。
| 归档时间: |
|
| 查看次数: |
1886 次 |
| 最近记录: |