Exemplo n.º 1
0
    def handle(self, *args, **options):
        if get_settings('TRANSLATIONS_AUTO_CREATE_LANGUAGE_DIRS'):
            for language, language_name in settings.LANGUAGES:
                for locale in settings.LOCALE_PATHS:
                    language_dir_path = os.path.join(locale, language)
                    if not os.path.isdir(language_dir_path):
                        os.mkdir(language_dir_path)

        self.manager = Manager()

        if get_settings('TRANSLATIONS_MAKE_BACKUPS'):
            self.manager.backup_po_to_db()

        self.angular_domain = False

        os.chdir(get_settings('TRANSLATIONS_PROJECT_BASE_DIR'))

        if 'django' in options['domain']:
            kwargs = deepcopy(options)
            kwargs.update({'domain': 'django'})
            super(Command, self).handle(*args, **kwargs)

        if get_settings('TRANSLATIONS_ENABLE_API_ANGULAR_JS'):
            self.domain = 'angularjs'
            self.extensions = ['.html', '.js']
            created = self.gettext_angular_js()

            if created:
                self.angular_domain = True
                kwargs = deepcopy(options)
                kwargs.update({'domain': 'djangojs'})
                kwargs.update({'extensions': ['html', 'js']})
                temp_dir = os.path.join(get_settings('TRANSLATIONS_BASE_DIR'),
                                        'angularjs_temp')
                os.chdir(temp_dir)
                super(Command, self).handle(*args, **kwargs)
                options['extensions'] = []
                self.angular_domain = False

            translation_temp_dir_path = os.path.join(
                get_settings('TRANSLATIONS_BASE_DIR'), 'angularjs_temp')
            if os.path.exists(translation_temp_dir_path):
                shutil.rmtree(translation_temp_dir_path)

            os.chdir(get_settings('TRANSLATIONS_PROJECT_BASE_DIR'))

        if 'djangojs' in options['domain']:
            kwargs = deepcopy(options)
            kwargs.update({'domain': 'djangojs'})
            # Force jsx-files to be read
            kwargs.update({'extensions': ['js', 'jsx']})
            super(Command, self).handle(*args, **kwargs)

        try:
            from django.core.management.commands.makemessages import make_messages as old_make_messages
        except ImportError:
            self.manager.postprocess()
 def handle(self, *args, **options):
     manager = Manager()
     manager.load_data_from_po()