def handle(self, *args, **options): """Run the command. """ # Settings. locale_dir = settings.COLLECTMESSAGES_PATH languages = settings.COLLECTMESSAGES_LANGUAGES metadata = getattr(settings, "COLLECTMESSAGES_METADATA", {}) # Generate a POT-file. if options["pot-file"]: # Verbose. if options["verbosity"]: self.stdout.write( "collect_messages: processing POT-file") # Create the output directory. if not os.path.exists(locale_dir): os.makedirs(locale_dir) # Build the POT-file. potfile = POFile() potfile.metadata = metadata for message in self._find_all(verbose=options["verbosity"]): potfile.append(message) # Save the POT-file. potfile_path = os.path.join(locale_dir, "django.pot") potfile.save(potfile_path) # Generate PO-files for all languages. for language in languages: # Verbose. if options["verbosity"]: self.stdout.write( "collect_messages: processing language '%s'" % language) # Create the output directory. message_dir = os.path.join(locale_dir, language, "LC_MESSAGES") if not os.path.exists(message_dir): os.makedirs(message_dir) # Build a PO-file. pofile = POFile() pofile.metadata = metadata for message in self._find_all(language=language, verbose=options["verbosity"]): pofile.append(message) # Save the PO-file. pofile_path = os.path.join(message_dir, "django.po") pofile.save(pofile_path) # Save the MO-file. if options["compile"]: mofile_path = os.path.join(message_dir, "django.mo") pofile.save_as_mofile(mofile_path)
def save_pofile_as_pofile_and_mofile(pofile: polib.POFile, pofile_path: str): """Returns pofile_abspath, mofile_abspath""" pofile.save(pofile_path) mofilepath = re.sub(r"\.po$", ".mo", pofile_path) pofile.save_as_mofile(mofilepath) return (pofile_path, mofilepath)