我需要在django管理中自动翻译数据。Django翻译模型数据保存
我目前使用django rosetta手动翻译所有静态文本,以简化翻译。我需要做的是在管理界面中使用Microsoft Translator API自动翻译所有数据。
让我们假设我有一个函数来做翻译。我应该在翻译功能中使用django-modeltranslation并覆盖每个模型的保存功能吗?
有帮助的任何提示,模块或代码片段。
我需要在django管理中自动翻译数据。Django翻译模型数据保存
我目前使用django rosetta手动翻译所有静态文本,以简化翻译。我需要做的是在管理界面中使用Microsoft Translator API自动翻译所有数据。
让我们假设我有一个函数来做翻译。我应该在翻译功能中使用django-modeltranslation并覆盖每个模型的保存功能吗?
有帮助的任何提示,模块或代码片段。
如果您需要翻译,并从翻译的语言是固定的,如你不打算的用户在几种语言的输入数据,那么你可以在模型中保存方法转换数据:
class ModelName(models.Model):
data = models.CharField()
def save(self):
""" Extension of parent save method """
for name in ModelName._meta.get_all_field_names():
field = getattr(name, ModelName, None)
field = translate(field)
super(ModelName, self).save()
另一种选择是做翻译的数据输入验证,如果它是一个形式:
class ModelNameForm(forms.Form):
data = forms.CharField()
def clean_data(self):
data = self.cleaned_data['data']
return translate(data)
可以说,我在表格中有20行,有没有办法做翻译,而不必一个一个的调用所有字段的翻译? – moenad
如果你在表单上做了这个'clean()',将会是一个开始的点,例如在'self.cleaned_data的值为key'形式的迭代字段中:' – PepperoniPizza
我更新了我的答案,但是我没有试过它,所以我不能保证它会起作用,但这是主意。 – PepperoniPizza
它是什么,你需要翻译?用户输入的是文本吗? – PepperoniPizza
我需要翻译用户在django管理员输入的所有charfields数据。 – moenad