code: def formfield(self, *args, **kwargs):
          
          formfield = super(TranslationField, self).formfield(*args, **kwargs)
          if isinstance(formfield, forms.CharField):
              if self.empty_value is None:
                  from modeltranslation.forms import NullCharField
                  form_class = formfield.__class__
                  kwargs['form_class'] = type(
                      'Null%s' % form_class.__name__, (NullCharField, form_class), {})
                  formfield = super(TranslationField, self).formfield(*args, **kwargs)
              elif self.empty_value == 'both':
                  from modeltranslation.forms import NullableField
                  form_class = formfield.__class__
                  kwargs['form_class'] = type(
                      'Nullable%s' % form_class.__name__, (NullableField, form_class), {})
                  formfield = super(TranslationField, self).formfield(*args, **kwargs)
                  if isinstance(formfield.widget, (forms.TextInput, forms.Textarea)):
                      formfield.widget = ClearableWidgetWrapper(formfield.widget)
          return formfield
docs: Returns proper formfield, according to empty_values setting
          (only for ``forms.CharField`` subclasses).
  
          There are 3 different formfields:
          - CharField that stores all empty values as empty strings;
          - NullCharField that stores all empty values as None (Null);
          - NullableField that can store both None and empty string.
  
          By default, if no empty_values was specified in model's translation options,
          NullCharField would be used if the original field is nullable, CharField otherwise.
  
          This can be overridden by setting empty_values to '' or None.
  
          Setting 'both' will result in NullableField being used.
          Textual widgets (subclassing ``TextInput`` or ``Textarea``) used for
          nullable fields are enriched with a clear checkbox, allowing ``None``
          values to be preserved rather than saved as empty strings.
  
          The ``forms.CharField`` somewhat surprising behaviour is documented as a
          "won't fix": https://code.djangoproject.com/ticket/9590.