X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/6b780de1a5ee6c4e5acfb0cf4c8832a41e0b1a36..0bd2c341a8b55f817c2e193a6c4658d52ef95961:/apps/modeltranslation/management/commands/translation2po.py diff --git a/apps/modeltranslation/management/commands/translation2po.py b/apps/modeltranslation/management/commands/translation2po.py deleted file mode 100644 index 9ab8489c6..000000000 --- a/apps/modeltranslation/management/commands/translation2po.py +++ /dev/null @@ -1,82 +0,0 @@ -import polib - -import os -import sys -import time -from optparse import make_option -from django.conf import settings -from django.core.management.base import BaseCommand -from django.core.management.color import color_style - -import modeltranslation.models -from modeltranslation.translator import translator, NotRegistered - - -def metadata(language=''): - "get metadata for PO, given language code" - t = time.strftime('%Y-%m-%d %H:%M%z') - - return { - 'Project-Id-Version': '1.0', - 'Report-Msgid-Bugs-To': 'marcin.koziej@nowoczesnapolska.org.pl', - 'POT-Creation-Date': '%s' % t, - 'PO-Revision-Date': '%s' % t, - 'Last-Translator': 'you ', - 'Language-Team': '%s ' % language, - 'MIME-Version': '1.0', - 'Content-Type': 'text/plain; charset=utf-8', - 'Content-Transfer-Encoding': '8bit', - } - - -def lang(field_name): - "Get the language code from localized field name" - return field_name.split('_')[-1] - - -def make_po(language=''): - "Create new POFile object for language code" - po = polib.POFile() - po.metadata = metadata(language) - return po - - -class Command(BaseCommand): - option_list = BaseCommand.option_list + ( - make_option('-d', '--directory', help='Specify which directory should hold generated PO files', dest='directory'), - ) - help = 'Export models from app to po files' - args = 'app' - - def handle(self, appname, **options): - app = __import__(appname) - pofiles = {} - for mdname in dir(app.models): - if mdname[0] == '_': continue - md = getattr(app.models, mdname) - try: - opts = translator.get_options_for_model(md) - except NotRegistered: - continue - - for obj in md.objects.all().order_by('pk'): - for fld in opts.fields: - for locfld in opts.localized_fieldnames[fld]: - cur_lang = lang(locfld) - try: - po = pofiles[cur_lang] - except: - po = make_po(cur_lang) - pofiles[cur_lang] = po - - entry = polib.POEntry( - msgid=getattr(obj, '%s_%s' % (fld, settings.LANGUAGE_CODE)), - msgstr=getattr(obj, locfld), - occurrences=[('%s/%s/%s' % (appname, mdname, locfld), obj.id)]) - po.append(entry) - - directory = options['directory'] - for lng, po in pofiles.items(): - try: os.makedirs(os.path.join(directory, lng)) - except OSError: pass - po.save(os.path.join(directory, lng, '%s.po' % appname))