def main(file, locale): """ Takes a source po file, reads it, and writes out a new po file in :param locale: containing a dummy translation. """ if not os.path.exists(file): raise IOError('File does not exist: %s' % file) pofile = polib.pofile(file) converter = Dummy() converter.init_msgs(pofile.translated_entries()) for msg in pofile: converter.convert_msg(msg) new_file = new_filename(file, locale) create_dir_if_necessary(new_file) pofile.save(new_file)
def main(): logging.basicConfig(stream=sys.stdout, level=logging.INFO) create_dir_if_necessary(LOCALE_DIR) source_msgs_dir = CONFIGURATION.source_messages_dir remove_file(source_msgs_dir.joinpath('django.po')) generated_files = ('django-partial.po', 'djangojs.po', 'mako.po') for filename in generated_files: remove_file(source_msgs_dir.joinpath(filename)) # Extract strings from mako templates. babel_mako_cmd = 'pybabel extract -F %s -c "Translators:" . -o %s' % (BABEL_CONFIG, BABEL_OUT) # Extract strings from django source files. make_django_cmd = ( 'django-admin.py makemessages -l en --ignore=src/* --ignore=i18n/* ' '--extension html' ) # Extract strings from Javascript source files. make_djangojs_cmd = ( 'django-admin.py makemessages -l en --ignore=src/* --ignore=i18n/* ' '-d djangojs --extension js' ) execute(babel_mako_cmd, working_directory=BASE_DIR) execute(make_django_cmd, working_directory=BASE_DIR) # makemessages creates 'django.po'. This filename is hardcoded. # Rename it to django-partial.po to enable merging into django.po later. os.rename( source_msgs_dir.joinpath('django.po'), source_msgs_dir.joinpath('django-partial.po') ) execute(make_djangojs_cmd, working_directory=BASE_DIR) for filename in generated_files: LOG.info('Cleaning %s' % filename) po = pofile(source_msgs_dir.joinpath(filename)) # replace default headers with edX headers fix_header(po) # replace default metadata with edX metadata fix_metadata(po) # remove key strings which belong in messages.po strip_key_strings(po) po.save()
def main(): logging.basicConfig(stream=sys.stdout, level=logging.INFO) create_dir_if_necessary(LOCALE_DIR) source_msgs_dir = CONFIGURATION.source_messages_dir remove_file(source_msgs_dir.joinpath('django.po')) generated_files = ('django-partial.po', 'djangojs.po', 'mako.po') for filename in generated_files: remove_file(source_msgs_dir.joinpath(filename)) # Prepare makemessages command. ignore_dirs = ["docs", "src", "i18n", "test_root"] ignores = " ".join("--ignore={}/*".format(d) for d in ignore_dirs) makemessages = 'django-admin.py makemessages -l en ' + ignores # Extract strings from mako templates. babel_mako_cmd = 'pybabel extract -F %s -c "Translators:" . -o %s' % ( BABEL_CONFIG, BABEL_OUT) execute(babel_mako_cmd, working_directory=BASE_DIR) # Extract strings from django source files, including .py files. make_django_cmd = makemessages + ' --extension html' execute(make_django_cmd, working_directory=BASE_DIR) # Extract strings from Javascript source files. make_djangojs_cmd = makemessages + ' -d djangojs --extension js' execute(make_djangojs_cmd, working_directory=BASE_DIR) # makemessages creates 'django.po'. This filename is hardcoded. # Rename it to django-partial.po to enable merging into django.po later. os.rename(source_msgs_dir.joinpath('django.po'), source_msgs_dir.joinpath('django-partial.po')) for filename in generated_files: LOG.info('Cleaning %s' % filename) po = pofile(source_msgs_dir.joinpath(filename)) # replace default headers with edX headers fix_header(po) # replace default metadata with edX metadata fix_metadata(po) # remove key strings which belong in messages.po strip_key_strings(po) po.save()
def main(file, locale): """ Takes a source po file, reads it, and writes out a new po file in :param locale: containing a dummy translation. """ if not os.path.exists(file): raise IOError('File does not exist: %s' % file) pofile = polib.pofile(file) converter = Dummy() for msg in pofile: converter.convert_msg(msg) # If any message has a plural, then the file needs plural information. # Apply declaration for English pluralization rules so that ngettext will # do something reasonable. if any(m.msgid_plural for m in pofile): pofile.metadata['Plural-Forms'] = 'nplurals=2; plural=(n != 1);' new_file = new_filename(file, locale) create_dir_if_necessary(new_file) pofile.save(new_file)
def main(): logging.basicConfig(stream=sys.stdout, level=logging.INFO) create_dir_if_necessary(LOCALE_DIR) source_msgs_dir = CONFIGURATION.source_messages_dir remove_file(source_msgs_dir.joinpath('django.po')) generated_files = ('django-partial.po', 'djangojs.po', 'mako.po') for filename in generated_files: remove_file(source_msgs_dir.joinpath(filename)) # Extract strings from mako templates babel_mako_cmd = 'pybabel extract -F %s -c "TRANSLATORS:" . -o %s' % ( BABEL_CONFIG, BABEL_OUT) # Extract strings from django source files make_django_cmd = 'django-admin.py makemessages -l en --ignore=src/* --ignore=i18n/* ' \ + '--extension html' # Extract strings from javascript source files make_djangojs_cmd = 'django-admin.py makemessages -l en -d djangojs --ignore=src/* ' \ + '--ignore=i18n/* --extension js' execute(babel_mako_cmd, working_directory=BASE_DIR) execute(make_django_cmd, working_directory=BASE_DIR) # makemessages creates 'django.po'. This filename is hardcoded. # Rename it to django-partial.po to enable merging into django.po later. os.rename(source_msgs_dir.joinpath('django.po'), source_msgs_dir.joinpath('django-partial.po')) execute(make_djangojs_cmd, working_directory=BASE_DIR) for filename in generated_files: LOG.info('Cleaning %s' % filename) po = pofile(source_msgs_dir.joinpath(filename)) # replace default headers with edX headers fix_header(po) # replace default metadata with edX metadata fix_metadata(po) # remove key strings which belong in messages.po strip_key_strings(po) po.save()