def mt_modelform_register_clean_method(form_self, field_name, func, nomaster=False):
    """
    You can add clean_<field_name> for each translated field. For example:

    class MyModelForm(models.ModelForm):
        class Meta:
            model = MyModel
            _mt_fields = mt_fields(('title', 'description'), nomaster=True)
            fields = _mt_fields

        def __init__(self, *args, **kwargs):
            super(ItemCategoryEditForm, self).__init__(*args, **kwargs)

            mt_modelform_register_clean_method(self, 'title', self.mt_clean_title, nomaster=True)

        def mt_clean_title(self, field_name, lang):
            value = self.cleaned_data[field_name]
            # validation here
            return value
    """
    args_list = [('{}_{}'.format(field_name, lang), lang) for lang in AVAILABLE_LANGUAGES]
    if not nomaster:
        args_list.append((field_name, None))

    def _get_mt_clean_method(args):
        def _mt_clean_method():
            return func(*args)
        return _mt_clean_method

    for item_args in args_list:
        method_name = 'clean_{}'.format(item_args[0])
        setattr(form_self, method_name, _get_mt_clean_method(item_args))