Merge branch 'development' into feature/ACL_support

This commit is contained in:
Roberto Rosario
2011-12-07 16:09:45 -04:00
81 changed files with 6949 additions and 318 deletions

View File

@@ -4,6 +4,7 @@ source_lang = en
trans.es = apps/converter/locale/es/LC_MESSAGES/django.po trans.es = apps/converter/locale/es/LC_MESSAGES/django.po
trans.pt = apps/converter/locale/pt/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.ru = apps/converter/locale/ru/LC_MESSAGES/django.po
trans.it = apps/converter/locale/it/LC_MESSAGES/django.po
[mayan-edms.apps-common] [mayan-edms.apps-common]
source_file = apps/common/locale/en/LC_MESSAGES/django.po 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.es = apps/common/locale/es/LC_MESSAGES/django.po
trans.pt = apps/common/locale/pt/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.ru = apps/common/locale/ru/LC_MESSAGES/django.po
trans.it = apps/common/locale/it/LC_MESSAGES/django.po
[mayan-edms.apps-permissions] [mayan-edms.apps-permissions]
source_file = apps/permissions/locale/en/LC_MESSAGES/django.po 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.es = apps/permissions/locale/es/LC_MESSAGES/django.po
trans.pt = apps/permissions/locale/pt/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.ru = apps/permissions/locale/ru/LC_MESSAGES/django.po
trans.it = apps/permissions/locale/it/LC_MESSAGES/django.po
[mayan-edms.apps-sources] [mayan-edms.apps-sources]
source_file = apps/sources/locale/en/LC_MESSAGES/django.po 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.es = apps/sources/locale/es/LC_MESSAGES/django.po
trans.pt = apps/sources/locale/pt/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.ru = apps/sources/locale/ru/LC_MESSAGES/django.po
trans.it = apps/sources/locale/it/LC_MESSAGES/django.po
[mayan-edms.apps-document_indexing] [mayan-edms.apps-document_indexing]
source_file = apps/document_indexing/locale/en/LC_MESSAGES/django.po 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.es = apps/document_indexing/locale/es/LC_MESSAGES/django.po
trans.pt = apps/document_indexing/locale/pt/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.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] [mayan-edms.apps-user_management]
source_file = apps/user_management/locale/en/LC_MESSAGES/django.po 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.es = apps/user_management/locale/es/LC_MESSAGES/django.po
trans.pt = apps/user_management/locale/pt/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.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] [mayan-edms.apps-main]
source_file = apps/main/locale/en/LC_MESSAGES/django.po 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.es = apps/main/locale/es/LC_MESSAGES/django.po
trans.pt = apps/main/locale/pt/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.ru = apps/main/locale/ru/LC_MESSAGES/django.po
trans.it = apps/main/locale/it/LC_MESSAGES/django.po
[mayan-edms.apps-ocr] [mayan-edms.apps-ocr]
source_file = apps/ocr/locale/en/LC_MESSAGES/django.po 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.es = apps/ocr/locale/es/LC_MESSAGES/django.po
trans.pt = apps/ocr/locale/pt/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.ru = apps/ocr/locale/ru/LC_MESSAGES/django.po
trans.it = apps/ocr/locale/it/LC_MESSAGES/django.po
[mayan-edms.apps-project_setup] [mayan-edms.apps-project_setup]
source_file = apps/project_setup/locale/en/LC_MESSAGES/django.po 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.es = apps/project_setup/locale/es/LC_MESSAGES/django.po
trans.pt = apps/project_setup/locale/pt/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.ru = apps/project_setup/locale/ru/LC_MESSAGES/django.po
trans.it = apps/project_setup/locale/it/LC_MESSAGES/django.po
[main] [main]
host = https://www.transifex.net host = https://www.transifex.net
@@ -70,6 +79,7 @@ source_lang = en
trans.es = apps/folders/locale/es/LC_MESSAGES/django.po trans.es = apps/folders/locale/es/LC_MESSAGES/django.po
trans.pt = apps/folders/locale/pt/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.ru = apps/folders/locale/ru/LC_MESSAGES/django.po
trans.it = apps/folders/locale/it/LC_MESSAGES/django.po
[mayan-edms.apps-history] [mayan-edms.apps-history]
source_file = apps/history/locale/en/LC_MESSAGES/django.po 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.es = apps/history/locale/es/LC_MESSAGES/django.po
trans.pt = apps/history/locale/pt/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.ru = apps/history/locale/ru/LC_MESSAGES/django.po
trans.it = apps/history/locale/it/LC_MESSAGES/django.po
[mayan-edms.apps-dynamic_search] [mayan-edms.apps-dynamic_search]
source_file = apps/dynamic_search/locale/en/LC_MESSAGES/django.po 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.es = apps/dynamic_search/locale/es/LC_MESSAGES/django.po
trans.pt = apps/dynamic_search/locale/pt/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.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] [mayan-edms.apps-smart_settings]
source_file = apps/smart_settings/locale/en/LC_MESSAGES/django.po 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.es = apps/smart_settings/locale/es/LC_MESSAGES/django.po
trans.pt = apps/smart_settings/locale/pt/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.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] [mayan-edms.apps-navigation]
source_file = apps/navigation/locale/en/LC_MESSAGES/django.po 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.es = apps/navigation/locale/es/LC_MESSAGES/django.po
trans.pt = apps/navigation/locale/pt/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.ru = apps/navigation/locale/ru/LC_MESSAGES/django.po
trans.it = apps/navigation/locale/it/LC_MESSAGES/django.po
[mayan-edms.apps-tags] [mayan-edms.apps-tags]
source_file = apps/tags/locale/en/LC_MESSAGES/django.po 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.es = apps/tags/locale/es/LC_MESSAGES/django.po
trans.pt = apps/tags/locale/pt/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.ru = apps/tags/locale/ru/LC_MESSAGES/django.po
trans.it = apps/tags/locale/it/LC_MESSAGES/django.po
[mayan-edms.apps-documents] [mayan-edms.apps-documents]
source_file = apps/documents/locale/en/LC_MESSAGES/django.po 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.es = apps/documents/locale/es/LC_MESSAGES/django.po
trans.pt = apps/documents/locale/pt/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.ru = apps/documents/locale/ru/LC_MESSAGES/django.po
trans.it = apps/documents/locale/it/LC_MESSAGES/django.po
[mayan-edms.apps-project_tools] [mayan-edms.apps-project_tools]
source_file = apps/project_tools/locale/en/LC_MESSAGES/django.po 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.es = apps/project_tools/locale/es/LC_MESSAGES/django.po
trans.pt = apps/project_tools/locale/pt/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.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] [mayan-edms.apps-linking]
source_file = apps/linking/locale/en/LC_MESSAGES/django.po 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.es = apps/linking/locale/es/LC_MESSAGES/django.po
trans.pt = apps/linking/locale/pt/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.ru = apps/linking/locale/ru/LC_MESSAGES/django.po
trans.it = apps/linking/locale/it/LC_MESSAGES/django.po
[mayan-edms.apps-document_comments] [mayan-edms.apps-document_comments]
source_file = apps/document_comments/locale/en/LC_MESSAGES/django.po 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.es = apps/document_comments/locale/es/LC_MESSAGES/django.po
trans.pt = apps/document_comments/locale/pt/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.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] [mayan-edms.apps-metadata]
source_file = apps/metadata/locale/en/LC_MESSAGES/django.po 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.es = apps/metadata/locale/es/LC_MESSAGES/django.po
trans.pt = apps/metadata/locale/pt/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.ru = apps/metadata/locale/ru/LC_MESSAGES/django.po
trans.it = apps/metadata/locale/it/LC_MESSAGES/django.po
[mayan-edms.apps-web_theme] [mayan-edms.apps-web_theme]
source_file = apps/web_theme/locale/en/LC_MESSAGES/django.po 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.es = apps/web_theme/locale/es/LC_MESSAGES/django.po
trans.pt = apps/web_theme/locale/pt/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.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] [mayan-edms.apps-django_gpg]
source_file = apps/django_gpg/locale/en/LC_MESSAGES/django.po 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.es = apps/django_gpg/locale/es/LC_MESSAGES/django.po
trans.pt = apps/django_gpg/locale/pt/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.ru = apps/django_gpg/locale/ru/LC_MESSAGES/django.po
trans.it = apps/django_gpg/locale/it/LC_MESSAGES/django.po

Binary file not shown.

View File

@@ -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:
# <pierpaolo.baldan@gmail.com>, 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 <pierpaolo.baldan@gmail.com>\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"

View File

@@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n" "Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n"
"POT-Creation-Date: 2011-11-22 11:26-0400\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 <roberto.rosario.gonzalez@gmail.com>\n" "Last-Translator: rosarior <roberto.rosario.gonzalez@gmail.com>\n"
"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/mayan-edms/team/es/)\n" "Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/mayan-edms/team/es/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -557,11 +557,11 @@ msgstr ""
#: literals.py:205 literals.py:206 #: literals.py:205 literals.py:206
msgid "Photo CD" msgid "Photo CD"
msgstr "" msgstr "Photo CD"
#: literals.py:207 #: literals.py:207
msgid "Page Control Language" msgid "Page Control Language"
msgstr "" msgstr "Page Control Language"
#: literals.py:208 literals.py:221 #: literals.py:208 literals.py:221
msgid "Apple Macintosh QuickDraw/PICT" msgid "Apple Macintosh QuickDraw/PICT"
@@ -577,11 +577,11 @@ msgstr ""
#: literals.py:211 #: literals.py:211
msgid "Portable Document Format" msgid "Portable Document Format"
msgstr "" msgstr "Formato portatil de documento"
#: literals.py:212 #: literals.py:212
msgid "Portable Document Archive Format" msgid "Portable Document Archive Format"
msgstr "" msgstr "Format portatil de archivo de documento"
#: literals.py:213 #: literals.py:213
msgid "Pentax Electronic File" msgid "Pentax Electronic File"

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -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_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_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_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 # Permission setup
set_namespace_title('django_gpg', _(u'Signatures')) set_namespace_title('django_gpg', _(u'Signatures'))
@@ -24,23 +26,39 @@ register_permission(PERMISSION_KEY_VIEW)
register_permission(PERMISSION_KEY_DELETE) register_permission(PERMISSION_KEY_DELETE)
register_permission(PERMISSION_KEYSERVER_QUERY) register_permission(PERMISSION_KEYSERVER_QUERY)
register_permission(PERMISSION_KEY_RECEIVE) 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
def doesnt_have_detached_signature(context):
return context['object'].has_detached_signature() == False
# Setup views # Setup views
private_keys = {'text': _(u'private keys'), 'view': 'key_private_list', 'args': 'object.pk', 'famfam': 'key', 'icon': 'key.png', 'permissions': [PERMISSION_KEY_VIEW]} 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]} 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_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_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]} 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 views
document_verify = {'text': _(u'signatures'), 'view': 'document_verify', 'args': 'object.pk', 'famfam': 'text_signature', 'permissions': [PERMISSION_DOCUMENT_VERIFY]} 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, [document_verify], menu_name='form_header')
register_links(['key_delete', 'key_private_list', 'key_public_list', 'key_query'], [private_keys, public_keys, key_query], menu_name='sidebar') 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_public_list', 'key_query'], [public_keys, key_query], menu_name='sidebar')
register_links(Key, [key_delete]) register_links(Key, [key_delete])
register_links(KeyServerKey, [key_receive]) register_links(KeyServerKey, [key_receive])
register_setup(private_keys) register_setup(key_setup)
register_setup(public_keys)

View File

@@ -2,6 +2,8 @@ import types
from StringIO import StringIO from StringIO import StringIO
from pickle import dumps from pickle import dumps
import logging import logging
import tempfile
import os
from django.core.files.base import File from django.core.files.base import File
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
@@ -164,7 +166,7 @@ class GPG(object):
self.gpg = gnupg.GPG(**kwargs) 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): if isinstance(file_input, types.StringTypes):
input_descriptor = open(file_input, 'rb') input_descriptor = open(file_input, 'rb')
elif isinstance(file_input, types.FileType) or isinstance(file_input, File): 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') raise ValueError('Invalid file_input argument type')
try: try:
verify = self.verify_file(input_descriptor) verify = self.verify_file(input_descriptor, detached_signature)
if verify.status == 'no public key': if verify.status == 'no public key':
# Try to fetch the public key from the keyservers # Try to fetch the public key from the keyservers
try: try:
self.receive_key(verify.key_id) self.receive_key(verify.key_id)
return self.verify_w_retry(file_input) return self.verify_w_retry(file_input, detached_signature)
except KeyFetchingError: except KeyFetchingError:
return verify return verify
else: else:
@@ -188,7 +190,7 @@ class GPG(object):
except IOError: except IOError:
return False return False
def verify_file(self, file_input): def verify_file(self, file_input, detached_signature=None):
""" """
Verify the signature of a file. Verify the signature of a file.
""" """
@@ -199,6 +201,16 @@ class GPG(object):
else: else:
raise ValueError('Invalid file_input argument type') raise ValueError('Invalid file_input argument type')
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) verify = self.gpg.verify_file(descriptor)
descriptor.close() descriptor.close()

View File

@@ -11,3 +11,9 @@ class KeySearchForm(forms.Form):
label=_(u'Term'), label=_(u'Term'),
help_text=_(u'Name, e-mail, key ID or key fingerprint to look for.') 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'),
)

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -29,7 +29,7 @@ msgstr ""
msgid "Delete keys" msgid "Delete keys"
msgstr "" msgstr ""
#: __init__.py:17 __init__.py:32 #: __init__.py:17
msgid "Query keyservers" msgid "Query keyservers"
msgstr "" msgstr ""
@@ -37,75 +37,99 @@ msgstr ""
msgid "Import key from keyservers" msgid "Import key from keyservers"
msgstr "" 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" msgid "Signatures"
msgstr "" msgstr ""
#: __init__.py:29 views.py:65 #: __init__.py:39 views.py:67
msgid "private keys" msgid "private keys"
msgstr "" msgstr ""
#: __init__.py:30 views.py:68 #: __init__.py:40 views.py:70
msgid "public keys" msgid "public keys"
msgstr "" msgstr ""
#: __init__.py:31 #: __init__.py:41
msgid "delete" msgid "delete"
msgstr "" msgstr ""
#: __init__.py:33 #: __init__.py:42
msgid "Import" msgid "query keyservers"
msgstr "" 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" msgid "signatures"
msgstr "" msgstr ""
#: api.py:20 #: api.py:22
msgid "Public" msgid "Public"
msgstr "" msgstr ""
#: api.py:21 #: api.py:23
msgid "Secret" msgid "Secret"
msgstr "" msgstr ""
#: api.py:29 api.py:34 #: api.py:31 api.py:36
msgid "RSA" msgid "RSA"
msgstr "" msgstr ""
#: api.py:30 #: api.py:32
msgid "DSA" msgid "DSA"
msgstr "" msgstr ""
#: api.py:35 #: api.py:37
msgid "Elgamal" msgid "Elgamal"
msgstr "" msgstr ""
#: api.py:49 #: api.py:51
msgid "Bad signature." msgid "Bad signature."
msgstr "" msgstr ""
#: api.py:53 #: api.py:55
msgid "Document not signed or invalid signature." msgid "Document not signed or invalid signature."
msgstr "" msgstr ""
#: api.py:57 #: api.py:59
msgid "Signature error." msgid "Signature error."
msgstr "" msgstr ""
#: api.py:61 #: api.py:63
msgid "Document is signed but no public key is available for verification." msgid "Document is signed but no public key is available for verification."
msgstr "" msgstr ""
#: api.py:65 #: api.py:67
msgid "Document is signed, and signature is good." msgid "Document is signed, and signature is good."
msgstr "" msgstr ""
#: api.py:69 #: api.py:71
msgid "Document is signed with a valid signature." msgid "Document is signed with a valid signature."
msgstr "" msgstr ""
#: api.py:142 #: api.py:144
msgid "unknown" msgid "unknown"
msgstr "" msgstr ""
@@ -117,43 +141,47 @@ msgstr ""
msgid "Name, e-mail, key ID or key fingerprint to look for." msgid "Name, e-mail, key ID or key fingerprint to look for."
msgstr "" msgstr ""
#: views.py:43 #: forms.py:18
msgid "Signature file"
msgstr ""
#: views.py:45
#, python-format #, python-format
msgid "Key: %s, imported successfully." msgid "Key: %s, imported successfully."
msgstr "" msgstr ""
#: views.py:46 #: views.py:48
#, python-format #, python-format
msgid "Unable to import key id: %s" msgid "Unable to import key id: %s"
msgstr "" msgstr ""
#: views.py:50 #: views.py:52
msgid "Import key" msgid "Import key"
msgstr "" msgstr ""
#: views.py:51 #: views.py:53
#, python-format #, python-format
msgid "Are you sure you wish to import key id: %s?" msgid "Are you sure you wish to import key id: %s?"
msgstr "" msgstr ""
#: views.py:76 #: views.py:78
msgid "Key ID" msgid "Key ID"
msgstr "" msgstr ""
#: views.py:80 #: views.py:82
msgid "Owner" msgid "Owner"
msgstr "" msgstr ""
#: views.py:100 #: views.py:102
#, python-format #, python-format
msgid "Key: %s, deleted successfully." msgid "Key: %s, deleted successfully."
msgstr "" msgstr ""
#: views.py:107 #: views.py:109
msgid "Delete key" msgid "Delete key"
msgstr "" msgstr ""
#: views.py:109 #: views.py:111
#, python-format #, python-format
msgid "" msgid ""
"Are you sure you wish to delete key: %s? If you try to delete a public key " "Are you sure you wish to delete key: %s? If you try to delete a public key "
@@ -161,47 +189,47 @@ msgid ""
"well." "well."
msgstr "" msgstr ""
#: views.py:127 #: views.py:129
msgid "Query key server" msgid "Query key server"
msgstr "" msgstr ""
#: views.py:140 #: views.py:142
msgid "results" msgid "results"
msgstr "" msgstr ""
#: views.py:145 #: views.py:147
msgid "ID" msgid "ID"
msgstr "" msgstr ""
#: views.py:149 #: views.py:151
msgid "type" msgid "type"
msgstr "" msgstr ""
#: views.py:153 #: views.py:155
msgid "creation date" msgid "creation date"
msgstr "" msgstr ""
#: views.py:157 #: views.py:159
msgid "disabled" msgid "disabled"
msgstr "" msgstr ""
#: views.py:161 #: views.py:163
msgid "expiration date" msgid "expiration date"
msgstr "" msgstr ""
#: views.py:165 #: views.py:167
msgid "expired" msgid "expired"
msgstr "" msgstr ""
#: views.py:169 #: views.py:171
msgid "length" msgid "length"
msgstr "" msgstr ""
#: views.py:173 #: views.py:175
msgid "revoked" msgid "revoked"
msgstr "" msgstr ""
#: views.py:178 #: views.py:180
msgid "Identifies" msgid "Identifies"
msgstr "" msgstr ""
@@ -248,6 +276,15 @@ msgstr ""
msgid "signature properties for: %s" msgid "signature properties for: %s"
msgstr "" 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 #: conf/settings.py:13
msgid "List of keyservers to be queried for unknown keys." msgid "List of keyservers to be queried for unknown keys."
msgstr "" msgstr ""

View File

@@ -8,8 +8,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n" "Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n"
"POT-Creation-Date: 2011-12-05 13:40-0400\n" "POT-Creation-Date: 2011-12-06 02:06-0400\n"
"PO-Revision-Date: 2011-12-05 17:52+0000\n" "PO-Revision-Date: 2011-12-06 06:14+0000\n"
"Last-Translator: rosarior <roberto.rosario.gonzalez@gmail.com>\n" "Last-Translator: rosarior <roberto.rosario.gonzalez@gmail.com>\n"
"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/mayan-edms/team/es/)\n" "Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/mayan-edms/team/es/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -30,7 +30,7 @@ msgstr "Ver llaves"
msgid "Delete keys" msgid "Delete keys"
msgstr "Borrar llaves" msgstr "Borrar llaves"
#: __init__.py:17 __init__.py:32 #: __init__.py:17
msgid "Query keyservers" msgid "Query keyservers"
msgstr "Hacer búsquedas en servidores de llaves" 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" msgid "Import key from keyservers"
msgstr "Importar llaves de los servidores de llaves" 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" msgid "Signatures"
msgstr "Firmas" msgstr "Firmas"
#: __init__.py:29 views.py:65 #: __init__.py:39 views.py:67
msgid "private keys" msgid "private keys"
msgstr "llaves privadas" msgstr "llaves privadas"
#: __init__.py:30 views.py:68 #: __init__.py:40 views.py:70
msgid "public keys" msgid "public keys"
msgstr "llaves públicas" msgstr "llaves públicas"
#: __init__.py:31 #: __init__.py:41
msgid "delete" msgid "delete"
msgstr "borrar" msgstr "borrar"
#: __init__.py:33 #: __init__.py:42
msgid "Import" msgid "query keyservers"
msgstr "Importar" 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" msgid "signatures"
msgstr "firmas" msgstr "firmas"
#: api.py:20 #: api.py:22
msgid "Public" msgid "Public"
msgstr "" msgstr "Pública"
#: api.py:21 #: api.py:23
msgid "Secret" msgid "Secret"
msgstr "" msgstr "Secreta"
#: api.py:29 api.py:34 #: api.py:31 api.py:36
msgid "RSA" msgid "RSA"
msgstr "RSA" msgstr "RSA"
#: api.py:30 #: api.py:32
msgid "DSA" msgid "DSA"
msgstr "DSA" msgstr "DSA"
#: api.py:35 #: api.py:37
msgid "Elgamal" msgid "Elgamal"
msgstr "" msgstr "Elgamal"
#: api.py:49 #: api.py:51
msgid "Bad signature." msgid "Bad signature."
msgstr "" msgstr "Firma invalida."
#: api.py:53 #: api.py:55
msgid "Document not signed or invalid signature." msgid "Document not signed or invalid signature."
msgstr "" msgstr "Documento no firmado o firma invalida."
#: api.py:57 #: api.py:59
msgid "Signature error." 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." msgid "Document is signed but no public key is available for verification."
msgstr "" 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." 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." 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" msgid "unknown"
msgstr "" msgstr "desconocida"
#: forms.py:11 #: forms.py:11
msgid "Term" msgid "Term"
@@ -117,140 +143,160 @@ msgstr "Término"
#: forms.py:12 #: forms.py:12
msgid "Name, e-mail, key ID or key fingerprint to look for." msgid "Name, e-mail, key ID or key fingerprint to look for."
msgstr "" 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 #, python-format
msgid "Key: %s, imported successfully." msgid "Key: %s, imported successfully."
msgstr "" msgstr "Llave: %s, importada exitosamente."
#: views.py:46 #: views.py:48
#, python-format #, python-format
msgid "Unable to import key id: %s" 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" msgid "Import key"
msgstr "" msgstr "Importar llave"
#: views.py:51 #: views.py:53
#, python-format #, python-format
msgid "Are you sure you wish to import key id: %s?" msgid "Are you sure you wish to import key id: %s?"
msgstr "¿Esta seguro que desea importar la llave: %s?" msgstr "¿Esta seguro que desea importar la llave: %s?"
#: views.py:76 #: views.py:78
msgid "Key ID" msgid "Key ID"
msgstr "" msgstr "Identificador de llave"
#: views.py:80 #: views.py:82
msgid "Owner" msgid "Owner"
msgstr "Dueño" msgstr "Dueño"
#: views.py:100 #: views.py:102
#, python-format #, python-format
msgid "Key: %s, deleted successfully." msgid "Key: %s, deleted successfully."
msgstr "Llave: %s, borrada exitosamente." msgstr "Llave: %s, borrada exitosamente."
#: views.py:107 #: views.py:109
msgid "Delete key" msgid "Delete key"
msgstr "Borrar llave" msgstr "Borrar llave"
#: views.py:109 #: views.py:111
#, python-format #, python-format
msgid "" msgid ""
"Are you sure you wish to delete key: %s? If you try to delete a public key " "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 " "that is part of a public/private pair the private key will be deleted as "
"well." "well."
msgstr "" 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" msgid "Query key server"
msgstr "" msgstr "Consultar servidor de llaves"
#: views.py:140 #: views.py:142
msgid "results" msgid "results"
msgstr "resultados" msgstr "resultados"
#: views.py:145 #: views.py:147
msgid "ID" msgid "ID"
msgstr "" msgstr "ID"
#: views.py:149 #: views.py:151
msgid "type" msgid "type"
msgstr "tipo" msgstr "tipo"
#: views.py:153 #: views.py:155
msgid "creation date" msgid "creation date"
msgstr "fecha de creación" msgstr "fecha de creación"
#: views.py:157 #: views.py:159
msgid "disabled" msgid "disabled"
msgstr "" msgstr "desactivada"
#: views.py:161 #: views.py:163
msgid "expiration date" msgid "expiration date"
msgstr "" msgstr "fecha de expiración"
#: views.py:165 #: views.py:167
msgid "expired" msgid "expired"
msgstr "" msgstr "expirada"
#: views.py:169 #: views.py:171
msgid "length" msgid "length"
msgstr "" msgstr "tamaño"
#: views.py:173 #: views.py:175
msgid "revoked" msgid "revoked"
msgstr "" msgstr "revocada"
#: views.py:178 #: views.py:180
msgid "Identifies" msgid "Identifies"
msgstr "" msgstr "Identidades"
#: views.py:205 #: views.py:205
#, python-format #, python-format
msgid "Signature status: %(widget)s %(text)s" msgid "Signature status: %(widget)s %(text)s"
msgstr "" msgstr "Estado de la firma: %(widget)s %(text)s"
#: views.py:212 #: views.py:212
msgid "embedded" msgid "embedded"
msgstr "" msgstr "integrada"
#: views.py:214 #: views.py:214
msgid "detached" msgid "detached"
msgstr "" msgstr "a parte"
#: views.py:219 #: views.py:219
#, python-format #, python-format
msgid "Signature ID: %s" msgid "Signature ID: %s"
msgstr "" msgstr "ID de la firma: %s"
#: views.py:220 #: views.py:220
#, python-format #, python-format
msgid "Signature type: %s" msgid "Signature type: %s"
msgstr "" msgstr "Tipo de firma: %s"
#: views.py:221 #: views.py:221
#, python-format #, python-format
msgid "Key ID: %s" msgid "Key ID: %s"
msgstr "" msgstr "ID de la llave: %s"
#: views.py:222 #: views.py:222
#, python-format #, python-format
msgid "Timestamp: %s" msgid "Timestamp: %s"
msgstr "" msgstr "Fecha y hora: %s"
#: views.py:223 #: views.py:223
#, python-format #, python-format
msgid "Signee: %s" msgid "Signee: %s"
msgstr "" msgstr "Firmantes: %s"
#: views.py:228 #: views.py:228
#, python-format #, python-format
msgid "signature properties for: %s" 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 #: conf/settings.py:13
msgid "List of keyservers to be queried for unknown keys." msgid "List of keyservers to be queried for unknown keys."
msgstr "" msgstr ""
"Lista de servidores de llaves a ser utilizados para buscar llaves "
"desconocidas."

Binary file not shown.

View File

@@ -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 <roberto.rosario.gonzalez@gmail.com>\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 ""

View File

@@ -6,15 +6,16 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\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: 2011-12-05 17:43+0000\n" "PO-Revision-Date: 2011-12-05 17:43+0000\n"
"Last-Translator: rosarior <roberto.rosario.gonzalez@gmail.com>\n" "Last-Translator: rosarior <roberto.rosario.gonzalez@gmail.com>\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" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: pt\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: __init__.py:14 #: __init__.py:14
@@ -29,7 +30,7 @@ msgstr ""
msgid "Delete keys" msgid "Delete keys"
msgstr "" msgstr ""
#: __init__.py:17 __init__.py:32 #: __init__.py:17
msgid "Query keyservers" msgid "Query keyservers"
msgstr "" msgstr ""
@@ -37,75 +38,99 @@ msgstr ""
msgid "Import key from keyservers" msgid "Import key from keyservers"
msgstr "" 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" msgid "Signatures"
msgstr "" msgstr ""
#: __init__.py:29 views.py:65 #: __init__.py:39 views.py:67
msgid "private keys" msgid "private keys"
msgstr "" msgstr ""
#: __init__.py:30 views.py:68 #: __init__.py:40 views.py:70
msgid "public keys" msgid "public keys"
msgstr "" msgstr ""
#: __init__.py:31 #: __init__.py:41
msgid "delete" msgid "delete"
msgstr "" msgstr ""
#: __init__.py:33 #: __init__.py:42
msgid "Import" msgid "query keyservers"
msgstr "" 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" msgid "signatures"
msgstr "" msgstr ""
#: api.py:20 #: api.py:22
msgid "Public" msgid "Public"
msgstr "" msgstr ""
#: api.py:21 #: api.py:23
msgid "Secret" msgid "Secret"
msgstr "" msgstr ""
#: api.py:29 api.py:34 #: api.py:31 api.py:36
msgid "RSA" msgid "RSA"
msgstr "" msgstr ""
#: api.py:30 #: api.py:32
msgid "DSA" msgid "DSA"
msgstr "" msgstr ""
#: api.py:35 #: api.py:37
msgid "Elgamal" msgid "Elgamal"
msgstr "" msgstr ""
#: api.py:49 #: api.py:51
msgid "Bad signature." msgid "Bad signature."
msgstr "" msgstr ""
#: api.py:53 #: api.py:55
msgid "Document not signed or invalid signature." msgid "Document not signed or invalid signature."
msgstr "" msgstr ""
#: api.py:57 #: api.py:59
msgid "Signature error." msgid "Signature error."
msgstr "" msgstr ""
#: api.py:61 #: api.py:63
msgid "Document is signed but no public key is available for verification." msgid "Document is signed but no public key is available for verification."
msgstr "" msgstr ""
#: api.py:65 #: api.py:67
msgid "Document is signed, and signature is good." msgid "Document is signed, and signature is good."
msgstr "" msgstr ""
#: api.py:69 #: api.py:71
msgid "Document is signed with a valid signature." msgid "Document is signed with a valid signature."
msgstr "" msgstr ""
#: api.py:142 #: api.py:144
msgid "unknown" msgid "unknown"
msgstr "" msgstr ""
@@ -117,43 +142,47 @@ msgstr ""
msgid "Name, e-mail, key ID or key fingerprint to look for." msgid "Name, e-mail, key ID or key fingerprint to look for."
msgstr "" msgstr ""
#: views.py:43 #: forms.py:18
msgid "Signature file"
msgstr ""
#: views.py:45
#, python-format #, python-format
msgid "Key: %s, imported successfully." msgid "Key: %s, imported successfully."
msgstr "" msgstr ""
#: views.py:46 #: views.py:48
#, python-format #, python-format
msgid "Unable to import key id: %s" msgid "Unable to import key id: %s"
msgstr "" msgstr ""
#: views.py:50 #: views.py:52
msgid "Import key" msgid "Import key"
msgstr "" msgstr ""
#: views.py:51 #: views.py:53
#, python-format #, python-format
msgid "Are you sure you wish to import key id: %s?" msgid "Are you sure you wish to import key id: %s?"
msgstr "" msgstr ""
#: views.py:76 #: views.py:78
msgid "Key ID" msgid "Key ID"
msgstr "" msgstr ""
#: views.py:80 #: views.py:82
msgid "Owner" msgid "Owner"
msgstr "" msgstr ""
#: views.py:100 #: views.py:102
#, python-format #, python-format
msgid "Key: %s, deleted successfully." msgid "Key: %s, deleted successfully."
msgstr "" msgstr ""
#: views.py:107 #: views.py:109
msgid "Delete key" msgid "Delete key"
msgstr "" msgstr ""
#: views.py:109 #: views.py:111
#, python-format #, python-format
msgid "" msgid ""
"Are you sure you wish to delete key: %s? If you try to delete a public key " "Are you sure you wish to delete key: %s? If you try to delete a public key "
@@ -161,47 +190,47 @@ msgid ""
"well." "well."
msgstr "" msgstr ""
#: views.py:127 #: views.py:129
msgid "Query key server" msgid "Query key server"
msgstr "" msgstr ""
#: views.py:140 #: views.py:142
msgid "results" msgid "results"
msgstr "" msgstr ""
#: views.py:145 #: views.py:147
msgid "ID" msgid "ID"
msgstr "" msgstr ""
#: views.py:149 #: views.py:151
msgid "type" msgid "type"
msgstr "" msgstr ""
#: views.py:153 #: views.py:155
msgid "creation date" msgid "creation date"
msgstr "" msgstr ""
#: views.py:157 #: views.py:159
msgid "disabled" msgid "disabled"
msgstr "" msgstr ""
#: views.py:161 #: views.py:163
msgid "expiration date" msgid "expiration date"
msgstr "" msgstr ""
#: views.py:165 #: views.py:167
msgid "expired" msgid "expired"
msgstr "" msgstr ""
#: views.py:169 #: views.py:171
msgid "length" msgid "length"
msgstr "" msgstr ""
#: views.py:173 #: views.py:175
msgid "revoked" msgid "revoked"
msgstr "" msgstr ""
#: views.py:178 #: views.py:180
msgid "Identifies" msgid "Identifies"
msgstr "" msgstr ""
@@ -248,8 +277,15 @@ msgstr ""
msgid "signature properties for: %s" msgid "signature properties for: %s"
msgstr "" 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 #: conf/settings.py:13
msgid "List of keyservers to be queried for unknown keys." msgid "List of keyservers to be queried for unknown keys."
msgstr "" msgstr ""

View File

@@ -6,16 +6,18 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\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: 2011-12-05 17:43+0000\n" "PO-Revision-Date: 2011-12-05 17:43+0000\n"
"Last-Translator: rosarior <roberto.rosario.gonzalez@gmail.com>\n" "Last-Translator: rosarior <roberto.rosario.gonzalez@gmail.com>\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" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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"
"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" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
#: __init__.py:14 #: __init__.py:14
msgid "Verify document signatures" msgid "Verify document signatures"
@@ -29,7 +31,7 @@ msgstr ""
msgid "Delete keys" msgid "Delete keys"
msgstr "" msgstr ""
#: __init__.py:17 __init__.py:32 #: __init__.py:17
msgid "Query keyservers" msgid "Query keyservers"
msgstr "" msgstr ""
@@ -37,75 +39,99 @@ msgstr ""
msgid "Import key from keyservers" msgid "Import key from keyservers"
msgstr "" 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" msgid "Signatures"
msgstr "" msgstr ""
#: __init__.py:29 views.py:65 #: __init__.py:39 views.py:67
msgid "private keys" msgid "private keys"
msgstr "" msgstr ""
#: __init__.py:30 views.py:68 #: __init__.py:40 views.py:70
msgid "public keys" msgid "public keys"
msgstr "" msgstr ""
#: __init__.py:31 #: __init__.py:41
msgid "delete" msgid "delete"
msgstr "" msgstr ""
#: __init__.py:33 #: __init__.py:42
msgid "Import" msgid "query keyservers"
msgstr "" 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" msgid "signatures"
msgstr "" msgstr ""
#: api.py:20 #: api.py:22
msgid "Public" msgid "Public"
msgstr "" msgstr ""
#: api.py:21 #: api.py:23
msgid "Secret" msgid "Secret"
msgstr "" msgstr ""
#: api.py:29 api.py:34 #: api.py:31 api.py:36
msgid "RSA" msgid "RSA"
msgstr "" msgstr ""
#: api.py:30 #: api.py:32
msgid "DSA" msgid "DSA"
msgstr "" msgstr ""
#: api.py:35 #: api.py:37
msgid "Elgamal" msgid "Elgamal"
msgstr "" msgstr ""
#: api.py:49 #: api.py:51
msgid "Bad signature." msgid "Bad signature."
msgstr "" msgstr ""
#: api.py:53 #: api.py:55
msgid "Document not signed or invalid signature." msgid "Document not signed or invalid signature."
msgstr "" msgstr ""
#: api.py:57 #: api.py:59
msgid "Signature error." msgid "Signature error."
msgstr "" msgstr ""
#: api.py:61 #: api.py:63
msgid "Document is signed but no public key is available for verification." msgid "Document is signed but no public key is available for verification."
msgstr "" msgstr ""
#: api.py:65 #: api.py:67
msgid "Document is signed, and signature is good." msgid "Document is signed, and signature is good."
msgstr "" msgstr ""
#: api.py:69 #: api.py:71
msgid "Document is signed with a valid signature." msgid "Document is signed with a valid signature."
msgstr "" msgstr ""
#: api.py:142 #: api.py:144
msgid "unknown" msgid "unknown"
msgstr "" msgstr ""
@@ -117,43 +143,47 @@ msgstr ""
msgid "Name, e-mail, key ID or key fingerprint to look for." msgid "Name, e-mail, key ID or key fingerprint to look for."
msgstr "" msgstr ""
#: views.py:43 #: forms.py:18
msgid "Signature file"
msgstr ""
#: views.py:45
#, python-format #, python-format
msgid "Key: %s, imported successfully." msgid "Key: %s, imported successfully."
msgstr "" msgstr ""
#: views.py:46 #: views.py:48
#, python-format #, python-format
msgid "Unable to import key id: %s" msgid "Unable to import key id: %s"
msgstr "" msgstr ""
#: views.py:50 #: views.py:52
msgid "Import key" msgid "Import key"
msgstr "" msgstr ""
#: views.py:51 #: views.py:53
#, python-format #, python-format
msgid "Are you sure you wish to import key id: %s?" msgid "Are you sure you wish to import key id: %s?"
msgstr "" msgstr ""
#: views.py:76 #: views.py:78
msgid "Key ID" msgid "Key ID"
msgstr "" msgstr ""
#: views.py:80 #: views.py:82
msgid "Owner" msgid "Owner"
msgstr "" msgstr ""
#: views.py:100 #: views.py:102
#, python-format #, python-format
msgid "Key: %s, deleted successfully." msgid "Key: %s, deleted successfully."
msgstr "" msgstr ""
#: views.py:107 #: views.py:109
msgid "Delete key" msgid "Delete key"
msgstr "" msgstr ""
#: views.py:109 #: views.py:111
#, python-format #, python-format
msgid "" msgid ""
"Are you sure you wish to delete key: %s? If you try to delete a public key " "Are you sure you wish to delete key: %s? If you try to delete a public key "
@@ -161,47 +191,47 @@ msgid ""
"well." "well."
msgstr "" msgstr ""
#: views.py:127 #: views.py:129
msgid "Query key server" msgid "Query key server"
msgstr "" msgstr ""
#: views.py:140 #: views.py:142
msgid "results" msgid "results"
msgstr "" msgstr ""
#: views.py:145 #: views.py:147
msgid "ID" msgid "ID"
msgstr "" msgstr ""
#: views.py:149 #: views.py:151
msgid "type" msgid "type"
msgstr "" msgstr ""
#: views.py:153 #: views.py:155
msgid "creation date" msgid "creation date"
msgstr "" msgstr ""
#: views.py:157 #: views.py:159
msgid "disabled" msgid "disabled"
msgstr "" msgstr ""
#: views.py:161 #: views.py:163
msgid "expiration date" msgid "expiration date"
msgstr "" msgstr ""
#: views.py:165 #: views.py:167
msgid "expired" msgid "expired"
msgstr "" msgstr ""
#: views.py:169 #: views.py:171
msgid "length" msgid "length"
msgstr "" msgstr ""
#: views.py:173 #: views.py:175
msgid "revoked" msgid "revoked"
msgstr "" msgstr ""
#: views.py:178 #: views.py:180
msgid "Identifies" msgid "Identifies"
msgstr "" msgstr ""
@@ -248,8 +278,15 @@ msgstr ""
msgid "signature properties for: %s" msgid "signature properties for: %s"
msgstr "" 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 #: conf/settings.py:13
msgid "List of keyservers to be queried for unknown keys." msgid "List of keyservers to be queried for unknown keys."
msgstr "" msgstr ""

View File

@@ -5,7 +5,8 @@ urlpatterns = patterns('django_gpg.views',
url(r'^list/private/$', 'key_list', {'secret': True}, 'key_private_list'), url(r'^list/private/$', 'key_list', {'secret': True}, 'key_private_list'),
url(r'^list/public/$', 'key_list', {'secret': False}, 'key_public_list'), url(r'^list/public/$', 'key_list', {'secret': False}, 'key_public_list'),
url(r'^verify/(?P<document_pk>\d+)/$', 'document_verify', (), 'document_verify'), url(r'^verify/(?P<document_pk>\d+)/$', 'document_verify', (), 'document_verify'),
url(r'^upload/signature/(?P<document_pk>\d+)/$', 'document_signature_upload', (), 'document_signature_upload'),
url(r'^download/signature/(?P<document_pk>\d+)/$', 'document_signature_download', (), 'document_signature_download'),
url(r'^query/$', 'key_query', (), 'key_query'), url(r'^query/$', 'key_query', (), 'key_query'),
url(r'^receive/(?P<key_id>.+)/$', 'key_receive', (), 'key_receive'), url(r'^receive/(?P<key_id>.+)/$', 'key_receive', (), 'key_receive'),
) )

View File

@@ -15,14 +15,17 @@ from documents.models import Document, RecentDocument
from permissions.api import check_permissions from permissions.api import check_permissions
from common.utils import pretty_size, parse_range, urlquote, \ from common.utils import pretty_size, parse_range, urlquote, \
return_diff, encapsulate return_diff, encapsulate
from filetransfers.api import serve_file
from django_gpg.api import Key, SIGNATURE_STATES from django_gpg.api import Key, SIGNATURE_STATES
from django_gpg.runtime import gpg 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, from django_gpg import (PERMISSION_DOCUMENT_VERIFY, PERMISSION_KEY_VIEW,
PERMISSION_KEY_DELETE, PERMISSION_KEYSERVER_QUERY, PERMISSION_KEY_DELETE, PERMISSION_KEYSERVER_QUERY,
PERMISSION_KEY_RECEIVE) PERMISSION_KEY_RECEIVE, PERMISSION_SIGNATURE_UPLOAD,
from django_gpg.forms import KeySearchForm PERMISSION_SIGNATURE_DOWNLOAD)
from django_gpg.forms import KeySearchForm, DetachedSignatureForm
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -42,7 +45,7 @@ def key_receive(request, key_id):
key = gpg.import_key(keys_dict[key_id].key) key = gpg.import_key(keys_dict[key_id].key)
messages.success(request, _(u'Key: %s, imported successfully.') % key) messages.success(request, _(u'Key: %s, imported successfully.') % key)
return HttpResponseRedirect(next) return HttpResponseRedirect(next)
except (KeyFetchingError, KeyError, TypeError): except (KeyImportError, KeyError, TypeError):
messages.error(request, _(u'Unable to import key id: %s') % key_id) messages.error(request, _(u'Unable to import key id: %s') % key_id)
return HttpResponseRedirect(previous) return HttpResponseRedirect(previous)
@@ -193,10 +196,8 @@ def document_verify(request, document_pk):
document = get_object_or_404(Document, pk=document_pk) document = get_object_or_404(Document, pk=document_pk)
RecentDocument.objects.add_document_for_user(request.user, document) RecentDocument.objects.add_document_for_user(request.user, document)
try:
signature = gpg.verify_w_retry(document.open(raw=True)) signature = document.verify_signature()
except GPGVerificationError:
signature = None
signature_state = SIGNATURE_STATES.get(getattr(signature, 'status', None)) signature_state = SIGNATURE_STATES.get(getattr(signature, 'status', None))
@@ -230,3 +231,56 @@ def document_verify(request, document_pk):
'document': document, 'document': document,
'paragraphs': paragraphs, 'paragraphs': paragraphs,
}, context_instance=RequestContext(request)) }, 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'])

Binary file not shown.

View File

@@ -0,0 +1,102 @@
# 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:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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 ""

Binary file not shown.

View File

@@ -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 <EMAIL@ADDRESS>\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 ""

View File

@@ -235,6 +235,7 @@ class DocumentForm_edit(DocumentForm):
self.fields.pop('release_level') self.fields.pop('release_level')
self.fields.pop('version_update') self.fields.pop('version_update')
self.fields.pop('comment') self.fields.pop('comment')
self.fields.pop('use_file_name')
class DocumentPropertiesForm(DetailForm): class DocumentPropertiesForm(DetailForm):

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -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']

View File

@@ -3,10 +3,14 @@ import tempfile
import hashlib import hashlib
from ast import literal_eval from ast import literal_eval
import base64 import base64
from StringIO import StringIO
import datetime import datetime
import logging import logging
try:
from cStringIO import StringIO
except ImportError:
from StringIO import StringIO
from django.db import models from django.db import models
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.utils.translation import ugettext from django.utils.translation import ugettext
@@ -172,12 +176,10 @@ class Document(models.Model):
def add_as_recent_document_for_user(self, user): def add_as_recent_document_for_user(self, user):
RecentDocument.objects.add_document_for_user(user, self) RecentDocument.objects.add_document_for_user(user, self)
# TODO: investigate if Document's save method calls all of it def delete(self, *args, **kwargs):
# DocumentVersion's delete methods for version in self.versions.all():
#def delete(self, *args, **kwargs): version.delete()
# super(Document, self).delete(*args, **kwargs) return super(Document, self).delete(*args, **kwargs)
# for version in self.documentversion_set.all():
# version.file.storage.delete(version.file.path)
@property @property
def size(self): def size(self):
@@ -287,6 +289,18 @@ class Document(models.Model):
filename = property(_get_filename, _set_filename) 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): class DocumentVersion(models.Model):
''' '''
@@ -316,6 +330,7 @@ class DocumentVersion(models.Model):
filename = models.CharField(max_length=255, default=u'', editable=False, db_index=True) 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) 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_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: class Meta:
unique_together = ('document', 'major', 'minor', 'micro', 'release_level', 'serial') unique_together = ('document', 'major', 'minor', 'micro', 'release_level', 'serial')
@@ -455,7 +470,7 @@ class DocumentVersion(models.Model):
def update_signed_state(self, save=True): def update_signed_state(self, save=True):
if self.exists(): if self.exists():
try: 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? # TODO: give use choice for auto public key fetch?
# OR maybe new config option # OR maybe new config option
except GPGVerificationError: except GPGVerificationError:
@@ -480,8 +495,8 @@ class DocumentVersion(models.Model):
self.save() self.save()
def delete(self, *args, **kwargs): def delete(self, *args, **kwargs):
super(DocumentVersion, self).delete(*args, **kwargs) self.file.storage.delete(self.file.path)
return self.file.storage.delete(self.file.path) return super(DocumentVersion, self).delete(*args, **kwargs)
def exists(self): def exists(self):
''' '''
@@ -531,6 +546,34 @@ class DocumentVersion(models.Model):
else: else:
return None 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): class DocumentTypeFilename(models.Model):
''' '''

View File

@@ -3,7 +3,7 @@ from django.utils.translation import ugettext_lazy as _
from common.utils import pretty_size, pretty_size_10 from common.utils import pretty_size, pretty_size_10
from documents.conf.settings import STORAGE_BACKEND 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 from django.db.models import Avg, Count, Min, Max
@@ -54,9 +54,9 @@ def get_statistics():
paragraphs.extend( paragraphs.extend(
[ [
_(u'Document pages in database: %d') % DocumentPage.objects.only('pk',).count(), _(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'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') % Document.objects.annotate(page_count=Count('documentpage')).aggregate(Max('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') % Document.objects.annotate(page_count=Count('documentpage')).aggregate(Avg('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"))] #[(day_count['date_added'].strftime('%Y-%m-%d'), day_count['id__count']) for day_count in Document.objects.values('date_added').annotate(Count("id"))]

View File

@@ -198,7 +198,7 @@ def document_delete(request, document_id=None, document_id_list=None):
document.delete() document.delete()
#create_history(HISTORY_DOCUMENT_DELETED, data={'user': request.user, 'document': document}) #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: except Exception, e:
messages.error(request, _(u'Document: %(document)s delete error: %(error)s') % { messages.error(request, _(u'Document: %(document)s delete error: %(error)s') % {
'document': document, 'error': e 'document': document, 'error': e

Binary file not shown.

View File

@@ -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 <EMAIL@ADDRESS>\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 ""

Binary file not shown.

View File

@@ -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 <EMAIL@ADDRESS>\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 ""

Binary file not shown.

View File

@@ -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 <EMAIL@ADDRESS>\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 ""

Binary file not shown.

View File

@@ -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 <EMAIL@ADDRESS>\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.<attribute>` and `metadata.<metadata_type_name>`."
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 ""

View File

@@ -18,10 +18,10 @@ __status__ = 'Production'
__version_info__ = { __version_info__ = {
'major': 0, 'major': 0,
'minor': 10, 'minor': 11,
'micro': 0, 'micro': 1,
'releaselevel': 'hotfix', 'releaselevel': 'final',
'serial': 2 'serial': 0
} }
def is_superuser(context): def is_superuser(context):

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,31 +17,31 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: __init__.py:15 #: __init__.py:31
msgid "maintenance" msgid "maintenance"
msgstr "" msgstr ""
#: __init__.py:16 #: __init__.py:32
msgid "statistics" msgid "statistics"
msgstr "" msgstr ""
#: __init__.py:17 #: __init__.py:33
msgid "diagnostics" msgid "diagnostics"
msgstr "" msgstr ""
#: __init__.py:18 #: __init__.py:34
msgid "sentry" msgid "sentry"
msgstr "" msgstr ""
#: __init__.py:19 #: __init__.py:35
msgid "admin site" msgid "admin site"
msgstr "" msgstr ""
#: __init__.py:30 #: __init__.py:38
msgid "home" msgid "home"
msgstr "" msgstr ""
#: __init__.py:32 #: __init__.py:40
msgid "search" msgid "search"
msgstr "" msgstr ""
@@ -130,6 +130,10 @@ msgstr ""
msgid "Other available actions" msgid "Other available actions"
msgstr "" msgstr ""
#: templates/home.html:8
msgid "Django based open source document management system"
msgstr ""
#: templates/project_description.html:6 #: templates/project_description.html:6
msgid "" msgid ""
"Open source, Django based electronic document manager with custom metadata, " "Open source, Django based electronic document manager with custom metadata, "

View File

@@ -8,42 +8,42 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \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: 2011-11-04 00:56+0000\n" "PO-Revision-Date: 2011-12-06 03:27\n"
"Last-Translator: rosarior <roberto.rosario.gonzalez@gmail.com>\n" "Last-Translator: Administrador <admin@admin.com>\n"
"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/" "Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/mayan-edms/team/es/)\n"
"mayan-edms/team/es/)\n"
"Language: es\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\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" msgid "maintenance"
msgstr "mantenimiento" msgstr "mantenimiento"
#: __init__.py:16 #: __init__.py:32
msgid "statistics" msgid "statistics"
msgstr "estadísticas" msgstr "estadísticas"
#: __init__.py:17 #: __init__.py:33
msgid "diagnostics" msgid "diagnostics"
msgstr "diagnósticos" msgstr "diagnósticos"
#: __init__.py:18 #: __init__.py:34
msgid "sentry" msgid "sentry"
msgstr "sentry" msgstr "sentry"
#: __init__.py:19 #: __init__.py:35
msgid "admin site" msgid "admin site"
msgstr "sitio administrativo" msgstr "sitio administrativo"
#: __init__.py:30 #: __init__.py:38
msgid "home" msgid "home"
msgstr "inicio" msgstr "inicio"
#: __init__.py:32 #: __init__.py:40
msgid "search" msgid "search"
msgstr "búsqueda" msgstr "búsqueda"
@@ -61,11 +61,11 @@ msgstr "Diagnósticos"
#: conf/settings.py:12 #: conf/settings.py:12
msgid "" msgid ""
"Controls whether the search functionality is provided by a sidebar widget or " "Controls whether the search functionality is provided by a sidebar "
"by a menu entry." "widget or by a menu entry."
msgstr "" msgstr ""
"Controla si la funcionalidad de búsqueda es proporcionada por una barra " "Controla si la funcionalidad de búsqueda es proporcionada por una "
"lateral o por una entrada de menú." "barra lateral o por una entrada de menú."
#: templates/about.html:5 #: templates/about.html:5
msgid "About this program" msgid "About this program"
@@ -134,10 +134,15 @@ msgstr "Acciones"
msgid "Other available actions" msgid "Other available actions"
msgstr "Otras acciones disponibles" 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 #: templates/project_description.html:6
msgid "" msgid ""
"Open source, Django based electronic document manager with custom metadata, " "Open source, Django based electronic document manager with custom "
"indexing, tagging, file serving integration and OCR capabilities" "metadata, indexing, tagging, file serving integration and OCR "
"capabilities"
msgstr "" msgstr ""
"Gestor documental de código abierto, basado en Django con metadatos " "Gestor documental de código abierto, basado en Django con metadatos "
"personaliables, indexación, etiquedado de documentos, integración de " "personaliables, indexación, etiquedado de documentos, integración de "

Binary file not shown.

View File

@@ -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 <EMAIL@ADDRESS>\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 ""

View File

@@ -5,6 +5,7 @@
<div class="content tc"> <div class="content tc">
<h1>{% project_name %}</h1> <h1>{% project_name %}</h1>
<img src="{{ STATIC_URL }}images/1068504_92921456.jpg" /> <img src="{{ STATIC_URL }}images/1068504_92921456.jpg" />
<h2>{% trans 'Django based open source document management system' %}</h2><hr>
</div> </div>
{% endblock %} {% endblock %}
{% block footer %} {% block footer %}

Binary file not shown.

View File

@@ -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 <EMAIL@ADDRESS>\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 ""

View File

@@ -481,11 +481,12 @@ def setup_metadata_set_delete(request, metadata_set_id):
try: try:
metadata_set.delete() metadata_set.delete()
messages.success(request, _(u'Metadata set: %s deleted successfully.') % metadata_set) messages.success(request, _(u'Metadata set: %s deleted successfully.') % metadata_set)
return HttpResponseRedirect(post_action_redirect)
except Exception, e: except Exception, e:
messages.error(request, _(u'Metadata set: %(metadata_set)s delete error: %(error)s') % { messages.error(request, _(u'Metadata set: %(metadata_set)s delete error: %(error)s') % {
'metadata_set': metadata_set, 'error': e}) 'metadata_set': metadata_set, 'error': e})
return HttpResponseRedirect(previous)
return HttpResponseRedirect(next)
context = { context = {
'object_name': _(u'metadata set'), 'object_name': _(u'metadata set'),

Binary file not shown.

View File

@@ -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 <EMAIL@ADDRESS>\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 ""

Binary file not shown.

View File

@@ -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 <EMAIL@ADDRESS>\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 ""

Binary file not shown.

View File

@@ -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 <EMAIL@ADDRESS>\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 ""

Binary file not shown.

View File

@@ -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 <EMAIL@ADDRESS>\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 ""

Binary file not shown.

View File

@@ -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 <EMAIL@ADDRESS>\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 ""

Binary file not shown.

View File

@@ -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 <EMAIL@ADDRESS>\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 ""

Binary file not shown.

View File

@@ -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 <EMAIL@ADDRESS>\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 ""

Binary file not shown.

View File

@@ -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 <EMAIL@ADDRESS>\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 ""

Binary file not shown.

View File

@@ -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 <EMAIL@ADDRESS>\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 ""

Binary file not shown.

View File

@@ -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 <EMAIL@ADDRESS>\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 <a href=\"%(LOGIN_REDIRECT_URL)s\">here</a> 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 ""

View File

@@ -1,19 +1,22 @@
2011-12-2 Version 0.11
--------- ------------
* Added migrations and model updated to support document versions * Support for signed documents verification added, embedded and detached
signatures are supported. When verifying a document Mayan EDMS will
2011-12-1 try to fetch the public key from the list of keyservers provided in the
--------- configuration option SIGNATURES_KEYSERVERS (which defaults to
* OCR queue processing improvements 'pool.sks-keyservers.net'). A public key management view has been added
* Office documents handling improvements to the setup menu as well as a key query and fetching view to manually
* Text extraction support for office documents import keys from a keyserver.
* RTF text documents are now handled as office documents * 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 * Added a view to delete the document image cache, useful when switching
converter backends or doing diagnostics converter backends or doing diagnostics.
* Added South to the requirements.
2011-11-30
----------
* Added South to the requirements
* Merged documents' filename and extension database fiels into a single * Merged documents' filename and extension database fiels into a single
filename field, filename are store as uploaded not manipulation is done filename field, filename are store as uploaded not manipulation is done
Users with existing data must install South and run the appropiate Users with existing data must install South and run the appropiate
@@ -22,16 +25,11 @@
$ ./manager syncdb $ ./manager syncdb
$ ./manage.py migrate documents 0001 --fake $ ./manage.py migrate documents 0001 --fake
$ ./manage.py migrate documents $ ./manage.py migrate documents
* Added new office document mimetype * Added new office document mimetype
* application/vnd.ms-office * application/vnd.ms-office
* Fixed documents not saving the file encoding * Fixed documents not saving the file encoding
* Removed extra slash in ajax-loader.gif URL fixes #15, thanks to
IHLeanne for finding this one
2011-11-28
----------
* Removed extra slash in ajax-loader.gif URL fixes #15, thanks to IHLeanne for finding this one
Version 0.10.1 Version 0.10.1
@@ -42,6 +40,9 @@ Version 0.10.1
to upgrade 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 Version 0.10
------------ ------------

View File

@@ -48,10 +48,10 @@ copyright = u'2011, Roberto Rosario'
# built documents. # built documents.
# #
# The short X.Y version. # The short X.Y version.
version = '0.10.1' version = '0.11.1'
# The full version, including alpha/beta/rc tags. # The full version, including alpha/beta/rc tags.
release = '0.10' release = '0.11.1'
# The language for content autogenerated by Sphinx. Refer to documentation # The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages. # for a list of supported languages.

View File

@@ -38,6 +38,10 @@ Suggestions
Translations Translations
------------ ------------
* Portuguese
* Emerson Soares (http://emersonsoares.com) * Emerson Soares (http://emersonsoares.com)
* Renata Oliveira (https://twitter.com/#!/rnataoliveira) * Renata Oliveira (https://twitter.com/#!/rnataoliveira)
* Russian
* Сергей Глита [Sergey Glita] (s.v.glita@gmail.com) * Сергей Глита [Sergey Glita] (s.v.glita@gmail.com)
* Italian
* Pierpaolo Baldan

View File

@@ -112,3 +112,13 @@ Credits
* http://pypi.python.org/pypi/django-taggit * http://pypi.python.org/pypi/django-taggit
* Image 392336_7079 (stock exchange) * Image 392336_7079 (stock exchange)
* djangorestframework
* South
* python-gnupg
* python-hkp

View File

@@ -2,6 +2,23 @@
Features 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. * 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`_ * 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. * Local file or server side file uploads.
* Batch upload many documents with the same metadata. * 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. * 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. * **Mayan EDMS** provides different file conversion backends with different levels of functionality and requirements to adapt to different deployment environments.
* Full text searching. * 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. * Configurable document grouping.
* Automatic linking of documents based on metadata values or document properties. * 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. * Multi page document support.
@@ -55,7 +82,19 @@ Features
.. _Django: https://www.djangoproject.com/ .. _Django: https://www.djangoproject.com/
* Multilingual OCR support. * Multilingual OCR support.
* *As supported by the OCR engine tesseract.
* Duplicated document search. * Duplicated document search.
* Plugable storage backends (File based and GridFS included). * 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. * Color coded tagging.
* Labeled and color coded tags that are intituitive.
* Staging folders to receive scanned documents directly from network attached scanners. * Staging folders to receive scanned documents directly from network attached scanners.
* Preview scanned files even before uploading them.

View File

@@ -43,7 +43,6 @@ Contents
settings settings
updates updates
development development
technical
contributors contributors
credits credits
faq faq

View File

@@ -23,6 +23,7 @@ Executables:
* ``tesseract-ocr`` - An OCR Engine that was developed at HP Labs between 1985 and 1995... and now at Google. * ``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 * ``unpaper`` - post-processing scanned and photocopied book pages
* ``gpg`` - The GNU Privacy Guard
Optional requirements Optional requirements
===================== =====================

View File

@@ -88,6 +88,8 @@ Documents
Default: ``image_cache`` (relative to the installation path) Default: ``image_cache`` (relative to the installation path)
The path where the visual representations of the documents are stored for fast display.
Converter Converter
--------- ---------
@@ -128,19 +130,32 @@ Converter
Graphics conversion backend to use. Options are: ``converter.backends.imagemagick``, Graphics conversion backend to use. Options are: ``converter.backends.imagemagick``,
``converter.backends.graphicsmagick`` and ``converter.backends.python``. ``converter.backends.graphicsmagick`` and ``converter.backends.python``.
Suggested options: ``-limit files 1 -limit memory 1GB -limit map 2GB -density 200``
.. data:: CONVERTER_UNOCONV_PATH .. data:: CONVERTER_UNOCONV_PATH
Default: ``/usr/bin/unoconv`` Default: ``/usr/bin/unoconv``
Path to the unoconv program.
Grouping
---------
.. data:: GROUPING_SHOW_EMPTY_GROUPS .. data:: CONVERTER_UNOCONV_USE_PIPE
Default: ``True`` 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 Storage
------- -------
@@ -224,7 +239,7 @@ OCR
.. data:: OCR_REPLICATION_DELAY .. data:: OCR_REPLICATION_DELAY
Default: ``10`` Default: ``0``
Amount of seconds to delay OCR of documents to allow for the node's Amount of seconds to delay OCR of documents to allow for the node's
storage replication overhead. storage replication overhead.
@@ -384,3 +399,13 @@ User management
Default: ``[]`` Default: ``[]``
A list of existing roles that are automatically assigned to newly created users 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.

View File

@@ -7,108 +7,130 @@ cd $BASE/apps/common
$COMPILEMESSAGES -l pt $COMPILEMESSAGES -l pt
$COMPILEMESSAGES -l ru $COMPILEMESSAGES -l ru
$COMPILEMESSAGES -l es $COMPILEMESSAGES -l es
$COMPILEMESSAGES -l it
cd $BASE/apps/converter cd $BASE/apps/converter
$COMPILEMESSAGES -l pt $COMPILEMESSAGES -l pt
$COMPILEMESSAGES -l ru $COMPILEMESSAGES -l ru
$COMPILEMESSAGES -l es $COMPILEMESSAGES -l es
$COMPILEMESSAGES -l it
cd $BASE/apps/documents cd $BASE/apps/documents
$COMPILEMESSAGES -l pt $COMPILEMESSAGES -l pt
$COMPILEMESSAGES -l ru $COMPILEMESSAGES -l ru
$COMPILEMESSAGES -l es $COMPILEMESSAGES -l es
$COMPILEMESSAGES -l it
cd $BASE/apps/document_comments cd $BASE/apps/document_comments
$COMPILEMESSAGES -l pt $COMPILEMESSAGES -l pt
$COMPILEMESSAGES -l ru $COMPILEMESSAGES -l ru
$COMPILEMESSAGES -l es $COMPILEMESSAGES -l es
$COMPILEMESSAGES -l it
cd $BASE/apps/document_indexing cd $BASE/apps/document_indexing
$COMPILEMESSAGES -l pt $COMPILEMESSAGES -l pt
$COMPILEMESSAGES -l ru $COMPILEMESSAGES -l ru
$COMPILEMESSAGES -l es $COMPILEMESSAGES -l es
$COMPILEMESSAGES -l it
cd $BASE/apps/dynamic_search cd $BASE/apps/dynamic_search
$COMPILEMESSAGES -l pt $COMPILEMESSAGES -l pt
$COMPILEMESSAGES -l ru $COMPILEMESSAGES -l ru
$COMPILEMESSAGES -l es $COMPILEMESSAGES -l es
$COMPILEMESSAGES -l it
cd $BASE/apps/folders cd $BASE/apps/folders
$COMPILEMESSAGES -l pt $COMPILEMESSAGES -l pt
$COMPILEMESSAGES -l ru $COMPILEMESSAGES -l ru
$COMPILEMESSAGES -l es $COMPILEMESSAGES -l es
$COMPILEMESSAGES -l it
cd $BASE/apps/history cd $BASE/apps/history
$COMPILEMESSAGES -l pt $COMPILEMESSAGES -l pt
$COMPILEMESSAGES -l ru $COMPILEMESSAGES -l ru
$COMPILEMESSAGES -l es $COMPILEMESSAGES -l es
$COMPILEMESSAGES -l it
cd $BASE/apps/linking cd $BASE/apps/linking
$COMPILEMESSAGES -l pt $COMPILEMESSAGES -l pt
$COMPILEMESSAGES -l ru $COMPILEMESSAGES -l ru
$COMPILEMESSAGES -l es $COMPILEMESSAGES -l es
$COMPILEMESSAGES -l it
cd $BASE/apps/main cd $BASE/apps/main
$COMPILEMESSAGES -l pt $COMPILEMESSAGES -l pt
$COMPILEMESSAGES -l ru $COMPILEMESSAGES -l ru
$COMPILEMESSAGES -l es $COMPILEMESSAGES -l es
$COMPILEMESSAGES -l it
cd $BASE/apps/metadata cd $BASE/apps/metadata
$COMPILEMESSAGES -l pt $COMPILEMESSAGES -l pt
$COMPILEMESSAGES -l ru $COMPILEMESSAGES -l ru
$COMPILEMESSAGES -l es $COMPILEMESSAGES -l es
$COMPILEMESSAGES -l it
cd $BASE/apps/navigation cd $BASE/apps/navigation
$COMPILEMESSAGES -l pt $COMPILEMESSAGES -l pt
$COMPILEMESSAGES -l ru $COMPILEMESSAGES -l ru
$COMPILEMESSAGES -l es $COMPILEMESSAGES -l es
$COMPILEMESSAGES -l it
cd $BASE/apps/ocr cd $BASE/apps/ocr
$COMPILEMESSAGES -l pt $COMPILEMESSAGES -l pt
$COMPILEMESSAGES -l ru $COMPILEMESSAGES -l ru
$COMPILEMESSAGES -l es $COMPILEMESSAGES -l es
$COMPILEMESSAGES -l it
cd $BASE/apps/permissions cd $BASE/apps/permissions
$COMPILEMESSAGES -l pt $COMPILEMESSAGES -l pt
$COMPILEMESSAGES -l ru $COMPILEMESSAGES -l ru
$COMPILEMESSAGES -l es $COMPILEMESSAGES -l es
$COMPILEMESSAGES -l it
cd $BASE/apps/project_setup cd $BASE/apps/project_setup
$COMPILEMESSAGES -l pt $COMPILEMESSAGES -l pt
$COMPILEMESSAGES -l ru $COMPILEMESSAGES -l ru
$COMPILEMESSAGES -l es $COMPILEMESSAGES -l es
$COMPILEMESSAGES -l it
cd $BASE/apps/project_tools cd $BASE/apps/project_tools
$COMPILEMESSAGES -l pt $COMPILEMESSAGES -l pt
$COMPILEMESSAGES -l ru $COMPILEMESSAGES -l ru
$COMPILEMESSAGES -l es $COMPILEMESSAGES -l es
$COMPILEMESSAGES -l it
cd $BASE/apps/smart_settings cd $BASE/apps/smart_settings
$COMPILEMESSAGES -l pt $COMPILEMESSAGES -l pt
$COMPILEMESSAGES -l ru $COMPILEMESSAGES -l ru
$COMPILEMESSAGES -l es $COMPILEMESSAGES -l es
$COMPILEMESSAGES -l it
cd $BASE/apps/sources cd $BASE/apps/sources
$COMPILEMESSAGES -l pt $COMPILEMESSAGES -l pt
$COMPILEMESSAGES -l ru $COMPILEMESSAGES -l ru
$COMPILEMESSAGES -l es $COMPILEMESSAGES -l es
$COMPILEMESSAGES -l it
cd $BASE/apps/tags cd $BASE/apps/tags
$COMPILEMESSAGES -l pt $COMPILEMESSAGES -l pt
$COMPILEMESSAGES -l ru $COMPILEMESSAGES -l ru
$COMPILEMESSAGES -l es $COMPILEMESSAGES -l es
$COMPILEMESSAGES -l it
cd $BASE/apps/user_management cd $BASE/apps/user_management
$COMPILEMESSAGES -l pt $COMPILEMESSAGES -l pt
$COMPILEMESSAGES -l ru $COMPILEMESSAGES -l ru
$COMPILEMESSAGES -l es $COMPILEMESSAGES -l es
$COMPILEMESSAGES -l it
cd $BASE/apps/web_theme cd $BASE/apps/web_theme
$COMPILEMESSAGES -l pt $COMPILEMESSAGES -l pt
$COMPILEMESSAGES -l ru $COMPILEMESSAGES -l ru
$COMPILEMESSAGES -l es $COMPILEMESSAGES -l es
$COMPILEMESSAGES -l it
cd $BASE/apps/django_gpg cd $BASE/apps/django_gpg
$COMPILEMESSAGES -l pt $COMPILEMESSAGES -l pt
$COMPILEMESSAGES -l ru $COMPILEMESSAGES -l ru
$COMPILEMESSAGES -l es $COMPILEMESSAGES -l es
$COMPILEMESSAGES -l it

View File

@@ -8,129 +8,151 @@ $MAKEMESSAGES -l en
$MAKEMESSAGES -l pt $MAKEMESSAGES -l pt
$MAKEMESSAGES -l ru $MAKEMESSAGES -l ru
$MAKEMESSAGES -l es $MAKEMESSAGES -l es
$MAKEMESSAGES -l it
cd $BASE/apps/converter cd $BASE/apps/converter
$MAKEMESSAGES -l en $MAKEMESSAGES -l en
$MAKEMESSAGES -l pt $MAKEMESSAGES -l pt
$MAKEMESSAGES -l ru $MAKEMESSAGES -l ru
$MAKEMESSAGES -l es $MAKEMESSAGES -l es
$MAKEMESSAGES -l it
cd $BASE/apps/documents cd $BASE/apps/documents
$MAKEMESSAGES -l en $MAKEMESSAGES -l en
$MAKEMESSAGES -l pt $MAKEMESSAGES -l pt
$MAKEMESSAGES -l ru $MAKEMESSAGES -l ru
$MAKEMESSAGES -l es $MAKEMESSAGES -l es
$MAKEMESSAGES -l it
cd $BASE/apps/document_comments cd $BASE/apps/document_comments
$MAKEMESSAGES -l en $MAKEMESSAGES -l en
$MAKEMESSAGES -l pt $MAKEMESSAGES -l pt
$MAKEMESSAGES -l ru $MAKEMESSAGES -l ru
$MAKEMESSAGES -l es $MAKEMESSAGES -l es
$MAKEMESSAGES -l it
cd $BASE/apps/document_indexing cd $BASE/apps/document_indexing
$MAKEMESSAGES -l en $MAKEMESSAGES -l en
$MAKEMESSAGES -l pt $MAKEMESSAGES -l pt
$MAKEMESSAGES -l ru $MAKEMESSAGES -l ru
$MAKEMESSAGES -l es $MAKEMESSAGES -l es
$MAKEMESSAGES -l it
cd $BASE/apps/dynamic_search cd $BASE/apps/dynamic_search
$MAKEMESSAGES -l en $MAKEMESSAGES -l en
$MAKEMESSAGES -l pt $MAKEMESSAGES -l pt
$MAKEMESSAGES -l ru $MAKEMESSAGES -l ru
$MAKEMESSAGES -l es $MAKEMESSAGES -l es
$MAKEMESSAGES -l it
cd $BASE/apps/folders cd $BASE/apps/folders
$MAKEMESSAGES -l en $MAKEMESSAGES -l en
$MAKEMESSAGES -l pt $MAKEMESSAGES -l pt
$MAKEMESSAGES -l ru $MAKEMESSAGES -l ru
$MAKEMESSAGES -l es $MAKEMESSAGES -l es
$MAKEMESSAGES -l it
cd $BASE/apps/history cd $BASE/apps/history
$MAKEMESSAGES -l en $MAKEMESSAGES -l en
$MAKEMESSAGES -l pt $MAKEMESSAGES -l pt
$MAKEMESSAGES -l ru $MAKEMESSAGES -l ru
$MAKEMESSAGES -l es $MAKEMESSAGES -l es
$MAKEMESSAGES -l it
cd $BASE/apps/linking cd $BASE/apps/linking
$MAKEMESSAGES -l en $MAKEMESSAGES -l en
$MAKEMESSAGES -l pt $MAKEMESSAGES -l pt
$MAKEMESSAGES -l ru $MAKEMESSAGES -l ru
$MAKEMESSAGES -l es $MAKEMESSAGES -l es
$MAKEMESSAGES -l it
cd $BASE/apps/main cd $BASE/apps/main
$MAKEMESSAGES -l en $MAKEMESSAGES -l en
$MAKEMESSAGES -l pt $MAKEMESSAGES -l pt
$MAKEMESSAGES -l ru $MAKEMESSAGES -l ru
$MAKEMESSAGES -l es $MAKEMESSAGES -l es
$MAKEMESSAGES -l it
cd $BASE/apps/metadata cd $BASE/apps/metadata
$MAKEMESSAGES -l en $MAKEMESSAGES -l en
$MAKEMESSAGES -l pt $MAKEMESSAGES -l pt
$MAKEMESSAGES -l ru $MAKEMESSAGES -l ru
$MAKEMESSAGES -l es $MAKEMESSAGES -l es
$MAKEMESSAGES -l it
cd $BASE/apps/navigation cd $BASE/apps/navigation
$MAKEMESSAGES -l en $MAKEMESSAGES -l en
$MAKEMESSAGES -l pt $MAKEMESSAGES -l pt
$MAKEMESSAGES -l ru $MAKEMESSAGES -l ru
$MAKEMESSAGES -l es $MAKEMESSAGES -l es
$MAKEMESSAGES -l it
cd $BASE/apps/ocr cd $BASE/apps/ocr
$MAKEMESSAGES -l en $MAKEMESSAGES -l en
$MAKEMESSAGES -l pt $MAKEMESSAGES -l pt
$MAKEMESSAGES -l ru $MAKEMESSAGES -l ru
$MAKEMESSAGES -l es $MAKEMESSAGES -l es
$MAKEMESSAGES -l it
cd $BASE/apps/permissions cd $BASE/apps/permissions
$MAKEMESSAGES -l en $MAKEMESSAGES -l en
$MAKEMESSAGES -l pt $MAKEMESSAGES -l pt
$MAKEMESSAGES -l ru $MAKEMESSAGES -l ru
$MAKEMESSAGES -l es $MAKEMESSAGES -l es
$MAKEMESSAGES -l it
cd $BASE/apps/project_setup cd $BASE/apps/project_setup
$MAKEMESSAGES -l en $MAKEMESSAGES -l en
$MAKEMESSAGES -l pt $MAKEMESSAGES -l pt
$MAKEMESSAGES -l ru $MAKEMESSAGES -l ru
$MAKEMESSAGES -l es $MAKEMESSAGES -l es
$MAKEMESSAGES -l it
cd $BASE/apps/project_tools cd $BASE/apps/project_tools
$MAKEMESSAGES -l en $MAKEMESSAGES -l en
$MAKEMESSAGES -l pt $MAKEMESSAGES -l pt
$MAKEMESSAGES -l ru $MAKEMESSAGES -l ru
$MAKEMESSAGES -l es $MAKEMESSAGES -l es
$MAKEMESSAGES -l it
cd $BASE/apps/smart_settings cd $BASE/apps/smart_settings
$MAKEMESSAGES -l en $MAKEMESSAGES -l en
$MAKEMESSAGES -l pt $MAKEMESSAGES -l pt
$MAKEMESSAGES -l ru $MAKEMESSAGES -l ru
$MAKEMESSAGES -l es $MAKEMESSAGES -l es
$MAKEMESSAGES -l it
cd $BASE/apps/sources cd $BASE/apps/sources
$MAKEMESSAGES -l en $MAKEMESSAGES -l en
$MAKEMESSAGES -l pt $MAKEMESSAGES -l pt
$MAKEMESSAGES -l ru $MAKEMESSAGES -l ru
$MAKEMESSAGES -l es $MAKEMESSAGES -l es
$MAKEMESSAGES -l it
cd $BASE/apps/tags cd $BASE/apps/tags
$MAKEMESSAGES -l en $MAKEMESSAGES -l en
$MAKEMESSAGES -l pt $MAKEMESSAGES -l pt
$MAKEMESSAGES -l ru $MAKEMESSAGES -l ru
$MAKEMESSAGES -l es $MAKEMESSAGES -l es
$MAKEMESSAGES -l it
cd $BASE/apps/user_management cd $BASE/apps/user_management
$MAKEMESSAGES -l en $MAKEMESSAGES -l en
$MAKEMESSAGES -l pt $MAKEMESSAGES -l pt
$MAKEMESSAGES -l ru $MAKEMESSAGES -l ru
$MAKEMESSAGES -l es $MAKEMESSAGES -l es
$MAKEMESSAGES -l it
cd $BASE/apps/web_theme cd $BASE/apps/web_theme
$MAKEMESSAGES -l en $MAKEMESSAGES -l en
$MAKEMESSAGES -l pt $MAKEMESSAGES -l pt
$MAKEMESSAGES -l ru $MAKEMESSAGES -l ru
$MAKEMESSAGES -l es $MAKEMESSAGES -l es
$MAKEMESSAGES -l it
cd $BASE/apps/django_gpg cd $BASE/apps/django_gpg
$MAKEMESSAGES -l en $MAKEMESSAGES -l en
$MAKEMESSAGES -l pt $MAKEMESSAGES -l pt
$MAKEMESSAGES -l ru $MAKEMESSAGES -l ru
$MAKEMESSAGES -l es $MAKEMESSAGES -l es
$MAKEMESSAGES -l it

View File

@@ -53,6 +53,7 @@ LANGUAGES = (
('es', ugettext('Spanish')), ('es', ugettext('Spanish')),
('pt', ugettext('Portuguese')), ('pt', ugettext('Portuguese')),
('ru', ugettext('Russian')), ('ru', ugettext('Russian')),
('it', ugettext('Italian')),
) )
SITE_ID = 1 SITE_ID = 1
@@ -189,6 +190,8 @@ STATICFILES_FINDERS = (
COMPRESS_PARSER = 'compressor.parser.HtmlParser' COMPRESS_PARSER = 'compressor.parser.HtmlParser'
COMPRESS_CSS_FILTERS = ['compressor.filters.css_default.CssAbsoluteFilter', 'compressor.filters.cssmin.CSSMinFilter'] COMPRESS_CSS_FILTERS = ['compressor.filters.css_default.CssAbsoluteFilter', 'compressor.filters.cssmin.CSSMinFilter']
COMPRESS_ENABLED=False
#===== User configuration options =============== #===== User configuration options ===============
#--------- Pagination ------------------ #--------- Pagination ------------------
#PAGINATION_DEFAULT_PAGINATION = 10 #PAGINATION_DEFAULT_PAGINATION = 10