From 811d5c4e944c8d5a04d040ae90c683b26363f499 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 5 Dec 2011 15:20:10 -0400 Subject: [PATCH 01/27] Add CACHE directory to repository in hopes this fixed the problem with DjangoZoom & django-compressor --- static/CACHE/empty.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 static/CACHE/empty.txt diff --git a/static/CACHE/empty.txt b/static/CACHE/empty.txt new file mode 100644 index 0000000000..6068d6a5eb --- /dev/null +++ b/static/CACHE/empty.txt @@ -0,0 +1 @@ +empty file From acf61bbb27503ae8c8bdb6aca6873e265eb87fd8 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 5 Dec 2011 15:27:31 -0400 Subject: [PATCH 02/27] Disable django-compress --- settings.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/settings.py b/settings.py index 27ef8c818f..60d7446eba 100644 --- a/settings.py +++ b/settings.py @@ -185,6 +185,8 @@ STATICFILES_FINDERS = ( COMPRESS_PARSER = 'compressor.parser.HtmlParser' COMPRESS_CSS_FILTERS = ['compressor.filters.css_default.CssAbsoluteFilter', 'compressor.filters.cssmin.CSSMinFilter'] +COMPRESS_ENABLED=False + #===== User configuration options =============== #--------- Pagination ------------------ #PAGINATION_DEFAULT_PAGINATION = 10 From fff202e5b4489fdba5df46cdd6e51aad0429800a Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 5 Dec 2011 15:32:24 -0400 Subject: [PATCH 03/27] Bumped version to 0.10-hotfix4 --- apps/main/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/main/__init__.py b/apps/main/__init__.py index 07d4301314..6ae26a0009 100644 --- a/apps/main/__init__.py +++ b/apps/main/__init__.py @@ -23,7 +23,7 @@ __version_info__ = { 'minor': 10, 'micro': 0, 'releaselevel': 'hotfix', - 'serial': 2 + 'serial': 4 } if not DISABLE_HOME_VIEW: From a41372f6e7a6f99c64ad26502cbced3fc7407d56 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 5 Dec 2011 22:48:17 -0400 Subject: [PATCH 04/27] Remove CACHE dicctionary from repository, didn't fix problem with compressor + DjangoZoom --- static/CACHE/empty.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 static/CACHE/empty.txt diff --git a/static/CACHE/empty.txt b/static/CACHE/empty.txt deleted file mode 100644 index 6068d6a5eb..0000000000 --- a/static/CACHE/empty.txt +++ /dev/null @@ -1 +0,0 @@ -empty file From 2b6530d9d367b7e1a2bd0760171e83a7d7759d75 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 5 Dec 2011 22:49:24 -0400 Subject: [PATCH 05/27] Use cStringIO whenever possible --- apps/documents/models.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/documents/models.py b/apps/documents/models.py index d90665d333..1fc86231e7 100644 --- a/apps/documents/models.py +++ b/apps/documents/models.py @@ -3,9 +3,13 @@ import tempfile import hashlib from ast import literal_eval import base64 -from StringIO import StringIO import datetime import logging + +try: + from cStringIO import StringIO +except ImportError: + from StringIO import StringIO from django.db import models from django.utils.translation import ugettext_lazy as _ From 11edaaf4e7ce055dbd7afb9927049d1051617da9 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Tue, 6 Dec 2011 01:49:45 -0400 Subject: [PATCH 06/27] Added signature file to the document model and the related method to add, verify and open the signature file --- ...dd_field_documentversion_signature_file.py | 157 ++++++++++++++++++ apps/documents/models.py | 43 ++++- 2 files changed, 199 insertions(+), 1 deletion(-) create mode 100644 apps/documents/migrations/0012_auto__add_field_documentversion_signature_file.py diff --git a/apps/documents/migrations/0012_auto__add_field_documentversion_signature_file.py b/apps/documents/migrations/0012_auto__add_field_documentversion_signature_file.py new file mode 100644 index 0000000000..2938016090 --- /dev/null +++ b/apps/documents/migrations/0012_auto__add_field_documentversion_signature_file.py @@ -0,0 +1,157 @@ +# encoding: utf-8 +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + +class Migration(SchemaMigration): + + def forwards(self, orm): + + # Adding field 'DocumentVersion.signature_file' + db.add_column('documents_documentversion', 'signature_file', self.gf('django.db.models.fields.files.FileField')(max_length=100, null=True, blank=True), keep_default=False) + + + def backwards(self, orm): + + # Deleting field 'DocumentVersion.signature_file' + db.delete_column('documents_documentversion', 'signature_file') + + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'comments.comment': { + 'Meta': {'ordering': "('submit_date',)", 'object_name': 'Comment', 'db_table': "'django_comments'"}, + 'comment': ('django.db.models.fields.TextField', [], {'max_length': '3000'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'content_type_set_for_comment'", 'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'ip_address': ('django.db.models.fields.IPAddressField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}), + 'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_removed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'object_pk': ('django.db.models.fields.TextField', [], {}), + 'site': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['sites.Site']"}), + 'submit_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'comment_comments'", 'null': 'True', 'to': "orm['auth.User']"}), + 'user_email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'user_name': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}), + 'user_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'documents.document': { + 'Meta': {'ordering': "['-date_added']", 'object_name': 'Document'}, + 'date_added': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'document_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['documents.DocumentType']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '48', 'blank': 'True'}) + }, + 'documents.documentpage': { + 'Meta': {'ordering': "['page_number']", 'object_name': 'DocumentPage'}, + 'content': ('django.db.models.fields.TextField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'document_version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['documents.DocumentVersion']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'page_label': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), + 'page_number': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1', 'db_index': 'True'}) + }, + 'documents.documentpagetransformation': { + 'Meta': {'ordering': "('order',)", 'object_name': 'DocumentPageTransformation'}, + 'arguments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'document_page': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['documents.DocumentPage']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'order': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'null': 'True', 'db_index': 'True', 'blank': 'True'}), + 'transformation': ('django.db.models.fields.CharField', [], {'max_length': '128'}) + }, + 'documents.documenttype': { + 'Meta': {'ordering': "['name']", 'object_name': 'DocumentType'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '32'}) + }, + 'documents.documenttypefilename': { + 'Meta': {'ordering': "['filename']", 'object_name': 'DocumentTypeFilename'}, + 'document_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['documents.DocumentType']"}), + 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'filename': ('django.db.models.fields.CharField', [], {'max_length': '128', 'db_index': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'documents.documentversion': { + 'Meta': {'unique_together': "(('document', 'major', 'minor', 'micro', 'release_level', 'serial'),)", 'object_name': 'DocumentVersion'}, + 'checksum': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'document': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['documents.Document']"}), + 'encoding': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '64'}), + 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + 'filename': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '255', 'db_index': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'major': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), + 'micro': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'mimetype': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '64'}), + 'minor': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'release_level': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), + 'serial': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'signature_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'signature_state': ('django.db.models.fields.CharField', [], {'max_length': '16', 'null': 'True', 'blank': 'True'}), + 'timestamp': ('django.db.models.fields.DateTimeField', [], {}) + }, + 'documents.recentdocument': { + 'Meta': {'ordering': "('-datetime_accessed',)", 'object_name': 'RecentDocument'}, + 'datetime_accessed': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), + 'document': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['documents.Document']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) + }, + 'sites.site': { + 'Meta': {'ordering': "('domain',)", 'object_name': 'Site', 'db_table': "'django_site'"}, + 'domain': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'taggit.tag': { + 'Meta': {'object_name': 'Tag'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '100', 'db_index': 'True'}) + }, + 'taggit.taggeditem': { + 'Meta': {'object_name': 'TaggedItem'}, + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'taggit_taggeditem_tagged_items'", 'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'object_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True'}), + 'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'taggit_taggeditem_items'", 'to': "orm['taggit.Tag']"}) + } + } + + complete_apps = ['documents'] diff --git a/apps/documents/models.py b/apps/documents/models.py index 1fc86231e7..b691cdc36d 100644 --- a/apps/documents/models.py +++ b/apps/documents/models.py @@ -290,8 +290,20 @@ class Document(models.Model): return version.save() filename = property(_get_filename, _set_filename) - + + def add_detached_signature(self, *args, **kwargs): + return self.latest_version.add_detached_signature(*args, **kwargs) + def has_detached_signature(self): + return self.latest_version.has_detached_signature() + + def detached_signature(self): + return self.latest_version.detached_signature() + + def verify_signature(self): + return self.latest_version.verify_signature() + + class DocumentVersion(models.Model): ''' Model that describes a document version and its properties @@ -320,6 +332,7 @@ class DocumentVersion(models.Model): filename = models.CharField(max_length=255, default=u'', editable=False, db_index=True) checksum = models.TextField(blank=True, null=True, verbose_name=_(u'checksum'), editable=False) signature_state = models.CharField(blank=True, null=True, max_length=16, verbose_name=_(u'signature state'), editable=False) + signature_file = models.FileField(blank=True, null=True, upload_to=get_filename_from_uuid, storage=STORAGE_BACKEND(), verbose_name=_(u'signature file'), editable=False) class Meta: unique_together = ('document', 'major', 'minor', 'micro', 'release_level', 'serial') @@ -534,7 +547,35 @@ class DocumentVersion(models.Model): return self.file.storage.size(self.file.path) else: return None + + def add_detached_signature(self, detached_signature): + if not self.signature_state: + self.signature_file = detached_signature + self.save() + else: + raise Exception('document already has an embedded signature') + + def has_detached_signature(self): + if self.signature_file: + return self.signature_file.storage.exists(self.signature_file.path) + else: + return False + + def detached_signature(self): + return self.signature_file.storage.open(self.signature_file.path) + + def verify_signature(self): + try: + if self.has_detached_signature(): + logger.debug('has detached signature') + signature = gpg.verify_w_retry(self.open(), self.detached_signature()) + else: + signature = gpg.verify_w_retry(self.open(raw=True)) + except GPGVerificationError: + signature = None + return signature + class DocumentTypeFilename(models.Model): ''' From 755d140132500e272639abc88782d49da78a71dc Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Tue, 6 Dec 2011 01:50:38 -0400 Subject: [PATCH 07/27] Add detached signature support to the django_gpg API --- apps/django_gpg/api.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/apps/django_gpg/api.py b/apps/django_gpg/api.py index 50ca3d564c..8d9f2e2b4b 100644 --- a/apps/django_gpg/api.py +++ b/apps/django_gpg/api.py @@ -2,6 +2,8 @@ import types from StringIO import StringIO from pickle import dumps import logging +import tempfile +import os from django.core.files.base import File from django.utils.translation import ugettext_lazy as _ @@ -164,7 +166,7 @@ class GPG(object): self.gpg = gnupg.GPG(**kwargs) - def verify_w_retry(self, file_input): + def verify_w_retry(self, file_input, detached_signature=None): if isinstance(file_input, types.StringTypes): input_descriptor = open(file_input, 'rb') elif isinstance(file_input, types.FileType) or isinstance(file_input, File): @@ -175,12 +177,12 @@ class GPG(object): raise ValueError('Invalid file_input argument type') try: - verify = self.verify_file(input_descriptor) + verify = self.verify_file(input_descriptor, detached_signature) if verify.status == 'no public key': # Try to fetch the public key from the keyservers try: self.receive_key(verify.key_id) - return self.verify_w_retry(file_input) + return self.verify_w_retry(file_input, detached_signature) except KeyFetchingError: return verify else: @@ -188,7 +190,7 @@ class GPG(object): except IOError: return False - def verify_file(self, file_input): + def verify_file(self, file_input, detached_signature=None): """ Verify the signature of a file. """ @@ -199,7 +201,17 @@ class GPG(object): else: raise ValueError('Invalid file_input argument type') - verify = self.gpg.verify_file(descriptor) + if detached_signature: + # Save the original data and invert the argument order + # Signature first, file second + file_descriptor, filename = tempfile.mkstemp(prefix='django_gpg') + file_data = file_input.read() + file_input.close() + os.write(file_descriptor, file_data) + os.close(file_descriptor) + verify = self.gpg.verify_file(detached_signature, data_filename=filename) + else: + verify = self.gpg.verify_file(descriptor) descriptor.close() if verify: From 2e829b3be41f0b069f040c017c0afaa0a04d259e Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Tue, 6 Dec 2011 01:51:00 -0400 Subject: [PATCH 08/27] Add views to upload and download detached signatures --- apps/django_gpg/__init__.py | 14 ++++++++ apps/django_gpg/forms.py | 6 ++++ apps/django_gpg/urls.py | 3 +- apps/django_gpg/views.py | 67 +++++++++++++++++++++++++++++++++---- 4 files changed, 82 insertions(+), 8 deletions(-) diff --git a/apps/django_gpg/__init__.py b/apps/django_gpg/__init__.py index 7fe12a221c..b4d2c83950 100644 --- a/apps/django_gpg/__init__.py +++ b/apps/django_gpg/__init__.py @@ -16,6 +16,8 @@ PERMISSION_KEY_VIEW = {'namespace': 'django_gpg', 'name': 'key_view', 'label': _ PERMISSION_KEY_DELETE = {'namespace': 'django_gpg', 'name': 'key_delete', 'label': _(u'Delete keys')} PERMISSION_KEYSERVER_QUERY = {'namespace': 'django_gpg', 'name': 'keyserver_query', 'label': _(u'Query keyservers')} PERMISSION_KEY_RECEIVE = {'namespace': 'django_gpg', 'name': 'key_receive', 'label': _(u'Import key from keyservers')} +PERMISSION_SIGNATURE_UPLOAD = {'namespace': 'django_gpg', 'name': 'signature_upload', 'label': _(u'Upload detached signatures')} +PERMISSION_SIGNATURE_DOWNLOAD = {'namespace': 'django_gpg', 'name': 'key_receive', 'label': _(u'Download detached signatures')} # Permission setup set_namespace_title('django_gpg', _(u'Signatures')) @@ -24,6 +26,11 @@ register_permission(PERMISSION_KEY_VIEW) register_permission(PERMISSION_KEY_DELETE) register_permission(PERMISSION_KEYSERVER_QUERY) register_permission(PERMISSION_KEY_RECEIVE) +register_permission(PERMISSION_SIGNATURE_UPLOAD) +register_permission(PERMISSION_SIGNATURE_DOWNLOAD) + +def has_embedded_signature(context): + return context['object'].signature_state # Setup views private_keys = {'text': _(u'private keys'), 'view': 'key_private_list', 'args': 'object.pk', 'famfam': 'key', 'icon': 'key.png', 'permissions': [PERMISSION_KEY_VIEW]} @@ -31,12 +38,16 @@ public_keys = {'text': _(u'public keys'), 'view': 'key_public_list', 'args': 'ob key_delete = {'text': _(u'delete'), 'view': 'key_delete', 'args': ['object.fingerprint', 'object.type'], 'famfam': 'key_delete', 'permissions': [PERMISSION_KEY_DELETE]} key_query = {'text': _(u'Query keyservers'), 'view': 'key_query', 'famfam': 'zoom', 'permissions': [PERMISSION_KEYSERVER_QUERY]} key_receive = {'text': _(u'Import'), 'view': 'key_receive', 'args': 'object.keyid', 'famfam': 'key_add', 'keep_query': True, 'permissions': [PERMISSION_KEY_RECEIVE]} +document_signature_upload = {'text': _(u'Upload signature'), 'view': 'document_signature_upload', 'args': 'object.pk', 'famfam': 'pencil_add', 'permissions': [PERMISSION_SIGNATURE_UPLOAD], 'conditional_disable': has_embedded_signature} +document_signature_download = {'text': _(u'Download signature'), 'view': 'document_signature_download', 'args': 'object.pk', 'famfam': 'disk', 'permissions': [PERMISSION_SIGNATURE_DOWNLOAD], 'conditional_disable': has_embedded_signature} # Document views document_verify = {'text': _(u'signatures'), 'view': 'document_verify', 'args': 'object.pk', 'famfam': 'text_signature', 'permissions': [PERMISSION_DOCUMENT_VERIFY]} register_links(Document, [document_verify], menu_name='form_header') +register_links(['document_verify', 'document_signature_upload', 'document_signature_download'], [document_signature_upload, document_signature_download], menu_name='sidebar') + register_links(['key_delete', 'key_private_list', 'key_public_list', 'key_query'], [private_keys, public_keys, key_query], menu_name='sidebar') register_links(Key, [key_delete]) @@ -44,3 +55,6 @@ register_links(KeyServerKey, [key_receive]) register_setup(private_keys) register_setup(public_keys) + + + diff --git a/apps/django_gpg/forms.py b/apps/django_gpg/forms.py index 619035fd5d..b961daf037 100644 --- a/apps/django_gpg/forms.py +++ b/apps/django_gpg/forms.py @@ -11,3 +11,9 @@ class KeySearchForm(forms.Form): label=_(u'Term'), help_text=_(u'Name, e-mail, key ID or key fingerprint to look for.') ) + + +class DetachedSignatureForm(forms.Form): + file = forms.FileField( + label=_(u'Signature file'), + ) diff --git a/apps/django_gpg/urls.py b/apps/django_gpg/urls.py index 20c4c69360..4a22882d06 100644 --- a/apps/django_gpg/urls.py +++ b/apps/django_gpg/urls.py @@ -5,7 +5,8 @@ urlpatterns = patterns('django_gpg.views', url(r'^list/private/$', 'key_list', {'secret': True}, 'key_private_list'), url(r'^list/public/$', 'key_list', {'secret': False}, 'key_public_list'), url(r'^verify/(?P\d+)/$', 'document_verify', (), 'document_verify'), + url(r'^upload/signature/(?P\d+)/$', 'document_signature_upload', (), 'document_signature_upload'), + url(r'^download/signature/(?P\d+)/$', 'document_signature_download', (), 'document_signature_download'), url(r'^query/$', 'key_query', (), 'key_query'), url(r'^receive/(?P.+)/$', 'key_receive', (), 'key_receive'), - ) diff --git a/apps/django_gpg/views.py b/apps/django_gpg/views.py index 31bad2c530..d908d011e0 100644 --- a/apps/django_gpg/views.py +++ b/apps/django_gpg/views.py @@ -15,14 +15,16 @@ from documents.models import Document, RecentDocument from permissions.api import check_permissions from common.utils import pretty_size, parse_range, urlquote, \ return_diff, encapsulate - +from filetransfers.api import serve_file + from django_gpg.api import Key, SIGNATURE_STATES from django_gpg.runtime import gpg from django_gpg.exceptions import GPGVerificationError, KeyFetchingError from django_gpg import (PERMISSION_DOCUMENT_VERIFY, PERMISSION_KEY_VIEW, PERMISSION_KEY_DELETE, PERMISSION_KEYSERVER_QUERY, - PERMISSION_KEY_RECEIVE) -from django_gpg.forms import KeySearchForm + PERMISSION_KEY_RECEIVE, PERMISSION_SIGNATURE_UPLOAD, + PERMISSION_SIGNATURE_DOWNLOAD) +from django_gpg.forms import KeySearchForm, DetachedSignatureForm logger = logging.getLogger(__name__) @@ -193,10 +195,8 @@ def document_verify(request, document_pk): document = get_object_or_404(Document, pk=document_pk) RecentDocument.objects.add_document_for_user(request.user, document) - try: - signature = gpg.verify_w_retry(document.open(raw=True)) - except GPGVerificationError: - signature = None + + signature = document.verify_signature() signature_state = SIGNATURE_STATES.get(getattr(signature, 'status', None)) @@ -230,3 +230,56 @@ def document_verify(request, document_pk): 'document': document, 'paragraphs': paragraphs, }, context_instance=RequestContext(request)) + + +def document_signature_upload(request, document_pk): + check_permissions(request.user, [PERMISSION_SIGNATURE_UPLOAD]) + document = get_object_or_404(Document, pk=document_pk) + + RecentDocument.objects.add_document_for_user(request.user, document) + + post_action_redirect = None + previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/'))) + next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', '/'))) + + if request.method == 'POST': + form = DetachedSignatureForm(request.POST, request.FILES) + if form.is_valid(): + try: + document.add_detached_signature(request.FILES['file']) + messages.success(request, _(u'Detached signature uploaded successfully.')) + return HttpResponseRedirect(next) + except Exception, msg: + messages.error(request, msg) + return HttpResponseRedirect(previous) + else: + form = DetachedSignatureForm() + + return render_to_response('generic_form.html', { + 'title': _(u'Upload detached signature for: %s') % document, + 'form_icon': 'key_delete.png', + 'next': next, + 'form': form, + 'previous': previous, + 'object': document, + }, context_instance=RequestContext(request)) + + +def document_signature_download(request, document_pk): + check_permissions(request.user, [PERMISSION_SIGNATURE_DOWNLOAD]) + document = get_object_or_404(Document, pk=document_pk) + + try: + if document.has_detached_signature(): + signature = document.detached_signature() + return serve_file( + request, + signature, + save_as=u'"%s.sig"' % document.filename, + content_type=u'application/octet-stream' + ) + except Exception, e: + messages.error(request, e) + return HttpResponseRedirect(request.META['HTTP_REFERER']) + + return HttpResponseRedirect(request.META['HTTP_REFERER']) From 2d015d768e1bd163e71fe7ef8ce374361be9d442 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Tue, 6 Dec 2011 01:56:39 -0400 Subject: [PATCH 09/27] Improve the logic of the signature download conditional disabling --- apps/django_gpg/__init__.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/django_gpg/__init__.py b/apps/django_gpg/__init__.py index b4d2c83950..e9e18416a8 100644 --- a/apps/django_gpg/__init__.py +++ b/apps/django_gpg/__init__.py @@ -31,6 +31,9 @@ register_permission(PERMISSION_SIGNATURE_DOWNLOAD) def has_embedded_signature(context): return context['object'].signature_state + +def doesnt_have_detached_signature(context): + return context['object'].has_detached_signature() == False # Setup views private_keys = {'text': _(u'private keys'), 'view': 'key_private_list', 'args': 'object.pk', 'famfam': 'key', 'icon': 'key.png', 'permissions': [PERMISSION_KEY_VIEW]} @@ -39,7 +42,7 @@ key_delete = {'text': _(u'delete'), 'view': 'key_delete', 'args': ['object.finge key_query = {'text': _(u'Query keyservers'), 'view': 'key_query', 'famfam': 'zoom', 'permissions': [PERMISSION_KEYSERVER_QUERY]} key_receive = {'text': _(u'Import'), 'view': 'key_receive', 'args': 'object.keyid', 'famfam': 'key_add', 'keep_query': True, 'permissions': [PERMISSION_KEY_RECEIVE]} document_signature_upload = {'text': _(u'Upload signature'), 'view': 'document_signature_upload', 'args': 'object.pk', 'famfam': 'pencil_add', 'permissions': [PERMISSION_SIGNATURE_UPLOAD], 'conditional_disable': has_embedded_signature} -document_signature_download = {'text': _(u'Download signature'), 'view': 'document_signature_download', 'args': 'object.pk', 'famfam': 'disk', 'permissions': [PERMISSION_SIGNATURE_DOWNLOAD], 'conditional_disable': has_embedded_signature} +document_signature_download = {'text': _(u'Download signature'), 'view': 'document_signature_download', 'args': 'object.pk', 'famfam': 'disk', 'permissions': [PERMISSION_SIGNATURE_DOWNLOAD], 'conditional_disable': doesnt_have_detached_signature} # Document views document_verify = {'text': _(u'signatures'), 'view': 'document_verify', 'args': 'object.pk', 'famfam': 'text_signature', 'permissions': [PERMISSION_DOCUMENT_VERIFY]} From 197d3b4642b532424b852aa756179125a1387591 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Tue, 6 Dec 2011 02:03:33 -0400 Subject: [PATCH 10/27] Disable private key views until document signing is implemented --- apps/django_gpg/__init__.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/apps/django_gpg/__init__.py b/apps/django_gpg/__init__.py index e9e18416a8..e45ae78165 100644 --- a/apps/django_gpg/__init__.py +++ b/apps/django_gpg/__init__.py @@ -39,10 +39,11 @@ def doesnt_have_detached_signature(context): private_keys = {'text': _(u'private keys'), 'view': 'key_private_list', 'args': 'object.pk', 'famfam': 'key', 'icon': 'key.png', 'permissions': [PERMISSION_KEY_VIEW]} public_keys = {'text': _(u'public keys'), 'view': 'key_public_list', 'args': 'object.pk', 'famfam': 'key', 'icon': 'key.png', 'permissions': [PERMISSION_KEY_VIEW]} key_delete = {'text': _(u'delete'), 'view': 'key_delete', 'args': ['object.fingerprint', 'object.type'], 'famfam': 'key_delete', 'permissions': [PERMISSION_KEY_DELETE]} -key_query = {'text': _(u'Query keyservers'), 'view': 'key_query', 'famfam': 'zoom', 'permissions': [PERMISSION_KEYSERVER_QUERY]} -key_receive = {'text': _(u'Import'), 'view': 'key_receive', 'args': 'object.keyid', 'famfam': 'key_add', 'keep_query': True, 'permissions': [PERMISSION_KEY_RECEIVE]} -document_signature_upload = {'text': _(u'Upload signature'), 'view': 'document_signature_upload', 'args': 'object.pk', 'famfam': 'pencil_add', 'permissions': [PERMISSION_SIGNATURE_UPLOAD], 'conditional_disable': has_embedded_signature} -document_signature_download = {'text': _(u'Download signature'), 'view': 'document_signature_download', 'args': 'object.pk', 'famfam': 'disk', 'permissions': [PERMISSION_SIGNATURE_DOWNLOAD], 'conditional_disable': doesnt_have_detached_signature} +key_query = {'text': _(u'query keyservers'), 'view': 'key_query', 'famfam': 'zoom', 'permissions': [PERMISSION_KEYSERVER_QUERY]} +key_receive = {'text': _(u'import'), 'view': 'key_receive', 'args': 'object.keyid', 'famfam': 'key_add', 'keep_query': True, 'permissions': [PERMISSION_KEY_RECEIVE]} +document_signature_upload = {'text': _(u'upload signature'), 'view': 'document_signature_upload', 'args': 'object.pk', 'famfam': 'pencil_add', 'permissions': [PERMISSION_SIGNATURE_UPLOAD], 'conditional_disable': has_embedded_signature} +document_signature_download = {'text': _(u'download signature'), 'view': 'document_signature_download', 'args': 'object.pk', 'famfam': 'disk', 'permissions': [PERMISSION_SIGNATURE_DOWNLOAD], 'conditional_disable': doesnt_have_detached_signature} +key_setup = {'text': _(u'key management'), 'view': 'key_public_list', 'args': 'object.pk', 'famfam': 'key', 'icon': 'key.png', 'permissions': [PERMISSION_KEY_VIEW]} # Document views document_verify = {'text': _(u'signatures'), 'view': 'document_verify', 'args': 'object.pk', 'famfam': 'text_signature', 'permissions': [PERMISSION_DOCUMENT_VERIFY]} @@ -51,13 +52,13 @@ register_links(Document, [document_verify], menu_name='form_header') register_links(['document_verify', 'document_signature_upload', 'document_signature_download'], [document_signature_upload, document_signature_download], menu_name='sidebar') -register_links(['key_delete', 'key_private_list', 'key_public_list', 'key_query'], [private_keys, public_keys, key_query], menu_name='sidebar') +#register_links(['key_delete', 'key_private_list', 'key_public_list', 'key_query'], [private_keys, public_keys, key_query], menu_name='sidebar') +register_links(['key_delete', 'key_public_list', 'key_query'], [public_keys, key_query], menu_name='sidebar') register_links(Key, [key_delete]) register_links(KeyServerKey, [key_receive]) -register_setup(private_keys) -register_setup(public_keys) +register_setup(key_setup) From 6b87c8fab13b35f1037ee2df5c4b30e7865c1070 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Tue, 6 Dec 2011 02:05:05 -0400 Subject: [PATCH 11/27] Remove the filename re use checkbox from the document edit form --- apps/documents/forms.py | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/documents/forms.py b/apps/documents/forms.py index 991b6488e8..63e4470a55 100644 --- a/apps/documents/forms.py +++ b/apps/documents/forms.py @@ -235,6 +235,7 @@ class DocumentForm_edit(DocumentForm): self.fields.pop('release_level') self.fields.pop('version_update') self.fields.pop('comment') + self.fields.pop('use_file_name') class DocumentPropertiesForm(DetailForm): From 265a4c6b1d931f52700d41ed2259c2c22c18650e Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Tue, 6 Dec 2011 02:26:59 -0400 Subject: [PATCH 12/27] Translation updates --- .../converter/locale/es/LC_MESSAGES/django.mo | Bin 5608 -> 5886 bytes .../converter/locale/es/LC_MESSAGES/django.po | 10 +- .../locale/en/LC_MESSAGES/django.po | 119 +++++++---- .../locale/es/LC_MESSAGES/django.mo | Bin 1619 -> 4842 bytes .../locale/es/LC_MESSAGES/django.po | 192 +++++++++++------- .../locale/pt/LC_MESSAGES/django.mo | Bin 524 -> 485 bytes .../locale/pt/LC_MESSAGES/django.po | 130 +++++++----- .../locale/ru/LC_MESSAGES/django.mo | Bin 595 -> 556 bytes .../locale/ru/LC_MESSAGES/django.po | 133 +++++++----- 9 files changed, 370 insertions(+), 214 deletions(-) diff --git a/apps/converter/locale/es/LC_MESSAGES/django.mo b/apps/converter/locale/es/LC_MESSAGES/django.mo index 30ce640c0dfda51f7987439c045f019f464f7752..e0c200c67c9f68f7d13db4d933c27e8886e2c3eb 100644 GIT binary patch delta 1662 zcmZY9OGs2v9LMp0jbmz>X^mNG-LleB(=i`q4-+j23?vAOKp1r}LFdLaO0;Nt&|?)- zVN8pxAcBfkBQ2r_)h2>!QBV{G5k%3VMHH=~?{DTBM29)^IrnuQ|MS21bItF%`1|6l zaierl%c)DJo9)8dEdD47zu8PYjU{*i12~DL_ymLa5sNU8ZB~X=*oK`r0}py0$6St2 z;c~OMC27=f;y%{mSIomwo;rh-n1i=)G2Tbb?E@C#CoI69xD>Ovc?qsSO|%;qVjouH zVbAMW#`yMvhHm_Zih!T#(X=HvA8Sw@Y{p6)KnG8vB5)1o;zLvfUZEoJ1!tq5)i_v! ztk_z;<6fN2_!g(3l_#(n?_x22M}lG5#Gl1k0qQt_8n7H43}OVg<343pF4O=~Y{Uev$497{YgUY9<;b&Ek6L*r zYUNu|5!{8Ncm$8(FI3165*9sw9JS@=QIU;bqM;6NdKVseK1TA-o}(uA1~uR>Bo)$8 z)4&>3d#tjCs!mmO?>egbR#`?>L{-*i&_d(3(K}E$R(ov+*^zWoDq~fYV6{~3pNigb zC7D*GqK}OxtZ1s}o3MyFkE+*ps;r`+h-lk_djGXw3bjf))Tr-3164WEK~=~$QAzA{ zg4UxFi~LKMR?jJvGtE;6o<3Akswg+~MpS48dIQ*|^gB&-jW4iSs@Xr_n==@8I^9St z>JB^Ip~&E9XfS;CTu!CW>Fhe2%IR(Daig(N-*DLJa{EU|!jYKM5$)eIG!}NYxY3bN z%>KV&OKN8BAzxl&T|h;a_P8-u13oRU04BSBtG=_Tq8S-bQI8@_X)OgdV`)5)2 z&7m?gk9o>tmN@xV#Y#~R&XG^m`YYU;#;*Swa?V zRF;GL)CA9=YMnz(Y!F*<6jk#gsw7`frTdK? z=%-%tI7V>VYYY;|%JHS+%bdp~~+$Ow&J% zhp>p6*iYnE_$ELZq(Lz`Uhw#iYnerJ4g$b9=iG+ r1&=peNP2rqGu~l`FBMOx!|7C4GF3X^54s9N!REqb@Mftm^wRMkHc@o2 diff --git a/apps/converter/locale/es/LC_MESSAGES/django.po b/apps/converter/locale/es/LC_MESSAGES/django.po index 68d184d9c0..710d29bd7a 100644 --- a/apps/converter/locale/es/LC_MESSAGES/django.po +++ b/apps/converter/locale/es/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n" "POT-Creation-Date: 2011-11-22 11:26-0400\n" -"PO-Revision-Date: 2011-11-22 21:01+0000\n" +"PO-Revision-Date: 2011-12-06 06:17+0000\n" "Last-Translator: rosarior \n" "Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/mayan-edms/team/es/)\n" "MIME-Version: 1.0\n" @@ -557,11 +557,11 @@ msgstr "" #: literals.py:205 literals.py:206 msgid "Photo CD" -msgstr "" +msgstr "Photo CD" #: literals.py:207 msgid "Page Control Language" -msgstr "" +msgstr "Page Control Language" #: literals.py:208 literals.py:221 msgid "Apple Macintosh QuickDraw/PICT" @@ -577,11 +577,11 @@ msgstr "" #: literals.py:211 msgid "Portable Document Format" -msgstr "" +msgstr "Formato portatil de documento" #: literals.py:212 msgid "Portable Document Archive Format" -msgstr "" +msgstr "Format portatil de archivo de documento" #: literals.py:213 msgid "Pentax Electronic File" diff --git a/apps/django_gpg/locale/en/LC_MESSAGES/django.po b/apps/django_gpg/locale/en/LC_MESSAGES/django.po index 22a9e34631..bb2d01367b 100644 --- a/apps/django_gpg/locale/en/LC_MESSAGES/django.po +++ b/apps/django_gpg/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-12-05 13:40-0400\n" +"POT-Creation-Date: 2011-12-06 02:06-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -29,7 +29,7 @@ msgstr "" msgid "Delete keys" msgstr "" -#: __init__.py:17 __init__.py:32 +#: __init__.py:17 msgid "Query keyservers" msgstr "" @@ -37,75 +37,99 @@ msgstr "" msgid "Import key from keyservers" msgstr "" -#: __init__.py:21 +#: __init__.py:19 +msgid "Upload detached signatures" +msgstr "" + +#: __init__.py:20 +msgid "Download detached signatures" +msgstr "" + +#: __init__.py:23 msgid "Signatures" msgstr "" -#: __init__.py:29 views.py:65 +#: __init__.py:39 views.py:67 msgid "private keys" msgstr "" -#: __init__.py:30 views.py:68 +#: __init__.py:40 views.py:70 msgid "public keys" msgstr "" -#: __init__.py:31 +#: __init__.py:41 msgid "delete" msgstr "" -#: __init__.py:33 -msgid "Import" +#: __init__.py:42 +msgid "query keyservers" msgstr "" -#: __init__.py:36 +#: __init__.py:43 +msgid "import" +msgstr "" + +#: __init__.py:44 +msgid "upload signature" +msgstr "" + +#: __init__.py:45 +msgid "download signature" +msgstr "" + +#: __init__.py:46 +msgid "key management" +msgstr "" + +#: __init__.py:49 msgid "signatures" msgstr "" -#: api.py:20 +#: api.py:22 msgid "Public" msgstr "" -#: api.py:21 +#: api.py:23 msgid "Secret" msgstr "" -#: api.py:29 api.py:34 +#: api.py:31 api.py:36 msgid "RSA" msgstr "" -#: api.py:30 +#: api.py:32 msgid "DSA" msgstr "" -#: api.py:35 +#: api.py:37 msgid "Elgamal" msgstr "" -#: api.py:49 +#: api.py:51 msgid "Bad signature." msgstr "" -#: api.py:53 +#: api.py:55 msgid "Document not signed or invalid signature." msgstr "" -#: api.py:57 +#: api.py:59 msgid "Signature error." msgstr "" -#: api.py:61 +#: api.py:63 msgid "Document is signed but no public key is available for verification." msgstr "" -#: api.py:65 +#: api.py:67 msgid "Document is signed, and signature is good." msgstr "" -#: api.py:69 +#: api.py:71 msgid "Document is signed with a valid signature." msgstr "" -#: api.py:142 +#: api.py:144 msgid "unknown" msgstr "" @@ -117,43 +141,47 @@ msgstr "" msgid "Name, e-mail, key ID or key fingerprint to look for." msgstr "" -#: views.py:43 +#: forms.py:18 +msgid "Signature file" +msgstr "" + +#: views.py:45 #, python-format msgid "Key: %s, imported successfully." msgstr "" -#: views.py:46 +#: views.py:48 #, python-format msgid "Unable to import key id: %s" msgstr "" -#: views.py:50 +#: views.py:52 msgid "Import key" msgstr "" -#: views.py:51 +#: views.py:53 #, python-format msgid "Are you sure you wish to import key id: %s?" msgstr "" -#: views.py:76 +#: views.py:78 msgid "Key ID" msgstr "" -#: views.py:80 +#: views.py:82 msgid "Owner" msgstr "" -#: views.py:100 +#: views.py:102 #, python-format msgid "Key: %s, deleted successfully." msgstr "" -#: views.py:107 +#: views.py:109 msgid "Delete key" msgstr "" -#: views.py:109 +#: views.py:111 #, python-format msgid "" "Are you sure you wish to delete key: %s? If you try to delete a public key " @@ -161,47 +189,47 @@ msgid "" "well." msgstr "" -#: views.py:127 +#: views.py:129 msgid "Query key server" msgstr "" -#: views.py:140 +#: views.py:142 msgid "results" msgstr "" -#: views.py:145 +#: views.py:147 msgid "ID" msgstr "" -#: views.py:149 +#: views.py:151 msgid "type" msgstr "" -#: views.py:153 +#: views.py:155 msgid "creation date" msgstr "" -#: views.py:157 +#: views.py:159 msgid "disabled" msgstr "" -#: views.py:161 +#: views.py:163 msgid "expiration date" msgstr "" -#: views.py:165 +#: views.py:167 msgid "expired" msgstr "" -#: views.py:169 +#: views.py:171 msgid "length" msgstr "" -#: views.py:173 +#: views.py:175 msgid "revoked" msgstr "" -#: views.py:178 +#: views.py:180 msgid "Identifies" msgstr "" @@ -248,6 +276,15 @@ msgstr "" msgid "signature properties for: %s" msgstr "" +#: views.py:250 +msgid "Detached signature uploaded successfully." +msgstr "" + +#: views.py:259 +#, python-format +msgid "Upload detached signature for: %s" +msgstr "" + #: conf/settings.py:13 msgid "List of keyservers to be queried for unknown keys." msgstr "" diff --git a/apps/django_gpg/locale/es/LC_MESSAGES/django.mo b/apps/django_gpg/locale/es/LC_MESSAGES/django.mo index 578eb2056ebd7f32b40858bf2e750d814c96c4ac..e37a8ed1ed4f0dded084e479b950eef99e3cd029 100644 GIT binary patch literal 4842 zcma);Ux;K!6~;@AM#rcz(Wpt(T9fR~WT(4l#&unLcQ%>bnZY4DyPKWapde!Pz17{7 zxqYjxx_5eeUxa`VAA$<5hy+YDXaXS+)R!QLHVQth7{RB-MFWDMLLPilAN;<$_jdQ} z&We|={@p)Sr_MQb&Z)Y7*KJn>t`)TV(H?xO5T6I@L}-HlK0(Sd|wASUmwIzJcB<>Ev|r+_nneI0Pn@~ zD>K(5CHkam9&IQS*-Aowi!esBbG-amkhgFk}Q|4$%(;_vul{QVoe2Rwwy>7SFJ1Rn=K z0Xpy;cm-^Oe*x*IGcbn!-2!R%7rco(;)SH4ung^2;_Xf1u5^(AochwNc-OesmFgn zgo3yOoj(BH19HB@C69odcNygPvmnPkQNC}3)MEg0-fw{%|2^=d;EN#V|24=sxC(Oq z-}A=uFEUJ#5N{{3B9sv_r?t4W~XU+0R>viP%qOU6o1WWnZ~W z+P17dHu}!&DhTT<f#pN&VKUnO@&w1`alH&`z9EvGk^s zstk72#p>3ISRETMb?b4Tsi>=`y34$uSQYbC9!1*wcAg|d2(eM#(`hh?veBWHXEL?Z zHp5)Ct4yL=iI#2ai=&ilj7<+f>R<@n((c@k_Sm?!La6ZNr z;2Q9joF6abUT=;+7pr%Zx6c?Kf@Wtt2g3|;@#P#IMRz(kPj^x~NP{AEaaQ&8ywtTG z{68PUVPlnkfC$+(X-7N68P*SS5^HxTp)Sr1Qtia~5VhiQ$R39Ngum7Nz5Nn1K{ zIulz}e8KQw@#KYejBSe&~2H4RHqpZ^{XAF+}w~3r{~3qi@y2izgVxLm5{o!1xcjg-=Eg!U70* zC4{+*k=&vv7(fwdA~v4N#UjRvg%}(Q5xUpXF)~i*OMT;}goJ0jFU%2K$(~A8M>7#c zqSH>+6;sv2i%I?Qf}s+Yvsyi;eV$}qIK69kAa<+)Dv<4Kmm%QC?ihdcf-51)U=u}o zn3NZB-q|O0l+`xk8vNvu=uNq)hANe7tD9Rh7c|RLZPRy5TsxI_d~Mq{WjD+E%|@ex z?9W^E$o3k}dgY9DjULA~jQ6?rGw083*G`v?t*yebO}VtNxL8|Usx2Iq3ro#~qqT)2 z3k&F2yP$Usr{AaF(dOcj!wa}(&M2SNww+3SqB5?0HLpD3YzscH_3}-x{CtuNJ6ouTjtPx(f_ zFtVoOo^NE3)X=^$H?z61xi<0PVtrxev`sTCb!|K30#l^XPn1cI%c!fI*V*#L?e*HR zNk7il)~>deMm9#$H|4RG$;N6oC4HLYP9?Q<>v~ASv>zV*^3rix+%C_i^1!lOoSPB9 z{P`NvOM2bOon`Go0(q@u%Q~l=Oq5I#wHp!=d*YUnFc|$~UG>P*vWx7GUgOrNf)vCV zw?&FW72|#N-4@$pj3PB2$?Y+w7H;%>AsA1{`j#2Jgk9xUN)}mjqncvfxSpzZ2Zike zHSJVs4~^OLz->V)7j?}p4*@8o9NdN@eBLt9QeQF|B9{q?ofe(PMWPFh*&_@AkzkhF zWmgRguT>_)U&i-sYPe~_71#~ST{AMHAH%@^B^9!uPtdBGFl>8p*#A9{B@}^y{amMD zreZtURfEoz4W%{H-qSu(u2XoqZF=hFeKf{tqS{E=FF1K4?5owIr*9MMxyHM28Y)$I z!>$-wZpRT6bL02esKfnK42m;VG|rFXWbXn^btuCFp>#tRY`r0b_tOPO6}*-?ll?N( z32}^k$mxZ`G-~c6o7%|4%41))y_Uny92=*ju%c8uLd0o=PlD3vu*xQ~^Ekg1=Z?LG zaue_7I0Q0KP%#yP4Bn!tP^Xw0>y_)#t5%#Z(@daru-Zeb%8v0UFFvaxSkW52=8@CT zQexq&ZhKrm+3?lG-ys^pp1H=Io^r!09#Z#aieULb>{H(|OfhbsZGYSJC;1gbuQR57 zk*&xr9v8gW9=+sxCbeQ+qX5dG>{_S7m$McI;3$g8%7q;lknnvA>FUZv!AU$6ALiQB zN7kxf2aoFPAi}4UyJ!cU@R=upu+XBYlcJJ`z)(>Zs+nMr z6p0h$3LMRJ$02Pea*E?XA*r~>*Q%-soCNffg=>p6K}A#yfe;x8%%W`i@pBm&ULZJc u9U8?UfuSAF2?#}nBZlqc(8)X=FLtO@!Fz>YM1~~{R+XVISRqT7i~j;yY#v$w delta 754 zcmYk(O=}ZT6vpuz+a_t!ByCzP*1lu}L5SAZqE*-?$qe(N28FI% zD_nJ@bR&oh7vcx#A}hsR7cPW+0Nv91yBJZbo5MQy1->?s-wi%N{2lKcO(|8;w@H9^2WgNgZ4&xfC{t>GFG4``;)_GCk z3mn7^EZ{p-YM!%3oCP(*A9I}M7+Q*^>PH+mgH9{zEjA@oa3PbU%(Xe zw{F8Fwn7^fW8^5QfjWc+=oV_Yoz&l@UrSLWHBikJYR;L=h`tcIwSKw3u@JhIwx3j@ zB(%>4igqzQ>eMbRn3~&gW4Ch4ZU6TgnWbjnhp~N~nX%o>WZ&|gmVKVxS@dqU>Twdf zky&xWrhPeh@<0%Jx9hzQkqMHk4ey$|MTT8TBaTe;uPAN@wv)S;nX4Q+GJo`-UCcXr zKQ=#i_-!+PK4q^I#_fZ`Otv?^9@?M9{q|zXN!Jp$^TxM#hi6M?y|7v50G(H1(`)&5 YePqe5mYwn5y!v%NGBPx# diff --git a/apps/django_gpg/locale/es/LC_MESSAGES/django.po b/apps/django_gpg/locale/es/LC_MESSAGES/django.po index 9d384e4241..7517475856 100644 --- a/apps/django_gpg/locale/es/LC_MESSAGES/django.po +++ b/apps/django_gpg/locale/es/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n" -"POT-Creation-Date: 2011-12-05 13:40-0400\n" -"PO-Revision-Date: 2011-12-05 17:52+0000\n" +"POT-Creation-Date: 2011-12-06 02:06-0400\n" +"PO-Revision-Date: 2011-12-06 06:14+0000\n" "Last-Translator: rosarior \n" "Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/mayan-edms/team/es/)\n" "MIME-Version: 1.0\n" @@ -30,7 +30,7 @@ msgstr "Ver llaves" msgid "Delete keys" msgstr "Borrar llaves" -#: __init__.py:17 __init__.py:32 +#: __init__.py:17 msgid "Query keyservers" msgstr "Hacer búsquedas en servidores de llaves" @@ -38,77 +38,103 @@ msgstr "Hacer búsquedas en servidores de llaves" msgid "Import key from keyservers" msgstr "Importar llaves de los servidores de llaves" -#: __init__.py:21 +#: __init__.py:19 +msgid "Upload detached signatures" +msgstr "Subir una firma a parte" + +#: __init__.py:20 +msgid "Download detached signatures" +msgstr "Descargar la fima" + +#: __init__.py:23 msgid "Signatures" msgstr "Firmas" -#: __init__.py:29 views.py:65 +#: __init__.py:39 views.py:67 msgid "private keys" msgstr "llaves privadas" -#: __init__.py:30 views.py:68 +#: __init__.py:40 views.py:70 msgid "public keys" msgstr "llaves públicas" -#: __init__.py:31 +#: __init__.py:41 msgid "delete" msgstr "borrar" -#: __init__.py:33 -msgid "Import" -msgstr "Importar" +#: __init__.py:42 +msgid "query keyservers" +msgstr "consultar servidor de llaves" -#: __init__.py:36 +#: __init__.py:43 +msgid "import" +msgstr "importar" + +#: __init__.py:44 +msgid "upload signature" +msgstr "subir firma" + +#: __init__.py:45 +msgid "download signature" +msgstr "descargar firma" + +#: __init__.py:46 +msgid "key management" +msgstr "manejo de llaves" + +#: __init__.py:49 msgid "signatures" msgstr "firmas" -#: api.py:20 +#: api.py:22 msgid "Public" -msgstr "" +msgstr "Pública" -#: api.py:21 +#: api.py:23 msgid "Secret" -msgstr "" +msgstr "Secreta" -#: api.py:29 api.py:34 +#: api.py:31 api.py:36 msgid "RSA" msgstr "RSA" -#: api.py:30 +#: api.py:32 msgid "DSA" msgstr "DSA" -#: api.py:35 +#: api.py:37 msgid "Elgamal" -msgstr "" +msgstr "Elgamal" -#: api.py:49 +#: api.py:51 msgid "Bad signature." -msgstr "" +msgstr "Firma invalida." -#: api.py:53 +#: api.py:55 msgid "Document not signed or invalid signature." -msgstr "" +msgstr "Documento no firmado o firma invalida." -#: api.py:57 +#: api.py:59 msgid "Signature error." -msgstr "" +msgstr "Error de firma." -#: api.py:61 +#: api.py:63 msgid "Document is signed but no public key is available for verification." msgstr "" +"El document ha sido firmado pero no hay llave pública disponible para " +"verificación." -#: api.py:65 +#: api.py:67 msgid "Document is signed, and signature is good." -msgstr "" +msgstr "El document ha sido firmado y la firma esta es buen estado." -#: api.py:69 +#: api.py:71 msgid "Document is signed with a valid signature." -msgstr "" +msgstr "El document ha sido firmado y la firma ha sido validada." -#: api.py:142 +#: api.py:144 msgid "unknown" -msgstr "" +msgstr "desconocida" #: forms.py:11 msgid "Term" @@ -117,140 +143,160 @@ msgstr "Término" #: forms.py:12 msgid "Name, e-mail, key ID or key fingerprint to look for." msgstr "" +"Nombre, dirección de correo electrónico, identificador de llave or huella " +"digital de llave a buscar." -#: views.py:43 +#: forms.py:18 +msgid "Signature file" +msgstr "Archivo de firma" + +#: views.py:45 #, python-format msgid "Key: %s, imported successfully." -msgstr "" +msgstr "Llave: %s, importada exitosamente." -#: views.py:46 +#: views.py:48 #, python-format msgid "Unable to import key id: %s" -msgstr "" +msgstr "No se pudo importa la llave: %s" -#: views.py:50 +#: views.py:52 msgid "Import key" -msgstr "" +msgstr "Importar llave" -#: views.py:51 +#: views.py:53 #, python-format msgid "Are you sure you wish to import key id: %s?" msgstr "¿Esta seguro que desea importar la llave: %s?" -#: views.py:76 +#: views.py:78 msgid "Key ID" -msgstr "" +msgstr "Identificador de llave" -#: views.py:80 +#: views.py:82 msgid "Owner" msgstr "Dueño" -#: views.py:100 +#: views.py:102 #, python-format msgid "Key: %s, deleted successfully." msgstr "Llave: %s, borrada exitosamente." -#: views.py:107 +#: views.py:109 msgid "Delete key" msgstr "Borrar llave" -#: views.py:109 +#: views.py:111 #, python-format msgid "" "Are you sure you wish to delete key: %s? If you try to delete a public key " "that is part of a public/private pair the private key will be deleted as " "well." msgstr "" +"¿Esta seguro que desea borrar la llave: %s? Si trata de borrar una llave " +"pública que es parte de un par público/privado la llave privada será borrada" +" también." -#: views.py:127 +#: views.py:129 msgid "Query key server" -msgstr "" +msgstr "Consultar servidor de llaves" -#: views.py:140 +#: views.py:142 msgid "results" msgstr "resultados" -#: views.py:145 +#: views.py:147 msgid "ID" -msgstr "" +msgstr "ID" -#: views.py:149 +#: views.py:151 msgid "type" msgstr "tipo" -#: views.py:153 +#: views.py:155 msgid "creation date" msgstr "fecha de creación" -#: views.py:157 +#: views.py:159 msgid "disabled" -msgstr "" +msgstr "desactivada" -#: views.py:161 +#: views.py:163 msgid "expiration date" -msgstr "" +msgstr "fecha de expiración" -#: views.py:165 +#: views.py:167 msgid "expired" -msgstr "" +msgstr "expirada" -#: views.py:169 +#: views.py:171 msgid "length" -msgstr "" +msgstr "tamaño" -#: views.py:173 +#: views.py:175 msgid "revoked" -msgstr "" +msgstr "revocada" -#: views.py:178 +#: views.py:180 msgid "Identifies" -msgstr "" +msgstr "Identidades" #: views.py:205 #, python-format msgid "Signature status: %(widget)s %(text)s" -msgstr "" +msgstr "Estado de la firma: %(widget)s %(text)s" #: views.py:212 msgid "embedded" -msgstr "" +msgstr "integrada" #: views.py:214 msgid "detached" -msgstr "" +msgstr "a parte" #: views.py:219 #, python-format msgid "Signature ID: %s" -msgstr "" +msgstr "ID de la firma: %s" #: views.py:220 #, python-format msgid "Signature type: %s" -msgstr "" +msgstr "Tipo de firma: %s" #: views.py:221 #, python-format msgid "Key ID: %s" -msgstr "" +msgstr "ID de la llave: %s" #: views.py:222 #, python-format msgid "Timestamp: %s" -msgstr "" +msgstr "Fecha y hora: %s" #: views.py:223 #, python-format msgid "Signee: %s" -msgstr "" +msgstr "Firmantes: %s" #: views.py:228 #, python-format msgid "signature properties for: %s" -msgstr "" +msgstr "propiedades de firma para: %s" + +#: views.py:250 +msgid "Detached signature uploaded successfully." +msgstr "El archivo de firma fue subido exitosamente." + +#: views.py:259 +#, python-format +msgid "Upload detached signature for: %s" +msgstr "Subir firma a parte para: %s" #: conf/settings.py:13 msgid "List of keyservers to be queried for unknown keys." msgstr "" +"Lista de servidores de llaves a ser utilizados para buscar llaves " +"desconocidas." diff --git a/apps/django_gpg/locale/pt/LC_MESSAGES/django.mo b/apps/django_gpg/locale/pt/LC_MESSAGES/django.mo index 7fae94e56b671cf8420121b6a06c89cdcdbb91eb..9aea042e15ed1726fc95360f0144fddecdfc5543 100644 GIT binary patch delta 72 zcmeBSdCELNg>m&nRZkVJ0RIqO=c3falFa-(U6;g?R4WA|14BbyLnB=SGX(=9D+9BM bI}h^sB<7`;CZ+>r3rZ$eGDc5+$fykfEixAB delta 85 zcmaFL+`}?Kh4IovRZsPdl9B=|ef{*zl8n+Mz2y8{{i6Kh#G=gnBK_RN%EUbV%;MtG p)Z&SGvh1b`hQ?MV1`{V8oSeWI#qE=rmtLBfo@%8~FnI@~E&wN<9y|a5 diff --git a/apps/django_gpg/locale/pt/LC_MESSAGES/django.po b/apps/django_gpg/locale/pt/LC_MESSAGES/django.po index 00d912b06e..7b89397c22 100644 --- a/apps/django_gpg/locale/pt/LC_MESSAGES/django.po +++ b/apps/django_gpg/locale/pt/LC_MESSAGES/django.po @@ -1,20 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" -"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n" -"POT-Creation-Date: 2011-12-05 13:40-0400\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-12-06 02:06-0400\n" "PO-Revision-Date: 2011-12-05 17:43+0000\n" "Last-Translator: rosarior \n" -"Language-Team: Portuguese (http://www.transifex.net/projects/p/mayan-edms/team/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.net/projects/p/mayan-edms/" +"team/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" #: __init__.py:14 @@ -29,7 +30,7 @@ msgstr "" msgid "Delete keys" msgstr "" -#: __init__.py:17 __init__.py:32 +#: __init__.py:17 msgid "Query keyservers" msgstr "" @@ -37,75 +38,99 @@ msgstr "" msgid "Import key from keyservers" msgstr "" -#: __init__.py:21 +#: __init__.py:19 +msgid "Upload detached signatures" +msgstr "" + +#: __init__.py:20 +msgid "Download detached signatures" +msgstr "" + +#: __init__.py:23 msgid "Signatures" msgstr "" -#: __init__.py:29 views.py:65 +#: __init__.py:39 views.py:67 msgid "private keys" msgstr "" -#: __init__.py:30 views.py:68 +#: __init__.py:40 views.py:70 msgid "public keys" msgstr "" -#: __init__.py:31 +#: __init__.py:41 msgid "delete" msgstr "" -#: __init__.py:33 -msgid "Import" +#: __init__.py:42 +msgid "query keyservers" msgstr "" -#: __init__.py:36 +#: __init__.py:43 +msgid "import" +msgstr "" + +#: __init__.py:44 +msgid "upload signature" +msgstr "" + +#: __init__.py:45 +msgid "download signature" +msgstr "" + +#: __init__.py:46 +msgid "key management" +msgstr "" + +#: __init__.py:49 msgid "signatures" msgstr "" -#: api.py:20 +#: api.py:22 msgid "Public" msgstr "" -#: api.py:21 +#: api.py:23 msgid "Secret" msgstr "" -#: api.py:29 api.py:34 +#: api.py:31 api.py:36 msgid "RSA" msgstr "" -#: api.py:30 +#: api.py:32 msgid "DSA" msgstr "" -#: api.py:35 +#: api.py:37 msgid "Elgamal" msgstr "" -#: api.py:49 +#: api.py:51 msgid "Bad signature." msgstr "" -#: api.py:53 +#: api.py:55 msgid "Document not signed or invalid signature." msgstr "" -#: api.py:57 +#: api.py:59 msgid "Signature error." msgstr "" -#: api.py:61 +#: api.py:63 msgid "Document is signed but no public key is available for verification." msgstr "" -#: api.py:65 +#: api.py:67 msgid "Document is signed, and signature is good." msgstr "" -#: api.py:69 +#: api.py:71 msgid "Document is signed with a valid signature." msgstr "" -#: api.py:142 +#: api.py:144 msgid "unknown" msgstr "" @@ -117,43 +142,47 @@ msgstr "" msgid "Name, e-mail, key ID or key fingerprint to look for." msgstr "" -#: views.py:43 +#: forms.py:18 +msgid "Signature file" +msgstr "" + +#: views.py:45 #, python-format msgid "Key: %s, imported successfully." msgstr "" -#: views.py:46 +#: views.py:48 #, python-format msgid "Unable to import key id: %s" msgstr "" -#: views.py:50 +#: views.py:52 msgid "Import key" msgstr "" -#: views.py:51 +#: views.py:53 #, python-format msgid "Are you sure you wish to import key id: %s?" msgstr "" -#: views.py:76 +#: views.py:78 msgid "Key ID" msgstr "" -#: views.py:80 +#: views.py:82 msgid "Owner" msgstr "" -#: views.py:100 +#: views.py:102 #, python-format msgid "Key: %s, deleted successfully." msgstr "" -#: views.py:107 +#: views.py:109 msgid "Delete key" msgstr "" -#: views.py:109 +#: views.py:111 #, python-format msgid "" "Are you sure you wish to delete key: %s? If you try to delete a public key " @@ -161,47 +190,47 @@ msgid "" "well." msgstr "" -#: views.py:127 +#: views.py:129 msgid "Query key server" msgstr "" -#: views.py:140 +#: views.py:142 msgid "results" msgstr "" -#: views.py:145 +#: views.py:147 msgid "ID" msgstr "" -#: views.py:149 +#: views.py:151 msgid "type" msgstr "" -#: views.py:153 +#: views.py:155 msgid "creation date" msgstr "" -#: views.py:157 +#: views.py:159 msgid "disabled" msgstr "" -#: views.py:161 +#: views.py:163 msgid "expiration date" msgstr "" -#: views.py:165 +#: views.py:167 msgid "expired" msgstr "" -#: views.py:169 +#: views.py:171 msgid "length" msgstr "" -#: views.py:173 +#: views.py:175 msgid "revoked" msgstr "" -#: views.py:178 +#: views.py:180 msgid "Identifies" msgstr "" @@ -248,8 +277,15 @@ msgstr "" msgid "signature properties for: %s" msgstr "" +#: views.py:250 +msgid "Detached signature uploaded successfully." +msgstr "" + +#: views.py:259 +#, python-format +msgid "Upload detached signature for: %s" +msgstr "" + #: conf/settings.py:13 msgid "List of keyservers to be queried for unknown keys." msgstr "" - - diff --git a/apps/django_gpg/locale/ru/LC_MESSAGES/django.mo b/apps/django_gpg/locale/ru/LC_MESSAGES/django.mo index 2541ca14bf8115e61ff6ea7c4a17ae73c7952fb8..93a6b8285844a1db89bc56a295db00cb4da1c6ae 100644 GIT binary patch delta 73 zcmcc2vW8`X3ezXXiE17yTmk+ey3R$Zi6xo&dAcr%C8<^lMh1q4x`sx&24)HdMpg!9 c6L;?8@kz`}FHKAb$`+MQE@O$$L^TifjFOT9D}DX+%#w`KB)#PPT>YZ_;>4oN{389_#LC1x{mkOx r($wOKd9v)L3Wmm3CI%BH?VB9S7{%k0n3rCfn4W5-P*gg38)F#&6*eAD diff --git a/apps/django_gpg/locale/ru/LC_MESSAGES/django.po b/apps/django_gpg/locale/ru/LC_MESSAGES/django.po index 54d387774b..fdc8b3cca2 100644 --- a/apps/django_gpg/locale/ru/LC_MESSAGES/django.po +++ b/apps/django_gpg/locale/ru/LC_MESSAGES/django.po @@ -1,21 +1,23 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" -"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n" -"POT-Creation-Date: 2011-12-05 13:40-0400\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-12-06 02:06-0400\n" "PO-Revision-Date: 2011-12-05 17:43+0000\n" "Last-Translator: rosarior \n" -"Language-Team: Russian (http://www.transifex.net/projects/p/mayan-edms/team/ru/)\n" +"Language-Team: Russian (http://www.transifex.net/projects/p/mayan-edms/team/" +"ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"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" +"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" #: __init__.py:14 msgid "Verify document signatures" @@ -29,7 +31,7 @@ msgstr "" msgid "Delete keys" msgstr "" -#: __init__.py:17 __init__.py:32 +#: __init__.py:17 msgid "Query keyservers" msgstr "" @@ -37,75 +39,99 @@ msgstr "" msgid "Import key from keyservers" msgstr "" -#: __init__.py:21 +#: __init__.py:19 +msgid "Upload detached signatures" +msgstr "" + +#: __init__.py:20 +msgid "Download detached signatures" +msgstr "" + +#: __init__.py:23 msgid "Signatures" msgstr "" -#: __init__.py:29 views.py:65 +#: __init__.py:39 views.py:67 msgid "private keys" msgstr "" -#: __init__.py:30 views.py:68 +#: __init__.py:40 views.py:70 msgid "public keys" msgstr "" -#: __init__.py:31 +#: __init__.py:41 msgid "delete" msgstr "" -#: __init__.py:33 -msgid "Import" +#: __init__.py:42 +msgid "query keyservers" msgstr "" -#: __init__.py:36 +#: __init__.py:43 +msgid "import" +msgstr "" + +#: __init__.py:44 +msgid "upload signature" +msgstr "" + +#: __init__.py:45 +msgid "download signature" +msgstr "" + +#: __init__.py:46 +msgid "key management" +msgstr "" + +#: __init__.py:49 msgid "signatures" msgstr "" -#: api.py:20 +#: api.py:22 msgid "Public" msgstr "" -#: api.py:21 +#: api.py:23 msgid "Secret" msgstr "" -#: api.py:29 api.py:34 +#: api.py:31 api.py:36 msgid "RSA" msgstr "" -#: api.py:30 +#: api.py:32 msgid "DSA" msgstr "" -#: api.py:35 +#: api.py:37 msgid "Elgamal" msgstr "" -#: api.py:49 +#: api.py:51 msgid "Bad signature." msgstr "" -#: api.py:53 +#: api.py:55 msgid "Document not signed or invalid signature." msgstr "" -#: api.py:57 +#: api.py:59 msgid "Signature error." msgstr "" -#: api.py:61 +#: api.py:63 msgid "Document is signed but no public key is available for verification." msgstr "" -#: api.py:65 +#: api.py:67 msgid "Document is signed, and signature is good." msgstr "" -#: api.py:69 +#: api.py:71 msgid "Document is signed with a valid signature." msgstr "" -#: api.py:142 +#: api.py:144 msgid "unknown" msgstr "" @@ -117,43 +143,47 @@ msgstr "" msgid "Name, e-mail, key ID or key fingerprint to look for." msgstr "" -#: views.py:43 +#: forms.py:18 +msgid "Signature file" +msgstr "" + +#: views.py:45 #, python-format msgid "Key: %s, imported successfully." msgstr "" -#: views.py:46 +#: views.py:48 #, python-format msgid "Unable to import key id: %s" msgstr "" -#: views.py:50 +#: views.py:52 msgid "Import key" msgstr "" -#: views.py:51 +#: views.py:53 #, python-format msgid "Are you sure you wish to import key id: %s?" msgstr "" -#: views.py:76 +#: views.py:78 msgid "Key ID" msgstr "" -#: views.py:80 +#: views.py:82 msgid "Owner" msgstr "" -#: views.py:100 +#: views.py:102 #, python-format msgid "Key: %s, deleted successfully." msgstr "" -#: views.py:107 +#: views.py:109 msgid "Delete key" msgstr "" -#: views.py:109 +#: views.py:111 #, python-format msgid "" "Are you sure you wish to delete key: %s? If you try to delete a public key " @@ -161,47 +191,47 @@ msgid "" "well." msgstr "" -#: views.py:127 +#: views.py:129 msgid "Query key server" msgstr "" -#: views.py:140 +#: views.py:142 msgid "results" msgstr "" -#: views.py:145 +#: views.py:147 msgid "ID" msgstr "" -#: views.py:149 +#: views.py:151 msgid "type" msgstr "" -#: views.py:153 +#: views.py:155 msgid "creation date" msgstr "" -#: views.py:157 +#: views.py:159 msgid "disabled" msgstr "" -#: views.py:161 +#: views.py:163 msgid "expiration date" msgstr "" -#: views.py:165 +#: views.py:167 msgid "expired" msgstr "" -#: views.py:169 +#: views.py:171 msgid "length" msgstr "" -#: views.py:173 +#: views.py:175 msgid "revoked" msgstr "" -#: views.py:178 +#: views.py:180 msgid "Identifies" msgstr "" @@ -248,8 +278,15 @@ msgstr "" msgid "signature properties for: %s" msgstr "" +#: views.py:250 +msgid "Detached signature uploaded successfully." +msgstr "" + +#: views.py:259 +#, python-format +msgid "Upload detached signature for: %s" +msgstr "" + #: conf/settings.py:13 msgid "List of keyservers to be queried for unknown keys." msgstr "" - - From ac1c1ff6a4154b8b995ccdf83fc0157ff0a2a4b5 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Tue, 6 Dec 2011 03:22:14 -0400 Subject: [PATCH 13/27] Documentation update --- docs/changelog.rst | 45 ++++++++++++++++++++++--------------------- docs/conf.py | 4 ++-- docs/credits.rst | 10 ++++++++++ docs/features.rst | 43 +++++++++++++++++++++++++++++++++++++++-- docs/index.rst | 1 - docs/requirements.rst | 1 + docs/settings.rst | 35 ++++++++++++++++++++++++++++----- 7 files changed, 107 insertions(+), 32 deletions(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index d04f4b2407..80d0787351 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -1,19 +1,22 @@ -2011-12-2 ---------- -* Added migrations and model updated to support document versions - -2011-12-1 ---------- -* OCR queue processing improvements -* Office documents handling improvements -* Text extraction support for office documents -* RTF text documents are now handled as office documents +Version 0.11 +------------ +* Support for signed documents verification added, embedded and detached + signatures are supported. When verifying a document Mayan EDMS will + try to fetch the public key from the list of keyservers provided in the + configuration option SIGNATURES_KEYSERVERS (which defaults to + 'pool.sks-keyservers.net'). A public key management view has been added + to the setup menu as well as a key query and fetching view to manually + import keys from a keyserver. +* Added support for document versions. Users can upload unlimited amount + of versions for a document using a very flexible document version numbering + system, users can also revert to a previous document version. +* OCR queue processing improvements. +* Office documents handling improvements. +* Text extraction support for office documents. +* RTF text documents are now handled as office documents. * Added a view to delete the document image cache, useful when switching - converter backends or doing diagnostics - -2011-11-30 ----------- -* Added South to the requirements + converter backends or doing diagnostics. +* Added South to the requirements. * Merged documents' filename and extension database fiels into a single filename field, filename are store as uploaded not manipulation is done Users with existing data must install South and run the appropiate @@ -22,16 +25,11 @@ $ ./manager syncdb $ ./manage.py migrate documents 0001 --fake $ ./manage.py migrate documents - * Added new office document mimetype * application/vnd.ms-office - * Fixed documents not saving the file encoding - - -2011-11-28 ----------- -* Removed extra slash in ajax-loader.gif URL fixes #15, thanks to IHLeanne for finding this one +* Removed extra slash in ajax-loader.gif URL fixes #15, thanks to + IHLeanne for finding this one Version 0.10.1 @@ -41,6 +39,9 @@ Version 0.10.1 $ pip install --upgrade -r requirements/production.txt to upgrade + +* django-compressor is now disabled by default, users must explicitly + enable it adding COMPRESS_ENABLED=True to their settings_local.py file Version 0.10 diff --git a/docs/conf.py b/docs/conf.py index 2b9ba3a5ff..cb26e3e359 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -48,10 +48,10 @@ copyright = u'2011, Roberto Rosario' # built documents. # # The short X.Y version. -version = '0.10.1' +version = '0.11' # The full version, including alpha/beta/rc tags. -release = '0.10' +release = '0.11' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/docs/credits.rst b/docs/credits.rst index d56f2c0d93..e0b3e815d6 100644 --- a/docs/credits.rst +++ b/docs/credits.rst @@ -112,3 +112,13 @@ Credits * http://pypi.python.org/pypi/django-taggit * Image 392336_7079 (stock exchange) + +* djangorestframework + +* South + +* python-gnupg + +* python-hkp + + diff --git a/docs/features.rst b/docs/features.rst index 75360e15f6..e272d75e40 100644 --- a/docs/features.rst +++ b/docs/features.rst @@ -2,6 +2,23 @@ Features ======== + +* Document versioning. + + * Store many versions of the same document, download or revert to a previous version. + +* Electronic signature verification. + + * Check the authenticity of documents by verifying their embedded cryptographic signatures or upload detached signatures for document signed after they were stored. + +* Collaboration tools. + + * Discuss documents, comment on new version of a document. + +* Office document format support. + + * Word processing files? Spreadsheets? Sresentations? They are supported too. + * User defined metadata fields and meta data sets. * Metadata fields can be grouped into sets per technical, legal or structural requirements such as the `Dublin core`_ @@ -27,18 +44,28 @@ Features * Local file or server side file uploads. * Batch upload many documents with the same metadata. + + * Clone a document's metadata for speedier uploads and eliminate repetitive data entry. + * Previews for a great deal of image formats, including PDF. * **Mayan EDMS** provides different file conversion backends with different levels of functionality and requirements to adapt to different deployment environments. * Full text searching. + + * Document can be searched by their text content, their metadata or any other file attribute such as name, extension, etc. + * Configurable document grouping. * Automatic linking of documents based on metadata values or document properties. -* Permissions and roles support. +* Roles support. - * User can created many different roles and are not limited to the traditional limited admin, operator, guest paradigm. + * Users can created an unlimited amount of different roles and are not restricted to the traditional admin, operator, guest paradigm. + +* Fine grained permissions system. + + * There is a permission for every atomic operation performed by users. * Multi page document support. @@ -55,7 +82,19 @@ Features .. _Django: https://www.djangoproject.com/ * Multilingual OCR support. + + * *As supported by the OCR engine tesseract. + * Duplicated document search. + * Plugable storage backends (File based and GridFS included). + + * Very easy to convert other 3rd party such as the ones available for Amazon EC2. + * Color coded tagging. + + * Labeled and color coded tags that are intituitive. + * Staging folders to receive scanned documents directly from network attached scanners. + + * Preview scanned files even before uploading them. diff --git a/docs/index.rst b/docs/index.rst index 2f2f9d96fd..5c115df121 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -43,7 +43,6 @@ Contents settings updates development - technical contributors credits faq diff --git a/docs/requirements.rst b/docs/requirements.rst index 1ba97459bc..665b9ba641 100644 --- a/docs/requirements.rst +++ b/docs/requirements.rst @@ -23,6 +23,7 @@ Executables: * ``tesseract-ocr`` - An OCR Engine that was developed at HP Labs between 1985 and 1995... and now at Google. * ``unpaper`` - post-processing scanned and photocopied book pages +* ``gpg`` - The GNU Privacy Guard Optional requirements ===================== diff --git a/docs/settings.rst b/docs/settings.rst index 0f95b103d4..323bf84405 100644 --- a/docs/settings.rst +++ b/docs/settings.rst @@ -88,6 +88,8 @@ Documents Default: ``image_cache`` (relative to the installation path) + The path where the visual representations of the documents are stored for fast display. + Converter --------- @@ -128,19 +130,32 @@ Converter Graphics conversion backend to use. Options are: ``converter.backends.imagemagick``, ``converter.backends.graphicsmagick`` and ``converter.backends.python``. + Suggested options: ``-limit files 1 -limit memory 1GB -limit map 2GB -density 200`` + .. data:: CONVERTER_UNOCONV_PATH Default: ``/usr/bin/unoconv`` + Path to the unoconv program. -Grouping ---------- - -.. data:: GROUPING_SHOW_EMPTY_GROUPS + +.. data:: CONVERTER_UNOCONV_USE_PIPE Default: ``True`` + Use alternate method of connection to LibreOffice using a pipe, it is slower but less prone to segmentation faults. + + +Linking +------- + +.. data:: LINKING_SHOW_EMPTY_SMART_LINKS + + Default: ``True`` + + Show smart links even when they don't return any documents. + Storage ------- @@ -224,7 +239,7 @@ OCR .. data:: OCR_REPLICATION_DELAY - Default: ``10`` + Default: ``0`` Amount of seconds to delay OCR of documents to allow for the node's storage replication overhead. @@ -384,3 +399,13 @@ User management Default: ``[]`` A list of existing roles that are automatically assigned to newly created users + + +Signatures +---------- + +.. data:: SIGNATURES_KEYSERVERS + + Default: ``['pool.sks-keyservers.net']`` + + List of keyservers to be queried for unknown keys. From 4cc0ff3386fe755bafccd652649778129699c618 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Tue, 6 Dec 2011 03:30:11 -0400 Subject: [PATCH 14/27] Added home template text --- apps/main/templates/home.html | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/main/templates/home.html b/apps/main/templates/home.html index c4f0d284b2..095ed73001 100644 --- a/apps/main/templates/home.html +++ b/apps/main/templates/home.html @@ -5,6 +5,7 @@

{% project_name %}

+

{% trans 'Django based open source document management system' %}


{% endblock %} {% block footer %} From d6a62feefa5912bdb5664463c813fefe440a76a5 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Tue, 6 Dec 2011 03:30:27 -0400 Subject: [PATCH 15/27] Home screen translation update --- apps/main/locale/en/LC_MESSAGES/django.po | 20 ++++++---- apps/main/locale/es/LC_MESSAGES/django.mo | Bin 2577 -> 2727 bytes apps/main/locale/es/LC_MESSAGES/django.po | 45 ++++++++++++---------- 3 files changed, 37 insertions(+), 28 deletions(-) diff --git a/apps/main/locale/en/LC_MESSAGES/django.po b/apps/main/locale/en/LC_MESSAGES/django.po index ad9034e619..3f41a881ab 100644 --- a/apps/main/locale/en/LC_MESSAGES/django.po +++ b/apps/main/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-11-22 11:26-0400\n" +"POT-Creation-Date: 2011-12-06 03:26-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,31 +17,31 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: __init__.py:15 +#: __init__.py:31 msgid "maintenance" msgstr "" -#: __init__.py:16 +#: __init__.py:32 msgid "statistics" msgstr "" -#: __init__.py:17 +#: __init__.py:33 msgid "diagnostics" msgstr "" -#: __init__.py:18 +#: __init__.py:34 msgid "sentry" msgstr "" -#: __init__.py:19 +#: __init__.py:35 msgid "admin site" msgstr "" -#: __init__.py:30 +#: __init__.py:38 msgid "home" msgstr "" -#: __init__.py:32 +#: __init__.py:40 msgid "search" msgstr "" @@ -130,6 +130,10 @@ msgstr "" msgid "Other available actions" msgstr "" +#: templates/home.html:8 +msgid "Django based open source document management system" +msgstr "" + #: templates/project_description.html:6 msgid "" "Open source, Django based electronic document manager with custom metadata, " diff --git a/apps/main/locale/es/LC_MESSAGES/django.mo b/apps/main/locale/es/LC_MESSAGES/django.mo index 128108745e395055f0be6bfbce0982ae8f4b3b11..3c57a910a9e48b2d9537d81617cf048f6d855ec1 100644 GIT binary patch delta 911 zcmYMyKWGzC9Ki8+NpnqWthG)5Xd8VM3MnNaB-mgOR0z71>Y!3Y!83P_k>*bCE`u(a z1cxqqIJh|IAUG+(K|uu9iima+=`J{`gOlIiap;40pZB|a_ulXQxu1VF)!&^MdZ;Le zsq@slq0|!QQamUxa2Q|W1int<54cRcgH=>%rH()iNAM!<$E$b+ecXeeu!i3-qf}pw z4=H8xVj8!wfHU|U_u+e7z|S~_KXDY({7qAhVGbuz64fZ*izpM;Q2L!n;wFw0pF@-R zl@&LXx{mUrhuiGJ9h3o2^N@trFpC>lmVS5?ALAnKB;WsFo;XeCO`OHOco!QOp)Bm9 zyk~y3OXC&(z=QaN{hPwKC@cShlJPH;flRVw4wc7AoJW3D6_kmOq4Zlr+1blU+`?(% zTgXuA9u}m-gQUYFWa05g={OUOq~`jwv?O1)BOdk;%0WnxTT`G)8gtYGR1P*SlCl)J zRdN#~Wl2*GLy9a>irgwLQM~tZkg^4`jJOn=gQuw_qt?7(xouBhvjWG~-c85Vf!Fg} zj<&s4uj{y>?pm(ZcH(AmI|!ZbU_1TB7_OEoE4osPwlWL#q}{02M^~*NES>i)H`ug7 z&u{2ccDLhpg3z~Y&)536CGpAl8U4<*q7Cy>Zj~H*Ow!O!5WO>(i|hY}aO~2BpyRe1 s+Kw|V`Cj0Jp`|P3m2!3P-8^gL&o}{7Y5RZDUJ$jji$-}+&we%j0`gaV-2eap delta 793 zcmXxiKWGzS7{~GF(ln{L#3mf}(>si2raaij$jzQb#-Z{e}2&?|tsQ_wL^3dGCENbTiZXKA5~^ z#4g%Sn(LTN;RY)1Cd|@!4+rs4r~d-8^xt3!f8%c4(`B{^PvBOZ#|2!%K75Vc_#RVc zE&Ia7b#AQTcD#@@+k&e&fj4k7KE_^rg&g*dlZ&5F34TM3|3FRj3pwm>r>|KD=)1_o zHr}>nwwDXNn8hblJ&XF_Po7djf3OGpxS7Wc&frnphgVSJcQAtwv4$_PAEy~qK?hO& zllT+)s_bp2{{e^Te?<;k z=cMrs)bm|b-LK!QK_xI8jU>ies#y!pGPDot}nL88u^+wHa24UF?gN7e22cdT;43;WkGst)D5xx e>($GCwNmyfjp$nHT(q8=j*q8LJMqV!HRm59CtS?{ diff --git a/apps/main/locale/es/LC_MESSAGES/django.po b/apps/main/locale/es/LC_MESSAGES/django.po index c530cc4628..da34696a3f 100644 --- a/apps/main/locale/es/LC_MESSAGES/django.po +++ b/apps/main/locale/es/LC_MESSAGES/django.po @@ -1,49 +1,49 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Roberto Rosario , 2011. msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-11-22 11:26-0400\n" -"PO-Revision-Date: 2011-11-04 00:56+0000\n" -"Last-Translator: rosarior \n" -"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/" -"mayan-edms/team/es/)\n" -"Language: es\n" +"POT-Creation-Date: 2011-12-06 03:26-0400\n" +"PO-Revision-Date: 2011-12-06 03:27\n" +"Last-Translator: Administrador \n" +"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/mayan-edms/team/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" +"X-Translated-Using: django-rosetta 0.6.2\n" -#: __init__.py:15 +#: __init__.py:31 msgid "maintenance" msgstr "mantenimiento" -#: __init__.py:16 +#: __init__.py:32 msgid "statistics" msgstr "estadísticas" -#: __init__.py:17 +#: __init__.py:33 msgid "diagnostics" msgstr "diagnósticos" -#: __init__.py:18 +#: __init__.py:34 msgid "sentry" msgstr "sentry" -#: __init__.py:19 +#: __init__.py:35 msgid "admin site" msgstr "sitio administrativo" -#: __init__.py:30 +#: __init__.py:38 msgid "home" msgstr "inicio" -#: __init__.py:32 +#: __init__.py:40 msgid "search" msgstr "búsqueda" @@ -61,11 +61,11 @@ msgstr "Diagnósticos" #: conf/settings.py:12 msgid "" -"Controls whether the search functionality is provided by a sidebar widget or " -"by a menu entry." +"Controls whether the search functionality is provided by a sidebar " +"widget or by a menu entry." msgstr "" -"Controla si la funcionalidad de búsqueda es proporcionada por una barra " -"lateral o por una entrada de menú." +"Controla si la funcionalidad de búsqueda es proporcionada por una " +"barra lateral o por una entrada de menú." #: templates/about.html:5 msgid "About this program" @@ -134,10 +134,15 @@ msgstr "Acciones" msgid "Other available actions" msgstr "Otras acciones disponibles" +#: templates/home.html:8 +msgid "Django based open source document management system" +msgstr "Gestor de documentos de código abierto, basado en Django." + #: templates/project_description.html:6 msgid "" -"Open source, Django based electronic document manager with custom metadata, " -"indexing, tagging, file serving integration and OCR capabilities" +"Open source, Django based electronic document manager with custom " +"metadata, indexing, tagging, file serving integration and OCR " +"capabilities" msgstr "" "Gestor documental de código abierto, basado en Django con metadatos " "personaliables, indexación, etiquedado de documentos, integración de " From f7776b3300f9d8102e1c9155e74d5ca0d4e6d76d Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Tue, 6 Dec 2011 03:32:32 -0400 Subject: [PATCH 16/27] Bumped version to 0.11 --- apps/main/__init__.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/main/__init__.py b/apps/main/__init__.py index 79fb05d017..e75d65f796 100644 --- a/apps/main/__init__.py +++ b/apps/main/__init__.py @@ -18,10 +18,10 @@ __status__ = 'Production' __version_info__ = { 'major': 0, - 'minor': 10, + 'minor': 11, 'micro': 0, - 'releaselevel': 'hotfix', - 'serial': 4 + 'releaselevel': 'final', + 'serial': 0 } def is_superuser(context): From bee7567327972dc310818c779f7592fb9f181fb7 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Tue, 6 Dec 2011 23:40:20 -0400 Subject: [PATCH 17/27] Catch the correct exception KeyImportError and not KeyFetchingError --- apps/django_gpg/views.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/django_gpg/views.py b/apps/django_gpg/views.py index d908d011e0..6fe629dbe8 100644 --- a/apps/django_gpg/views.py +++ b/apps/django_gpg/views.py @@ -19,7 +19,8 @@ from filetransfers.api import serve_file from django_gpg.api import Key, SIGNATURE_STATES from django_gpg.runtime import gpg -from django_gpg.exceptions import GPGVerificationError, KeyFetchingError +from django_gpg.exceptions import (GPGVerificationError, KeyFetchingError, + KeyImportError) from django_gpg import (PERMISSION_DOCUMENT_VERIFY, PERMISSION_KEY_VIEW, PERMISSION_KEY_DELETE, PERMISSION_KEYSERVER_QUERY, PERMISSION_KEY_RECEIVE, PERMISSION_SIGNATURE_UPLOAD, @@ -44,7 +45,7 @@ def key_receive(request, key_id): key = gpg.import_key(keys_dict[key_id].key) messages.success(request, _(u'Key: %s, imported successfully.') % key) return HttpResponseRedirect(next) - except (KeyFetchingError, KeyError, TypeError): + except (KeyImportError, KeyError, TypeError): messages.error(request, _(u'Unable to import key id: %s') % key_id) return HttpResponseRedirect(previous) From 6bf8a3df10be9002fd36dc530546c70a9813ae0f Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Wed, 7 Dec 2011 04:22:34 -0400 Subject: [PATCH 18/27] Fix document delete regresion --- apps/documents/models.py | 14 ++++++-------- apps/documents/views.py | 2 +- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/apps/documents/models.py b/apps/documents/models.py index b691cdc36d..90f7e6912e 100644 --- a/apps/documents/models.py +++ b/apps/documents/models.py @@ -176,12 +176,10 @@ class Document(models.Model): def add_as_recent_document_for_user(self, user): RecentDocument.objects.add_document_for_user(user, self) - # TODO: investigate if Document's save method calls all of it - # DocumentVersion's delete methods - #def delete(self, *args, **kwargs): - # super(Document, self).delete(*args, **kwargs) - # for version in self.documentversion_set.all(): - # version.file.storage.delete(version.file.path) + def delete(self, *args, **kwargs): + for version in self.versions.all(): + version.delete() + return super(Document, self).delete(*args, **kwargs) @property def size(self): @@ -497,8 +495,8 @@ class DocumentVersion(models.Model): self.save() def delete(self, *args, **kwargs): - super(DocumentVersion, self).delete(*args, **kwargs) - return self.file.storage.delete(self.file.path) + self.file.storage.delete(self.file.path) + return super(DocumentVersion, self).delete(*args, **kwargs) def exists(self): ''' diff --git a/apps/documents/views.py b/apps/documents/views.py index 3234a2014e..d7ab3701f3 100644 --- a/apps/documents/views.py +++ b/apps/documents/views.py @@ -198,7 +198,7 @@ def document_delete(request, document_id=None, document_id_list=None): document.delete() #create_history(HISTORY_DOCUMENT_DELETED, data={'user': request.user, 'document': document}) - messages.success(request, _(u'Document: %s deleted successfully.') % document) + messages.success(request, _(u'Document deleted successfully.')) except Exception, e: messages.error(request, _(u'Document: %(document)s delete error: %(error)s') % { 'document': document, 'error': e From 5f3656c43f20194c6096afd9d623a5b24146041b Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Wed, 7 Dec 2011 04:23:02 -0400 Subject: [PATCH 19/27] Call the correct gpg method --- apps/documents/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/documents/models.py b/apps/documents/models.py index 90f7e6912e..25cb703d22 100644 --- a/apps/documents/models.py +++ b/apps/documents/models.py @@ -470,7 +470,7 @@ class DocumentVersion(models.Model): def update_signed_state(self, save=True): if self.exists(): try: - self.signature_state = gpg.verify(self.open()).status + self.signature_state = gpg.verify_file(self.open()).status # TODO: give use choice for auto public key fetch? # OR maybe new config option except GPGVerificationError: From 76aced48e8de932b64b02dca3ca6c150a6e252c1 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Wed, 7 Dec 2011 04:31:59 -0400 Subject: [PATCH 20/27] Improve post metadata set delete redirection --- apps/metadata/views.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/metadata/views.py b/apps/metadata/views.py index 9d34c0cd4f..028700a46d 100644 --- a/apps/metadata/views.py +++ b/apps/metadata/views.py @@ -481,11 +481,12 @@ def setup_metadata_set_delete(request, metadata_set_id): try: metadata_set.delete() messages.success(request, _(u'Metadata set: %s deleted successfully.') % metadata_set) + return HttpResponseRedirect(post_action_redirect) except Exception, e: messages.error(request, _(u'Metadata set: %(metadata_set)s delete error: %(error)s') % { 'metadata_set': metadata_set, 'error': e}) + return HttpResponseRedirect(previous) - return HttpResponseRedirect(next) context = { 'object_name': _(u'metadata set'), From 56b22a81156a540fc8aa50072de3d87f81d992fe Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Wed, 7 Dec 2011 04:34:48 -0400 Subject: [PATCH 21/27] Bump version to 0.11.1 --- apps/main/__init__.py | 2 +- docs/conf.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/main/__init__.py b/apps/main/__init__.py index e75d65f796..822a2c8cfa 100644 --- a/apps/main/__init__.py +++ b/apps/main/__init__.py @@ -19,7 +19,7 @@ __status__ = 'Production' __version_info__ = { 'major': 0, 'minor': 11, - 'micro': 0, + 'micro': 1, 'releaselevel': 'final', 'serial': 0 } diff --git a/docs/conf.py b/docs/conf.py index cb26e3e359..48200208da 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -48,10 +48,10 @@ copyright = u'2011, Roberto Rosario' # built documents. # # The short X.Y version. -version = '0.11' +version = '0.11.1' # The full version, including alpha/beta/rc tags. -release = '0.11' +release = '0.11.1' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From 30f668b8764f9af348f1089174025c1f9978dab1 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Wed, 7 Dec 2011 04:51:50 -0400 Subject: [PATCH 22/27] Fix statistics --- apps/documents/statistics.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/documents/statistics.py b/apps/documents/statistics.py index 786f902651..8787c7eb22 100644 --- a/apps/documents/statistics.py +++ b/apps/documents/statistics.py @@ -3,7 +3,7 @@ from django.utils.translation import ugettext_lazy as _ from common.utils import pretty_size, pretty_size_10 from documents.conf.settings import STORAGE_BACKEND -from documents.models import Document, DocumentType, DocumentPage +from documents.models import Document, DocumentType, DocumentPage, DocumentVersion from django.db.models import Avg, Count, Min, Max @@ -54,9 +54,9 @@ def get_statistics(): paragraphs.extend( [ _(u'Document pages in database: %d') % DocumentPage.objects.only('pk',).count(), - _(u'Minimum amount of pages per document: %(page_count__min)d') % Document.objects.annotate(page_count=Count('documentpage')).aggregate(Min('page_count')), - _(u'Maximum amount of pages per document: %(page_count__max)d') % Document.objects.annotate(page_count=Count('documentpage')).aggregate(Max('page_count')), - _(u'Average amount of pages per document: %(page_count__avg)f') % Document.objects.annotate(page_count=Count('documentpage')).aggregate(Avg('page_count')), + _(u'Minimum amount of pages per document: %(page_count__min)d') % DocumentVersion.objects.annotate(page_count=Count('documentpage')).aggregate(Min('page_count')), + _(u'Maximum amount of pages per document: %(page_count__max)d') % DocumentVersion.objects.annotate(page_count=Count('documentpage')).aggregate(Max('page_count')), + _(u'Average amount of pages per document: %(page_count__avg)f') % DocumentVersion.objects.annotate(page_count=Count('documentpage')).aggregate(Avg('page_count')), ] ) #[(day_count['date_added'].strftime('%Y-%m-%d'), day_count['id__count']) for day_count in Document.objects.values('date_added').annotate(Count("id"))] From e6ae00d357cea98e380690b119d747606c265375 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Wed, 7 Dec 2011 15:51:28 -0400 Subject: [PATCH 23/27] Update Transifex configuration file to add the Italian language resources --- .tx/config | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/.tx/config b/.tx/config index acbc95abba..0ee87646bb 100644 --- a/.tx/config +++ b/.tx/config @@ -4,6 +4,7 @@ source_lang = en trans.es = apps/converter/locale/es/LC_MESSAGES/django.po trans.pt = apps/converter/locale/pt/LC_MESSAGES/django.po trans.ru = apps/converter/locale/ru/LC_MESSAGES/django.po +trans.it = apps/converter/locale/it/LC_MESSAGES/django.po [mayan-edms.apps-common] source_file = apps/common/locale/en/LC_MESSAGES/django.po @@ -11,6 +12,7 @@ source_lang = en trans.es = apps/common/locale/es/LC_MESSAGES/django.po trans.pt = apps/common/locale/pt/LC_MESSAGES/django.po trans.ru = apps/common/locale/ru/LC_MESSAGES/django.po +trans.it = apps/common/locale/it/LC_MESSAGES/django.po [mayan-edms.apps-permissions] source_file = apps/permissions/locale/en/LC_MESSAGES/django.po @@ -18,6 +20,7 @@ source_lang = en trans.es = apps/permissions/locale/es/LC_MESSAGES/django.po trans.pt = apps/permissions/locale/pt/LC_MESSAGES/django.po trans.ru = apps/permissions/locale/ru/LC_MESSAGES/django.po +trans.it = apps/permissions/locale/it/LC_MESSAGES/django.po [mayan-edms.apps-sources] source_file = apps/sources/locale/en/LC_MESSAGES/django.po @@ -25,6 +28,7 @@ source_lang = en trans.es = apps/sources/locale/es/LC_MESSAGES/django.po trans.pt = apps/sources/locale/pt/LC_MESSAGES/django.po trans.ru = apps/sources/locale/ru/LC_MESSAGES/django.po +trans.it = apps/sources/locale/it/LC_MESSAGES/django.po [mayan-edms.apps-document_indexing] source_file = apps/document_indexing/locale/en/LC_MESSAGES/django.po @@ -32,6 +36,7 @@ source_lang = en trans.es = apps/document_indexing/locale/es/LC_MESSAGES/django.po trans.pt = apps/document_indexing/locale/pt/LC_MESSAGES/django.po trans.ru = apps/document_indexing/locale/ru/LC_MESSAGES/django.po +trans.it = apps/document_indexing/locale/it/LC_MESSAGES/django.po [mayan-edms.apps-user_management] source_file = apps/user_management/locale/en/LC_MESSAGES/django.po @@ -39,6 +44,7 @@ source_lang = en trans.es = apps/user_management/locale/es/LC_MESSAGES/django.po trans.pt = apps/user_management/locale/pt/LC_MESSAGES/django.po trans.ru = apps/user_management/locale/ru/LC_MESSAGES/django.po +trans.it = apps/user_management/locale/it/LC_MESSAGES/django.po [mayan-edms.apps-main] source_file = apps/main/locale/en/LC_MESSAGES/django.po @@ -46,6 +52,7 @@ source_lang = en trans.es = apps/main/locale/es/LC_MESSAGES/django.po trans.pt = apps/main/locale/pt/LC_MESSAGES/django.po trans.ru = apps/main/locale/ru/LC_MESSAGES/django.po +trans.it = apps/main/locale/it/LC_MESSAGES/django.po [mayan-edms.apps-ocr] source_file = apps/ocr/locale/en/LC_MESSAGES/django.po @@ -53,6 +60,7 @@ source_lang = en trans.es = apps/ocr/locale/es/LC_MESSAGES/django.po trans.pt = apps/ocr/locale/pt/LC_MESSAGES/django.po trans.ru = apps/ocr/locale/ru/LC_MESSAGES/django.po +trans.it = apps/ocr/locale/it/LC_MESSAGES/django.po [mayan-edms.apps-project_setup] source_file = apps/project_setup/locale/en/LC_MESSAGES/django.po @@ -60,6 +68,7 @@ source_lang = en trans.es = apps/project_setup/locale/es/LC_MESSAGES/django.po trans.pt = apps/project_setup/locale/pt/LC_MESSAGES/django.po trans.ru = apps/project_setup/locale/ru/LC_MESSAGES/django.po +trans.it = apps/project_setup/locale/it/LC_MESSAGES/django.po [main] host = https://www.transifex.net @@ -70,6 +79,7 @@ source_lang = en trans.es = apps/folders/locale/es/LC_MESSAGES/django.po trans.pt = apps/folders/locale/pt/LC_MESSAGES/django.po trans.ru = apps/folders/locale/ru/LC_MESSAGES/django.po +trans.it = apps/folders/locale/it/LC_MESSAGES/django.po [mayan-edms.apps-history] source_file = apps/history/locale/en/LC_MESSAGES/django.po @@ -77,6 +87,7 @@ source_lang = en trans.es = apps/history/locale/es/LC_MESSAGES/django.po trans.pt = apps/history/locale/pt/LC_MESSAGES/django.po trans.ru = apps/history/locale/ru/LC_MESSAGES/django.po +trans.it = apps/history/locale/it/LC_MESSAGES/django.po [mayan-edms.apps-dynamic_search] source_file = apps/dynamic_search/locale/en/LC_MESSAGES/django.po @@ -84,6 +95,7 @@ source_lang = en trans.es = apps/dynamic_search/locale/es/LC_MESSAGES/django.po trans.pt = apps/dynamic_search/locale/pt/LC_MESSAGES/django.po trans.ru = apps/dynamic_search/locale/ru/LC_MESSAGES/django.po +trans.it = apps/dynamic_search/locale/it/LC_MESSAGES/django.po [mayan-edms.apps-smart_settings] source_file = apps/smart_settings/locale/en/LC_MESSAGES/django.po @@ -91,6 +103,7 @@ source_lang = en trans.es = apps/smart_settings/locale/es/LC_MESSAGES/django.po trans.pt = apps/smart_settings/locale/pt/LC_MESSAGES/django.po trans.ru = apps/smart_settings/locale/ru/LC_MESSAGES/django.po +trans.it = apps/smart_settings/locale/it/LC_MESSAGES/django.po [mayan-edms.apps-navigation] source_file = apps/navigation/locale/en/LC_MESSAGES/django.po @@ -98,6 +111,7 @@ source_lang = en trans.es = apps/navigation/locale/es/LC_MESSAGES/django.po trans.pt = apps/navigation/locale/pt/LC_MESSAGES/django.po trans.ru = apps/navigation/locale/ru/LC_MESSAGES/django.po +trans.it = apps/navigation/locale/it/LC_MESSAGES/django.po [mayan-edms.apps-tags] source_file = apps/tags/locale/en/LC_MESSAGES/django.po @@ -105,6 +119,7 @@ source_lang = en trans.es = apps/tags/locale/es/LC_MESSAGES/django.po trans.pt = apps/tags/locale/pt/LC_MESSAGES/django.po trans.ru = apps/tags/locale/ru/LC_MESSAGES/django.po +trans.it = apps/tags/locale/it/LC_MESSAGES/django.po [mayan-edms.apps-documents] source_file = apps/documents/locale/en/LC_MESSAGES/django.po @@ -112,6 +127,7 @@ source_lang = en trans.es = apps/documents/locale/es/LC_MESSAGES/django.po trans.pt = apps/documents/locale/pt/LC_MESSAGES/django.po trans.ru = apps/documents/locale/ru/LC_MESSAGES/django.po +trans.it = apps/documents/locale/it/LC_MESSAGES/django.po [mayan-edms.apps-project_tools] source_file = apps/project_tools/locale/en/LC_MESSAGES/django.po @@ -119,6 +135,7 @@ source_lang = en trans.es = apps/project_tools/locale/es/LC_MESSAGES/django.po trans.pt = apps/project_tools/locale/pt/LC_MESSAGES/django.po trans.ru = apps/project_tools/locale/ru/LC_MESSAGES/django.po +trans.it = apps/project_tools/locale/it/LC_MESSAGES/django.po [mayan-edms.apps-linking] source_file = apps/linking/locale/en/LC_MESSAGES/django.po @@ -126,6 +143,7 @@ source_lang = en trans.es = apps/linking/locale/es/LC_MESSAGES/django.po trans.pt = apps/linking/locale/pt/LC_MESSAGES/django.po trans.ru = apps/linking/locale/ru/LC_MESSAGES/django.po +trans.it = apps/linking/locale/it/LC_MESSAGES/django.po [mayan-edms.apps-document_comments] source_file = apps/document_comments/locale/en/LC_MESSAGES/django.po @@ -133,6 +151,7 @@ source_lang = en trans.es = apps/document_comments/locale/es/LC_MESSAGES/django.po trans.pt = apps/document_comments/locale/pt/LC_MESSAGES/django.po trans.ru = apps/document_comments/locale/ru/LC_MESSAGES/django.po +trans.it = apps/document_comments/locale/it/LC_MESSAGES/django.po [mayan-edms.apps-metadata] source_file = apps/metadata/locale/en/LC_MESSAGES/django.po @@ -140,6 +159,7 @@ source_lang = en trans.es = apps/metadata/locale/es/LC_MESSAGES/django.po trans.pt = apps/metadata/locale/pt/LC_MESSAGES/django.po trans.ru = apps/metadata/locale/ru/LC_MESSAGES/django.po +trans.it = apps/metadata/locale/it/LC_MESSAGES/django.po [mayan-edms.apps-web_theme] source_file = apps/web_theme/locale/en/LC_MESSAGES/django.po @@ -147,6 +167,7 @@ source_lang = en trans.es = apps/web_theme/locale/es/LC_MESSAGES/django.po trans.pt = apps/web_theme/locale/pt/LC_MESSAGES/django.po trans.ru = apps/web_theme/locale/ru/LC_MESSAGES/django.po +trans.it = apps/web_theme/locale/it/LC_MESSAGES/django.po [mayan-edms.apps-django_gpg] source_file = apps/django_gpg/locale/en/LC_MESSAGES/django.po @@ -154,3 +175,4 @@ source_lang = en trans.es = apps/django_gpg/locale/es/LC_MESSAGES/django.po trans.pt = apps/django_gpg/locale/pt/LC_MESSAGES/django.po trans.ru = apps/django_gpg/locale/ru/LC_MESSAGES/django.po +trans.it = apps/django_gpg/locale/it/LC_MESSAGES/django.po From 6c8e20e783e210d0802ffd5666360d1a1b9a52d1 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Wed, 7 Dec 2011 15:51:54 -0400 Subject: [PATCH 24/27] Add Italian language to the language helper scripts --- misc/compilemessages_all.sh | 22 ++++++++++++++++++++++ misc/makemessages_all.sh | 22 ++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/misc/compilemessages_all.sh b/misc/compilemessages_all.sh index 5e3c5cf2a7..a6abd085c7 100755 --- a/misc/compilemessages_all.sh +++ b/misc/compilemessages_all.sh @@ -7,108 +7,130 @@ cd $BASE/apps/common $COMPILEMESSAGES -l pt $COMPILEMESSAGES -l ru $COMPILEMESSAGES -l es +$COMPILEMESSAGES -l it cd $BASE/apps/converter $COMPILEMESSAGES -l pt $COMPILEMESSAGES -l ru $COMPILEMESSAGES -l es +$COMPILEMESSAGES -l it cd $BASE/apps/documents $COMPILEMESSAGES -l pt $COMPILEMESSAGES -l ru $COMPILEMESSAGES -l es +$COMPILEMESSAGES -l it cd $BASE/apps/document_comments $COMPILEMESSAGES -l pt $COMPILEMESSAGES -l ru $COMPILEMESSAGES -l es +$COMPILEMESSAGES -l it cd $BASE/apps/document_indexing $COMPILEMESSAGES -l pt $COMPILEMESSAGES -l ru $COMPILEMESSAGES -l es +$COMPILEMESSAGES -l it cd $BASE/apps/dynamic_search $COMPILEMESSAGES -l pt $COMPILEMESSAGES -l ru $COMPILEMESSAGES -l es +$COMPILEMESSAGES -l it cd $BASE/apps/folders $COMPILEMESSAGES -l pt $COMPILEMESSAGES -l ru $COMPILEMESSAGES -l es +$COMPILEMESSAGES -l it cd $BASE/apps/history $COMPILEMESSAGES -l pt $COMPILEMESSAGES -l ru $COMPILEMESSAGES -l es +$COMPILEMESSAGES -l it cd $BASE/apps/linking $COMPILEMESSAGES -l pt $COMPILEMESSAGES -l ru $COMPILEMESSAGES -l es +$COMPILEMESSAGES -l it cd $BASE/apps/main $COMPILEMESSAGES -l pt $COMPILEMESSAGES -l ru $COMPILEMESSAGES -l es +$COMPILEMESSAGES -l it cd $BASE/apps/metadata $COMPILEMESSAGES -l pt $COMPILEMESSAGES -l ru $COMPILEMESSAGES -l es +$COMPILEMESSAGES -l it cd $BASE/apps/navigation $COMPILEMESSAGES -l pt $COMPILEMESSAGES -l ru $COMPILEMESSAGES -l es +$COMPILEMESSAGES -l it cd $BASE/apps/ocr $COMPILEMESSAGES -l pt $COMPILEMESSAGES -l ru $COMPILEMESSAGES -l es +$COMPILEMESSAGES -l it cd $BASE/apps/permissions $COMPILEMESSAGES -l pt $COMPILEMESSAGES -l ru $COMPILEMESSAGES -l es +$COMPILEMESSAGES -l it cd $BASE/apps/project_setup $COMPILEMESSAGES -l pt $COMPILEMESSAGES -l ru $COMPILEMESSAGES -l es +$COMPILEMESSAGES -l it cd $BASE/apps/project_tools $COMPILEMESSAGES -l pt $COMPILEMESSAGES -l ru $COMPILEMESSAGES -l es +$COMPILEMESSAGES -l it cd $BASE/apps/smart_settings $COMPILEMESSAGES -l pt $COMPILEMESSAGES -l ru $COMPILEMESSAGES -l es +$COMPILEMESSAGES -l it cd $BASE/apps/sources $COMPILEMESSAGES -l pt $COMPILEMESSAGES -l ru $COMPILEMESSAGES -l es +$COMPILEMESSAGES -l it cd $BASE/apps/tags $COMPILEMESSAGES -l pt $COMPILEMESSAGES -l ru $COMPILEMESSAGES -l es +$COMPILEMESSAGES -l it cd $BASE/apps/user_management $COMPILEMESSAGES -l pt $COMPILEMESSAGES -l ru $COMPILEMESSAGES -l es +$COMPILEMESSAGES -l it cd $BASE/apps/web_theme $COMPILEMESSAGES -l pt $COMPILEMESSAGES -l ru $COMPILEMESSAGES -l es +$COMPILEMESSAGES -l it cd $BASE/apps/django_gpg $COMPILEMESSAGES -l pt $COMPILEMESSAGES -l ru $COMPILEMESSAGES -l es +$COMPILEMESSAGES -l it diff --git a/misc/makemessages_all.sh b/misc/makemessages_all.sh index d1e0fcd79e..3cc25f2a01 100755 --- a/misc/makemessages_all.sh +++ b/misc/makemessages_all.sh @@ -8,129 +8,151 @@ $MAKEMESSAGES -l en $MAKEMESSAGES -l pt $MAKEMESSAGES -l ru $MAKEMESSAGES -l es +$MAKEMESSAGES -l it cd $BASE/apps/converter $MAKEMESSAGES -l en $MAKEMESSAGES -l pt $MAKEMESSAGES -l ru $MAKEMESSAGES -l es +$MAKEMESSAGES -l it cd $BASE/apps/documents $MAKEMESSAGES -l en $MAKEMESSAGES -l pt $MAKEMESSAGES -l ru $MAKEMESSAGES -l es +$MAKEMESSAGES -l it cd $BASE/apps/document_comments $MAKEMESSAGES -l en $MAKEMESSAGES -l pt $MAKEMESSAGES -l ru $MAKEMESSAGES -l es +$MAKEMESSAGES -l it cd $BASE/apps/document_indexing $MAKEMESSAGES -l en $MAKEMESSAGES -l pt $MAKEMESSAGES -l ru $MAKEMESSAGES -l es +$MAKEMESSAGES -l it cd $BASE/apps/dynamic_search $MAKEMESSAGES -l en $MAKEMESSAGES -l pt $MAKEMESSAGES -l ru $MAKEMESSAGES -l es +$MAKEMESSAGES -l it cd $BASE/apps/folders $MAKEMESSAGES -l en $MAKEMESSAGES -l pt $MAKEMESSAGES -l ru $MAKEMESSAGES -l es +$MAKEMESSAGES -l it cd $BASE/apps/history $MAKEMESSAGES -l en $MAKEMESSAGES -l pt $MAKEMESSAGES -l ru $MAKEMESSAGES -l es +$MAKEMESSAGES -l it cd $BASE/apps/linking $MAKEMESSAGES -l en $MAKEMESSAGES -l pt $MAKEMESSAGES -l ru $MAKEMESSAGES -l es +$MAKEMESSAGES -l it cd $BASE/apps/main $MAKEMESSAGES -l en $MAKEMESSAGES -l pt $MAKEMESSAGES -l ru $MAKEMESSAGES -l es +$MAKEMESSAGES -l it cd $BASE/apps/metadata $MAKEMESSAGES -l en $MAKEMESSAGES -l pt $MAKEMESSAGES -l ru $MAKEMESSAGES -l es +$MAKEMESSAGES -l it cd $BASE/apps/navigation $MAKEMESSAGES -l en $MAKEMESSAGES -l pt $MAKEMESSAGES -l ru $MAKEMESSAGES -l es +$MAKEMESSAGES -l it cd $BASE/apps/ocr $MAKEMESSAGES -l en $MAKEMESSAGES -l pt $MAKEMESSAGES -l ru $MAKEMESSAGES -l es +$MAKEMESSAGES -l it cd $BASE/apps/permissions $MAKEMESSAGES -l en $MAKEMESSAGES -l pt $MAKEMESSAGES -l ru $MAKEMESSAGES -l es +$MAKEMESSAGES -l it cd $BASE/apps/project_setup $MAKEMESSAGES -l en $MAKEMESSAGES -l pt $MAKEMESSAGES -l ru $MAKEMESSAGES -l es +$MAKEMESSAGES -l it cd $BASE/apps/project_tools $MAKEMESSAGES -l en $MAKEMESSAGES -l pt $MAKEMESSAGES -l ru $MAKEMESSAGES -l es +$MAKEMESSAGES -l it cd $BASE/apps/smart_settings $MAKEMESSAGES -l en $MAKEMESSAGES -l pt $MAKEMESSAGES -l ru $MAKEMESSAGES -l es +$MAKEMESSAGES -l it cd $BASE/apps/sources $MAKEMESSAGES -l en $MAKEMESSAGES -l pt $MAKEMESSAGES -l ru $MAKEMESSAGES -l es +$MAKEMESSAGES -l it cd $BASE/apps/tags $MAKEMESSAGES -l en $MAKEMESSAGES -l pt $MAKEMESSAGES -l ru $MAKEMESSAGES -l es +$MAKEMESSAGES -l it cd $BASE/apps/user_management $MAKEMESSAGES -l en $MAKEMESSAGES -l pt $MAKEMESSAGES -l ru $MAKEMESSAGES -l es +$MAKEMESSAGES -l it cd $BASE/apps/web_theme $MAKEMESSAGES -l en $MAKEMESSAGES -l pt $MAKEMESSAGES -l ru $MAKEMESSAGES -l es +$MAKEMESSAGES -l it cd $BASE/apps/django_gpg $MAKEMESSAGES -l en $MAKEMESSAGES -l pt $MAKEMESSAGES -l ru $MAKEMESSAGES -l es +$MAKEMESSAGES -l it From 9daa442e7152ebe0223dbd6910b34894904ecad1 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Wed, 7 Dec 2011 15:52:18 -0400 Subject: [PATCH 25/27] Add Italian to the language selection list --- settings.py | 1 + 1 file changed, 1 insertion(+) diff --git a/settings.py b/settings.py index bd59969f15..2620793172 100644 --- a/settings.py +++ b/settings.py @@ -53,6 +53,7 @@ LANGUAGES = ( ('es', ugettext('Spanish')), ('pt', ugettext('Portuguese')), ('ru', ugettext('Russian')), + ('it', ugettext('Italian')), ) SITE_ID = 1 From cf3e07d728d5f5b508b677a03f3b30ef8f3aedd6 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Wed, 7 Dec 2011 15:53:04 -0400 Subject: [PATCH 26/27] Initial Italian language sync --- apps/common/locale/it/LC_MESSAGES/django.mo | Bin 0 -> 5242 bytes apps/common/locale/it/LC_MESSAGES/django.po | 333 ++++++ .../converter/locale/it/LC_MESSAGES/django.mo | Bin 0 -> 501 bytes .../converter/locale/it/LC_MESSAGES/django.po | 934 +++++++++++++++++ .../locale/it/LC_MESSAGES/django.mo | Bin 0 -> 521 bytes .../locale/it/LC_MESSAGES/django.po | 292 ++++++ .../locale/it/LC_MESSAGES/django.mo | Bin 0 -> 501 bytes .../locale/it/LC_MESSAGES/django.po | 102 ++ .../locale/it/LC_MESSAGES/django.mo | Bin 0 -> 501 bytes .../locale/it/LC_MESSAGES/django.po | 205 ++++ .../documents/locale/it/LC_MESSAGES/django.mo | Bin 0 -> 18570 bytes .../documents/locale/it/LC_MESSAGES/django.po | 977 ++++++++++++++++++ .../locale/it/LC_MESSAGES/django.mo | Bin 0 -> 501 bytes .../locale/it/LC_MESSAGES/django.po | 116 +++ apps/folders/locale/it/LC_MESSAGES/django.mo | Bin 0 -> 501 bytes apps/folders/locale/it/LC_MESSAGES/django.po | 212 ++++ apps/history/locale/it/LC_MESSAGES/django.mo | Bin 0 -> 501 bytes apps/history/locale/it/LC_MESSAGES/django.po | 106 ++ apps/linking/locale/it/LC_MESSAGES/django.mo | Bin 0 -> 501 bytes apps/linking/locale/it/LC_MESSAGES/django.po | 331 ++++++ apps/main/locale/it/LC_MESSAGES/django.mo | Bin 0 -> 501 bytes apps/main/locale/it/LC_MESSAGES/django.po | 143 +++ apps/metadata/locale/it/LC_MESSAGES/django.mo | Bin 0 -> 501 bytes apps/metadata/locale/it/LC_MESSAGES/django.po | 452 ++++++++ .../locale/it/LC_MESSAGES/django.mo | Bin 0 -> 501 bytes .../locale/it/LC_MESSAGES/django.po | 32 + apps/ocr/locale/it/LC_MESSAGES/django.mo | Bin 0 -> 501 bytes apps/ocr/locale/it/LC_MESSAGES/django.po | 448 ++++++++ .../locale/it/LC_MESSAGES/django.mo | Bin 0 -> 501 bytes .../locale/it/LC_MESSAGES/django.po | 194 ++++ .../locale/it/LC_MESSAGES/django.mo | Bin 0 -> 501 bytes .../locale/it/LC_MESSAGES/django.po | 28 + .../locale/it/LC_MESSAGES/django.mo | Bin 0 -> 501 bytes .../locale/it/LC_MESSAGES/django.po | 24 + .../locale/it/LC_MESSAGES/django.mo | Bin 0 -> 501 bytes .../locale/it/LC_MESSAGES/django.po | 36 + apps/sources/locale/it/LC_MESSAGES/django.mo | Bin 0 -> 501 bytes apps/sources/locale/it/LC_MESSAGES/django.po | 462 +++++++++ apps/tags/locale/it/LC_MESSAGES/django.mo | Bin 0 -> 501 bytes apps/tags/locale/it/LC_MESSAGES/django.po | 267 +++++ .../locale/it/LC_MESSAGES/django.mo | Bin 0 -> 501 bytes .../locale/it/LC_MESSAGES/django.po | 254 +++++ .../web_theme/locale/it/LC_MESSAGES/django.mo | Bin 0 -> 501 bytes .../web_theme/locale/it/LC_MESSAGES/django.po | 76 ++ 44 files changed, 6024 insertions(+) create mode 100644 apps/common/locale/it/LC_MESSAGES/django.mo create mode 100644 apps/common/locale/it/LC_MESSAGES/django.po create mode 100644 apps/converter/locale/it/LC_MESSAGES/django.mo create mode 100644 apps/converter/locale/it/LC_MESSAGES/django.po create mode 100644 apps/django_gpg/locale/it/LC_MESSAGES/django.mo create mode 100644 apps/django_gpg/locale/it/LC_MESSAGES/django.po create mode 100644 apps/document_comments/locale/it/LC_MESSAGES/django.mo create mode 100644 apps/document_comments/locale/it/LC_MESSAGES/django.po create mode 100644 apps/document_indexing/locale/it/LC_MESSAGES/django.mo create mode 100644 apps/document_indexing/locale/it/LC_MESSAGES/django.po create mode 100644 apps/documents/locale/it/LC_MESSAGES/django.mo create mode 100644 apps/documents/locale/it/LC_MESSAGES/django.po create mode 100644 apps/dynamic_search/locale/it/LC_MESSAGES/django.mo create mode 100644 apps/dynamic_search/locale/it/LC_MESSAGES/django.po create mode 100644 apps/folders/locale/it/LC_MESSAGES/django.mo create mode 100644 apps/folders/locale/it/LC_MESSAGES/django.po create mode 100644 apps/history/locale/it/LC_MESSAGES/django.mo create mode 100644 apps/history/locale/it/LC_MESSAGES/django.po create mode 100644 apps/linking/locale/it/LC_MESSAGES/django.mo create mode 100644 apps/linking/locale/it/LC_MESSAGES/django.po create mode 100644 apps/main/locale/it/LC_MESSAGES/django.mo create mode 100644 apps/main/locale/it/LC_MESSAGES/django.po create mode 100644 apps/metadata/locale/it/LC_MESSAGES/django.mo create mode 100644 apps/metadata/locale/it/LC_MESSAGES/django.po create mode 100644 apps/navigation/locale/it/LC_MESSAGES/django.mo create mode 100644 apps/navigation/locale/it/LC_MESSAGES/django.po create mode 100644 apps/ocr/locale/it/LC_MESSAGES/django.mo create mode 100644 apps/ocr/locale/it/LC_MESSAGES/django.po create mode 100644 apps/permissions/locale/it/LC_MESSAGES/django.mo create mode 100644 apps/permissions/locale/it/LC_MESSAGES/django.po create mode 100644 apps/project_setup/locale/it/LC_MESSAGES/django.mo create mode 100644 apps/project_setup/locale/it/LC_MESSAGES/django.po create mode 100644 apps/project_tools/locale/it/LC_MESSAGES/django.mo create mode 100644 apps/project_tools/locale/it/LC_MESSAGES/django.po create mode 100644 apps/smart_settings/locale/it/LC_MESSAGES/django.mo create mode 100644 apps/smart_settings/locale/it/LC_MESSAGES/django.po create mode 100644 apps/sources/locale/it/LC_MESSAGES/django.mo create mode 100644 apps/sources/locale/it/LC_MESSAGES/django.po create mode 100644 apps/tags/locale/it/LC_MESSAGES/django.mo create mode 100644 apps/tags/locale/it/LC_MESSAGES/django.po create mode 100644 apps/user_management/locale/it/LC_MESSAGES/django.mo create mode 100644 apps/user_management/locale/it/LC_MESSAGES/django.po create mode 100644 apps/web_theme/locale/it/LC_MESSAGES/django.mo create mode 100644 apps/web_theme/locale/it/LC_MESSAGES/django.po diff --git a/apps/common/locale/it/LC_MESSAGES/django.mo b/apps/common/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..5ac939ecbbde5403e8fe6dec4eedccd50892a41d GIT binary patch literal 5242 zcmb7{U1()j6@a(>)mVR8YwcKVcdcU*n|t%q%yhgnnZL}8Mv|FylB$D9*!P@$Z?>L$ z_Vw&@l9_-Ag5Z-6LJ@sZ5GmS+79Yen>44TMDk`NED}@n7k!tZl5Cp$<&bi4=W@76h z`+nzV@3q%nd#$xs{&3eVPbjW=+WTm;Hz{=qF5bcq*VDHubpk#ErO#`SF6z*26_3Tl=*Idb0zmqDE;oOpYMlsQ3s*S*MM#KG5CJ? zeJK5Z2JeTzg0h}h;k)2#Q1rN!Nn{-(@Ez~~{4^YgbWvZ1vaYW}>Hh@ePkoc0Y4{x| z-(P^=fG+`{uPS7^;;`Fm!QnQ0uiC2`nd=1=J^Xy??+JdzY4`3zk#CnOHleI3dPeIwI&%iNwx#qW_?Dz9f#$SUn z{%=tB@3wbV>$?Nq!}EO*)2SIKcAtaN?@aytaVU0p42mCLf^Aqp@q-tk^#2!>dH(}t zJ@?#M>30Ci_*r-tJO)ukU4SBI4a$0-h0^aAP~`ote*Y4jA(Pr?VF%>Nt| zJNy|++}(sT%KRsw_{nM5gqu+2`7V_CpRS*O3=yrKhvMhIhhoov*Y6*~Sy+-fRP!7Z zJwFLW-dg?MLEJ)pfQBk%t^lQvO8*CGl1F6B!!+^L22HLR+7TL4st?f~qKVG34q4+k zt&A-wd(@)IUOY+@pOR~uCia&-Jx-Io{|HTNC)X4Wmo0r*>?FQ7xMba<^@GIH2WgMg z&*H16>wC#BbM?L0WN?Z7Xv5j>oqR58ODU#$${VMnR;8^Cm>-k#ZLcW%}Jh9`U`TFBC z+w&U;?PR{UkBn1~s8h4*)FE{$j@7Bm>MOoLiTY;Kg>}vRF?!|}5x)Id6kbbB4-Hz| zFUG@(*BiX2a|o`RGQM8SkR)|_R-Hbi=GRTywTbVld7pM%)*G-^MjrFbCqd`yR`+Z~ ze;0bX2rL+tO~Ly#cah0?!P~5<^@Y9|8(U|#RlbvjOlaFPE>ZKDrEd+L+RbgH>h-Gm zBFm6jjvNgrk~1#oq94m7O?9Sz(ec^dvBS$B?zijx+1TYuey$s>&Xy`J#ImH0vzb~* zL(%ED$caLIoAn$fWo>HFq;ZH$->O9$cj>ukyC&f`&*i~IHVu5kleF(JQOGmb@7s9b zS3{o$n=>Z8OqS!N4Mx~B=FS(jfZXRM84u%nY}s_hN%~+dEqZO6Nk5sS?6W2x0zGd$ z#Xyc)^j(*#r2-AB0MRDbi8Z2eYPHL4uc^*^{GD}*S&iXrrj3p~yBg({7ig@f`}KgPKJRh+e4Y8l%LeZ?JCMXdyPzW^H3BAe zx!bT!wd}JzGi>9MNyd$ZxbX>_N$|Jy zlDT41efG@K%E(2_UgwRa&~znR9=qk8&C zYi8!*DXx)4!nd)SnKUE@FKy{QS;rrq)yMjzv%c|(Z?;VmoAhK?a-HaQoKb1FAT%1Q z*7RC>flT9A;8?wk&CSgw;YRdz?B!-^^T~c?lrY(^*3+KwASo*rDGK;ZQBW>| zf&g<+50qV-deM>`B^-`3->AXObz=4u3RFLw2x=K~ zQB^vU?@ra=)P>A#VKI|fwM2Mk{sy(emMKqbBYvT2N(IjAfHWJkqCi?l2h$~u9i7pc+J&hPZfjXGa`@=`HyF3DM_F~f%8)4b`m zo!QC#6kIlQA##Wwbt%WN+uHJ4a+Tg7EyZ5TtUDu``XWg^i*ZtpdU{2M<9A!2zWU^z z>Oqml#X;GQi>`;S5r-z(FlGHvIrvIc1jC%-`jiZ!bLOITM-fqJkI>kKK3M|g;Mi)6=zqQ4B$uSA1aw4%Ku}=yTHyy4e4B4blHsQpj0+N%vswYzG zntDaf|5Q_KP)^jfgm~Wsm9*ZlS$6eXRV}eIX^P22#GZnJ5>8`f3B?$yMAHRC{H%8m=t%%cUz$ibpC6qNJ=P%776Y*iHuv7UET9xn`=W zqRJ!G+nR5?ww2Amplmk|BsYky|F82(HmqA@u~*gi?SXrX3(Q-2V(VZ~lnVRj7}cxO s0*b%Ej)QJW$_|3dCK@3{;#EDVrWC1Mt}H^x0s}wu+sb&{M@|^^Ul56yv;Y7A literal 0 HcmV?d00001 diff --git a/apps/common/locale/it/LC_MESSAGES/django.po b/apps/common/locale/it/LC_MESSAGES/django.po new file mode 100644 index 0000000000..dd5bb70aee --- /dev/null +++ b/apps/common/locale/it/LC_MESSAGES/django.po @@ -0,0 +1,333 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# , 2011. +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n" +"POT-Creation-Date: 2011-11-22 11:26-0400\n" +"PO-Revision-Date: 2011-12-07 18:22+0000\n" +"Last-Translator: pippo64 \n" +"Language-Team: Italian (http://www.transifex.net/projects/p/mayan-edms/team/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: __init__.py:17 +msgid "change password" +msgstr "cambia password" + +#: __init__.py:18 +msgid "user details" +msgstr "dettaglio utente" + +#: __init__.py:19 +msgid "edit details" +msgstr "modifica dettagli" + +#: __init__.py:23 __init__.py:29 +msgid "about" +msgstr "a rigurdo" + +#: __init__.py:24 +msgid "changelog" +msgstr "changelog" + +#: __init__.py:25 +msgid "license" +msgstr "licenza" + +#: forms.py:99 +msgid "Selection" +msgstr "Selezione" + +#: forms.py:131 +msgid "Email" +msgstr "Email" + +#: forms.py:142 +msgid "" +"Please enter a correct email and password. Note that the password fields is " +"case-sensitive." +msgstr "" +"Inserisci un'indirizzo mail valido e una password. Ricorda che il campo " +"password è case-sensitive" + +#: forms.py:144 +msgid "This account is inactive." +msgstr "Questo account è inattivo" + +#: literals.py:24 +msgid "A5" +msgstr "A5" + +#: literals.py:25 +msgid "A4" +msgstr "A4" + +#: literals.py:26 +msgid "A3" +msgstr "A3" + +#: literals.py:27 +msgid "B5" +msgstr "B5" + +#: literals.py:28 +msgid "B4" +msgstr "B4" + +#: literals.py:29 +msgid "Letter" +msgstr "Letter" + +#: literals.py:30 +msgid "Legal" +msgstr "Legal" + +#: literals.py:31 +msgid "Ledger" +msgstr "Mastro" + +#: literals.py:38 +msgid "Portrait" +msgstr "Verticale" + +#: literals.py:39 +msgid "Landscape" +msgstr "Orizontale" + +#: utils.py:291 +msgid "function found" +msgstr "trovata funzione" + +#: utils.py:293 utils.py:295 +#, python-format +msgid "class found: %s" +msgstr "classe trovata:%s" + +#: views.py:24 templates/password_change_done.html:5 +msgid "Your password has been successfully changed." +msgstr "La tua password è stata cambiata con successo" + +#: views.py:41 +msgid "No action selected." +msgstr "Nessuna azione selezionata" + +#: views.py:45 +msgid "Must select at least one item." +msgstr "Devi selezionare un item" + +#: views.py:86 +#, python-format +msgid "%(selection)s added successfully added to %(right_list_title)s." +msgstr "%(selection)s aggiunto con successo a %(right_list_title)s." + +#: views.py:89 views.py:106 +#, python-format +msgid "Unable to add %(selection)s to %(right_list_title)s." +msgstr "Impossibile aggiungere %(selection)s a %(right_list_title)s." + +#: views.py:103 +#, python-format +msgid "%(selection)s added successfully removed from %(right_list_title)s." +msgstr "" +"%(selection)s aggiunto correttamente rimosso dal %(right_list_title)s." + +#: views.py:121 +msgid "Add" +msgstr "Aggiungi" + +#: views.py:132 +msgid "Remove" +msgstr "Rimuovi" + +#: views.py:155 +msgid "current user details" +msgstr "dettagli dell'utente corrente" + +#: views.py:172 +msgid "Current user's details updated." +msgstr "Dettagli dell'utente corrente aggiornati" + +#: views.py:181 +msgid "edit current user details" +msgstr "modifica i dettagli dell'utente corrente" + +#: views.py:207 +msgid "Changelog" +msgstr "Changelog" + +#: views.py:220 +msgid "License" +msgstr "Licenza" + +#: widgets.py:58 +msgid "None" +msgstr "Nessuno" + +#: conf/settings.py:15 +msgid "" +"Temporary directory used site wide to store thumbnails, previews and " +"temporary files. If none is specified, one will be created using " +"tempfile.mkdtemp()" +msgstr "" +"Directory temporanea utilizzata a livello di sito per thumbnails, anteprime " +"e file temporanei. Se non viene specificato, ne verrà creata utilizzando " +"tempfile.mkdtemp()" + +#: conf/settings.py:65 +msgid "" +"Controls the mechanism used to authenticated user. Options are: username, " +"email" +msgstr "" +"Controllo del meccanismo di autenticazione. Le opzioni possibili " +"sono:username,email" + +#: templates/403.html:3 templates/403.html.py:7 +msgid "Insufficient permissions" +msgstr "Permessi insufficienti" + +#: templates/403.html:9 +msgid "You don't have enough permissions for this operation." +msgstr "Non hai i permessi per effettuare questa operazione." + +#: templates/404.html:3 templates/404.html.py:7 +msgid "Page not found" +msgstr "Pagina non trovata" + +#: templates/404.html:9 +msgid "Sorry, but the requested page could not be found." +msgstr "Scusa ma la pagina richiesta non è disponibile" + +#: templates/calculate_form_title.html:11 +#, python-format +msgid "Details for %(object_name)s: %(object)s" +msgstr "Dettagli per %(object_name)s: %(object)s" + +#: templates/calculate_form_title.html:13 +#, python-format +msgid "Details for: %(object)s" +msgstr "Detaglio per: %(object)s" + +#: templates/calculate_form_title.html:18 +#, python-format +msgid "Edit %(object_name)s:" +msgstr "Modifica %(object_name)s:" + +#: templates/calculate_form_title.html:20 +msgid "Edit" +msgstr "Modifica" + +#: templates/calculate_form_title.html:24 +#, python-format +msgid "Create new %(object_name)s" +msgstr "Crea nuovo %(object_name)s" + +#: templates/calculate_form_title.html:26 +msgid "Create" +msgstr "Crea" + +#: templates/generic_assign_remove.html:3 +#, python-format +msgid "Assign %(title)s %(object)s" +msgstr "Assigna %(title)s %(object)s" + +#: templates/generic_confirm.html:3 templates/generic_confirm.html.py:18 +msgid "Confirm" +msgstr "Conferma" + +#: templates/generic_confirm.html:16 +msgid "Confirm delete" +msgstr "Conferma la cancellazione" + +#: templates/generic_confirm.html:32 +msgid "form icon" +msgstr "icona del modulo" + +#: templates/generic_confirm.html:40 +#, python-format +msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +msgstr "Sei sicuro di voler cancellare %(object_name)s: %(object)s?" + +#: templates/generic_confirm.html:42 +#, python-format +msgid "Are you sure you wish to delete: %(object)s?" +msgstr "Sei sicuro di volr cancellare: %(object)s?" + +#: templates/generic_confirm.html:50 +msgid "Yes" +msgstr "Si" + +#: templates/generic_confirm.html:54 +msgid "No" +msgstr "No" + +#: templates/generic_form_instance.html:37 +#: templates/generic_form_subtemplate.html:52 +msgid "required" +msgstr "richiesto" + +#: templates/generic_form_subtemplate.html:76 +#: templates/generic_form_subtemplate.html:78 +#: templates/generic_list_horizontal_subtemplate.html:51 +#: templates/generic_list_horizontal_subtemplate.html:178 +#: templates/generic_list_subtemplate.html:52 +#: templates/generic_list_subtemplate.html:178 +msgid "Save" +msgstr "Salva" + +#: templates/generic_form_subtemplate.html:76 +#: templates/generic_form_subtemplate.html:78 +#: templates/generic_list_horizontal_subtemplate.html:51 +#: templates/generic_list_horizontal_subtemplate.html:178 +#: templates/generic_list_subtemplate.html:52 +#: templates/generic_list_subtemplate.html:178 +msgid "Submit" +msgstr "Sottometti" + +#: templates/generic_list.html:6 templates/generic_list_horizontal.html:6 +#, python-format +msgid "List of %(stripped_title)s" +msgstr "Lista di %(stripped_title)s" + +#: templates/generic_list_horizontal_subtemplate.html:23 +#: templates/generic_list_subtemplate.html:24 +#, python-format +msgid "" +"List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +"%(page_number)s of %(total_pages)s)" +msgstr "" +"Lista di %(title)s (%(start)s - %(end)s fuori %(total)s) (Page " +"%(page_number)s of %(total_pages)s)" + +#: templates/generic_list_horizontal_subtemplate.html:25 +#: templates/generic_list_subtemplate.html:26 +#, python-format +msgid "List of %(title)s (%(total)s)" +msgstr "Lista di %(title)s (%(total)s)" + +#: templates/generic_list_subtemplate.html:72 +msgid "Identifier" +msgstr "Identificatore" + +#: templates/generic_list_subtemplate.html:152 +#, python-format +msgid "There are no %(stripped_title)s" +msgstr "Non ci sono %(stripped_title)s" + +#: templates/login.html:5 +msgid "Login" +msgstr "Login" + +#: templates/password_change_done.html:3 templates/password_change_form.html:3 +#: templates/password_change_form.html:5 +msgid "Password change" +msgstr "Cambia password" + + diff --git a/apps/converter/locale/it/LC_MESSAGES/django.mo b/apps/converter/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..72cbfdd28e96e44641807cba5841648db40f9397 GIT binary patch literal 501 zcmYjNO-~y!5T$BQd+fP~sl)-)PV8Nv3Z|(@$wrElg(z8iH;LJ}+O=2qYy&@pU&DXt zZ|Q7PL7)6&kNoE2&F}Z`o(>pqm>-yj%(u+X%pODLGk>1*-D_U32>z#86V5jH!-QzP zQ&8wf?I52Nt7K_f9|((B*$sa0s)(gmuqA4h5S68EcQ;u3Mg$*qus(>U&lNVt&ctMK zQ{q)Hnz$@ZG#Le%OjG2OWss&S`-1XRN*3bM{IY%f|8?>lPbA1wb$0eiGLpHDgk{h! z)|z}!Fuk46;d)%;@HH>Sv-#zCGFj%U)i;*9s?(Lh(&$FPjC5_;)zQD%ce~wy`a<^J zJPe#6(e5`9MY}hFX46DLoGmPg&Kg06AuLlYIa_HP(R*#+#Mqaz0&N01&T G2Y&#?){|ub literal 0 HcmV?d00001 diff --git a/apps/converter/locale/it/LC_MESSAGES/django.po b/apps/converter/locale/it/LC_MESSAGES/django.po new file mode 100644 index 0000000000..5e8e9ffb0a --- /dev/null +++ b/apps/converter/locale/it/LC_MESSAGES/django.po @@ -0,0 +1,934 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n" +"POT-Creation-Date: 2011-11-22 11:26-0400\n" +"PO-Revision-Date: 2011-09-30 04:55+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Italian (http://www.transifex.net/projects/p/mayan-edms/team/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: __init__.py:10 +msgid "file formats" +msgstr "" + +#: literals.py:19 +msgid "Resize" +msgstr "" + +#: literals.py:20 +msgid "Resize." +msgstr "" + +#: literals.py:22 literals.py:37 +msgid "width" +msgstr "" + +#: literals.py:23 literals.py:38 +msgid "height" +msgstr "" + +#: literals.py:27 +msgid "Rotate" +msgstr "" + +#: literals.py:28 +msgid "Rotate by n degress." +msgstr "" + +#: literals.py:30 +msgid "degrees" +msgstr "" + +#: literals.py:34 +msgid "Density" +msgstr "" + +#: literals.py:35 +msgid "Change the resolution (ie: DPI) without resizing." +msgstr "" + +#: literals.py:42 +msgid "Zoom" +msgstr "" + +#: literals.py:43 +msgid "Zoom by n percent." +msgstr "" + +#: literals.py:45 +msgid "percent" +msgstr "" + +#: literals.py:51 +msgid "Hasselblad Photo RAW, CFV/H3D39II" +msgstr "" + +#: literals.py:52 literals.py:53 +msgid "Photoshop resource format" +msgstr "" + +#: literals.py:54 +msgid "Photoshop resource text format" +msgstr "" + +#: literals.py:55 +msgid "Photoshop resource wide text format" +msgstr "" + +#: literals.py:57 +msgid "Raw alpha samples" +msgstr "" + +#: literals.py:58 +msgid "Adobe Illustrator CS2" +msgstr "" + +#: literals.py:59 +msgid "Raw application information" +msgstr "" + +#: literals.py:60 +msgid "Raw JPEG binary data" +msgstr "" + +#: literals.py:61 +msgid "PFS: 1st Publisher Clip Art" +msgstr "" + +#: literals.py:62 +msgid "Sony Alpha DSLR Raw Image Format" +msgstr "" + +#: literals.py:63 +msgid "Microsoft Audio/Visual Interleaved" +msgstr "" + +#: literals.py:64 +msgid "AVS X image" +msgstr "" + +#: literals.py:66 +msgid "Raw blue samples" +msgstr "" + +#: literals.py:67 +msgid "Raw blue, green, and red samples" +msgstr "" + +#: literals.py:68 +msgid "Raw blue, green, red and alpha samples" +msgstr "" + +#: literals.py:69 +msgid "Microsoft Windows bitmap image" +msgstr "" + +#: literals.py:70 +msgid "Microsoft Windows bitmap image version 2" +msgstr "" + +#: literals.py:71 +msgid "Microsoft Windows bitmap image version 3" +msgstr "" + +#: literals.py:72 +msgid "BRF ASCII Braille format" +msgstr "" + +#: literals.py:73 +msgid "Raw blue, red, and green samples" +msgstr "" + +#: literals.py:75 +msgid "Raw cyan samples" +msgstr "" + +#: literals.py:76 literals.py:181 +msgid "Magick Persistent Cache image format" +msgstr "" + +#: literals.py:77 literals.py:78 +msgid "Continuous Acquisition and Life-cycle Support Type 1 image" +msgstr "" + +#: literals.py:79 +msgid "Image caption" +msgstr "" + +#: literals.py:80 +msgid "Cineon Image File" +msgstr "" + +#: literals.py:81 +msgid "Cisco IP phone image format" +msgstr "" + +#: literals.py:82 +msgid "Image Clip Mask" +msgstr "" + +#: literals.py:83 +msgid "Raw cyan, magenta, yellow, and black samples" +msgstr "" + +#: literals.py:84 +msgid "Raw cyan, magenta, yellow, black, and opacity samples" +msgstr "" + +#: literals.py:85 literals.py:86 +msgid "Canon Digital Camera Raw Image Format" +msgstr "" + +#: literals.py:87 +msgid "Microsoft Cursor Icon" +msgstr "" + +#: literals.py:88 +msgid "DR Halo" +msgstr "" + +#: literals.py:90 +msgid "Digital Imaging and Communications in Medicine image" +msgstr "" + +#: literals.py:91 +msgid "Kodak Digital Camera Raw Image File" +msgstr "" + +#: literals.py:92 +msgid "ZSoft IBM PC multi-page Paintbrush" +msgstr "" + +#: literals.py:93 +msgid "Microsoft DirectDraw Surface" +msgstr "" + +#: literals.py:94 +msgid "Multi-face font package (Freetype 2.4.2)" +msgstr "" + +#: literals.py:95 +msgid "Déjà vu" +msgstr "" + +#: literals.py:96 +msgid "Adobe Digital Negative" +msgstr "" + +#: literals.py:97 +msgid "Graphviz" +msgstr "" + +#: literals.py:98 +msgid "SMPTE 268M-2003 (DPX 2.0)" +msgstr "" + +#: literals.py:100 +msgid "Encapsulated Portable Document Format" +msgstr "" + +#: literals.py:101 literals.py:106 +msgid "Adobe Encapsulated PostScript Interchange format" +msgstr "" + +#: literals.py:102 literals.py:105 +msgid "Adobe Encapsulated PostScript" +msgstr "" + +#: literals.py:103 +msgid "Adobe Level II Encapsulated PostScript" +msgstr "" + +#: literals.py:104 +msgid "Adobe Level III Encapsulated PostScript" +msgstr "" + +#: literals.py:107 +msgid "Adobe Encapsulated PostScript with TIFF preview" +msgstr "" + +#: literals.py:108 +msgid "Adobe Level II Encapsulated PostScript with TIFF preview" +msgstr "" + +#: literals.py:109 +msgid "Adobe Level III Encapsulated PostScript with TIFF preview" +msgstr "" + +#: literals.py:110 +msgid "Epson RAW Format" +msgstr "" + +#: literals.py:111 +msgid "Exif digital camera binary data" +msgstr "" + +#: literals.py:112 +msgid "High Dynamic-range (HDR)" +msgstr "" + +#: literals.py:114 +msgid "Group 3 FAX (Not TIFF Group3 FAX)" +msgstr "" + +#: literals.py:115 +msgid "Autodesk FLI animations file" +msgstr "" + +#: literals.py:116 +msgid "Autodesk FLC animations file" +msgstr "" + +#: literals.py:117 literals.py:120 +msgid "Flexible Image Transport System" +msgstr "" + +#: literals.py:118 +msgid "Kodak FlashPix file" +msgstr "" + +#: literals.py:119 literals.py:225 +msgid "Plasma fractal image" +msgstr "" + +#: literals.py:122 +msgid "Raw green samples" +msgstr "" + +#: literals.py:123 +msgid "Group 3 FAX" +msgstr "" + +#: literals.py:124 +msgid "Raw green, blue, and red samples" +msgstr "" + +#: literals.py:125 +msgid "GIMP brush file" +msgstr "" + +#: literals.py:126 +msgid "CompuServe graphics interchange format (version 89a)" +msgstr "" + +#: literals.py:127 +msgid "CompuServe graphics interchange format (version 87a)" +msgstr "" + +#: literals.py:128 +msgid "Gradual passing from one shade to another" +msgstr "" + +#: literals.py:129 +msgid "Raw gray samples" +msgstr "" + +#: literals.py:130 +msgid "Raw green, red, and blue samples" +msgstr "" + +#: literals.py:131 +msgid "Raw CCITT Group4" +msgstr "" + +#: literals.py:133 +msgid "Histogram of the image" +msgstr "" + +#: literals.py:134 +msgid "HRZ: Slow scan TV" +msgstr "" + +#: literals.py:135 literals.py:136 literals.py:255 +msgid "Hypertext Markup Language and a client-side image map" +msgstr "" + +#: literals.py:138 literals.py:264 literals.py:279 literals.py:283 +msgid "Truevision Targa image" +msgstr "" + +#: literals.py:139 literals.py:140 +msgid "ICC Color Profile" +msgstr "" + +#: literals.py:141 literals.py:142 +msgid "Microsoft Icon" +msgstr "" + +#: literals.py:143 +msgid "Hald CLUT identity image" +msgstr "" + +#: literals.py:144 +msgid "LabEye image format" +msgstr "" + +#: literals.py:145 +msgid "GraphicsMagick Embedded Image" +msgstr "" + +#: literals.py:146 +msgid "The image format and characteristics" +msgstr "" + +#: literals.py:147 +msgid "Base64-encoded inline images" +msgstr "" + +#: literals.py:148 +msgid "IPL Image Sequence" +msgstr "" + +#: literals.py:149 +msgid "IPTC Newsphoto" +msgstr "" + +#: literals.py:150 literals.py:151 +msgid "IPTC Newsphoto text format" +msgstr "" + +#: literals.py:152 +msgid "ISO/TR 11548-1 format" +msgstr "" + +#: literals.py:154 literals.py:157 +msgid "JPEG-2000 Code Stream Syntax" +msgstr "" + +#: literals.py:155 +msgid "JPEG Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +msgstr "" + +#: literals.py:156 +msgid "JPEG-2000 JP2 File Format Syntax" +msgstr "" + +#: literals.py:158 literals.py:159 +msgid "Joint Photographic Experts Group JFIF format (IJG JPEG 62)" +msgstr "" + +#: literals.py:160 +msgid "JPEG-2000 File Format Syntax" +msgstr "" + +#: literals.py:162 +msgid "Raw black samples" +msgstr "" + +#: literals.py:163 literals.py:164 +msgid "Kodak Digital Camera Raw Image Format" +msgstr "" + +#: literals.py:166 +msgid "Image label" +msgstr "" + +#: literals.py:168 +msgid "Raw magenta samples" +msgstr "" + +#: literals.py:169 literals.py:179 literals.py:182 literals.py:183 +msgid "MPEG Video Stream" +msgstr "" + +#: literals.py:170 +msgid "Raw MPEG-4 Video" +msgstr "" + +#: literals.py:171 +msgid "Colormap intensities and indices" +msgstr "" + +#: literals.py:172 +msgid "MATLAB image format" +msgstr "" + +#: literals.py:173 +msgid "MATTE raw opacity format" +msgstr "" + +#: literals.py:174 +msgid "8-bit McIdas area file" +msgstr "" + +#: literals.py:175 +msgid "Microsoft Image Composer (MIC) file" +msgstr "" + +#: literals.py:176 +msgid "Magick Image File Format" +msgstr "" + +#: literals.py:177 +msgid "" +"Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +msgstr "" + +#: literals.py:178 +msgid "Raw Bi-level bitmap in least-significant-byte first order" +msgstr "" + +#: literals.py:180 +msgid "MPEG-4 Video Stream" +msgstr "" + +#: literals.py:184 +msgid "Sony (Minolta) Raw Image File" +msgstr "" + +#: literals.py:185 +msgid "Magick Scripting Language" +msgstr "" + +#: literals.py:186 +msgid "Windows 1 and 2 MSP file format" +msgstr "" + +#: literals.py:187 +msgid "ImageMagick's own SVG internal renderer" +msgstr "" + +#: literals.py:188 +msgid "MTV Raytracing image format" +msgstr "" + +#: literals.py:189 +msgid "Magick Vector Graphics" +msgstr "" + +#: literals.py:191 +msgid "Nikon Digital SLR Camera Raw Image File" +msgstr "" + +#: literals.py:192 +msgid "Constant image of uniform color" +msgstr "" + +#: literals.py:194 +msgid "Raw opacity samples" +msgstr "" + +#: literals.py:195 +msgid "Olympus Digital Camera Raw Image File" +msgstr "" + +#: literals.py:196 +msgid "On-the-air bitmap" +msgstr "" + +#: literals.py:197 +msgid "Open Type font (Freetype 2.4.2)" +msgstr "" + +#: literals.py:199 +msgid "Xv thumbnail format" +msgstr "" + +#: literals.py:200 literals.py:277 +msgid "16bit/pixel interleaved YUV" +msgstr "" + +#: literals.py:201 +msgid "Palm pixmap" +msgstr "" + +#: literals.py:202 +msgid "Common 2-dimensional bitmap format" +msgstr "" + +#: literals.py:203 +msgid "Predefined pattern" +msgstr "" + +#: literals.py:204 +msgid "Portable bitmap format (black and white)" +msgstr "" + +#: literals.py:205 literals.py:206 +msgid "Photo CD" +msgstr "" + +#: literals.py:207 +msgid "Page Control Language" +msgstr "" + +#: literals.py:208 literals.py:221 +msgid "Apple Macintosh QuickDraw/PICT" +msgstr "" + +#: literals.py:209 +msgid "ZSoft IBM PC Paintbrush" +msgstr "" + +#: literals.py:210 +msgid "Palm Database ImageViewer Format" +msgstr "" + +#: literals.py:211 +msgid "Portable Document Format" +msgstr "" + +#: literals.py:212 +msgid "Portable Document Archive Format" +msgstr "" + +#: literals.py:213 +msgid "Pentax Electronic File" +msgstr "" + +#: literals.py:214 +msgid "Embrid Embroidery Format" +msgstr "" + +#: literals.py:215 +msgid "Postscript Type 1 font (ASCII) (Freetype 2.4.2)" +msgstr "" + +#: literals.py:216 +msgid "Postscript Type 1 font (binary) (Freetype 2.4.2)" +msgstr "" + +#: literals.py:217 +msgid "Portable float format" +msgstr "" + +#: literals.py:218 +msgid "Portable graymap format (gray scale)" +msgstr "" + +#: literals.py:219 +msgid "JPEG-2000 VM Format" +msgstr "" + +#: literals.py:220 +msgid "Personal Icon" +msgstr "" + +#: literals.py:222 +msgid "Alias/Wavefront RLE image format" +msgstr "" + +#: literals.py:223 +msgid "PIXAR raster file" +msgstr "" + +#: literals.py:224 +msgid "Joint Photographic Experts Group JFIF format (62)" +msgstr "" + +#: literals.py:226 +msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +msgstr "" + +#: literals.py:227 +msgid "" +"24-bit RGB PNG, opaque only (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +msgstr "" + +#: literals.py:228 +msgid "" +"32-bit RGBA PNG, semitransparency OK (libpng 1.2.42,1.2.44, zlib " +"1.2.3.3,1.2.3.4)" +msgstr "" + +#: literals.py:229 +msgid "" +"8-bit indexed PNG, binary transparency only (libpng 1.2.42,1.2.44, zlib " +"1.2.3.3,1.2.3.4)" +msgstr "" + +#: literals.py:230 +msgid "Portable anymap" +msgstr "" + +#: literals.py:231 +msgid "Portable pixmap format (color)" +msgstr "" + +#: literals.py:232 +msgid "Show a preview an image enhancement, effect, or f/x" +msgstr "" + +#: literals.py:233 +msgid "Adobe PostScript" +msgstr "" + +#: literals.py:234 +msgid "Adobe Level II PostScript" +msgstr "" + +#: literals.py:235 +msgid "Adobe Level III PostScript" +msgstr "" + +#: literals.py:236 +msgid "Adobe Large Document Format" +msgstr "" + +#: literals.py:237 +msgid "Adobe Photoshop bitmap" +msgstr "" + +#: literals.py:238 +msgid "Pyramid encoded TIFF" +msgstr "" + +#: literals.py:239 literals.py:253 +msgid "Seattle Film Works" +msgstr "" + +#: literals.py:241 +msgid "Raw red samples" +msgstr "" + +#: literals.py:242 +msgid "Fuji CCD-RAW Graphic File" +msgstr "" + +#: literals.py:243 literals.py:259 +msgid "SUN Rasterfile" +msgstr "" + +#: literals.py:244 +msgid "Raw red, blue, and green samples" +msgstr "" + +#: literals.py:245 +msgid "Raw red, green, and blue samples" +msgstr "" + +#: literals.py:246 +msgid "Raw red, green, blue, and matte samples" +msgstr "" + +#: literals.py:247 +msgid "Raw red, green, blue, and opacity samples" +msgstr "" + +#: literals.py:248 +msgid "Alias/Wavefront image" +msgstr "" + +#: literals.py:249 +msgid "Utah Run length encoded image" +msgstr "" + +#: literals.py:251 +msgid "ZX-Spectrum SCREEN$" +msgstr "" + +#: literals.py:252 +msgid "Scitex HandShake" +msgstr "" + +#: literals.py:254 +msgid "Irix RGB image" +msgstr "" + +#: literals.py:256 +msgid "Sony Raw Format 2" +msgstr "" + +#: literals.py:257 +msgid "Sony Raw Format" +msgstr "" + +#: literals.py:258 +msgid "Steganographic image" +msgstr "" + +#: literals.py:260 +msgid "Scalable Vector Graphics (XML 2.7.6, RSVG 2.32.0)" +msgstr "" + +#: literals.py:261 +msgid "Scalable Vector Graphics (ZIP compressed) (XML 2.7.6, RSVG 2.32.0)" +msgstr "" + +#: literals.py:263 literals.py:273 +msgid "Text" +msgstr "" + +#: literals.py:265 +msgid "EXIF Profile Thumbnail" +msgstr "" + +#: literals.py:266 +msgid "Tagged Image File Format (LIBTIFF, Version 3.9.4)" +msgstr "" + +#: literals.py:267 +msgid "Tagged Image File Format (64-bit) (LIBTIFF, Version 3.9.4)" +msgstr "" + +#: literals.py:268 +msgid "Tile image with a texture" +msgstr "" + +#: literals.py:269 +msgid "PSX TIM" +msgstr "" + +#: literals.py:270 +msgid "TOPOL X Image" +msgstr "" + +#: literals.py:271 +msgid "TrueType font collection (Freetype 2.4.2)" +msgstr "" + +#: literals.py:272 +msgid "TrueType font (Freetype 2.4.2)" +msgstr "" + +#: literals.py:275 +msgid "Unicode Text format" +msgstr "" + +#: literals.py:276 +msgid "X-Motif UIL table" +msgstr "" + +#: literals.py:280 +msgid "VICAR rasterfile format" +msgstr "" + +#: literals.py:281 +msgid "Visual Image Directory" +msgstr "" + +#: literals.py:282 literals.py:299 +msgid "Khoros Visualization image" +msgstr "" + +#: literals.py:285 +msgid "Wireless Bitmap (level 0) image" +msgstr "" + +#: literals.py:286 +msgid "Windows Meta File" +msgstr "" + +#: literals.py:287 +msgid "Word Perfect Graphics" +msgstr "" + +#: literals.py:288 +msgid "Windows Media Video" +msgstr "" + +#: literals.py:289 +msgid "Compressed Windows Meta File" +msgstr "" + +#: literals.py:291 +msgid "X Window System" +msgstr "" + +#: literals.py:292 +msgid "Foveon X3 (Sigma/Polaroid) Raw picture file" +msgstr "" + +#: literals.py:293 +msgid "X Windows system bitmap (black and white)" +msgstr "" + +#: literals.py:294 +msgid "Constant image uniform color" +msgstr "" + +#: literals.py:295 +msgid "GIMP image" +msgstr "" + +#: literals.py:296 +msgid "Adobe XML metadata" +msgstr "" + +#: literals.py:297 +msgid "X Windows system pixmap (color)" +msgstr "" + +#: literals.py:298 +msgid "Microsoft XML Paper Specification" +msgstr "" + +#: literals.py:300 +msgid "XV thumbnail file" +msgstr "" + +#: literals.py:301 +msgid "X Windows system window dump (color)" +msgstr "" + +#: literals.py:303 +msgid "Raw yellow samples" +msgstr "" + +#: literals.py:304 +msgid "CCIR 601 4:1:1 or 4:2:2 (8-bit only)" +msgstr "" + +#: views.py:15 +msgid "suported file formats" +msgstr "" + +#: views.py:20 +msgid "name" +msgstr "" + +#: views.py:24 +msgid "description" +msgstr "" + +#: conf/settings.py:11 +msgid "File path to imagemagick's convert program." +msgstr "" + +#: conf/settings.py:12 +msgid "File path to imagemagick's identify program." +msgstr "" + +#: conf/settings.py:13 +msgid "File path to graphicsmagick's program." +msgstr "" + +#: conf/settings.py:15 +msgid "" +"Graphics conversion backend to use. Options are: " +"converter.backends.imagemagick, converter.backends.graphicsmagick and " +"converter.backends.python." +msgstr "" + +#: conf/settings.py:16 +msgid "Path to the unoconv program." +msgstr "" + +#: conf/settings.py:17 +msgid "" +"Use alternate method of connection to LibreOffice using a pipe, it is slower" +" but less prone to segmentation faults." +msgstr "" + +#: templates/converter_file_formats_help.html:3 +msgid "Help" +msgstr "" + +#: templates/converter_file_formats_help.html:4 +#, python-format +msgid "" +"These are the file formats supported by the currently selected converter " +"backend. In this case: '%(backend)s'" +msgstr "" + + diff --git a/apps/django_gpg/locale/it/LC_MESSAGES/django.mo b/apps/django_gpg/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..78fac47634810def560210d12c106f6b5c48b059 GIT binary patch literal 521 zcmZutO;6)65M>3Y9656^(jGuCu~VUL*HDBgMXIzB6=e7BwnJ)^*pWS!9p+EwCi9TlVZeOh&)B|?Fw)?z}Yvg~y4-Op;ZN~tSuZ}A~@ zNU~XPC(34R3~*6LNt`V$$^9gskB;>q;#KGfSVNYQe#@YJ;iZ(uX=~;hO(p9QKaI`a0ZmVs|LA{bb_} DvA~`_ literal 0 HcmV?d00001 diff --git a/apps/django_gpg/locale/it/LC_MESSAGES/django.po b/apps/django_gpg/locale/it/LC_MESSAGES/django.po new file mode 100644 index 0000000000..5fc3342cd5 --- /dev/null +++ b/apps/django_gpg/locale/it/LC_MESSAGES/django.po @@ -0,0 +1,292 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n" +"POT-Creation-Date: 2011-12-06 02:06-0400\n" +"PO-Revision-Date: 2011-12-06 06:07+0000\n" +"Last-Translator: rosarior \n" +"Language-Team: Italian (http://www.transifex.net/projects/p/mayan-edms/team/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: __init__.py:14 +msgid "Verify document signatures" +msgstr "" + +#: __init__.py:15 +msgid "View keys" +msgstr "" + +#: __init__.py:16 +msgid "Delete keys" +msgstr "" + +#: __init__.py:17 +msgid "Query keyservers" +msgstr "" + +#: __init__.py:18 +msgid "Import key from keyservers" +msgstr "" + +#: __init__.py:19 +msgid "Upload detached signatures" +msgstr "" + +#: __init__.py:20 +msgid "Download detached signatures" +msgstr "" + +#: __init__.py:23 +msgid "Signatures" +msgstr "" + +#: __init__.py:39 views.py:67 +msgid "private keys" +msgstr "" + +#: __init__.py:40 views.py:70 +msgid "public keys" +msgstr "" + +#: __init__.py:41 +msgid "delete" +msgstr "" + +#: __init__.py:42 +msgid "query keyservers" +msgstr "" + +#: __init__.py:43 +msgid "import" +msgstr "" + +#: __init__.py:44 +msgid "upload signature" +msgstr "" + +#: __init__.py:45 +msgid "download signature" +msgstr "" + +#: __init__.py:46 +msgid "key management" +msgstr "" + +#: __init__.py:49 +msgid "signatures" +msgstr "" + +#: api.py:22 +msgid "Public" +msgstr "" + +#: api.py:23 +msgid "Secret" +msgstr "" + +#: api.py:31 api.py:36 +msgid "RSA" +msgstr "" + +#: api.py:32 +msgid "DSA" +msgstr "" + +#: api.py:37 +msgid "Elgamal" +msgstr "" + +#: api.py:51 +msgid "Bad signature." +msgstr "" + +#: api.py:55 +msgid "Document not signed or invalid signature." +msgstr "" + +#: api.py:59 +msgid "Signature error." +msgstr "" + +#: api.py:63 +msgid "Document is signed but no public key is available for verification." +msgstr "" + +#: api.py:67 +msgid "Document is signed, and signature is good." +msgstr "" + +#: api.py:71 +msgid "Document is signed with a valid signature." +msgstr "" + +#: api.py:144 +msgid "unknown" +msgstr "" + +#: forms.py:11 +msgid "Term" +msgstr "" + +#: forms.py:12 +msgid "Name, e-mail, key ID or key fingerprint to look for." +msgstr "" + +#: forms.py:18 +msgid "Signature file" +msgstr "" + +#: views.py:45 +#, python-format +msgid "Key: %s, imported successfully." +msgstr "" + +#: views.py:48 +#, python-format +msgid "Unable to import key id: %s" +msgstr "" + +#: views.py:52 +msgid "Import key" +msgstr "" + +#: views.py:53 +#, python-format +msgid "Are you sure you wish to import key id: %s?" +msgstr "" + +#: views.py:78 +msgid "Key ID" +msgstr "" + +#: views.py:82 +msgid "Owner" +msgstr "" + +#: views.py:102 +#, python-format +msgid "Key: %s, deleted successfully." +msgstr "" + +#: views.py:109 +msgid "Delete key" +msgstr "" + +#: views.py:111 +#, python-format +msgid "" +"Are you sure you wish to delete key: %s? If you try to delete a public key " +"that is part of a public/private pair the private key will be deleted as " +"well." +msgstr "" + +#: views.py:129 +msgid "Query key server" +msgstr "" + +#: views.py:142 +msgid "results" +msgstr "" + +#: views.py:147 +msgid "ID" +msgstr "" + +#: views.py:151 +msgid "type" +msgstr "" + +#: views.py:155 +msgid "creation date" +msgstr "" + +#: views.py:159 +msgid "disabled" +msgstr "" + +#: views.py:163 +msgid "expiration date" +msgstr "" + +#: views.py:167 +msgid "expired" +msgstr "" + +#: views.py:171 +msgid "length" +msgstr "" + +#: views.py:175 +msgid "revoked" +msgstr "" + +#: views.py:180 +msgid "Identifies" +msgstr "" + +#: views.py:205 +#, python-format +msgid "Signature status: %(widget)s %(text)s" +msgstr "" + +#: views.py:212 +msgid "embedded" +msgstr "" + +#: views.py:214 +msgid "detached" +msgstr "" + +#: views.py:219 +#, python-format +msgid "Signature ID: %s" +msgstr "" + +#: views.py:220 +#, python-format +msgid "Signature type: %s" +msgstr "" + +#: views.py:221 +#, python-format +msgid "Key ID: %s" +msgstr "" + +#: views.py:222 +#, python-format +msgid "Timestamp: %s" +msgstr "" + +#: views.py:223 +#, python-format +msgid "Signee: %s" +msgstr "" + +#: views.py:228 +#, python-format +msgid "signature properties for: %s" +msgstr "" + +#: views.py:250 +msgid "Detached signature uploaded successfully." +msgstr "" + +#: views.py:259 +#, python-format +msgid "Upload detached signature for: %s" +msgstr "" + +#: conf/settings.py:13 +msgid "List of keyservers to be queried for unknown keys." +msgstr "" + + diff --git a/apps/document_comments/locale/it/LC_MESSAGES/django.mo b/apps/document_comments/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..518cede71b9f64f7abe8c8b9155d58f69a1bc339 GIT binary patch literal 501 zcmYjN%Wm5+5KPgYbnLl@4bVe^c1=nS3WuqSy0Huxuu{WTdS`4#W+9ORxvG;7>DTmM z@-11#MUnvrHq?_TqaW$?evhH$>cUnWHB zoq|H&YX|wXSSKsf`aoF3%5L#TS4Awnf*nz-gs3d-x|_kqHzN3`gY`i)eXg)Eb|xmv zpCw)fqlwGnRFhGV$uvbiSq5pUvM(slq+}tk%pcpgf31_}IFumI)NuGoGLnUkgk{h! z)|z}!FuPtX;A&Fj@HHu)S|Ri`V1rO}OoIqBN6tCRn;@Avxw^@Z%M zxf?h`qCIRPiuPav&9;exI9pf}r%5p{@|PW@1DRZUN5=6$_bodkbH_z$ZQTWIb~;2u z\n" +"Language-Team: Italian (http://www.transifex.net/projects/p/mayan-edms/team/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: __init__.py:15 +msgid "Create new comments" +msgstr "" + +#: __init__.py:16 +msgid "Delete comments" +msgstr "" + +#: __init__.py:17 +msgid "Edit comments" +msgstr "" + +#: __init__.py:18 +msgid "View comments" +msgstr "" + +#: __init__.py:20 +msgid "Comments" +msgstr "" + +#: __init__.py:26 __init__.py:27 +msgid "delete" +msgstr "" + +#: __init__.py:28 +msgid "add comment" +msgstr "" + +#: __init__.py:29 utils.py:14 +msgid "comments" +msgstr "" + +#: __init__.py:33 +msgid "date" +msgstr "" + +#: __init__.py:37 +msgid "user" +msgstr "" + +#: __init__.py:41 +msgid "comment" +msgstr "" + +#: views.py:27 +msgid "Must provide at least one comment." +msgstr "" + +#: views.py:37 +#, python-format +msgid "Comment \"%s\" deleted successfully." +msgstr "" + +#: views.py:39 +#, python-format +msgid "Error deleting comment \"%(comment)s\": %(error)s" +msgstr "" + +#: views.py:54 +#, python-format +msgid "Are you sure you wish to delete the comment: %s?" +msgstr "" + +#: views.py:56 +#, python-format +msgid "Are you sure you wish to delete the comments: %s?" +msgstr "" + +#: views.py:86 +msgid "Comment added successfully." +msgstr "" + +#: views.py:93 +#, python-format +msgid "Add comment to document: %s" +msgstr "" + +#: views.py:109 +#, python-format +msgid "comments: %s" +msgstr "" + + diff --git a/apps/document_indexing/locale/it/LC_MESSAGES/django.mo b/apps/document_indexing/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..d0eb804bd170782f648845e1ba0dc2ee18f6e7c7 GIT binary patch literal 501 zcmYjN%Wm5+5KPdXbnLl@Ezm=Pc1=n(0*9%KIDT06 z@-11#MbZHWU&lNVt&ctN- zv&5@lG;vv+YBCBknWo4m%OFivc7}2&B@1z7{@A|#|2lb&UnIz(8fKp)BU$K3SO)E4 zt;q)kv+KnIeoTrSzUIYbzW6?wPFMMQ{f(ur>U3qWG`dkRCtX{1b@Ffa{eC~7zL32& zcLQfgw1-VZ(H=~o*)~xSXA4W>G%4mq{<@=dAd@Ta$T%M8zGY`*?zl*;t-FBDPKRh{ zd|l3P^s4Lo-I{>8+xV?@m4eZYrI%3^aImbqplh7@&_o5UeGcO|yMV)UeB$847}C?^ F=n27rlVJb= literal 0 HcmV?d00001 diff --git a/apps/document_indexing/locale/it/LC_MESSAGES/django.po b/apps/document_indexing/locale/it/LC_MESSAGES/django.po new file mode 100644 index 0000000000..063bc16e02 --- /dev/null +++ b/apps/document_indexing/locale/it/LC_MESSAGES/django.po @@ -0,0 +1,205 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n" +"POT-Creation-Date: 2011-11-22 11:26-0400\n" +"PO-Revision-Date: 2011-09-30 04:42+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Italian (http://www.transifex.net/projects/p/mayan-edms/team/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: __init__.py:12 +msgid "View document indexes" +msgstr "" + +#: __init__.py:13 +msgid "Rebuild document indexes" +msgstr "" + +#: __init__.py:15 +msgid "Indexing" +msgstr "" + +#: __init__.py:19 +msgid "index list" +msgstr "" + +#: __init__.py:20 +msgid "go up one level" +msgstr "" + +#: __init__.py:21 __init__.py:23 models.py:26 +msgid "indexes" +msgstr "" + +#: __init__.py:25 +msgid "rebuild indexes" +msgstr "" + +#: __init__.py:25 +msgid "Deletes and creates from scratch all the document indexes." +msgstr "" + +#: __init__.py:27 +msgid "Indexes" +msgstr "" + +#: api.py:83 +msgid "root" +msgstr "" + +#: api.py:139 +#, python-format +msgid "Maximum suffix (%s) count reached." +msgstr "" + +#: api.py:175 +#, python-format +msgid "" +"Error in document indexing update expression: %(expression)s; %(exception)s" +msgstr "" + +#: api.py:178 +#, python-format +msgid "" +"Error updating document index, expression: %(expression)s; %(exception)s" +msgstr "" + +#: api.py:209 +#, python-format +msgid "Unable to delete document indexing node; %s" +msgstr "" + +#: filesystem.py:34 +#, python-format +msgid "Unable to create indexing directory; %s" +msgstr "" + +#: filesystem.py:52 +#, python-format +msgid "" +"Unable to create symbolic link, file exists and could not be deleted: " +"%(filepath)s; %(exc)s" +msgstr "" + +#: filesystem.py:54 +#, python-format +msgid "Unable to create symbolic link: %(filepath)s; %(exc)s" +msgstr "" + +#: filesystem.py:71 +#, python-format +msgid "Unable to delete document symbolic link; %s" +msgstr "" + +#: filesystem.py:83 +#, python-format +msgid "Unable to delete indexing directory; %s" +msgstr "" + +#: models.py:11 +#, python-format +msgid "Available functions: %s" +msgstr "" + +#: models.py:16 +msgid "indexing expression" +msgstr "" + +#: models.py:16 +msgid "Enter a python string expression to be evaluated." +msgstr "" + +#: models.py:18 +msgid "enabled" +msgstr "" + +#: models.py:19 +msgid "link documents" +msgstr "" + +#: models.py:25 models.py:31 views.py:56 +msgid "index" +msgstr "" + +#: models.py:32 +msgid "value" +msgstr "" + +#: models.py:33 +msgid "documents" +msgstr "" + +#: models.py:46 models.py:51 +msgid "index instance" +msgstr "" + +#: models.py:47 +msgid "indexes instances" +msgstr "" + +#: models.py:52 +msgid "document" +msgstr "" + +#: models.py:59 +msgid "document rename count" +msgstr "" + +#: models.py:60 +msgid "documents rename count" +msgstr "" + +#: utils.py:19 +msgid "document indexes" +msgstr "" + +#: views.py:38 +#, python-format +msgid "contents for index: %s" +msgstr "" + +#: views.py:60 +msgid "items" +msgstr "" + +#: views.py:82 +msgid "Are you sure you wish to rebuild all indexes?" +msgstr "" + +#: views.py:83 +msgid "On large databases this operation may take some time to execute." +msgstr "" + +#: views.py:89 +msgid "Index rebuild completed successfully." +msgstr "" + +#: views.py:94 +#, python-format +msgid "Index rebuild error: %s" +msgstr "" + +#: views.py:109 +#, python-format +msgid "indexes containing: %s" +msgstr "" + +#: templates/indexing_help.html:3 +msgid "What are indexes?" +msgstr "" + +#: templates/indexing_help.html:4 +msgid "Indexes group documents into a tree like hierarchical structure." +msgstr "" + + diff --git a/apps/documents/locale/it/LC_MESSAGES/django.mo b/apps/documents/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..e3790f11283091122005f747046decc0f1624b79 GIT binary patch literal 18570 zcmdU$dz4*OeaE-RGl&X^2!b4tkPKvIl0X0_ge2slK@&m}5QsLOx%bS>A@|-h+;i_t z5?U(0tq(xKM=chq52#p+t+t45k@y0ox>#bZ?Xs&ZYjrJat*$QdQSIluALpEV@8qTZ zr)T9i-}Bgy-~R32YwvyY?Gp~a!*D$Yod&(`NMlZVnlV3khTa;p>Ud)|fvdsQ;H}_# z@NsY>c*+Ux`y_ZF&z}O9fd2t51ReRyiVW2Vet6pxcV!>7xDZy@M!Rh;6m_g z{`qI%Q9K`ZlKVangf(+JI1l_V$Uk#Ge^ma9;IZI0LACoG zP<;OYR68$xt})BN>%raNUEpHy)RU0~_)_pJ@U5Ww`8cR{KMOt!eB6J364dyQc%H+H zLCIw&hzQJ`;0wU}{qxtr<9PlKsP=yho(Z0GiZSPb7lG%3HSluq?V$MjNAO~B-l@hc z0M`hazn!4u@y_QPGXj1XRJ%`r$AC|PR5gb&>2zgI1I7O`Q1#aN_t${p_XhBp;OoJa z;O!t&W4;cGkMD!(|J2i+K3oQB9&ZEB06z^z;I}}@?H8chI}RbJztcdCe-u=^D?stN z1(aUA0#vyKgmtqEoB(eJRqhwyRp1eH_9AdQxCOieR6pMXuLghWzi*0|Yo6Z(GWF&@ zQ0+Vnt^&UTO0LH-3D<+`LFv=|pyvBC{`oOb^}Y!n0X_+;z3+i91%CyKkINDM;ozO% zX7FxM^7#oUzD|P~wV#8M_f4S6zXQA%d^dOjxcY22o*7W{_Ii-1Htz?Qf)9X_*AGBM zZ2lV*UnkCY@;wCTLOyTF;H^a49YHcfSQL%kbmZP`6GR~8$1&H3@AI=3#$BA zLFvywfNJ;OLCxonJpKyQxSny2^D_}B{#JnMcRQ$gy&lAL%o{+}e?N!`n)^V_|6UML zm~Vip_j8b@%`qsS#x)A6{EIwp2F2GTD86PvjqBB*^zaVwaPT9b?FU@L^IlNxAGOfc zdoFks&u4%tzrep=1ghUc1US`FDXwgLi@A<6cnhJ_zdj zL*NnMqoC@4&Er3TlKXc-mHRQM@%$20`^OLYc?MN~0jP4rpxU_z6knHt(&H`ueGOE* zEl{q14=BBQBdBrR4Ps*EVNiVjD|ig}T~KoR5vY0lHK_SH`CP}(a!~xO0afoB|NfQW z(L5*M7oJAH;I%w2TV%|o;4NSZ{yn%3ym;8*P2e(~KL^V1{2Uww&l_?6U_1BDqiB)cl=FqZ;QjQ1*K*sPW{W?B+EfQ)cb~sbU@n#n+Jt z`BmU*a3y#*_+s!$5SL}ny^vT1ZUiN#r5Cw4x&c)GuLdQ@`$6^lASiyG0G|c^2s|E? zla(A#@VFQ}f#*%2XgW}`(%bfl{AACN~XM@iMSAqI|C3p(B9n`#a zL5=HfP+H-hT-9`JeKCqU`{mqE4jBq+K37pVSz28!R~aANYu zr-P@0F9fdyF9pTVt)RyFaZv3)2p$f8-akL;@$29@y#F?MGI#_^r1nn-p8*bolG_+4 zJzwLWuLLEh>p->J1U0TUcqI5bP_%n&+Frr-5&T5S^Vn+0E_HYam?|F|UQLf!+k^QrqfB*R{|> z=n?33&>J9KpMb=(#-r=g(BDG8rw1Enm}JAvkZ z6#5-VI;`tL=*{-d{rN1g%s+n-%>BK5^*PWT&?V5HLZ5+j9SKc9pMr)U>8E^>^!MY? zTcN9m%XD|dOLIv^gig7kglx`%md&H z{Jmf^^jzqj&>l$FhoHNl_d@c48=w*B-Ow@6F6dp5t{b4Ep}&LP0(}Mg7<4zJ>*>&T z=#QWmLw^bB`g3Tfy>szs1^4ry$DkXbS?FxYtZp=-&Quaj$CF9aX~(U6B5OC}PMWpy zh})>1)w<23)ftQC=Zm7LcqWO)lcW{ZlSa}>>QUaU)sj4)=r$U=N6hMG)@^m7RNp7t zNs>pMENW++xRXS2(U$9NI%!AUoIh!+leFWS`mDCV_Zl5Xd$O#l7GWmqb`G|gb`tH* zy0GVOX48C1%+wl5+>YWy8TLxE`v0i4TvFUmb55vsLW10*&hF{t(5oGKjYHsVB5fqC zxGA<4hWjD3W1`JW^)MctHGg4vu|p#n%FjB8@%QMV+UV6x8j)_Q`=W6v@KC<*nVLvj zbvy0#?sOxqp^*EVi0*VbJ2 zHWY6nYc#Uiv^5#krsCG5b+6gZXu1*C>~#6J{lgBrAUOrUyJ zP)wnnEjzhkQaxW~E3Sd^*{az7TeU@cT}7c6`(R|QDnUetQ02gU$w}lxy~D|Epo}~5 zc${ngFpnUPoRFF3owQcbd->0@gr4RcU0;zoSnDehT=>DXR+K&XW~&~<#(*865$w## zI!fAY=g;j8ex(qE9cHLNQ=v+K=FwAOpv!~p>0mn$7eo{#HMK^Zljcmtov5AQo^!cn z-jBDlxLuDX+gW$I>OhH;DArUI6L8bkOhzQ(RXdsNHhkKJ!*9l|ZrsR6oY}|qnYh(a zFu)OabJ>4AD2n7mcWv|sKGMmSzQ$1l&W)ngVST@Rt<8Gr9HSx!I%GmktC?>Av2}35iN;?&QYdJ%prB+v`-yVGM$9@Hh%?ZE=`SXCIWa64(Ech6ma}H4hKr1+cK`!xfg^4K*NujWGS~!15X31(Nn{{g~p2B*ne?3+#!)6jK<@#DZsBE?w?;5HXHCx^0 zIK!Z(8*;SJCuxiPcos#Y#kdw7H^%jr43ktWf!>;vz4X1A}MAj3k#p~1#saO zRKza~wT+u^V>)G2q;#^2EeAx}p)AXUt<&Vt(zbfV8;Ety#EzvHs=bSr4lN2Vmn<&c za%*4j#>NrwxX^5iC;3xh%$lpDFOCateMGl&9bUSUvnl1qneL>ciEg1!BWe);Lcr%a zYG$CFR&m|a1O-u^(BJ|*xZESFNroKprImG}oh?G&qSEO*9hf5Q%K;@6Myf9CBNtd$ zLjO{`*e>R_g>`z-O>VBbYQtJ{)tt*`2CixHt7p03vYyR!;EI3D0qeJDc8XmlGL-R# zd~Dy6n-pq#I%~5VG@)Q=xg}+hU>amG_1&RDZ!b@rKY0HazO(aiEqha{64<2$$z~#L z%aO>Ct+XmLXkxq3#u^&o7yd(&5}I|vV4-jdY>ZaV~X-t zq`jl?g~BY;n8mSSU%61pPyB9hIy!Yo?XUlip{iY@?5-BD|Y^rz8L+9dW2AXD~6@L zoiIeZ%Xd&aimqul#e`G)=-QV1z+%*-{bTdF&_Q0j>P>I$AZ`6QHVvsmL@9^Jb1+$h z!)2MV+pr>ZMr;a8>dzH(V_9h_`djVI+V!Mu>=>Nt+S^7vo;2KBmrc3*jz;Om8(gpr zp}7hBgBG(cn~yS$Y1VgC&|f>Q%7UiPHJQHWoEHi|cGJ;sS+wKxSxjHh zATO{ovr*2tGIh|d{p6s6a^^-^r}2rhLsBWTxt(ddad<<0`0AvsMaEdPG2R`wqIGLG zZk@L!QAirzm`|ql;mf*{`S7-EESl?EWU$*z%B(iugUB$Rw~+Kp#8sW`|Z^M_2MbhO_b}-Y{awU&#v~9&z+tv?XT$Zysp0tP8`E}e_bn$rF zDOhD6r894HquY)f!|Ta!*jQ;z+sAyx(&g-q>dT6St?0}Z(UPHgW?Q$z!jfc&fw<$Y zJ;*XuR%Vka?duSn3U$cFbo7;H?`(40_n%xDm-6Z8aq1J7aJ*3f0)_}_}Dw-XXjfRo-ie%+)-AamJ`&+4S zaRX+7G&IrB#@M$yhaL zEwZxb^8nw(wlIeBEbIVmp(;IEn#_F~#`M5-*}VK53%j`*@32Z$=Gnmt(uiUE^RTpM z$Q7+&8)~d#fjTyLDE#>p9|IHfjVsS>}zy zG{#D&>|iT2gz;K+_P*Wk(PWhg4~`VWSQ|bUb$PkjN1)R2RYb|LMo(ZPji^S-9^2@( z2)9SwTi^6l?+<}h1`4Ko8>pNr$O=nS)p3R2OblVz{}ROxk3EuVfQ{T4od1Mt3Nw_t za(>@!j3bM!;rtEP-y5X2*>Dsj%63R!baDdVhb9#P&QU7NBIhV`mMnscb)4msT~8md zbxja@R#q#z+eg*1q^}x8BUc^n2Tt$oVFLmxBcs(vSyDKM2=dua2ZY-qvf>D;;?Q*N0Jee0Xqtgt3sBSG$d)5!qd*zc(hI1z(zLZ;(jA8Pa5%tta+7tf#K1&>|Qo z9~g@!;tt!5i9OTH8n$G*$e-w?BN4s0)4a(P2SOUTpqq1(va?ItWls~WJ9C!JY_Jy6 zIY>(ChY-mcX&W}uE*qu9WxrHPqoh)RxUR&6lz;C75&QXU+=^puAEwhVUGgnC)T7cx zRHl1~Unl64rc8JTX1B*xAltcrt~=CgX**7GE)rfw?a01|_L9_uD06F1+Wp6fM$`o`h=8_cC`7 z=1%fkb#nibvBG4QM-_vz2WQr?!IHdz4*@v3fe|e)?Xb6+4`D^s!O=-GL+%nX+8~yy zPnhfcFK`!}j`g5{xpGwV{VCvnix+(^S8+vcC9NGD0a~_TveHed*C~bBj&W@lI>bwV zJm}oI-56RgOF86&!nMlQv*tsLTW&D(k zS85cnWsew3g98-BQ?G?Tk@V=y#{G$}%2z z%VMK{LH?V{3NC^t@`>C&M5SJBOgI=x*#pS6>2Vc+JZA1S}Ja*m;yc%Vjr1&Id(^o&RI-nopv(Lp%l`bN)t9Moh5Y=HZP)(RrZ`h zGUNRxkP>&9SFm#OCq{Zdu*&p@kt`B8B~tth{G&yZbb;Q^LyVBnYy37r$-k+30k7Dx6GCFP_;_voL*O~{;n=L< z=gllS!z#Rpd7k%hP@}NU9HgBtNr=LSJH@nHN6Htnc00|dGaXs+^Ux&6>a@QzEhFG4 zO)D#M;7Sx_)6JJ}Iya&*j35ttOXF`JknhGRF?Y?9(N z9S`ESeF}kLjtHRK2XaT4nM-h#a3HY^*{}uR_FifV5p&GG<6{Z4Sgy6nEZB-I7bvA} z{r@}3)NYH6lo7dz?T#^>OHd?X(*g6xxpSPEW3Q>U(m2fwezP+8HLQC=#11pzr)#DB zBdyuFD_t7-sr_L~8o7<6$&^XQR7fJUVdD*^*B1PlW@>ys>*g&4QECtHkeMlVR&4gm z8g@X}bkgaDSe|t9JK`=sheO-2m!8eE)Sh?Z-isvKpi3kO+D%e4t!86|6pAlJCgY@C zN>7nT!jp7uGyB?PG9gVi?iAFzSnmDqO}J6}YAdji85}f{$61!IoI~n+S!|zGU0Yw7 z9+6mQUO2)1m9+iutE9JPcCclOz0!pN#!?O^HT$h?f2CUCKa4ar#hqI7u1=%t{b0x2bM)#o z%H(drQ!O3#Z;QiNF)E4bz%@1@LGq>)WT*ngCwa?4lzm6AUb1cmN&)n2i-qm%o)-0U zHy3<@@fV-fc|4vr;15f)sdLf4DengR^vo1Rw1`J@?DlPlq=h`(`(l4v=bwciG9=hG zc{et_E;;l+G^+@>NX^x&@n+`FeA1cNkW;cKH*=br;r|oZfLZQ@$Hu26t|jBdRJG4u zQ$Xa^w4~et_ndIjTO$p_Z5cGaIUReDjLS7}Wjx+Z&+!INNixANH{Hers|p#BX?Mea z;Ns_wylGco;kfidIb?AHyv^>S1Wj|_!V&ORPJUe`$>Bjrx#P$c3g^H+6SqlD6f7ny tgqif72$wsPd>GiMlpOqdaA-*e5)Lc+bHssjVbbPO>r>;G4FhMx{|geEeh2^n literal 0 HcmV?d00001 diff --git a/apps/documents/locale/it/LC_MESSAGES/django.po b/apps/documents/locale/it/LC_MESSAGES/django.po new file mode 100644 index 0000000000..ac50b2183a --- /dev/null +++ b/apps/documents/locale/it/LC_MESSAGES/django.po @@ -0,0 +1,977 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# , 2011. +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n" +"POT-Creation-Date: 2011-11-22 11:26-0400\n" +"PO-Revision-Date: 2011-12-07 11:57+0000\n" +"Last-Translator: pippo64 \n" +"Language-Team: Italian (http://www.transifex.net/projects/p/mayan-edms/team/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: __init__.py:49 __init__.py:159 +msgid "Documents" +msgstr "Documenti" + +#: __init__.py:60 +msgid "Documents setup" +msgstr "Setup Documenti" + +#: __init__.py:70 +msgid "all documents" +msgstr "tutti i documenti" + +#: __init__.py:71 models.py:415 views.py:709 +msgid "recent documents" +msgstr "documenti recenti" + +#: __init__.py:72 +msgid "upload new documents" +msgstr "upload nuovi documenti" + +#: __init__.py:73 +msgid "clone metadata" +msgstr "clona i metadati" + +#: __init__.py:74 +msgid "details" +msgstr "dettagli" + +#: __init__.py:75 +msgid "properties" +msgstr "proprietà" + +#: __init__.py:76 __init__.py:77 __init__.py:92 __init__.py:114 +#: __init__.py:120 +msgid "delete" +msgstr "cancella" + +#: __init__.py:78 __init__.py:91 __init__.py:113 __init__.py:119 +msgid "edit" +msgstr "edita" + +#: __init__.py:79 +msgid "preview" +msgstr "anteprima" + +#: __init__.py:80 +msgid "download" +msgstr "scarica" + +#: __init__.py:81 +msgid "find duplicates" +msgstr "trova duplicati" + +#: __init__.py:82 +msgid "find all duplicates" +msgstr "trova tutti i duplicati" + +#: __init__.py:82 +msgid "" +"Search all the documents' checksums and return a list of the exact matches." +msgstr "" +"Cerca tutti i documenti con il checksum e restituisci una lista delle " +"corrispondenze esatte." + +#: __init__.py:83 +msgid "update office documents' page count" +msgstr "update documenti di office numero di pagine" + +#: __init__.py:83 +msgid "" +"Update the page count of the office type documents. This is useful when " +"enabling office document support after there were already office type " +"documents in the database." +msgstr "" +"Update the page count of the office type documents. This is useful when " +"enabling office document support after there were already office type " +"documents in the database." + +#: __init__.py:84 __init__.py:85 +msgid "clear transformations" +msgstr "ripulisci le trasformazioni" + +#: __init__.py:86 +msgid "print" +msgstr "stampa" + +#: __init__.py:87 +msgid "history" +msgstr "versioni" + +#: __init__.py:89 +msgid "page transformations" +msgstr "trasformazioni della pagina" + +#: __init__.py:90 +msgid "create new transformation" +msgstr "crea una nuova trasformazione" + +#: __init__.py:94 +msgid "page image" +msgstr "immagine della pagina" + +#: __init__.py:95 +msgid "page text" +msgstr "testo della pagina" + +#: __init__.py:96 +msgid "edit page text" +msgstr "modifica il testo nella pagina" + +#: __init__.py:97 +msgid "next page" +msgstr "pagina successiva" + +#: __init__.py:98 +msgid "previous page" +msgstr "pagina precedente" + +#: __init__.py:99 +msgid "first page" +msgstr "prima pagina" + +#: __init__.py:100 +msgid "last page" +msgstr "ultima pagina" + +#: __init__.py:101 +msgid "zoom in" +msgstr "zoom in" + +#: __init__.py:102 +msgid "zoom out" +msgstr "zoom out" + +#: __init__.py:103 +msgid "rotate right" +msgstr "ruotate a destra" + +#: __init__.py:104 +msgid "rotate left" +msgstr "ruotate a sinistra" + +#: __init__.py:105 +msgid "reset view" +msgstr "ripristino della vista" + +#: __init__.py:107 +msgid "Find missing document files" +msgstr "Trovare i file di documenti mancanti" + +#: __init__.py:110 +msgid "document type list" +msgstr "lista in base al tipo di documento" + +#: __init__.py:111 views.py:877 +msgid "document types" +msgstr "tipi di documenti" + +#: __init__.py:112 +msgid "documents of this type" +msgstr "documenti di questo tipo" + +#: __init__.py:115 views.py:990 +msgid "create document type" +msgstr "crea il tipo di documenti" + +#: __init__.py:117 +msgid "filenames" +msgstr "nome file" + +#: __init__.py:118 +msgid "add filename to document type" +msgstr "aggiungi il nome file al tipo di documento" + +#: __init__.py:161 __init__.py:186 models.py:101 views.py:69 +msgid "documents" +msgstr "documenti" + +#: __init__.py:173 +msgid "thumbnail" +msgstr "thumbnail" + +#: __init__.py:176 +msgid "tags" +msgstr "etichette" + +#: __init__.py:179 +msgid "metadata" +msgstr "metadata" + +#: forms.py:60 +msgid "Page image" +msgstr "Immagine della pagina" + +#: forms.py:70 forms.py:209 +msgid "Contents" +msgstr "Contenuti" + +#: forms.py:116 +msgid "Details" +msgstr "Dettagli" + +#: forms.py:121 +msgid "Click on the image for full size preview" +msgstr "Click sull'immagine per l'anteprima" + +#: forms.py:131 +#, python-format +msgid "Document pages (%s)" +msgstr "Pagine nel documento (%s)" + +#: forms.py:166 +msgid "Quick document rename" +msgstr "Rinomina del documento veloce" + +#: forms.py:169 +msgid "New document filename" +msgstr "Nuovo nome documento" + +#: forms.py:223 +msgid "Page size" +msgstr "Dimensioni di pagina" + +#: forms.py:224 +msgid "Custom page width" +msgstr "Personalizza larghezza pagina" + +#: forms.py:225 +msgid "Custom page height" +msgstr "Personalizza altezza pagina" + +#: forms.py:226 +msgid "Page orientation" +msgstr "Orientamento pagina" + +#: forms.py:227 +msgid "Page range" +msgstr "Intervallo pagina" + +#: literals.py:8 +msgid "Create documents" +msgstr "Crea documenti" + +#: literals.py:9 +msgid "Edit document properties" +msgstr "Modifica proprietà documento" + +#: literals.py:10 +msgid "Edit documents" +msgstr "Modifica documenti" + +#: literals.py:11 +msgid "View documents" +msgstr "Visualizza documenti" + +#: literals.py:12 +msgid "Delete documents" +msgstr "Cancella documenti" + +#: literals.py:13 +msgid "Download documents" +msgstr "Scarica documenti" + +#: literals.py:14 +msgid "Transform documents" +msgstr "Trasforma documenti" + +#: literals.py:15 +msgid "Execute document modifying tools" +msgstr "Esegui i tools per la modifica dei documenti" + +#: literals.py:17 +msgid "Edit document types" +msgstr "Modifica il tipo di documento" + +#: literals.py:18 +msgid "Delete document types" +msgstr "Cancella il tipo di documento" + +#: literals.py:19 +msgid "Create document types" +msgstr "Crea tipo di documento" + +#: literals.py:23 +msgid "Document creation" +msgstr "Creazione documento" + +#: literals.py:24 +#, python-format +msgid "Document \"%(content_object)s\" created by %(fullname)s." +msgstr "Documento \"%(content_object)s\" creato da by %(fullname)s." + +#: literals.py:25 +#, python-format +msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +msgstr "Documento \"%(content_object)s\" creato il %(datetime)s da %(fullname)s." + +#: literals.py:31 +msgid "Document edited" +msgstr "Documento modificato" + +#: literals.py:32 +#, python-format +msgid "Document \"%(content_object)s\" edited by %(fullname)s." +msgstr "Documento \"%(content_object)s\" modificato da %(fullname)s." + +#: literals.py:33 +#, python-format +msgid "" +"Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." +" The following changes took place: %(changes)s." +msgstr "" +"Documento \"%(content_object)s\" è stato modificato il %(datetime)s da " +"%(fullname)s. Queste le seguenti modifiche: %(changes)s." + +#: literals.py:42 +msgid "Document deleted" +msgstr "Documento cancellato" + +#: literals.py:43 +#, python-format +msgid "Document \"%(document)s\" deleted by %(fullname)s." +msgstr "Documento \"%(document)s\" cancellato da %(fullname)s." + +#: literals.py:44 +#, python-format +msgid "Document \"%(document)s\" deleted on %(datetime)s by %(fullname)s." +msgstr "Documento \"%(document)s\" cancellato il %(datetime)s da %(fullname)s." + +#: models.py:63 +msgid "name" +msgstr "nome" + +#: models.py:69 models.py:78 models.py:315 views.py:896 views.py:926 +#: views.py:955 views.py:960 views.py:1003 views.py:1049 views.py:1083 +msgid "document type" +msgstr "tipo documento" + +#: models.py:70 +msgid "documents types" +msgstr "documenti tipo" + +#: models.py:79 +msgid "file" +msgstr "file" + +#: models.py:86 +msgid "added" +msgstr "ha aggiunto" + +#: models.py:87 +msgid "updated" +msgstr "updated" + +#: models.py:88 +msgid "checksum" +msgstr "checksum" + +#: models.py:89 +msgid "description" +msgstr "descrizione" + +#: models.py:100 models.py:332 models.py:404 models.py:419 views.py:209 +msgid "document" +msgstr "documento" + +#: models.py:181 +msgid "" +"This document's file format is not known, the page count has therefore " +"defaulted to 1." +msgstr "" +"Questo tipo di formato file è sconosciuto, per cui il numero di pagine sarà " +"1" + +#: models.py:316 +msgid "filename" +msgstr "nome file" + +#: models.py:317 views.py:1010 +msgid "enabled" +msgstr "abilitato" + +#: models.py:324 +msgid "document type quick rename filename" +msgstr "rinomina veloce del nome file del documento" + +#: models.py:325 +msgid "document types quick rename filenames" +msgstr "rinomina veloce del nome files del documento" + +#: models.py:333 +msgid "content" +msgstr "contenuto" + +#: models.py:334 +msgid "page label" +msgstr "etichetta di pagina" + +#: models.py:335 +msgid "page number" +msgstr "numero pagina" + +#: models.py:338 +#, python-format +msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" +msgstr "Pagina %(page_num)d di %(total_pages)d del %(document)s" + +#: models.py:346 models.py:383 +msgid "document page" +msgstr "pagina del documento" + +#: models.py:347 +msgid "document pages" +msgstr "pagine di documento" + +#: models.py:358 +msgid "Enter a valid value." +msgstr "Inserisci un valore valido" + +#: models.py:384 views.py:333 +msgid "order" +msgstr "ordina" + +#: models.py:385 views.py:334 views.py:389 views.py:418 +msgid "transformation" +msgstr "trasformazione" + +#: models.py:386 views.py:335 +msgid "arguments" +msgstr "argomenti" + +#: models.py:386 +#, python-format +msgid "Use dictionaries to indentify arguments, example: %s" +msgstr "Usa dizionari per identificare gli argomenti, esempio:%s" + +#: models.py:394 +msgid "document page transformation" +msgstr "trasformazione della pagina del documento" + +#: models.py:395 +msgid "document page transformations" +msgstr "trasformazioni della pagina del documento" + +#: models.py:403 +msgid "user" +msgstr "utente" + +#: models.py:405 +msgid "accessed" +msgstr "accessi" + +#: models.py:414 +msgid "recent document" +msgstr "documenti recenti" + +#: models.py:420 +msgid "Document type" +msgstr "Tipo documento" + +#: models.py:421 +msgid "MIME type" +msgstr "Tipo MIME" + +#: models.py:422 views.py:117 +msgid "Filename" +msgstr "Nome file" + +#: models.py:423 +msgid "Filename extension" +msgstr "Estensione del file" + +#: models.py:424 +msgid "Metadata value" +msgstr "Valore del Metadato" + +#: models.py:425 +msgid "Content" +msgstr "Contenuto" + +#: models.py:426 +msgid "Description" +msgstr "Descrizione" + +#: models.py:427 +msgid "Tags" +msgstr "Etichette" + +#: models.py:428 +msgid "Comments" +msgstr "Commenti" + +#: statistics.py:38 +#, python-format +msgid "Document types: %d" +msgstr "Tipi di documento: %d " + +#: statistics.py:39 +#, python-format +msgid "Documents in database: %d" +msgstr "Documenti nel database:%d" + +#: statistics.py:44 +#, python-format +msgid "Documents in storage: %d" +msgstr "Documenti nello storage:%d" + +#: statistics.py:46 +#, python-format +msgid "" +"Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" +" bytes" +msgstr "" +"Spazio usato nello storage: %(base_2)s (base 2), %(base_10)s (base 10), " +"%(bytes)d bytes" + +#: statistics.py:56 +#, python-format +msgid "Document pages in database: %d" +msgstr "Pagine di documenti nel database:%d" + +#: statistics.py:57 +#, python-format +msgid "Minimum amount of pages per document: %(page_count__min)d" +msgstr "Numero minimo di pagine per documento:%(page_count__min)d" + +#: statistics.py:58 +#, python-format +msgid "Maximum amount of pages per document: %(page_count__max)d" +msgstr "Numero massimo di pagine per documento:%(page_count__max)d" + +#: statistics.py:59 +#, python-format +msgid "Average amount of pages per document: %(page_count__avg)f" +msgstr "Media di pagine per documento:%(page_count__avg)f" + +#: statistics.py:65 +msgid "Document statistics" +msgstr "Statistiche del documento" + +#: views.py:118 +msgid "File extension" +msgstr "Estensione del file" + +#: views.py:119 +msgid "File mimetype" +msgstr "File mimetype" + +#: views.py:120 +msgid "File mime encoding" +msgstr "File mime encoding" + +#: views.py:121 +msgid "File size" +msgstr "Dimensioni del file" + +#: views.py:122 +msgid "Exists in storage" +msgstr "Esiste nello storage" + +#: views.py:123 +msgid "File path in storage" +msgstr "File path in storage" + +#: views.py:124 +msgid "Date added" +msgstr "Inserimento data" + +#: views.py:125 +msgid "Time added" +msgstr "Inserimento orario" + +#: views.py:126 +msgid "Checksum" +msgstr "Checksum" + +#: views.py:127 +msgid "UUID" +msgstr "UUID" + +#: views.py:128 +msgid "Pages" +msgstr "Pagine" + +#: views.py:137 +#, python-format +msgid "document properties for: %s" +msgstr "Proprietà per il documento:%s" + +#: views.py:159 +msgid "document data" +msgstr "dati del documento" + +#: views.py:184 views.py:521 +msgid "Must provide at least one document." +msgstr "Devi indicare almeno un documento" + +#: views.py:200 +#, python-format +msgid "Document: %s deleted successfully." +msgstr "Il documento %s è stato cancellato con successo" + +#: views.py:202 +#, python-format +msgid "Document: %(document)s delete error: %(error)s" +msgstr "Documento:%(document)s errore cancellazione: %(error)s" + +#: views.py:217 +#, python-format +msgid "Are you sure you wish to delete the document: %s?" +msgstr "Sei sicuro di voler cancellare il documento: %s?" + +#: views.py:219 +#, python-format +msgid "Are you sure you wish to delete the documents: %s?" +msgstr "Sei sicuro di voler cancellare i documenti: %s?" + +#: views.py:256 +#, python-format +msgid "Document \"%s\" edited successfully." +msgstr "Il documento \"%s\" è ancora in modifica" + +#: views.py:329 +#, python-format +msgid "transformations for: %s" +msgstr "trasformazioni per:%s" + +#: views.py:353 +msgid "Document page transformation created successfully." +msgstr "Trasformazioni per la pagina del documento creata con successo" + +#: views.py:362 +#, python-format +msgid "Create new transformation for page: %(page)s of document: %(document)s" +msgstr "" +"Crea una nuova trasformazione per la pagina: %(page)s del documento: " +"%(document)s" + +#: views.py:378 +msgid "Document page transformation edited successfully." +msgstr "Document page trasformation edited successfully." + +#: views.py:391 +#, python-format +msgid "Edit transformation \"%(transformation)s\" for: %(document_page)s" +msgstr "Modifica la trasformazione \"%(transformation)s\" per: %(document_page)s" + +#: views.py:409 +msgid "Document page transformation deleted successfully." +msgstr "Trasformazione della pagina di documento cancellata con successo." + +#: views.py:420 +#, python-format +msgid "" +"Are you sure you wish to delete transformation \"%(transformation)s\" for: " +"%(document_page)s" +msgstr "" +"Sei sicuro di voler cancellare la trasformazione \"%(transformation)s\" per:" +" %(document_page)s" + +#: views.py:434 +#, python-format +msgid "duplicates of: %s" +msgstr "duplicati di:%s" + +#: views.py:446 +msgid "Are you sure you wish to find all duplicates?" +msgstr "Sei sicuro di voler trovare tutti i duplicati?" + +#: views.py:447 views.py:506 views.py:571 +msgid "On large databases this operation may take some time to execute." +msgstr "" +"In un grande database questa operazione potrebbe richiedere del tempo " + +#: views.py:462 +msgid "duplicated documents" +msgstr "documenti duplicati" + +#: views.py:497 +#, python-format +msgid "" +"Page count update complete. Documents processed: %(total)d, documents with " +"changed page count: %(change)d" +msgstr "" +"Update del numero di pagine completato. Il documenti processati " +"%(total)d, con il numero di pagine cambiate: %(change)d" + +#: views.py:505 +#, python-format +msgid "" +"Are you sure you wish to update the page count for the office documents " +"(%d)?" +msgstr "" +"Sei sicuro di voler cambiare il numero di pagine deil documenti office (%d)?" + +#: views.py:534 +#, python-format +msgid "" +"All the page transformations for document: %s, have been deleted " +"successfully." +msgstr "" +"Tutte le trasformazioni alle pagine del documento:%s, sono state cancellate " +"con successo." + +#: views.py:536 +#, python-format +msgid "" +"Error deleting the page transformations for document: %(document)s; " +"%(error)s." +msgstr "" +"Errore nella cancellazione della trasformazione della pagina per il " +"documento:%(document)s; %(error)s." + +#: views.py:542 +msgid "document transformation" +msgstr "trasformazione del documento" + +#: views.py:551 +#, python-format +msgid "" +"Are you sure you wish to clear all the page transformations for document: " +"%s?" +msgstr "Sei sicuro di voler cancellare le trasformazioni per il documento:%s?" + +#: views.py:553 +#, python-format +msgid "" +"Are you sure you wish to clear all the page transformations for documents: " +"%s?" +msgstr "Sei sicuro di voler cancellare le trasformazioni per il documenti:%s?" + +#: views.py:581 +msgid "missing documents" +msgstr "documenti mancanti" + +#: views.py:594 views.py:632 +#, python-format +msgid "details for: %s" +msgstr "dettagli per:%s" + +#: views.py:647 +msgid "Document page edited successfully." +msgstr "Pagina di documento modificata con successo." + +#: views.py:656 +#, python-format +msgid "edit: %s" +msgstr "modifica:%s" + +#: views.py:667 +msgid "There are no more pages in this document" +msgstr "Non ci sono più pagine in questo documento" + +#: views.py:680 +msgid "You are already at the first page of this document" +msgstr "Sei già alla prima pagina del documento" + +#: views.py:823 +#, python-format +msgid "print: %s" +msgstr "stampa:%s" + +#: views.py:894 +#, python-format +msgid "documents of type \"%s\"" +msgstr "documenti di tipo \"%s\"" + +#: views.py:914 +msgid "Document type edited successfully" +msgstr "Tipo di documento modificata con successo" + +#: views.py:917 +#, python-format +msgid "Error editing document type; %s" +msgstr "Errore nella modifica del tipo di documento;%s" + +#: views.py:922 +#, python-format +msgid "edit document type: %s" +msgstr "modifica tipo documento:%s" + +#: views.py:947 +#, python-format +msgid "Document type: %s deleted successfully." +msgstr "Tipo di documento: %s cancellata ." + +#: views.py:949 +#, python-format +msgid "Document type: %(document_type)s delete error: %(error)s" +msgstr "" +"Tipo di documento: %(document_type)s errore di cancellazione: %(error)s" + +#: views.py:964 +#, python-format +msgid "Are you sure you wish to delete the document type: %s?" +msgstr "Sei sicuro di cancellare questo tipo di documento:%s?" + +#: views.py:965 +msgid "" +"The document type of all documents using this document type will be set to " +"none." +msgstr "Il tipo di documento per tutti i documenti sarà messo a nullo" + +#: views.py:981 +msgid "Document type created successfully" +msgstr "Tipo di documento creato con successo" + +#: views.py:984 +#, python-format +msgid "Error creating document type; %(error)s" +msgstr "Errore nella creazione del tipo di documento;%(error)s" + +#: views.py:1002 +#, python-format +msgid "filenames for document type: %s" +msgstr "tipo di documento per il nome file: %s" + +#: views.py:1033 +msgid "Document type filename edited successfully" +msgstr "Tipo di documento per il nome file modificato con successo" + +#: views.py:1036 +#, python-format +msgid "Error editing document type filename; %s" +msgstr "Errore nella modifica del tipo di nome file;%s" + +#: views.py:1041 +#, python-format +msgid "edit filename \"%(filename)s\" from document type \"%(document_type)s\"" +msgstr "" +"modifica il nome file \"%(filename)s\" per il tipo di documento " +"\"%(document_type)s\"" + +#: views.py:1050 views.py:1076 views.py:1084 +msgid "document type filename" +msgstr "tipo di nome file per il documento" + +#: views.py:1068 +#, python-format +msgid "Document type filename: %s deleted successfully." +msgstr "Tipo di nome file per il documento: %s cancellato con successo." + +#: views.py:1070 +#, python-format +msgid "" +"Document type filename: %(document_type_filename)s delete error: %(error)s" +msgstr "" +"Tipo di nome file per il documento:%(document_type_filename)s errore di " +"cancellazione: %(error)s" + +#: views.py:1086 +#, python-format +msgid "" +"Are you sure you wish to delete the filename: %(filename)s, from document " +"type \"%(document_type)s\"?" +msgstr "" +"Sei sicuro che vuoi cancellare il nome file:%(filename)s, per il tipo di " +"documento\"%(document_type)s\"?" + +#: views.py:1111 +msgid "Document type filename created successfully" +msgstr "Tipo di nome file per nome file creato con successo" + +#: views.py:1114 +#, python-format +msgid "Error creating document type filename; %(error)s" +msgstr "Errore creando il tipo di nome file; %(error)s" + +#: views.py:1120 +#, python-format +msgid "create filename for document type: %s" +msgstr "crea il nome file per i documenti di tipo:%s" + +#: widgets.py:26 +msgid "document page image" +msgstr "immagine della pagina del documento" + +#: wizards.py:34 +msgid "step 1 of 3: Document type" +msgstr "step 1 of 3: Tipo documento" + +#: wizards.py:35 +msgid "step 2 of 3: Metadata selection" +msgstr "step 2 of 3: Selezione dei Metadata " + +#: wizards.py:36 +msgid "step 3 of 3: Document metadata" +msgstr "step 3 of 3: Metadata del documento" + +#: wizards.py:44 +msgid "Next step" +msgstr "Next step" + +#: conf/settings.py:38 +msgid "" +"Maximum number of recent (created, edited, viewed) documents to remember per" +" user." +msgstr "" +"Massimo numero recente (creazione, modifica, visualizzazione) di documenti " +"da ricordare per utente" + +#: conf/settings.py:39 +msgid "Amount in percent zoom in or out a document page per user interaction." +msgstr "" +"Importo in percentuale dello zoom o rimpicciolire una pagina del documento " +"per l'interazione dell'utente." + +#: conf/settings.py:40 +msgid "" +"Maximum amount in percent (%) to allow user to zoom in a document page " +"interactively." +msgstr "" +"Importo massimo in percentuale (%) per consentire all'utente di ingrandire " +"una pagina del documento in modo interattivo." + +#: conf/settings.py:41 +msgid "" +"Minimum amount in percent (%) to allow user to zoom out a document page " +"interactively." +msgstr "" +"Quantità minima in percentuale (%) per consentire all'utente di ingrandire " +"una pagina di documento in modo interattivo." + +#: conf/settings.py:42 +msgid "Amount in degrees to rotate a document page per user interaction." +msgstr "Quantità di gradi per la rotazione della pagina del documento" + +#: templates/document_types_help.html:3 +msgid "What are document types?" +msgstr "Che tipo di documenti sono ?" + +#: templates/document_types_help.html:4 +msgid "" +"Document types define a class that represents a broard group of documents, " +"such as: invoices, regulations or manuals. The advantage of using document " +"types are: assigning a list of typical filenames for quick renaming during " +"creation, as well as assigning default metadata types and sets to it." +msgstr "" +"Il tipo di documento definisce una raggruppamento di documenti, come : " +"fatture, regolamenti, manuali. Il vantaggio dell'uso di tale classificazione" +" permette di rinominare,aggiungere metadati e rinominare i file più " +"velocemente." + +#: templates/recent_document_list_help.html:3 +msgid "What are recent documents?" +msgstr "Quali sono i documenti recenti ?" + +#: templates/recent_document_list_help.html:4 +#, python-format +msgid "" +"Here you will find the latest %(recent_count)s documents you have either " +"created or edited in any way." +msgstr "" +"qui troverete gli ultimi %(recent_count)s documenti da voi creati o " +"modificati" + + diff --git a/apps/dynamic_search/locale/it/LC_MESSAGES/django.mo b/apps/dynamic_search/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..d0eb804bd170782f648845e1ba0dc2ee18f6e7c7 GIT binary patch literal 501 zcmYjN%Wm5+5KPdXbnLl@Ezm=Pc1=n(0*9%KIDT06 z@-11#MbZHWU&lNVt&ctN- zv&5@lG;vv+YBCBknWo4m%OFivc7}2&B@1z7{@A|#|2lb&UnIz(8fKp)BU$K3SO)E4 zt;q)kv+KnIeoTrSzUIYbzW6?wPFMMQ{f(ur>U3qWG`dkRCtX{1b@Ffa{eC~7zL32& zcLQfgw1-VZ(H=~o*)~xSXA4W>G%4mq{<@=dAd@Ta$T%M8zGY`*?zl*;t-FBDPKRh{ zd|l3P^s4Lo-I{>8+xV?@m4eZYrI%3^aImbqplh7@&_o5UeGcO|yMV)UeB$847}C?^ F=n27rlVJb= literal 0 HcmV?d00001 diff --git a/apps/dynamic_search/locale/it/LC_MESSAGES/django.po b/apps/dynamic_search/locale/it/LC_MESSAGES/django.po new file mode 100644 index 0000000000..1cb017c45b --- /dev/null +++ b/apps/dynamic_search/locale/it/LC_MESSAGES/django.po @@ -0,0 +1,116 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n" +"POT-Creation-Date: 2011-11-22 11:26-0400\n" +"PO-Revision-Date: 2011-09-30 04:42+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Italian (http://www.transifex.net/projects/p/mayan-edms/team/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: __init__.py:5 +msgid "search" +msgstr "" + +#: __init__.py:6 views.py:72 +msgid "advanced search" +msgstr "" + +#: __init__.py:7 +msgid "search again" +msgstr "" + +#: forms.py:8 +msgid "Search terms" +msgstr "" + +#: models.py:20 +msgid "user" +msgstr "" + +#: models.py:21 +msgid "query" +msgstr "" + +#: models.py:22 +msgid "datetime created" +msgstr "" + +#: models.py:23 +msgid "hits" +msgstr "" + +#: models.py:61 +msgid "recent search" +msgstr "" + +#: models.py:62 +msgid "recent searches" +msgstr "" + +#: views.py:33 +#, python-format +msgid "results, (showing only %(shown_result_count)s out of %(result_count)s)" +msgstr "" + +#: views.py:37 +msgid "results" +msgstr "" + +#: views.py:56 +#, python-format +msgid "Search error: %s" +msgstr "" + +#: views.py:60 +msgid "type" +msgstr "" + +#: views.py:76 views.py:86 views.py:88 templatetags/search_tags.py:19 +#: templatetags/search_tags.py:20 +msgid "Search" +msgstr "" + +#: conf/settings.py:12 +msgid "Maximum amount search hits to fetch and display." +msgstr "" + +#: conf/settings.py:13 +msgid "Maximum number of search queries to remember per user." +msgstr "" + +#: templates/search_help.html:3 +msgid "Help" +msgstr "" + +#: templates/search_help.html:4 +#, python-format +msgid "" +"Enter the desired search keywords separated by space. Only the top " +"%(search_results_limit)s results will be available." +msgstr "" + +#: templates/search_results.html:3 +msgid "Search results" +msgstr "" + +#: templates/search_results.html:19 +#, python-format +msgid "Elapsed time: %(time_delta)s seconds" +msgstr "" + +#: templatetags/search_tags.py:33 +#, python-format +msgid "recent searches (maximum of %d)" +msgstr "" + + diff --git a/apps/folders/locale/it/LC_MESSAGES/django.mo b/apps/folders/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..72cbfdd28e96e44641807cba5841648db40f9397 GIT binary patch literal 501 zcmYjNO-~y!5T$BQd+fP~sl)-)PV8Nv3Z|(@$wrElg(z8iH;LJ}+O=2qYy&@pU&DXt zZ|Q7PL7)6&kNoE2&F}Z`o(>pqm>-yj%(u+X%pODLGk>1*-D_U32>z#86V5jH!-QzP zQ&8wf?I52Nt7K_f9|((B*$sa0s)(gmuqA4h5S68EcQ;u3Mg$*qus(>U&lNVt&ctMK zQ{q)Hnz$@ZG#Le%OjG2OWss&S`-1XRN*3bM{IY%f|8?>lPbA1wb$0eiGLpHDgk{h! z)|z}!Fuk46;d)%;@HH>Sv-#zCGFj%U)i;*9s?(Lh(&$FPjC5_;)zQD%ce~wy`a<^J zJPe#6(e5`9MY}hFX46DLoGmPg&Kg06AuLlYIa_HP(R*#+#Mqaz0&N01&T G2Y&#?){|ub literal 0 HcmV?d00001 diff --git a/apps/folders/locale/it/LC_MESSAGES/django.po b/apps/folders/locale/it/LC_MESSAGES/django.po new file mode 100644 index 0000000000..6fccff809c --- /dev/null +++ b/apps/folders/locale/it/LC_MESSAGES/django.po @@ -0,0 +1,212 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n" +"POT-Creation-Date: 2011-11-22 11:26-0400\n" +"PO-Revision-Date: 2011-09-30 04:55+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Italian (http://www.transifex.net/projects/p/mayan-edms/team/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: __init__.py:10 +msgid "folder list" +msgstr "" + +#: __init__.py:11 views.py:53 +msgid "create folder" +msgstr "" + +#: __init__.py:12 +msgid "edit" +msgstr "" + +#: __init__.py:13 +msgid "delete" +msgstr "" + +#: __init__.py:14 +msgid "remove from folder" +msgstr "" + +#: __init__.py:15 +msgid "folder documents" +msgstr "" + +#: __init__.py:16 +msgid "add to a folder" +msgstr "" + +#: __init__.py:17 __init__.py:25 models.py:31 views.py:21 +msgid "folders" +msgstr "" + +#: forms.py:20 +msgid "Existing folders" +msgstr "" + +#: forms.py:22 +msgid "New folder" +msgstr "" + +#: models.py:11 +msgid "title" +msgstr "" + +#: models.py:12 +msgid "user" +msgstr "" + +#: models.py:13 +msgid "datetime created" +msgstr "" + +#: models.py:30 models.py:35 views.py:82 views.py:109 views.py:134 +msgid "folder" +msgstr "" + +#: models.py:36 +msgid "document" +msgstr "" + +#: models.py:42 views.py:257 +msgid "folder document" +msgstr "" + +#: models.py:43 +msgid "folders documents" +msgstr "" + +#: views.py:24 +msgid "created" +msgstr "" + +#: views.py:25 +msgid "documents" +msgstr "" + +#: views.py:45 views.py:152 +msgid "Folder created successfully" +msgstr "" + +#: views.py:48 views.py:154 views.py:188 +#, python-format +msgid "A folder named: %s, already exists." +msgstr "" + +#: views.py:71 +msgid "Folder edited successfully" +msgstr "" + +#: views.py:74 +#, python-format +msgid "Error editing folder; %s" +msgstr "" + +#: views.py:79 +#, python-format +msgid "edit folder: %s" +msgstr "" + +#: views.py:101 +#, python-format +msgid "Folder: %s deleted successfully." +msgstr "" + +#: views.py:103 +#, python-format +msgid "Folder: %(folder)s delete error: %(error)s" +msgstr "" + +#: views.py:114 +#, python-format +msgid "Are you sure you with to delete the folder: %s?" +msgstr "" + +#: views.py:131 +#, python-format +msgid "documents in folder: %s" +msgstr "" + +#: views.py:157 views.py:191 +msgid "Must specify a new folder or an existing one." +msgstr "" + +#: views.py:162 views.py:196 +#, python-format +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "" + +#: views.py:165 views.py:199 +#, python-format +msgid "Document: %(document)s is already in folder: %(folder)s." +msgstr "" + +#: views.py:186 +#, python-format +msgid "Folder \"%s\" created successfully" +msgstr "" + +#: views.py:207 +#, python-format +msgid "add document \"%s\" to a folder" +msgstr "" + +#: views.py:223 +#, python-format +msgid "folders containing: %s" +msgstr "" + +#: views.py:239 +msgid "Must provide at least one folder document." +msgstr "" + +#: views.py:249 +#, python-format +msgid "Document: %s removed successfully." +msgstr "" + +#: views.py:251 +#, python-format +msgid "Document: %(document)s delete error: %(error)s" +msgstr "" + +#: views.py:265 +#, python-format +msgid "" +"Are you sure you wish to remove the document: %(document)s from the folder " +"\"%(folder)s\"?" +msgstr "" + +#: views.py:268 +#, python-format +msgid "" +"Are you sure you wish to remove the documents: %(documents)s from the folder" +" \"%(folder)s\"?" +msgstr "" + +#: templates/folders_help.html:3 +msgid "What are folders?" +msgstr "" + +#: templates/folders_help.html:4 +msgid "" +"These folders can also be described as user folders. They are a way to let " +"individual users create their own document organization methods. Folders " +"created by one user and the documents contained by them don't affect any " +"other user folders or documents." +msgstr "" + +#: templatetags/folder_tags.py:17 +msgid "Add document to a folder" +msgstr "" + + diff --git a/apps/history/locale/it/LC_MESSAGES/django.mo b/apps/history/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..2ee6d674a1b50e1bb980d92bcbf06dea702c38ce GIT binary patch literal 501 zcmYjNO-~y!5T$BQd+fP~sl)-)PV8MM3Z|(@$wrElg(z8iH;LJ}+O=2qYy&@pU&DXt zZ|Q7PL7)6&kNoE2&F}Z`o(>pqm>-yj%(u+X%pODLGk>1*-D_U32>z#86V5jH!-QzP zQ&8wf?I52Nt7K_f9|((B*$sa0s)(gmuqA4h5S68EcQ;u3Mg$*qus(>U&lNVt&ctMK zQ{q)Hnz$@ZG#Le%OjG2OWss&SJ41OYB@1zBe%ZeL|2lb&ClchT`f~P3GLpHDgk{h! z)|z}!Fuk46;d)%;@HH>Sv-#zCGFj%U)i;*9s?(Lh(&$FPjC5_;)zQD%ce~wy`a<^J zJPe#6(e5`9MY}hFX46DLoGmPg&Kg06AuLlYIa_HP(R*#+#Mqaz0&N01&T G2Y&#@>yu^x literal 0 HcmV?d00001 diff --git a/apps/history/locale/it/LC_MESSAGES/django.po b/apps/history/locale/it/LC_MESSAGES/django.po new file mode 100644 index 0000000000..a7bf81f372 --- /dev/null +++ b/apps/history/locale/it/LC_MESSAGES/django.po @@ -0,0 +1,106 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n" +"POT-Creation-Date: 2011-11-22 11:26-0400\n" +"PO-Revision-Date: 2011-09-30 04:56+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Italian (http://www.transifex.net/projects/p/mayan-edms/team/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: __init__.py:6 +msgid "Access the history app" +msgstr "" + +#: __init__.py:8 +msgid "History" +msgstr "" + +#: __init__.py:12 models.py:69 +msgid "history" +msgstr "" + +#: models.py:16 +msgid "namespace" +msgstr "" + +#: models.py:17 +msgid "name" +msgstr "" + +#: models.py:25 models.py:34 +msgid "history type" +msgstr "" + +#: models.py:26 +msgid "history types" +msgstr "" + +#: models.py:30 +msgid "date time" +msgstr "" + +#: models.py:35 +msgid "dictionary" +msgstr "" + +#: models.py:70 +msgid "histories" +msgstr "" + +#: views.py:23 +msgid "history events" +msgstr "" + +#: views.py:26 views.py:60 +msgid "date and time" +msgstr "" + +#: views.py:30 +msgid "object" +msgstr "" + +#: views.py:34 views.py:64 +msgid "summary" +msgstr "" + +#: views.py:56 +#, python-format +msgid "history events for: %s" +msgstr "" + +#: views.py:81 +msgid "Date" +msgstr "" + +#: views.py:82 +msgid "Time" +msgstr "" + +#: views.py:83 +msgid "Object" +msgstr "" + +#: views.py:84 +msgid "Event type" +msgstr "" + +#: views.py:85 +msgid "Event details" +msgstr "" + +#: views.py:89 +#, python-format +msgid "details for: %s" +msgstr "" + + diff --git a/apps/linking/locale/it/LC_MESSAGES/django.mo b/apps/linking/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..34e8cee481a6504dbbaf0d0a1d235e31ce9135f7 GIT binary patch literal 501 zcmYjN%Wm5+5KPdXbnLl@Ezm=Pc1=n(0*9%KIDT06 z@-11#MbZHWU&lNVt&ctN- zv&5@lG;vv+YBCBknWo4m%OFivc7}2&B@1z7{@A|#|2lb&UnIz(8m6BlBU$K3SO)E4 zt;q)kv+KnIeoTrSzUIYbzW6?wPFMMQ{f(ur>U3qWG`dkRCtX{1b@Ffa{eC~7zL32& zcLQfgw1-VZ(H=~o*)~xSXA4W>G%4mq{<@=dAd@Ta$T%M8zGY`*?zl*;t-FBDPKRh{ zd|l3P^s4Lo-I{>8+xV?@m4eZYrI%3^aImbqplh7@&_o5UeGcO|yMV)UeB$847}C?^ F=n24VlVAV< literal 0 HcmV?d00001 diff --git a/apps/linking/locale/it/LC_MESSAGES/django.po b/apps/linking/locale/it/LC_MESSAGES/django.po new file mode 100644 index 0000000000..e5b46e064b --- /dev/null +++ b/apps/linking/locale/it/LC_MESSAGES/django.po @@ -0,0 +1,331 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n" +"POT-Creation-Date: 2011-11-22 11:26-0400\n" +"PO-Revision-Date: 2011-09-30 04:41+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Italian (http://www.transifex.net/projects/p/mayan-edms/team/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: __init__.py:11 +msgid "View existing smart links" +msgstr "" + +#: __init__.py:12 +msgid "Create new smart links" +msgstr "" + +#: __init__.py:13 +msgid "Delete smart links" +msgstr "" + +#: __init__.py:14 +msgid "Edit smart links" +msgstr "" + +#: __init__.py:16 +msgid "Smart links" +msgstr "" + +#: __init__.py:22 +msgid "smart links actions" +msgstr "" + +#: __init__.py:23 __init__.py:25 models.py:21 views.py:105 +msgid "smart links" +msgstr "" + +#: __init__.py:26 +msgid "smart links list" +msgstr "" + +#: __init__.py:27 +msgid "create new smart link" +msgstr "" + +#: __init__.py:28 __init__.py:33 +msgid "edit" +msgstr "" + +#: __init__.py:29 __init__.py:34 +msgid "delete" +msgstr "" + +#: __init__.py:31 +msgid "conditions" +msgstr "" + +#: __init__.py:32 +msgid "create condition" +msgstr "" + +#: forms.py:48 +msgid "Pages" +msgstr "" + +#: forms.py:54 +msgid "Select" +msgstr "" + +#: forms.py:61 +msgid "Click on the image for full size view of the first page." +msgstr "" + +#: literals.py:7 +msgid "and" +msgstr "" + +#: literals.py:8 +msgid "or" +msgstr "" + +#: literals.py:12 +msgid "is equal to" +msgstr "" + +#: literals.py:13 +msgid "is equal to (case insensitive)" +msgstr "" + +#: literals.py:14 +msgid "contains" +msgstr "" + +#: literals.py:15 +msgid "contains (case insensitive)" +msgstr "" + +#: literals.py:16 +msgid "is in" +msgstr "" + +#: literals.py:17 +msgid "is greater than" +msgstr "" + +#: literals.py:18 +msgid "is greater than or equal to" +msgstr "" + +#: literals.py:19 +msgid "is less than" +msgstr "" + +#: literals.py:20 +msgid "is less than or equal to" +msgstr "" + +#: literals.py:21 +msgid "starts with" +msgstr "" + +#: literals.py:22 +msgid "starts with (case insensitive)" +msgstr "" + +#: literals.py:23 +msgid "ends with" +msgstr "" + +#: literals.py:24 +msgid "ends with (case insensitive)" +msgstr "" + +#: literals.py:25 +msgid "is in regular expression" +msgstr "" + +#: literals.py:26 +msgid "is in regular expression (case insensitive)" +msgstr "" + +#: models.py:10 +msgid "title" +msgstr "" + +#: models.py:11 views.py:108 +msgid "dynamic title" +msgstr "" + +#: models.py:11 models.py:29 +msgid "" +"This expression will be evaluated against the current selected document. " +"The document metadata is available as variables `metadata` and document " +"properties under the variable `document`." +msgstr "" + +#: models.py:12 models.py:31 views.py:109 views.py:196 +msgid "enabled" +msgstr "" + +#: models.py:20 models.py:25 views.py:256 views.py:287 +msgid "smart link" +msgstr "" + +#: models.py:26 +msgid "The inclusion is ignored for the first item." +msgstr "" + +#: models.py:27 +msgid "foreign document data" +msgstr "" + +#: models.py:27 +msgid "" +"This represents the metadata of all other documents. Available objects: " +"`document.` and `metadata.`." +msgstr "" + +#: models.py:29 +msgid "expression" +msgstr "" + +#: models.py:30 +msgid "negated" +msgstr "" + +#: models.py:30 +msgid "Inverts the logic of the operator." +msgstr "" + +#: models.py:34 +msgid "not" +msgstr "" + +#: models.py:37 +msgid "link condition" +msgstr "" + +#: models.py:38 +msgid "link conditions" +msgstr "" + +#: views.py:32 +msgid "No action selected." +msgstr "" + +#: views.py:47 +#, python-format +msgid "documents in smart link: %(group)s" +msgstr "" + +#: views.py:65 +#, python-format +msgid "Smart link query error: %s" +msgstr "" + +#: views.py:76 +#, python-format +msgid "smart links (%s)" +msgstr "" + +#: views.py:90 +msgid "There no defined smart links for the current document." +msgstr "" + +#: views.py:124 +#, python-format +msgid "Smart link: %s created successfully." +msgstr "" + +#: views.py:131 +msgid "Create new smart link" +msgstr "" + +#: views.py:144 +#, python-format +msgid "Smart link: %s edited successfully." +msgstr "" + +#: views.py:153 +#, python-format +msgid "Edit smart link: %s" +msgstr "" + +#: views.py:168 +#, python-format +msgid "Smart link: %s deleted successfully." +msgstr "" + +#: views.py:170 +#, python-format +msgid "Error deleting smart link: %(smart_link)s; %(error)s." +msgstr "" + +#: views.py:180 +#, python-format +msgid "Are you sure you wish to delete smart link: %s?" +msgstr "" + +#: views.py:193 +#, python-format +msgid "conditions for smart link: %s" +msgstr "" + +#: views.py:216 +#, python-format +msgid "Smart link condition: \"%s\" created successfully." +msgstr "" + +#: views.py:223 +#, python-format +msgid "Add new conditions to smart link: \"%s\"" +msgstr "" + +#: views.py:243 +#, python-format +msgid "Smart link condition: \"%s\" edited successfully." +msgstr "" + +#: views.py:250 +msgid "Edit smart link condition" +msgstr "" + +#: views.py:257 views.py:288 +msgid "condition" +msgstr "" + +#: views.py:274 +#, python-format +msgid "Smart link condition: \"%s\" deleted successfully." +msgstr "" + +#: views.py:276 +#, python-format +msgid "" +"Error deleting smart link condition: %(smart_link_condition)s; %(error)s." +msgstr "" + +#: views.py:290 +#, python-format +msgid "Are you sure you wish to delete smart link condition: \"%s\"?" +msgstr "" + +#: conf/settings.py:11 +msgid "Show smart link that don't return any documents." +msgstr "" + +#: templates/smart_links_help.html:3 +msgid "What are smart links?" +msgstr "" + +#: templates/smart_links_help.html:4 +msgid "" +"Smart links are a set of conditional statements that are used to query the " +"database using the current document the user is accessing as the data " +"source, the results of these queries are a list of documents that relate in " +"some manner to the document being displayed and allow users the ability to " +"jump to and from linked documents very easily." +msgstr "" + + diff --git a/apps/main/locale/it/LC_MESSAGES/django.mo b/apps/main/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..34e8cee481a6504dbbaf0d0a1d235e31ce9135f7 GIT binary patch literal 501 zcmYjN%Wm5+5KPdXbnLl@Ezm=Pc1=n(0*9%KIDT06 z@-11#MbZHWU&lNVt&ctN- zv&5@lG;vv+YBCBknWo4m%OFivc7}2&B@1z7{@A|#|2lb&UnIz(8m6BlBU$K3SO)E4 zt;q)kv+KnIeoTrSzUIYbzW6?wPFMMQ{f(ur>U3qWG`dkRCtX{1b@Ffa{eC~7zL32& zcLQfgw1-VZ(H=~o*)~xSXA4W>G%4mq{<@=dAd@Ta$T%M8zGY`*?zl*;t-FBDPKRh{ zd|l3P^s4Lo-I{>8+xV?@m4eZYrI%3^aImbqplh7@&_o5UeGcO|yMV)UeB$847}C?^ F=n24VlVAV< literal 0 HcmV?d00001 diff --git a/apps/main/locale/it/LC_MESSAGES/django.po b/apps/main/locale/it/LC_MESSAGES/django.po new file mode 100644 index 0000000000..5fbd304397 --- /dev/null +++ b/apps/main/locale/it/LC_MESSAGES/django.po @@ -0,0 +1,143 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n" +"POT-Creation-Date: 2011-11-22 11:26-0400\n" +"PO-Revision-Date: 2011-09-30 04:41+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Italian (http://www.transifex.net/projects/p/mayan-edms/team/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: __init__.py:15 +msgid "maintenance" +msgstr "" + +#: __init__.py:16 +msgid "statistics" +msgstr "" + +#: __init__.py:17 +msgid "diagnostics" +msgstr "" + +#: __init__.py:18 +msgid "sentry" +msgstr "" + +#: __init__.py:19 +msgid "admin site" +msgstr "" + +#: __init__.py:30 +msgid "home" +msgstr "" + +#: __init__.py:32 +msgid "search" +msgstr "" + +#: views.py:41 +msgid "maintenance menu" +msgstr "" + +#: views.py:53 +msgid "Statistics" +msgstr "" + +#: views.py:61 +msgid "Diagnostics" +msgstr "" + +#: conf/settings.py:12 +msgid "" +"Controls whether the search functionality is provided by a sidebar widget or" +" by a menu entry." +msgstr "" + +#: templates/about.html:5 +msgid "About this program" +msgstr "" + +#: templates/about.html:9 templates/verbose_login.html:4 +msgid "Version" +msgstr "" + +#: templates/base.html:28 +msgid "(DEBUG)" +msgstr "" + +#: templates/base.html:183 +msgid "User" +msgstr "" + +#: templates/base.html:185 +msgid "Anonymous" +msgstr "" + +#: templates/base.html:188 +msgid "User details" +msgstr "" + +#: templates/base.html:205 +msgid "Login" +msgstr "" + +#: templates/base.html:205 +msgid "Logout" +msgstr "" + +#: templates/base.html:285 +msgid "Secondary menu" +msgstr "" + +#: templates/base.html:302 +#, python-format +msgid "Actions for %(name)s: %(navigation_object)s" +msgstr "" + +#: templates/base.html:304 templates/base.html.py:336 +#, python-format +msgid "Actions for: %(navigation_object)s" +msgstr "" + +#: templates/base.html:307 +msgid "Available actions" +msgstr "" + +#: templates/base.html:319 templates/base.html.py:351 +msgid "Related actions" +msgstr "" + +#: templates/base.html:334 +#, python-format +msgid "Actions for %(object_name)s: %(navigation_object)s" +msgstr "" + +#: templates/base.html:339 +msgid "Actions" +msgstr "" + +#: templates/base.html:364 +msgid "Other available actions" +msgstr "" + +#: templates/project_description.html:6 +msgid "" +"Open source, Django based electronic document manager with custom metadata, " +"indexing, tagging, file serving integration and OCR capabilities" +msgstr "" + +#: templates/project_description.html:15 +msgid "Released under the GPL V3 License" +msgstr "" + + diff --git a/apps/metadata/locale/it/LC_MESSAGES/django.mo b/apps/metadata/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..2ee6d674a1b50e1bb980d92bcbf06dea702c38ce GIT binary patch literal 501 zcmYjNO-~y!5T$BQd+fP~sl)-)PV8MM3Z|(@$wrElg(z8iH;LJ}+O=2qYy&@pU&DXt zZ|Q7PL7)6&kNoE2&F}Z`o(>pqm>-yj%(u+X%pODLGk>1*-D_U32>z#86V5jH!-QzP zQ&8wf?I52Nt7K_f9|((B*$sa0s)(gmuqA4h5S68EcQ;u3Mg$*qus(>U&lNVt&ctMK zQ{q)Hnz$@ZG#Le%OjG2OWss&SJ41OYB@1zBe%ZeL|2lb&ClchT`f~P3GLpHDgk{h! z)|z}!Fuk46;d)%;@HH>Sv-#zCGFj%U)i;*9s?(Lh(&$FPjC5_;)zQD%ce~wy`a<^J zJPe#6(e5`9MY}hFX46DLoGmPg&Kg06AuLlYIa_HP(R*#+#Mqaz0&N01&T G2Y&#@>yu^x literal 0 HcmV?d00001 diff --git a/apps/metadata/locale/it/LC_MESSAGES/django.po b/apps/metadata/locale/it/LC_MESSAGES/django.po new file mode 100644 index 0000000000..cf409ec798 --- /dev/null +++ b/apps/metadata/locale/it/LC_MESSAGES/django.po @@ -0,0 +1,452 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n" +"POT-Creation-Date: 2011-11-22 11:26-0400\n" +"PO-Revision-Date: 2011-09-30 04:56+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Italian (http://www.transifex.net/projects/p/mayan-edms/team/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: __init__.py:12 +msgid "Edit a document's metadata" +msgstr "" + +#: __init__.py:13 +msgid "Add metadata to a document" +msgstr "" + +#: __init__.py:14 +msgid "Remove metadata from a document" +msgstr "" + +#: __init__.py:15 +msgid "View metadata from a document" +msgstr "" + +#: __init__.py:17 +msgid "Edit metadata types" +msgstr "" + +#: __init__.py:18 +msgid "Create new metadata types" +msgstr "" + +#: __init__.py:19 +msgid "Delete metadata types" +msgstr "" + +#: __init__.py:20 +msgid "View metadata types" +msgstr "" + +#: __init__.py:22 +msgid "Edit metadata sets" +msgstr "" + +#: __init__.py:23 +msgid "Create new metadata sets" +msgstr "" + +#: __init__.py:24 +msgid "Delete metadata sets" +msgstr "" + +#: __init__.py:25 +msgid "View metadata sets" +msgstr "" + +#: __init__.py:27 forms.py:94 +msgid "Metadata" +msgstr "" + +#: __init__.py:33 +msgid "Metadata setup" +msgstr "" + +#: __init__.py:44 __init__.py:46 +msgid "edit metadata" +msgstr "" + +#: __init__.py:45 +msgid "metadata" +msgstr "" + +#: __init__.py:47 __init__.py:48 +msgid "add metadata" +msgstr "" + +#: __init__.py:49 __init__.py:50 +msgid "remove metadata" +msgstr "" + +#: __init__.py:52 models.py:33 views.py:294 +msgid "metadata types" +msgstr "" + +#: __init__.py:53 __init__.py:58 +msgid "edit" +msgstr "" + +#: __init__.py:54 __init__.py:59 +msgid "delete" +msgstr "" + +#: __init__.py:55 __init__.py:60 +msgid "create new" +msgstr "" + +#: __init__.py:57 views.py:394 +msgid "metadata sets" +msgstr "" + +#: __init__.py:62 models.py:92 +msgid "default metadata" +msgstr "" + +#: classes.py:12 +#, python-format +msgid "'metadata' object has no attribute '%s'" +msgstr "" + +#: forms.py:28 +msgid "required" +msgstr "" + +#: forms.py:54 +msgid "id" +msgstr "" + +#: forms.py:55 +msgid "Name" +msgstr "" + +#: forms.py:57 +msgid "Value" +msgstr "" + +#: forms.py:58 +msgid "Update" +msgstr "" + +#: forms.py:64 +msgid "Metadata type" +msgstr "" + +#: forms.py:68 +msgid "Remove" +msgstr "" + +#: forms.py:86 +msgid "Metadata sets" +msgstr "" + +#: models.py:9 +#, python-format +msgid " Available models: %s" +msgstr "" + +#: models.py:10 +#, python-format +msgid " Available functions: %s" +msgstr "" + +#: models.py:17 +msgid "name" +msgstr "" + +#: models.py:17 +msgid "Do not use python reserved words, or spaces." +msgstr "" + +#: models.py:18 models.py:40 +msgid "title" +msgstr "" + +#: models.py:20 +msgid "default" +msgstr "" + +#: models.py:21 +#, python-format +msgid "Enter a string to be evaluated.%s" +msgstr "" + +#: models.py:23 +msgid "lookup" +msgstr "" + +#: models.py:24 +#, python-format +msgid "" +"Enter a string to be evaluated. Example: [user.get_full_name() for user in " +"User.objects.all()].%s" +msgstr "" + +#: models.py:32 models.py:57 views.py:331 views.py:376 +msgid "metadata type" +msgstr "" + +#: models.py:47 models.py:48 models.py:56 views.py:446 views.py:491 +msgid "metadata set" +msgstr "" + +#: models.py:64 +msgid "metadata set item" +msgstr "" + +#: models.py:65 +msgid "metadata set items" +msgstr "" + +#: models.py:73 +msgid "document" +msgstr "" + +#: models.py:74 +msgid "type" +msgstr "" + +#: models.py:75 views.py:283 +msgid "value" +msgstr "" + +#: models.py:81 models.py:82 +msgid "document metadata" +msgstr "" + +#: models.py:90 views.py:559 +msgid "document type" +msgstr "" + +#: models.py:91 +msgid "default metadata sets" +msgstr "" + +#: models.py:98 +msgid "document type defaults" +msgstr "" + +#: models.py:99 +msgid "document types defaults" +msgstr "" + +#: views.py:38 views.py:193 +msgid "The selected document doesn't have any metadata." +msgstr "" + +#: views.py:43 views.py:131 views.py:199 +msgid "Must provide at least one document." +msgstr "" + +#: views.py:78 views.py:234 +#, python-format +msgid "Error deleting document indexes; %s" +msgstr "" + +#: views.py:90 +#, python-format +msgid "Error editing metadata for document %(document)s; %(error)s." +msgstr "" + +#: views.py:93 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "" + +#: views.py:98 views.py:251 +#, python-format +msgid "Error updating document indexes; %s" +msgstr "" + +#: views.py:100 views.py:253 +msgid "Document indexes updated successfully." +msgstr "" + +#: views.py:111 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "" + +#: views.py:113 +#, python-format +msgid "Edit metadata for documents: %s" +msgstr "" + +#: views.py:148 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s successfully added to document " +"%(document)s." +msgstr "" + +#: views.py:151 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "" + +#: views.py:175 +#, python-format +msgid "Add metadata type to document: %s" +msgstr "" + +#: views.py:177 +#, python-format +msgid "Add metadata type to documents: %s" +msgstr "" + +#: views.py:242 +#, python-format +msgid "" +"Successfully remove metadata type: %(metadata_type)s from document: " +"%(document)s." +msgstr "" + +#: views.py:245 +#, python-format +msgid "" +"Error removing metadata type: %(metadata_type)s from document: %(document)s." +msgstr "" + +#: views.py:264 +#, python-format +msgid "Remove metadata types from document: %s" +msgstr "" + +#: views.py:266 +#, python-format +msgid "Remove metadata types from documents: %s" +msgstr "" + +#: views.py:281 +#, python-format +msgid "metadata for: %s" +msgstr "" + +#: views.py:298 +msgid "internal name" +msgstr "" + +#: views.py:319 +msgid "Metadata type edited successfully" +msgstr "" + +#: views.py:322 +#, python-format +msgid "Error editing metadata type; %s" +msgstr "" + +#: views.py:328 +#, python-format +msgid "edit metadata type: %s" +msgstr "" + +#: views.py:343 +msgid "Metadata type created successfully" +msgstr "" + +#: views.py:349 +msgid "create metadata type" +msgstr "" + +#: views.py:368 +#, python-format +msgid "Metadata type: %s deleted successfully." +msgstr "" + +#: views.py:370 +#, python-format +msgid "Metadata type: %(metadata_type)s delete error: %(error)s" +msgstr "" + +#: views.py:381 +#, python-format +msgid "Are you sure you wish to delete the metadata type: %s?" +msgstr "" + +#: views.py:398 +msgid "members" +msgstr "" + +#: views.py:442 +#, python-format +msgid "non members of metadata set: %s" +msgstr "" + +#: views.py:443 +#, python-format +msgid "members of metadata set: %s" +msgstr "" + +#: views.py:458 +msgid "Metadata set created successfully" +msgstr "" + +#: views.py:464 +msgid "create metadata set" +msgstr "" + +#: views.py:483 +#, python-format +msgid "Metadata set: %s deleted successfully." +msgstr "" + +#: views.py:485 +#, python-format +msgid "Metadata set: %(metadata_set)s delete error: %(error)s" +msgstr "" + +#: views.py:496 +#, python-format +msgid "Are you sure you wish to delete the metadata set: %s?" +msgstr "" + +#: views.py:554 +#, python-format +msgid "non members of document type: %s" +msgstr "" + +#: views.py:555 +#, python-format +msgid "members of document type: %s" +msgstr "" + +#: templates/metadata_set_help.html:3 +msgid "What are metadata sets?" +msgstr "" + +#: templates/metadata_set_help.html:4 +msgid "" +"A metadata set is a group of one or more metadata types. Metadata sets are " +"useful when creating new documents; selecing a metadata set automatically " +"attaches it's member metadata types to said document." +msgstr "" + +#: templates/metadata_type_help.html:3 +msgid "What are metadata types?" +msgstr "" + +#: templates/metadata_type_help.html:4 +msgid "" +"A metadata type defines the characteristics of a value of some kind that can" +" be attached to a document. Examples of metadata types are: a client name, " +"a date, or a project to which several documents belong. A metadata type's " +"name is the internal identifier with which it can be referenced to by other " +"modules such as the indexing module, the title is the value that is shown to" +" the users, the default value is the value an instance of this metadata type" +" will have initially, and the lookup value turns an instance of a metadata " +"of this type into a choice list which options are the result of the lookup's" +" code execution." +msgstr "" + + diff --git a/apps/navigation/locale/it/LC_MESSAGES/django.mo b/apps/navigation/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..34e8cee481a6504dbbaf0d0a1d235e31ce9135f7 GIT binary patch literal 501 zcmYjN%Wm5+5KPdXbnLl@Ezm=Pc1=n(0*9%KIDT06 z@-11#MbZHWU&lNVt&ctN- zv&5@lG;vv+YBCBknWo4m%OFivc7}2&B@1z7{@A|#|2lb&UnIz(8m6BlBU$K3SO)E4 zt;q)kv+KnIeoTrSzUIYbzW6?wPFMMQ{f(ur>U3qWG`dkRCtX{1b@Ffa{eC~7zL32& zcLQfgw1-VZ(H=~o*)~xSXA4W>G%4mq{<@=dAd@Ta$T%M8zGY`*?zl*;t-FBDPKRh{ zd|l3P^s4Lo-I{>8+xV?@m4eZYrI%3^aImbqplh7@&_o5UeGcO|yMV)UeB$847}C?^ F=n24VlVAV< literal 0 HcmV?d00001 diff --git a/apps/navigation/locale/it/LC_MESSAGES/django.po b/apps/navigation/locale/it/LC_MESSAGES/django.po new file mode 100644 index 0000000000..086ca792fb --- /dev/null +++ b/apps/navigation/locale/it/LC_MESSAGES/django.po @@ -0,0 +1,32 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n" +"POT-Creation-Date: 2011-11-22 11:26-0400\n" +"PO-Revision-Date: 2011-09-30 04:41+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Italian (http://www.transifex.net/projects/p/mayan-edms/team/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: forms.py:14 +msgid "Multi item action" +msgstr "" + +#: widgets.py:28 +msgid "icon" +msgstr "" + +#: templatetags/navigation_tags.py:275 +msgid "Selected item actions:" +msgstr "" + + diff --git a/apps/ocr/locale/it/LC_MESSAGES/django.mo b/apps/ocr/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..34e8cee481a6504dbbaf0d0a1d235e31ce9135f7 GIT binary patch literal 501 zcmYjN%Wm5+5KPdXbnLl@Ezm=Pc1=n(0*9%KIDT06 z@-11#MbZHWU&lNVt&ctN- zv&5@lG;vv+YBCBknWo4m%OFivc7}2&B@1z7{@A|#|2lb&UnIz(8m6BlBU$K3SO)E4 zt;q)kv+KnIeoTrSzUIYbzW6?wPFMMQ{f(ur>U3qWG`dkRCtX{1b@Ffa{eC~7zL32& zcLQfgw1-VZ(H=~o*)~xSXA4W>G%4mq{<@=dAd@Ta$T%M8zGY`*?zl*;t-FBDPKRh{ zd|l3P^s4Lo-I{>8+xV?@m4eZYrI%3^aImbqplh7@&_o5UeGcO|yMV)UeB$847}C?^ F=n24VlVAV< literal 0 HcmV?d00001 diff --git a/apps/ocr/locale/it/LC_MESSAGES/django.po b/apps/ocr/locale/it/LC_MESSAGES/django.po new file mode 100644 index 0000000000..dd3f06215a --- /dev/null +++ b/apps/ocr/locale/it/LC_MESSAGES/django.po @@ -0,0 +1,448 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n" +"POT-Creation-Date: 2011-11-22 11:26-0400\n" +"PO-Revision-Date: 2011-09-30 04:41+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Italian (http://www.transifex.net/projects/p/mayan-edms/team/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: __init__.py:28 +msgid "Submit document for OCR" +msgstr "" + +#: __init__.py:29 +msgid "Delete document for OCR queue" +msgstr "" + +#: __init__.py:30 +msgid "Can enable/disable an OCR queue" +msgstr "" + +#: __init__.py:31 +msgid "Can execute an OCR clean up on all document pages" +msgstr "" + +#: __init__.py:32 +msgid "Can edit an OCR queue properties" +msgstr "" + +#: __init__.py:34 __init__.py:56 __init__.py:74 +msgid "OCR" +msgstr "" + +#: __init__.py:40 +msgid "OCR Setup" +msgstr "" + +#: __init__.py:44 +msgid "submit to OCR queue" +msgstr "" + +#: __init__.py:45 __init__.py:46 +msgid "re-queue" +msgstr "" + +#: __init__.py:47 __init__.py:48 __init__.py:63 +msgid "delete" +msgstr "" + +#: __init__.py:50 +msgid "stop queue" +msgstr "" + +#: __init__.py:51 +msgid "activate queue" +msgstr "" + +#: __init__.py:53 +msgid "clean up pages content" +msgstr "" + +#: __init__.py:53 +msgid "" +"Runs a language filter to remove common OCR mistakes from document pages " +"content." +msgstr "" + +#: __init__.py:55 +msgid "queue document list" +msgstr "" + +#: __init__.py:58 views.py:316 +msgid "active tasks" +msgstr "" + +#: __init__.py:60 +msgid "transformations" +msgstr "" + +#: __init__.py:61 +msgid "add transformation" +msgstr "" + +#: __init__.py:62 +msgid "edit" +msgstr "" + +#: __init__.py:82 +msgid "Default" +msgstr "" + +#: __init__.py:104 +msgid "Checks the OCR queue for pending documents." +msgstr "" + +#: api.py:119 +msgid "Text from OCR" +msgstr "" + +#: literals.py:8 +msgid "stopped" +msgstr "" + +#: literals.py:9 +msgid "active" +msgstr "" + +#: literals.py:18 +msgid "pending" +msgstr "" + +#: literals.py:19 +msgid "processing" +msgstr "" + +#: literals.py:20 +msgid "error" +msgstr "" + +#: models.py:22 +msgid "name" +msgstr "" + +#: models.py:23 +msgid "label" +msgstr "" + +#: models.py:27 models.py:47 +msgid "state" +msgstr "" + +#: models.py:32 models.py:40 views.py:44 views.py:337 views.py:378 +#: views.py:408 views.py:444 +msgid "document queue" +msgstr "" + +#: models.py:33 +msgid "document queues" +msgstr "" + +#: models.py:41 +msgid "document" +msgstr "" + +#: models.py:42 +msgid "date time submitted" +msgstr "" + +#: models.py:43 +msgid "delay ocr" +msgstr "" + +#: models.py:48 +msgid "result" +msgstr "" + +#: models.py:49 +msgid "node name" +msgstr "" + +#: models.py:53 +msgid "queue document" +msgstr "" + +#: models.py:54 +msgid "queue documents" +msgstr "" + +#: models.py:63 views.py:48 +msgid "Missing document." +msgstr "" + +#: models.py:67 +msgid "Enter a valid value." +msgstr "" + +#: models.py:95 views.py:341 +msgid "order" +msgstr "" + +#: models.py:96 views.py:342 views.py:379 views.py:409 +msgid "transformation" +msgstr "" + +#: models.py:97 views.py:343 +msgid "arguments" +msgstr "" + +#: models.py:97 +#, python-format +msgid "Use dictionaries to indentify arguments, example: %s" +msgstr "" + +#: models.py:107 +msgid "document queue transformation" +msgstr "" + +#: models.py:108 +msgid "document queue transformations" +msgstr "" + +#: statistics.py:8 +#, python-format +msgid "Document queues: %d" +msgstr "" + +#: statistics.py:9 +#, python-format +msgid "Queued documents: %d" +msgstr "" + +#: statistics.py:13 +msgid "OCR statistics" +msgstr "" + +#: views.py:41 +#, python-format +msgid "documents in queue: %s" +msgstr "" + +#: views.py:49 +msgid "thumbnail" +msgstr "" + +#: views.py:62 +msgid "document queue properties" +msgstr "" + +#: views.py:63 +#, python-format +msgid "Current state: %s" +msgstr "" + +#: views.py:79 views.py:154 +msgid "Must provide at least one queue document." +msgstr "" + +#: views.py:89 +#, python-format +msgid "Document: %s is being processed and can't be deleted." +msgstr "" + +#: views.py:92 +#, python-format +msgid "Queue document: %(document)s deleted successfully." +msgstr "" + +#: views.py:96 +#, python-format +msgid "Error deleting document: %(document)s; %(error)s" +msgstr "" + +#: views.py:109 +#, python-format +msgid "Are you sure you wish to delete queue document: %s?" +msgstr "" + +#: views.py:111 +#, python-format +msgid "Are you sure you wish to delete queue documents: %s?" +msgstr "" + +#: views.py:134 +#, python-format +msgid "Document: %(document)s was added to the OCR queue: %(queue)s." +msgstr "" + +#: views.py:137 +#, python-format +msgid "Document: %(document)s is already queued." +msgstr "" + +#: views.py:165 +#, python-format +msgid "Document: %s is already being processed and can't be re-queded." +msgstr "" + +#: views.py:173 +#, python-format +msgid "Document: %(document)s was re-queued to the OCR queue: %(queue)s" +msgstr "" + +#: views.py:176 +#, python-format +msgid "Document id#: %d, no longer exists." +msgstr "" + +#: views.py:189 +#, python-format +msgid "Are you sure you wish to re-queue document: %s?" +msgstr "" + +#: views.py:191 +#, python-format +msgid "Are you sure you wish to re-queue documents: %s?" +msgstr "" + +#: views.py:209 +#, python-format +msgid "Document queue: %s, already stopped." +msgstr "" + +#: views.py:215 +#, python-format +msgid "Document queue: %s, stopped successfully." +msgstr "" + +#: views.py:221 +#, python-format +msgid "Are you sure you wish to disable document queue: %s" +msgstr "" + +#: views.py:236 +#, python-format +msgid "Document queue: %s, already active." +msgstr "" + +#: views.py:242 +#, python-format +msgid "Document queue: %s, activated successfully." +msgstr "" + +#: views.py:248 +#, python-format +msgid "Are you sure you wish to activate document queue: %s" +msgstr "" + +#: views.py:265 +msgid "Are you sure you wish to clean up all the pages content?" +msgstr "" + +#: views.py:266 +msgid "On large databases this operation may take some time to execute." +msgstr "" + +#: views.py:272 +msgid "Document pages content clean up complete." +msgstr "" + +#: views.py:274 +#, python-format +msgid "Document pages content clean up error: %s" +msgstr "" + +#: views.py:320 +msgid "node" +msgstr "" + +#: views.py:321 +msgid "task id" +msgstr "" + +#: views.py:322 +msgid "task name" +msgstr "" + +#: views.py:323 +msgid "related object" +msgstr "" + +#: views.py:335 +#, python-format +msgid "transformations for: %s" +msgstr "" + +#: views.py:365 +msgid "Queue transformation edited successfully" +msgstr "" + +#: views.py:368 +#, python-format +msgid "Error editing queue transformation; %s" +msgstr "" + +#: views.py:373 +#, python-format +msgid "Edit transformation: %s" +msgstr "" + +#: views.py:396 +msgid "Queue transformation deleted successfully." +msgstr "" + +#: views.py:398 +#, python-format +msgid "Error deleting queue transformation; %(error)s" +msgstr "" + +#: views.py:411 +#, python-format +msgid "" +"Are you sure you wish to delete queue transformation \"%(transformation)s\"" +msgstr "" + +#: views.py:434 +msgid "Queue transformation created successfully" +msgstr "" + +#: views.py:437 +#, python-format +msgid "Error creating queue transformation; %s" +msgstr "" + +#: views.py:446 +#, python-format +msgid "Create new transformation for queue: %s" +msgstr "" + +#: conf/settings.py:13 +msgid "" +"Amount of seconds to delay OCR of documents to allow for the node's storage " +"replication overhead." +msgstr "" + +#: conf/settings.py:14 +msgid "Maximum amount of concurrent document OCRs a node can perform." +msgstr "" + +#: conf/settings.py:15 +msgid "Automatically queue newly created documents for OCR." +msgstr "" + +#: conf/settings.py:17 +msgid "" +"URI in the form: \"memcached://127.0.0.1:11211/\" to specify a cache backend" +" to use for locking. Multiple hosts can be specified separated by a " +"semicolon." +msgstr "" + +#: conf/settings.py:18 +msgid "File path to unpaper program." +msgstr "" + +#: parsers/__init__.py:23 +msgid "Text extracted from PDF" +msgstr "" + + diff --git a/apps/permissions/locale/it/LC_MESSAGES/django.mo b/apps/permissions/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..34e8cee481a6504dbbaf0d0a1d235e31ce9135f7 GIT binary patch literal 501 zcmYjN%Wm5+5KPdXbnLl@Ezm=Pc1=n(0*9%KIDT06 z@-11#MbZHWU&lNVt&ctN- zv&5@lG;vv+YBCBknWo4m%OFivc7}2&B@1z7{@A|#|2lb&UnIz(8m6BlBU$K3SO)E4 zt;q)kv+KnIeoTrSzUIYbzW6?wPFMMQ{f(ur>U3qWG`dkRCtX{1b@Ffa{eC~7zL32& zcLQfgw1-VZ(H=~o*)~xSXA4W>G%4mq{<@=dAd@Ta$T%M8zGY`*?zl*;t-FBDPKRh{ zd|l3P^s4Lo-I{>8+xV?@m4eZYrI%3^aImbqplh7@&_o5UeGcO|yMV)UeB$847}C?^ F=n24VlVAV< literal 0 HcmV?d00001 diff --git a/apps/permissions/locale/it/LC_MESSAGES/django.po b/apps/permissions/locale/it/LC_MESSAGES/django.po new file mode 100644 index 0000000000..11a0b7b7f7 --- /dev/null +++ b/apps/permissions/locale/it/LC_MESSAGES/django.po @@ -0,0 +1,194 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n" +"POT-Creation-Date: 2011-11-22 11:26-0400\n" +"PO-Revision-Date: 2011-09-30 04:41+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Italian (http://www.transifex.net/projects/p/mayan-edms/team/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: __init__.py:12 +msgid "View roles" +msgstr "" + +#: __init__.py:13 +msgid "Edit roles" +msgstr "" + +#: __init__.py:14 +msgid "Create roles" +msgstr "" + +#: __init__.py:15 +msgid "Delete roles" +msgstr "" + +#: __init__.py:16 +msgid "Grant permissions" +msgstr "" + +#: __init__.py:17 +msgid "Revoke permissions" +msgstr "" + +#: __init__.py:19 models.py:87 views.py:38 +msgid "roles" +msgstr "" + +#: __init__.py:20 +msgid "create new role" +msgstr "" + +#: __init__.py:21 +msgid "edit" +msgstr "" + +#: __init__.py:22 +msgid "members" +msgstr "" + +#: __init__.py:23 +msgid "role permissions" +msgstr "" + +#: __init__.py:24 +msgid "delete" +msgstr "" + +#: __init__.py:26 +msgid "grant" +msgstr "" + +#: __init__.py:27 +msgid "revoke" +msgstr "" + +#: api.py:22 +msgid "Permissions" +msgstr "" + +#: api.py:55 +msgid "Insufficient permissions." +msgstr "" + +#: models.py:11 views.py:58 +msgid "namespace" +msgstr "" + +#: models.py:12 views.py:59 +msgid "name" +msgstr "" + +#: models.py:13 models.py:82 +msgid "label" +msgstr "" + +#: models.py:20 models.py:65 views.py:145 views.py:204 +msgid "permission" +msgstr "" + +#: models.py:21 views.py:55 views.py:147 views.py:206 +msgid "permissions" +msgstr "" + +#: models.py:73 +msgid "permission holder" +msgstr "" + +#: models.py:74 +msgid "permission holders" +msgstr "" + +#: models.py:86 models.py:104 views.py:74 views.py:91 views.py:115 +#: views.py:282 +msgid "role" +msgstr "" + +#: models.py:115 +msgid "role member" +msgstr "" + +#: models.py:116 +msgid "role members" +msgstr "" + +#: views.py:61 +msgid "has permission" +msgstr "" + +#: views.py:142 views.py:201 +msgid " and " +msgstr "" + +#: views.py:142 views.py:201 +#, python-format +msgid "%(permissions)s to %(requester)s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Permission \"%(permission)s\" granted to: %(requester)s." +msgstr "" + +#: views.py:155 +#, python-format +msgid "%(requester)s, already had the permission \"%(permission)s\" granted." +msgstr "" + +#: views.py:167 +#, python-format +msgid "" +"Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" +msgstr "" + +#: views.py:211 +#, python-format +msgid "Permission \"%(permission)s\" revoked from: %(requester)s." +msgstr "" + +#: views.py:214 +#, python-format +msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +msgstr "" + +#: views.py:226 +#, python-format +msgid "" +"Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +msgstr "" + +#: views.py:278 +#, python-format +msgid "non members of role: %s" +msgstr "" + +#: views.py:279 +#, python-format +msgid "members of role: %s" +msgstr "" + +#: widgets.py:16 +msgid "Revoke" +msgstr "" + +#: widgets.py:21 +msgid "Grant" +msgstr "" + +#: conf/settings.py:10 +msgid "" +"A list of existing roles that are automatically assigned to newly created " +"users" +msgstr "" + + diff --git a/apps/project_setup/locale/it/LC_MESSAGES/django.mo b/apps/project_setup/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..d0eb804bd170782f648845e1ba0dc2ee18f6e7c7 GIT binary patch literal 501 zcmYjN%Wm5+5KPdXbnLl@Ezm=Pc1=n(0*9%KIDT06 z@-11#MbZHWU&lNVt&ctN- zv&5@lG;vv+YBCBknWo4m%OFivc7}2&B@1z7{@A|#|2lb&UnIz(8fKp)BU$K3SO)E4 zt;q)kv+KnIeoTrSzUIYbzW6?wPFMMQ{f(ur>U3qWG`dkRCtX{1b@Ffa{eC~7zL32& zcLQfgw1-VZ(H=~o*)~xSXA4W>G%4mq{<@=dAd@Ta$T%M8zGY`*?zl*;t-FBDPKRh{ zd|l3P^s4Lo-I{>8+xV?@m4eZYrI%3^aImbqplh7@&_o5UeGcO|yMV)UeB$847}C?^ F=n27rlVJb= literal 0 HcmV?d00001 diff --git a/apps/project_setup/locale/it/LC_MESSAGES/django.po b/apps/project_setup/locale/it/LC_MESSAGES/django.po new file mode 100644 index 0000000000..966177ce1a --- /dev/null +++ b/apps/project_setup/locale/it/LC_MESSAGES/django.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n" +"POT-Creation-Date: 2011-11-22 11:26-0400\n" +"PO-Revision-Date: 2011-09-30 04:42+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Italian (http://www.transifex.net/projects/p/mayan-edms/team/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: __init__.py:6 +msgid "setup" +msgstr "" + +#: views.py:13 +msgid "setup items" +msgstr "" + + diff --git a/apps/project_tools/locale/it/LC_MESSAGES/django.mo b/apps/project_tools/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..34e8cee481a6504dbbaf0d0a1d235e31ce9135f7 GIT binary patch literal 501 zcmYjN%Wm5+5KPdXbnLl@Ezm=Pc1=n(0*9%KIDT06 z@-11#MbZHWU&lNVt&ctN- zv&5@lG;vv+YBCBknWo4m%OFivc7}2&B@1z7{@A|#|2lb&UnIz(8m6BlBU$K3SO)E4 zt;q)kv+KnIeoTrSzUIYbzW6?wPFMMQ{f(ur>U3qWG`dkRCtX{1b@Ffa{eC~7zL32& zcLQfgw1-VZ(H=~o*)~xSXA4W>G%4mq{<@=dAd@Ta$T%M8zGY`*?zl*;t-FBDPKRh{ zd|l3P^s4Lo-I{>8+xV?@m4eZYrI%3^aImbqplh7@&_o5UeGcO|yMV)UeB$847}C?^ F=n24VlVAV< literal 0 HcmV?d00001 diff --git a/apps/project_tools/locale/it/LC_MESSAGES/django.po b/apps/project_tools/locale/it/LC_MESSAGES/django.po new file mode 100644 index 0000000000..086a78ab58 --- /dev/null +++ b/apps/project_tools/locale/it/LC_MESSAGES/django.po @@ -0,0 +1,24 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n" +"POT-Creation-Date: 2011-11-22 11:26-0400\n" +"PO-Revision-Date: 2011-09-30 04:41+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Italian (http://www.transifex.net/projects/p/mayan-edms/team/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: __init__.py:7 views.py:13 +msgid "tools" +msgstr "" + + diff --git a/apps/smart_settings/locale/it/LC_MESSAGES/django.mo b/apps/smart_settings/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..34e8cee481a6504dbbaf0d0a1d235e31ce9135f7 GIT binary patch literal 501 zcmYjN%Wm5+5KPdXbnLl@Ezm=Pc1=n(0*9%KIDT06 z@-11#MbZHWU&lNVt&ctN- zv&5@lG;vv+YBCBknWo4m%OFivc7}2&B@1z7{@A|#|2lb&UnIz(8m6BlBU$K3SO)E4 zt;q)kv+KnIeoTrSzUIYbzW6?wPFMMQ{f(ur>U3qWG`dkRCtX{1b@Ffa{eC~7zL32& zcLQfgw1-VZ(H=~o*)~xSXA4W>G%4mq{<@=dAd@Ta$T%M8zGY`*?zl*;t-FBDPKRh{ zd|l3P^s4Lo-I{>8+xV?@m4eZYrI%3^aImbqplh7@&_o5UeGcO|yMV)UeB$847}C?^ F=n24VlVAV< literal 0 HcmV?d00001 diff --git a/apps/smart_settings/locale/it/LC_MESSAGES/django.po b/apps/smart_settings/locale/it/LC_MESSAGES/django.po new file mode 100644 index 0000000000..c6838fcd25 --- /dev/null +++ b/apps/smart_settings/locale/it/LC_MESSAGES/django.po @@ -0,0 +1,36 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n" +"POT-Creation-Date: 2011-11-22 11:26-0400\n" +"PO-Revision-Date: 2011-09-30 04:41+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Italian (http://www.transifex.net/projects/p/mayan-edms/team/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: __init__.py:8 views.py:26 +msgid "settings" +msgstr "" + +#: views.py:31 +msgid "name" +msgstr "" + +#: views.py:32 +msgid "default" +msgstr "" + +#: views.py:33 +msgid "value" +msgstr "" + + diff --git a/apps/sources/locale/it/LC_MESSAGES/django.mo b/apps/sources/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..34e8cee481a6504dbbaf0d0a1d235e31ce9135f7 GIT binary patch literal 501 zcmYjN%Wm5+5KPdXbnLl@Ezm=Pc1=n(0*9%KIDT06 z@-11#MbZHWU&lNVt&ctN- zv&5@lG;vv+YBCBknWo4m%OFivc7}2&B@1z7{@A|#|2lb&UnIz(8m6BlBU$K3SO)E4 zt;q)kv+KnIeoTrSzUIYbzW6?wPFMMQ{f(ur>U3qWG`dkRCtX{1b@Ffa{eC~7zL32& zcLQfgw1-VZ(H=~o*)~xSXA4W>G%4mq{<@=dAd@Ta$T%M8zGY`*?zl*;t-FBDPKRh{ zd|l3P^s4Lo-I{>8+xV?@m4eZYrI%3^aImbqplh7@&_o5UeGcO|yMV)UeB$847}C?^ F=n24VlVAV< literal 0 HcmV?d00001 diff --git a/apps/sources/locale/it/LC_MESSAGES/django.po b/apps/sources/locale/it/LC_MESSAGES/django.po new file mode 100644 index 0000000000..a03efbdf8a --- /dev/null +++ b/apps/sources/locale/it/LC_MESSAGES/django.po @@ -0,0 +1,462 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n" +"POT-Creation-Date: 2011-11-22 11:26-0400\n" +"PO-Revision-Date: 2011-09-30 04:41+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Italian (http://www.transifex.net/projects/p/mayan-edms/team/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: __init__.py:14 +msgid "View existing document sources" +msgstr "" + +#: __init__.py:15 +msgid "Edit document sources" +msgstr "" + +#: __init__.py:16 +msgid "Delete document sources" +msgstr "" + +#: __init__.py:17 +msgid "Create new document sources" +msgstr "" + +#: __init__.py:19 +msgid "Sources setup" +msgstr "" + +#: __init__.py:25 +msgid "preview" +msgstr "" + +#: __init__.py:26 __init__.py:34 __init__.py:40 +msgid "delete" +msgstr "" + +#: __init__.py:28 +msgid "sources" +msgstr "" + +#: __init__.py:29 literals.py:53 models.py:159 +msgid "web forms" +msgstr "" + +#: __init__.py:30 models.py:130 +msgid "staging folders" +msgstr "" + +#: __init__.py:31 models.py:194 +msgid "watch folders" +msgstr "" + +#: __init__.py:33 __init__.py:39 +msgid "edit" +msgstr "" + +#: __init__.py:35 +msgid "add new source" +msgstr "" + +#: __init__.py:37 +msgid "transformations" +msgstr "" + +#: __init__.py:38 +msgid "add transformation" +msgstr "" + +#: __init__.py:42 +msgid "Document sources" +msgstr "" + +#: __init__.py:69 widgets.py:39 +msgid "thumbnail" +msgstr "" + +#: forms.py:32 forms.py:55 +msgid "Expand compressed files" +msgstr "" + +#: forms.py:33 forms.py:56 +msgid "Upload a compressed file's contained files as individual documents" +msgstr "" + +#: forms.py:41 +msgid "Staging file" +msgstr "" + +#: literals.py:8 literals.py:13 +msgid "Always" +msgstr "" + +#: literals.py:9 literals.py:14 +msgid "Never" +msgstr "" + +#: literals.py:15 +msgid "Ask user" +msgstr "" + +#: literals.py:30 +msgid "Disk" +msgstr "" + +#: literals.py:31 +msgid "Database" +msgstr "" + +#: literals.py:32 +msgid "Drive" +msgstr "" + +#: literals.py:33 +msgid "Network drive" +msgstr "" + +#: literals.py:34 +msgid "User drive" +msgstr "" + +#: literals.py:35 +msgid "Envelope" +msgstr "" + +#: literals.py:36 +msgid "Folder" +msgstr "" + +#: literals.py:37 +msgid "World" +msgstr "" + +#: literals.py:38 +msgid "Printer" +msgstr "" + +#: literals.py:39 +msgid "Empty printer" +msgstr "" + +#: literals.py:47 models.py:158 +msgid "web form" +msgstr "" + +#: literals.py:48 +msgid "server staging folder" +msgstr "" + +#: literals.py:49 +msgid "server watch folder" +msgstr "" + +#: literals.py:54 +msgid "server staging folders" +msgstr "" + +#: literals.py:55 +msgid "server watch folders" +msgstr "" + +#: models.py:29 +msgid "title" +msgstr "" + +#: models.py:30 +msgid "enabled" +msgstr "" + +#: models.py:31 +msgid "whitelist" +msgstr "" + +#: models.py:32 +msgid "blacklist" +msgstr "" + +#: models.py:98 +msgid "icon" +msgstr "" + +#: models.py:98 +msgid "An icon to visually distinguish this source." +msgstr "" + +#: models.py:114 models.py:166 +msgid "folder path" +msgstr "" + +#: models.py:114 models.py:166 +msgid "Server side filesystem path." +msgstr "" + +#: models.py:115 +msgid "preview width" +msgstr "" + +#: models.py:115 +msgid "Width value to be passed to the converter backend." +msgstr "" + +#: models.py:116 +msgid "preview height" +msgstr "" + +#: models.py:116 +msgid "Height value to be passed to the converter backend." +msgstr "" + +#: models.py:117 models.py:154 models.py:167 +msgid "uncompress" +msgstr "" + +#: models.py:117 models.py:154 models.py:167 +msgid "Whether to expand or not compressed archives." +msgstr "" + +#: models.py:118 models.py:168 +msgid "delete after upload" +msgstr "" + +#: models.py:118 models.py:168 +msgid "Delete the file after is has been successfully uploaded." +msgstr "" + +#: models.py:129 +msgid "staging folder" +msgstr "" + +#: models.py:169 +msgid "interval" +msgstr "" + +#: models.py:169 +msgid "" +"Inverval in seconds where the watch folder path is checked for new " +"documents." +msgstr "" + +#: models.py:193 +msgid "watch folder" +msgstr "" + +#: models.py:198 +msgid "Enter a valid value." +msgstr "" + +#: models.py:226 views.py:487 +msgid "order" +msgstr "" + +#: models.py:227 views.py:488 views.py:525 views.py:555 +msgid "transformation" +msgstr "" + +#: models.py:228 views.py:489 +msgid "arguments" +msgstr "" + +#: models.py:228 +#, python-format +msgid "Use dictionaries to indentify arguments, example: %s" +msgstr "" + +#: models.py:239 +msgid "document source transformation" +msgstr "" + +#: models.py:240 +msgid "document source transformations" +msgstr "" + +#: staging.py:42 +#, python-format +msgid "Unable get list of staging files: %s" +msgstr "" + +#: staging.py:127 +#, python-format +msgid "Unable to upload staging file: %s" +msgstr "" + +#: staging.py:137 +#, python-format +msgid "Unable to delete staging file: %s" +msgstr "" + +#: utils.py:40 +msgid "Whitelist Blacklist validation error." +msgstr "" + +#: views.py:80 +msgid "here" +msgstr "" + +#: views.py:85 +msgid "Upload sources" +msgstr "" + +#: views.py:87 +msgid "" +"No interactive document sources have been defined or none have been enabled." +msgstr "" + +#: views.py:88 +#, python-format +msgid "Click %(setup_link)s to add or enable some document sources." +msgstr "" + +#: views.py:136 +msgid "Document uploaded successfully." +msgstr "" + +#: views.py:152 +#, python-format +msgid "upload a local document from source: %s" +msgstr "" + +#: views.py:182 +#, python-format +msgid "Staging file: %s, uploaded successfully." +msgstr "" + +#: views.py:187 +#, python-format +msgid "Staging file: %s, deleted successfully." +msgstr "" + +#: views.py:209 +#, python-format +msgid "upload a document from staging source: %s" +msgstr "" + +#: views.py:215 +msgid "files in staging path" +msgstr "" + +#: views.py:229 +msgid "Current metadata" +msgstr "" + +#: views.py:265 views.py:284 +#, python-format +msgid "Staging file transformation error: %(error)s" +msgstr "" + +#: views.py:307 +msgid "Staging file delete successfully." +msgstr "" + +#: views.py:309 +#, python-format +msgid "Staging file delete error; %s." +msgstr "" + +#: views.py:368 +msgid "Source edited successfully" +msgstr "" + +#: views.py:371 +#, python-format +msgid "Error editing source; %s" +msgstr "" + +#: views.py:376 +#, python-format +msgid "edit source: %s" +msgstr "" + +#: views.py:381 views.py:421 views.py:483 views.py:524 views.py:554 +#: views.py:597 +msgid "source" +msgstr "" + +#: views.py:410 +#, python-format +msgid "Source \"%s\" deleted successfully." +msgstr "" + +#: views.py:412 +#, python-format +msgid "Error deleting source \"%(source)s\": %(error)s" +msgstr "" + +#: views.py:419 +#, python-format +msgid "Are you sure you wish to delete the source: %s?" +msgstr "" + +#: views.py:451 +msgid "Source created successfully" +msgstr "" + +#: views.py:454 +#, python-format +msgid "Error creating source; %s" +msgstr "" + +#: views.py:459 +#, python-format +msgid "Create new source of type: %s" +msgstr "" + +#: views.py:481 +#, python-format +msgid "transformations for: %s" +msgstr "" + +#: views.py:511 +msgid "Source transformation edited successfully" +msgstr "" + +#: views.py:514 +#, python-format +msgid "Error editing source transformation; %s" +msgstr "" + +#: views.py:519 +#, python-format +msgid "Edit transformation: %s" +msgstr "" + +#: views.py:542 +msgid "Source transformation deleted successfully." +msgstr "" + +#: views.py:544 +#, python-format +msgid "Error deleting source transformation; %(error)s" +msgstr "" + +#: views.py:557 +#, python-format +msgid "" +"Are you sure you wish to delete source transformation \"%(transformation)s\"" +msgstr "" + +#: views.py:587 +msgid "Source transformation created successfully" +msgstr "" + +#: views.py:590 +#, python-format +msgid "Error creating source transformation; %s" +msgstr "" + +#: views.py:599 +#, python-format +msgid "Create new transformation for source: %s" +msgstr "" + + diff --git a/apps/tags/locale/it/LC_MESSAGES/django.mo b/apps/tags/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..34e8cee481a6504dbbaf0d0a1d235e31ce9135f7 GIT binary patch literal 501 zcmYjN%Wm5+5KPdXbnLl@Ezm=Pc1=n(0*9%KIDT06 z@-11#MbZHWU&lNVt&ctN- zv&5@lG;vv+YBCBknWo4m%OFivc7}2&B@1z7{@A|#|2lb&UnIz(8m6BlBU$K3SO)E4 zt;q)kv+KnIeoTrSzUIYbzW6?wPFMMQ{f(ur>U3qWG`dkRCtX{1b@Ffa{eC~7zL32& zcLQfgw1-VZ(H=~o*)~xSXA4W>G%4mq{<@=dAd@Ta$T%M8zGY`*?zl*;t-FBDPKRh{ zd|l3P^s4Lo-I{>8+xV?@m4eZYrI%3^aImbqplh7@&_o5UeGcO|yMV)UeB$847}C?^ F=n24VlVAV< literal 0 HcmV?d00001 diff --git a/apps/tags/locale/it/LC_MESSAGES/django.po b/apps/tags/locale/it/LC_MESSAGES/django.po new file mode 100644 index 0000000000..d1a19e1f40 --- /dev/null +++ b/apps/tags/locale/it/LC_MESSAGES/django.po @@ -0,0 +1,267 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n" +"POT-Creation-Date: 2011-11-22 11:26-0400\n" +"PO-Revision-Date: 2011-09-30 04:41+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Italian (http://www.transifex.net/projects/p/mayan-edms/team/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: __init__.py:13 +msgid "Create new tags" +msgstr "" + +#: __init__.py:14 +msgid "Attach exising tags" +msgstr "" + +#: __init__.py:15 +msgid "Remove tags from documents" +msgstr "" + +#: __init__.py:16 +msgid "Delete global tags" +msgstr "" + +#: __init__.py:17 +msgid "Edit global tags" +msgstr "" + +#: __init__.py:18 +msgid "View a document's tags" +msgstr "" + +#: __init__.py:20 +msgid "Tags" +msgstr "" + +#: __init__.py:28 +msgid "tag list" +msgstr "" + +#: __init__.py:29 +msgid "create new tag" +msgstr "" + +#: __init__.py:30 +msgid "attach tag" +msgstr "" + +#: __init__.py:31 __init__.py:32 +msgid "remove" +msgstr "" + +#: __init__.py:33 __init__.py:58 utils.py:14 views.py:144 +msgid "tags" +msgstr "" + +#: __init__.py:34 __init__.py:37 +msgid "delete" +msgstr "" + +#: __init__.py:35 +msgid "edit" +msgstr "" + +#: __init__.py:36 +msgid "tagged documents" +msgstr "" + +#: __init__.py:41 models.py:46 +msgid "color" +msgstr "" + +#: __init__.py:45 +msgid "color name" +msgstr "" + +#: forms.py:14 +msgid "New tag" +msgstr "" + +#: forms.py:15 forms.py:24 +msgid "Color" +msgstr "" + +#: forms.py:16 +msgid "Existing tags" +msgstr "" + +#: forms.py:23 +msgid "Name" +msgstr "" + +#: models.py:18 +msgid "Blue" +msgstr "" + +#: models.py:19 +msgid "Cyan" +msgstr "" + +#: models.py:20 +msgid "Coral" +msgstr "" + +#: models.py:21 +msgid "Green-Yellow" +msgstr "" + +#: models.py:22 +msgid "Khaki" +msgstr "" + +#: models.py:23 +msgid "LightGrey" +msgstr "" + +#: models.py:24 +msgid "Magenta" +msgstr "" + +#: models.py:25 +msgid "Red" +msgstr "" + +#: models.py:26 +msgid "Orange" +msgstr "" + +#: models.py:27 +msgid "Yellow" +msgstr "" + +#: models.py:45 views.py:185 views.py:233 views.py:248 +msgid "tag" +msgstr "" + +#: models.py:49 +msgid "tag properties" +msgstr "" + +#: models.py:50 +msgid "tags properties" +msgstr "" + +#: views.py:33 +msgid "Tag already exists." +msgstr "" + +#: views.py:40 +msgid "Tag created succesfully." +msgstr "" + +#: views.py:46 +msgid "create tag" +msgstr "" + +#: views.py:73 views.py:112 +msgid "Must choose either a new tag or an existing one." +msgstr "" + +#: views.py:77 views.py:116 +#, python-format +msgid "Document is already tagged as \"%s\"" +msgstr "" + +#: views.py:86 +#, python-format +msgid "Tag \"%s\" added successfully." +msgstr "" + +#: views.py:124 +#, python-format +msgid "Tag \"%s\" added and attached successfully." +msgstr "" + +#: views.py:126 +#, python-format +msgid "Tag \"%s\" attached successfully." +msgstr "" + +#: views.py:133 +#, python-format +msgid "attach tag to: %s" +msgstr "" + +#: views.py:149 +msgid "tagged items" +msgstr "" + +#: views.py:166 views.py:280 +msgid "Must provide at least one tag." +msgstr "" + +#: views.py:176 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "" + +#: views.py:178 views.py:294 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "" + +#: views.py:193 +#, python-format +msgid "Are you sure you wish to delete the tag: %s?" +msgstr "" + +#: views.py:194 views.py:197 +msgid "Will be removed from all documents." +msgstr "" + +#: views.py:196 +#, python-format +msgid "Are you sure you wish to delete the tags: %s?" +msgstr "" + +#: views.py:221 +msgid "Tag updated succesfully." +msgstr "" + +#: views.py:230 +#, python-format +msgid "edit tag: %s" +msgstr "" + +#: views.py:245 +#, python-format +msgid "documents with the tag \"%s\"" +msgstr "" + +#: views.py:258 +#, python-format +msgid "tags for: %s" +msgstr "" + +#: views.py:292 +#, python-format +msgid "Tag \"%s\" removed successfully." +msgstr "" + +#: views.py:308 +#, python-format +msgid "Are you sure you wish to remove the tag: %s?" +msgstr "" + +#: views.py:310 +#, python-format +msgid "Are you sure you wish to remove the tags: %s?" +msgstr "" + +#: templatetags/tags_tags.py:17 +msgid "Add tag to document" +msgstr "" + + diff --git a/apps/user_management/locale/it/LC_MESSAGES/django.mo b/apps/user_management/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..72cbfdd28e96e44641807cba5841648db40f9397 GIT binary patch literal 501 zcmYjNO-~y!5T$BQd+fP~sl)-)PV8Nv3Z|(@$wrElg(z8iH;LJ}+O=2qYy&@pU&DXt zZ|Q7PL7)6&kNoE2&F}Z`o(>pqm>-yj%(u+X%pODLGk>1*-D_U32>z#86V5jH!-QzP zQ&8wf?I52Nt7K_f9|((B*$sa0s)(gmuqA4h5S68EcQ;u3Mg$*qus(>U&lNVt&ctMK zQ{q)Hnz$@ZG#Le%OjG2OWss&S`-1XRN*3bM{IY%f|8?>lPbA1wb$0eiGLpHDgk{h! z)|z}!Fuk46;d)%;@HH>Sv-#zCGFj%U)i;*9s?(Lh(&$FPjC5_;)zQD%ce~wy`a<^J zJPe#6(e5`9MY}hFX46DLoGmPg&Kg06AuLlYIa_HP(R*#+#Mqaz0&N01&T G2Y&#?){|ub literal 0 HcmV?d00001 diff --git a/apps/user_management/locale/it/LC_MESSAGES/django.po b/apps/user_management/locale/it/LC_MESSAGES/django.po new file mode 100644 index 0000000000..5e5ae7a353 --- /dev/null +++ b/apps/user_management/locale/it/LC_MESSAGES/django.po @@ -0,0 +1,254 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n" +"POT-Creation-Date: 2011-11-22 11:26-0400\n" +"PO-Revision-Date: 2011-09-30 04:55+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Italian (http://www.transifex.net/projects/p/mayan-edms/team/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: __init__.py:8 +msgid "Create new users" +msgstr "" + +#: __init__.py:9 +msgid "Edit existing users" +msgstr "" + +#: __init__.py:10 +msgid "View existing users" +msgstr "" + +#: __init__.py:11 +msgid "Delete existing users" +msgstr "" + +#: __init__.py:13 +msgid "Create new groups" +msgstr "" + +#: __init__.py:14 +msgid "Edit existing groups" +msgstr "" + +#: __init__.py:15 +msgid "View existing groups" +msgstr "" + +#: __init__.py:16 +msgid "Delete existing groups" +msgstr "" + +#: __init__.py:18 +msgid "User management" +msgstr "" + +#: __init__.py:28 +msgid "user list" +msgstr "" + +#: __init__.py:29 views.py:31 +msgid "users" +msgstr "" + +#: __init__.py:30 __init__.py:39 +msgid "edit" +msgstr "" + +#: __init__.py:31 views.py:92 +msgid "create new user" +msgstr "" + +#: __init__.py:32 __init__.py:33 __init__.py:41 __init__.py:42 +msgid "delete" +msgstr "" + +#: __init__.py:34 __init__.py:35 +msgid "reset password" +msgstr "" + +#: __init__.py:37 +msgid "group list" +msgstr "" + +#: __init__.py:38 views.py:222 +msgid "groups" +msgstr "" + +#: __init__.py:40 views.py:270 +msgid "create new group" +msgstr "" + +#: __init__.py:43 views.py:226 +msgid "members" +msgstr "" + +#: forms.py:13 +msgid "New password" +msgstr "" + +#: forms.py:14 +msgid "Confirm password" +msgstr "" + +#: views.py:35 +msgid "full name" +msgstr "" + +#: views.py:39 +msgid "email" +msgstr "" + +#: views.py:43 +msgid "active" +msgstr "" + +#: views.py:58 +msgid "" +"Super user and staff user editing is not allowed, use the admin interface " +"for these cases." +msgstr "" + +#: views.py:65 +#, python-format +msgid "User \"%s\" updated successfully." +msgstr "" + +#: views.py:71 +#, python-format +msgid "edit user: %s" +msgstr "" + +#: views.py:74 views.py:130 views.py:193 +msgid "user" +msgstr "" + +#: views.py:86 +#, python-format +msgid "User \"%s\" created successfully." +msgstr "" + +#: views.py:108 views.py:162 +msgid "Must provide at least one user." +msgstr "" + +#: views.py:118 +msgid "" +"Super user and staff user deleting is not allowed, use the admin interface " +"for these cases." +msgstr "" + +#: views.py:121 +#, python-format +msgid "User \"%s\" deleted successfully." +msgstr "" + +#: views.py:123 +#, python-format +msgid "Error deleting user \"%(user)s\": %(error)s" +msgstr "" + +#: views.py:138 +#, python-format +msgid "Are you sure you wish to delete the user: %s?" +msgstr "" + +#: views.py:140 +#, python-format +msgid "Are you sure you wish to delete the users: %s?" +msgstr "" + +#: views.py:173 +msgid "Passwords do not match, try again." +msgstr "" + +#: views.py:178 +msgid "" +"Super user and staff user password reseting is not allowed, use the admin " +"interface for these cases." +msgstr "" + +#: views.py:182 +#, python-format +msgid "Successfull password reset for user: %s." +msgstr "" + +#: views.py:184 +#, python-format +msgid "Error reseting password for user \"%(user)s\": %(error)s" +msgstr "" + +#: views.py:200 +#, python-format +msgid "Reseting password for user: %s" +msgstr "" + +#: views.py:202 +#, python-format +msgid "Reseting password for users: %s" +msgstr "" + +#: views.py:243 +#, python-format +msgid "Group \"%s\" updated successfully." +msgstr "" + +#: views.py:249 +#, python-format +msgid "edit group: %s" +msgstr "" + +#: views.py:252 views.py:305 views.py:350 +msgid "group" +msgstr "" + +#: views.py:264 +#, python-format +msgid "Group \"%s\" created successfully." +msgstr "" + +#: views.py:286 +msgid "Must provide at least one group." +msgstr "" + +#: views.py:296 +#, python-format +msgid "Group \"%s\" deleted successfully." +msgstr "" + +#: views.py:298 +#, python-format +msgid "Error deleting group \"%(group)s\": %(error)s" +msgstr "" + +#: views.py:313 +#, python-format +msgid "Are you sure you wish to delete the group: %s?" +msgstr "" + +#: views.py:315 +#, python-format +msgid "Are you sure you wish to delete the groups: %s?" +msgstr "" + +#: views.py:345 +#, python-format +msgid "non members of group: %s" +msgstr "" + +#: views.py:346 +#, python-format +msgid "members of group: %s" +msgstr "" + + diff --git a/apps/web_theme/locale/it/LC_MESSAGES/django.mo b/apps/web_theme/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..dec8509d2476cd85c7d29c827507779e32e37d0f GIT binary patch literal 501 zcmZ8d%TB{E5Cp*~N6s7;i312+C!s>cP(*1{sZs+~n{qd;NsSUavNseygs@ zKr%>Y!Bkb&AxnL(m+ZFAJ<$JWA@+*vQ3wvLxgF4x}I$_JDCjP;$8 zNM+eTq7o2?QN-xPF+`Dw&so?GLlUy7deKe$f4cAt;z+dPlaLUMrAL-IX?!8kIswD^ zcno*FG=Zxm?TyAay}@9b%x2dlHF+&_#WE#J0V9-!CRay4v#;0d7B+?SlX`6#g}mBq z!t-ilf~jTcIZ`&)$d7|`lqP>WidtdNw+5A=f!-=|hU%4y6jGZ@SgfS;3cK@c$U1+z zrr(otEHMka)Fv0udDQqjssIWmMeSt4hSrr{fT_Mi-;FO}^XwiOIOsxj9Bh37xR;Yz literal 0 HcmV?d00001 diff --git a/apps/web_theme/locale/it/LC_MESSAGES/django.po b/apps/web_theme/locale/it/LC_MESSAGES/django.po new file mode 100644 index 0000000000..69086d2e50 --- /dev/null +++ b/apps/web_theme/locale/it/LC_MESSAGES/django.po @@ -0,0 +1,76 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n" +"POT-Creation-Date: 2011-11-22 11:26-0400\n" +"PO-Revision-Date: 2011-11-03 21:42+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Italian (http://www.transifex.net/projects/p/mayan-edms/team/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: conf/settings.py:10 +msgid "" +"CSS theme to apply, options are: amro, bec, bec-green, blue, default, djime-" +"cerulean, drastic-dark, kathleene, olive, orange, red, reidb-greenish and " +"warehouse." +msgstr "" + +#: conf/settings.py:12 +msgid "Display extra information in the login screen." +msgstr "" + +#: templates/web_theme_base.html:101 +msgid "dismiss all notifications" +msgstr "" + +#: templates/web_theme_base.html:101 +msgid "close all" +msgstr "" + +#: templates/web_theme_base.html:102 +msgid "dismiss this notification" +msgstr "" + +#: templates/web_theme_base.html:102 +msgid "close" +msgstr "" + +#: templates/web_theme_login.html:12 templates/web_theme_login.html.py:33 +msgid "Login" +msgstr "" + +#: templates/web_theme_login.html:17 +msgid "You are already logged in" +msgstr "" + +#: templates/web_theme_login.html:20 +msgid "Redirecting you to the website entry point in 5 seconds." +msgstr "" + +#: templates/web_theme_login.html:23 +#, python-format +msgid "" +"Or click here if redirection doesn't " +"work." +msgstr "" + +#: templates/pagination/pagination.html:6 +#: templates/pagination/pagination.html:8 +msgid "Previous" +msgstr "" + +#: templates/pagination/pagination.html:26 +#: templates/pagination/pagination.html:28 +msgid "Next" +msgstr "" + + From 18cc876da8e871afa79aed97d45fb6ba43b0735b Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Wed, 7 Dec 2011 15:54:53 -0400 Subject: [PATCH 27/27] Add Pierpaolo Baldan to the contributors file, sort translator by language --- docs/contributors.rst | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/docs/contributors.rst b/docs/contributors.rst index cae85f3c13..45689b59da 100644 --- a/docs/contributors.rst +++ b/docs/contributors.rst @@ -38,6 +38,10 @@ Suggestions Translations ------------ -* Emerson Soares (http://emersonsoares.com) -* Renata Oliveira (https://twitter.com/#!/rnataoliveira) -* Сергей Глита [Sergey Glita] (s.v.glita@gmail.com) +* Portuguese + * Emerson Soares (http://emersonsoares.com) + * Renata Oliveira (https://twitter.com/#!/rnataoliveira) +* Russian + * Сергей Глита [Sergey Glita] (s.v.glita@gmail.com) +* Italian + * Pierpaolo Baldan