Exemplo n.º 1
0
    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)