├── LICENSE ├── filebrowser ├── LICENSE ├── __init__.py ├── base.py ├── decorators.py ├── fields.py ├── forms.py ├── functions.py ├── locale │ ├── ca │ │ └── LC_MESSAGES │ │ │ ├── django.mo │ │ │ └── django.po │ ├── de │ │ └── LC_MESSAGES │ │ │ ├── django.mo │ │ │ └── django.po │ ├── es │ │ └── LC_MESSAGES │ │ │ ├── django.mo │ │ │ └── django.po │ ├── fr │ │ └── LC_MESSAGES │ │ │ ├── django.mo │ │ │ └── django.po │ ├── it │ │ └── LC_MESSAGES │ │ │ ├── django.mo │ │ │ └── django.po │ ├── nl │ │ └── LC_MESSAGES │ │ │ ├── django.mo │ │ │ └── django.po │ ├── ru │ │ └── LC_MESSAGES │ │ │ ├── django.mo │ │ │ └── django.po │ ├── sr │ │ └── LC_MESSAGES │ │ │ ├── django.mo │ │ │ └── django.po │ ├── sr_Latn │ │ └── LC_MESSAGES │ │ │ ├── django.mo │ │ │ └── django.po │ ├── zh_CN │ │ └── LC_MESSAGES │ │ │ ├── django.mo │ │ │ └── django.po │ └── zh_TW │ │ └── LC_MESSAGES │ │ ├── django.mo │ │ └── django.po ├── management │ ├── __init__.py │ └── commands │ │ ├── __init__.py │ │ └── version_generator.py ├── models.py ├── settings.py ├── static │ └── filebrowser │ │ ├── css │ │ └── filebrowser.css │ │ ├── img │ │ ├── filebrowser_icon_delete.gif │ │ ├── filebrowser_icon_delete_hover.gif │ │ ├── filebrowser_icon_rename.gif │ │ ├── filebrowser_icon_rename_hover.gif │ │ ├── filebrowser_icon_select.gif │ │ ├── filebrowser_icon_select_disabled.gif │ │ ├── filebrowser_icon_select_hover.gif │ │ ├── filebrowser_icon_show.gif │ │ ├── filebrowser_icon_show_hover.gif │ │ ├── filebrowser_icon_showversions.gif │ │ ├── filebrowser_icon_showversions_hover.gif │ │ ├── filebrowser_type_.gif │ │ ├── filebrowser_type_audio.gif │ │ ├── filebrowser_type_code.gif │ │ ├── filebrowser_type_document.gif │ │ ├── filebrowser_type_folder.gif │ │ ├── filebrowser_type_image.gif │ │ ├── filebrowser_type_video.gif │ │ ├── icon-fb-preview-hover.png │ │ ├── icon-fb-preview.png │ │ ├── icon-fb-view-image-hover.png │ │ ├── icon-pulldown-actions-active.png │ │ ├── icon-pulldown-actions-hover.png │ │ ├── icon-pulldown-actions.png │ │ └── icon-showversions.png │ │ └── js │ │ ├── AddFileBrowser.js │ │ ├── FB_CKEditor.js │ │ ├── FB_FileBrowseField.js │ │ ├── FB_TinyMCE.js │ │ └── TinyMCEAdmin.js ├── templates │ └── filebrowser │ │ ├── append.html │ │ ├── custom_field.html │ │ ├── edit.html │ │ ├── include │ │ ├── _response.html │ │ ├── breadcrumbs.html │ │ ├── filelisting.html │ │ ├── filter.html │ │ ├── paginator.html │ │ ├── search.html │ │ ├── tableheader.html │ │ └── toolbar.html │ │ ├── index.html │ │ ├── makedir.html │ │ ├── rename.html │ │ ├── upload.html │ │ ├── upload_uploadify.html │ │ └── versions.html ├── templatetags │ ├── __init__.py │ ├── fb_csrf.py │ ├── fb_pagination.py │ ├── fb_tags.py │ └── fb_versions.py ├── uploadify_views.py ├── urls.py └── views.py └── setup.py /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2010, Patrick Kranzlmueller (vonautomatisch werkstaetten), 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, 5 | are permitted provided that the following conditions are met: 6 | 7 | 1. Redistributions of source code must retain the above copyright notice, 8 | this list of conditions and the following disclaimer. 9 | 2. Redistributions in binary form must reproduce the above copyright notice, 10 | this list of conditions and the following disclaimer in the documentation and/or 11 | other materials provided with the distribution. 12 | 3. Neither the name of FileBrowser nor the names of its contributors may be used 13 | to endorse or promote products derived from this software without specific prior 14 | written permission. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS 17 | OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 19 | THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 20 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 21 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 23 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /filebrowser/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2010, Patrick Kranzlmueller (vonautomatisch werkstaetten), 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, 5 | are permitted provided that the following conditions are met: 6 | 7 | 1. Redistributions of source code must retain the above copyright notice, 8 | this list of conditions and the following disclaimer. 9 | 2. Redistributions in binary form must reproduce the above copyright notice, 10 | this list of conditions and the following disclaimer in the documentation and/or 11 | other materials provided with the distribution. 12 | 3. Neither the name of FileBrowser nor the names of its contributors may be used 13 | to endorse or promote products derived from this software without specific prior 14 | written permission. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS 17 | OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 19 | THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 20 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 21 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 23 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /filebrowser/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/__init__.py -------------------------------------------------------------------------------- /filebrowser/base.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | # imports 4 | import os, re, datetime 5 | from time import gmtime, strftime 6 | 7 | # django imports 8 | from django.conf import settings 9 | 10 | # filebrowser imports 11 | from filebrowser.settings import * 12 | from filebrowser.functions import get_file_type, url_join, is_selectable, get_version_path 13 | from django.utils.encoding import force_unicode 14 | 15 | # PIL import 16 | if STRICT_PIL: 17 | from PIL import Image 18 | else: 19 | try: 20 | from PIL import Image 21 | except ImportError: 22 | import Image 23 | 24 | 25 | class FileObject(object): 26 | """ 27 | The FileObject represents a File on the Server. 28 | 29 | PATH has to be relative to MEDIA_ROOT. 30 | """ 31 | 32 | def __init__(self, path): 33 | self.path = force_unicode(path) 34 | self.url_rel = path.replace("\\","/") 35 | self.head = os.path.split(path)[0] 36 | self.filename = os.path.split(path)[1] 37 | self.filename_lower = self.filename.lower() # important for sorting 38 | self.filetype = get_file_type(self.filename) 39 | 40 | def _filesize(self): 41 | """ 42 | Filesize. 43 | """ 44 | path = force_unicode(self.path) 45 | if os.path.isfile(os.path.join(MEDIA_ROOT, self.path)) or os.path.isdir(os.path.join(MEDIA_ROOT, self.path)): 46 | return os.path.getsize(os.path.join(MEDIA_ROOT, self.path)) 47 | return "" 48 | filesize = property(_filesize) 49 | 50 | def _date(self): 51 | """ 52 | Date. 53 | """ 54 | if os.path.isfile(os.path.join(MEDIA_ROOT, self.path)) or os.path.isdir(os.path.join(MEDIA_ROOT, self.path)): 55 | return os.path.getmtime(os.path.join(MEDIA_ROOT, self.path)) 56 | return "" 57 | date = property(_date) 58 | 59 | def _datetime(self): 60 | """ 61 | Datetime Object. 62 | """ 63 | return datetime.datetime.fromtimestamp(self.date) 64 | datetime = property(_datetime) 65 | 66 | def _extension(self): 67 | """ 68 | Extension. 69 | """ 70 | return u"%s" % os.path.splitext(self.filename)[1] 71 | extension = property(_extension) 72 | 73 | def _filetype_checked(self): 74 | if self.filetype == "Folder" and os.path.isdir(self.path_full): 75 | return self.filetype 76 | elif self.filetype != "Folder" and os.path.isfile(self.path_full): 77 | return self.filetype 78 | else: 79 | return "" 80 | filetype_checked = property(_filetype_checked) 81 | 82 | def _path_full(self): 83 | """ 84 | Full server PATH including MEDIA_ROOT. 85 | """ 86 | return os.path.join(MEDIA_ROOT, self.path) 87 | path_full = property(_path_full) 88 | 89 | def _path_relative(self): 90 | return self.path 91 | path_relative = property(_path_relative) 92 | 93 | def _path_relative_directory(self): 94 | """ 95 | Path relative to initial directory. 96 | """ 97 | directory_re = re.compile(r'^(%s)' % (DIRECTORY)) 98 | value = directory_re.sub('', self.path) 99 | return u"%s" % value 100 | path_relative_directory = property(_path_relative_directory) 101 | 102 | def _url_relative(self): 103 | return self.url_rel 104 | url_relative = property(_url_relative) 105 | 106 | def _url_full(self): 107 | """ 108 | Full URL including MEDIA_URL. 109 | """ 110 | return force_unicode(url_join(MEDIA_URL, self.url_rel)) 111 | url_full = property(_url_full) 112 | 113 | def _url_save(self): 114 | """ 115 | URL used for the filebrowsefield. 116 | """ 117 | if SAVE_FULL_URL: 118 | return self.url_full 119 | else: 120 | return self.url_rel 121 | url_save = property(_url_save) 122 | 123 | def _url_thumbnail(self): 124 | """ 125 | Thumbnail URL. 126 | """ 127 | if self.filetype == "Image": 128 | return u"%s" % url_join(MEDIA_URL, get_version_path(self.path, 'fb_thumb')) 129 | else: 130 | return "" 131 | url_thumbnail = property(_url_thumbnail) 132 | 133 | def url_admin(self): 134 | if self.filetype_checked == "Folder": 135 | directory_re = re.compile(r'^(%s)' % (DIRECTORY)) 136 | value = directory_re.sub('', self.path) 137 | return u"%s" % value 138 | else: 139 | return u"%s" % url_join(MEDIA_URL, self.path) 140 | 141 | def _dimensions(self): 142 | """ 143 | Image Dimensions. 144 | """ 145 | if self.filetype == 'Image': 146 | try: 147 | im = Image.open(os.path.join(MEDIA_ROOT, self.path)) 148 | return im.size 149 | except: 150 | pass 151 | else: 152 | return False 153 | dimensions = property(_dimensions) 154 | 155 | def _width(self): 156 | """ 157 | Image Width. 158 | """ 159 | return self.dimensions[0] 160 | width = property(_width) 161 | 162 | def _height(self): 163 | """ 164 | Image Height. 165 | """ 166 | return self.dimensions[1] 167 | height = property(_height) 168 | 169 | def _orientation(self): 170 | """ 171 | Image Orientation. 172 | """ 173 | if self.dimensions: 174 | if self.dimensions[0] >= self.dimensions[1]: 175 | return "Landscape" 176 | else: 177 | return "Portrait" 178 | else: 179 | return None 180 | orientation = property(_orientation) 181 | 182 | def _is_empty(self): 183 | """ 184 | True if Folder is empty, False if not. 185 | """ 186 | if os.path.isdir(self.path_full): 187 | if not os.listdir(self.path_full): 188 | return True 189 | else: 190 | return False 191 | else: 192 | return None 193 | is_empty = property(_is_empty) 194 | 195 | def __repr__(self): 196 | return force_unicode(self.url_save) 197 | 198 | def __str__(self): 199 | return force_unicode(self.url_save) 200 | 201 | def __unicode__(self): 202 | return force_unicode(self.url_save) 203 | 204 | 205 | -------------------------------------------------------------------------------- /filebrowser/decorators.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | # django imports 4 | from django.contrib.sessions.models import Session 5 | from django.shortcuts import get_object_or_404, render_to_response 6 | from django.contrib.auth.models import User 7 | from django.template import RequestContext 8 | from django.conf import settings 9 | 10 | 11 | def flash_login_required(function): 12 | """ 13 | Decorator to recognize a user by its session. 14 | Used for Flash-Uploading. 15 | """ 16 | 17 | def decorator(request, *args, **kwargs): 18 | try: 19 | engine = __import__(settings.SESSION_ENGINE, {}, {}, ['']) 20 | except: 21 | import django.contrib.sessions.backends.db 22 | engine = django.contrib.sessions.backends.db 23 | session_data = engine.SessionStore(request.POST.get('session_key')) 24 | user_id = session_data['_auth_user_id'] 25 | # will return 404 if the session ID does not resolve to a valid user 26 | request.user = get_object_or_404(User, pk=user_id) 27 | return function(request, *args, **kwargs) 28 | return decorator 29 | 30 | 31 | -------------------------------------------------------------------------------- /filebrowser/fields.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | # imports 4 | import os 5 | 6 | # django imports 7 | from django.db import models 8 | from django import forms 9 | from django.forms.widgets import Input 10 | from django.db.models.fields import Field, CharField 11 | from django.utils.encoding import force_unicode 12 | from django.template.loader import render_to_string 13 | from django.utils.translation import ugettext_lazy as _ 14 | 15 | # filebrowser imports 16 | from filebrowser.settings import * 17 | from filebrowser.base import FileObject 18 | from filebrowser.functions import url_to_path 19 | 20 | 21 | class FileBrowseWidget(Input): 22 | input_type = 'text' 23 | 24 | class Media: 25 | js = (os.path.join(URL_FILEBROWSER_MEDIA, 'js/AddFileBrowser.js'), ) 26 | 27 | def __init__(self, attrs=None): 28 | self.directory = attrs.get('directory', '') 29 | self.extensions = attrs.get('extensions', '') 30 | self.format = attrs.get('format', '') 31 | if attrs is not None: 32 | self.attrs = attrs.copy() 33 | else: 34 | self.attrs = {} 35 | 36 | def render(self, name, value, attrs=None): 37 | if value is None: 38 | value = "" 39 | final_attrs = self.build_attrs(attrs, type=self.input_type, name=name) 40 | final_attrs['search_icon'] = URL_FILEBROWSER_MEDIA + 'img/filebrowser_icon_show.gif' 41 | final_attrs['directory'] = self.directory 42 | final_attrs['extensions'] = self.extensions 43 | final_attrs['format'] = self.format 44 | final_attrs['ADMIN_THUMBNAIL'] = ADMIN_THUMBNAIL 45 | final_attrs['DEBUG'] = DEBUG 46 | if value != "": 47 | try: 48 | final_attrs['directory'] = os.path.split(value.path_relative_directory)[0] 49 | except: 50 | pass 51 | return render_to_string("filebrowser/custom_field.html", locals()) 52 | 53 | 54 | class FileBrowseFormField(forms.CharField): 55 | widget = FileBrowseWidget 56 | 57 | default_error_messages = { 58 | 'extension': _(u'Extension %(ext)s is not allowed. Only %(allowed)s is allowed.'), 59 | } 60 | 61 | def __init__(self, max_length=None, min_length=None, 62 | directory=None, extensions=None, format=None, 63 | *args, **kwargs): 64 | self.max_length, self.min_length = max_length, min_length 65 | self.directory = directory 66 | self.extensions = extensions 67 | if format: 68 | self.format = format or '' 69 | self.extensions = extensions or EXTENSIONS.get(format) 70 | super(FileBrowseFormField, self).__init__(*args, **kwargs) 71 | 72 | def clean(self, value): 73 | value = super(FileBrowseFormField, self).clean(value) 74 | if value == '': 75 | return value 76 | file_extension = os.path.splitext(value)[1].lower() 77 | if self.extensions and not file_extension in self.extensions: 78 | raise forms.ValidationError(self.error_messages['extension'] % {'ext': file_extension, 'allowed': ", ".join(self.extensions)}) 79 | return value 80 | 81 | 82 | class FileBrowseField(Field): 83 | __metaclass__ = models.SubfieldBase 84 | 85 | def __init__(self, *args, **kwargs): 86 | self.directory = kwargs.pop('directory', '') 87 | self.extensions = kwargs.pop('extensions', '') 88 | self.format = kwargs.pop('format', '') 89 | return super(FileBrowseField, self).__init__(*args, **kwargs) 90 | 91 | def to_python(self, value): 92 | if not value or isinstance(value, FileObject): 93 | return value 94 | return FileObject(url_to_path(value)) 95 | 96 | def get_db_prep_value(self, value): 97 | if value is None: 98 | return None 99 | return unicode(value) 100 | 101 | 102 | def get_manipulator_field_objs(self): 103 | return [oldforms.TextField] 104 | 105 | def get_internal_type(self): 106 | return "CharField" 107 | 108 | def formfield(self, **kwargs): 109 | attrs = {} 110 | attrs["directory"] = self.directory 111 | attrs["extensions"] = self.extensions 112 | attrs["format"] = self.format 113 | defaults = { 114 | 'form_class': FileBrowseFormField, 115 | 'widget': FileBrowseWidget(attrs=attrs), 116 | 'directory': self.directory, 117 | 'extensions': self.extensions, 118 | 'format': self.format 119 | } 120 | defaults.update(kwargs) 121 | return super(FileBrowseField, self).formfield(**defaults) 122 | 123 | try: 124 | from south.modelsinspector import add_introspection_rules 125 | add_introspection_rules([], ["^filebrowser\.fields\.FileBrowseField"]) 126 | except: 127 | pass 128 | -------------------------------------------------------------------------------- /filebrowser/forms.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | # imports 4 | import re, os 5 | 6 | # django imports 7 | from django import forms 8 | from django.conf import settings 9 | from django.forms.formsets import BaseFormSet 10 | from django.utils.translation import ugettext as _ 11 | 12 | # filebrowser imports 13 | from filebrowser.settings import MAX_UPLOAD_SIZE, FOLDER_REGEX 14 | from filebrowser.functions import convert_filename, get_file_type, get_file 15 | 16 | alnum_name_re = re.compile(FOLDER_REGEX) 17 | 18 | class MakeDirForm(forms.Form): 19 | """ 20 | Form for creating Folder. 21 | """ 22 | 23 | def __init__(self, path, *args, **kwargs): 24 | self.path = path 25 | super(MakeDirForm, self).__init__(*args, **kwargs) 26 | 27 | dir_name = forms.CharField(widget=forms.TextInput(attrs=dict({ 'class': 'vTextField' }, max_length=50, min_length=3)), label=_(u'Name'), help_text=_(u'Only letters, numbers, underscores, spaces and hyphens are allowed.'), required=True) 28 | 29 | def clean_dir_name(self): 30 | if self.cleaned_data['dir_name']: 31 | # only letters, numbers, underscores, spaces and hyphens are allowed. 32 | if not alnum_name_re.search(self.cleaned_data['dir_name']): 33 | raise forms.ValidationError(_(u'Only letters, numbers, underscores, spaces and hyphens are allowed.')) 34 | # Folder must not already exist. 35 | if os.path.isdir(os.path.join(self.path, convert_filename(self.cleaned_data['dir_name']))): 36 | raise forms.ValidationError(_(u'The Folder already exists.')) 37 | return convert_filename(self.cleaned_data['dir_name']) 38 | 39 | 40 | class RenameForm(forms.Form): 41 | """ 42 | Form for renaming Folder/File. 43 | """ 44 | 45 | def __init__(self, path, file_extension, *args, **kwargs): 46 | self.path = path 47 | self.file_extension = file_extension 48 | super(RenameForm, self).__init__(*args, **kwargs) 49 | 50 | name = forms.CharField(widget=forms.TextInput(attrs=dict({ 'class': 'vTextField' }, max_length=50, min_length=3)), label=_(u'New Name'), help_text=_('Only letters, numbers, underscores, spaces and hyphens are allowed.'), required=True) 51 | 52 | def clean_name(self): 53 | if self.cleaned_data['name']: 54 | # only letters, numbers, underscores, spaces and hyphens are allowed. 55 | if not alnum_name_re.search(self.cleaned_data['name']): 56 | raise forms.ValidationError(_(u'Only letters, numbers, underscores, spaces and hyphens are allowed.')) 57 | # folder/file must not already exist. 58 | if os.path.isdir(os.path.join(self.path, convert_filename(self.cleaned_data['name']))): 59 | raise forms.ValidationError(_(u'The Folder already exists.')) 60 | elif os.path.isfile(os.path.join(self.path, convert_filename(self.cleaned_data['name']) + self.file_extension)): 61 | raise forms.ValidationError(_(u'The File already exists.')) 62 | return convert_filename(self.cleaned_data['name']) 63 | 64 | 65 | class EditForm(forms.Form): 66 | """ 67 | Form for editing the File. 68 | """ 69 | content = forms.CharField( 70 | label=_(u'Content'), help_text=_('File content'), required=True, 71 | widget=forms.Textarea(attrs={'rows': '18'}), 72 | ) 73 | 74 | def __init__(self, path, filename, file_extension, *args, **kwargs): 75 | self.path = path 76 | self.filename = filename 77 | self.file_extension = file_extension 78 | super(EditForm, self).__init__(*args, **kwargs) 79 | file_content = open(os.path.join(path, filename), 'r').read() 80 | self.fields['content'].initial = file_content.decode(settings.DEFAULT_CHARSET) 81 | 82 | def save(self): 83 | content = self.cleaned_data['content'] 84 | out_file = open(os.path.join(self.path, self.filename), 'w') 85 | out_file.write(content.encode(settings.DEFAULT_CHARSET).replace("\r", "")) 86 | out_file.close() 87 | 88 | 89 | class BaseUploadFormSet(BaseFormSet): 90 | 91 | # this is just for passing the parameters (path_server, path) to the uploadform. 92 | # overly complicated, but necessary for the clean-methods in UploadForm. 93 | 94 | def __init__(self, **kwargs): 95 | self.path = kwargs['path'] 96 | del kwargs['path'] 97 | super(BaseUploadFormSet, self).__init__(**kwargs) 98 | 99 | def _construct_form(self, i, **kwargs): 100 | # this works because BaseFormSet._construct_form() passes **kwargs 101 | # to the form's __init__() 102 | kwargs["path"] = self.path 103 | return super(BaseUploadFormSet, self)._construct_form(i, **kwargs) 104 | 105 | 106 | class UploadForm(forms.Form): 107 | 108 | def __init__(self, *args, **kwargs): 109 | self.path = kwargs['path'] 110 | del kwargs['path'] 111 | super(UploadForm, self).__init__(*args, **kwargs) 112 | 113 | file = forms.FileField(label=_(u'File')) 114 | use_image_generator = forms.BooleanField(label=_(u'Use Image Generator'), required=False) 115 | 116 | def clean_file(self): 117 | if self.cleaned_data['file']: 118 | filename = convert_filename(self.cleaned_data['file'].name) 119 | 120 | # CHECK IF FILE EXISTS 121 | dir_list = os.listdir(self.path) 122 | if filename in dir_list: 123 | raise forms.ValidationError(_(u'File already exists.')) 124 | 125 | # TODO: CHECK IF VERSIONS_PATH EXISTS (IF USE_IMAGE_GENERATOR IS TRUE) 126 | 127 | # CHECK FILENAME 128 | if not alnum_name_re.search(filename): 129 | raise forms.ValidationError(_(u'Filename is not allowed.')) 130 | 131 | # CHECK EXTENSION / FILE_TYPE 132 | file_type = get_file_type(filename) 133 | if not file_type: 134 | raise forms.ValidationError(_(u'File extension is not allowed.')) 135 | 136 | # CHECK FILESIZE 137 | filesize = self.cleaned_data['file'].size 138 | if filesize > MAX_UPLOAD_SIZE: 139 | raise forms.ValidationError(_(u'Filesize exceeds allowed Upload Size.')) 140 | return self.cleaned_data['file'] 141 | 142 | -------------------------------------------------------------------------------- /filebrowser/locale/ca/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/locale/ca/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /filebrowser/locale/ca/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # translation of django.po to Catalan 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # 5 | # PATRICK KRANZLMUELLER , 2009. 6 | # Antoni Aloy , 2009. 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: django\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2009-02-19 21:24+0000\n" 12 | "PO-Revision-Date: 2009-02-15 19:00+0100\n" 13 | "Last-Translator: Antoni Aloy \n" 14 | "Language-Team: Catalan \n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "X-Generator: KBabel 1.11.4\n" 19 | 20 | #: fields.py:27 21 | #, python-format 22 | msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." 23 | msgstr "" 24 | "Confirma que aquest valor té com a màxim %(max)d caràcters (té longitud %" 25 | "(length)d)." 26 | 27 | #: fields.py:28 28 | #, python-format 29 | msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." 30 | msgstr "" 31 | "Confirma que aquest valor té com a mínim %(min)d caràcters (té longitud %" 32 | "(length)d)." 33 | 34 | #: fields.py:29 35 | #, python-format 36 | msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." 37 | msgstr "" 38 | "L'extensió %(ext)s no està permesa. Sols es permeten les extensions %" 39 | "(allowed)s." 40 | 41 | #: forms.py:23 42 | msgid "Name" 43 | msgstr "Nom" 44 | 45 | #: forms.py:23 forms.py:46 46 | msgid "" 47 | "The Name will automatically be converted to lowercase. Only letters, " 48 | "numbers, underscores and hyphens are allowed." 49 | msgstr "" 50 | "El nom serà convertit automàticament a minúscules. Sols estan permeses le " 51 | "lletres, nombres, subratllats i guions." 52 | 53 | #: forms.py:30 forms.py:53 54 | msgid "Only letters, numbers, underscores and hyphens are allowed." 55 | msgstr "Sols es permeten lletres, nombres, subratllats i guions." 56 | 57 | #: forms.py:33 58 | msgid "The Folder already exists." 59 | msgstr "La carpeta ja existeix." 60 | 61 | #: forms.py:46 62 | msgid "New Name" 63 | msgstr "Nou nom" 64 | 65 | #: forms.py:56 66 | msgid "The File/Folder already exists." 67 | msgstr "La carpeta/arixu ja existeix" 68 | 69 | #: forms.py:92 70 | msgid "File" 71 | msgstr "Arxiu" 72 | 73 | #: forms.py:93 74 | msgid "Use Image Generator" 75 | msgstr "Fer servir el generador d'imatges" 76 | 77 | #: forms.py:102 78 | msgid "File already exists." 79 | msgstr "L'arxiu ja existeix" 80 | 81 | #: forms.py:108 82 | msgid "Filename is not allowed." 83 | msgstr "El nom d'arxiu no està permès" 84 | 85 | #: forms.py:113 86 | msgid "File extension is not allowed." 87 | msgstr "L'extensió de l'arxiu no està permesa" 88 | 89 | #: forms.py:118 90 | msgid "Filesize exceeds allowed Upload Size." 91 | msgstr "El tamany de l'arxiu supera el límit permès" 92 | 93 | #: functions.py:84 94 | msgid "Home" 95 | msgstr "Inici" 96 | 97 | #: functions.py:276 98 | msgid "Thumbnail creation failed." 99 | msgstr "Ha fallat la creació de la miniatura" 100 | 101 | #: functions.py:331 functions.py:398 102 | msgid "Image creation failed." 103 | msgstr "La creació de la imatge ha fallat" 104 | 105 | #: views.py:165 106 | msgid "FileBrowser" 107 | msgstr "Visor d'arxius" 108 | 109 | #: views.py:188 110 | #, python-format 111 | msgid "The Folder %s was successfully created." 112 | msgstr "La carpeta %s ha estat creada amb èxit." 113 | 114 | #: views.py:194 115 | msgid "Permission denied." 116 | msgstr "Permís denegat." 117 | 118 | #: views.py:196 119 | msgid "Error creating directory." 120 | msgstr "Error creant el directori." 121 | 122 | #: views.py:204 views.py:205 templates/filebrowser/index.html:30 123 | msgid "New Folder" 124 | msgstr "Nova carpeta" 125 | 126 | #: views.py:250 127 | msgid "Upload successful." 128 | msgstr "Pujada completada" 129 | 130 | #: views.py:263 templates/filebrowser/index.html:33 131 | #: templates/filebrowser/upload.html:62 132 | msgid "Upload" 133 | msgstr "Pujar" 134 | 135 | #: views.py:264 136 | msgid "Select files to upload" 137 | msgstr "Selecciona arxius a pujar." 138 | 139 | #: views.py:294 140 | msgid "Thumbnail creation successful." 141 | msgstr "S'han creat les miniatures satisfactòriament." 142 | 143 | #: views.py:344 144 | #, python-format 145 | msgid "The file %s was successfully deleted." 146 | msgstr "L'arxiu %s ha estat borrat amb èxit." 147 | 148 | #: views.py:356 149 | #, python-format 150 | msgid "The directory %s was successfully deleted." 151 | msgstr "El directori %s ha estat borrat amb èxit." 152 | 153 | #: views.py:407 154 | msgid "Error renaming Thumbnail." 155 | msgstr "Error reanomenant la miniatura" 156 | 157 | #: views.py:413 158 | msgid "Renaming was successful." 159 | msgstr "El canvi de nom ha tingut èxit." 160 | 161 | #: views.py:418 162 | msgid "Error." 163 | msgstr "Error." 164 | 165 | #: views.py:427 templates/filebrowser/include/filelisting.html:52 166 | msgid "Rename" 167 | msgstr "Reanomenar" 168 | 169 | #: views.py:428 170 | #, python-format 171 | msgid "Rename \"%s\"" 172 | msgstr "Reanomena \"%s\"" 173 | 174 | #: views.py:465 175 | msgid "Successfully generated Images." 176 | msgstr "Imatges generades satisfactòriament." 177 | 178 | #: templates/filebrowser/index.html:31 179 | msgid "Make Thumbs" 180 | msgstr "Crear miniatures" 181 | 182 | #: templates/filebrowser/index.html:32 183 | msgid "Generate Images" 184 | msgstr "Generar imatges" 185 | 186 | #: templates/filebrowser/makedir.html:24 templates/filebrowser/rename.html:22 187 | msgid "Please correct the following errors." 188 | msgstr "Per favor, corregeix els següents errors" 189 | 190 | #: templates/filebrowser/makedir.html:34 templates/filebrowser/rename.html:33 191 | msgid "Submit" 192 | msgstr "Enviar" 193 | 194 | #: templates/filebrowser/upload.html:37 195 | msgid "Will use image generator." 196 | msgstr "Usaré el generador d'imatges" 197 | 198 | #: templates/filebrowser/upload.html:47 199 | msgid "Help" 200 | msgstr "Ajuda" 201 | 202 | #: templates/filebrowser/upload.html:51 203 | msgid "Allowed" 204 | msgstr "Permès" 205 | 206 | #: templates/filebrowser/upload.html:57 207 | msgid "Max. Filesize" 208 | msgstr "Tamay màxim" 209 | 210 | #: templates/filebrowser/include/filelisting.html:8 211 | msgid "Select" 212 | msgstr "Selecciona" 213 | 214 | #: templates/filebrowser/include/filelisting.html:15 215 | msgid "Select File" 216 | msgstr "Selecciona fitxer" 217 | 218 | #: templates/filebrowser/include/filelisting.html:26 219 | msgid "Make Thumbnail" 220 | msgstr "Crear miniatura" 221 | 222 | #: templates/filebrowser/include/filelisting.html:29 223 | msgid "View Image" 224 | msgstr "Veure imatge" 225 | 226 | #: templates/filebrowser/include/filelisting.html:46 227 | msgid "Generate Image Versions" 228 | msgstr "Generar versions de la imatge" 229 | 230 | #: templates/filebrowser/include/filelisting.html:61 231 | msgid "Are you sure you want to delete this file?" 232 | msgstr "" 233 | 234 | #: templates/filebrowser/include/filelisting.html:61 235 | msgid "Delete File" 236 | msgstr "Esborrar fitxer" 237 | 238 | #: templates/filebrowser/include/filelisting.html:64 239 | msgid "Are you sure you want to delete this Folder?" 240 | msgstr "" 241 | 242 | #: templates/filebrowser/include/filelisting.html:64 243 | msgid "Delete Folder" 244 | msgstr "Esborrar carpeta" 245 | 246 | #: templates/filebrowser/include/filter.html:15 247 | msgid "Filter" 248 | msgstr "Filtrar" 249 | 250 | #: templates/filebrowser/include/filter.html:21 251 | msgid "By Date" 252 | msgstr "Per data" 253 | 254 | #: templates/filebrowser/include/filter.html:23 255 | msgid "Any Date" 256 | msgstr "Qualsevol data" 257 | 258 | #: templates/filebrowser/include/filter.html:25 259 | msgid "Today" 260 | msgstr "Avui" 261 | 262 | #: templates/filebrowser/include/filter.html:27 263 | msgid "Past 7 days" 264 | msgstr "Fa 7 dies" 265 | 266 | #: templates/filebrowser/include/filter.html:29 267 | msgid "Past 30 days" 268 | msgstr "Fa 30 dies" 269 | 270 | #: templates/filebrowser/include/filter.html:31 271 | msgid "This year" 272 | msgstr "Enguany" 273 | 274 | #: templates/filebrowser/include/filter.html:39 275 | msgid "By Type" 276 | msgstr "Per tipus" 277 | 278 | #: templates/filebrowser/include/filter.html:41 279 | msgid "All" 280 | msgstr "Tots" 281 | 282 | #: templates/filebrowser/include/paginator.html:5 283 | msgid "No Items Found." 284 | msgstr "No s'han trobat items" 285 | 286 | #: templates/filebrowser/include/paginator.html:10 287 | #, python-format 288 | msgid "%(counter)s Item" 289 | msgid_plural "%(counter)s Items" 290 | msgstr[0] "%(counter)s Item" 291 | msgstr[1] "%(counter)s Item" 292 | 293 | #: templates/filebrowser/include/paginator.html:16 294 | msgid "No Items." 295 | msgstr "No hi ha items" 296 | 297 | #: templates/filebrowser/include/tableheader.html:13 298 | #: templates/filebrowser/include/tableheader.html:14 299 | msgid "Filename" 300 | msgstr "Nom de fitxer" 301 | 302 | #: templates/filebrowser/include/tableheader.html:20 303 | #: templates/filebrowser/include/tableheader.html:21 304 | msgid "Size" 305 | msgstr "Tamany" 306 | 307 | #: templates/filebrowser/include/tableheader.html:23 308 | #: templates/filebrowser/include/tableheader.html:24 309 | msgid "Date" 310 | msgstr "Data" 311 | 312 | #: templates/filebrowser/include/toolbar.html:14 313 | msgid "Go" 314 | msgstr "Ves" 315 | 316 | #: templates/filebrowser/include/toolbar.html:16 317 | #, python-format 318 | msgid "%(counter)s Item found" 319 | msgid_plural "%(counter)s Items found" 320 | msgstr[0] "%(counter)s trobat" 321 | msgstr[1] "%(counter)s trobats" 322 | 323 | #: templates/filebrowser/include/toolbar.html:17 324 | #, python-format 325 | msgid "%(counter)s Item total" 326 | msgid_plural "%(counter)s Items total" 327 | msgstr[0] "total %(counter)s item" 328 | msgstr[1] "total %(counter)s Items" 329 | -------------------------------------------------------------------------------- /filebrowser/locale/de/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/locale/de/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /filebrowser/locale/es/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/locale/es/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /filebrowser/locale/es/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # translation of django.po to Spanish 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # 5 | # PATRICK KRANZLMUELLER , 2009. 6 | # Antoni Aloy , 2009. 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: django\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2009-02-19 21:24+0000\n" 12 | "PO-Revision-Date: 2009-02-15 19:14+0100\n" 13 | "Last-Translator: Antoni Aloy \n" 14 | "Language-Team: Spanish\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "X-Generator: KBabel 1.11.4\n" 19 | 20 | #: fields.py:27 21 | #, python-format 22 | msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." 23 | msgstr "" 24 | "Compruebe que este valor tiene como máximo %(max)d carácters (tiene %(length)" 25 | "d)." 26 | 27 | #: fields.py:28 28 | #, python-format 29 | msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." 30 | msgstr "" 31 | "Compruebe que este valor tiene como mínimo %(min)d carácteres (tiene %" 32 | "(length)d)." 33 | 34 | #: fields.py:29 35 | #, python-format 36 | msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." 37 | msgstr "" 38 | "La extensión %(ext)s no está permitida. Sólo se permiten las extensiones %" 39 | "(allowed)s." 40 | 41 | #: forms.py:23 42 | msgid "Name" 43 | msgstr "Nombre" 44 | 45 | #: forms.py:23 forms.py:46 46 | msgid "" 47 | "The Name will automatically be converted to lowercase. Only letters, " 48 | "numbers, underscores and hyphens are allowed." 49 | msgstr "" 50 | "El nombre se convertirá automáticamente a minúsculas. Sólo se permiten " 51 | "letras, números, subrayado y guiones." 52 | 53 | #: forms.py:30 forms.py:53 54 | msgid "Only letters, numbers, underscores and hyphens are allowed." 55 | msgstr "Sólo se permiten letras, números, subrayado y guiones." 56 | 57 | #: forms.py:33 58 | msgid "The Folder already exists." 59 | msgstr "La carpeta ya existe." 60 | 61 | #: forms.py:46 62 | msgid "New Name" 63 | msgstr "Nuevo nombre" 64 | 65 | #: forms.py:56 66 | msgid "The File/Folder already exists." 67 | msgstr "El archivo/carpeta ya existe." 68 | 69 | #: forms.py:92 70 | msgid "File" 71 | msgstr "Archivo" 72 | 73 | #: forms.py:93 74 | msgid "Use Image Generator" 75 | msgstr "Emplear el generador de imágenes" 76 | 77 | #: forms.py:102 78 | msgid "File already exists." 79 | msgstr "El archivo ya existe." 80 | 81 | #: forms.py:108 82 | msgid "Filename is not allowed." 83 | msgstr "Nombre de archivo no permitido." 84 | 85 | #: forms.py:113 86 | msgid "File extension is not allowed." 87 | msgstr "Extensión de archivo no permitida." 88 | 89 | #: forms.py:118 90 | msgid "Filesize exceeds allowed Upload Size." 91 | msgstr "El tamaño del archivo excede el máximo permitido." 92 | 93 | #: functions.py:84 94 | msgid "Home" 95 | msgstr "Inicio" 96 | 97 | #: functions.py:276 98 | msgid "Thumbnail creation failed." 99 | msgstr "Falló la creación de la miniatura." 100 | 101 | #: functions.py:331 functions.py:398 102 | msgid "Image creation failed." 103 | msgstr "Falló la creación de la Imagen." 104 | 105 | #: views.py:165 106 | msgid "FileBrowser" 107 | msgstr "Visor de archivos" 108 | 109 | #: views.py:188 110 | #, python-format 111 | msgid "The Folder %s was successfully created." 112 | msgstr "La carpeta %s se creó con éxito." 113 | 114 | #: views.py:194 115 | msgid "Permission denied." 116 | msgstr "Permiso denegado." 117 | 118 | #: views.py:196 119 | msgid "Error creating directory." 120 | msgstr "Error creando el directorio." 121 | 122 | #: views.py:204 views.py:205 templates/filebrowser/index.html:30 123 | msgid "New Folder" 124 | msgstr "Nueva carpeta." 125 | 126 | #: views.py:250 127 | msgid "Upload successful." 128 | msgstr "Subida completada." 129 | 130 | #: views.py:263 templates/filebrowser/index.html:33 131 | #: templates/filebrowser/upload.html:62 132 | msgid "Upload" 133 | msgstr "Subir" 134 | 135 | #: views.py:264 136 | msgid "Select files to upload" 137 | msgstr "Seleccione archivos a subir." 138 | 139 | #: views.py:294 140 | msgid "Thumbnail creation successful." 141 | msgstr "Se creó la miniatura con éxito." 142 | 143 | #: views.py:344 144 | #, python-format 145 | msgid "The file %s was successfully deleted." 146 | msgstr "El archivo %s se eliminó con éxito." 147 | 148 | #: views.py:356 149 | #, python-format 150 | msgid "The directory %s was successfully deleted." 151 | msgstr "El directorio %s se eliminó con éxito." 152 | 153 | #: views.py:407 154 | msgid "Error renaming Thumbnail." 155 | msgstr "Error renombrando la miniatura." 156 | 157 | #: views.py:413 158 | msgid "Renaming was successful." 159 | msgstr "Renombrado satisfactorio." 160 | 161 | #: views.py:418 162 | msgid "Error." 163 | msgstr "Error." 164 | 165 | #: views.py:427 templates/filebrowser/include/filelisting.html:52 166 | msgid "Rename" 167 | msgstr "Renombrar" 168 | 169 | #: views.py:428 170 | #, python-format 171 | msgid "Rename \"%s\"" 172 | msgstr "Renombrar \"%s\"" 173 | 174 | #: views.py:465 175 | msgid "Successfully generated Images." 176 | msgstr "Las imágenes se generaron satisfactoriamente." 177 | 178 | #: templates/filebrowser/index.html:31 179 | msgid "Make Thumbs" 180 | msgstr "Crear miniaturas" 181 | 182 | #: templates/filebrowser/index.html:32 183 | msgid "Generate Images" 184 | msgstr "Generar imágenes" 185 | 186 | #: templates/filebrowser/makedir.html:24 templates/filebrowser/rename.html:22 187 | msgid "Please correct the following errors." 188 | msgstr "Por favor, corrija los siguientes errores." 189 | 190 | #: templates/filebrowser/makedir.html:34 templates/filebrowser/rename.html:33 191 | msgid "Submit" 192 | msgstr "Enviar" 193 | 194 | #: templates/filebrowser/upload.html:37 195 | msgid "Will use image generator." 196 | msgstr "Usa el generador de imágenes." 197 | 198 | #: templates/filebrowser/upload.html:47 199 | msgid "Help" 200 | msgstr "Ayuda" 201 | 202 | #: templates/filebrowser/upload.html:51 203 | msgid "Allowed" 204 | msgstr "Permitido" 205 | 206 | #: templates/filebrowser/upload.html:57 207 | msgid "Max. Filesize" 208 | msgstr "Tamaño máx." 209 | 210 | #: templates/filebrowser/include/filelisting.html:8 211 | msgid "Select" 212 | msgstr "Selecciona" 213 | 214 | #: templates/filebrowser/include/filelisting.html:15 215 | msgid "Select File" 216 | msgstr "Selecciona archivo" 217 | 218 | #: templates/filebrowser/include/filelisting.html:26 219 | msgid "Make Thumbnail" 220 | msgstr "Crear miniatura" 221 | 222 | #: templates/filebrowser/include/filelisting.html:29 223 | msgid "View Image" 224 | msgstr "Ver imagen" 225 | 226 | #: templates/filebrowser/include/filelisting.html:46 227 | msgid "Generate Image Versions" 228 | msgstr "Generar versiones de la imagen" 229 | 230 | #: templates/filebrowser/include/filelisting.html:61 231 | msgid "Are you sure you want to delete this file?" 232 | msgstr "" 233 | 234 | #: templates/filebrowser/include/filelisting.html:61 235 | msgid "Delete File" 236 | msgstr "Borrar archivo" 237 | 238 | #: templates/filebrowser/include/filelisting.html:64 239 | msgid "Are you sure you want to delete this Folder?" 240 | msgstr "" 241 | 242 | #: templates/filebrowser/include/filelisting.html:64 243 | msgid "Delete Folder" 244 | msgstr "Borrar carpeta" 245 | 246 | #: templates/filebrowser/include/filter.html:15 247 | msgid "Filter" 248 | msgstr "Filtrar" 249 | 250 | #: templates/filebrowser/include/filter.html:21 251 | msgid "By Date" 252 | msgstr "Por fecha" 253 | 254 | #: templates/filebrowser/include/filter.html:23 255 | msgid "Any Date" 256 | msgstr "Cualquier fecha" 257 | 258 | #: templates/filebrowser/include/filter.html:25 259 | msgid "Today" 260 | msgstr "Hoy" 261 | 262 | #: templates/filebrowser/include/filter.html:27 263 | msgid "Past 7 days" 264 | msgstr "Hace 7 días" 265 | 266 | #: templates/filebrowser/include/filter.html:29 267 | msgid "Past 30 days" 268 | msgstr "Hace 30 días" 269 | 270 | #: templates/filebrowser/include/filter.html:31 271 | msgid "This year" 272 | msgstr "Este año" 273 | 274 | #: templates/filebrowser/include/filter.html:39 275 | msgid "By Type" 276 | msgstr "Por tipo" 277 | 278 | #: templates/filebrowser/include/filter.html:41 279 | msgid "All" 280 | msgstr "Todo" 281 | 282 | #: templates/filebrowser/include/paginator.html:5 283 | msgid "No Items Found." 284 | msgstr "No se encontraron items" 285 | 286 | #: templates/filebrowser/include/paginator.html:10 287 | #, python-format 288 | msgid "%(counter)s Item" 289 | msgid_plural "%(counter)s Items" 290 | msgstr[0] "%(counter)s item" 291 | msgstr[1] "%(counter)s items" 292 | 293 | #: templates/filebrowser/include/paginator.html:16 294 | msgid "No Items." 295 | msgstr "No hay items." 296 | 297 | #: templates/filebrowser/include/tableheader.html:13 298 | #: templates/filebrowser/include/tableheader.html:14 299 | msgid "Filename" 300 | msgstr "Nombre de archivo" 301 | 302 | #: templates/filebrowser/include/tableheader.html:20 303 | #: templates/filebrowser/include/tableheader.html:21 304 | msgid "Size" 305 | msgstr "Tamaño" 306 | 307 | #: templates/filebrowser/include/tableheader.html:23 308 | #: templates/filebrowser/include/tableheader.html:24 309 | msgid "Date" 310 | msgstr "Fecha" 311 | 312 | #: templates/filebrowser/include/toolbar.html:14 313 | msgid "Go" 314 | msgstr "Ir" 315 | 316 | #: templates/filebrowser/include/toolbar.html:16 317 | #, python-format 318 | msgid "%(counter)s Item found" 319 | msgid_plural "%(counter)s Items found" 320 | msgstr[0] "encontrado %(counter)s Item" 321 | msgstr[1] "encontrados %(counter)s Items" 322 | 323 | #: templates/filebrowser/include/toolbar.html:17 324 | #, python-format 325 | msgid "%(counter)s Item total" 326 | msgid_plural "%(counter)s Items total" 327 | msgstr[0] "total %(counter)s item" 328 | msgstr[1] "total %(counter)s items" 329 | -------------------------------------------------------------------------------- /filebrowser/locale/fr/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/locale/fr/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /filebrowser/locale/fr/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2009 Rémy Hubscher 2 | # This file is distributed under the same license as the django-filebrowser package. 3 | # Rémy Hubscher , 2009. 4 | # 5 | #, fuzzy 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: PACKAGE VERSION\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2009-05-20 11:04+0200\n" 11 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 12 | "Last-Translator: REMY HUBSCHER \n" 13 | "Language-Team: FRENCH \n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | 18 | #: fields.py:96 19 | #, python-format 20 | msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." 21 | msgstr "" 22 | "L'extension de fichier %(ext)s n'est pas autorisée. Les extensions suivantes " 23 | "sont autorisées: %(allowed)s." 24 | 25 | #: forms.py:23 26 | msgid "Name" 27 | msgstr "Nom" 28 | 29 | #: forms.py:23 forms.py:49 30 | msgid "" 31 | "The Name will automatically be converted to lowercase. Only letters, " 32 | "numbers, underscores and hyphens are allowed." 33 | msgstr "" 34 | "Le nom sera automatiquement converti en minuscule. Seul les lettres, nombres," 35 | "tirets bas et tirets sont autorisés." 36 | 37 | #: forms.py:30 forms.py:56 38 | msgid "Only letters, numbers, underscores and hyphens are allowed." 39 | msgstr "Seul les lettres, nombres, tirets bas et tirets sont autorisés." 40 | 41 | #: forms.py:33 42 | msgid "The Folder already exists." 43 | msgstr "Ce répertoire existe déjà." 44 | 45 | #: forms.py:36 46 | msgid "Disallowed Folder Name." 47 | msgstr "Nom de fichier interdit." 48 | 49 | #: forms.py:49 50 | msgid "New Name" 51 | msgstr "Nouveau nom" 52 | 53 | #: forms.py:59 54 | msgid "The File/Folder already exists." 55 | msgstr "Ce fichier/répertoire existe déjà." 56 | 57 | #: forms.py:95 58 | msgid "File" 59 | msgstr "Fichier" 60 | 61 | #: forms.py:96 62 | msgid "Use Image Generator" 63 | msgstr "Utiliser le générateur d'images" 64 | 65 | #: forms.py:105 66 | msgid "File already exists." 67 | msgstr "Le fichier existe déjà." 68 | 69 | #: forms.py:111 70 | msgid "Filename is not allowed." 71 | msgstr "Ce nom de fichier n'est pas autorisé." 72 | 73 | #: forms.py:116 74 | msgid "File extension is not allowed." 75 | msgstr "Cette extension de fichier n'est pas autorisée." 76 | 77 | #: forms.py:121 78 | msgid "Filesize exceeds allowed Upload Size." 79 | msgstr "La taille du fichier est supérieur à la taille maximale autorisée." 80 | 81 | #: functions.py:84 82 | msgid "Home" 83 | msgstr "Accueil" 84 | 85 | #: functions.py:279 86 | msgid "Thumbnail creation failed." 87 | msgstr "La création de miniature à échouée." 88 | 89 | #: functions.py:334 functions.py:389 90 | msgid "Image creation failed." 91 | msgstr "La création d'image à échouée." 92 | 93 | #: views.py:174 94 | msgid "FileBrowser" 95 | msgstr "Navigateur de Fichiers" 96 | 97 | #: views.py:198 98 | #, python-format 99 | msgid "The Folder %s was successfully created." 100 | msgstr "Le répertoire %s a été créé avec succès." 101 | 102 | #: views.py:204 103 | msgid "Permission denied." 104 | msgstr "Permission refusée." 105 | 106 | #: views.py:206 107 | msgid "Error creating directory." 108 | msgstr "Impossible de créer le répertoire." 109 | 110 | #: views.py:214 views.py:215 templates/filebrowser/index.html:33 111 | msgid "New Folder" 112 | msgstr "Nouveau répertoire" 113 | 114 | #: views.py:260 115 | msgid "Upload successful." 116 | msgstr "L'envoi a réussi." 117 | 118 | #: views.py:273 templates/filebrowser/index.html:36 119 | #: templates/filebrowser/upload.html:62 120 | msgid "Upload" 121 | msgstr "Upload" 122 | 123 | #: views.py:274 124 | msgid "Select files to upload" 125 | msgstr "Sélectionner les fichiers à envoyer" 126 | 127 | #: views.py:304 128 | msgid "Thumbnail creation successful." 129 | msgstr "Les miniatures ont été créée." 130 | 131 | #: views.py:354 132 | #, python-format 133 | msgid "The file %s was successfully deleted." 134 | msgstr "Le fichier %s a été supprimé." 135 | 136 | #: views.py:366 137 | #, python-format 138 | msgid "The directory %s was successfully deleted." 139 | msgstr "Le répertoire %s a été supprimé." 140 | 141 | #: views.py:417 142 | msgid "Error renaming Thumbnail." 143 | msgstr "Impossible de renommer la miniature." 144 | 145 | #: views.py:423 146 | msgid "Renaming was successful." 147 | msgstr "La miniature a été renommée." 148 | 149 | #: views.py:428 150 | msgid "Error." 151 | msgstr "Erreur." 152 | 153 | #: views.py:437 templates/filebrowser/include/filelisting.html:52 154 | msgid "Rename" 155 | msgstr "Renommer" 156 | 157 | #: views.py:438 158 | #, python-format 159 | msgid "Rename \"%s\"" 160 | msgstr "Renommer \"%s\"" 161 | 162 | #: views.py:475 163 | msgid "Successfully generated Images." 164 | msgstr "Les images ont été générées." 165 | 166 | #: templates/filebrowser/append.html:5 templates/filebrowser/append.html:7 167 | #, fuzzy 168 | msgid "File-Browser" 169 | msgstr "Navigateur de Fichiers" 170 | 171 | #: templates/filebrowser/index.html:34 172 | msgid "Make Thumbs" 173 | msgstr "Générer les miniatures" 174 | 175 | #: templates/filebrowser/index.html:35 176 | msgid "Generate Images" 177 | msgstr "Générer les images" 178 | 179 | #: templates/filebrowser/makedir.html:24 templates/filebrowser/rename.html:22 180 | msgid "Please correct the following errors." 181 | msgstr "Merci de corriger les erreurs suivantes." 182 | 183 | #: templates/filebrowser/makedir.html:34 templates/filebrowser/rename.html:33 184 | msgid "Submit" 185 | msgstr "Envoyer" 186 | 187 | #: templates/filebrowser/upload.html:37 188 | msgid "Will use image generator." 189 | msgstr "Utiliser le générateur d'images." 190 | 191 | #: templates/filebrowser/upload.html:47 192 | msgid "Help" 193 | msgstr "Aide" 194 | 195 | #: templates/filebrowser/upload.html:51 196 | msgid "Allowed" 197 | msgstr "Autorisé" 198 | 199 | #: templates/filebrowser/upload.html:57 200 | msgid "Max. Filesize" 201 | msgstr "Taille Max." 202 | 203 | #: templates/filebrowser/include/filelisting.html:8 204 | msgid "Select" 205 | msgstr "Sélectionner" 206 | 207 | #: templates/filebrowser/include/filelisting.html:15 208 | msgid "Select File" 209 | msgstr "Sélectionner le fichier" 210 | 211 | #: templates/filebrowser/include/filelisting.html:26 212 | msgid "Make Thumbnail" 213 | msgstr "Générer une miniature" 214 | 215 | #: templates/filebrowser/include/filelisting.html:29 216 | msgid "View Image" 217 | msgstr "Voir l'image" 218 | 219 | #: templates/filebrowser/include/filelisting.html:46 220 | msgid "Generate Image Versions" 221 | msgstr "Générer des versions de l'image" 222 | 223 | #: templates/filebrowser/include/filelisting.html:61 224 | msgid "Are you sure you want to delete this file?" 225 | msgstr "Êtes-vous sur de vouloir supprimer ce fichier ?" 226 | 227 | #: templates/filebrowser/include/filelisting.html:61 228 | msgid "Delete File" 229 | msgstr "Supprimer le fichier" 230 | 231 | #: templates/filebrowser/include/filelisting.html:64 232 | msgid "Are you sure you want to delete this Folder?" 233 | msgstr "Êtes-vous sur de vouloir supprimer ce répertoire ?" 234 | 235 | #: templates/filebrowser/include/filelisting.html:64 236 | msgid "Delete Folder" 237 | msgstr "Supprimer le répertoire" 238 | 239 | #: templates/filebrowser/include/filter.html:15 240 | msgid "Filter" 241 | msgstr "Filtrer" 242 | 243 | #: templates/filebrowser/include/filter.html:21 244 | msgid "By Date" 245 | msgstr "Par date" 246 | 247 | #: templates/filebrowser/include/filter.html:23 248 | msgid "Any Date" 249 | msgstr "Toutes" 250 | 251 | #: templates/filebrowser/include/filter.html:25 252 | msgid "Today" 253 | msgstr "Aujourd'hui" 254 | 255 | #: templates/filebrowser/include/filter.html:27 256 | msgid "Past 7 days" 257 | msgstr "Semaine dernière" 258 | 259 | #: templates/filebrowser/include/filter.html:29 260 | msgid "Past 30 days" 261 | msgstr "Mois dernier" 262 | 263 | #: templates/filebrowser/include/filter.html:31 264 | msgid "This year" 265 | msgstr "Cette année" 266 | 267 | #: templates/filebrowser/include/filter.html:39 268 | msgid "By Type" 269 | msgstr "Par type" 270 | 271 | #: templates/filebrowser/include/filter.html:41 272 | msgid "All" 273 | msgstr "Alle" 274 | 275 | #: templates/filebrowser/include/paginator.html:5 276 | msgid "No Items Found." 277 | msgstr "Aucun article." 278 | 279 | #: templates/filebrowser/include/paginator.html:10 280 | #, python-format 281 | msgid "%(counter)s Item" 282 | msgid_plural "%(counter)s Items" 283 | msgstr[0] "%(counter)s article" 284 | msgstr[1] "%(counter)s articles" 285 | 286 | #: templates/filebrowser/include/paginator.html:16 287 | msgid "No Items." 288 | msgstr "Aucun article." 289 | 290 | #: templates/filebrowser/include/tableheader.html:13 291 | #: templates/filebrowser/include/tableheader.html:14 292 | msgid "Filename" 293 | msgstr "Nom" 294 | 295 | #: templates/filebrowser/include/tableheader.html:20 296 | #: templates/filebrowser/include/tableheader.html:21 297 | msgid "Size" 298 | msgstr "Taille" 299 | 300 | #: templates/filebrowser/include/tableheader.html:23 301 | #: templates/filebrowser/include/tableheader.html:24 302 | msgid "Date" 303 | msgstr "Date" 304 | 305 | #: templates/filebrowser/include/toolbar.html:14 306 | msgid "Go" 307 | msgstr "Chercher" 308 | 309 | #: templates/filebrowser/include/toolbar.html:16 310 | #, python-format 311 | msgid "%(counter)s Item found" 312 | msgid_plural "%(counter)s Items found" 313 | msgstr[0] "%(counter)s article trouvé" 314 | msgstr[1] "%(counter)s articles trouvés" 315 | 316 | #: templates/filebrowser/include/toolbar.html:17 317 | #, python-format 318 | msgid "%(counter)s Item total" 319 | msgid_plural "%(counter)s Items total" 320 | msgstr[0] "%(counter)s article total" 321 | msgstr[1] "%(counter)s articles total" 322 | 323 | msgid "Folder" 324 | msgstr "Répertoire" 325 | 326 | msgid "Image" 327 | msgstr "Image" 328 | 329 | msgid "Document" 330 | msgstr "Document" 331 | 332 | msgid "Code" 333 | msgstr "Code" 334 | 335 | msgid "Sound" 336 | msgstr "Son" -------------------------------------------------------------------------------- /filebrowser/locale/it/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/locale/it/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /filebrowser/locale/it/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # translation of django.po to 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # 5 | # Alberto BOTTARINI , 2009. 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: django\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2009-02-19 21:24+0000\n" 11 | "PO-Revision-Date: 2009-02-04 14:02+0100\n" 12 | "Last-Translator: Alberto BOTTARINI \n" 13 | "MIME-Version: 1.0\n" 14 | "Content-Type: text/plain; charset=UTF-8\n" 15 | "Content-Transfer-Encoding: 8bit\n" 16 | "X-Generator: KBabel 1.11.4\n" 17 | 18 | #: fields.py:27 19 | #, python-format 20 | msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." 21 | msgstr "" 22 | "Assicurati che il testo abbia al massimo %(max)d caratteri (ora sono %" 23 | "(length)d)" 24 | 25 | #: fields.py:28 26 | #, python-format 27 | msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." 28 | msgstr "" 29 | "Assicurati che il testo abbia come minimo %(min)d caratteri (ora sono %" 30 | "(length)d)" 31 | 32 | #: fields.py:29 33 | #, python-format 34 | msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." 35 | msgstr "L'estensione %(ext)s è vietata. Sono accettate: %(allowed)s" 36 | 37 | #: forms.py:23 38 | msgid "Name" 39 | msgstr "" 40 | 41 | #: forms.py:23 forms.py:46 42 | #, fuzzy 43 | msgid "" 44 | "The Name will automatically be converted to lowercase. Only letters, " 45 | "numbers, underscores and hyphens are allowed." 46 | msgstr "" 47 | "Il nome del file verrà sostituito con le lettere minuscole.Sono accettati " 48 | "solo lettere. numeri, underscore e accenti." 49 | 50 | #: forms.py:30 forms.py:53 51 | msgid "Only letters, numbers, underscores and hyphens are allowed." 52 | msgstr "Sono accettati solo lettere. numeri, underscore e accenti." 53 | 54 | #: forms.py:33 55 | #, fuzzy 56 | msgid "The Folder already exists." 57 | msgstr "La cartella esiste già" 58 | 59 | #: forms.py:46 60 | msgid "New Name" 61 | msgstr "" 62 | 63 | #: forms.py:56 64 | #, fuzzy 65 | msgid "The File/Folder already exists." 66 | msgstr "Il file/cartella esiste già" 67 | 68 | #: forms.py:92 69 | #, fuzzy 70 | msgid "File" 71 | msgstr "Filtro" 72 | 73 | #: forms.py:93 74 | #, fuzzy 75 | msgid "Use Image Generator" 76 | msgstr "Usa il generatore di immagini" 77 | 78 | #: forms.py:102 79 | msgid "File already exists." 80 | msgstr "Il file esiste già" 81 | 82 | #: forms.py:108 83 | msgid "Filename is not allowed." 84 | msgstr "Filename non permesso" 85 | 86 | #: forms.py:113 87 | msgid "File extension is not allowed." 88 | msgstr "Estensione non permessa" 89 | 90 | #: forms.py:118 91 | msgid "Filesize exceeds allowed Upload Size." 92 | msgstr "Il file eccede il limite" 93 | 94 | #: functions.py:84 95 | msgid "Home" 96 | msgstr "Home" 97 | 98 | #: functions.py:276 99 | msgid "Thumbnail creation failed." 100 | msgstr "Errore nella creazione delle thumbnail" 101 | 102 | #: functions.py:331 functions.py:398 103 | msgid "Image creation failed." 104 | msgstr "Errore nella creazione dell'immagine" 105 | 106 | #: views.py:165 107 | msgid "FileBrowser" 108 | msgstr "FileBrowser" 109 | 110 | #: views.py:188 111 | #, fuzzy, python-format 112 | msgid "The Folder %s was successfully created." 113 | msgstr "Cartella %s creata con successo" 114 | 115 | #: views.py:194 116 | msgid "Permission denied." 117 | msgstr "Permesso negato" 118 | 119 | #: views.py:196 120 | msgid "Error creating directory." 121 | msgstr "Errore nella creazione della cartella" 122 | 123 | #: views.py:204 views.py:205 templates/filebrowser/index.html:30 124 | #, fuzzy 125 | msgid "New Folder" 126 | msgstr "Elimina la cartella" 127 | 128 | #: views.py:250 129 | msgid "Upload successful." 130 | msgstr "Upload effettuato con successo" 131 | 132 | #: views.py:263 templates/filebrowser/index.html:33 133 | #: templates/filebrowser/upload.html:62 134 | msgid "Upload" 135 | msgstr "" 136 | 137 | #: views.py:264 138 | msgid "Select files to upload" 139 | msgstr "Seleziona i file da uploadare" 140 | 141 | #: views.py:294 142 | msgid "Thumbnail creation successful." 143 | msgstr "Creazione thumbnail effettuata con successo" 144 | 145 | #: views.py:344 146 | #, python-format 147 | msgid "The file %s was successfully deleted." 148 | msgstr "Eliminazione di %s effettuata con successo" 149 | 150 | #: views.py:356 151 | #, python-format 152 | msgid "The directory %s was successfully deleted." 153 | msgstr "Eliminazione di %s effettuata con successo" 154 | 155 | #: views.py:407 156 | msgid "Error renaming Thumbnail." 157 | msgstr "Errore nella rinominazione delle thumbnail" 158 | 159 | #: views.py:413 160 | msgid "Renaming was successful." 161 | msgstr "Rinominazione effettuata con successo" 162 | 163 | #: views.py:418 164 | msgid "Error." 165 | msgstr "Errore" 166 | 167 | #: views.py:427 templates/filebrowser/include/filelisting.html:52 168 | #, fuzzy 169 | msgid "Rename" 170 | msgstr "Nome del file" 171 | 172 | #: views.py:428 173 | #, python-format 174 | msgid "Rename \"%s\"" 175 | msgstr "Rinomina \"%s\"" 176 | 177 | #: views.py:465 178 | msgid "Successfully generated Images." 179 | msgstr "Immagini generate con successo" 180 | 181 | #: templates/filebrowser/index.html:31 182 | msgid "Make Thumbs" 183 | msgstr "Genera le thumbnail" 184 | 185 | #: templates/filebrowser/index.html:32 186 | msgid "Generate Images" 187 | msgstr "Genera le immagini" 188 | 189 | #: templates/filebrowser/makedir.html:24 templates/filebrowser/rename.html:22 190 | msgid "Please correct the following errors." 191 | msgstr "" 192 | 193 | #: templates/filebrowser/makedir.html:34 templates/filebrowser/rename.html:33 194 | msgid "Submit" 195 | msgstr "Invia" 196 | 197 | #: templates/filebrowser/upload.html:37 198 | #, fuzzy 199 | msgid "Will use image generator." 200 | msgstr "Usa il generatore di immagini" 201 | 202 | #: templates/filebrowser/upload.html:47 203 | msgid "Help" 204 | msgstr "Aiuto" 205 | 206 | #: templates/filebrowser/upload.html:51 207 | msgid "Allowed" 208 | msgstr "Accettate" 209 | 210 | #: templates/filebrowser/upload.html:57 211 | msgid "Max. Filesize" 212 | msgstr "Dimensione massima" 213 | 214 | #: templates/filebrowser/include/filelisting.html:8 215 | #, fuzzy 216 | msgid "Select" 217 | msgstr "Seleziona un file" 218 | 219 | #: templates/filebrowser/include/filelisting.html:15 220 | msgid "Select File" 221 | msgstr "Seleziona un file" 222 | 223 | #: templates/filebrowser/include/filelisting.html:26 224 | msgid "Make Thumbnail" 225 | msgstr "Genera la thumbnail" 226 | 227 | #: templates/filebrowser/include/filelisting.html:29 228 | msgid "View Image" 229 | msgstr "Guarda immagine" 230 | 231 | #: templates/filebrowser/include/filelisting.html:46 232 | msgid "Generate Image Versions" 233 | msgstr "Genera le immagini" 234 | 235 | #: templates/filebrowser/include/filelisting.html:61 236 | msgid "Are you sure you want to delete this file?" 237 | msgstr "" 238 | 239 | #: templates/filebrowser/include/filelisting.html:61 240 | msgid "Delete File" 241 | msgstr "Elimina il file" 242 | 243 | #: templates/filebrowser/include/filelisting.html:64 244 | msgid "Are you sure you want to delete this Folder?" 245 | msgstr "" 246 | 247 | #: templates/filebrowser/include/filelisting.html:64 248 | msgid "Delete Folder" 249 | msgstr "Elimina la cartella" 250 | 251 | #: templates/filebrowser/include/filter.html:15 252 | msgid "Filter" 253 | msgstr "Filtro" 254 | 255 | #: templates/filebrowser/include/filter.html:21 256 | msgid "By Date" 257 | msgstr "Per data" 258 | 259 | #: templates/filebrowser/include/filter.html:23 260 | msgid "Any Date" 261 | msgstr "Qualsiasi data" 262 | 263 | #: templates/filebrowser/include/filter.html:25 264 | msgid "Today" 265 | msgstr "Oggi" 266 | 267 | #: templates/filebrowser/include/filter.html:27 268 | msgid "Past 7 days" 269 | msgstr "Ultimi 7 giorni" 270 | 271 | #: templates/filebrowser/include/filter.html:29 272 | msgid "Past 30 days" 273 | msgstr "Questo mese" 274 | 275 | #: templates/filebrowser/include/filter.html:31 276 | msgid "This year" 277 | msgstr "Quest'anno" 278 | 279 | #: templates/filebrowser/include/filter.html:39 280 | msgid "By Type" 281 | msgstr "Per tipo" 282 | 283 | #: templates/filebrowser/include/filter.html:41 284 | msgid "All" 285 | msgstr "Tutti" 286 | 287 | #: templates/filebrowser/include/paginator.html:5 288 | #, fuzzy 289 | msgid "No Items Found." 290 | msgstr "Nessun file trovato" 291 | 292 | #: templates/filebrowser/include/paginator.html:10 293 | #, python-format 294 | msgid "%(counter)s Item" 295 | msgid_plural "%(counter)s Items" 296 | msgstr[0] "" 297 | msgstr[1] "" 298 | 299 | #: templates/filebrowser/include/paginator.html:16 300 | msgid "No Items." 301 | msgstr "" 302 | 303 | #: templates/filebrowser/include/tableheader.html:13 304 | #: templates/filebrowser/include/tableheader.html:14 305 | msgid "Filename" 306 | msgstr "Nome del file" 307 | 308 | #: templates/filebrowser/include/tableheader.html:20 309 | #: templates/filebrowser/include/tableheader.html:21 310 | msgid "Size" 311 | msgstr "Dimensione" 312 | 313 | #: templates/filebrowser/include/tableheader.html:23 314 | #: templates/filebrowser/include/tableheader.html:24 315 | msgid "Date" 316 | msgstr "Data" 317 | 318 | #: templates/filebrowser/include/toolbar.html:14 319 | msgid "Go" 320 | msgstr "" 321 | 322 | #: templates/filebrowser/include/toolbar.html:16 323 | #, python-format 324 | msgid "%(counter)s Item found" 325 | msgid_plural "%(counter)s Items found" 326 | msgstr[0] "" 327 | msgstr[1] "" 328 | 329 | #: templates/filebrowser/include/toolbar.html:17 330 | #, python-format 331 | msgid "%(counter)s Item total" 332 | msgid_plural "%(counter)s Items total" 333 | msgstr[0] "" 334 | msgstr[1] "" 335 | 336 | #~ msgid "" 337 | #~ "The directory will automatically be converted to lowercase. Only letters, " 338 | #~ "numbers, underscores and hyphens are allowed." 339 | #~ msgstr "" 340 | #~ "Il nome della cartella verrà sostituito con le lettere minuscole.Sono " 341 | #~ "accettati solo lettere. numeri, underscore e accenti." 342 | 343 | #~ msgid "Make directory" 344 | #~ msgstr "Nuova cartella" 345 | 346 | #~ msgid "Make Directory" 347 | #~ msgstr "Nuova cartella" 348 | 349 | #~ msgid "Multiple Upload" 350 | #~ msgstr "Chargement de fichiers" 351 | 352 | #~ msgid "Rename File" 353 | #~ msgstr "Rinomina il file" 354 | 355 | #~ msgid "No Files" 356 | #~ msgstr "Nessun file" 357 | -------------------------------------------------------------------------------- /filebrowser/locale/nl/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/locale/nl/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /filebrowser/locale/nl/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # Dutch translation for django-filebrowser. 2 | # Copyright (C) 2009 Patrick Kranzlmueller 3 | # This file is distributed under the same license as the django-filebrowser package. 4 | # Joost Cassee , 2009. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2009-02-16 13:51+0100\n" 12 | "PO-Revision-Date: 2009-02-20 22:53+0100\n" 13 | "Last-Translator: Joost Cassee \n" 14 | "Language-Team: Dutch \n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | 19 | #: fields.py:27 20 | #, python-format 21 | msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." 22 | msgstr "" 23 | "Dit veld mag maximaal %(max)d karakters bevatten (de huidige lengte is " 24 | "%(length)d)." 25 | 26 | #: fields.py:28 27 | #, python-format 28 | msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." 29 | msgstr "" 30 | "Dit veld moet minstens %(min)d karakters bevatten (de huidige lengte is " 31 | "%(length)d)." 32 | 33 | #: fields.py:29 34 | #, python-format 35 | msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." 36 | msgstr "Extensie %(ext)s is niet toegestaand. Toegestaan zijn: %(allowed)s." 37 | 38 | #: forms.py:23 39 | msgid "Name" 40 | msgstr "Naam" 41 | 42 | #: forms.py:23 forms.py:46 43 | msgid "" 44 | "The Name will automatically be converted to lowercase. Only letters, " 45 | "numbers, underscores and hyphens are allowed." 46 | msgstr "" 47 | "De naam wordt automatisch geconverteerd naar kleine letters. Alleen letters, " 48 | "nummers, liggende streepjes en verbindingstreepjes zijn toegestaan." 49 | 50 | #: forms.py:30 forms.py:53 51 | msgid "Only letters, numbers, underscores and hyphens are allowed." 52 | msgstr "" 53 | "Alleen letters, nummers, liggende streepjes en verbindingstreepjes zijn " 54 | "toegestaan." 55 | 56 | #: forms.py:33 57 | msgid "The Folder already exists." 58 | msgstr "Deze map bestaat reeds." 59 | 60 | #: forms.py:46 61 | msgid "New Name" 62 | msgstr "Nieuwe naam" 63 | 64 | #: forms.py:56 65 | msgid "The File/Folder already exists." 66 | msgstr "Een map of bestand met deze naam bestaat reeds." 67 | 68 | #: forms.py:92 69 | msgid "File" 70 | msgstr "Bestand" 71 | 72 | #: forms.py:93 73 | msgid "Use Image Generator" 74 | msgstr "Maak afbeeldingsversies" 75 | 76 | #: forms.py:102 77 | msgid "File already exists." 78 | msgstr "Bestand bestaat reeds." 79 | 80 | #: forms.py:108 81 | msgid "Filename is not allowed." 82 | msgstr "Bestandsnaam is niet toegestaan." 83 | 84 | #: forms.py:113 85 | msgid "File extension is not allowed." 86 | msgstr "Bestandsextensie is niet toegestaand" 87 | 88 | #: forms.py:118 89 | msgid "Filesize exceeds allowed Upload Size." 90 | msgstr "Het bestand overschreidt de maximale upload grootte." 91 | 92 | #: functions.py:75 93 | msgid "Home" 94 | msgstr "Start" 95 | 96 | #: functions.py:267 97 | msgid "Thumbnail creation failed." 98 | msgstr "Fout bij het aanmaken van de voorbeeldafbeeldingen." 99 | 100 | #: functions.py:316 functions.py:377 101 | msgid "Image creation failed." 102 | msgstr "Fout bij het aanmaken van de afbeeldingsversies." 103 | 104 | #: views.py:156 105 | msgid "FileBrowser" 106 | msgstr "FileBrowser" 107 | 108 | #: views.py:179 109 | #, python-format 110 | msgid "The Folder %s was successfully created." 111 | msgstr "De map %s is aangemaakt." 112 | 113 | #: views.py:185 114 | msgid "Permission denied." 115 | msgstr "Geen toestemming." 116 | 117 | #: views.py:187 118 | msgid "Error creating directory." 119 | msgstr "Fout bij het aanmaken van de map." 120 | 121 | #: views.py:195 views.py:196 templates/filebrowser/index.html:30 122 | msgid "New Folder" 123 | msgstr "Nieuwe map" 124 | 125 | #: views.py:235 126 | msgid "Upload successful." 127 | msgstr "Upload geslaagd." 128 | 129 | #: views.py:248 templates/filebrowser/index.html:33 130 | #: templates/filebrowser/upload.html:62 131 | msgid "Upload" 132 | msgstr "Uploaden" 133 | 134 | #: views.py:249 135 | msgid "Select files to upload" 136 | msgstr "Selecteer bestanden voor upload" 137 | 138 | #: views.py:279 139 | msgid "Thumbnail creation successful." 140 | msgstr "Voorbeeldafbeeldingen aangemaakt." 141 | 142 | #: views.py:329 143 | #, python-format 144 | msgid "The file %s was successfully deleted." 145 | msgstr "Bestand %s verwijderd." 146 | 147 | #: views.py:341 148 | #, python-format 149 | msgid "The directory %s was successfully deleted." 150 | msgstr "Map %s verwijderd." 151 | 152 | #: views.py:392 153 | msgid "Error renaming Thumbnail." 154 | msgstr "Fout bij het hernoemen van de voorbeeldafbeelding." 155 | 156 | #: views.py:398 157 | msgid "Renaming was successful." 158 | msgstr "Hernoemen geslaagd." 159 | 160 | #: views.py:403 161 | msgid "Error." 162 | msgstr "Fout." 163 | 164 | #: views.py:412 templates/filebrowser/include/filelisting.html:52 165 | msgid "Rename" 166 | msgstr "Hernoemen" 167 | 168 | #: views.py:413 169 | #, python-format 170 | msgid "Rename \"%s\"" 171 | msgstr "Hernoem \"%s\"" 172 | 173 | #: views.py:450 174 | msgid "Successfully generated Images." 175 | msgstr "Afbeeldingsversies aangemaakt." 176 | 177 | #: templates/filebrowser/index.html:31 178 | msgid "Make Thumbs" 179 | msgstr "Voorbeeldafbeeldingen aanmaken" 180 | 181 | #: templates/filebrowser/index.html:32 182 | msgid "Generate Images" 183 | msgstr "Afbeeldingsversies aanmaken" 184 | 185 | #: templates/filebrowser/makedir.html:24 templates/filebrowser/rename.html:22 186 | msgid "Please correct the following errors." 187 | msgstr "Corrigeer onderstaande fouten." 188 | 189 | #: templates/filebrowser/makedir.html:34 templates/filebrowser/rename.html:33 190 | msgid "Submit" 191 | msgstr "OK" 192 | 193 | #: templates/filebrowser/upload.html:37 194 | msgid "Will use image generator." 195 | msgstr "Afbeeldingsversies zullen worden aangemaakt." 196 | 197 | #: templates/filebrowser/upload.html:47 198 | msgid "Help" 199 | msgstr "Help" 200 | 201 | #: templates/filebrowser/upload.html:51 202 | msgid "Allowed" 203 | msgstr "Toegestaan" 204 | 205 | #: templates/filebrowser/upload.html:57 206 | msgid "Max. Filesize" 207 | msgstr "Max. bestandsgrootte" 208 | 209 | #: templates/filebrowser/include/filelisting.html:8 210 | msgid "Select" 211 | msgstr "Selecteren" 212 | 213 | #: templates/filebrowser/include/filelisting.html:15 214 | msgid "Select File" 215 | msgstr "Selecteer bestand" 216 | 217 | #: templates/filebrowser/include/filelisting.html:26 218 | msgid "Make Thumbnail" 219 | msgstr "Maak voorbeeldafbeelding" 220 | 221 | #: templates/filebrowser/include/filelisting.html:29 222 | msgid "View Image" 223 | msgstr "Afbeelding tonen" 224 | 225 | #: templates/filebrowser/include/filelisting.html:46 226 | msgid "Generate Image Versions" 227 | msgstr "Afbeeldingsversies aanmaken" 228 | 229 | #: templates/filebrowser/include/filelisting.html:61 230 | msgid "Delete File" 231 | msgstr "Bestand verwijderen" 232 | 233 | #: templates/filebrowser/include/filelisting.html:64 234 | msgid "Delete Folder" 235 | msgstr "Verwijder map" 236 | 237 | #: templates/filebrowser/include/filter.html:15 238 | msgid "Filter" 239 | msgstr "Filter" 240 | 241 | #: templates/filebrowser/include/filter.html:21 242 | msgid "By Date" 243 | msgstr "Op datum" 244 | 245 | #: templates/filebrowser/include/filter.html:23 246 | msgid "Any Date" 247 | msgstr "Alle" 248 | 249 | #: templates/filebrowser/include/filter.html:25 250 | msgid "Today" 251 | msgstr "Vandaag" 252 | 253 | #: templates/filebrowser/include/filter.html:27 254 | msgid "Past 7 days" 255 | msgstr "Afgelopen 7 dagen" 256 | 257 | #: templates/filebrowser/include/filter.html:29 258 | msgid "Past 30 days" 259 | msgstr "Afgelopen 30 dagen" 260 | 261 | #: templates/filebrowser/include/filter.html:31 262 | msgid "This year" 263 | msgstr "Dit jaar" 264 | 265 | #: templates/filebrowser/include/filter.html:39 266 | msgid "By Type" 267 | msgstr "Op type" 268 | 269 | #: templates/filebrowser/include/filter.html:41 270 | msgid "All" 271 | msgstr "Alle" 272 | 273 | #: templates/filebrowser/include/paginator.html:5 274 | msgid "No Items Found." 275 | msgstr "Geen objecten gevonden" 276 | 277 | #: templates/filebrowser/include/paginator.html:10 278 | #, python-format 279 | msgid "%(counter)s Item" 280 | msgid_plural "%(counter)s Items" 281 | msgstr[0] "%(counter)s object" 282 | msgstr[1] "(counter)s objecten" 283 | 284 | #: templates/filebrowser/include/paginator.html:16 285 | msgid "No Items." 286 | msgstr "Geen objecten." 287 | 288 | #: templates/filebrowser/include/tableheader.html:13 289 | #: templates/filebrowser/include/tableheader.html:14 290 | msgid "Filename" 291 | msgstr "Bestandsnaam" 292 | 293 | #: templates/filebrowser/include/tableheader.html:20 294 | #: templates/filebrowser/include/tableheader.html:21 295 | msgid "Size" 296 | msgstr "Grootte" 297 | 298 | #: templates/filebrowser/include/tableheader.html:23 299 | #: templates/filebrowser/include/tableheader.html:24 300 | msgid "Date" 301 | msgstr "Datum" 302 | 303 | #: templates/filebrowser/include/toolbar.html:14 304 | msgid "Go" 305 | msgstr "Ga" 306 | 307 | #: templates/filebrowser/include/toolbar.html:16 308 | #, python-format 309 | msgid "%(counter)s Item found" 310 | msgid_plural "%(counter)s Items found" 311 | msgstr[0] "%(counter)s object gevonden" 312 | msgstr[1] "%(counter)s objecten gevonden" 313 | 314 | #: templates/filebrowser/include/toolbar.html:17 315 | #, python-format 316 | msgid "%(counter)s Item total" 317 | msgid_plural "%(counter)s Items total" 318 | msgstr[0] "Totaal %(counter)s object" 319 | msgstr[1] "Totaal %(counter)s objecten" 320 | -------------------------------------------------------------------------------- /filebrowser/locale/ru/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/locale/ru/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /filebrowser/locale/ru/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # Russian translation 2 | # This file is distributed under the same license as the django-filebrowser package. 3 | # Ivan Gromov , 2009. 4 | # 5 | #, fuzzy 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: PACKAGE VERSION\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2009-12-26 22:47+0500\n" 11 | "PO-Revision-Date: 2009-05-19 03:52\n" 12 | "Last-Translator: Mikhail Korbov \n" 13 | "Language-Team: Russian\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" 18 | 19 | #: fields.py:58 20 | #, python-format 21 | msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." 22 | msgstr "Расширение %(ext)s запрещено. Разрешено только %(allowed)s." 23 | 24 | #: forms.py:27 25 | #: templates/filebrowser/versions.html:64 26 | msgid "Name" 27 | msgstr "Имя" 28 | 29 | #: forms.py:27 30 | #: forms.py:33 31 | #: forms.py:50 32 | #: forms.py:56 33 | msgid "Only letters, numbers, underscores, spaces and hyphens are allowed." 34 | msgstr "Допускается вводить буквы, цифры, символ подчеркивания и дефис." 35 | 36 | #: forms.py:36 37 | #: forms.py:59 38 | msgid "The Folder already exists." 39 | msgstr "Папка уже существует." 40 | 41 | #: forms.py:50 42 | msgid "New Name" 43 | msgstr "Новое имя" 44 | 45 | #: forms.py:61 46 | msgid "The File already exists." 47 | msgstr "Файл уже существует." 48 | 49 | #: settings.py:118 50 | msgid "Folder" 51 | msgstr "Папка" 52 | 53 | #: settings.py:119 54 | msgid "Image" 55 | msgstr "Изображение" 56 | 57 | #: settings.py:120 58 | msgid "Video" 59 | msgstr "Видео" 60 | 61 | #: settings.py:121 62 | msgid "Document" 63 | msgstr "Документ" 64 | 65 | #: settings.py:122 66 | msgid "Audio" 67 | msgstr "Аудио" 68 | 69 | #: settings.py:123 70 | msgid "Code" 71 | msgstr "Код" 72 | 73 | #: views.py:55 74 | #: views.py:165 75 | #: views.py:230 76 | #: views.py:336 77 | #: views.py:418 78 | #: views.py:479 79 | msgid "The requested Folder does not exist." 80 | msgstr "Запрашиваемой папки не существует." 81 | 82 | #: views.py:59 83 | msgid "Error finding Upload-Folder. Maybe it does not exist?" 84 | msgstr "Ошибка при поиска папки для загрузки файлов. Быть может, ее не существует?" 85 | 86 | #: views.py:142 87 | #: templates/filebrowser/append.html:5 88 | #: templates/filebrowser/append.html:7 89 | #: templates/filebrowser/include/breadcrumbs.html:8 90 | #: templates/filebrowser/include/breadcrumbs.html:10 91 | msgid "FileBrowser" 92 | msgstr "Файловый менеджер" 93 | 94 | #: views.py:183 95 | #, python-format 96 | msgid "The Folder %s was successfully created." 97 | msgstr "Папка %s успешно создана." 98 | 99 | #: views.py:192 100 | msgid "Permission denied." 101 | msgstr "Доступ запрещен." 102 | 103 | #: views.py:194 104 | msgid "Error creating folder." 105 | msgstr "Ошибка создания папки." 106 | 107 | #: views.py:201 108 | #: views.py:204 109 | #: templates/filebrowser/index.html:54 110 | msgid "New Folder" 111 | msgstr "Новая папка" 112 | 113 | #: views.py:242 114 | msgid "Select files to upload" 115 | msgstr "Выберите файлы для загрузки" 116 | 117 | #: views.py:246 118 | #: templates/filebrowser/index.html:55 119 | #: templates/filebrowser/upload.html:110 120 | msgid "Upload" 121 | msgstr "Загрузить" 122 | 123 | #: views.py:338 124 | #: views.py:420 125 | #: views.py:481 126 | msgid "The requested File does not exist." 127 | msgstr "Запрашиваемого файла не существует." 128 | 129 | #: views.py:361 130 | #, python-format 131 | msgid "The file %s was successfully deleted." 132 | msgstr "Файл %s удален." 133 | 134 | #: views.py:377 135 | msgid "The folder %s was successfully deleted." 136 | msgstr "Папка %s удалена." 137 | 138 | #: views.py:447 139 | msgid "Renaming was successful." 140 | msgstr "Переименовано." 141 | 142 | #: views.py:452 143 | msgid "Error." 144 | msgstr "Ошибка." 145 | 146 | #: views.py:460 147 | #, python-format 148 | msgid "Rename \"%s\"" 149 | msgstr "Переименовать \"%s\"" 150 | 151 | #: views.py:463 152 | #: templates/filebrowser/include/filelisting.html:75 153 | msgid "Rename" 154 | msgstr "Переименовать" 155 | 156 | #: views.py:489 157 | #: views.py:492 158 | #, python-format 159 | msgid "Versions for \"%s\"" 160 | msgstr "Версии для \"%s\"" 161 | 162 | #: templates/filebrowser/makedir.html:25 163 | #: templates/filebrowser/rename.html:25 164 | msgid "Please correct the following errors." 165 | msgstr "Пожалуйста, исправьте ошибки." 166 | 167 | #: templates/filebrowser/makedir.html:33 168 | #: templates/filebrowser/upload.html:98 169 | msgid "" 170 | "The Name will be converted to lowercase. Spaces will be replaced with " 171 | "underscores." 172 | msgstr "Имя будет автоматически переведено в нижний регистр. Пробелы будут заменены на подчеркивания." 173 | 174 | #: templates/filebrowser/makedir.html:38 175 | #: templates/filebrowser/rename.html:36 176 | msgid "Submit" 177 | msgstr "Отправить" 178 | 179 | #: templates/filebrowser/upload.html:45 180 | msgid "BROWSE" 181 | msgstr "ОБЗОР" 182 | 183 | #: templates/filebrowser/upload.html:46 184 | msgid "An Error occured" 185 | msgstr "Произошла ошибка" 186 | 187 | #: templates/filebrowser/upload.html:47 188 | msgid "Completed" 189 | msgstr "Готово" 190 | 191 | #: templates/filebrowser/upload.html:48 192 | msgid "Do you want to replace the file" 193 | msgstr "Вы уверены, что хотите заменить этот файл?" 194 | 195 | #: templates/filebrowser/upload.html:49 196 | msgid "KB" 197 | msgstr "Кб" 198 | 199 | #: templates/filebrowser/upload.html:50 200 | msgid "MB" 201 | msgstr "Мб" 202 | 203 | #: templates/filebrowser/upload.html:81 204 | msgid "Help" 205 | msgstr "Справка" 206 | 207 | #: templates/filebrowser/upload.html:85 208 | msgid "Allowed" 209 | msgstr "Разрешено" 210 | 211 | #: templates/filebrowser/upload.html:91 212 | msgid "Max. Filesize" 213 | msgstr "Макс. размер" 214 | 215 | #: templates/filebrowser/upload.html:107 216 | msgid "Clear Queue" 217 | msgstr "Очистить список" 218 | 219 | #: templates/filebrowser/versions.html:67 220 | #, fuzzy 221 | msgid "Image Version" 222 | msgstr "Создать миниатюры" 223 | 224 | #: templates/filebrowser/versions.html:70 225 | msgid "Debug" 226 | msgstr "Отладка" 227 | 228 | #: templates/filebrowser/versions.html:84 229 | #: templates/filebrowser/include/filelisting.html:12 230 | msgid "Select" 231 | msgstr "Выберите" 232 | 233 | #: templates/filebrowser/versions.html:96 234 | #: templates/filebrowser/versions.html:108 235 | #: templates/filebrowser/include/filelisting.html:26 236 | #: templates/filebrowser/include/filelisting.html:40 237 | msgid "Select File" 238 | msgstr "Выберите файл" 239 | 240 | #: templates/filebrowser/versions.html:119 241 | msgid "Width" 242 | msgstr "Ширина" 243 | 244 | #: templates/filebrowser/versions.html:120 245 | msgid "Height" 246 | msgstr "Высота" 247 | 248 | #: templates/filebrowser/include/breadcrumbs.html:5 249 | msgid "Home" 250 | msgstr "Начало" 251 | 252 | #: templates/filebrowser/include/filelisting.html:51 253 | msgid "Show Versions" 254 | msgstr "Показать варианты" 255 | 256 | #: templates/filebrowser/include/filelisting.html:62 257 | msgid "View Image" 258 | msgstr "Просмотреть изображение" 259 | 260 | #: templates/filebrowser/include/filelisting.html:87 261 | msgid "Are you sure you want to delete this file?" 262 | msgstr "Вы уверены, что хотите удалить этот файл?" 263 | 264 | #: templates/filebrowser/include/filelisting.html:87 265 | msgid "Delete File" 266 | msgstr "Удалить файл" 267 | 268 | #: templates/filebrowser/include/filelisting.html:90 269 | msgid "Are you sure you want to delete this Folder?" 270 | msgstr "Вы уверены, что хотите удалить эту папку?" 271 | 272 | #: templates/filebrowser/include/filelisting.html:90 273 | msgid "Delete Folder" 274 | msgstr "Удалить папку" 275 | 276 | #: templates/filebrowser/include/filter.html:3 277 | msgid "Filter" 278 | msgstr "Фильтр" 279 | 280 | #: templates/filebrowser/include/filter.html:9 281 | msgid "By Date" 282 | msgstr "По дате" 283 | 284 | #: templates/filebrowser/include/filter.html:11 285 | msgid "Any Date" 286 | msgstr "За любое число" 287 | 288 | #: templates/filebrowser/include/filter.html:13 289 | msgid "Today" 290 | msgstr "Сегодня" 291 | 292 | #: templates/filebrowser/include/filter.html:15 293 | msgid "Past 7 days" 294 | msgstr "Последние 7 дней" 295 | 296 | #: templates/filebrowser/include/filter.html:17 297 | msgid "Past 30 days" 298 | msgstr "Последние 30 дней" 299 | 300 | #: templates/filebrowser/include/filter.html:19 301 | msgid "This year" 302 | msgstr "Этот год" 303 | 304 | #: templates/filebrowser/include/filter.html:27 305 | msgid "By Type" 306 | msgstr "По типу" 307 | 308 | #: templates/filebrowser/include/filter.html:29 309 | msgid "All" 310 | msgstr "Все" 311 | 312 | #: templates/filebrowser/include/paginator.html:5 313 | msgid "No Items Found" 314 | msgstr "Ничего не найдено" 315 | 316 | #: templates/filebrowser/include/paginator.html:11 317 | #, python-format 318 | msgid "%(counter)s Item" 319 | msgid_plural "%(counter)s Items" 320 | msgstr[0] "%(counter)s элемент" 321 | msgstr[1] "%(counter)s элемента" 322 | msgstr[2] "%(counter)s элементов" 323 | 324 | #: templates/filebrowser/include/paginator.html:26 325 | msgid "No Items" 326 | msgstr "Ничего нет" 327 | 328 | #: templates/filebrowser/include/search.html:3 329 | #, python-format 330 | msgid "1 result" 331 | msgid_plural "%(counter)s results" 332 | msgstr[0] "%(counter)s элемент" 333 | msgstr[1] "%(counter)s элемента" 334 | msgstr[2] "%(counter)s элементов" 335 | 336 | #: templates/filebrowser/include/search.html:4 337 | #: templates/filebrowser/include/toolbar.html:9 338 | msgid "%(full_result_count)s total" 339 | msgstr "%(full_result_count)s всего" 340 | 341 | #: templates/filebrowser/include/search.html:5 342 | msgid "Clear Restrictions" 343 | msgstr "Снять ограничения" 344 | 345 | #: templates/filebrowser/include/search.html:7 346 | #: templates/filebrowser/include/toolbar.html:16 347 | msgid "Search" 348 | msgstr "Искать" 349 | 350 | #: templates/filebrowser/include/search.html:19 351 | msgid "Go" 352 | msgstr "Вперед" 353 | 354 | #: templates/filebrowser/include/search.html:24 355 | #, python-format 356 | msgid "%(counter)s Item found" 357 | msgid_plural "%(counter)s Items found" 358 | msgstr[0] "%(counter)s элемент найден" 359 | msgstr[1] "%(counter)s элементов найдено" 360 | msgstr[2] "%(counter)s элементов найдено" 361 | 362 | #: templates/filebrowser/include/search.html:25 363 | #, python-format 364 | msgid "%(counter)s Item total" 365 | msgid_plural "%(counter)s Items total" 366 | msgstr[0] "%(counter)s элемент всего" 367 | msgstr[1] "%(counter)s элемента всего" 368 | msgstr[2] "%(counter)s элементов всего" 369 | 370 | #: templates/filebrowser/include/tableheader.html:16 371 | #: templates/filebrowser/include/tableheader.html:17 372 | msgid "Filename" 373 | msgstr "Имя файла" 374 | 375 | #: templates/filebrowser/include/tableheader.html:21 376 | #: templates/filebrowser/include/tableheader.html:22 377 | msgid "Size" 378 | msgstr "Размер" 379 | 380 | #: templates/filebrowser/include/tableheader.html:24 381 | #: templates/filebrowser/include/tableheader.html:25 382 | msgid "Date" 383 | msgstr "Дата" 384 | 385 | #: templates/filebrowser/include/toolbar.html:6 386 | msgid "Results" 387 | msgstr "Результаты" 388 | 389 | #: templates/filebrowser/include/toolbar.html:8 390 | msgid "%(counter)s result" 391 | msgid_plural "%(counter)s results" 392 | msgstr[0] "%(counter)s элемент" 393 | msgstr[1] "%(counter)s элемента" 394 | msgstr[2] "%(counter)s элементов" 395 | -------------------------------------------------------------------------------- /filebrowser/locale/sr/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/locale/sr/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /filebrowser/locale/sr/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2009 Janos Guljas 2 | # This file is distributed under the same license as the django-filebrowser package. 3 | # Janos Guljas , 2009. 4 | # 5 | #, fuzzy 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: django-filebrowser 3.0\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2009-11-12 18:14+0100\n" 11 | "PO-Revision-Date: 2009-05-06 22:18+0200\n" 12 | "Last-Translator: Janos Guljas \n" 13 | "Language-Team: Serbian\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" 18 | "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" 19 | 20 | #: fields.py:58 21 | #, python-format 22 | msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." 23 | msgstr "" 24 | "Фајлови са екстензијом %(ext)s нису дозвољени. Само %(allowed)s екстензије " 25 | "су дозвољене." 26 | 27 | #: forms.py:27 templates/filebrowser/versions.html:64 28 | msgid "Name" 29 | msgstr "Назив" 30 | 31 | #: forms.py:27 forms.py:33 forms.py:50 forms.py:56 32 | msgid "Only letters, numbers, underscores, spaces and hyphens are allowed." 33 | msgstr "Само слова, цифре, доња црта и црта су дозвољени карактери." 34 | 35 | #: forms.py:36 forms.py:59 36 | msgid "The Folder already exists." 37 | msgstr "Фолдер већ постоји." 38 | 39 | #: forms.py:50 40 | msgid "New Name" 41 | msgstr "Нови назив" 42 | 43 | #: forms.py:61 44 | msgid "The File already exists." 45 | msgstr "Фајл већ постоји." 46 | 47 | #: settings.py:105 48 | msgid "Folder" 49 | msgstr "Фолдер" 50 | 51 | #: settings.py:106 52 | msgid "Image" 53 | msgstr "Слика" 54 | 55 | #: settings.py:107 56 | msgid "Video" 57 | msgstr "Видео" 58 | 59 | #: settings.py:108 60 | msgid "Document" 61 | msgstr "Документ" 62 | 63 | #: settings.py:109 64 | msgid "Audio" 65 | msgstr "Аудио" 66 | 67 | #: settings.py:110 68 | msgid "Code" 69 | msgstr "Код" 70 | 71 | #: views.py:47 views.py:138 views.py:191 views.py:285 views.py:366 72 | #: views.py:426 73 | msgid "The requested Folder does not exist." 74 | msgstr "Тражен фолдер не постоји." 75 | 76 | #: views.py:51 77 | msgid "Error finding Upload-Folder. Maybe it does not exist?" 78 | msgstr "Фолдер за постављање фајлова не постоји." 79 | 80 | #: views.py:116 templates/filebrowser/append.html:5 81 | #: templates/filebrowser/append.html:7 82 | #: templates/filebrowser/include/breadcrumbs.html:7 83 | #: templates/filebrowser/include/breadcrumbs.html:9 84 | msgid "FileBrowser" 85 | msgstr "Фајл брузер" 86 | 87 | #: views.py:156 88 | #, python-format 89 | msgid "The Folder %s was successfully created." 90 | msgstr "Фолдер %s је успешно направљен." 91 | 92 | #: views.py:164 93 | msgid "Permission denied." 94 | msgstr "Одбијен приступ." 95 | 96 | #: views.py:166 97 | msgid "Error creating folder." 98 | msgstr "Грешка при креирању фолдера." 99 | 100 | #: views.py:173 views.py:175 templates/filebrowser/index.html:57 101 | msgid "New Folder" 102 | msgstr "Нови фолдер" 103 | 104 | #: views.py:203 105 | msgid "Select files to upload" 106 | msgstr "Изаберите фајлове за пренос" 107 | 108 | #: views.py:205 templates/filebrowser/index.html:58 109 | #: templates/filebrowser/upload.html:106 110 | msgid "Upload" 111 | msgstr "Пренос фајла" 112 | 113 | #: views.py:287 views.py:368 views.py:428 114 | msgid "The requested File does not exist." 115 | msgstr "Тражен фајл не постоји" 116 | 117 | #: views.py:310 118 | #, python-format 119 | msgid "The file %s was successfully deleted." 120 | msgstr "Фајл %s је супешно обрисан." 121 | 122 | #: views.py:326 123 | #, python-format 124 | msgid "The folder %s was successfully deleted." 125 | msgstr "Фолдер %s је супешно обрисан." 126 | 127 | #: views.py:395 128 | msgid "Renaming was successful." 129 | msgstr "Успешна промена назива." 130 | 131 | #: views.py:400 132 | msgid "Error." 133 | msgstr "Грешка." 134 | 135 | #: views.py:408 136 | #, python-format 137 | msgid "Rename \"%s\"" 138 | msgstr "Промени назив: „%s“" 139 | 140 | #: views.py:410 templates/filebrowser/include/filelisting.html:73 141 | msgid "Rename" 142 | msgstr "Промени назив" 143 | 144 | #: views.py:436 views.py:438 145 | #, python-format 146 | msgid "Versions for \"%s\"" 147 | msgstr "Верзије за „%s“" 148 | 149 | #: templates/filebrowser/makedir.html:25 templates/filebrowser/rename.html:25 150 | msgid "Please correct the following errors." 151 | msgstr "Исправите следеће грешке." 152 | 153 | #: templates/filebrowser/makedir.html:33 templates/filebrowser/upload.html:96 154 | msgid "" 155 | "The Name will be converted to lowercase. Spaces will be replaced with " 156 | "underscores." 157 | msgstr "" 158 | "Слова у називу ће аутоматски бити конвертована у мала. Празна поља ће бити " 159 | "замењена доњим цртама." 160 | 161 | #: templates/filebrowser/makedir.html:38 templates/filebrowser/rename.html:36 162 | msgid "Submit" 163 | msgstr "Изврши" 164 | 165 | #: templates/filebrowser/upload.html:44 166 | msgid "BROWSE" 167 | msgstr "БИРАЈ" 168 | 169 | #: templates/filebrowser/upload.html:45 170 | msgid "An Error occured" 171 | msgstr "Грешка се десила" 172 | 173 | #: templates/filebrowser/upload.html:46 174 | msgid "Completed" 175 | msgstr "Завршено" 176 | 177 | #: templates/filebrowser/upload.html:47 178 | msgid "Do you want to replace the file" 179 | msgstr "Да ли желите да замените овај фајл?" 180 | 181 | #: templates/filebrowser/upload.html:48 182 | msgid "KB" 183 | msgstr "KB" 184 | 185 | #: templates/filebrowser/upload.html:49 186 | msgid "MB" 187 | msgstr "MB" 188 | 189 | #: templates/filebrowser/upload.html:79 190 | msgid "Help" 191 | msgstr "Помоћ" 192 | 193 | #: templates/filebrowser/upload.html:83 194 | msgid "Allowed" 195 | msgstr "Дозвољено" 196 | 197 | #: templates/filebrowser/upload.html:89 198 | msgid "Max. Filesize" 199 | msgstr "Највећа величина фајла" 200 | 201 | #: templates/filebrowser/upload.html:104 202 | msgid "Clear Queue" 203 | msgstr "Очисти листу" 204 | 205 | #: templates/filebrowser/versions.html:67 206 | msgid "Image Version" 207 | msgstr "Верзија слике" 208 | 209 | #: templates/filebrowser/versions.html:70 210 | msgid "Debug" 211 | msgstr "Исправљање грешака" 212 | 213 | #: templates/filebrowser/versions.html:84 214 | #: templates/filebrowser/include/filelisting.html:10 215 | msgid "Select" 216 | msgstr "Изаберите" 217 | 218 | #: templates/filebrowser/versions.html:96 219 | #: templates/filebrowser/versions.html:108 220 | #: templates/filebrowser/include/filelisting.html:24 221 | #: templates/filebrowser/include/filelisting.html:38 222 | msgid "Select File" 223 | msgstr "Изаберите фајл" 224 | 225 | #: templates/filebrowser/versions.html:119 226 | msgid "Width" 227 | msgstr "Висина" 228 | 229 | #: templates/filebrowser/versions.html:120 230 | msgid "Height" 231 | msgstr "Ширина" 232 | 233 | #: templates/filebrowser/include/breadcrumbs.html:4 234 | msgid "Home" 235 | msgstr "Почетни фолдер" 236 | 237 | #: templates/filebrowser/include/filelisting.html:49 238 | msgid "Show Versions" 239 | msgstr "Прикажи верзије" 240 | 241 | #: templates/filebrowser/include/filelisting.html:60 242 | msgid "View Image" 243 | msgstr "Преглед слике" 244 | 245 | #: templates/filebrowser/include/filelisting.html:85 246 | msgid "Are you sure you want to delete this file?" 247 | msgstr "Да ли сте сигурни да желите да избришете овај фајл?" 248 | 249 | #: templates/filebrowser/include/filelisting.html:85 250 | msgid "Delete File" 251 | msgstr "Избриши фајл" 252 | 253 | #: templates/filebrowser/include/filelisting.html:88 254 | msgid "Are you sure you want to delete this Folder?" 255 | msgstr "Да ли сте сигурни да желите да избришете овај фолдер?" 256 | 257 | #: templates/filebrowser/include/filelisting.html:88 258 | msgid "Delete Folder" 259 | msgstr "Избриши фолдер" 260 | 261 | #: templates/filebrowser/include/filter.html:3 262 | msgid "Filter" 263 | msgstr "Филтер" 264 | 265 | #: templates/filebrowser/include/filter.html:9 266 | msgid "By Date" 267 | msgstr "По датуму" 268 | 269 | #: templates/filebrowser/include/filter.html:11 270 | msgid "Any Date" 271 | msgstr "Сви датуми" 272 | 273 | #: templates/filebrowser/include/filter.html:13 274 | msgid "Today" 275 | msgstr "Данас" 276 | 277 | #: templates/filebrowser/include/filter.html:15 278 | msgid "Past 7 days" 279 | msgstr "Последњих 7 дана" 280 | 281 | #: templates/filebrowser/include/filter.html:17 282 | msgid "Past 30 days" 283 | msgstr "Последњих 30 дана" 284 | 285 | #: templates/filebrowser/include/filter.html:19 286 | msgid "This year" 287 | msgstr "Ове године" 288 | 289 | #: templates/filebrowser/include/filter.html:27 290 | msgid "By Type" 291 | msgstr "По типу" 292 | 293 | #: templates/filebrowser/include/filter.html:29 294 | msgid "All" 295 | msgstr "Сви" 296 | 297 | #: templates/filebrowser/include/paginator.html:4 298 | msgid "No Items Found" 299 | msgstr "Ништа није пронађено." 300 | 301 | #: templates/filebrowser/include/paginator.html:9 302 | #, python-format 303 | msgid "%(counter)s Item" 304 | msgid_plural "%(counter)s Items" 305 | msgstr[0] "%(counter)s ставка" 306 | msgstr[1] "%(counter)s ставки" 307 | 308 | #: templates/filebrowser/include/paginator.html:15 309 | msgid "No Items" 310 | msgstr "Ниједна ставка" 311 | 312 | #: templates/filebrowser/include/search.html:3 313 | #, python-format 314 | msgid "1 result" 315 | msgid_plural "%(counter)s results" 316 | msgstr[0] "1 резултат" 317 | msgstr[1] "%(counter)s резултата" 318 | 319 | #: templates/filebrowser/include/search.html:4 320 | #: templates/filebrowser/include/toolbar.html:9 321 | #, python-format 322 | msgid "%(full_result_count)s total" 323 | msgstr "%(full_result_count)s укупно" 324 | 325 | #: templates/filebrowser/include/search.html:5 326 | msgid "Clear Restrictions" 327 | msgstr "Очисти забране" 328 | 329 | #: templates/filebrowser/include/search.html:7 330 | #: templates/filebrowser/include/toolbar.html:16 331 | msgid "Search" 332 | msgstr "Претрага" 333 | 334 | #: templates/filebrowser/include/search.html:19 335 | msgid "Go" 336 | msgstr "Иди" 337 | 338 | #: templates/filebrowser/include/search.html:24 339 | #, python-format 340 | msgid "%(counter)s Item found" 341 | msgid_plural "%(counter)s Items found" 342 | msgstr[0] "%(counter)s ставка нађена" 343 | msgstr[1] "%(counter)s ставки нађено" 344 | 345 | #: templates/filebrowser/include/search.html:25 346 | #, python-format 347 | msgid "%(counter)s Item total" 348 | msgid_plural "%(counter)s Items total" 349 | msgstr[0] "%(counter)s ставка укупно" 350 | msgstr[1] "%(counter)s ставки укупно" 351 | 352 | #: templates/filebrowser/include/tableheader.html:16 353 | #: templates/filebrowser/include/tableheader.html:17 354 | msgid "Filename" 355 | msgstr "Назив фајла" 356 | 357 | #: templates/filebrowser/include/tableheader.html:21 358 | #: templates/filebrowser/include/tableheader.html:22 359 | msgid "Size" 360 | msgstr "Величина" 361 | 362 | #: templates/filebrowser/include/tableheader.html:24 363 | #: templates/filebrowser/include/tableheader.html:25 364 | msgid "Date" 365 | msgstr "Датум" 366 | 367 | #: templates/filebrowser/include/toolbar.html:6 368 | msgid "Results" 369 | msgstr "Резултати" 370 | 371 | #: templates/filebrowser/include/toolbar.html:8 372 | #, python-format 373 | msgid "%(counter)s result" 374 | msgid_plural "%(counter)s results" 375 | msgstr[0] "%(counter)s резултат" 376 | msgstr[1] "%(counter)s резултата" 377 | -------------------------------------------------------------------------------- /filebrowser/locale/sr_Latn/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/locale/sr_Latn/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /filebrowser/locale/sr_Latn/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2009 Janos Guljas 2 | # This file is distributed under the same license as the django-filebrowser package. 3 | # Janos Guljas , 2009. 4 | # 5 | #, fuzzy 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: django-filebrowser 3.0\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2009-11-12 18:14+0100\n" 11 | "PO-Revision-Date: 2009-05-06 22:18+0200\n" 12 | "Last-Translator: Janos Guljas \n" 13 | "Language-Team: Serbian latin\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" 18 | "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" 19 | 20 | #: fields.py:58 21 | #, python-format 22 | msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." 23 | msgstr "" 24 | "Fajlovi sa ekstenzijom %(ext)s nisu dozvoljeni. Samo %(allowed)s ekstenzije " 25 | "su dozvoljene." 26 | 27 | #: forms.py:27 templates/filebrowser/versions.html:64 28 | msgid "Name" 29 | msgstr "Naziv" 30 | 31 | #: forms.py:27 forms.py:33 forms.py:50 forms.py:56 32 | msgid "Only letters, numbers, underscores, spaces and hyphens are allowed." 33 | msgstr "Samo slova, cifre, donja crta i crta su dozvoljeni karakteri." 34 | 35 | #: forms.py:36 forms.py:59 36 | msgid "The Folder already exists." 37 | msgstr "Folder već postoji." 38 | 39 | #: forms.py:50 40 | msgid "New Name" 41 | msgstr "Novi naziv" 42 | 43 | #: forms.py:61 44 | msgid "The File already exists." 45 | msgstr "Fajl već postoji." 46 | 47 | #: settings.py:105 48 | msgid "Folder" 49 | msgstr "Folder" 50 | 51 | #: settings.py:106 52 | msgid "Image" 53 | msgstr "Slika" 54 | 55 | #: settings.py:107 56 | msgid "Video" 57 | msgstr "Video" 58 | 59 | #: settings.py:108 60 | msgid "Document" 61 | msgstr "Dokument" 62 | 63 | #: settings.py:109 64 | msgid "Audio" 65 | msgstr "Audio" 66 | 67 | #: settings.py:110 68 | msgid "Code" 69 | msgstr "Kod" 70 | 71 | #: views.py:47 views.py:138 views.py:191 views.py:285 views.py:366 72 | #: views.py:426 73 | msgid "The requested Folder does not exist." 74 | msgstr "Tražen folder ne postoji." 75 | 76 | #: views.py:51 77 | msgid "Error finding Upload-Folder. Maybe it does not exist?" 78 | msgstr "Folder za postavljanje fajlova ne postoji." 79 | 80 | #: views.py:116 templates/filebrowser/append.html:5 81 | #: templates/filebrowser/append.html:7 82 | #: templates/filebrowser/include/breadcrumbs.html:7 83 | #: templates/filebrowser/include/breadcrumbs.html:9 84 | msgid "FileBrowser" 85 | msgstr "Fajl bruzer" 86 | 87 | #: views.py:156 88 | #, python-format 89 | msgid "The Folder %s was successfully created." 90 | msgstr "Folder %s je uspešno napravljen." 91 | 92 | #: views.py:164 93 | msgid "Permission denied." 94 | msgstr "Odbijen pristup." 95 | 96 | #: views.py:166 97 | msgid "Error creating folder." 98 | msgstr "Greška pri kreiranju foldera." 99 | 100 | #: views.py:173 views.py:175 templates/filebrowser/index.html:57 101 | msgid "New Folder" 102 | msgstr "Novi folder" 103 | 104 | #: views.py:203 105 | msgid "Select files to upload" 106 | msgstr "Izaberite fajlove za prenos" 107 | 108 | #: views.py:205 templates/filebrowser/index.html:58 109 | #: templates/filebrowser/upload.html:106 110 | msgid "Upload" 111 | msgstr "Prenos fajla" 112 | 113 | #: views.py:287 views.py:368 views.py:428 114 | msgid "The requested File does not exist." 115 | msgstr "Tražen fajl ne postoji" 116 | 117 | #: views.py:310 118 | #, python-format 119 | msgid "The file %s was successfully deleted." 120 | msgstr "Fajl %s je supešno obrisan." 121 | 122 | #: views.py:326 123 | #, python-format 124 | msgid "The folder %s was successfully deleted." 125 | msgstr "Folder %s je supešno obrisan." 126 | 127 | #: views.py:395 128 | msgid "Renaming was successful." 129 | msgstr "Uspešna promena naziva." 130 | 131 | #: views.py:400 132 | msgid "Error." 133 | msgstr "Greška." 134 | 135 | #: views.py:408 136 | #, python-format 137 | msgid "Rename \"%s\"" 138 | msgstr "Promeni naziv: „%s“" 139 | 140 | #: views.py:410 templates/filebrowser/include/filelisting.html:73 141 | msgid "Rename" 142 | msgstr "Promeni naziv" 143 | 144 | #: views.py:436 views.py:438 145 | #, python-format 146 | msgid "Versions for \"%s\"" 147 | msgstr "Verzije za „%s“" 148 | 149 | #: templates/filebrowser/makedir.html:25 templates/filebrowser/rename.html:25 150 | msgid "Please correct the following errors." 151 | msgstr "Ispravite sledeće greške." 152 | 153 | #: templates/filebrowser/makedir.html:33 templates/filebrowser/upload.html:96 154 | msgid "" 155 | "The Name will be converted to lowercase. Spaces will be replaced with " 156 | "underscores." 157 | msgstr "" 158 | "Slova u nazivu će automatski biti konvertovana u mala. Prazna polja će biti " 159 | "zamenjena donjim crtama." 160 | 161 | #: templates/filebrowser/makedir.html:38 templates/filebrowser/rename.html:36 162 | msgid "Submit" 163 | msgstr "Izvrši" 164 | 165 | #: templates/filebrowser/upload.html:44 166 | msgid "BROWSE" 167 | msgstr "BIRAJ" 168 | 169 | #: templates/filebrowser/upload.html:45 170 | msgid "An Error occured" 171 | msgstr "Greška se desila" 172 | 173 | #: templates/filebrowser/upload.html:46 174 | msgid "Completed" 175 | msgstr "Završeno" 176 | 177 | #: templates/filebrowser/upload.html:47 178 | msgid "Do you want to replace the file" 179 | msgstr "Da li želite da zamenite ovaj fajl?" 180 | 181 | #: templates/filebrowser/upload.html:48 182 | msgid "KB" 183 | msgstr "KB" 184 | 185 | #: templates/filebrowser/upload.html:49 186 | msgid "MB" 187 | msgstr "MB" 188 | 189 | #: templates/filebrowser/upload.html:79 190 | msgid "Help" 191 | msgstr "Pomoć" 192 | 193 | #: templates/filebrowser/upload.html:83 194 | msgid "Allowed" 195 | msgstr "Dozvoljeno" 196 | 197 | #: templates/filebrowser/upload.html:89 198 | msgid "Max. Filesize" 199 | msgstr "Najveća veličina fajla" 200 | 201 | #: templates/filebrowser/upload.html:104 202 | msgid "Clear Queue" 203 | msgstr "Očisti listu" 204 | 205 | #: templates/filebrowser/versions.html:67 206 | msgid "Image Version" 207 | msgstr "Verzija slike" 208 | 209 | #: templates/filebrowser/versions.html:70 210 | msgid "Debug" 211 | msgstr "Ispravljanje grešaka" 212 | 213 | #: templates/filebrowser/versions.html:84 214 | #: templates/filebrowser/include/filelisting.html:10 215 | msgid "Select" 216 | msgstr "Izaberite" 217 | 218 | #: templates/filebrowser/versions.html:96 219 | #: templates/filebrowser/versions.html:108 220 | #: templates/filebrowser/include/filelisting.html:24 221 | #: templates/filebrowser/include/filelisting.html:38 222 | msgid "Select File" 223 | msgstr "Izaberite fajl" 224 | 225 | #: templates/filebrowser/versions.html:119 226 | msgid "Width" 227 | msgstr "Visina" 228 | 229 | #: templates/filebrowser/versions.html:120 230 | msgid "Height" 231 | msgstr "Širina" 232 | 233 | #: templates/filebrowser/include/breadcrumbs.html:4 234 | msgid "Home" 235 | msgstr "Početni folder" 236 | 237 | #: templates/filebrowser/include/filelisting.html:49 238 | msgid "Show Versions" 239 | msgstr "Prikaži verzije" 240 | 241 | #: templates/filebrowser/include/filelisting.html:60 242 | msgid "View Image" 243 | msgstr "Pregled slike" 244 | 245 | #: templates/filebrowser/include/filelisting.html:85 246 | msgid "Are you sure you want to delete this file?" 247 | msgstr "Da li ste sigurni da želite da izbrišete ovaj fajl?" 248 | 249 | #: templates/filebrowser/include/filelisting.html:85 250 | msgid "Delete File" 251 | msgstr "Izbriši fajl" 252 | 253 | #: templates/filebrowser/include/filelisting.html:88 254 | msgid "Are you sure you want to delete this Folder?" 255 | msgstr "Da li ste sigurni da želite da izbrišete ovaj folder?" 256 | 257 | #: templates/filebrowser/include/filelisting.html:88 258 | msgid "Delete Folder" 259 | msgstr "Izbriši folder" 260 | 261 | #: templates/filebrowser/include/filter.html:3 262 | msgid "Filter" 263 | msgstr "Filter" 264 | 265 | #: templates/filebrowser/include/filter.html:9 266 | msgid "By Date" 267 | msgstr "Po datumu" 268 | 269 | #: templates/filebrowser/include/filter.html:11 270 | msgid "Any Date" 271 | msgstr "Svi datumi" 272 | 273 | #: templates/filebrowser/include/filter.html:13 274 | msgid "Today" 275 | msgstr "Danas" 276 | 277 | #: templates/filebrowser/include/filter.html:15 278 | msgid "Past 7 days" 279 | msgstr "Poslednjih 7 dana" 280 | 281 | #: templates/filebrowser/include/filter.html:17 282 | msgid "Past 30 days" 283 | msgstr "Poslednjih 30 dana" 284 | 285 | #: templates/filebrowser/include/filter.html:19 286 | msgid "This year" 287 | msgstr "Ove godine" 288 | 289 | #: templates/filebrowser/include/filter.html:27 290 | msgid "By Type" 291 | msgstr "Po tipu" 292 | 293 | #: templates/filebrowser/include/filter.html:29 294 | msgid "All" 295 | msgstr "Svi" 296 | 297 | #: templates/filebrowser/include/paginator.html:4 298 | msgid "No Items Found" 299 | msgstr "Ništa nije pronađeno." 300 | 301 | #: templates/filebrowser/include/paginator.html:9 302 | #, python-format 303 | msgid "%(counter)s Item" 304 | msgid_plural "%(counter)s Items" 305 | msgstr[0] "%(counter)s stavka" 306 | msgstr[1] "%(counter)s stavki" 307 | 308 | #: templates/filebrowser/include/paginator.html:15 309 | msgid "No Items" 310 | msgstr "Nijedna stavka" 311 | 312 | #: templates/filebrowser/include/search.html:3 313 | #, python-format 314 | msgid "1 result" 315 | msgid_plural "%(counter)s results" 316 | msgstr[0] "1 rezultat" 317 | msgstr[1] "%(counter)s rezultata" 318 | 319 | #: templates/filebrowser/include/search.html:4 320 | #: templates/filebrowser/include/toolbar.html:9 321 | #, python-format 322 | msgid "%(full_result_count)s total" 323 | msgstr "%(full_result_count)s ukupno" 324 | 325 | #: templates/filebrowser/include/search.html:5 326 | msgid "Clear Restrictions" 327 | msgstr "Očisti zabrane" 328 | 329 | #: templates/filebrowser/include/search.html:7 330 | #: templates/filebrowser/include/toolbar.html:16 331 | msgid "Search" 332 | msgstr "Pretraga" 333 | 334 | #: templates/filebrowser/include/search.html:19 335 | msgid "Go" 336 | msgstr "Idi" 337 | 338 | #: templates/filebrowser/include/search.html:24 339 | #, python-format 340 | msgid "%(counter)s Item found" 341 | msgid_plural "%(counter)s Items found" 342 | msgstr[0] "%(counter)s stavka nađena" 343 | msgstr[1] "%(counter)s stavki nađeno" 344 | 345 | #: templates/filebrowser/include/search.html:25 346 | #, python-format 347 | msgid "%(counter)s Item total" 348 | msgid_plural "%(counter)s Items total" 349 | msgstr[0] "%(counter)s stavka ukupno" 350 | msgstr[1] "%(counter)s stavki ukupno" 351 | 352 | #: templates/filebrowser/include/tableheader.html:16 353 | #: templates/filebrowser/include/tableheader.html:17 354 | msgid "Filename" 355 | msgstr "Naziv fajla" 356 | 357 | #: templates/filebrowser/include/tableheader.html:21 358 | #: templates/filebrowser/include/tableheader.html:22 359 | msgid "Size" 360 | msgstr "Veličina" 361 | 362 | #: templates/filebrowser/include/tableheader.html:24 363 | #: templates/filebrowser/include/tableheader.html:25 364 | msgid "Date" 365 | msgstr "Datum" 366 | 367 | #: templates/filebrowser/include/toolbar.html:6 368 | msgid "Results" 369 | msgstr "Rezultati" 370 | 371 | #: templates/filebrowser/include/toolbar.html:8 372 | #, python-format 373 | msgid "%(counter)s result" 374 | msgid_plural "%(counter)s results" 375 | msgstr[0] "%(counter)s rezultat" 376 | msgstr[1] "%(counter)s rezultata" 377 | -------------------------------------------------------------------------------- /filebrowser/locale/zh_CN/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/locale/zh_CN/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /filebrowser/locale/zh_CN/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: filebrowser 3\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2009-12-20 17:59+0800\n" 11 | "PO-Revision-Date: 2009-12-20 17:58+0800\n" 12 | "Last-Translator: jianaijun \n" 13 | "Language-Team: freeren.org \n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "Plural-Forms: nplurals=1; plural=0;\n" 18 | "X-Poedit-Language: Chinese\n" 19 | "X-Poedit-Country: CHINA\n" 20 | "X-Poedit-SourceCharset: utf-8\n" 21 | "X-Poedit-Bookmarks: 0,1,-1,-1,-1,-1,-1,-1,-1,-1\n" 22 | 23 | #: fields.py:58 24 | #, python-format 25 | msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." 26 | msgstr "扩展名 %(ext)s 是不允许的。只允许 %(allowed)s 。" 27 | 28 | #: forms.py:27 templates/filebrowser/versions.html:64 29 | msgid "Name" 30 | msgstr "名称" 31 | 32 | #: forms.py:27 forms.py:33 forms.py:50 forms.py:56 33 | msgid "Only letters, numbers, underscores, spaces and hyphens are allowed." 34 | msgstr "只允许字母、数字、下划线、空格和连字符。" 35 | 36 | #: forms.py:36 forms.py:59 37 | msgid "The Folder already exists." 38 | msgstr "这个文件夹已经存在。" 39 | 40 | #: forms.py:50 41 | msgid "New Name" 42 | msgstr "新名称" 43 | 44 | #: forms.py:61 45 | msgid "The File already exists." 46 | msgstr "这个文件已经存在。" 47 | 48 | #: settings.py:114 49 | msgid "Folder" 50 | msgstr "目录" 51 | 52 | #: settings.py:115 53 | msgid "Image" 54 | msgstr "图片" 55 | 56 | #: settings.py:116 57 | msgid "Video" 58 | msgstr "视频" 59 | 60 | #: settings.py:117 61 | msgid "Document" 62 | msgstr "文档" 63 | 64 | #: settings.py:118 65 | msgid "Audio" 66 | msgstr "音频" 67 | 68 | #: settings.py:119 69 | msgid "Code" 70 | msgstr "代码" 71 | 72 | #: views.py:54 views.py:164 views.py:219 views.py:316 views.py:398 73 | #: views.py:459 74 | msgid "The requested Folder does not exist." 75 | msgstr "请求的文件夹不存在。" 76 | 77 | #: views.py:58 78 | msgid "Error finding Upload-Folder. Maybe it does not exist?" 79 | msgstr "查找文件夹发生错误。也许它不存在?" 80 | 81 | #: views.py:141 templates/filebrowser/append.html:5 82 | #: templates/filebrowser/append.html:7 83 | #: templates/filebrowser/include/breadcrumbs.html:8 84 | #: templates/filebrowser/include/breadcrumbs.html:10 85 | msgid "FileBrowser" 86 | msgstr "文件浏览器" 87 | 88 | #: views.py:182 89 | #, python-format 90 | msgid "The Folder %s was successfully created." 91 | msgstr "文件夹 \"%s\" 创建成功。" 92 | 93 | #: views.py:191 94 | msgid "Permission denied." 95 | msgstr "权限被拒绝。" 96 | 97 | #: views.py:193 98 | msgid "Error creating folder." 99 | msgstr "创建文件夹错误。" 100 | 101 | #: views.py:200 views.py:203 templates/filebrowser/index.html:52 102 | msgid "New Folder" 103 | msgstr "创建文件夹" 104 | 105 | #: views.py:231 106 | msgid "Select files to upload" 107 | msgstr "选择上传文件" 108 | 109 | #: views.py:235 templates/filebrowser/index.html:53 110 | #: templates/filebrowser/upload.html:107 111 | msgid "Upload" 112 | msgstr "上传" 113 | 114 | #: views.py:318 views.py:400 views.py:461 115 | msgid "The requested File does not exist." 116 | msgstr "请求的文件不存在。" 117 | 118 | #: views.py:341 119 | #, python-format 120 | msgid "The file %s was successfully deleted." 121 | msgstr "文件 \"%s\" 删除成功。" 122 | 123 | #: views.py:357 124 | #, python-format 125 | msgid "The folder %s was successfully deleted." 126 | msgstr "文件夹 \"%s\" 删除成功。" 127 | 128 | #: views.py:427 129 | msgid "Renaming was successful." 130 | msgstr "重命名成功。" 131 | 132 | #: views.py:432 133 | msgid "Error." 134 | msgstr "错误。" 135 | 136 | #: views.py:440 137 | #, python-format 138 | msgid "Rename \"%s\"" 139 | msgstr "重命名 \"%s\"" 140 | 141 | #: views.py:443 templates/filebrowser/include/filelisting.html:75 142 | msgid "Rename" 143 | msgstr "重命名" 144 | 145 | #: views.py:469 views.py:472 146 | #, python-format 147 | msgid "Versions for \"%s\"" 148 | msgstr "\"%s\" 版本" 149 | 150 | #: templates/filebrowser/makedir.html:25 templates/filebrowser/rename.html:25 151 | msgid "Please correct the following errors." 152 | msgstr "请修正下面的错误。" 153 | 154 | #: templates/filebrowser/makedir.html:33 templates/filebrowser/upload.html:97 155 | msgid "" 156 | "The Name will be converted to lowercase. Spaces will be replaced with " 157 | "underscores." 158 | msgstr "这个名称将自动转换为小写。空格替换为下划线。" 159 | 160 | #: templates/filebrowser/makedir.html:38 templates/filebrowser/rename.html:36 161 | msgid "Submit" 162 | msgstr "保存" 163 | 164 | #: templates/filebrowser/upload.html:45 165 | msgid "BROWSE" 166 | msgstr "浏览..." 167 | 168 | #: templates/filebrowser/upload.html:46 169 | msgid "An Error occured" 170 | msgstr "发生错误" 171 | 172 | #: templates/filebrowser/upload.html:47 173 | msgid "Completed" 174 | msgstr "已完成" 175 | 176 | #: templates/filebrowser/upload.html:48 177 | msgid "Do you want to replace the file" 178 | msgstr "你确定要替换这个文件?" 179 | 180 | #: templates/filebrowser/upload.html:49 181 | msgid "KB" 182 | msgstr "KB" 183 | 184 | #: templates/filebrowser/upload.html:50 185 | msgid "MB" 186 | msgstr "MB" 187 | 188 | #: templates/filebrowser/upload.html:80 189 | msgid "Help" 190 | msgstr "帮助" 191 | 192 | #: templates/filebrowser/upload.html:84 193 | msgid "Allowed" 194 | msgstr "允许" 195 | 196 | #: templates/filebrowser/upload.html:90 197 | msgid "Max. Filesize" 198 | msgstr "最大文件大小" 199 | 200 | #: templates/filebrowser/upload.html:105 201 | msgid "Clear Queue" 202 | msgstr "清除队列" 203 | 204 | #: templates/filebrowser/versions.html:67 205 | msgid "Image Version" 206 | msgstr "图片版本" 207 | 208 | #: templates/filebrowser/versions.html:70 209 | msgid "Debug" 210 | msgstr "调试" 211 | 212 | #: templates/filebrowser/versions.html:84 213 | #: templates/filebrowser/include/filelisting.html:12 214 | msgid "Select" 215 | msgstr "选择" 216 | 217 | #: templates/filebrowser/versions.html:96 218 | #: templates/filebrowser/versions.html:108 219 | #: templates/filebrowser/include/filelisting.html:26 220 | #: templates/filebrowser/include/filelisting.html:40 221 | msgid "Select File" 222 | msgstr "选择文件" 223 | 224 | #: templates/filebrowser/versions.html:119 225 | msgid "Width" 226 | msgstr "宽" 227 | 228 | #: templates/filebrowser/versions.html:120 229 | msgid "Height" 230 | msgstr "高" 231 | 232 | #: templates/filebrowser/include/breadcrumbs.html:5 233 | msgid "Home" 234 | msgstr "首页" 235 | 236 | #: templates/filebrowser/include/filelisting.html:51 237 | msgid "Show Versions" 238 | msgstr "显示版本" 239 | 240 | #: templates/filebrowser/include/filelisting.html:62 241 | msgid "View Image" 242 | msgstr "查看图片" 243 | 244 | #: templates/filebrowser/include/filelisting.html:87 245 | msgid "Are you sure you want to delete this file?" 246 | msgstr "你确定要删除这个文件?" 247 | 248 | #: templates/filebrowser/include/filelisting.html:87 249 | msgid "Delete File" 250 | msgstr "删除文件" 251 | 252 | #: templates/filebrowser/include/filelisting.html:90 253 | msgid "Are you sure you want to delete this Folder?" 254 | msgstr "你确定要删除这个文件夹?" 255 | 256 | #: templates/filebrowser/include/filelisting.html:90 257 | msgid "Delete Folder" 258 | msgstr "删除文件夹" 259 | 260 | #: templates/filebrowser/include/filter.html:3 261 | msgid "Filter" 262 | msgstr "过滤器" 263 | 264 | #: templates/filebrowser/include/filter.html:9 265 | msgid "By Date" 266 | msgstr "以 日期" 267 | 268 | #: templates/filebrowser/include/filter.html:11 269 | msgid "Any Date" 270 | msgstr "任意日期" 271 | 272 | #: templates/filebrowser/include/filter.html:13 273 | msgid "Today" 274 | msgstr "今天" 275 | 276 | #: templates/filebrowser/include/filter.html:15 277 | msgid "Past 7 days" 278 | msgstr "前7天" 279 | 280 | #: templates/filebrowser/include/filter.html:17 281 | msgid "Past 30 days" 282 | msgstr "本月" 283 | 284 | #: templates/filebrowser/include/filter.html:19 285 | msgid "This year" 286 | msgstr "本年" 287 | 288 | #: templates/filebrowser/include/filter.html:27 289 | msgid "By Type" 290 | msgstr "以 类型" 291 | 292 | #: templates/filebrowser/include/filter.html:29 293 | msgid "All" 294 | msgstr "全部" 295 | 296 | #: templates/filebrowser/include/paginator.html:5 297 | msgid "No Items Found" 298 | msgstr "没有找到。" 299 | 300 | #: templates/filebrowser/include/paginator.html:11 301 | #, python-format 302 | msgid "%(counter)s Item" 303 | msgid_plural "%(counter)s Items" 304 | msgstr[0] "%(counter)s 条" 305 | 306 | #: templates/filebrowser/include/paginator.html:26 307 | msgid "No Items" 308 | msgstr "没有项。" 309 | 310 | #: templates/filebrowser/include/search.html:3 311 | #, python-format 312 | msgid "1 result" 313 | msgid_plural "%(counter)s results" 314 | msgstr[0] "1 条结果" 315 | msgstr[1] "%(counter)s 条结果" 316 | 317 | #: templates/filebrowser/include/search.html:4 318 | #: templates/filebrowser/include/toolbar.html:23 319 | #, python-format 320 | msgid "%(full_result_count)s total" 321 | msgstr "共 %(full_result_count)s 条" 322 | 323 | #: templates/filebrowser/include/search.html:5 324 | msgid "Clear Restrictions" 325 | msgstr "清除限制" 326 | 327 | #: templates/filebrowser/include/search.html:7 328 | msgid "Search" 329 | msgstr "搜索" 330 | 331 | #: templates/filebrowser/include/search.html:19 332 | #: templates/filebrowser/include/toolbar.html:20 333 | msgid "Go" 334 | msgstr "执行" 335 | 336 | #: templates/filebrowser/include/search.html:24 337 | #, python-format 338 | msgid "%(counter)s Item found" 339 | msgid_plural "%(counter)s Items found" 340 | msgstr[0] "找到 %(counter)s 条" 341 | msgstr[1] "找到 %(counter)s 条" 342 | 343 | #: templates/filebrowser/include/search.html:25 344 | #, python-format 345 | msgid "%(counter)s Item total" 346 | msgid_plural "%(counter)s Items total" 347 | msgstr[0] "共 %(counter)s 条" 348 | msgstr[1] "共 %(counter)s 条" 349 | 350 | #: templates/filebrowser/include/tableheader.html:16 351 | #: templates/filebrowser/include/tableheader.html:17 352 | msgid "Filename" 353 | msgstr "文件名" 354 | 355 | #: templates/filebrowser/include/tableheader.html:21 356 | #: templates/filebrowser/include/tableheader.html:22 357 | msgid "Size" 358 | msgstr "大小" 359 | 360 | #: templates/filebrowser/include/tableheader.html:24 361 | #: templates/filebrowser/include/tableheader.html:25 362 | msgid "Date" 363 | msgstr "日期" 364 | 365 | #: templates/filebrowser/include/toolbar.html:23 366 | #, python-format 367 | msgid "%(counter)s result" 368 | msgid_plural "%(counter)s results" 369 | msgstr[0] "%(counter)s 条结果" 370 | msgstr[1] "%(counter)s 条结果" 371 | -------------------------------------------------------------------------------- /filebrowser/locale/zh_TW/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/locale/zh_TW/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /filebrowser/locale/zh_TW/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: filebrowser 3\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2007-12-28 19:23+0800\n" 11 | "PO-Revision-Date: 2009-12-20 17:58+0800\n" 12 | "Last-Translator: jianaijun \n" 13 | "Language-Team: freeren.org \n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "Plural-Forms: nplurals=1; plural=0;\n" 18 | "X-Poedit-Language: Chinese\n" 19 | "X-Poedit-Country: CHINA\n" 20 | "X-Poedit-SourceCharset: utf-8\n" 21 | "X-Poedit-Bookmarks: 0,1,-1,-1,-1,-1,-1,-1,-1,-1\n" 22 | 23 | #: fields.py:58 24 | #, python-format 25 | msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." 26 | msgstr "擴展名%(ext)s 是不允許的。只允許%(allowed)s 。" 27 | 28 | #: forms.py:27 templates/filebrowser/versions.html:64 29 | msgid "Name" 30 | msgstr "名稱" 31 | 32 | #: forms.py:27 forms.py:33 forms.py:50 forms.py:56 33 | msgid "Only letters, numbers, underscores, spaces and hyphens are allowed." 34 | msgstr "只允許字母、數字、下劃線、空格和連字符。" 35 | 36 | #: forms.py:36 forms.py:59 37 | msgid "The Folder already exists." 38 | msgstr "這個文件夾已經存在。" 39 | 40 | #: forms.py:50 41 | msgid "New Name" 42 | msgstr "新名稱" 43 | 44 | #: forms.py:61 45 | msgid "The File already exists." 46 | msgstr "這個文件已經存在。" 47 | 48 | #: settings.py:114 49 | msgid "Folder" 50 | msgstr "目錄" 51 | 52 | #: settings.py:115 53 | msgid "Image" 54 | msgstr "圖片" 55 | 56 | #: settings.py:116 57 | msgid "Video" 58 | msgstr "視頻" 59 | 60 | #: settings.py:117 61 | msgid "Document" 62 | msgstr "文檔" 63 | 64 | #: settings.py:118 65 | msgid "Audio" 66 | msgstr "音頻" 67 | 68 | #: settings.py:119 69 | msgid "Code" 70 | msgstr "代碼" 71 | 72 | #: views.py:54 views.py:164 views.py:219 views.py:316 views.py:398 73 | #: views.py:459 74 | msgid "The requested Folder does not exist." 75 | msgstr "請求的文件夾不存在。" 76 | 77 | #: views.py:58 78 | msgid "Error finding Upload-Folder. Maybe it does not exist?" 79 | msgstr "查找文件夾發生錯誤。也許它不存在?" 80 | 81 | #: views.py:141 templates/filebrowser/append.html:5 82 | #: templates/filebrowser/append.html:7 83 | #: templates/filebrowser/include/breadcrumbs.html:8 84 | #: templates/filebrowser/include/breadcrumbs.html:10 85 | msgid "FileBrowser" 86 | msgstr "文件瀏覽器" 87 | 88 | #: views.py:182 89 | #, python-format 90 | msgid "The Folder %s was successfully created." 91 | msgstr "文件夾 \"%s\" 創建成功。" 92 | 93 | #: views.py:191 94 | msgid "Permission denied." 95 | msgstr "權限被拒絕。" 96 | 97 | #: views.py:193 98 | msgid "Error creating folder." 99 | msgstr "創建文件夾錯誤。" 100 | 101 | #: views.py:200 views.py:203 templates/filebrowser/index.html:52 102 | msgid "New Folder" 103 | msgstr "創建文件夾" 104 | 105 | #: views.py:231 106 | msgid "Select files to upload" 107 | msgstr "選擇上傳文件" 108 | 109 | #: views.py:235 templates/filebrowser/index.html:53 110 | #: templates/filebrowser/upload.html:108 111 | msgid "Upload" 112 | msgstr "上傳" 113 | 114 | #: views.py:318 views.py:400 views.py:461 115 | msgid "The requested File does not exist." 116 | msgstr "請求的文件不存在。" 117 | 118 | #: views.py:341 119 | #, python-format 120 | msgid "The file %s was successfully deleted." 121 | msgstr "文件 \"%s\" 刪除成功。" 122 | 123 | #: views.py:357 124 | #, python-format 125 | msgid "The folder %s was successfully deleted." 126 | msgstr "文件夾 \"%s\" 刪除成功。" 127 | 128 | #: views.py:427 129 | msgid "Renaming was successful." 130 | msgstr "重命名成功。" 131 | 132 | #: views.py:432 133 | msgid "Error." 134 | msgstr "錯誤。" 135 | 136 | #: views.py:440 137 | #, python-format 138 | msgid "Rename \"%s\"" 139 | msgstr "重命名 \"%s\"" 140 | 141 | #: views.py:443 templates/filebrowser/include/filelisting.html:75 142 | msgid "Rename" 143 | msgstr "重命名" 144 | 145 | #: views.py:469 views.py:472 146 | #, python-format 147 | msgid "Versions for \"%s\"" 148 | msgstr "\"%s\" 版本" 149 | 150 | #: templates/filebrowser/makedir.html:25 templates/filebrowser/rename.html:25 151 | msgid "Please correct the following errors." 152 | msgstr "請修正下面的錯誤。" 153 | 154 | #: templates/filebrowser/makedir.html:33 templates/filebrowser/upload.html:98 155 | msgid "" 156 | "The Name will be converted to lowercase. Spaces will be replaced with " 157 | "underscores." 158 | msgstr "這個名稱將自動轉換為小寫。空格替換為下劃線。" 159 | 160 | #: templates/filebrowser/makedir.html:38 templates/filebrowser/rename.html:36 161 | msgid "Submit" 162 | msgstr "保存" 163 | 164 | #: templates/filebrowser/upload.html:46 165 | msgid "BROWSE" 166 | msgstr "瀏覽..." 167 | 168 | #: templates/filebrowser/upload.html:47 169 | msgid "An Error occured" 170 | msgstr "發生錯誤" 171 | 172 | #: templates/filebrowser/upload.html:48 173 | msgid "Completed" 174 | msgstr "已完成" 175 | 176 | #: templates/filebrowser/upload.html:49 177 | msgid "Do you want to replace the file" 178 | msgstr "你確定要替換這個文件?" 179 | 180 | #: templates/filebrowser/upload.html:50 181 | msgid "KB" 182 | msgstr "KB" 183 | 184 | #: templates/filebrowser/upload.html:51 185 | msgid "MB" 186 | msgstr "MB" 187 | 188 | #: templates/filebrowser/upload.html:81 189 | msgid "Help" 190 | msgstr "幫助" 191 | 192 | #: templates/filebrowser/upload.html:85 193 | msgid "Allowed" 194 | msgstr "允許" 195 | 196 | #: templates/filebrowser/upload.html:91 197 | msgid "Max. Filesize" 198 | msgstr "最大文件大小" 199 | 200 | #: templates/filebrowser/upload.html:106 201 | msgid "Clear Queue" 202 | msgstr "清除隊列" 203 | 204 | #: templates/filebrowser/versions.html:67 205 | msgid "Image Version" 206 | msgstr "圖片版本" 207 | 208 | #: templates/filebrowser/versions.html:70 209 | msgid "Debug" 210 | msgstr "調試" 211 | 212 | #: templates/filebrowser/versions.html:84 213 | #: templates/filebrowser/include/filelisting.html:12 214 | msgid "Select" 215 | msgstr "選擇" 216 | 217 | #: templates/filebrowser/versions.html:96 218 | #: templates/filebrowser/versions.html:108 219 | #: templates/filebrowser/include/filelisting.html:26 220 | #: templates/filebrowser/include/filelisting.html:40 221 | msgid "Select File" 222 | msgstr "選擇文件" 223 | 224 | #: templates/filebrowser/versions.html:119 225 | msgid "Width" 226 | msgstr "寬" 227 | 228 | #: templates/filebrowser/versions.html:120 229 | msgid "Height" 230 | msgstr "高" 231 | 232 | #: templates/filebrowser/include/breadcrumbs.html:5 233 | msgid "Home" 234 | msgstr "首頁" 235 | 236 | #: templates/filebrowser/include/filelisting.html:51 237 | msgid "Show Versions" 238 | msgstr "顯示版本" 239 | 240 | #: templates/filebrowser/include/filelisting.html:62 241 | msgid "View Image" 242 | msgstr "查看圖片" 243 | 244 | #: templates/filebrowser/include/filelisting.html:87 245 | msgid "Are you sure you want to delete this file?" 246 | msgstr "你確定要刪除這個文件?" 247 | 248 | #: templates/filebrowser/include/filelisting.html:87 249 | msgid "Delete File" 250 | msgstr "刪除文件" 251 | 252 | #: templates/filebrowser/include/filelisting.html:90 253 | msgid "Are you sure you want to delete this Folder?" 254 | msgstr "你確定要刪除這個文件夾?" 255 | 256 | #: templates/filebrowser/include/filelisting.html:90 257 | msgid "Delete Folder" 258 | msgstr "刪除文件夾" 259 | 260 | #: templates/filebrowser/include/filter.html:3 261 | msgid "Filter" 262 | msgstr "過濾器" 263 | 264 | #: templates/filebrowser/include/filter.html:9 265 | msgid "By Date" 266 | msgstr "以 日期" 267 | 268 | #: templates/filebrowser/include/filter.html:11 269 | msgid "Any Date" 270 | msgstr "任意日期" 271 | 272 | #: templates/filebrowser/include/filter.html:13 273 | msgid "Today" 274 | msgstr "今天" 275 | 276 | #: templates/filebrowser/include/filter.html:15 277 | msgid "Past 7 days" 278 | msgstr "前7天" 279 | 280 | #: templates/filebrowser/include/filter.html:17 281 | msgid "Past 30 days" 282 | msgstr "本月" 283 | 284 | #: templates/filebrowser/include/filter.html:19 285 | msgid "This year" 286 | msgstr "本年" 287 | 288 | #: templates/filebrowser/include/filter.html:27 289 | msgid "By Type" 290 | msgstr "以 類型" 291 | 292 | #: templates/filebrowser/include/filter.html:29 293 | msgid "All" 294 | msgstr "全部" 295 | 296 | #: templates/filebrowser/include/paginator.html:5 297 | msgid "No Items Found" 298 | msgstr "沒有找到。" 299 | 300 | #: templates/filebrowser/include/paginator.html:11 301 | #, python-format 302 | msgid "%(counter)s Item" 303 | msgid_plural "%(counter)s Items" 304 | msgstr[0] "%(counter)s 條" 305 | 306 | #: templates/filebrowser/include/paginator.html:26 307 | msgid "No Items" 308 | msgstr "沒有項。" 309 | 310 | #: templates/filebrowser/include/search.html:3 311 | #, python-format 312 | msgid "1 result" 313 | msgid_plural "%(counter)s results" 314 | msgstr[0] "1 條結果" 315 | msgstr[1] "%(counter)s 條結果" 316 | 317 | #: templates/filebrowser/include/search.html:4 318 | #: templates/filebrowser/include/toolbar.html:23 319 | #, python-format 320 | msgid "%(full_result_count)s total" 321 | msgstr "共 %(full_result_count)s 條" 322 | 323 | #: templates/filebrowser/include/search.html:5 324 | msgid "Clear Restrictions" 325 | msgstr "清除限制" 326 | 327 | #: templates/filebrowser/include/search.html:7 328 | msgid "Search" 329 | msgstr "搜索" 330 | 331 | #: templates/filebrowser/include/search.html:19 332 | #: templates/filebrowser/include/toolbar.html:20 333 | msgid "Go" 334 | msgstr "執行" 335 | 336 | #: templates/filebrowser/include/search.html:24 337 | #, python-format 338 | msgid "%(counter)s Item found" 339 | msgid_plural "%(counter)s Items found" 340 | msgstr[0] "找到 %(counter)s 條" 341 | msgstr[1] "找到 %(counter)s 條" 342 | 343 | #: templates/filebrowser/include/search.html:25 344 | #, python-format 345 | msgid "%(counter)s Item total" 346 | msgid_plural "%(counter)s Items total" 347 | msgstr[0] "共 %(counter)s 條" 348 | msgstr[1] "共 %(counter)s 條" 349 | 350 | #: templates/filebrowser/include/tableheader.html:16 351 | #: templates/filebrowser/include/tableheader.html:17 352 | msgid "Filename" 353 | msgstr "文件名" 354 | 355 | #: templates/filebrowser/include/tableheader.html:21 356 | #: templates/filebrowser/include/tableheader.html:22 357 | msgid "Size" 358 | msgstr "大小" 359 | 360 | #: templates/filebrowser/include/tableheader.html:24 361 | #: templates/filebrowser/include/tableheader.html:25 362 | msgid "Date" 363 | msgstr "日期" 364 | 365 | #: templates/filebrowser/include/toolbar.html:23 366 | #, python-format 367 | msgid "%(counter)s result" 368 | msgid_plural "%(counter)s results" 369 | msgstr[0] "%(counter)s 條結果" 370 | msgstr[1] "%(counter)s 條結果" 371 | -------------------------------------------------------------------------------- /filebrowser/management/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/management/__init__.py -------------------------------------------------------------------------------- /filebrowser/management/commands/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/management/commands/__init__.py -------------------------------------------------------------------------------- /filebrowser/management/commands/version_generator.py: -------------------------------------------------------------------------------- 1 | from django.core.management.base import NoArgsCommand 2 | 3 | class Command(NoArgsCommand): 4 | help = "(Re)Generate versions of Images" 5 | 6 | def handle_noargs(self, **options): 7 | import os, re 8 | from filebrowser.settings import EXTENSION_LIST, EXCLUDE, MEDIA_ROOT, DIRECTORY, VERSIONS, EXTENSIONS 9 | 10 | # Precompile regular expressions 11 | filter_re = [] 12 | for exp in EXCLUDE: 13 | filter_re.append(re.compile(exp)) 14 | for k,v in VERSIONS.iteritems(): 15 | exp = (r'_%s.(%s)') % (k, '|'.join(EXTENSION_LIST)) 16 | filter_re.append(re.compile(exp)) 17 | 18 | path = os.path.join(MEDIA_ROOT, DIRECTORY) 19 | 20 | # walkt throu the filebrowser directory 21 | # for all/new files (except file versions itself and excludes) 22 | for dirpath,dirnames,filenames in os.walk(path): 23 | for filename in filenames: 24 | filtered = False 25 | # no "hidden" files (stating with ".") 26 | if filename.startswith('.'): 27 | continue 28 | # check the exclude list 29 | for re_prefix in filter_re: 30 | if re_prefix.search(filename): 31 | filtered = True 32 | if filtered: 33 | continue 34 | (tmp, extension) = os.path.splitext(filename) 35 | if extension in EXTENSIONS["Image"]: 36 | self.createVersions(os.path.join(dirpath, filename)) 37 | 38 | def createVersions(self, path): 39 | print "generating versions for: ", path 40 | from filebrowser.settings import VERSIONS 41 | from filebrowser.functions import version_generator 42 | for version in VERSIONS: 43 | #print " ", version 44 | version_generator(path, version, True) 45 | -------------------------------------------------------------------------------- /filebrowser/models.py: -------------------------------------------------------------------------------- 1 | # This file is only necessary for the tests to work -------------------------------------------------------------------------------- /filebrowser/settings.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | # imports 4 | import os 5 | 6 | # django imports 7 | from django.conf import settings 8 | from django.utils.translation import ugettext_lazy as _ 9 | 10 | # settings for django-tinymce 11 | try: 12 | import tinymce.settings 13 | DEFAULT_URL_TINYMCE = tinymce.settings.JS_BASE_URL + '/' 14 | DEFAULT_PATH_TINYMCE = tinymce.settings.JS_ROOT + '/' 15 | except ImportError: 16 | DEFAULT_URL_TINYMCE = settings.ADMIN_MEDIA_PREFIX + "tinymce/jscripts/tiny_mce/" 17 | DEFAULT_PATH_TINYMCE = os.path.join(settings.STATIC_ROOT, 'admin/tinymce/jscripts/tiny_mce/') 18 | 19 | # Set to True in order to see the FileObject when Browsing. 20 | DEBUG = getattr(settings, "FILEBROWSER_DEBUG", False) 21 | 22 | # Main Media Settings 23 | MEDIA_ROOT = getattr(settings, "FILEBROWSER_MEDIA_ROOT", settings.MEDIA_ROOT) 24 | MEDIA_URL = getattr(settings, "FILEBROWSER_MEDIA_URL", settings.MEDIA_URL) 25 | 26 | # Main FileBrowser Directory. This has to be a directory within MEDIA_ROOT. 27 | # Leave empty in order to browse all files under MEDIA_ROOT. 28 | # DO NOT USE A SLASH AT THE BEGINNING, DO NOT FORGET THE TRAILING SLASH AT THE END. 29 | DIRECTORY = getattr(settings, "FILEBROWSER_DIRECTORY", 'uploads/') 30 | 31 | # The URL/PATH to your filebrowser media-files. 32 | URL_FILEBROWSER_MEDIA = getattr(settings, "FILEBROWSER_URL_FILEBROWSER_MEDIA", settings.STATIC_URL + "filebrowser/") 33 | PATH_FILEBROWSER_MEDIA = getattr(settings, "FILEBROWSER_PATH_FILEBROWSER_MEDIA", os.path.join(settings.STATIC_ROOT, 'filebrowser/')) 34 | 35 | # The URL/PATH to your TinyMCE Installation. 36 | URL_TINYMCE = getattr(settings, "FILEBROWSER_URL_TINYMCE", DEFAULT_URL_TINYMCE) 37 | PATH_TINYMCE = getattr(settings, "FILEBROWSER_PATH_TINYMCE", DEFAULT_PATH_TINYMCE) 38 | 39 | # Allowed Extensions for File Upload. Lower case is important. 40 | # Please be aware that there are Icons for the default extension settings. 41 | # Therefore, if you add a category (e.g. "Misc"), you won't get an icon. 42 | EXTENSIONS = getattr(settings, "FILEBROWSER_EXTENSIONS", { 43 | 'Folder': [''], 44 | 'Image': ['.jpg','.jpeg','.gif','.png','.tif','.tiff'], 45 | 'Video': ['.mov','.wmv','.mpeg','.mpg','.avi','.rm'], 46 | 'Document': ['.pdf','.doc','.rtf','.txt','.xls','.csv'], 47 | 'Audio': ['.mp3','.mp4','.wav','.aiff','.midi','.m4p'], 48 | 'Code': ['.html','.py','.js','.css','.less'] 49 | }) 50 | 51 | # Define different formats for allowed selections. 52 | # This has to be a subset of EXTENSIONS. 53 | SELECT_FORMATS = getattr(settings, "FILEBROWSER_SELECT_FORMATS", { 54 | 'File': ['Folder','Document',], 55 | 'Image': ['Image'], 56 | 'Media': ['Video','Sound'], 57 | 'Document': ['Document'], 58 | # for TinyMCE we can also define lower-case items 59 | 'image': ['Image'], 60 | 'file': ['Folder','Image','Document',], 61 | 'media': ['Video','Sound'], 62 | }) 63 | 64 | # Directory to Save Image Versions (and Thumbnails). Relative to MEDIA_ROOT. 65 | # If no directory is given, versions are stored within the Image directory. 66 | # VERSION URL: VERSIONS_BASEDIR/original_path/originalfilename_versionsuffix.extension 67 | VERSIONS_BASEDIR = getattr(settings, 'FILEBROWSER_VERSIONS_BASEDIR', '') 68 | # Versions Format. Available Attributes: verbose_name, width, height, opts 69 | VERSIONS = getattr(settings, "FILEBROWSER_VERSIONS", { 70 | 'fb_thumb': {'verbose_name': 'Admin Thumbnail', 'width': 60, 'height': 60, 'opts': 'crop upscale'}, 71 | 'thumbnail': {'verbose_name': 'Thumbnail (140px)', 'width': 140, 'height': '', 'opts': ''}, 72 | 'small': {'verbose_name': 'Small (300px)', 'width': 300, 'height': '', 'opts': ''}, 73 | 'medium': {'verbose_name': 'Medium (460px)', 'width': 460, 'height': '', 'opts': ''}, 74 | 'big': {'verbose_name': 'Big (620px)', 'width': 620, 'height': '', 'opts': ''}, 75 | 'cropped': {'verbose_name': 'Cropped (60x60px)', 'width': 60, 'height': 60, 'opts': 'crop'}, 76 | 'croppedthumbnail': {'verbose_name': 'Cropped Thumbnail (140x140px)', 'width': 140, 'height': 140, 'opts': 'crop'}, 77 | }) 78 | # Versions available within the Admin-Interface. 79 | ADMIN_VERSIONS = getattr(settings, 'FILEBROWSER_ADMIN_VERSIONS', ['thumbnail','small', 'medium','big']) 80 | # Which Version should be used as Admin-thumbnail. 81 | ADMIN_THUMBNAIL = getattr(settings, 'FILEBROWSER_ADMIN_THUMBNAIL', 'fb_thumb') 82 | # Preview Version 83 | PREVIEW_VERSION = getattr(settings, 'FILEBROWSER_PREVIEW_VERSION', 'small') 84 | 85 | # EXTRA SETTINGS 86 | # True to save the URL including MEDIA_URL to your model fields 87 | # or False (default) to save path relative to MEDIA_URL. 88 | # Note: Full URL does not necessarily means absolute URL. 89 | SAVE_FULL_URL = getattr(settings, "FILEBROWSER_SAVE_FULL_URL", True) 90 | # If set to True, the FileBrowser will not try to import a mis-installed PIL. 91 | STRICT_PIL = getattr(settings, 'FILEBROWSER_STRICT_PIL', False) 92 | # PIL's Error "Suspension not allowed here" work around: 93 | # s. http://mail.python.org/pipermail/image-sig/1999-August/000816.html 94 | IMAGE_MAXBLOCK = getattr(settings, 'FILEBROWSER_IMAGE_MAXBLOCK', 1024*1024) 95 | # Exclude files matching any of the following regular expressions 96 | # Default is to exclude 'thumbnail' style naming of image-thumbnails. 97 | EXTENSION_LIST = [] 98 | for exts in EXTENSIONS.values(): 99 | EXTENSION_LIST += exts 100 | EXCLUDE = getattr(settings, 'FILEBROWSER_EXCLUDE', (r'_(%(exts)s)_.*_q\d{1,3}\.(%(exts)s)' % {'exts': ('|'.join(EXTENSION_LIST))},)) 101 | # Max. Upload Size in Bytes. 102 | MAX_UPLOAD_SIZE = getattr(settings, "FILEBROWSER_MAX_UPLOAD_SIZE", 10485760) 103 | # Convert Filename (replace spaces and convert to lowercase) 104 | CONVERT_FILENAME = getattr(settings, "FILEBROWSER_CONVERT_FILENAME", True) 105 | # Max. Entries per Page 106 | # Loading a Sever-Directory with lots of files might take a while 107 | # Use this setting to limit the items shown 108 | LIST_PER_PAGE = getattr(settings, "FILEBROWSER_LIST_PER_PAGE", 50) 109 | # Default Sorting 110 | # Options: date, filesize, filename_lower, filetype_checked 111 | DEFAULT_SORTING_BY = getattr(settings, "FILEBROWSER_DEFAULT_SORTING_BY", "date") 112 | # Sorting Order: asc, desc 113 | DEFAULT_SORTING_ORDER = getattr(settings, "FILEBROWSER_DEFAULT_SORTING_ORDER", "desc") 114 | # regex to clean dir names before creation 115 | FOLDER_REGEX = getattr(settings, "FILEBROWSER_FOLDER_REGEX", r'^(?u)^[\s\w./-]+$') 116 | 117 | # EXTRA TRANSLATION STRINGS 118 | # The following strings are not availabe within views or templates 119 | _('Folder') 120 | _('Image') 121 | _('Video') 122 | _('Document') 123 | _('Audio') 124 | _('Code') 125 | 126 | # use django-uploadify 127 | USE_UPLOADIFY = getattr(settings, 'FILEBROWSER_USE_UPLOADIFY', True) 128 | try: 129 | import uploadify 130 | except: 131 | USE_UPLOADIFY = False 132 | -------------------------------------------------------------------------------- /filebrowser/static/filebrowser/css/filebrowser.css: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | /* Filebrowser Table 5 | ------------------------------------------------------------------------------------------------------ */ 6 | 7 | .filebrowser table td { 8 | font-size: 10px; 9 | } 10 | .filebrowser table a { 11 | font-size: 11px; 12 | } 13 | .filebrowser thead th.sorted a { 14 | padding-right: 13px; 15 | } 16 | .filebrowser thead th.filename { 17 | min-width: 160px; 18 | } 19 | .filebrowser td { 20 | padding: 9px 10px 6px 10px !important; 21 | } 22 | /*.filebrowser tr.fb_folder { 23 | background: #e8e8e8; 24 | background: -moz-linear-gradient(top, #ededed, #e8e8e8); 25 | background: -webkit-gradient(linear, left top, left bottom, from(#ededed), to(#e8e8e8)); 26 | } 27 | .filebrowser tr.fb_folder td { 28 | border-top-color: #fff !important; 29 | background: transparent !important; 30 | }*/ 31 | .filebrowser td.fb_thumbnail { 32 | line-height: 11px; 33 | padding-bottom: 0 !important; 34 | } 35 | 36 | 37 | 38 | /* Filebrowser Buttons & Links 39 | ------------------------------------------------------------------------------------------------------ */ 40 | 41 | span.fb_type { 42 | display: inline-block; 43 | margin: 0 0; 44 | padding: 1px 0; 45 | color: #999; 46 | font-size: 11px; 47 | font-weight: bold; 48 | font-style: italic; 49 | border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; 50 | } 51 | span.fb_type.folder { 52 | color: #666; 53 | font-weight: bold; 54 | } 55 | 56 | 57 | /* Filebrowser Show-Preview-Link & Show-Versions-Link (uses Grappellis a.internal) ......................................... */ 58 | 59 | .filebrowser a.fb_showpreview, 60 | .filebrowser a.fb_showversions { 61 | display: block; 62 | margin-top: 8px; 63 | padding-left: 8px; 64 | line-height: 20px; 65 | white-space: nowrap; 66 | background-position: 0 50%; 67 | } 68 | .filebrowser a.fb_showpreview { 69 | float: left; 70 | } 71 | .filebrowser a.fb_showversions { 72 | float: left; // This is left because we arent using previews right now 73 | } 74 | .filebrowser a.fb_showversions { 75 | padding-left: 25px; 76 | 77 | background: 0 50% no-repeat scroll; 78 | } 79 | a.fb_showversions:link, a.fb_showversions:visited { 80 | background-image: url('../img/filebrowser_icon_showversions.gif'); 81 | } 82 | a.fb_showversions:hover, a.fb_showversions:active { 83 | background-image: url('../img/filebrowser_icon_showversions_hover.gif'); 84 | } 85 | .filebrowser a.fb_showpreview { 86 | padding-left: 16px; 87 | background: 0 50% no-repeat scroll; 88 | } 89 | a.fb_showpreview:link, a.fb_showpreview:visited { 90 | background-image: url('../img/icon-fb-preview.png'); 91 | } 92 | a.fb_showpreview:hover, a.fb_showpreview:active { 93 | background-image: url('../img/icon-fb-preview-hover.png'); 94 | } 95 | 96 | 97 | /* Filebrowser View-Link (contains thumbnail) & Select-Link......................................... */ 98 | 99 | a.fb_viewlink, 100 | button.fb_selectlink { 101 | position: relative; 102 | top: -4px !important; 103 | margin-bottom: -5px !important; 104 | } 105 | button.fb_selectlink { 106 | padding-top: 3px; 107 | padding-bottom: 4px; 108 | height: 24px; 109 | font-size: 11px; 110 | } 111 | @media screen and (-webkit-min-device-pixel-ratio:0) { 112 | button.fb_selectlink { 113 | padding-top: 4px; 114 | } 115 | } 116 | 117 | 118 | /* Filebrowser Image Preview ......................................... */ 119 | 120 | .filebrowser .fb_preview_container { 121 | display: none; 122 | position: absolute; 123 | z-index: 1000; 124 | margin-top: 25px; 125 | padding: 5px 5px 1px; 126 | border: 1px solid #bdbdbd; 127 | border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; 128 | background: #fff; 129 | box-shadow: 0 10px 50px #333; -moz-box-shadow: 0 10px 50px #333; -webkit-box-shadow: 0 10px 50px #333; 130 | } 131 | /*.filebrowser img.fb_preview { 132 | max-width: 400px; 133 | max-height: 400px; 134 | }*/ 135 | 136 | a.fb_view_image span { 137 | display: none; 138 | position: absolute; 139 | top: 1px; 140 | right: 0; 141 | padding: 5px 10px 5px 20px; 142 | width: auto; 143 | line-height: 11px; 144 | font-weight: bold; 145 | border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; 146 | } 147 | a.fb_view_image:hover span { 148 | display: block; 149 | color: #83c3d9; 150 | background: #fff url('../img/icon-fb-view-image-hover.png') 8px 7px no-repeat scroll; 151 | } 152 | 153 | 154 | 155 | /* Filebrowser Pulldown Actions 156 | ------------------------------------------------------------------------------------------------------ */ 157 | 158 | .pulldown-actions-container { 159 | position: relative; 160 | } 161 | .pulldown-actions-handler { 162 | display: block; 163 | width: 27px; 164 | height: 17px; 165 | background: transparent 50% 50% no-repeat scroll; 166 | } 167 | .pulldown-actions-handler:link, .pulldown-actions-handler:visited { 168 | background-image: url('../img/icon-pulldown-actions.png'); 169 | } 170 | .pulldown-actions-handler:hover, .pulldown-actions-handler:active { 171 | background-image: url('../img/icon-pulldown-actions-hover.png'); 172 | } 173 | .open .pulldown-actions-handler { 174 | background-image: url('../img/icon-pulldown-actions-active.png'); 175 | } 176 | ul.pulldown-actions { 177 | display: none; 178 | } 179 | .open ul.pulldown-actions { 180 | display: block; 181 | position: absolute; 182 | right: 0; 183 | z-index: 1000; 184 | margin: 3px 0 0; 185 | padding: 0; 186 | border: 1px solid #ccc; 187 | border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; 188 | background: #eee; 189 | box-shadow: 0 0 50px #333; -moz-box-shadow: 0 0 50px #333; -webkit-box-shadow: 0 0 50px #333; 190 | } 191 | ul.pulldown-actions li { 192 | border-top: 1px solid #fff; 193 | border-bottom: 1px solid #d4d4d4; 194 | } 195 | ul.pulldown-actions li:first-child { 196 | border-top: 0; 197 | } 198 | ul.pulldown-actions li:last-child { 199 | border-bottom: 0; 200 | } 201 | ul.pulldown-actions a { 202 | display: block; 203 | padding: 5px 30px 5px 10px; 204 | font-weight: bold; 205 | white-space: nowrap; 206 | } -------------------------------------------------------------------------------- /filebrowser/static/filebrowser/img/filebrowser_icon_delete.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/static/filebrowser/img/filebrowser_icon_delete.gif -------------------------------------------------------------------------------- /filebrowser/static/filebrowser/img/filebrowser_icon_delete_hover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/static/filebrowser/img/filebrowser_icon_delete_hover.gif -------------------------------------------------------------------------------- /filebrowser/static/filebrowser/img/filebrowser_icon_rename.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/static/filebrowser/img/filebrowser_icon_rename.gif -------------------------------------------------------------------------------- /filebrowser/static/filebrowser/img/filebrowser_icon_rename_hover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/static/filebrowser/img/filebrowser_icon_rename_hover.gif -------------------------------------------------------------------------------- /filebrowser/static/filebrowser/img/filebrowser_icon_select.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/static/filebrowser/img/filebrowser_icon_select.gif -------------------------------------------------------------------------------- /filebrowser/static/filebrowser/img/filebrowser_icon_select_disabled.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/static/filebrowser/img/filebrowser_icon_select_disabled.gif -------------------------------------------------------------------------------- /filebrowser/static/filebrowser/img/filebrowser_icon_select_hover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/static/filebrowser/img/filebrowser_icon_select_hover.gif -------------------------------------------------------------------------------- /filebrowser/static/filebrowser/img/filebrowser_icon_show.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/static/filebrowser/img/filebrowser_icon_show.gif -------------------------------------------------------------------------------- /filebrowser/static/filebrowser/img/filebrowser_icon_show_hover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/static/filebrowser/img/filebrowser_icon_show_hover.gif -------------------------------------------------------------------------------- /filebrowser/static/filebrowser/img/filebrowser_icon_showversions.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/static/filebrowser/img/filebrowser_icon_showversions.gif -------------------------------------------------------------------------------- /filebrowser/static/filebrowser/img/filebrowser_icon_showversions_hover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/static/filebrowser/img/filebrowser_icon_showversions_hover.gif -------------------------------------------------------------------------------- /filebrowser/static/filebrowser/img/filebrowser_type_.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/static/filebrowser/img/filebrowser_type_.gif -------------------------------------------------------------------------------- /filebrowser/static/filebrowser/img/filebrowser_type_audio.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/static/filebrowser/img/filebrowser_type_audio.gif -------------------------------------------------------------------------------- /filebrowser/static/filebrowser/img/filebrowser_type_code.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/static/filebrowser/img/filebrowser_type_code.gif -------------------------------------------------------------------------------- /filebrowser/static/filebrowser/img/filebrowser_type_document.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/static/filebrowser/img/filebrowser_type_document.gif -------------------------------------------------------------------------------- /filebrowser/static/filebrowser/img/filebrowser_type_folder.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/static/filebrowser/img/filebrowser_type_folder.gif -------------------------------------------------------------------------------- /filebrowser/static/filebrowser/img/filebrowser_type_image.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/static/filebrowser/img/filebrowser_type_image.gif -------------------------------------------------------------------------------- /filebrowser/static/filebrowser/img/filebrowser_type_video.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/static/filebrowser/img/filebrowser_type_video.gif -------------------------------------------------------------------------------- /filebrowser/static/filebrowser/img/icon-fb-preview-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/static/filebrowser/img/icon-fb-preview-hover.png -------------------------------------------------------------------------------- /filebrowser/static/filebrowser/img/icon-fb-preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/static/filebrowser/img/icon-fb-preview.png -------------------------------------------------------------------------------- /filebrowser/static/filebrowser/img/icon-fb-view-image-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/static/filebrowser/img/icon-fb-view-image-hover.png -------------------------------------------------------------------------------- /filebrowser/static/filebrowser/img/icon-pulldown-actions-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/static/filebrowser/img/icon-pulldown-actions-active.png -------------------------------------------------------------------------------- /filebrowser/static/filebrowser/img/icon-pulldown-actions-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/static/filebrowser/img/icon-pulldown-actions-hover.png -------------------------------------------------------------------------------- /filebrowser/static/filebrowser/img/icon-pulldown-actions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/static/filebrowser/img/icon-pulldown-actions.png -------------------------------------------------------------------------------- /filebrowser/static/filebrowser/img/icon-showversions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/static/filebrowser/img/icon-showversions.png -------------------------------------------------------------------------------- /filebrowser/static/filebrowser/js/AddFileBrowser.js: -------------------------------------------------------------------------------- 1 | var FileBrowser = { 2 | // this is set automatically 3 | admin_media_prefix: '', 4 | // change this 5 | thumb_prefix: 'thumb_', 6 | no_thumb: 'filebrowser/img/no_thumb.gif', 7 | 8 | init: function() { 9 | // Deduce admin_media_prefix by looking at the -------------------------------------------------------------------------------- /filebrowser/templates/filebrowser/include/tableheader.html: -------------------------------------------------------------------------------- 1 | {% load i18n fb_tags %} 2 | 3 | 4 | 5 | {% if query.pop == "1" and results_var.select_total %}{% endif %} 6 | {% if query.pop == "2" and results_var.select_total %}{% endif %} 7 | {% if query.pop == "3" and results_var.select_total %}{% endif %} 8 | 9 | {% ifequal query.o "filetype_checked" %}{% trans "Type" %}{% endifequal %} 10 | {% ifnotequal query.o "filetype_checked" %}{% trans "Type" %}{% endifnotequal %} 11 | 12 | {% trans "Thumbnail" %} 13 | 14 | {% ifequal query.o "filename_lower" %}{% trans "Filename" %}{% endifequal %} 15 | {% ifnotequal query.o "filename_lower" %}{% trans "Filename" %}{% endifnotequal %} 16 | 17 | {% ifequal query.o "filesize" %}{% trans "Size" %}{% endifequal %} 18 | {% ifnotequal query.o "filesize" %}{% trans "Size" %}{% endifnotequal %} 19 | 20 | {% ifequal query.o "date" %}{% trans "Date" %}{% endifequal %} 21 | {% ifnotequal query.o "date" %}{% trans "Date" %}{% endifnotequal %} 22 | 23 |   24 |   25 | {% if results_var.delete_total %} {% endif %} 26 | 27 | {% if settings_var.DEBUG %}Debug{% endif %} 28 | 29 | 30 | -------------------------------------------------------------------------------- /filebrowser/templates/filebrowser/include/toolbar.html: -------------------------------------------------------------------------------- 1 | {% load i18n adminmedia fb_tags %} 2 | 3 |
4 | 24 |
25 | -------------------------------------------------------------------------------- /filebrowser/templates/filebrowser/index.html: -------------------------------------------------------------------------------- 1 | {% extends "admin/base_site.html" %} 2 | 3 | 4 | {% load i18n adminmedia fb_tags fb_pagination %} 5 | 6 | 7 | {% block extrastyle %} 8 | {{ block.super }} 9 | 10 | 11 | {% endblock %} 12 | 13 | 14 | {% block extrahead %} 15 | {{ block.super }} 16 | {% ifequal query.pop '1' %} 17 | 18 | {% endifequal %} 19 | {% ifequal query.pop '2' %} 20 | 21 | 22 | {% if query.mce_rdomain %}{% endif %} 23 | {% endifequal %} 24 | {% ifequal query.pop '3' %} 25 | 26 | {% endifequal %} 27 | {{ media }} 28 | 29 | {% if not actions_on_top and not actions_on_bottom %} 30 | 33 | {% endif %} 34 | {% endblock %} 35 | 36 | 37 | {% block coltype %}flex{% endblock %} 38 | {% block bodyclass %}change-list filebrowser{% if query.pop %} popup{% endif %}{% endblock %} 39 | 40 | 41 | {% block breadcrumbs %}{% include "filebrowser/include/breadcrumbs.html" %}{% endblock %} 42 | 43 | 44 | {% block content %} 45 |
46 | {% block object-tools %} 47 | 55 | {% endblock %} 56 |
57 | {% include "filebrowser/include/toolbar.html" %} 58 |
59 |
60 | {% if results_var.results_current %} 61 |
62 | 63 | {% include "filebrowser/include/tableheader.html" %} 64 | 65 | {% include "filebrowser/include/filelisting.html" %} 66 | 67 |
68 |
69 | {% endif %} 70 | {% pagination %} 71 |
72 |
73 |
74 | {% include "filebrowser/include/filter.html" %} 75 |
76 |
77 |
78 | {% endblock %} 79 | -------------------------------------------------------------------------------- /filebrowser/templates/filebrowser/makedir.html: -------------------------------------------------------------------------------- 1 | {% extends "admin/base_site.html" %} 2 | 3 | 4 | {% load i18n adminmedia fb_tags fb_csrf %} 5 | 6 | 7 | {% block extrastyle %} 8 | {{ block.super }} 9 | 10 | 11 | {% endblock %} 12 | 13 | 14 | {% block bodyclass %}change-form filebrowser{% if query.pop %} popup{% endif %}{% endblock %} 15 | {% block content-class %}content-flexible{% endblock %} 16 | 17 | 18 | {% block breadcrumbs %}{% include "filebrowser/include/breadcrumbs.html" %}{% endblock %} 19 | 20 | 21 | {% block content %} 22 |
23 |
{% fb_csrf_token %} 24 | {% if form.errors %}

{% trans 'Please correct the following errors.' %}

{% endif %} 25 |
26 |
27 |
28 |
29 | {{ form.dir_name }} 30 | {% if form.dir_name.errors %}
    {{ form.dir_name.errors }}
{% endif %} 31 |

32 | {{ form.dir_name.help_text|safe }} 33 | {% if settings_var.CONVERT_FILENAME %}
{% trans "The Name will be converted to lowercase. Spaces will be replaced with underscores." %}{% endif %} 34 |

35 |
36 |
37 |
38 |
39 | 40 |
41 |
42 |
43 | {% endblock %} 44 | -------------------------------------------------------------------------------- /filebrowser/templates/filebrowser/rename.html: -------------------------------------------------------------------------------- 1 | {% extends "admin/base_site.html" %} 2 | 3 | 4 | {% load i18n adminmedia fb_tags fb_csrf %} 5 | 6 | 7 | {% block extrastyle %} 8 | {{ block.super }} 9 | 10 | 11 | {% endblock %} 12 | 13 | 14 | {% block coltype %}colM{% endblock %} 15 | {% block bodyclass %}change-form filebrowser{% if query.pop %} popup{% endif %}{% endblock %} 16 | 17 | 18 | {% block breadcrumbs %}{% include "filebrowser/include/breadcrumbs.html" %}{% endblock %} 19 | 20 | 21 | {% block content %} 22 |
23 |
{% fb_csrf_token %} 24 |
25 | {% if form.errors %}

{% trans 'Please correct the following errors.' %}

{% endif %} 26 |
27 |
28 | {% if form.name.errors %}
    {{ form.name.errors }}
{% endif %} 29 | 30 | {{ form.name }} 31 | {% if file_extension %}{{ file_extension }}{% endif %} 32 | {% if form.name.help_text %}

{{ form.name.help_text|safe }}

{% endif %} 33 |
34 |
35 |
36 | 37 |
38 |
39 |
40 |
41 | {% endblock %} 42 | -------------------------------------------------------------------------------- /filebrowser/templates/filebrowser/upload.html: -------------------------------------------------------------------------------- 1 | {% extends "admin/base_site.html" %} 2 | 3 | 4 | {% load i18n adminmedia fb_tags fb_csrf %} 5 | 6 | 7 | {% block extrastyle %} 8 | {{ block.super }} 9 | 10 | 11 | {% endblock %} 12 | 13 | 14 | {% block extrahead %} 15 | {{ block.super }} 16 | 17 | 18 | 19 | {% endblock %} 20 | 21 | 22 | {% block bodyclass %}change-form filebrowser{% if query.pop %} popup{% endif %}{% endblock %} 23 | {% block content-class %}content-flexible{% endblock %} 24 | 25 | 26 | {% block breadcrumbs %}{% include "filebrowser/include/breadcrumbs.html" %}{% endblock %} 27 | 28 | 29 | {% block content %} 30 |
31 |
32 | {% fb_csrf_token %} 33 | {{ formset.management_form }} 34 |
35 | {% if form.errors %}{{ form.errors }}{% endif %} 36 |
37 | {% for form in formset.forms %} 38 |
39 | {% if form.file.errors %}{{ form.file.errors }}{% endif %} 40 | 41 | {{ form.file }} 42 |
43 | {% endfor %} 44 |
45 |
46 |

{% trans "Help" %}

47 |
48 | {% for extension in settings_var.EXTENSIONS.items %} 49 | {% ifnotequal extension.0 'Folder' %} 50 |
51 |

{{ extension.0|safe }} ({{ extension.1|join:", "|safe }})


52 | {% endifnotequal %} 53 | {% endfor %} 54 |
55 |
56 |
57 |

{{ settings_var.MAX_UPLOAD_SIZE|filesizeformat }}


58 |
59 | {% if settings_var.CONVERT_FILENAME %} 60 |
61 |

62 | {% trans "The Name will be converted to lowercase. Spaces will be replaced with underscores." %} 63 |


64 |
65 | {% endif %} 66 |
67 | 68 |
69 | 70 |
71 | 72 | 73 |
74 | {% endblock %} 75 | -------------------------------------------------------------------------------- /filebrowser/templates/filebrowser/upload_uploadify.html: -------------------------------------------------------------------------------- 1 | {% extends "admin/base_site.html" %} 2 | 3 | 4 | {% load i18n adminmedia fb_tags fb_csrf %} 5 | 6 | 7 | {% block extrastyle %} 8 | {{ block.super }} 9 | 10 | 11 | {% endblock %} 12 | 13 | 14 | {% block extrahead %} 15 | {{ block.super }} 16 | 17 | 18 | 19 | {% endblock %} 20 | 21 | 22 | {% block bodyclass %}change-form filebrowser{% if query.pop %} popup{% endif %}{% endblock %} 23 | {% block content-class %}content-flexible{% endblock %} 24 | 25 | 26 | {% block breadcrumbs %}{% include "filebrowser/include/breadcrumbs.html" %}{% endblock %} 27 | 28 | 29 | {% block content %} 30 |
31 |
32 | {% fb_csrf_token %} 33 | {{ formset.management_form }} 34 |
35 | {% if form.errors %}{{ form.errors }}{% endif %} 36 |
37 |
38 | {% load uploadify_tags %} 39 | {% multi_file_upload sender='filebrowser' fileDataName='file' %}
40 | {% trans "Use old uploader without flash" %} 41 | 50 |
51 |
52 |
53 |

{% trans "Help" %}

54 |
55 | {% for extension in settings_var.EXTENSIONS.items %} 56 | {% ifnotequal extension.0 'Folder' %} 57 |
58 |

{{ extension.0|safe }} ({{ extension.1|join:", "|safe }})


59 | {% endifnotequal %} 60 | {% endfor %} 61 |
62 |
63 |
64 |

{{ settings_var.MAX_UPLOAD_SIZE|filesizeformat }}


65 |
66 | {% if settings_var.CONVERT_FILENAME %} 67 |
68 |

69 | {% trans "The Name will be converted to lowercase. Spaces will be replaced with underscores." %} 70 |


71 |
72 | {% endif %} 73 |
74 | 75 | 76 |
77 | {% endblock %} 78 | -------------------------------------------------------------------------------- /filebrowser/templates/filebrowser/versions.html: -------------------------------------------------------------------------------- 1 | {% extends "admin/base_site.html" %} 2 | 3 | 4 | {% load i18n adminmedia fb_tags fb_versions %} 5 | 6 | 7 | {% block extrastyle %} 8 | {{ block.super }} 9 | 10 | 11 | {% if query.pop %} 12 | 15 | {% endif %} 16 | {% endblock %} 17 | 18 | 19 | {% block extrahead %} 20 | {{ block.super }} 21 | 22 | {% ifequal query.pop '1' %} 23 | 24 | 25 | {% endifequal %} 26 | 27 | {% ifequal query.pop '2' %} 28 | 29 | 30 | 31 | {% if query.mce_rdomain %}{% endif %} 32 | {% endifequal %} 33 | 34 | {% ifequal query.pop '3' %} 35 | 36 | 37 | {% endifequal %} 38 | 39 | {{ media }} 40 | {% endblock %} 41 | 42 | 43 | {% block bodyclass %}change-list filebrowser{% if query.pop %} popup{% endif %}{% endblock %} 44 | {% block content-class %}content-flexible{% endblock %} 45 | 46 | 47 | {% block breadcrumbs %}{% include "filebrowser/include/breadcrumbs.html" %}{% endblock %} 48 | 49 | 50 | {% block content %} 51 |
52 |
53 | 54 | 55 | 56 | 57 | 58 | {% ifequal query.pop '1' %}{% endifequal %} 59 | {% ifequal query.pop '2' %}{% endifequal %} 60 | {% ifequal query.pop '3' %}{% endifequal %} 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | {% if settings_var.DEBUG %}{% endif %} 70 | 71 | 72 | 73 | 74 | {% for version in settings_var.ADMIN_VERSIONS %} 75 | {% version_object original version as image_version %} 76 | 77 | 78 | 79 | {% ifequal query.pop '1' %} 80 | 88 | {% endifequal %} 89 | 90 | 91 | {% ifequal query.pop '2' %} 92 | 100 | {% endifequal %} 101 | 102 | 103 | {% ifequal query.pop '3' %} 104 | 112 | {% endifequal %} 113 | 114 | 115 | 121 | 122 | 123 | 124 | 125 | 126 | {% if settings_var.DEBUG %} 127 | 148 | {% endif %} 149 | 150 | 151 | {% endfor %} 152 | 153 |
{% trans 'Name' %}{% trans 'Image Version' %}{% trans "Debug" %}
81 | {% selectable image_version.filetype query.type %} 82 | {% if selectable %} 83 | 84 | {% else %} 85 |   86 | {% endif %} 87 | 93 | {% selectable image_version.filetype query.type %} 94 | {% if selectable %} 95 | 96 | {% else %} 97 |   98 | {% endif %} 99 | 105 | {% selectable image_version.filetype query.type %} 106 | {% if selectable %} 107 | 108 | {% else %} 109 |   110 | {% endif %} 111 | 116 | {% version_setting version %} 117 | {{ version_setting.verbose_name }}
118 | {% if version_setting.width %}{% trans "Width" %}: {{ version_setting.width }}px
{% endif %} 119 | {% if version_setting.height %}{% trans "Height" %}: {{ version_setting.height }}px{% endif %} 120 |
128 | Filename {{ image_version.filename }}
129 | Filetype {{ image_version.filetype }}
130 | Filesize {{ image_version.filesize }}
131 | Extension {{ image_version.extension }}
132 | Date {{ image_version.date }}
133 | Datetime Object {{ image_version.datetime }}

134 | 135 | Relative Path {{ image_version.path_relative }}
136 | Full Path {{ image_version.path_full }}
137 | Relative URL {{ image_version.url_relative }}
138 | Full URL {{ image_version.url_full }}

139 | 140 | URL for FileBrowseField {{ image_version.url_save }}
141 | Thumbnail URL {{ image_version.url_thumbnail }}

142 | 143 | Dimensions {{ image_version.dimensions }}
144 | Width {{ image_version.width }}
145 | Height {{ image_version.height }}
146 | Orientation {{ image_version.orientation }} 147 |
154 |
155 |
156 | {% endblock %} 157 | -------------------------------------------------------------------------------- /filebrowser/templatetags/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smacker/django-filebrowser-no-grappelli-for-django13/17eee97ac7d58de76bef851b092625dcec8e5b2b/filebrowser/templatetags/__init__.py -------------------------------------------------------------------------------- /filebrowser/templatetags/fb_csrf.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | # django imports 4 | from django.template import Node 5 | from django.template import Library 6 | from django.utils.safestring import mark_safe 7 | 8 | register = Library() 9 | 10 | 11 | class CsrfTokenNode(Node): 12 | def render(self, context): 13 | csrf_token = context.get('csrf_token', None) 14 | if csrf_token: 15 | if csrf_token == 'NOTPROVIDED': 16 | return mark_safe(u"") 17 | else: 18 | return mark_safe(u"
" % (csrf_token)) 19 | else: 20 | # It's very probable that the token is missing because of 21 | # misconfiguration, so we raise a warning 22 | from django.conf import settings 23 | if settings.DEBUG: 24 | import warnings 25 | warnings.warn("A {% csrf_token %} was used in a template, but the context did not provide the value. This is usually caused by not using RequestContext.") 26 | return u'' 27 | 28 | def fb_csrf_token(parser, token): 29 | return CsrfTokenNode() 30 | register.tag(fb_csrf_token) 31 | -------------------------------------------------------------------------------- /filebrowser/templatetags/fb_pagination.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | from django.utils.html import escape 4 | from django.utils.safestring import mark_safe 5 | from django.template import Library 6 | 7 | register = Library() 8 | 9 | DOT = '.' 10 | 11 | @register.inclusion_tag('filebrowser/include/paginator.html', takes_context=True) 12 | def pagination(context): 13 | page_num = context['page'].number-1 14 | paginator = context['p'] 15 | 16 | if not paginator.num_pages or paginator.num_pages == 1: 17 | page_range = [] 18 | else: 19 | ON_EACH_SIDE = 3 20 | ON_ENDS = 2 21 | 22 | # If there are 10 or fewer pages, display links to every page. 23 | # Otherwise, do some fancy 24 | if paginator.num_pages <= 10: 25 | page_range = range(paginator.num_pages) 26 | else: 27 | # Insert "smart" pagination links, so that there are always ON_ENDS 28 | # links at either end of the list of pages, and there are always 29 | # ON_EACH_SIDE links at either end of the "current page" link. 30 | page_range = [] 31 | if page_num > (ON_EACH_SIDE + ON_ENDS): 32 | page_range.extend(range(0, ON_EACH_SIDE - 1)) 33 | page_range.append(DOT) 34 | page_range.extend(range(page_num - ON_EACH_SIDE, page_num + 1)) 35 | else: 36 | page_range.extend(range(0, page_num + 1)) 37 | if page_num < (paginator.num_pages - ON_EACH_SIDE - ON_ENDS - 1): 38 | page_range.extend(range(page_num + 1, page_num + ON_EACH_SIDE + 1)) 39 | page_range.append(DOT) 40 | page_range.extend(range(paginator.num_pages - ON_ENDS, paginator.num_pages)) 41 | else: 42 | page_range.extend(range(page_num + 1, paginator.num_pages)) 43 | 44 | return { 45 | 'page_range': page_range, 46 | 'page_num': page_num, 47 | 'results_var': context['results_var'], 48 | 'query': context['query'], 49 | } 50 | 51 | 52 | -------------------------------------------------------------------------------- /filebrowser/templatetags/fb_tags.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | # django imports 4 | from django import template 5 | from django.utils.encoding import smart_unicode 6 | from django.utils.safestring import mark_safe 7 | 8 | # filebrowser imports 9 | from filebrowser.settings import SELECT_FORMATS 10 | 11 | register = template.Library() 12 | 13 | 14 | @register.inclusion_tag('filebrowser/include/_response.html', takes_context=True) 15 | def query_string(context, add=None, remove=None): 16 | """ 17 | Allows the addition and removal of query string parameters. 18 | 19 | _response.html is just {{ response }} 20 | 21 | Usage: 22 | http://www.url.com/{% query_string "param_to_add=value, param_to_add=value" "param_to_remove, params_to_remove" %} 23 | http://www.url.com/{% query_string "" "filter" %}filter={{new_filter}} 24 | http://www.url.com/{% query_string "sort=value" "sort" %} 25 | """ 26 | 27 | # Written as an inclusion tag to simplify getting the context. 28 | add = string_to_dict(add) 29 | remove = string_to_list(remove) 30 | params = context['query'].copy() 31 | response = get_query_string(params, add, remove) 32 | return {'response': response } 33 | 34 | 35 | def query_helper(query, add=None, remove=None): 36 | """ 37 | Helper Function for use within views. 38 | """ 39 | 40 | add = string_to_dict(add) 41 | remove = string_to_list(remove) 42 | params = query.copy() 43 | return get_query_string(params, add, remove) 44 | 45 | 46 | def get_query_string(p, new_params=None, remove=None): 47 | """ 48 | Add and remove query parameters. From `django.contrib.admin`. 49 | """ 50 | 51 | if new_params is None: new_params = {} 52 | if remove is None: remove = [] 53 | for r in remove: 54 | for k in p.keys(): 55 | #if k.startswith(r): 56 | if k == r: 57 | del p[k] 58 | for k, v in new_params.items(): 59 | if k in p and v is None: 60 | del p[k] 61 | elif v is not None: 62 | p[k] = v 63 | return mark_safe('?' + '&'.join([u'%s=%s' % (k, v) for k, v in p.items()]).replace(' ', '%20')) 64 | 65 | 66 | def string_to_dict(string): 67 | """ 68 | Usage: 69 | {{ url|thumbnail:"width=10,height=20" }} 70 | {{ url|thumbnail:"width=10" }} 71 | {{ url|thumbnail:"height=20" }} 72 | """ 73 | 74 | kwargs = {} 75 | if string: 76 | string = str(string) 77 | if ',' not in string: 78 | # ensure at least one ',' 79 | string += ',' 80 | for arg in string.split(','): 81 | arg = arg.strip() 82 | if arg == '': continue 83 | kw, val = arg.split('=', 1) 84 | kwargs[kw] = val 85 | return kwargs 86 | 87 | 88 | def string_to_list(string): 89 | """ 90 | Usage: 91 | {{ url|thumbnail:"width,height" }} 92 | """ 93 | 94 | args = [] 95 | if string: 96 | string = str(string) 97 | if ',' not in string: 98 | # ensure at least one ',' 99 | string += ',' 100 | for arg in string.split(','): 101 | arg = arg.strip() 102 | if arg == '': continue 103 | args.append(arg) 104 | return args 105 | 106 | 107 | class SelectableNode(template.Node): 108 | def __init__(self, filetype, format): 109 | self.filetype = template.Variable(filetype) 110 | self.format = template.Variable(format) 111 | 112 | def render(self, context): 113 | try: 114 | filetype = self.filetype.resolve(context) 115 | except template.VariableDoesNotExist: 116 | filetype = '' 117 | try: 118 | format = self.format.resolve(context) 119 | except template.VariableDoesNotExist: 120 | format = '' 121 | if filetype and format and filetype in SELECT_FORMATS[format]: 122 | selectable = True 123 | elif filetype and format and filetype not in SELECT_FORMATS[format]: 124 | selectable = False 125 | else: 126 | selectable = True 127 | context['selectable'] = selectable 128 | return '' 129 | 130 | 131 | def selectable(parser, token): 132 | 133 | try: 134 | tag, filetype, format = token.split_contents() 135 | except: 136 | raise TemplateSyntaxError, "%s tag requires 2 arguments" % token.contents.split()[0] 137 | 138 | return SelectableNode(filetype, format) 139 | 140 | register.tag(selectable) 141 | -------------------------------------------------------------------------------- /filebrowser/templatetags/fb_versions.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | # imports 4 | import os, re 5 | from time import gmtime 6 | 7 | # django imports 8 | from django.template import Library, Node, Variable, VariableDoesNotExist, TemplateSyntaxError 9 | from django.conf import settings 10 | from django.utils.encoding import force_unicode, smart_str 11 | 12 | # filebrowser imports 13 | from filebrowser.settings import MEDIA_ROOT, MEDIA_URL, VERSIONS 14 | from filebrowser.functions import url_to_path, path_to_url, get_version_path, version_generator 15 | from filebrowser.base import FileObject 16 | 17 | register = Library() 18 | 19 | 20 | class VersionNode(Node): 21 | def __init__(self, src, version_prefix): 22 | self.src = Variable(src) 23 | if (version_prefix[0] == version_prefix[-1] and version_prefix[0] in ('"', "'")): 24 | self.version_prefix = version_prefix[1:-1] 25 | else: 26 | self.version_prefix = None 27 | self.version_prefix_var = Variable(version_prefix) 28 | 29 | def render(self, context): 30 | try: 31 | source = self.src.resolve(context) 32 | except VariableDoesNotExist: 33 | return None 34 | if self.version_prefix: 35 | version_prefix = self.version_prefix 36 | else: 37 | try: 38 | version_prefix = self.version_prefix_var.resolve(context) 39 | except VariableDoesNotExist: 40 | return None 41 | try: 42 | source = force_unicode(source) 43 | version_path = get_version_path(url_to_path(source), version_prefix) 44 | if not os.path.isfile(smart_str(os.path.join(MEDIA_ROOT, version_path))): 45 | # create version 46 | version_path = version_generator(url_to_path(source), version_prefix) 47 | elif os.path.getmtime(smart_str(os.path.join(MEDIA_ROOT, url_to_path(source)))) > os.path.getmtime(smart_str(os.path.join(MEDIA_ROOT, version_path))): 48 | # recreate version if original image was updated 49 | version_path = version_generator(url_to_path(source), version_prefix, force=True) 50 | return path_to_url(version_path) 51 | except: 52 | return "" 53 | 54 | 55 | def version(parser, token): 56 | """ 57 | Displaying a version of an existing Image according to the predefined VERSIONS settings (see filebrowser settings). 58 | {% version field_name version_prefix %} 59 | 60 | Use {% version my_image 'medium' %} in order to display the medium-size 61 | version of an Image stored in a field name my_image. 62 | 63 | version_prefix can be a string or a variable. if version_prefix is a string, use quotes. 64 | """ 65 | 66 | try: 67 | tag, src, version_prefix = token.split_contents() 68 | except: 69 | raise TemplateSyntaxError, "%s tag requires 2 arguments" % token.contents.split()[0] 70 | if (version_prefix[0] == version_prefix[-1] and version_prefix[0] in ('"', "'")) and version_prefix.lower()[1:-1] not in VERSIONS: 71 | raise TemplateSyntaxError, "%s tag received bad version_prefix %s" % (tag, version_prefix) 72 | return VersionNode(src, version_prefix) 73 | 74 | 75 | class VersionObjectNode(Node): 76 | def __init__(self, src, version_prefix, var_name): 77 | self.var_name = var_name 78 | self.src = Variable(src) 79 | if (version_prefix[0] == version_prefix[-1] and version_prefix[0] in ('"', "'")): 80 | self.version_prefix = version_prefix[1:-1] 81 | else: 82 | self.version_prefix = None 83 | self.version_prefix_var = Variable(version_prefix) 84 | 85 | def render(self, context): 86 | try: 87 | source = self.src.resolve(context) 88 | except VariableDoesNotExist: 89 | return None 90 | if self.version_prefix: 91 | version_prefix = self.version_prefix 92 | else: 93 | try: 94 | version_prefix = self.version_prefix_var.resolve(context) 95 | except VariableDoesNotExist: 96 | return None 97 | try: 98 | source = force_unicode(source) 99 | version_path = get_version_path(url_to_path(source), version_prefix) 100 | if not os.path.isfile(smart_str(os.path.join(MEDIA_ROOT, version_path))): 101 | # create version 102 | version_path = version_generator(url_to_path(source), version_prefix) 103 | elif os.path.getmtime(smart_str(os.path.join(MEDIA_ROOT, url_to_path(source)))) > os.path.getmtime(smart_str(os.path.join(MEDIA_ROOT, version_path))): 104 | # recreate version if original image was updated 105 | version_path = version_generator(url_to_path(source), version_prefix, force=True) 106 | context[self.var_name] = FileObject(version_path) 107 | except: 108 | context[self.var_name] = "" 109 | return '' 110 | 111 | 112 | def version_object(parser, token): 113 | """ 114 | Returns a context variable 'version_object'. 115 | {% version_object field_name version_prefix %} 116 | 117 | Use {% version_object my_image 'medium' %} in order to retrieve the medium 118 | version of an Image stored in a field name my_image. 119 | Use {% version_object my_image 'medium' as var %} in order to use 'var' as 120 | your context variable. 121 | 122 | version_prefix can be a string or a variable. if version_prefix is a string, use quotes. 123 | """ 124 | 125 | try: 126 | #tag, src, version_prefix = token.split_contents() 127 | tag, arg = token.contents.split(None, 1) 128 | except: 129 | raise TemplateSyntaxError, "%s tag requires arguments" % token.contents.split()[0] 130 | m = re.search(r'(.*?) (.*?) as (\w+)', arg) 131 | if not m: 132 | raise TemplateSyntaxError, "%r tag had invalid arguments" % tag 133 | src, version_prefix, var_name = m.groups() 134 | if (version_prefix[0] == version_prefix[-1] and version_prefix[0] in ('"', "'")) and version_prefix.lower()[1:-1] not in VERSIONS: 135 | raise TemplateSyntaxError, "%s tag received bad version_prefix %s" % (tag, version_prefix) 136 | return VersionObjectNode(src, version_prefix, var_name) 137 | 138 | 139 | class VersionSettingNode(Node): 140 | def __init__(self, version_prefix): 141 | if (version_prefix[0] == version_prefix[-1] and version_prefix[0] in ('"', "'")): 142 | self.version_prefix = version_prefix[1:-1] 143 | else: 144 | self.version_prefix = None 145 | self.version_prefix_var = Variable(version_prefix) 146 | 147 | def render(self, context): 148 | if self.version_prefix: 149 | version_prefix = self.version_prefix 150 | else: 151 | try: 152 | version_prefix = self.version_prefix_var.resolve(context) 153 | except VariableDoesNotExist: 154 | return None 155 | context['version_setting'] = VERSIONS[version_prefix] 156 | return '' 157 | 158 | 159 | def version_setting(parser, token): 160 | """ 161 | Get Information about a version setting. 162 | """ 163 | 164 | try: 165 | tag, version_prefix = token.split_contents() 166 | except: 167 | raise TemplateSyntaxError, "%s tag requires 1 argument" % token.contents.split()[0] 168 | if (version_prefix[0] == version_prefix[-1] and version_prefix[0] in ('"', "'")) and version_prefix.lower()[1:-1] not in VERSIONS: 169 | raise TemplateSyntaxError, "%s tag received bad version_prefix %s" % (tag, version_prefix) 170 | return VersionSettingNode(version_prefix) 171 | 172 | 173 | register.tag(version) 174 | register.tag(version_object) 175 | register.tag(version_setting) 176 | 177 | 178 | -------------------------------------------------------------------------------- /filebrowser/uploadify_views.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | # general imports 4 | import os 5 | 6 | # django imports 7 | from django.shortcuts import render_to_response 8 | from django.template import RequestContext as Context 9 | from django.http import HttpResponseRedirect 10 | from django.contrib.admin.views.decorators import staff_member_required 11 | from django.views.decorators.cache import never_cache 12 | from django.utils.translation import ugettext as _ 13 | from django.core.urlresolvers import reverse 14 | from django.dispatch import Signal 15 | 16 | # filebrowser imports 17 | from filebrowser.settings import * 18 | from filebrowser.templatetags.fb_tags import query_helper 19 | from filebrowser.functions import get_path, get_settings_var, convert_filename, handle_file_upload 20 | 21 | # upload signals 22 | filebrowser_pre_upload = Signal(providing_args=["path", "file"]) 23 | filebrowser_post_upload = Signal(providing_args=["path", "file"]) 24 | 25 | def file_process(request): 26 | query = request.GET 27 | path = get_path(query.get('dir', '')) 28 | 29 | abs_path = os.path.join(MEDIA_ROOT, DIRECTORY, path) 30 | 31 | from filebrowser.forms import UploadForm 32 | form = UploadForm(data=request.POST, files=request.FILES, path=abs_path) 33 | 34 | if form.is_valid(): 35 | f = form.cleaned_data['file'] 36 | 37 | f.name = convert_filename(f.name) 38 | # PRE UPLOAD SIGNAL 39 | filebrowser_pre_upload.send(sender=request, path=abs_path, file=f) 40 | # HANDLE UPLOAD 41 | uploadedfile = handle_file_upload(abs_path, f) 42 | # POST UPLOAD SIGNAL 43 | filebrowser_post_upload.send(sender=request, path=abs_path, file=uploadedfile) 44 | else: 45 | return form.errors 46 | 47 | 48 | def upload(request): 49 | """ 50 | Multiple File Upload. 51 | """ 52 | 53 | # QUERY / PATH CHECK 54 | query = request.GET 55 | path = get_path(query.get('dir', '')) 56 | if path is None: 57 | msg = _('The requested Folder does not exist.') 58 | request.user.message_set.create(message=msg) 59 | return HttpResponseRedirect(reverse("fb_browse")) 60 | 61 | redirect_url = reverse("fb_browse") + query_helper(query, "ot=desc,o=date", "ot,o") 62 | 63 | return render_to_response('filebrowser/upload_uploadify.html', { 64 | 'redirect_url': redirect_url, 65 | 'query': query, 66 | 'settings_var': get_settings_var(), 67 | 'breadcrumbs_title': _(u'Upload'), 68 | 'title': _(u'Select files to upload'), 69 | }, context_instance=Context(request)) 70 | 71 | upload = staff_member_required(never_cache(upload)) 72 | 73 | # Uploadify handler 74 | from uploadify.views import upload_received 75 | def uploadify_received_handler(sender, request, data, **kwargs): 76 | if (sender=='filebrowser'): 77 | return file_process(request) 78 | upload_received.connect(uploadify_received_handler) 79 | 80 | -------------------------------------------------------------------------------- /filebrowser/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls.defaults import * 2 | 3 | urlpatterns = patterns('', 4 | 5 | # filebrowser urls 6 | url(r'^browse/$', 'filebrowser.views.browse', name="fb_browse"), 7 | url(r'^mkdir/', 'filebrowser.views.mkdir', name="fb_mkdir"), 8 | url(r'^upload/', 'filebrowser.views.upload', name="fb_upload"), 9 | url(r'^upload_flash/', 'filebrowser.uploadify_views.upload', name="fb_upload_flash"), 10 | url(r'^edit/$', 'filebrowser.views.edit', name="fb_edit"), 11 | url(r'^rename/$', 'filebrowser.views.rename', name="fb_rename"), 12 | url(r'^delete/$', 'filebrowser.views.delete', name="fb_delete"), 13 | url(r'^versions/$', 'filebrowser.views.versions', name="fb_versions"), 14 | 15 | ) 16 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup, find_packages 2 | 3 | setup( 4 | name='django-filebrowser', 5 | version='3.0', 6 | description='Media-Management with the Django Admin-Interface.', 7 | author='Patrick Kranzlmueller', 8 | author_email='patrick@vonautomatisch.at', 9 | url='http://code.google.com/p/django-filebrowser/', 10 | packages=find_packages(), 11 | include_package_data=True, 12 | package_data = {'filebrowser': ['templates/filebrowser/*.html', 13 | 'templates/filebrowser/include/*', 14 | 'locale/*/LC_MESSAGES/*', 15 | 'static/filebrowser/*/*'], 16 | }, 17 | zip_safe=False, 18 | classifiers=[ 19 | 'Development Status :: 4 - Beta', 20 | 'Environment :: Web Environment', 21 | 'Intended Audience :: Developers', 22 | 'License :: OSI Approved :: BSD License', 23 | 'Operating System :: OS Independent', 24 | 'Programming Language :: Python', 25 | 'Framework :: Django', 26 | ] 27 | ) 28 | --------------------------------------------------------------------------------