Commit 34440313 authored by Michal Čihař's avatar Michal Čihař

Move extension and mime type guessing to file format class

parent 9ac67537
......@@ -178,6 +178,31 @@ class FileFormat(object):
'''
self.store.save()
@property
def mimetype(self):
'''
Returns most common mime type for format.
'''
if self.store.Mimetypes is None:
# Properties files do not expose mimetype
return 'text/plain'
else:
return self.store.Mimetypes[0]
@property
def extension(self):
'''
Returns most common file extension for format.
'''
if self.store.Extensions is None:
# Typo in translate-toolkit 1.9, see
# https://github.com/translate/translate/pull/10
if hasattr(self.store, 'Exensions'):
return self.store.Exensions[0]
else:
return 'txt'
else:
return self.store.Extensions[0]
class AutoFormat(FileFormat):
name = _('Automatic detection')
......
......@@ -36,34 +36,16 @@ logger = logging.getLogger('weblate')
def download_translation(request, project, subproject, lang):
obj = get_translation(request, project, subproject, lang)
# Retrieve ttkit store to get extension and mime type
store = obj.store
srcfilename = obj.get_filename()
if store.Mimetypes is None:
# Properties files do not expose mimetype
mime = 'text/plain'
else:
mime = store.Mimetypes[0]
if store.Extensions is None:
# Typo in translate-toolkit 1.9, see
# https://github.com/translate/translate/pull/10
if hasattr(store, 'Exensions'):
ext = store.Exensions[0]
else:
ext = 'txt'
else:
ext = store.Extensions[0]
# Construct file name (do not use real filename as it is usually not
# that useful)
filename = '%s-%s-%s.%s' % (project, subproject, lang, ext)
filename = '%s-%s-%s.%s' % (project, subproject, lang, obj.store.extension)
# Create response
response = HttpResponse(
file(srcfilename).read(),
mimetype=mime
mimetype=obj.store.mimetype
)
# Fill in response headers
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment