def add_new_language(self, language, request): """ Creates new language file. """ if self.new_lang != "add": raise ValueError("Not supported operation!") if not self.file_format_cls.supports_new_language(): raise ValueError("Not supported operation!") base_filename = self.get_new_base_filename() if not self.file_format_cls.is_valid_base_for_new(base_filename): raise ValueError("Not supported operation!") filename = self.file_format_cls.get_language_filename(self.filemask, language.code) fullname = os.path.join(self.get_path(), filename) self.file_format_cls.add_language(fullname, language.code, base_filename) translation = Translation.objects.create( subproject=self, language=language, filename=filename, language_code=language.code, commit_message="Created new translation.", ) translation_post_add.send(sender=self.__class__, translation=translation) translation.git_commit( request, translation.get_author_name(request.user), timezone.now(), force_commit=True, force_new=True ) translation.check_sync(force=True, request=request)