我需要在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