diff --git a/.gitignore b/.gitignore index f9b3804eaf..dad5458e19 100644 --- a/.gitignore +++ b/.gitignore @@ -20,4 +20,5 @@ gpg_home/ .idea/ static_collected/ *egg-info* -mayan/settings/local.py +mayan/settings/local.py +.vagrant diff --git a/.travis.yml b/.travis.yml index 81ab2c70cc..e8ef3a6f88 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,19 +1,34 @@ language: python python: - - 2.7 - 2.6 + - 2.7 +env: + global: + - TEST_APPS="document_indexing documents dynamic_search lock_manager document_signatures folders ocr tags" + matrix: + - DB=mysql + - DB=postgres + - DB=sqlite before_install: - sudo apt-get update -qq - sudo apt-get install -qq python-dev gcc tesseract-ocr unpaper ghostscript libjpeg-dev libpng-dev poppler-utils install: - "pip install -r requirements/testing.txt" + - if [[ $DB == mysql ]]; then pip install -q mysql-python; fi + - if [[ $DB == postgres ]]; then pip install -q psycopg2; fi +before_script: + - mysql -e 'create database mayan_edms;' + - psql -c 'create database mayan_edms;' -U postgres script: - - coverage run --source=documents,document_signatures,lock_manager,folders,ocr,tags manage.py test documents lock_manager document_signatures folders ocr tags + - if [[ $DB == mysql ]]; then coverage run manage.py test $TEST_APPS --settings=mayan.settings.travis.db_mysql; fi + - if [[ $DB == postgres ]]; then coverage run manage.py test $TEST_APPS --settings=mayan.settings.travis.db_postgres; fi + - if [[ $DB == sqlite ]]; then coverage run manage.py test $TEST_APPS --settings=mayan.settings.travis.base; fi after_success: - coveralls branches: only: - master + - development notifications: email: recipients: diff --git a/.tx/config b/.tx/config index 3297ebc3c5..e5811aeff4 100644 --- a/.tx/config +++ b/.tx/config @@ -7,12 +7,6 @@ source_lang = en source_file = mayan/apps/acls/locale/en/LC_MESSAGES/django.po type = PO -[mayan-edms.apps-bootstrap] -file_filter = mayan/apps/bootstrap/locale//LC_MESSAGES/django.po -source_lang = en -source_file = mayan/apps/bootstrap/locale/en/LC_MESSAGES/django.po -type = PO - [mayan-edms.apps-checkouts] file_filter = mayan/apps/checkouts/locale//LC_MESSAGES/django.po source_lang = en @@ -61,24 +55,30 @@ source_lang = en source_file = mayan/apps/document_signatures/locale/en/LC_MESSAGES/django.po type = PO +[mayan-edms.apps-document_states] +file_filter = mayan/apps/document_states/locale//LC_MESSAGES/django.po +source_lang = en +source_file = mayan/apps/document_states/locale/en/LC_MESSAGES/django.po +type = PO + [mayan-edms.apps-dynamic_search] file_filter = mayan/apps/dynamic_search/locale//LC_MESSAGES/django.po source_lang = en source_file = mayan/apps/dynamic_search/locale/en/LC_MESSAGES/django.po type = PO +[mayan-edms.apps-events] +file_filter = mayan/apps/events/locale//LC_MESSAGES/django.po +source_lang = en +source_file = mayan/apps/events/locale/en/LC_MESSAGES/django.po +type = PO + [mayan-edms.apps-folders] file_filter = mayan/apps/folders/locale//LC_MESSAGES/django.po source_lang = en source_file = mayan/apps/folders/locale/en/LC_MESSAGES/django.po type = PO -[mayan-edms.apps-history] -file_filter = mayan/apps/history/locale//LC_MESSAGES/django.po -source_lang = en -source_file = mayan/apps/history/locale/en/LC_MESSAGES/django.po -type = PO - [mayan-edms.apps-installation] file_filter = mayan/apps/installation/locale//LC_MESSAGES/django.po source_lang = en @@ -91,6 +91,12 @@ source_lang = en source_file = mayan/apps/linking/locale/en/LC_MESSAGES/django.po type = PO +[mayan-edms.apps-mailer] +file_filter = mayan/apps/mailer/locale//LC_MESSAGES/django.po +source_lang = en +source_file = mayan/apps/mailer/locale/en/LC_MESSAGES/django.po +type = PO + [mayan-edms.apps-main] file_filter = mayan/apps/main/locale//LC_MESSAGES/django.po source_lang = en @@ -139,10 +145,10 @@ source_lang = en source_file = mayan/apps/registration/locale/en/LC_MESSAGES/django.po type = PO -[mayan-edms.apps-scheduler] -file_filter = mayan/apps/scheduler/locale//LC_MESSAGES/django.po +[mayan-edms.apps-rest_api] +file_filter = mayan/apps/rest_api/locale//LC_MESSAGES/django.po source_lang = en -source_file = mayan/apps/scheduler/locale/en/LC_MESSAGES/django.po +source_file = mayan/apps/rest_api/locale/en/LC_MESSAGES/django.po type = PO [mayan-edms.apps-smart_settings] @@ -175,8 +181,4 @@ source_lang = en source_file = mayan/apps/user_management/locale/en/LC_MESSAGES/django.po type = PO -[mayan-edms.apps-web_theme] -file_filter = mayan/apps/web_theme/locale//LC_MESSAGES/django.po -source_lang = en -source_file = mayan/apps/web_theme/locale/en/LC_MESSAGES/django.po -type = PO + diff --git a/HISTORY.rst b/HISTORY.rst index 7b5937b3fd..b6ac0aeb3b 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -1,3 +1,32 @@ +1.1 (2015-02-10) +================ + +- Uses Celery for backgroung tasks +- Removal of the splash screen +- Adds a home view with common function buttons +- Support for sending and receiving documents via email +- Removed custom logging app in favor of django-actvity-stream +- Adds watch folders +- Includes Vagrant file for unified development and testing environments +- Per user locale profile (language and timezone) +- Includes news document workflow app +- Optional and required metadata types +- Improved testings. Tested againsta SQLite, MySQL, PostgreSQL +- Many new REST API endpoints added +- Simplfied text messages +- Improved method for custom settings +- Addition of CORS support to the REST API +- Per document language setting instead of per installation language setting +- Metadata validation and parsing support +- Start of code updates towards Python 3 support +- Simplified UI +- Stable PDF previews generation +- More technical documentation + + +For a full changelog and release notes go to: http://mayan.readthedocs.org/en/latest/releases/1.1.html + + 1.0 (2014-08-27) ================ diff --git a/README.rst b/README.rst index d056f9b5bd..bd18112d5c 100644 --- a/README.rst +++ b/README.rst @@ -50,9 +50,9 @@ Contribute ---------- - Check for open issues or open a fresh issue to start a discussion around a feature idea or a bug. -- Fork `the repository`_ on GitHub to start making your changes to the **master** branch (or branch off of it). +- Fork `the repository`_ on GitHub to start making your changes to the **development** branch (or branch off of it). - Write a test which shows that the bug was fixed or that the feature works as expected. -- Make sure to add yourself to the `contributors file`_. +- Add yourself to the `contributors file`_. - Send a pull request @@ -63,7 +63,7 @@ Contribute .. _Mailing list (via Google Groups): http://groups.google.com/group/mayan-edms .. _Apache 2.0 License: https://www.apache.org/licenses/LICENSE-2.0.txt .. _`the repository`: http://github.com/mayan-edms/mayan-edms -.. _`contributors file`: https://github.com/mayan-edms/mayan-edms/blob/master/docs/credits/contributors.rst +.. _`contributors file`: https://github.com/mayan-edms/mayan-edms/blob/master/docs/topics/contributors.rst .. |Build Status| image:: http://img.shields.io/travis/mayan-edms/mayan-edms/master.svg?style=flat :target: https://travis-ci.org/mayan-edms/mayan-edms diff --git a/Vagrantfile b/Vagrantfile new file mode 100644 index 0000000000..41e36e9d96 --- /dev/null +++ b/Vagrantfile @@ -0,0 +1,12 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +Vagrant.configure(2) do |config| + config.vm.box = "ubuntu/trusty32" + config.vm.network "forwarded_port", guest: 8000, host: 8000 + config.vm.synced_folder ".", "/mayan-edms-repository" + config.vm.provision :shell, :path => "contrib/scripts/install/development.sh", privileged: false + + config.vm.provision "file", destination: "/home/vagrant/mayan-edms/mayan/settings/celery_redis.py", source: "contrib/configs/celery_redis.py" + config.vm.provision "file", destination: "/home/vagrant/mayan-edms/mayan_edms_worker.sh", source: "contrib/misc/mayan_edms_worker.sh" +end diff --git a/contrib/apache/mayan b/contrib/apache/mayan index 01c38ad146..4c880f586e 100644 --- a/contrib/apache/mayan +++ b/contrib/apache/mayan @@ -1,20 +1,19 @@ - # Uncomment if libapache2-mod-xsendfile is installed - # XSendFile On - # XSendFileAllowAbove On + # Uncomment if libapache2-mod-xsendfile is installed + # XSendFile On + # XSendFileAllowAbove On + ServerName mayan.yoursite.com + ServerAdmin admin@yoursite.com + DocumentRoot /var/www/mayan-edms + WSGIScriptAlias / /var/www/mayan-edms/mayan/mayan-edms.wsgi - WSGIScriptAlias / /usr/share/mayan/mayan/wsgi/dispatch.wsgi - - - Order deny,allow - Allow from all - - ErrorLog /var/log/apache2/mayan_error.log - LogLevel warn - CustomLog /var/log/apache2/mayan_access.log combined - - Alias /mayan-static "/usr/share/mayan/mayan/static/" - - SetHandler None - + + Order allow,deny + Allow from all + + + Alias /static /var/www/mayan-edms/media/static + + SetHandler None + diff --git a/contrib/apache/mayan-edms.wsgi b/contrib/apache/mayan-edms.wsgi new file mode 100644 index 0000000000..c917f319df --- /dev/null +++ b/contrib/apache/mayan-edms.wsgi @@ -0,0 +1,14 @@ +# sample wsgi file for usage with apache webserver +# mayan installation in a virtualenv /opt/mayan/venv +# apache deployment in /var/www/mayan-edms +import os +import sys +import site +# set up python path to virtual environment +site.addsitedir(‘/opt/mayan/venv/lib/python2.7/site-packages’) +sys.path.append(‘/var/www/mayan-edms’) +os.environ[‘PYTHON_EGG_CACHE’]=’/var/www/django/cache’ +#django WSGI specifics +From django.core.handlers.wsgi import WSGIHandler +os.environ[‘DJANGO_SETTING_MODULE’] = ‘mayan.settings.production’ +application = WSGIHandler() diff --git a/contrib/configs/celery_redis.py b/contrib/configs/celery_redis.py new file mode 100644 index 0000000000..e05f5c450a --- /dev/null +++ b/contrib/configs/celery_redis.py @@ -0,0 +1,5 @@ +from .local import * + +CELERY_ALWAYS_EAGER = False +BROKER_URL = 'redis://127.0.0.1:6379/0' +CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/0' diff --git a/contrib/misc/mayan_edms_worker.sh b/contrib/misc/mayan_edms_worker.sh new file mode 100755 index 0000000000..43b30c6343 --- /dev/null +++ b/contrib/misc/mayan_edms_worker.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +DJANGO_SETTINGS_MODULE='mayan.settings.celery_redis' celery -A mayan worker -l DEBUG -Q checkouts,mailing,uploads,converter,ocr,tools,indexing,metadata -Ofair -B diff --git a/contrib/nginx/mayan_uwsgi.conf b/contrib/nginx/mayan_uwsgi.conf new file mode 100644 index 0000000000..9d272c9729 --- /dev/null +++ b/contrib/nginx/mayan_uwsgi.conf @@ -0,0 +1,19 @@ +server { + listen 80; + listen [::]:80 ipv6only=on; + server_name mayan; + access_log /var/log/nginx/access_mayan.log; + error_log /var/log/nginx/error_mayan.log; + + location / { + uwsgi_pass unix:///run/uwsgi/app/mayan/socket; + include uwsgi_params; + uwsgi_param UWSGI_SCHEME $scheme; + uwsgi_param SERVER_SOFTWARE nginx/$nginx_version; + } + + location /static/ { + root /srv/mayan/projects/mayan/mayan-edms/mayan/media/; + } + +} diff --git a/contrib/scripts/PEP8_check.sh b/contrib/scripts/PEP8_check.sh new file mode 100755 index 0000000000..742cbc4fe4 --- /dev/null +++ b/contrib/scripts/PEP8_check.sh @@ -0,0 +1 @@ +flake8 --ignore=E501 mayan/apps | grep -v "F401 'models' imported but unused" | grep -v "F811 redefinition of unused 'models'"| grep -v "F401 'db' imported but unused" | grep -v "F812 list comprehension redefines 'user_id'" | grep -v "F812 list comprehension redefines 'document_id'" |less diff --git a/contrib/scripts/install/development.sh b/contrib/scripts/install/development.sh new file mode 100644 index 0000000000..587d27ef8a --- /dev/null +++ b/contrib/scripts/install/development.sh @@ -0,0 +1,72 @@ +#!/usr/bin/env bash + +INSTALLATION_DIRECTORY=/home/vagrant/mayan-edms/ +DB_NAME=mayan_edms +DB_PASSWORD=test123 + +cat << EOF | sudo tee -a /etc/motd.tail +**********************************sudo apt + +Mayan EDMS Vagrant Development Box + +********************************** +EOF + +# Update sources +echo -e "\n -> Running apt-get update & upgrade \n" +sudo apt-get -qq update +sudo apt-get -y upgrade + +echo -e "\n -> Installing core binaries \n" +sudo apt-get -y install git-core python-virtualenv gcc python-dev libjpeg-dev libpng-dev libtiff-dev tesseract-ocr poppler-utils unpaper libreoffice + +echo -e "\n -> Cloning development branch of repository \n" +git clone /mayan-edms-repository/ $INSTALLATION_DIRECTORY +cd $INSTALLATION_DIRECTORY +git checkout development +git reset HEAD --hard + +echo -e "\n -> Setting up virtual env \n" +virtualenv venv +source venv/bin/activate + +echo -e "\n -> Installing python dependencies \n" +pip install -r requirements.txt + +echo -e "\n -> Running Mayan EDMS initial setup \n" +./manage.py initialsetup + +echo -e "\n -> Installing Redis server \n" +sudo apt-get install -y redis-server +pip install redis + +echo -e "\n -> Installing testing software \n" +pip install coverage + +echo -e "\n -> Installing MySQL \n" +sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password password '$DB_PASSWORD +sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password '$DB_PASSWORD +sudo apt-get install -y mysql-server libmysqlclient-dev +# Create a passwordless root and travis users +mysql -u root -p$DB_PASSWORD -e "SET PASSWORD = PASSWORD('');" +mysql -u root -e "CREATE USER 'travis'@'localhost' IDENTIFIED BY '';GRANT ALL PRIVILEGES ON * . * TO 'travis'@'localhost';FLUSH PRIVILEGES;" +mysql -u travis -e "CREATE DATABASE $DB_NAME;" +pip install mysql-python + +echo -e "\n -> Installing PostgreSQL \n" +sudo apt-get install -y postgresql postgresql-server-dev-all +sudo -u postgres psql -c 'create database mayan_edms;' -U postgres +sudo cat > /etc/postgresql/9.3/main/pg_hba.conf << EOF +local all postgres trust + +# TYPE DATABASE USER ADDRESS METHOD + +# "local" is for Unix domain socket connections only +local all all peer +# IPv4 local connections: +host all all 127.0.0.1/32 md5 +# IPv6 local connections: +host all all ::1/128 md5 +EOF + +pip install -q psycopg2 diff --git a/contrib/scripts/process_messages.py b/contrib/scripts/process_messages.py index 2086d5200f..b915714bba 100755 --- a/contrib/scripts/process_messages.py +++ b/contrib/scripts/process_messages.py @@ -6,12 +6,11 @@ import optparse import sh APP_LIST = ('acls', 'checkouts', 'common', 'converter', 'django_gpg', 'documents', - 'document_comments', 'document_indexing', 'document_signatures', 'dynamic_search', - 'folders', 'history', 'installation', 'linking', 'main', 'metadata', 'navigation', - 'ocr', 'permissions', 'project_setup', 'project_tools', 'scheduler', 'smart_settings', - 'sources', 'tags', 'user_management', 'web_theme', 'bootstrap', - 'registration', 'statistics') -LANGUAGE_LIST = ('ar', 'bg', 'bs_BA', 'da', 'de_DE', 'en', 'es', 'fa', 'fr', 'hu', 'hr_HR', 'id', 'it', 'nl_NL', 'pl', 'pt', 'pt_BR', 'ro_RO', 'ru', 'sl_SI', 'tr_TR', 'vi_VN', 'zh-cn') + 'document_comments', 'document_indexing', 'document_signatures', 'document_states', 'dynamic_search', + 'events', 'folders', 'installation', 'linking', 'mailer', 'main', 'metadata', 'navigation', + 'ocr', 'permissions', 'project_setup', 'project_tools', 'registration', 'rest_api', + 'smart_settings', 'sources', 'statistics', 'tags', 'user_management') +LANGUAGE_LIST = ('ar', 'bg', 'bs_BA', 'da', 'de_CH', 'de_DE', 'en', 'es', 'fa', 'fr', 'hu', 'hr_HR', 'id', 'it', 'lv', 'nb', 'nl_NL', 'pl', 'pt', 'pt_BR', 'ro_RO', 'ru', 'sl_SI', 'sq', 'tr_TR', 'vi_VN', 'zh_CN', 'zh_TW') makemessages = sh.Command('django-admin.py') makemessages = makemessages.bake('makemessages') diff --git a/contrib/uwsgi/mayan.ini b/contrib/uwsgi/mayan.ini new file mode 100644 index 0000000000..fc641f1f84 --- /dev/null +++ b/contrib/uwsgi/mayan.ini @@ -0,0 +1,14 @@ +# Sample file for uswgi with mayan installed in a virtualenv mayan +# with project directory mayan e.g. for use with nginx connecting via +# local unix socket +[uwsgi] +#socket = 127.0.0.1:3031 +plugin = python +chdir = /srv/mayan/projects/mayan/mayan-edms +virtualenv = /srv/mayan/.virtualenvs/mayan +env = DJANGO_SETTINGS_MODULE=mayan.settings.production +module = django.core.handlers.wsgi:WSGIHandler() +processes = 4 +threads = 2 +stats = :9191 +buffer-size=32768 \ No newline at end of file diff --git a/docs/_static/ACL.png b/docs/_static/ACL.png deleted file mode 100644 index acd3458113..0000000000 Binary files a/docs/_static/ACL.png and /dev/null differ diff --git a/docs/_static/arrow_right.png b/docs/_static/arrow_right.png deleted file mode 100644 index 036b9e2947..0000000000 Binary files a/docs/_static/arrow_right.png and /dev/null differ diff --git a/docs/_static/bootstrap_button.png b/docs/_static/bootstrap_button.png deleted file mode 100644 index b0aaf68dfb..0000000000 Binary files a/docs/_static/bootstrap_button.png and /dev/null differ diff --git a/docs/_static/document_types_button.png b/docs/_static/document_types_button.png deleted file mode 100644 index 364dd4784e..0000000000 Binary files a/docs/_static/document_types_button.png and /dev/null differ diff --git a/docs/_static/documents_tab.png b/docs/_static/documents_tab.png deleted file mode 100644 index 01d4613be5..0000000000 Binary files a/docs/_static/documents_tab.png and /dev/null differ diff --git a/docs/_static/index_instance.png b/docs/_static/index_instance.png deleted file mode 100644 index 9310c1c013..0000000000 Binary files a/docs/_static/index_instance.png and /dev/null differ diff --git a/docs/_static/index_tab.png b/docs/_static/index_tab.png deleted file mode 100644 index fc1b81f189..0000000000 Binary files a/docs/_static/index_tab.png and /dev/null differ diff --git a/docs/_static/index_template.png b/docs/_static/index_template.png deleted file mode 100644 index 6d5596dd89..0000000000 Binary files a/docs/_static/index_template.png and /dev/null differ diff --git a/docs/_static/indexes.png b/docs/_static/indexes.png deleted file mode 100644 index a1a5c776e6..0000000000 Binary files a/docs/_static/indexes.png and /dev/null differ diff --git a/docs/_static/indexes_button.png b/docs/_static/indexes_button.png deleted file mode 100644 index d511c52321..0000000000 Binary files a/docs/_static/indexes_button.png and /dev/null differ diff --git a/docs/_static/mayan-login.png b/docs/_static/mayan-login.png deleted file mode 100644 index 65673aa303..0000000000 Binary files a/docs/_static/mayan-login.png and /dev/null differ diff --git a/docs/_static/mayan_architecture.png b/docs/_static/mayan_architecture.png deleted file mode 100644 index f9f6c3c8aa..0000000000 Binary files a/docs/_static/mayan_architecture.png and /dev/null differ diff --git a/docs/_static/metadata_types_button.png b/docs/_static/metadata_types_button.png deleted file mode 100644 index f49b94d9a0..0000000000 Binary files a/docs/_static/metadata_types_button.png and /dev/null differ diff --git a/docs/_static/no-icons.png b/docs/_static/no-icons.png deleted file mode 100644 index d00eec2d62..0000000000 Binary files a/docs/_static/no-icons.png and /dev/null differ diff --git a/docs/_static/ocr_button.png b/docs/_static/ocr_button.png deleted file mode 100644 index 795010ab0c..0000000000 Binary files a/docs/_static/ocr_button.png and /dev/null differ diff --git a/docs/_static/permissions.png b/docs/_static/permissions.png deleted file mode 100644 index 3c3809f405..0000000000 Binary files a/docs/_static/permissions.png and /dev/null differ diff --git a/docs/_static/screenshots/smart_links_screenshot.png b/docs/_static/screenshots/smart_links_screenshot.png deleted file mode 100644 index cc507d06fb..0000000000 Binary files a/docs/_static/screenshots/smart_links_screenshot.png and /dev/null differ diff --git a/docs/_static/screenshots/tags_screenshot.png b/docs/_static/screenshots/tags_screenshot.png deleted file mode 100644 index 542a28894f..0000000000 Binary files a/docs/_static/screenshots/tags_screenshot.png and /dev/null differ diff --git a/docs/_static/setup_tab.png b/docs/_static/setup_tab.png deleted file mode 100644 index 4b14ced8f3..0000000000 Binary files a/docs/_static/setup_tab.png and /dev/null differ diff --git a/docs/_static/smart_links_button.png b/docs/_static/smart_links_button.png deleted file mode 100644 index 2e38cae5d2..0000000000 Binary files a/docs/_static/smart_links_button.png and /dev/null differ diff --git a/docs/_static/smart_links_link.png b/docs/_static/smart_links_link.png deleted file mode 100644 index ffee00f834..0000000000 Binary files a/docs/_static/smart_links_link.png and /dev/null differ diff --git a/docs/_static/sources_button.png b/docs/_static/sources_button.png deleted file mode 100644 index d8ab39d500..0000000000 Binary files a/docs/_static/sources_button.png and /dev/null differ diff --git a/docs/_static/tags_link.png b/docs/_static/tags_link.png deleted file mode 100644 index e65281ea87..0000000000 Binary files a/docs/_static/tags_link.png and /dev/null differ diff --git a/docs/_static/tags_tab.png b/docs/_static/tags_tab.png deleted file mode 100644 index 822a61d467..0000000000 Binary files a/docs/_static/tags_tab.png and /dev/null differ diff --git a/docs/_static/themes.png b/docs/_static/themes.png deleted file mode 100644 index 47ef20d00d..0000000000 Binary files a/docs/_static/themes.png and /dev/null differ diff --git a/docs/_static/tools_tab.png b/docs/_static/tools_tab.png deleted file mode 100644 index 3b2392bfd8..0000000000 Binary files a/docs/_static/tools_tab.png and /dev/null differ diff --git a/docs/_static/tree_template_link.png b/docs/_static/tree_template_link.png deleted file mode 100644 index 55e9709166..0000000000 Binary files a/docs/_static/tree_template_link.png and /dev/null differ diff --git a/docs/_static/versioning.png b/docs/_static/versioning.png deleted file mode 100644 index 6ec2f24d86..0000000000 Binary files a/docs/_static/versioning.png and /dev/null differ diff --git a/docs/_static/web_form_source_tab.png b/docs/_static/web_form_source_tab.png deleted file mode 100644 index f0b51d97be..0000000000 Binary files a/docs/_static/web_form_source_tab.png and /dev/null differ diff --git a/docs/contents.rst b/docs/contents.rst index b9b9e27203..d8cfcbbc36 100644 --- a/docs/contents.rst +++ b/docs/contents.rst @@ -1,8 +1,8 @@ .. _contents: -================================= -Mayan EDMS documentation contents -================================= +======== +Contents +======== .. toctree:: :hidden: @@ -12,8 +12,5 @@ Mayan EDMS documentation contents .. toctree:: :maxdepth: 3 - intro/index topics/index - credits/index releases/index - faq/index diff --git a/docs/credits/contributors.rst b/docs/credits/contributors.rst deleted file mode 100644 index b829c91b4d..0000000000 --- a/docs/credits/contributors.rst +++ /dev/null @@ -1,92 +0,0 @@ -.. _contributors: - -============ -Contributors -============ - - -How to contribute? ------------------- - -You can help further the development of **Mayan EDMS** by reporting bugs, submitting documentation, patches, with monetary or hardware donations. - -Lead developer --------------- -* Roberto Rosario (roberto.rosario@mayan-edms.com) - -Contributors (in alphabetical order) ------------------------------------- -* Aziz M. Bookwala (https://github.com/azizmb) -* Bertrand Bordage (https://github.com/BertrandBordage) -* Brian E (brian@realize.org) -* David Herring (https://github.com/abadger1406) -* Emlyn Clay (https://github.com/EmlynC) -* Jens Kadenbach (https://github.com/audax) -* Kolmar Kafran -* IHLeanne (https://github.com/IHLeanne) -* Iliya Georgiev (ikgeorgiev@gmail.com) -* Lars Kruse (devel@sumpfralle.de) -* Mathias Behrle -* Meurig Freeman (https://github.com/meurig) -* Nate Aune (nate@appsembler.com) -* Paul Whipp [https://github.com/pwhipp] [http://paulwhippconsulting.com] -* Rafael Esparra -* Sergey Glita (s.v.glita@gmail.com) -* Simone Federici [https://twitter.com/aldaranalton] [https://github.com/simone] -* Webfaction (https://www.webfaction.com) - -Translations ------------- -* Bulgarian - - - Iliya Georgiev (ikgeorgiev@gmail.com) - - Pavlin Koldamov (pkoldamov@gmail.com) - -* Dutch (Netherlands) - - - Lucas Weel - -* French - - - Pierre Lhoste (peter.cathbad.host@gmail.com) - - PatrickHetu (patrick.hetu@gmail.com) - -* German (Germany) - - - Tetja Rediske (tetja.rediske@googlemail.com) - - Tilmann Sittig (tilmann.sittig@web.de) - - Manticor (sl@suchreflex.de) - - Mathias Behrle - - Tobias Paepke - -* Italian - - - Pierpaolo Baldan (pierpaolo.baldan@gmail.com) - - SeeOpen.IT (Numero Verde: 800.910.125, E-mail: sales@seeopen.it) - - Carlo Zanatto - -* Polish - - - mic (diveaway12@gmail.com, winterfall24@gmail.com) - -* Portuguese - - - Vítor Figueiró (vfigueiro@gmail.com) - -* Portuguese (Brazil) - - - Emerson Soares (dev.emerson@gmail.com) - - Renata Oliveira (renatabels@gmail.com) - - Fábio (bnafta@gmail.com) - -* Russian - - - Sergey Glita (s.v.glita@gmail.com) - -* Slovenian (Slovenia) - - - kontrabant (kontrabant@gmail.com) - -* Spanish - - - Roberto Rosario diff --git a/docs/credits/index.rst b/docs/credits/index.rst deleted file mode 100644 index e204701957..0000000000 --- a/docs/credits/index.rst +++ /dev/null @@ -1,11 +0,0 @@ -Credits -======= - -Here we list everything and everybody that has made his/her/its part in improving -**Mayan EDMS** - -.. toctree:: - :maxdepth: 1 - - contributors - license diff --git a/docs/figure_src/ACL.svg b/docs/figure_src/ACL.svg deleted file mode 100644 index f0d4c66162..0000000000 --- a/docs/figure_src/ACL.svg +++ /dev/null @@ -1,594 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - Roles - Groups - Users - Users - Groups - Users - Permissions - Documents - Tags - Folders - Tier 1: Actor - Tier 2: Access - Tier 3: Object - - - diff --git a/docs/figure_src/index_instance.svg b/docs/figure_src/index_instance.svg deleted file mode 100644 index 938d7edccf..0000000000 --- a/docs/figure_src/index_instance.svg +++ /dev/null @@ -1,724 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - due_data = '1/1/2012'supplier = 'ABC inc' - due_date = '2/1/2012'supplier = 'Z inc' - Documents - Sample index - 'Due dates' - '1/1/2012' - Document A - Document B - '2/1/2012' - Document A - Document B - 'Suppliers' - 'ABC inc' - 'Z inc' - Document A - Document B - - due_date = '1/1/2012'supplier = 'Z inc' - Document C - - Document C - - Document C - Index (generated) - - - - - - - - - - - - - - - - - - - - - - - Sample index - 'Due dates' - metadata.due_date - 'Suppliers' - metadata.supplier - Index template - - - - - - - - - - - diff --git a/docs/figure_src/index_template.svg b/docs/figure_src/index_template.svg deleted file mode 100644 index 9a586b74db..0000000000 --- a/docs/figure_src/index_template.svg +++ /dev/null @@ -1,204 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - Sample index - 'Due dates' - metadata.due_date - 'Suppliers' - metadata.supplier - Index template - - - - - - diff --git a/docs/figure_src/indexes.svg b/docs/figure_src/indexes.svg deleted file mode 100644 index f08d8ab0fd..0000000000 --- a/docs/figure_src/indexes.svg +++ /dev/null @@ -1,513 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - Database - Index templates - Documents - Generated indexes - Disk - Directory tree(that mirrors an index) - - - - File servingsoftware - - Mayan EDMS server or cluster - - Clients - Networks attached drivers - - - - - - - - - Continuous synchonizationof generated indexes anddirectory tree - Document usage with existing software - Users don't needto learn new software - - - diff --git a/docs/figure_src/permissions.svg b/docs/figure_src/permissions.svg deleted file mode 100644 index 3588418dfd..0000000000 --- a/docs/figure_src/permissions.svg +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - Users - Users - Groups - Roles - Permissions - Tier 1: Actor - Tier 2: Access - - - diff --git a/docs/figure_src/versioning.svg b/docs/figure_src/versioning.svg deleted file mode 100644 index e1f16f0618..0000000000 --- a/docs/figure_src/versioning.svg +++ /dev/null @@ -1,214 +0,0 @@ - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - Original version: 1.0.0 - - New major version: 2.0.0 - - New minor version: 1.1.0 - - New micro version: 1.0.1 - - - - diff --git a/docs/index.rst b/docs/index.rst index 6f75e0008b..9b96592c59 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -4,77 +4,57 @@ Mayan EDMS documentation ======================== -.. rubric:: `Open source`_, Django_ based document manager with custom - metadata_ indexing_, file serving integration, `checking out and in`_, OCR_ capabilities, - document versioning_ and `digital signature verification`_. - -.. _Django: http://www.djangoproject.com/ -.. _OCR: https://secure.wikimedia.org/wikipedia/en/wiki/Optical_character_recognition -.. _digital signature verification: http://en.wikipedia.org/wiki/Digital_signature -.. _versioning: http://en.wikipedia.org/wiki/Versioning -.. _metadata: http://en.wikipedia.org/wiki/Metadata -.. _indexing: http://en.wikipedia.org/wiki/Index_card -.. _Open source: http://en.wikipedia.org/wiki/Open_source -.. _checking out and in: http://en.wikipedia.org/wiki/Revision_control +.. rubric:: `Open source`_ `document management system`_. Getting help ============ -* Try the :doc:`FAQ ` -- it's got answers to many common questions. - * Search for information in the `archives of the mayan-edms mailing list`_, or - `post a question`_. If you prefer news servers, use the gateway provided by Gname_. - + `post a question`_. If you prefer news servers, use the gateway provided by Gmane_. * Report bugs with **Mayan EDMS** using Github's `ticket tracker`_. +* Try the :doc:`FAQ ` -- it's got answers to many common questions. -.. _archives of the mayan-edms mailing list: http://groups.google.com/group/mayan-edms/ -.. _Gname: http://news.gmane.org/gmane.comp.python.django.mayan-edms -.. _post a question: http://groups.google.com/group/mayan-edms -.. _ticket tracker: https://github.com/mayan-edms/mayan-edms/issues First steps =========== - :doc:`Overview ` | - :doc:`Features ` | - :doc:`Requirements ` | - :doc:`Installation ` | - :doc:`Getting started ` + :doc:`Features ` | + :doc:`Installation ` | + :doc:`Getting started ` Understanding Mayan EDMS ======================== :doc:`File storage ` | - :doc:`Initial data loading ` | :doc:`Permission system ` | :doc:`Transformations ` | - :doc:`Document visualization ` | :doc:`Document versioning ` | :doc:`Document signatures ` | :doc:`Indexes ` | :doc:`Smart links ` | :doc:`Tags ` | - :doc:`OCR ` Release notes ============= + :doc:`Release notes and upgrading instructions ` -Customization and fine-tuning -============================== - - :doc:`Settings ` | :doc:`Customization ` - For developers ============== - :doc:`Development ` | :doc:`Documentation ` | :doc:`Translations ` + :doc:`Development ` Credits ======= - :doc:`Contributors ` | - :doc:`Licensing ` - + :doc:`Contributors ` | + :doc:`Licensing ` +.. _Django: http://www.djangoproject.com/ +.. _Gmane: http://news.gmane.org/gmane.comp.python.django.mayan-edms +.. _Open source: http://en.wikipedia.org/wiki/Open_source +.. _archives of the mayan-edms mailing list: http://groups.google.com/group/mayan-edms/ +.. _document management system: https://en.wikipedia.org/wiki/Document_management_system +.. _post a question: http://groups.google.com/group/mayan-edms +.. _ticket tracker: https://github.com/mayan-edms/mayan-edms/issues diff --git a/docs/intro/getting_started.rst b/docs/intro/getting_started.rst deleted file mode 100644 index c128430708..0000000000 --- a/docs/intro/getting_started.rst +++ /dev/null @@ -1,132 +0,0 @@ -=============== -Getting started -=============== - -This chapter will guide you through the initial steps needed to get **Mayan EDMS** -up and running after installation. - -The easy 2 step setup -===================== - -Document sources ----------------- -|Setup tab| |Right arrow| |Sources button| |Right arrow| |Web form tab| - -Before anything else you must define from where you will feed **Mayan EDMS** -documents for it to process and store. To do this first go to the ``Setup`` tab -then to the ``Sources`` button. To obtain the fastest working setup, create a -new source of type ``Web forms``. This source will open a browser file upload -dialog, hence the name ``Web forms``. Name it something simple like ``Local documents``, -choose an icon to visually identify this document if you so wish and select whether or not -compressed files uploaded from this source will be automatically decompressed and -their content treated as individual documents. - - -Quickly bootstraping your Mayan EDMS install --------------------------------------------- -|Setup tab| |Right arrow| |Bootstrap button| - -**Mayan EDMS** includes an app called ``Bootstrap``. This app stores -scripted configurations, that when executed will setup your installation of **Mayan EDMS**. -From there you can then fine tune this setup to your needs. To use this -app go to the ``Setup`` area and launch the app using the ``Bootstrap`` button. - -.. hint:: Predefined sample setups can be downloaded from the - `Official bootstrap setup repository for Mayan EDMS`_. If you want to use - one of the available setups for testing or as a starting point, choose one - and import it with ``Import from URL``. Finally execute it on an empty database. - -The longer custom setup -======================= - -Setting your document types ---------------------------- -|Setup tab| |Right arrow| |Document types button| - -If none of the available bootstrap setups fit your needs and your wish to -setup **Mayan EDMS** from scratch, the first thing to consider is what your document -types will be. Examples of document types are: ``Legal documents``, -``Internal documents``, ``Medical records``, ``Designing specifications``, ``Permits``. -A document type represents a group, a type, a class of documents which share some -common properties. A good indicator that can help you determine you document types -is what kind of information or ``metadata`` is attached to the documents. - - -Defining metadata ------------------ -|Setup tab| |Right arrow| |Metadata types button| - -With your document types defined it should be much easier now to define the required -``metadata`` for each of these document types. When creating ``metadata`` types, -the first thing that will be needed is the internal name with which this metadata -type will be referenced in other areas of **Mayan EDMS**. Internal name is like a -variable so it should not contain spaces or uppercase characters. After the internal name, -enter the name that will be visible to you and your users, this is usually the same as the -internal name but with proper capitalization and spacing. ``metadata`` types -can have default values to speed up data entry, default static values are enclosed in -quotes, ie:: - - "Building A" - -or:: - - "Storage room 1" - -Default values can also be defined as ``Python`` statements or functions such as:: - - current_date() - -If you want to restrict or standardize the values for a metadata type, use the ``Lookup`` field to -define the list of options that are allowed. Define the lookup list using a ``Python`` -list of quoted values, for example:: - - ["2000", "2001", "2002", "2003", "2004"]. - -Instead of a free entry text field, your users will get a dropdown list of years. -You can also use a ``Python`` expression to generate the lookup list. - -When you are uploading a new document, a choice of metadata types will be presented -and you choose which of those you wish to enter for the document you are about -to upload. To speed data entry you can also match which metadata types will -be preselected when uploading a document of a certain type. To match metadata types -to document types, go to the ``setup`` tab, ``document types`` button, and -lastly ``Default metadata``. Choose the desired metadata for the document type -currently selected and press ``Add``. From now on whenever you upload a document of -this type, the related metadata types for this document type will be preselected. - -After defining all your metadata types you can also define your indexes to -let **Mayan EDMS** automatically categorize your documents based on their metadata. -Refer to the chapter named :doc:`Indexes ` for examples on how to -use the document indexes. - - -.. |Setup tab| image:: /_static/setup_tab.png - :alt: Setup tab - :align: middle - -.. |Sources button| image:: /_static/sources_button.png - :alt: Sources button - :align: middle - -.. |Web form tab| image:: /_static/web_form_source_tab.png - :alt: Web form tab - :align: middle - -.. |Bootstrap button| image:: /_static/bootstrap_button.png - :alt: Bootstrap button - :align: middle - -.. |Right arrow| image:: /_static/arrow_right.png - :alt: Right arrow - :align: middle - -.. |Document types button| image:: /_static/document_types_button.png - :alt: Document types button - :align: middle - -.. |Metadata types button| image:: /_static/metadata_types_button.png - :alt: Metadata types button - :align: middle - -.. _DjangoZoom: http://djangozoom.com/ -.. _`Official bootstrap setup repository for Mayan EDMS`: http://bootstrap.mayan-edms.com/ diff --git a/docs/intro/index.rst b/docs/intro/index.rst deleted file mode 100644 index 05987c3813..0000000000 --- a/docs/intro/index.rst +++ /dev/null @@ -1,13 +0,0 @@ -Getting started -=============== - -New to **Mayan EDMS**? Read this material to quickly get up and running. - -.. toctree:: - :maxdepth: 1 - - overview - features - requirements - installation - getting_started diff --git a/docs/intro/overview.rst b/docs/intro/overview.rst deleted file mode 100644 index 70d78e73ea..0000000000 --- a/docs/intro/overview.rst +++ /dev/null @@ -1,18 +0,0 @@ -==================== -History and overview -==================== - -**Mayan EDMS** started as a simple project whose only requirement was the storage of PDF files, from there it has grown into a complete electronic document management solution. -**Mayan EDMS** can optimize an organization's bulk upload, storage and retrieval of documents. -Documents are organized using document classes, user defined metadata fields as well as automatic document grouping and indexing. Documents can be retrieved from the document index or by means of full -text searching. Users can search for terms in the document's metadata, properties or contents extracted from PDFs or transcribed by OCR_. - -**Mayan EDMS** is written in Python_ using the Django_ framework, which makes it very agile and fast, specially when compared with existing Java based solutions. -Being based on patent free, `Open source`_ technologies, **Mayan EDMS** provides legal safety to users and organizations, as well as peace of mind as documents and all related information is stored in open source and transparent formats allowing portability and avoiding `vendor lock-in`_. -Being written using Python_, **Mayan EDMS** runs on many POSIX compliant operating systems. Featuring many configuration parameters, **Mayan EDMS** allows to be deployed on many hardware and software configurations such as single server based, clusters, virtualized and cloud based hosting giving adopters the choice of using the infrastructure of their choice. - -.. _`vendor lock-in`: https://secure.wikimedia.org/wikipedia/en/wiki/Vendor_lock-in -.. _Python: http://www.python.org/ -.. _Django: http://www.djangoproject.com/ -.. _OCR: https://secure.wikimedia.org/wikipedia/en/wiki/Optical_character_recognition -.. _`Open source`: https://secure.wikimedia.org/wikipedia/en/wiki/Open_source diff --git a/docs/intro/requirements.rst b/docs/intro/requirements.rst deleted file mode 100644 index 39a516bba4..0000000000 --- a/docs/intro/requirements.rst +++ /dev/null @@ -1,50 +0,0 @@ -============ -Requirements -============ -**Mayan EDMS** supports various levels of functionality, because of this -requirements can vary for each individual deployment. - -Basic requirements -================== - -Python: - -* ``Django`` - A high-level Python Web framework that encourages rapid development and clean, pragmatic design. - -Execute pip install -r requirements/production.txt to install the python/django dependencies automatically. - -Executables: - -* ``gpg`` - The GNU Privacy Guard - -Optional requirements -===================== - -Improved OCR ------------- - -* ``unpaper`` - post-processing scanned and photocopied book pages - -Enhanced MIME detection ------------------------- - -* ``libmagic`` - MIME detection library, if not installed **Mayan EDMS** will fall back to using python's simpler mimetype built in library -* ``python-magic`` - A python wrapper for libmagic - - -OCR backends ------------- -** Mayan EDMS** can make use of different OCR engines via OCR backends. By default it will use the ``Tesseract OCR backend``. - -* ``tesseract-ocr`` - An OCR Engine that was developed at HP Labs between 1985 and 1995... and now at Google. Version 3.x or greater required. - - -Image conversion backends -------------------------- -**Mayan EDMS** has the ability to switch between different image conversion backends, at the moment these three are supported: - -* ``ImageMagick`` - Convert, Edit, Or Compose Bitmap Images. -* ``GraphicMagick`` - Robust collection of tools and libraries to read, write, and manipulate an image. -* Python only - Relies on ``Pillow`` to support a limited set of the most common graphics formats. - -By default the python backend is used. diff --git a/docs/releases/0.12.2.rst b/docs/releases/0.12.2.rst index 05335fa9b8..e8e4c83f35 100644 --- a/docs/releases/0.12.2.rst +++ b/docs/releases/0.12.2.rst @@ -16,7 +16,7 @@ check outs have been added too as per the feature request posted as `issue #26`_ The way the history events for a document are presented has been improved and it is now more useful as it provides filtering by event type. To improve the diagnosis of installation of runtime error a simple view showing the -number of internal interval jobs being used by Mayan EDMS as well as a +number of internal interval jobs being used by Mayan EDMS as well as a new app which shows a detail of the current installation enviroment were added. What's new in Mayan EDMS v0.12.2 @@ -35,9 +35,6 @@ created an administrator account of username 'admin' with a password of 'admin'. The new default is to randomize an initial password and show this password at the login screen until the administrator password is changed. -.. image:: mayan_first_login.png - :alt: First login dialog - Document check outs ~~~~~~~~~~~~~~~~~~~ As per the feature request filed under `issue #26`_, a new document @@ -47,7 +44,7 @@ editing conflicts. Document check outs have an expiration period after which **Mayan EDMS** will automatically check them back in to avoid a permanent document lockout. Only the user who has checked out a document can upload new versions of it or check the document back in before the expiration period, -unless being granted the ``Allow overriding check out restrictions`` or +unless being granted the ``Allow overriding check out restrictions`` or ``Forcefully check in documents`` permission respectively. Installation environment app @@ -109,7 +106,7 @@ Bugs fixed * `issue #26`_ "checkout feature request" Stuff removed -============= +============= * Feedback app diff --git a/docs/releases/1.0.rst b/docs/releases/1.0.rst index 0d24c6f76e..b927dde7e6 100644 --- a/docs/releases/1.0.rst +++ b/docs/releases/1.0.rst @@ -162,14 +162,14 @@ Next upgrade/add the new requirements:: Migrate existing database schema with:: - $ ./manage.py migrate acls 0001 --fake - $ ./manage.py migrate taggit 0001 --fake - $ ./manage.py migrate ocr 0001 --fake - $ ./manage.py migrate + $ mayan-edms.py migrate acls 0001 --fake + $ mayan-edms.py migrate taggit 0001 --fake + $ mayan-edms.py migrate ocr 0001 --fake + $ mayan-edms.py migrate Add new static media:: - $ ./manage.py collectstatic --noinput + $ mayan-edms.py collectstatic --noinput The upgrade procedure is now complete. diff --git a/docs/releases/1.1.rst b/docs/releases/1.1.rst new file mode 100644 index 0000000000..e537425934 --- /dev/null +++ b/docs/releases/1.1.rst @@ -0,0 +1,368 @@ +============================= +Mayan EDMS v1.1 release notes +============================= + +Released: February 10, 2015 + +Welcome to Mayan EDMS v1.1 + + +What's new in Mayan EDMS v1.1 +============================= + +Celery +~~~~~~ +All background tasks processing has been converted to use Celery_. By default +**Mayan EDMS** runs in "Eager" until a broker and result backend are configured +as per `Celery's documentation`_. This change made the built-in scheduler and +job_processing apps obsolete, both were removed. + + +Views namespaces +~~~~~~~~~~~~~~~~ +All views are namespaced_ with the name of the app which defines them. If you have +developed 3rd party apps for **Mayan EDMS** be sure to update any reference to a view +by prepending the app name to the view name. + + +Removal of the splash screen +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +The static image home screen has been replaced with a quick links view, showing +the most used actions: Uploading documents, viewing recent documents, viewing +all documents and searching documents. + + +Sending and receiving documents via email +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +A link or entire documents can be sent as attachments via email. Documents can +also be received via email with the addition of two document sources named IMAP and POP3 +which correspond to the mail protocol used to fetch the documents. Read Django's +`email configuration settings documentation`_ for more details on how to set up +mail serving. + + +Update to Django 1.6.8 +~~~~~~~~~~~~~~~~~~~~~~ +**Mayan EDMS** has been updated to use Django 1.6.8. + + +Events app +~~~~~~~~~~ +The built-in history app has been removed in favor of a new events wrapper app +for `Django activity stream`_ + + +Watch folders +~~~~~~~~~~~~~ +Filesystem folders can be monitored for change and their files automatically +uploaded as documents in **Mayan EDMS**. + + +Vagrant file included +~~~~~~~~~~~~~~~~~~~~~ +A vagrant file is now included to allow developers to provision a virtual machine +with the latest development version of **Mayan EDMS**. + + +User locale profile (language and timezone) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Interface language and locale setting can now be setup for each user and are not +installation wide as before. Date and times offsets are automatically ajusted to +each user's timezone settings. + + +Document states +~~~~~~~~~~~~~~~ +A new simple workflow app that can represent document states has been included. + + +Explicit document types needed per index +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Indexes can now be tied to document types, eliminating the need to update +indexes for every document update. Indexes will only update when a document of +the type to which they are associated is updated. + + +Optional and required metadata types +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Metadata types can now be assigned in two ways to documents types, as optional or +required. Values for required metadata types as the name implies, must be entered +for documents to be able to be uploaded. Optional metadata types on the other hand +can be left blank by the user. + + +Bulk document type change +~~~~~~~~~~~~~~~~~~~~~~~~~ +It is now possible to change the document type of previously uploaded documents. +When the document type of a document is changed the metadata values are reset and +the metadata types of the new document type are automatically assigned. + + +New release cycle +~~~~~~~~~~~~~~~~~ +Starting with this version a new release cycle methodology will come into effect. +The goal of this release cycle is to allow two series of versions of **Mayan EDMS** to be +active at a given time: A new major version with new functionality and a minor version +providing upgrades and fixes. This release (1.1) will be active and supported +during releases of versions 2.x, but will go into end-of-life as soon as +version 3.0 is released, at which time version series 2.x will go into +maintenance mode. + + +Deprecation of Python 2.6 +~~~~~~~~~~~~~~~~~~~~~~~~~ +Series 1.0 of **Mayan EDMS** will be the last series supporting Python 2.6. Series +2.0 will be using Django 1.7.x which itself requires Python 2.7 or later. + + +Improved testings +~~~~~~~~~~~~~~~~~ +**Mayan EDMS** is now automatically tested against SQLite, MySQL and PostgreSQL. + + +API updates +~~~~~~~~~~~ +Many new API endpoints have been added exposing the majority of **Mayan EDMS** functionality. + + +Messages contextual improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Many updates and simplifications were made to the source text messages to reduce the +difficulty of translating **Mayan EDMS** and maintaing the contextual meaning of the +text messages. + +Improved method for custom settings +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Custom settings now use a string based value, it is longer needed to import +classes when customizing a setting:: + + from custom_app.backends import CustomStorageBackend + DOCUMENTS_STORAGE_BACKEND = CustomStorageBackend + +Instead the fully qualified name of the class must be passed as the setting value:: + + DOCUMENTS_STORAGE_BACKEND = 'custom_app.backends.CustomStorageBackend' + + +Removal of the OCR config setting +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +OCR behavior is now a document type property meaning that is can be turned +on or off for specific document types. + + +Per document language setting +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Previously the document language used for OCR was specified for the entire +installation. If documents in multiple languages were uploaded some suffered +lower successes rates. Now the language of each document can be specified. + + +Metadata validation and parsing support +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +It is now possible to create function to validate metadata value input or +parse and store corrected values. Three sample metadata validations functions +are included: ``Parse date and time``, ``Parse date`` and ``Parse time``. + + +Removal of 960 grid system in favor Pure CSS's grid system +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +By using Pure CSS's columns based grid system, the move towards a +Bootstrap UI migration has advanced greatly. + + +Simplified UI +~~~~~~~~~~~~~ +All user actions as well as the logout button as now under the user functions +section. + + +Stable PDF previews generation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +The way PDF were being generated has been improved greatly eliminating +spurious segmentation faults at the expense of a small speed penalty. + + +More technical documentation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Many new sub topics were added to the development section of the document +to allow developers to better understand the inner workings and philosophies +of **Mayan EDMS**. + + +Other changes +~~~~~~~~~~~~~ + +* Removal of the MAIN_SIDE_BAR_SEARCH setting +* Removal of THEMES and themes support +* Removal of VERBOSE_LOGIN setting +* Removal of graphics backend supported file format list view +* Removal of the MAIN_DISABLE_ICONS setting +* Removal of specialized Sentry support +* Removal of the MAIN_ENABLE_SCROLL_JS setting +* Remove hardcoded root (/) redirections +* Removal of APSCheduler as a requirement +* Removal of the scheduled jobs view +* Removal of the web_theme app +* Removal of the sources icon selection support +* Removal of the in-app help panels +* Removal of the duplicate document search feature +* Removal of filesystem document indexes mirroring feature +* Improve sources app model sub classes and inheritance handling +* Addition of CORS support to the API + + +Upgrading from a previous version +================================= +IMPORTANT! Before running the upgrade make sure none of your documents have +duplicated metadata types, meaning that the same metadata type must not appear +twice for any given document. + +If you installed Mayan EDMS by cloning the Git repository issue the commands:: + + $ git reset --hard HEAD + $ git pull + +otherwise download the compressed archived and uncompress it overriding the existing installation. + +Next upgrade/add the new requirements:: + + $ pip install --upgrade -r requirements.txt + +Migrate existing database schema with:: + + $ mayan-edms.py migrate dynamic_search 0001 --fake + $ mayan-edms.py migrate history 0001 --fake + $ mayan-edms.py migrate linking 0001 --fake + $ mayan-edms.py migrate lock_manager 0001 --fake + $ mayan-edms.py migrate tags 0001 --fake + $ mayan-edms.py migrate + + +During the migration several messages of stale content types can occur: + +.. code-block:: bash + + The following content types are stale and need to be deleted: + + metadata | documenttypedefaults + metadata | metadataset + metadata | metadatasetitem + ocr | documentqueue + ocr | queuedocument + sources | watchfolder + sources | outofprocess + sources | webform + sources | stagingfolder + tags | tagproperties + + Any objects related to these content types by a foreign key will also + be deleted. Are you sure you want to delete these content types? + If you're unsure, answer 'no'. + + Type 'yes' to continue, or 'no' to cancel: + + +You can safely answer "yes". + +Add new static media:: + + $ mayan-edms.py collectstatic --noinput + +Remove unused dependencies:: + + $ pip uninstall APScheduler + $ pip uninstall django-taggit + + +The upgrade procedure is now complete. + + +Backward incompatible changes +============================= + +* None + + +Bugs fixed or issues closed +=========================== + +* `issue #30 `_ Document workflows +* `issue #32 `_ Watched folders +* `issue #34 `_ Postprocessing document queue +* `issue #35 `_ Metadata validation +* `issue #37 `_ Add from __future__ import unicode_literals +* `issue #39 `_ Capitalization of messages +* `issue #40 `_ Update references to root ('/') path +* `issue #46 `_ Advanced search past 1st page +* `issue #49 `_ Problems with large pdf files +* `issue #50 `_ raise CommandNotFound(path) +* `issue #51 `_ Search with ANONYMOUS error +* `issue #55 `_ Document approval cicle? +* `issue #56 `_ Removal of non essential features, views, models +* `issue #57 `_ Migrate to Celery for task query and periodic tasks +* `issue #64 `_ Pluralize messages properly +* `issue #65 `_ Backport the ability to receive documents via email +* `issue #66 `_ Python 3 compatibility: Add from __future__ import unicode_literals and remove all u'' +* `issue #68 `_ Revise and update the use gettext vs. gettext_lazy +* `issue #69 `_ Feature removal: remove "Unregistered" message from the title bar +* `issue #71 `_ Add retry support to the converter task +* `issue #72 `_ Delete unused static icons +* `issue #74 `_ Cache a document's first document version +* `issue #75 `_ Move automatic OCR queueing from a configuration settings to a property of Document Type model +* `issue #77 `_ Add document view permission support to the search app +* `issue #78 `_ COMMON_TEMPORARY_DIRECTORY seems not to be used everywhere +* `issue #79 `_ Error installing +* `issue #82 `_ Make document type a required field +* `issue #83 `_ Simplify source app views and navigation +* `issue #84 `_ Remove template context variable 'object_name' to improve translations +* `issue #85 `_ Reset page count for a single document +* `issue #86 `_ Move migrations to new 'south_migrations' folders +* `issue #87 `_ Per document language selection +* `issue #88 `_ Remove metadata type selection from the upload wizard +* `issue #89 `_ Allow metadata types to be required for specific document types +* `issue #90 `_ Remove the app_registry app +* `issue #91 `_ Don't preserve the ?page= URL query string value when switching sources during document upload +* `issue #92 `_ Make register_multi_item_links class aware +* `issue #95 `_ Installation error on Mac OSX; OSError: [Errno 2] No such file or directory +* `issue #96 `_ Remove hard code User model references +* `issue #97 `_ Make multi item links a drop down list +* `issue #104 `_ Finish polishing metadata validation patch +* `issue #105 `_ Tie smart links setups to document types +* `issue #106 `_ Convert document indexing app actions to Celery +* `issue #107 `_ Restrict document metadata addition and removal +* `issue #108 `_ New home screen +* `issue #109 `_ Add Roles API endpoints +* `issue #111 `_ Add Checkouts API endpoints +* `issue #112 `_ Add OCR API endpoints +* `issue #114 `_ Implement UI language as user preference +* `issue #116 `_ Add documentation topic explicitly noting the binary requirements +* `issue #118 `_ When a metadata type is removed from a document type, remove it from all the documents of that type +* `issue #119 `_ When a required metadata type is added to a document type, add it to all documents of that type +* `issue #126 `_ Failing migration with SQLite +* `issue #127 `_ Failing migration with Postgres +* `issue #128 `_ Add Indexes API endpoints +* `issue #129 `_ Search api shouldn't memorize requested page as part of the query +* `issue #130 `_ Users API is not working correctly +* `issue #131 `_ Is there an API to update a user's password? +* `issue #137 `_ Enhancement of language selection +* `issue #138 `_ Possibility to keep zoom factor +* `issue #139 `_ Translatability of language selection +* `issue #140 `_ Thumbnail creation for ods crashing +* `issue #143 `_ Exception Value: 'exceptions.ValueError' object has no attribute 'messages' +* `issue #144 `_ Behavior of 'Edit metadata' (Recent Documents) +* `issue #146 `_ Periodic task not initiated for mail boxes and watch folders +* `issue #149 `_ Attribute error in document download +* `issue #150 `_ Double second menu entry +* `issue #152 `_ Document content empty +* `issue #153 `_ south migration with postgres: documents: 031_remove_orphan_documents +* `issue #157 `_ upload new version of a document not working +* `issue #158 `_ Plural form not matching singular form in ocr app bug i18n + + +.. _Celery: http://www.celeryproject.org/ +.. _PyPI: https://pypi.python.org/pypi/mayan-edms/ +.. _Celery's documentation: http://celery.readthedocs.org/en/latest/configuration.html +.. _namespaced: https://docs.djangoproject.com/en/1.6/topics/http/urls/#url-namespaces +.. _email configuration settings documentation: https://docs.djangoproject.com/en/1.6/ref/settings/#email-host +.. _Django activity stream: https://github.com/justquick/django-activity-stream + diff --git a/docs/releases/index.rst b/docs/releases/index.rst index 3e6df7ea50..ab6283f588 100644 --- a/docs/releases/index.rst +++ b/docs/releases/index.rst @@ -17,6 +17,14 @@ Final releases Below are release notes through **Mayan EDMS** |version| and its minor releases. Newer versions of the documentation contain the release notes for any later releases. +1.1 release +----------- +.. toctree:: + :maxdepth: 1 + + 1.1 + + 1.0 release ----------- .. toctree:: diff --git a/docs/releases/mayan_first_login.png b/docs/releases/mayan_first_login.png deleted file mode 100644 index af31f23f80..0000000000 Binary files a/docs/releases/mayan_first_login.png and /dev/null differ diff --git a/docs/topics/contributors.rst b/docs/topics/contributors.rst new file mode 100644 index 0000000000..4dccce5123 --- /dev/null +++ b/docs/topics/contributors.rst @@ -0,0 +1,35 @@ +.. _contributors: + +============ +Contributors +============ + + +How to contribute? +------------------ + +You can help further the development of **Mayan EDMS** by testing, reporting bugs, submitting documentation or code patches. + +Lead developer +-------------- +* Roberto Rosario (roberto.rosario@mayan-edms.com) + +Contributors (in alphabetical order) +------------------------------------ +* Aziz M. Bookwala (https://github.com/azizmb) +* Bertrand Bordage (https://github.com/BertrandBordage) +* Brian E (brian@realize.org) +* David Herring (https://github.com/abadger1406) +* Jens Kadenbach (https://github.com/audax) +* Kolmar Kafran +* IHLeanne (https://github.com/IHLeanne) +* Iliya Georgiev (ikgeorgiev@gmail.com) +* Lars Kruse (devel@sumpfralle.de) +* Mathias Behrle +* Meurig Freeman (https://github.com/meurig) +* Nate Aune (nate@appsembler.com) +* Paul Whipp [https://github.com/pwhipp] [http://paulwhippconsulting.com] +* Rafael Esparra +* Sergey Glita (s.v.glita@gmail.com) +* Simone Federici [https://twitter.com/aldaranalton] [https://github.com/simone] +* Webfaction (https://www.webfaction.com) diff --git a/docs/topics/customization.rst b/docs/topics/customization.rst deleted file mode 100644 index 9598ccdd3a..0000000000 --- a/docs/topics/customization.rst +++ /dev/null @@ -1,49 +0,0 @@ -============= -Customization -============= - -The general appearance of **Mayan EDMS** can be customized entirely just -by changing a few settings. - ------- -Themes ------- -**Mayan EDMS** uses `Andrea Franz's excellent web app template`_, which includes -several themes that could be used to adapt **Mayan EDMS**'s appearance to match -an organtization existing applications' look and feel. - -The theme can be changed very easily by setting the :setting:`WEB_THEME_THEME` -configuration option to one of its valid values. - -.. image:: ../_static/themes.png - :alt: themes - ------------- -Login screen ------------- -The amount of information presented at the login screen can also be restricted -for security or design reasons using :setting:`WEB_THEME_VERBOSE_LOGIN` -configuration option. - -.. image:: ../_static/mayan-login.png - :alt: mayan login screen - ------------ -Home screen ------------ -Sometimes users just want to go directly to work and not just be greeted with -a home screen. For these kind of situations **Mayan EDMS** has the -:setting:`MAIN_DISABLE_HOME_VIEW` configuration option, which will cause -users to land on their ``recent document list`` as soon as they log in. - ------ -Icons ------ -Some themes such as ``default`` might be more visually appealing to some -people without the menu icons, for this **Mayan EDMS** provides the -:setting:`MAIN_DISABLE_ICONS` configuration option. - -.. image:: ../_static/no-icons.png - :alt: mayan screens with out icons - -.. _`Andrea Franz's excellent web app template`: https://github.com/pilu/web-app-theme diff --git a/docs/topics/development.rst b/docs/topics/development.rst index 4b239d3755..e7d7e6bb85 100644 --- a/docs/topics/development.rst +++ b/docs/topics/development.rst @@ -5,20 +5,263 @@ Development **Mayan EDMS** is under active development, and contributions are welcome. -If you have a feature request, suggestion, or bug reports, please open a new +If you have a feature request, suggestion or bug report, please open a new issue on the `GitHub issue tracker`_. To submit patches, please send a pull -request on GitHub_. Contributors are credited accordingly on the :ref:`contributors` section. - -Follow the coding conventions document available at: https://github.com/mayan-edms/mayan-edms/wiki/Coding-conventions +request on GitHub_. Make sure to add yourself to the :ref:`contributors` file. .. _GitHub: https://github.com/mayan-edms/mayan-edms/ .. _`GitHub issue tracker`: https://github.com/mayan-edms/mayan-edms/issues +Project philosophies +-------------------- + +How to think about **Mayan EDMS** when doing changes or adding new features, why things are the way they are in **Mayan EDMS**. + +- Functionality must be as market/sector independent as possible, code for the 95% of use cases. +- Each user must be able to configure and customize it to their needs after install. +- Abstract as much as possible, each app must be an expert in just one thing, for other things they should use the API/classes/functions of other apps. +- Assume as little as possible about anything outside the project (hardware, OS, storage). +- Provide Python based abstraction so that a default install runs with a single step. +- No hard dependencies on binaries unless there is no other choice. +- Provide “drivers” or switchable backends to allow users to fine tune the installation. +- Call to binaries only when there is no other choice or the Python choices are not viable/mature/efficient. +- Each app is as independent and self contained as possible. Exceptions, the basic requirements: navigation, permissions, common, main. +- If an app is meant to be used by more than one other app it should be as generic as possible in regard to the project and another app will bridge the functionality. + + - Example: the acls app is app agnostic, document_acls connects the acls app with the documents app. + - Example: since indexing (document_indexing) only applies to documents, the app is specialized and dependant on the documents app. + + +Coding conventions +------------------ + +Follow PEP8 +~~~~~~~~~~~ +Whenever possible, but don't obsess over things like line length. + +.. code-block:: bash + + $ flake8 --ignore=E501,E128,E122 |less + +Imports +~~~~~~~ + +Import order should be: + +- Standard Python modules +- Installed Python modules +- Core Django modules +- Installed Django modules +- Mayan EDMS modules +- Local imports + +Example: + +.. code-block:: bash + + from __future__ import absolute_import + + # Standard Python library + import base64 + + # 3rd party installed Python libraries + import requests + + # Django core modules + from django.db.models import Q + from django.template.defaultfilters import slugify + from django.utils.translation import ugettext + from django.utils.translation import ugettext_lazy as _ + + # 3rd party installed Django libraries + from rest_framework import APIView + + # Mayan apps + from metadata.classes import MetadataClass + + # Local app imports (relative) + from .conf.settings import ( + AVAILABLE_INDEXING_FUNCTIONS, + MAX_SUFFIX_COUNT, SLUGIFY_PATHS + ) + from .exceptions import MaxSuffixCountReached + from .filesystem import ( + fs_create_index_directory, fs_create_document_link, + fs_delete_document_link, fs_delete_index_directory, + assemble_suffixed_filename + ) + from .models import Index, IndexInstanceNode, DocumentRenameCount + +All local app module imports are in relative form, local app module name is to be referenced as little as possible, unless required by a specific feature, trick, restriction, ie: Runtime modification of the module's attributes. + +Incorrect: + +.. code-block:: bash + + + # documents app views.py model + from documents.models import Document + +Correct: + +.. code-block:: bash + + # documents app views.py model + from .models import Document + + +Dependencies +~~~~~~~~~~~~ +**Mayan EDMS** apps follow a hierarchical model of dependency. Apps import from their parents or siblings, never from their children. Think plugins. A parent app must never assume anything about a possible existing child app. The documents app and the Document model are the basic entities they must never import anything else. The common and main apps are the base apps. + + +Variables +~~~~~~~~~ +Naming of variables should follow a Major to Minor convention, usually including the purpose of the variable as the first piece of the name, using underscores as spaces. camelCase is not used in **Mayan EDMS**. + +Examples: + +Links: + +.. code-block:: bash + + link_document_page_transformation_list = ... + link_document_page_transformation_create = ... + link_document_page_transformation_edit = ... + link_document_page_transformation_delete = ... + +Constants: + +.. code-block:: bash + + PERMISSION_SMART_LINK_VIEW = ... + PERMISSION_SMART_LINK_CREATE = ... + PERMISSION_SMART_LINK_DELETE = ... + PERMISSION_SMART_LINK_EDIT = ... + +Classes: + +.. code-block:: bash + + class Document(models.Model): + class DocumentPage(models.Model): + class DocumentPageTransformation(models.Model): + class DocumentType(models.Model): + class DocumentTypeFilename(models.Model): + + +Strings +~~~~~~~ +Quotation character used in **Mayan EDMS** for strings is the single quote. Double quote is used for multiline comments or HTML markup. + + +General +~~~~~~~ + +Code should appear in their modules in alphabetic order or in their order of importance if it makes more sense for the specific application. +This makes visual scanning easier on modules with a large number of imports, views or classes. +Class methods that return a value should be prepended with a ``get_`` to differentiate from an object’s properties. +When a variable refers to a file it should be named as follows: + +- filename: The file’s name and extension only. +- filepath: The entire path to the file including the filename. +- path: A path to a directory. + +Flash messages should end with a period as applicable for the language. +Only exception is when the tail of the message contains an exceptions message as passed directly from the exception object. + +App anatomy +~~~~~~~~~~~ + +- __init__.py + + - Generic initialization code (should be empty if possible) + +- api.py + + - File to hold functions that are meant to be used by external apps. + - Interfaces meant to be used by other apps that are not models or classes. + +- classes.py + + - Hold python classes to be used internally or externally. + - Any class defined by the app that is not a model. + +- diagnostics.py + + - Define functions that will return the state of the data of an app. + - Does not fixes the problems only finds them. + +- events.py + + - Define history type events + +- exceptions.py + + - Exceptions defined by the app + +- icons.py + + - Defines the icons to be used by the links and views of the app. + - Imports from the icons app only. + +- links.py + + - Defines the links to be used by the app. + - Import only from the navigation app and the local icons.py file. + +- literals.py + + - Stores magic numbers, module choices (if static), settings defaults, and constants. + - Should contain all capital case variables. + - Must not import from any other module. + +- maintenance.py + + - Hold functions that the user may run periodically to fix errors in the app’s data. + +- permissions.py + + - Defines the permissions to be used by links and views to validate access. + - Imports only from permissions app. + - Link or view conditions such as testing for staff or super admin status are defined in the same file. + +- statistics.py + + - Provides functions that will computer any sort of statistical information on the app’s data. + +- tasks.py + + - Code to be execute as in the background or a as an process-of-process action. + +- utils.py + + - Hold utilitarian code that doesn't fit on any other app file or that is used by several files in the app. + - Anything used internally by the app that is not a class or a literal (should be as little as possible) + +Views behavior +~~~~~~~~~~~~~~ + +- Delete views: + + - Redirect to object list view if one object is deleted. + - Redirect to previous view if many are deleted. + - Previous view equals: + + - previous variable in POST or + - previous variable in GET or + - request.META.HTTP_REFERER or + - object list view or + - 'home' view + - fallback to ‘/’ + - if previous equal same view then previous should equal object list view or ‘/’ + + Source Control -------------- -**Mayan EDMS** source is controlled with Git_ +**Mayan EDMS** source is controlled with Git_. The project is publicly accessible, hosted and can be cloned from **GitHub** using:: @@ -36,11 +279,13 @@ Git branch structure Current production release (|version|). ``feature/`` Unfinished/unmerged feature. +``series/`` + Released versions. -Each release is tagged and available for download on the Downloads_ section of the **Mayan EDMS** repository on GitHub_ +Each release is tagged and available for download on the Downloads_ section of the **Mayan EDMS** repository on GitHub_. -When submitting patches, please place your feature/change in its own branch prior to opening a pull request on GitHub_. +When submitting patches, please place your code in its own ``feature/`` branch prior to opening a pull request on GitHub_. .. _Git: http://git-scm.org .. _`Successful Git Branching Model`: http://nvie.com/posts/a-successful-git-branching-model/ @@ -48,10 +293,64 @@ When submitting patches, please place your feature/change in its own branch prio .. _Downloads: https://github.com/mayan-edms/mayan-edms/archives/master +Steps to deploy a development version +------------------------------------- +.. code-block:: bash + + $ git clone https://github.com/mayan-edms/mayan-edms.git + $ cd mayan-edms + $ git checkout development + $ virtualenv venv + $ source venv/bin/activate + $ pip install -r requirements.txt + $ ./manage.py initialsetup + $ ./manage.py runserver + + +Setting up a development version using Vagrant +---------------------------------------------- +Make sure you have Vagrant and a provider properly installed as per https://docs.vagrantup.com/v2/installation/index.html + +Start and provision a machine using: + +.. code-block:: bash + + $ vagrant up + +To launch a standalone development server +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. code-block:: bash + + $ vagrant ssh + vagrant@vagrant-ubuntu-trusty-32:~$ cd ~/mayan-edms/ + vagrant@vagrant-ubuntu-trusty-32:~$ source venv/bin/activate + vagrant@vagrant-ubuntu-trusty-32:~$ ./manage.py runserver 0.0.0.0:8000 + +To launch a development server with a celery worker and Redis as broker +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. code-block:: bash + + $ vagrant ssh + vagrant@vagrant-ubuntu-trusty-32:~$ cd ~/mayan-edms/ + vagrant@vagrant-ubuntu-trusty-32:~$ source venv/bin/activate + vagrant@vagrant-ubuntu-trusty-32:~$ ./manage.py runserver 0.0.0.0:8000 --settings=mayan.settings.celery_redis + +Then on a separate console launch a celery worker from the same provisioned Vagrant machine: + +.. code-block:: bash + + $ vagrant ssh + vagrant@vagrant-ubuntu-trusty-32:~$ cd ~/mayan-edms/ + vagrant@vagrant-ubuntu-trusty-32:~$ source venv/bin/activate + vagrant@vagrant-ubuntu-trusty-32:~$ DJANGO_SETTINGS_MODULE='mayan.settings.celery_redis' celery -A mayan worker -l DEBUG -Q checkouts,mailing,uploads,converter,ocr,tools,indexing,metadata -Ofair -B + + Contributing changes -------------------- -Once your have create and committed some new code or feature, submit a Pull Request. -Be sure to merge with mayan-edms/master before doing a pull request so that patches +Once your have created and committed some new code or feature, submit a Pull Request. +Be sure to merge with mayan-edms/development before doing a pull request so that patches apply as cleanly as possible. If there are no conflicts, Pull Requests can be merged directly from Github otherwise a manual command line merge has to be done and your patches might take longer to get merged. @@ -94,6 +393,11 @@ lines to your ``settings_local.py`` file:: 'propagate': True, 'level':'DEBUG', }, + 'common': { + 'handlers':['console'], + 'propagate': True, + 'level':'DEBUG', + }, } } @@ -109,3 +413,81 @@ Likewise, to see the debug output of the ``tags`` app, just add the following in .. _`logging capabilities`: https://docs.djangoproject.com/en/dev/topics/logging + + +Documentation +------------- + +**Mayan EDMS**'s documentation is written in `reStructured Text`_ format. + +The documentation lives in the ``docs`` directory. In order to build it, you will first need to install Sphinx_. :: + + $ pip install sphinx + + +Then, to build an HTML version of the documentation, simply run the following from the **docs** directory:: + + $ make html + +Your ``docs/_build/html`` directory will then contain an HTML version of the documentation, ready for publication on most web servers. + +You can also generate the documentation in formats other than HTML. + +.. _`reStructured Text`: http://docutils.sourceforge.net/rst.html +.. _Sphinx: http://sphinx.pocoo.org + + +Translations +------------ + +Translations are handled online via the **Transifex** website: https://www.transifex.com/projects/p/mayan-edms/. +To create a translation team for a new language or contribute to an already +existing language translation, create a **Transifex** account and contact +the team coordinator of the respective language in which you are interested. + + +Installable package +------------------- + +Source file package +~~~~~~~~~~~~~~~~~~~ + +This is the sequence of step I use to produce an installable package: + +1. Make sure there are no lingering packages from previous attempts:: + + $ rm dist -R + +2. Generate the packaged version (will produce dist/mayan-edms-1.1.0.tar.gz):: + + $ python setup.py sdist + +3. Do a test install:: + + $ cd /tmp + $ virtualenv venv + $ source venv/bin/activate + $ pip install /dist/mayan-edms-1.1.0.tar.gz + $ mayan-edms.py initialsetup + $ mayan-edms.py runserver + + +Wheel package +~~~~~~~~~~~~~ + +1. Install wheel:: + + $ pip install wheel + +2. Create wheel package using the source file package (Until issue #99 of wheel is fixed: https://bitbucket.org/pypa/wheel/issue/99/cannot-exclude-directory):: + + $ pip wheel --no-index --no-deps --wheel-dir dist dist/mayan-edms-1.1.0.tar.gz + +3. Do a test install:: + + $ cd /tmp + $ virtualenv venv + $ source venv/bin/activate + $ pip install /dist/mayan_edms-1.1.0-py2-none-any.whl + $ mayan-edms.py initialsetup + $ mayan-edms.py runserver diff --git a/docs/topics/document_visualization.rst b/docs/topics/document_visualization.rst deleted file mode 100644 index 3deb63fe1b..0000000000 --- a/docs/topics/document_visualization.rst +++ /dev/null @@ -1,41 +0,0 @@ -====================== -Document visualization -====================== - - -The philosophy in place is to try to avoid having users download a documents and leave -**Mayan EDMS** to be able to see them, so in essence making **Mayan EDMS** a -visualization tool too. The conversion backend is a stack of functions, -first the mimetype is evaluated, if it is an office document it is passed -to LibreOffice_ working in headless mode (and managed by supervisor_) -for conversion to PDF_. The PDF_ is stored in a temporary -cache along side all the other files that were not office documents, -from here they are inspected to determine the page count and the -corresponding blank database entires are created. After the database -update they all go to the conversion driver specified by the configuration -option :setting:`CONVERTER_GRAPHICS_BACKEND` and a high resolution -master preview of each file is generated and stored in the persistent -cache. From the master previews in the persistent cache, volatile -previews are then created on demand for the different sizes requested -(thumbnail, page preview, full preview) and rotated interactively -in the details view. - -Office document conversion however won't always work as expected because -LibreOffice_ do not provide proper API's, so subprocess calling, -temporary files and other black magic needs to be invoked to get it -properly integrated. **Mayan EDMS** treats documents as collections of pages -or frames, and text extraction and OCR is done per page not per document, -thats why even text documents need to be rendered by LibreOffice_ -before they can be previewed and text can be extracted. - -Version 0.12.1 introduced a new method of converting office documents, this -new method doesn't require the use of the command line utility ``UNOCONV``. -This new method proved to continue working better than previous solution -and the use of ``UNOCONV`` have been removed. Existing conversion method -uses just one configuration option: :setting:`CONVERTER_LIBREOFFICE_PATH` -which defaults to '/usr/bin/libreoffice'. - - -.. _PDF: http://en.wikipedia.org/wiki/Portable_Document_Format -.. _LibreOffice: http://www.libreoffice.org/ -.. _supervisor: http://supervisord.org/introduction.html diff --git a/docs/topics/documentation.rst b/docs/topics/documentation.rst deleted file mode 100644 index 9c6af6e058..0000000000 --- a/docs/topics/documentation.rst +++ /dev/null @@ -1,21 +0,0 @@ -============= -Documentation -============= - -**Mayan EDMS**'s documentation is written in `reStructured Text`_ format. - -The documentation lives in the ``docs`` directory. In order to build it, you will first need to install Sphinx_. :: - - $ pip install sphinx - - -Then, to build an HTML version of the documentation, simply run the following from the **docs** directory:: - - $ make html - -Your ``docs/_build/html`` directory will then contain an HTML version of the documentation, ready for publication on most web servers. - -You can also generate the documentation in formats other than HTML. - -.. _`reStructured Text`: http://docutils.sourceforge.net/rst.html -.. _Sphinx: http://sphinx.pocoo.org diff --git a/docs/faq/index.rst b/docs/topics/faq.rst similarity index 89% rename from docs/faq/index.rst rename to docs/topics/faq.rst index 79cc8e98e6..d35da8698a 100644 --- a/docs/faq/index.rst +++ b/docs/topics/faq.rst @@ -4,15 +4,12 @@ FAQ Frequently asked questions and solutions -Database related ----------------- - **Q: PostgreSQL vs. MySQL** Since Django abstracts database operations from a functional point of view **Mayan EDMS** will behave exactly the same either way. The only concern would be that MySQL doesn't support transactions for schema modifying -commands. The only moment this could cause problems is when running +commands. The only moment this could cause problems is when running South migrations during upgrades, if a migration fails the database structure is left in a transitory state and has to be reverted manually before trying again. @@ -22,7 +19,7 @@ before trying again. * Solution:: - $ manage.py shell + $ mayan-edms.py shell >>> from django.db import connection >>> cursor = connection.cursor() @@ -49,8 +46,12 @@ When using ``MySQL`` and doing OCR on languages other than English - Ref: 2- http://markmail.org/message/bqajx2utvmtriixi -Document sharing ----------------- +**Q: Error "django.db.utils.IntegrityError IntegrityError: (1452, 'Cannot add or update a child row: a foreign key constraint fails (`...`.`...`, CONSTRAINT `..._refs_id_b0252274` FOREIGN KEY (`...`) REFERENCES `...` (`...`))')** + +* Solution: + + - Convert all MySQL tables to the same type, either all MyISAM or InnoDB + **Q: File system links not showing when serving content with ``Samba``** @@ -75,9 +76,6 @@ Document sharing - Ref: 1- http://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html -Document handling ------------------ - **Q: How do you upload a new version of an existing file?** * Solution: @@ -90,9 +88,6 @@ Document handling -Deployments ------------ - **Q: Is virtualenv required as specified in the documentation?** * It is not necessary, it's just a strong recommendation mainly to reduce @@ -110,7 +105,7 @@ Django's development server doesn't serve static files unless the ``DEBUG`` option is set to ``True``, this mode of operation should only be used for development or testing. For production deployments the management command:: - $ ./manage.py collectstatic + $ mayan-edms.py collectstatic should be used and the resulting ``static`` folder served from a webserver. For more information, read https://docs.djangoproject.com/en/dev/howto/static-files/ @@ -118,9 +113,6 @@ and https://docs.djangoproject.com/en/1.2/howto/static-files/ or http://mayan-edms-ru.blogspot.com/2011/11/blog-post_09.html -Other ------ - **Q: Can you change the display order of documents...i.e can they be in alphabetical order?** A the moment no, but it is something being considered. diff --git a/docs/intro/features.rst b/docs/topics/features.rst similarity index 58% rename from docs/intro/features.rst rename to docs/topics/features.rst index 10dddb4f70..fd459ce21f 100644 --- a/docs/intro/features.rst +++ b/docs/topics/features.rst @@ -14,37 +14,29 @@ Features * Collaboration tools. - * Discuss documents, comment on new version of a document. + * Discuss documents, or comment on new versions of a document. * Office document format support. - * Word processing files, spreadsheets, presentations are common supported formats. + * **Mayan EDMS** can detect the presence of Libre Office and use it to support word processing files, spreadsheets and presentations. -* User defined metadata fields and meta data sets. +* User defined metadata fields. + + * Several metadata fields can be matched to a document type as 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`_. - * Dynamic default values for metadata. - - * Metadata fields can have an initial value, which can be static or determined by an user provided Python code snippet. -* Filesystem integration. - - * If enabled, the document database index can be mirrored in the filesystem of the host and shared via Samba_ or any other sharing method to client computers on a network. - -* User defined document unique identifier and checksum algorithms. - - * Users can alter the default method used to uniquely indentify documents. + * Metadata fields can have an initial value, which can be static or determined by an user provided Python code snippet. * Documents can be uploaded from different sources. - * Local file or server side file uploads. + * Local file or server side file uploads, multifunctional copier, or even via email. * 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. * **Mayan EDMS** provides different file conversion backends with different levels of functionality and requirements to adapt to different deployment environments. @@ -53,7 +45,7 @@ Features * Documents can be searched by their text content, their metadata or any other file attribute such as name, extension, etc. * Configurable document grouping. - + * Automatic linking of documents based on metadata values or document properties. * :doc:`Roles support <../topics/permissions>`. @@ -68,37 +60,32 @@ Features * Multiple page PDFs and TIFFs files are supported. -* :doc:`Distributed OCR processing <../topics/ocr>`. +* Automatic OCR processing. * The task of transcribing text from documents via OCR can be distributed among several physical or virtual computers to decrease load and increase availability. -* Multilingual user interface (English, Spanish, Portuguese, Russian, Polish). +* Multilingual user interface. - * **Mayan EDMS** is written using the Django_ framework, which natively supports Unicode. Together with the use of text templates **Mayan EDMS** can be translated to practically any language spoken in the world. + * **Mayan EDMS** being written using the Django_ framework, can be translated to practically any language spoken in the world. For a list of translated languages have a look at Transifex_. -* :doc:`Multilingual OCR support <../topics/ocr>`. +* Multilingual OCR support. - * Multilingual OCR is provided as supported by the available language backends of the OCR engine tesseract. + * Current language of the document is passed to the corresponding OCR engine to increase the rate of data vs. recognition errors. -* Search of duplicates. +* :doc:`Plugable storage backends <../topics/file_storage>`. - * Duplicate documents can easily be searched. - -* :doc:`Plugable storage backends <../topics/file_storage>` (File based and GridFS included). - * Very easy to use 3rd party plugins such as the ones available for Amazon EC2. * Color coded tagging. * Labeled and color coded tags can be assigned for intuitive recognition. -* Staging folders to receive scanned documents directly from network attached scanners. +* Workflows. - * Preview scanned files even before uploading them. + * Keep track of the state a document, along with the log of the previous state changes. .. _`Dublin core`: http://dublincore.org/metadata-basics/ -.. _Samba: http://www.samba.org/ .. _Django: https://www.djangoproject.com/ .. _Transifex: https://www.transifex.com/projects/p/mayan-edms/ diff --git a/docs/topics/file_storage.rst b/docs/topics/file_storage.rst index 2c127ba238..514aef7141 100644 --- a/docs/topics/file_storage.rst +++ b/docs/topics/file_storage.rst @@ -3,24 +3,15 @@ File storage ============ The files are stored and placed under **Mayan EDMS** "control" to avoid -filename clashes (each file gets renamed to its UUID and with an extension) -and stored in a simple flat arrangement in a directory. This doesn't +filename clashes (each file gets renamed to its UUID and without extension) +and stored in a simple flat arrangement in a directory. This doesn't stop access to the files but it is not recommended because moving, renaming or updating the files directly would throw the database out -of sync. For direct access to the files the recommended way is to create an -:doc:`index `, use the indexing mirroring feature and share the result via -file serving software [#f1]_. +of sync. **Mayan EDMS** components are as decoupled from each other as possible, storage in this case is very decoupled and its behavior is controlled -not by the project but by the Storage progamming class. Why this design? +not by the project but by the Storage progamming class. Why this design? All the other parts don't make any assumptions about the actual file -storage, so that **Mayan EDMS** can work saving files locally, over the -network or even across the internet and still operate exactly the same. - -The file storage behavior is controlled by the :setting:`DOCUMENTS_STORAGE_BACKEND` -and should be set to a class or subclass of Django's ``django.core.files.storage.Storage`` class. - -.. rubric:: Footnotes - -.. [#f1] http://en.wikipedia.org/wiki/File_server +storage, files can be saved locally, over the network or even across the +internet and everything will still operate exactly the same. diff --git a/docs/topics/getting_started.rst b/docs/topics/getting_started.rst new file mode 100644 index 0000000000..5f59ffc136 --- /dev/null +++ b/docs/topics/getting_started.rst @@ -0,0 +1,85 @@ +=============== +Getting started +=============== + +Before starting to use **Mayan EDMS**, two things need to be configured: + +- At least one document source +- At least one document type + +Document sources +---------------- + +Document sources define from where documents will be uploaded or gathered. +To add a document source go to the ``Setup`` section, then to the ``Sources`` section. +To obtain the fastest working setup, create a new source of type ``Web form``. +``Web forms`` are just HTML forms with a ``Browse`` button that will open the file upload +dialog when clicked. Name it something simple like ``Local documents`` and select whether or not +compressed files uploaded from this source will be automatically decompressed and +their content treated as individual documents. + +Document types +-------------- + +Examples of document types are: ``Legal documents``, ``Internal documents``, ``Medical records``, ``Designing specifications``, ``Permits``. +A document type represent a class of documents which share some common property. +A good indicator that can help you determine your document types is what kind of +information or ``metadata`` is attached to those documents. + +Once a document source and a document type have been created you have all the minimal +elements required to start uploading documents. + +Defining metadata +----------------- + +With your document types defined it should be much easier now to define the required +``metadata`` for each of these document types. When creating ``metadata`` types, +the first thing that will be needed is the internal name with which this metadata +type will be referenced in other areas of **Mayan EDMS**. The internal name must not +contain spaces or uppercase characters. After the internal name, enter the name that +will be visible to you and your users, which usually will be similar or the same as the +internal name, but with proper capitalization and spacing. The ``metadata types`` +can have default values to speed up data entry. They can be single number or a +words enclosed in quotes, ie:: + + "Building A" + +or:: + + "Storage room 1" + +Default values can also be defined as ``Python`` statements or functions such as:: + + current_date() + +If you want to restrict or standardize the values for a metadata type, use the ``Lookup`` field to +define the list of options that are allowed. Define the lookup list using a ``Python`` +list of quoted values, for example:: + + ["2000", "2001", "2002", "2003", "2004"]. + +Instead of a free entry text field, your users will get a dropdown list of years, +this will ensure an unified data entry formatting. You can also use a +``Python`` expression to generate the lookup list. + +Metadata types can be assigned in two ways to a document type, by making it an +optional or a required metadata type for a specific document. This method +allows metadata very important for some types of documents (like Invoice +numbers to Invoices) to be required for an Invoice to be able to be uploaded. +Accordingly optional metadata types will be presented, but users are not required to +enter a value to be able to upload a document. + +Indexes +------- + +After defining all your metadata types you can also define indexes to +let **Mayan EDMS** automatically categorize your documents based on their metadata values. +To create an index to organize invoices by a year metadata field do the following: + +- Create a year metadata type with the name ``year`` and the label ``Year``. +- Create an invoice document type and assign it the ``year`` metadata type as a required metadata type. +- Create a new index, give it the name ``invoices_per_year`` and the label ``Invoices per year``. +- Edit the index's ``Tree template``, add a ``New child node``, and enter ``document.metadata_value_of.year`` as the ``Indexing expression``, check the ``Link documents`` checkbox and save. +- Link this new index to the invoice document type using the ``Document types`` button of the index. + +Now every time a new invoice upload or an existing invoice's ``year`` metadata value is changed, a new folder will be created in the ``Invoices`` index with the corresponding invoices for that year. diff --git a/docs/topics/index.rst b/docs/topics/index.rst index a037c77892..0cae551fbc 100644 --- a/docs/topics/index.rst +++ b/docs/topics/index.rst @@ -6,19 +6,18 @@ Introductions to all the key parts of Mayan EDMS you'll need to know: .. toctree:: :maxdepth: 1 + contributors + development + faq + features file_storage - initial_import - permissions - transformations - document_visualization - versioning - signatures + getting_started indexes + installation + license + permissions + signatures smart_links tags - ocr - settings - customization - development - documentation - translations + transformations + versioning diff --git a/docs/topics/indexes.rst b/docs/topics/indexes.rst index a1c6bd66c9..8690190722 100644 --- a/docs/topics/indexes.rst +++ b/docs/topics/indexes.rst @@ -1,11 +1,8 @@ ======= Indexes ======= -To configure: |Setup tab| |Right arrow| |Indexes button| |Right arrow| |Tree template link| -To use: |Index tab| - -Indexes are an automatic method to hierarchically organize documents in relation to their metadata and to each other. +Indexes are an automatic method to hierarchically organize documents in relation to their properties. Index templates =============== @@ -14,10 +11,7 @@ Since multiple indexes can be defined, the first step is to create an empty inde Administrators then define the tree template showing how the index will be structured. Each branch can be a pseudo folder, which can hold other child 'folders' or a document container which will have all the links to the documents that -matched the path to reach the document container. - -.. image:: ../_static/index_template.png - :alt: index template +matched the criteria of the document container. Index instances =============== @@ -26,57 +20,3 @@ The template is the skeleton from which an instance of the index is then auto-populated with links to the documents depending on the rules of each branch of the index evaluated against the metadata and properties of the documents. -.. image:: ../_static/index_instance.png - :alt: index instance - -Index serving -============= - -Indexes can be mirrored to the operating system filesystem -using the configuration option -:setting:`DOCUMENT_INDEXING_FILESYSTEM_SERVING`. - -``settings_local.py``:: - - # Supposing the 'Sample index' internal name is 'sample_index' - DOCUMENT_INDEXING_FILESYSTEM_SERVING = { - 'sample_index': '/var/local/document/sharing/invoices/', - } - -This creates an actual directory tree and links to the actual stored files but using -the filename of the documents as stored in the database. - -.. image:: ../_static/indexes.png - :alt: indexes diagram - -This filesystem mirror of the index can them be served with Samba_ across the -network. This access would be read-only, with new versions of the files -being uploaded from the web GUI using the document versioning support. - -The index cannot be edited manually to protect it's integrity, only changing -the rules or the metadata of the documents would cause the index to be -regenerated. For manual organization of documents there are the folders, -their structure is however flat, and they have to be manually updated and -curated. - -.. _Samba: http://www.samba.org/ - -.. |Setup tab| image:: /_static/setup_tab.png - :alt: Setup tab - :align: middle - -.. |Right arrow| image:: /_static/arrow_right.png - :alt: Right arrow - :align: middle - -.. |Indexes button| image:: /_static/indexes_button.png - :alt: Indexes button - :align: middle - -.. |Tree template link| image:: /_static/tree_template_link.png - :alt: Tree template link - :align: middle - -.. |Index tab| image:: /_static/index_tab.png - :alt: Index tab - :align: middle diff --git a/docs/topics/initial_import.rst b/docs/topics/initial_import.rst deleted file mode 100644 index 55a15e33f8..0000000000 --- a/docs/topics/initial_import.rst +++ /dev/null @@ -1,48 +0,0 @@ -==================== -Initial data loading -==================== - -Bulk document import --------------------- - -**Mayan EDMS** has the ability to individually upload the contents of compressed -files, however by nature of being a web based application it is bounded by the -limitations of the HTTP protocol. This imposes a limit on the file size and -the amount of time **Mayan EDMS** may keep a connection open while it processes -compressed files. When the desired amount of documents is bigger than what -these limitations allow, **Mayan EDMS** provides a command line tool for out of -process document importation. - -The command line options for this feature are as follows:: - - $ ./manage.py bulk_upload --noinput --metadata '{"project": "bulk"}' --document_type "Accounting documents" compressed.zip - -**Optional arguments** - -* The ``--noinput`` argument skips confirmation and starts the upload immediately. -* The ``--metadata`` argument allows specifing what metadata will be assigned - to the documents when uploaded. -* And the ``--document_type`` applies a previously defined - document type to the uploaded documents. - - -Bulk user import ----------------- - -As well as providing bulk document import functionality **Mayan EDMS** also -includes a management command to import a large number of users -from a CSV file. The command line options for this feature are as -follow:: - - $ ./manage.py import_users --noinput --password=welcome123 --skip-repeated user_list.csv - -The CSV field order must be: username, first name, last name and email, any columns after -those are ignored. - -**Optional arguments** - -* The ``--noinput`` argument skips confirmation and starts the import immediately. -* The ``--password`` argument allows specifing what default password will be assigned - to all the new users that are imported. -* The ``--skip-repeated`` tells the importer to not stop when finding - that a user already exists in the database. diff --git a/docs/intro/installation.rst b/docs/topics/installation.rst similarity index 81% rename from docs/intro/installation.rst rename to docs/topics/installation.rst index 92fd1484e5..0a43c02cf4 100644 --- a/docs/intro/installation.rst +++ b/docs/topics/installation.rst @@ -2,18 +2,20 @@ Installation ============ -Ubuntu, Debian or Fedora server -------------------------------- - **Mayan EDMS** should be deployed like any other Django_ project and preferably using virtualenv_. +Being a Django_ and a Python_ project familiarity with these technologies is +required to understand why **Mayan EDMS** does some of the things it does the way +it does them. + +Before installing **Mayan EDMS**, the binary requirements must be installed first. + +Ubuntu +------ + If using a Debian_ or Ubuntu_ based Linux distribution getting the executable requirements is as easy as:: - $ sudo apt-get install python-dev gcc tesseract-ocr unpaper python-virtualenv ghostscript libjpeg-dev libpng-dev poppler-utils -y - -If using a Fedora_ based Linux distribution get the executable requirements using Yum:: - - $ sudo yum install -y git gcc tesseract unpaper python-virtualenv ghostscript libjpeg-turbo-devel libpng-devel poppler-util python-devel + $ sudo apt-get install libjpeg-dev libmagic1 libpng-dev libreoffice libtiff-dev gcc ghostscript gpgv python-dev python-virtualenv tesseract-ocr unpaper poppler-utils -y Initialize a ``virtualenv`` to deploy the project: @@ -69,7 +71,7 @@ to /usr/bin/ with ... sudo ln -s /opt/local/bin/tesseract /usr/bin/tesseract && \ sudo ln -s /opt/local/bin/identify /usr/bin/identify && \ sudo ln -s /opt/local/bin/gs /usr/bin/gs - + ... alternatively set the paths in the ``settings/locals.py`` .. code-block:: python @@ -104,7 +106,7 @@ to /usr/bin/ with ... sudo ln -s /usr/local/bin/unpaper /usr/bin/unpaper && \ sudo ln -s /usr/local/bin/pdftotext /usr/bin/pdftotext && \ sudo ln -s /usr/local/bin/gs /usr/bin/gs && \ - + ... alternatively set the paths in the ``settings/locals.py`` .. code-block:: python @@ -122,25 +124,24 @@ Production use To create a custom settings file for **Mayan EDMS**, create a Python (.py) file in the directory: venv/lib/python2.7/site-packages/mayan/settings/ with the following basic content:: - # my_settings.py + # venv/lib/python2.7/site-packages/mayan/settings/my_settings.py - from __future__ import absolute_import + from __future__ import unicode_literals - from .local import * + from . import * To test your settings launch **Mayan EDMS** using:: - $ mayan-edms runserver --settings=mayan.settings.my_settings + $ mayan-edms.py runserver --settings=mayan.settings.my_settings After making sure everything is running correctly, stop the runserver command. Deploy **Mayan EDMS** using the webserver of your preference. For more information -on deployment instructions and examples checkout Django's official documentation +on deployment instructions and examples, checkout Django's official documentation on the topic https://docs.djangoproject.com/en/1.6/howto/deployment/ - Other database managers ----------------------- @@ -149,16 +150,10 @@ corresponding python database drivers and add the corresponding database setting to your settings file (see above) as shown here: https://docs.djangoproject.com/en/1.6/ref/settings/#std:setting-DATABASES -.. _`vendor lock-in`: https://secure.wikimedia.org/wikipedia/en/wiki/Vendor_lock-in -.. _Python: http://www.python.org/ -.. _Django: http://www.djangoproject.com/ -.. _OCR: https://secure.wikimedia.org/wikipedia/en/wiki/Optical_character_recognition -.. _`Open source`: https://secure.wikimedia.org/wikipedia/en/wiki/Open_source -.. _Django: http://www.djangoproject.com/ -.. _Apache: https://www.apache.org/ .. _Debian: http://www.debian.org/ -.. _Ubuntu: http://www.ubuntu.com/ +.. _Django: http://www.djangoproject.com/ .. _Download: https://github.com/mayan-edms/mayan-edms/archives/master -.. _virtualenv: http://www.virtualenv.org/en/latest/index.html -.. _Fedora: http://fedoraproject.org/ +.. _Python: http://www.python.org/ .. _SQLite: https://www.sqlite.org/ +.. _Ubuntu: http://www.ubuntu.com/ +.. _virtualenv: http://www.virtualenv.org/en/latest/index.html diff --git a/docs/credits/license.rst b/docs/topics/license.rst similarity index 100% rename from docs/credits/license.rst rename to docs/topics/license.rst diff --git a/docs/topics/ocr.rst b/docs/topics/ocr.rst deleted file mode 100644 index afa7fe9f26..0000000000 --- a/docs/topics/ocr.rst +++ /dev/null @@ -1,34 +0,0 @@ -=== -OCR -=== -To use: |Tools tab| |Right arrow| |OCR button| - -Because OCR is an intensive operation, documents are queued for OCR for -later handling, the amount of documents processed in parallel is -controlled by the :setting:`OCR_NODE_CONCURRENT_EXECUTION` configuration -option. Ideally the machine serving **Mayan EDMS** should disable OCR -processing by settings this options to 0, with other machines or cloud -instances then connected to the same database doing the OCR processing. -The document is checked to see if there are text parsers available, is -no parser is available for that file type then the document is passed -to Tesseract_ page by page and the results stored per page, this is to -keep the page image in sync with the transcribed text. However when -viewing the document in the details tab all the pages text are -concatenated and shown to the user. All newly uploaded documents will be -queued automatically for OCR, if this is not desired setting the :setting:`OCR_AUTOMATIC_OCR` -option to ``False`` would stop this behavior. - - -.. _Tesseract: http://code.google.com/p/tesseract-ocr/ - -.. |Tools tab| image:: /_static/tools_tab.png - :alt: Tags tab - :align: middle - -.. |Right arrow| image:: /_static/arrow_right.png - :alt: Right arrow - :align: middle - -.. |OCR button| image:: /_static/ocr_button.png - :alt: OCR button - :align: middle diff --git a/docs/topics/permissions.rst b/docs/topics/permissions.rst index 1d5d2387f6..869718f484 100644 --- a/docs/topics/permissions.rst +++ b/docs/topics/permissions.rst @@ -2,64 +2,46 @@ Permissions =========== -**Mayan EDMS** provides very exact control over what activies users can -perform. This control is divided into two levels of operation: +**Mayan EDMS** provides finegrained control over which activities users can +perform. This control is divided into two levels of operation: 2 tier permissions assignement ============================== -This level of activity control works -by allowing roles that are composed of users and group, to be granted -a permission such that the holder of that permission can exercise it -throught the entire collection of objects (document, folders, tags, etc), -this method could be thought out as a global permission granting level. -Example: Roles being granted the ``Document view`` permission will be able to view -**all** documents in existance. - -.. image:: ../_static/permissions.png - :alt: 2-tier permission diagram - +This level of activity control works by allowing roles that are composed +of users or groups, to be granted a permission such that the holder of that +permission can exercise it throughout the entire collection of objects +(document, folders, tags, etc). This method could be thought out as a global +permission. 3 tier access control ===================== -When more control is desired over which objects -actors(user, groups and roles) can exercise an action this method should be -used. Under this level, actors are granted a -permission but only in relation to a selected object. Example: Granting user -``Joe`` the ``Document view`` access control for document ``Payroll``, -would allow him to view this document only. +When more control is desired over which objects actors +(user, groups and roles) can exercise an action, this method should be +used. Under this method, actors are granted a permission but only in relation +to a selected object. Example: Granting user +``Joe`` the ``Document view`` access control for document ``Payroll``, would +allow him to view this document only. -.. image:: ../_static/ACL.png - :alt: 3-tier access control diagram - -The permission system enforces inheritance by first checking if the user +The permission system enforces inheritance by first checking, if the user has a global permission, is a member of a group or a role that has a global -permission and if not then checks to see if that user, a group or role to +permission and if not, then checks to see if that user, a group or role to which he belongs, has been granted access to the specific object to which -he is desiring to perform a given action that requires a permission. -Only when these checks fails the user -is forbidden to perform the action and a generic message indicating this is -displayed to avoid providing any information that could be used to sidetrack -the permission system or obtain any kind of information about the object -from which the user was not allowed access. +he is desiring to perform a given action. + +Only when these checks fail the user is forbidden to perform the action and +a generic message is displayed to avoid providing any information +that could be used to sidetrack the permission system or obtain any kind of +information about the object to which the user was not allowed access. Default Access Control Lists (Default ACLs) ------------------------------------------- -One of the specifics of the 3 tier access control in contrast with the 2 tier access control are so called Default Access Control Lists.They allow assigment to Users an access to a particular object - the class or instance of the class. The document ``Payroll`` is example of instance of class ``Documents``. A user can be granted with access to only one instance of the class ``Documents`` or to the whole class ``Documents``. And not only that but Default ACLs give the possibility to grant access to class before it is instantiated. It will be explained with the following example. +Default Access Control Lists allow assigment of an access control list to a +type of object (Document, Tags, Folders) before it is created. It is the default +permissions an object will have when it is created. With Default Access Control Lists +specific permissions can be granted to the creator of a document for example. -**Example 1.** Each user have to access only the documents that he uploads - -The example will show how to restrict a user in order not to view documents uploaded by other users, but only by himself. For that purpose we have to restrict the access to something that does not exist yet. The system must know that before the actual upload in order to act accordingly. This is where Default ACLs come in place. - -Follow the steps: - 1. Enter **Mayan EDMS** with user that has administrative rights. - 2. Go to Setup menu. Enter Default ACLs submenu. - 3. Click ``New holder`` next to the class Documents. From the list of users choose the special user Creator. Give the permission ``View Documents`` to the Creator. - 4. Go back to Setup menu. Go to Users and create the users ``Pedro`` and ``Sancho``. - 5. Go back to Setup menu. Go to Groups and create the group ``Employees``. Click to members of the groups and add ``Pedro`` and ``Sancho`` to that group. - 6. Go back to Setup menu. Go to Roles submenu. Create the role ``Uploaders``. Give the permission ``Create documents`` to the role. Add the group ``Employees`` as a member to that role. - 7. Now enter **Mayan EDMS** with ``Pedro`` and ``Sancho`` one after another and upload documents. Pedro should not see the documents that ``Sancho`` uploaded and vice versa. He should see only documents uploaded by himself. - -The above example will work only for documents that are uploaded after the activation of the restriction. It will not work for documents prior to the activation of the restriction. +Changes to the Default Access Control Lists (Default ACLs) only affect objects +created after the change, they will not affect documents previously uploaded. diff --git a/docs/topics/settings.rst b/docs/topics/settings.rst deleted file mode 100644 index a551b30def..0000000000 --- a/docs/topics/settings.rst +++ /dev/null @@ -1,545 +0,0 @@ -======== -Settings -======== - -**Mayan EDMS** has many configuration options that make it very adaptable to -different server configurations. - -Documents -========= - -.. setting:: DOCUMENTS_CHECKSUM_FUNCTION - -**DOCUMENTS_CHECKSUM_FUNCTION** - -Default: ``hashlib.sha256(x).hexdigest()`` - -The function that will be used to calculate the hash value of each uploaded document. - - -.. setting:: DOCUMENTS_UUID_FUNCTION - -**DOCUMENTS_UUID_FUNCTION** - -Default: ``unicode(uuid.uuid4())`` - -The function that will be used to internally identify each uploaded document. - - -.. setting:: DOCUMENTS_STORAGE_BACKEND - -**DOCUMENTS_STORAGE_BACKEND** - -Default: ``storages.backends.filebasedstorage.FileBasedStorage`` - -The full path to the storage backend class that will be used to store every document and document signatures. - - -.. setting:: DOCUMENTS_PREVIEW_SIZE - -**DOCUMENTS_PREVIEW_SIZE** - -Default: ``640x480`` - -Size of the document list and recent document list previews. - - -.. setting:: DOCUMENTS_PRINT_SIZE - -**DOCUMENTS_PRINT_SIZE** - -Default: ``1400`` - - -.. setting:: DOCUMENTS_MULTIPAGE_PREVIEW_SIZE - -**DOCUMENTS_MULTIPAGE_PREVIEW_SIZE** - -Default: ``160x120`` - - -.. setting:: DOCUMENTS_THUMBNAIL_SIZE - -**DOCUMENTS_THUMBNAIL_SIZE** - -Default: ``50x50`` - - -.. setting:: DOCUMENTS_DISPLAY_SIZE - -**DOCUMENTS_DISPLAY_SIZE** - -Default: ``1200`` - - -.. setting:: DOCUMENTS_RECENT_COUNT - -**DOCUMENTS_RECENT_COUNT** - -Default: ``40`` - -Maximum number of recent (created, edited, viewed) documents to -remember per user. - - -.. setting:: DOCUMENTS_ZOOM_PERCENT_STEP - -**DOCUMENTS_ZOOM_PERCENT_STEP** - -Default: ``50`` - -Amount in percent zoom in or out a document page per user interaction. - - -.. setting:: DOCUMENTS_ZOOM_MAX_LEVEL - -**DOCUMENTS_ZOOM_MAX_LEVEL** - -Default: ``200`` - -Maximum amount in percent (%) to allow user to zoom in a document page interactively. - - -.. setting:: DOCUMENTS_ZOOM_MIN_LEVEL - -**DOCUMENTS_ZOOM_MIN_LEVEL** - -Default: ``50`` - -Minimum amount in percent (%) to allow user to zoom out a document page interactively. - - -.. setting:: DOCUMENTS_ROTATION_STEP - -**DOCUMENTS_ROTATION_STEP** - -Default: ``90`` - -Amount in degrees to rotate a document page per user interaction. - - -.. setting:: DOCUMENTS_CACHE_PATH - -**DOCUMENTS_CACHE_PATH** - -Default: ``image_cache`` (inside the `media` folder) - -The path where the visual representations of the documents are stored for fast display. - - -Converter -========= -.. setting:: CONVERTER_GRAPHICS_BACKEND - -**CONVERTER_GRAPHICS_BACKEND** - -Default: ``converter.backends.python.Python`` - -Graphics conversion backend to use. Options are: - -* ``converter.backends.imagemagick.ImageMagick`` - Wrapper for ImageMagick - - * Use the :setting:`CONVERTER_IM_CONVERT_PATH` and :setting:`CONVERTER_IM_IDENTIFY_PATH` to specify the binary files locations. - -* ``converter.backends.graphicsmagick.GraphicsMagick`` - Wrapper for GraphicsMagick - - * Use the :setting:`CONVERTER_GM_PATH` and :setting:`CONVERTER_GM_SETTINGS` to specify the binary file location and customized settings. - -* ``converter.backends.python.Python`` - Wrapper for Pillow_ and Ghostscript_ - - -.. _Pillow: http://pypi.python.org/pypi/Pillow -.. _Ghostscript: http://www.ghostscript.com/ - - -.. setting:: CONVERTER_IM_CONVERT_PATH - -**CONVERTER_IM_CONVERT_PATH** - -Default: ``/usr/bin/convert`` - -File path to imagemagick's convert program. - - -.. setting:: CONVERTER_IM_IDENTIFY_PATH - -**CONVERTER_IM_IDENTIFY_PATH** - -Default: ``/usr/bin/identify`` - -File path to imagemagick's identify program. - - -.. setting:: CONVERTER_GM_PATH - -**CONVERTER_GM_PATH** - -Default: ``/usr/bin/gm`` - -File path to graphicsmagick's program. - - -.. setting:: CONVERTER_GM_SETTINGS - -**CONVERTER_GM_SETTINGS** - -Default: None - -Suggested options: ``-limit files 1 -limit memory 1GB -limit map 2GB -density 200`` - -Set of configuration options to pass to the GraphicsMagick executable to -fine tune it's functionality as explained in the `GraphicsMagick documentation`_ - -.. _GraphicsMagick documentation: http://www.graphicsmagick.org/convert.html#conv-opti - - -.. setting:: CONVERTER_LIBREOFFICE_PATH - - -**CONVERTER_LIBREOFFICE_PATH** - -Default: ``/usr/bin/libreoffice`` - -Path to the libreoffice binary used to call LibreOffice for office document conversion. - - - -Linking -======= - -.. setting:: LINKING_SHOW_EMPTY_SMART_LINKS - -**LINKING_SHOW_EMPTY_SMART_LINKS** - -Default: ``True`` - -Show smart links even when they don't return any documents. - - -Storage -======= - -.. setting:: STORAGE_FILESTORAGE_LOCATION - -**STORAGE_FILESTORAGE_LOCATION** - -Default: ``document_storage`` - - -Document indexing -================= - -.. setting:: DOCUMENT_INDEXING_AVAILABLE_INDEXING_FUNCTIONS - -**DOCUMENT_INDEXING_AVAILABLE_INDEXING_FUNCTIONS** - -Default: ``proper_name`` - - -.. setting:: DOCUMENT_INDEXING_SUFFIX_SEPARATOR - -**DOCUMENT_INDEXING_SUFFIX_SEPARATOR** - -Default: ``_`` (underscore) - - -.. setting:: DOCUMENT_INDEXING_FILESYSTEM_SLUGIFY_PATHS - -**DOCUMENT_INDEXING_FILESYSTEM_SLUGIFY_PATHS** - -Default: ``False`` - - -.. setting:: DOCUMENT_INDEXING_FILESYSTEM_MAX_SUFFIX_COUNT - -**DOCUMENT_INDEXING_FILESYSTEM_MAX_SUFFIX_COUNT** - -Default: ``1000`` - - -.. setting:: DOCUMENT_INDEXING_FILESYSTEM_SERVING - -**DOCUMENT_INDEXING_FILESYSTEM_SERVING** - -Default: ``{}`` - -A dictionary that maps the index name and where on the filesystem that index will be mirrored. - - -OCR -=== - -.. setting:: OCR_TESSERACT_PATH - -**OCR_TESSERACT_PATH** - -Default: ``/bin/tesseract`` - -File path to the ``tesseract`` executable, used to perform OCR on document -page's images. - - -.. setting:: OCR_TESSERACT_LANGUAGE - -**OCR_TESSERACT_LANGUAGE** - -Default: ``eng`` - -Language code passed to the ``tesseract`` executable. - - -.. setting:: OCR_REPLICATION_DELAY - -**OCR_REPLICATION_DELAY** - -Default: ``0`` - -Amount of seconds to delay OCR of documents to allow for the node's -storage replication overhead. - - -.. setting:: OCR_NODE_CONCURRENT_EXECUTION - -**OCR_NODE_CONCURRENT_EXECUTION** - -Default: ``1`` - -Maximum amount of concurrent document OCRs a node can perform. - - -.. setting:: OCR_AUTOMATIC_OCR - -**OCR_AUTOMATIC_OCR** - -Default: ``True`` - -Automatically queue newly created documents or newly uploaded versions -of existing documents for OCR. - - -.. setting:: OCR_QUEUE_PROCESSING_INTERVAL - -**OCR_QUEUE_PROCESSING_INTERVAL** - -Default: ``10`` - - -.. setting:: OCR_UNPAPER_PATH - -**OCR_UNPAPER_PATH** - -Default: ``/usr/bin/unpaper`` - -File path to the ``unpaper`` executable, used to clean up images before -doing OCR. - - -.. setting:: OCR_PDFTOTEXT_PATH - -**OCR_PDFTOTEXT_PATH** - -Default: ``/usr/bin/pdftotext`` - -File path to ``poppler's`` ``pdftotext`` program used to extract text -from PDF files. - - -Metadata -======== - -.. setting:: METADATA_AVAILABLE_FUNCTIONS - -**METADATA_AVAILABLE_FUNCTIONS** - -Default: ``current_date`` - - -.. setting:: METADATA_AVAILABLE_MODELS - -**METADATA_AVAILABLE_MODELS** - -Default: ``User`` - - -Common -====== - -.. setting:: COMMON_TEMPORARY_DIRECTORY - -**COMMON_TEMPORARY_DIRECTORY** - -Default: ``/tmp`` - -Temporary directory used site wide to store thumbnails, previews -and temporary files. If none is specified, one will be created -using tempfile.mkdtemp() - - -.. setting:: COMMON_DEFAULT_PAPER_SIZE - -**COMMON_DEFAULT_PAPER_SIZE** - -Default: ``Letter`` - - -.. setting:: COMMON_DEFAULT_PAGE_ORIENTATION - -**COMMON_DEFAULT_PAGE_ORIENTATION** - -Default: ``Portrait`` - - -.. setting:: COMMON_AUTO_CREATE_ADMIN - -**COMMON_AUTO_CREATE_ADMIN** - -Default: ``True`` - -Automatically creates an administrator superuser with the username -specified by COMMON_AUTO_ADMIN_USERNAME and with the default password -specified by COMMON_AUTO_ADMIN_PASSWORD - - -.. setting:: COMMON_AUTO_ADMIN_USERNAME - -**COMMON_AUTO_ADMIN_USERNAME** - -Default: ``admin`` - -Username of the automatically created superuser - - -.. setting:: COMMON_AUTO_ADMIN_PASSWORD - -**COMMON_AUTO_ADMIN_PASSWORD** - -Default: Random generated password - -The password of the automatically created superuser - - -.. setting:: COMMON_LOGIN_METHOD - -**COMMON_LOGIN_METHOD** - -Default: ``username`` - -Controls the mechanism used to authenticated user. Options are: ``username``, ``email`` -If using the ``email`` login method a proper email authentication backend must used -such as AUTHENTICATION_BACKENDS = ('common.auth.email_auth_backend.EmailAuthBackend',) - - -.. setting:: COMMON_ALLOW_ANONYMOUS_ACCESS - -**COMMON_ALLOW_ANONYMOUS_ACCESS** - -Default: ``False`` - -Allow non authenticated users, access to all views. - - -Search -====== - -.. setting:: SEARCH_LIMIT - -**SEARCH_LIMIT** - -Default: ``100`` - -Maximum amount search hits to fetch and display. - - -.. setting:: SEARCH_RECENT_COUNT - -**SEARCH_RECENT_COUNT** - -Default: ``5`` - -Maximum number of search queries to remember per user. - - -Web theme -========= - -.. setting:: WEB_THEME_THEME - -**WEB_THEME_THEME** - -Default: ``activo`` - -CSS theme to apply, options are: ``amro``, ``bec``, ``bec-green``, ``blue``, -``default``, ``djime-cerulean``, ``drastic-dark``, ``kathleene``, ``olive``, -``orange``, ``red``, ``reidb-greenish`` and ``warehouse``. - - -.. setting:: WEB_THEME_VERBOSE_LOGIN - -**WEB_THEME_VERBOSE_LOGIN** - -Default: ``True`` - -Display extra information in the login screen. - - -Main -==== - -.. setting:: MAIN_SIDE_BAR_SEARCH - -**MAIN_SIDE_BAR_SEARCH** - -Default: ``False`` - -Controls whether the search functionality is provided by a sidebar widget or by a menu entry. - - -.. setting:: MAIN_DISABLE_HOME_VIEW - -**MAIN_DISABLE_HOME_VIEW** - -Default: ``False`` - -Disable the home view and redirect users straight to the recent document list as soon as they log in. - - -.. setting:: MAIN_DISABLE_ICONS - -**MAIN_DISABLE_ICONS** - -Default: ``False`` - -Turns off navigation links' icons. - - -User management -=============== - -.. setting:: ROLES_DEFAULT_ROLES - -**ROLES_DEFAULT_ROLES** - -Default: ``[]`` - -A list of existing roles that are automatically assigned to newly created users - - -Signatures -========== - -.. setting:: SIGNATURES_KEYSERVERS - -**SIGNATURES_KEYSERVERS** - -Default: ``['pool.sks-keyservers.net']`` - -List of keyservers to be queried for unknown keys. - - -.. setting:: SIGNATURES_GPG_HOME - -**SIGNATURES_GPG_HOME** - -Default: ``gpg_home`` - -Home directory used to store keys as well as configuration files. diff --git a/docs/topics/signatures.rst b/docs/topics/signatures.rst index 0ef7d0bd54..8b3899a163 100644 --- a/docs/topics/signatures.rst +++ b/docs/topics/signatures.rst @@ -2,31 +2,23 @@ Document signatures =================== -**Mayan EDMS** supports two types of document signatures, these are embedded and -detached signatures. When a document with an embedded signature is -uploaded, this signature is readily detected as part of the document -inspection step. If the public key corresponding to the signee of the -document is not found, **Mayan EDMS** will try to obtain it from the list of -keyserver specified in the config option :setting:`SIGNATURES_KEYSERVERS`. -Failing that, **Mayan EDMS** will indicate that the document is signed -but that it has no way to verify such signature. -Existing non signed documents can be signed in one of two way: -by downloading the document, signing it, and uploading the signed document -as a new version of the existing one using **Mayan EDMS** :doc:`versioning support ` -or by creating a detached signature for the non signed document and uploading -such detached signature file using the option likewise named menu option. +**Mayan EDMS** supports two types of document signatures: embedded and +detached signatures. When a document with an embedded signature is +uploaded, this signature is readily detected as part of the document +inspection step. The status of the signature can be verified by accessing the +signatures sections of a document. -Maintenance of the public keyring can be done using the ``Key management`` -functionality in the ``Setup menu`` +Existing non signed documents can be signed in one of two ways: +by downloading the document, signing it, and uploading the signed document +as a new version of the existing one or by creating a detached signature for +the non signed document and uploading such detached signature file. -From this menu, key servers can be queried -and the results imported. Public keys no longer needed can also be deleted -from this menu. +Maintenance of the public keyring can be done using the ``Key management`` +functionality in the ``Setup menu``. -Only `GNU Privacy Guard`_ signatures are support at the moment. In case -your installation of GnuPG is non-standard, you can use the :setting:`SIGNATURES_GPG_HOME` -configuration option to let **Mayan EDMS** find your GPG instance's home directory, used to -store keyrings and other GPG configuration files. +From this menu, key servers can be queried and the results imported. Public +keys no longer needed can also be deleted from this menu. +Only `GNU Privacy Guard`_ signatures are support at the moment. .. _`GNU Privacy Guard`: www.gnupg.org/ diff --git a/docs/topics/smart_links.rst b/docs/topics/smart_links.rst index 031586792b..9fafa0c146 100644 --- a/docs/topics/smart_links.rst +++ b/docs/topics/smart_links.rst @@ -2,41 +2,13 @@ Smart links =========== -To configure: |Setup tab| |Right arrow| |Smart links button| -To use: |Document icon| |Right arrow| |Smart links link| - -Smart links are usefull for navigation between documents. They are rule -based but don't created any organizational structure just show the documents +Smart links are usefull for navigation between documents. They are rule +based, but don't create any organizational structure. They just show the documents that match the rules as evaluated against the metadata of the currently -displayed document. They are global, the smart links are dependant -on the current document the user is viewing. - -.. figure:: /_static/screenshots/smart_links_screenshot.png - :alt: Smart links screenshot - :scale: 75% - - Screenshot of smart links in action. The documents being shown are from the same - permit file number as the current document being viewed by the user. - Notice how the current document is also highlighted with a black border. - -.. |Setup tab| image:: /_static/setup_tab.png - :alt: Setup tab - :align: middle - -.. |Right arrow| image:: /_static/arrow_right.png - :alt: Right arrow - :align: middle - -.. |Smart links button| image:: /_static/smart_links_button.png - :alt: Smart links button - :align: middle - -.. |Document icon| image:: /_static/page.png - :alt: Document icon - :align: middle - -.. |Smart links link| image:: /_static/smart_links_link.png - :alt: Smart links link - :align: middle +displayed document. +Smart links are usefull when a patient file in a patients index needs to be linked +to the medical documentation of a prescription the patient is using, but that medical +documentation is in it's own prescription index. Smart links can provide a reference +between documents of different indexes without any change in the indexes' structures. diff --git a/docs/topics/tags.rst b/docs/topics/tags.rst index 4b0fdf18b6..f3ef92e827 100644 --- a/docs/topics/tags.rst +++ b/docs/topics/tags.rst @@ -2,35 +2,8 @@ Tags ==== -To configure and use: |Tags tab| - -To use: |Document icon| |Right arrow| |tags link| - -Tags allow giving documents a toggable property. Documents can also be tagged -with more than one tag. Once tagged, documents can be search also by their tags +Tags allow giving documents a toggable property. Documents can also be tagged +with more than one tag. Once tagged, documents can be searched also by their tags and from the tags main menu a list of all the documents with a particular tag -can be obtained easily. Aside from their texts, tags can be assigned a particular +can be obtained easily. Aside from their texts, tags can be assigned a particular color. - -.. figure:: /_static/screenshots/tags_screenshot.png - :alt: Tags links screenshot - :scale: 35% - - Screenshot of showing how tags can also be used to represent the state of a - document, in this case the review state of a permit. - -.. |Tags tab| image:: /_static/tags_tab.png - :alt: Tags tab - :align: middle - -.. |Right arrow| image:: /_static/arrow_right.png - :alt: Right arrow - :align: middle - -.. |Tags link| image:: /_static/tags_link.png - :alt: Tags link - :align: middle - -.. |Document icon| image:: /_static/page.png - :alt: Document icon - :align: middle diff --git a/docs/topics/transformations.rst b/docs/topics/transformations.rst index 7584b69698..8f39d90de4 100644 --- a/docs/topics/transformations.rst +++ b/docs/topics/transformations.rst @@ -5,8 +5,8 @@ What are transformations? Transformation are useful to manipulate the preview of the stored documents in a persistent manner, for example some scanning equipment only produce landscape PDFs, in this case a default transformation for that document -source would be "rotation: 270 degress", this way whenever a document is +source would be "rotation: 270 degress". This way whenever a document is uploaded from that scanner it appears in portrait orientation. -The transformation remains attached to the document, this way the file -is preserved in it's original state (a requirement in legal environments) -but only the representation is transformed to make it look right to the user. +The transformation remains attached to the document, the file being +preserved in it's original state (a requirement in legal environments) and +only the representation being transformed. diff --git a/docs/topics/translations.rst b/docs/topics/translations.rst deleted file mode 100644 index e81f1b7d4a..0000000000 --- a/docs/topics/translations.rst +++ /dev/null @@ -1,8 +0,0 @@ -============ -Translations -============ - -Translations are now being handled online via the **Transifex** website: https://www.transifex.com/projects/p/mayan-edms/. -To create a translation team for a new language or contribute to an already -existing language translation, create a **Transifex** account and contact -the team coordinator of the respective language in which you are interested. diff --git a/docs/topics/versioning.rst b/docs/topics/versioning.rst index f8e170532f..b7abb2b275 100644 --- a/docs/topics/versioning.rst +++ b/docs/topics/versioning.rst @@ -3,23 +3,12 @@ Document versioning =================== **Mayan EDMS** has the ability to store different versions of the same -document. Users are provided with a very comprehensive but easy to use -version numbering system that allows specifying a major, minor or micro -version number increase. - -.. image:: ../_static/versioning.png - :alt: versioning diagram - -A comment field is also provided to allow users -to summarize the new verdion changes in comparison with the previous -one. If a new version was uploded by mistake or such new version is no -longer necessary **Mayan EDMS** provides the option to revert to a previous -version of the document. +document. A comment field is provided to allow users to summarize the new +version changes in comparison with the previous one. If a new version was +uploded by mistake or such new version is no longer necessary the option to +revert to a previous version of the document is provided. To upload a new document version, select an existing document, click on the version tab of the document, and click on the 'upload new version' on the -side bar. A new view very similar to the new document upload view will -appear show the same interactive document sources that have been defined, -but with new options to specify the new version number and an optional -comment. - +side bar. A new view very similar to the new document upload view will +appear, showing the same interactive document sources that have been defined. diff --git a/mayan/__init__.py b/mayan/__init__.py index 247c61abcb..af1250467d 100644 --- a/mayan/__init__.py +++ b/mayan/__init__.py @@ -1,6 +1,8 @@ +from __future__ import unicode_literals + __title__ = 'Mayan EDMS' -__version__ = '1.0.0' -__build__ = 0x010000 +__version__ = '1.1.0' +__build__ = 0x010100 __author__ = 'Roberto Rosario' __license__ = 'Apache 2.0' __copyright__ = 'Copyright 2011 Roberto Rosario' diff --git a/mayan/apps/acls/migrations/__init__.py b/mayan/apps/__init__.py similarity index 100% rename from mayan/apps/acls/migrations/__init__.py rename to mayan/apps/__init__.py diff --git a/mayan/apps/acls/__init__.py b/mayan/apps/acls/__init__.py index e9de03155a..75944619b7 100644 --- a/mayan/apps/acls/__init__.py +++ b/mayan/apps/acls/__init__.py @@ -1,32 +1,30 @@ -from __future__ import absolute_import +from __future__ import unicode_literals from django.dispatch import receiver -from navigation.api import register_links, register_multi_item_links -from project_setup.api import register_setup - from south.signals import post_migrate -from .classes import (AccessHolder, AccessObjectClass, ClassAccessHolder, - AccessObject) -from .links import (acl_detail, acl_grant, acl_revoke, acl_holder_new, - acl_setup_valid_classes, acl_class_list, acl_class_acl_list, - acl_class_acl_detail, acl_class_new_holder_for, acl_class_grant, - acl_class_revoke) +from navigation.api import register_links +from project_setup.api import register_setup + +from .classes import ( + AccessHolder, AccessObject, AccessObjectClass, ClassAccessHolder +) +from .links import ( + acl_class_acl_detail, acl_class_acl_list, acl_class_grant, acl_class_list, + acl_class_new_holder_for, acl_class_revoke, acl_detail, acl_grant, + acl_holder_new, acl_revoke, acl_setup_valid_classes +) from .models import CreatorSingleton -register_links(AccessHolder, [acl_detail]) -register_multi_item_links(['acl_detail'], [acl_grant, acl_revoke]) - register_links([AccessObject], [acl_holder_new], menu_name='sidebar') - -register_setup(acl_setup_valid_classes) -register_links(['acl_setup_valid_classes', 'acl_class_acl_list', 'acl_class_new_holder_for', 'acl_class_acl_detail', 'acl_class_multiple_grant', 'acl_class_multiple_revoke'], [acl_class_list], menu_name='secondary_menu') - -register_links(ClassAccessHolder, [acl_class_acl_detail]) - register_links(AccessObjectClass, [acl_class_acl_list, acl_class_new_holder_for]) -register_multi_item_links(['acl_class_acl_detail'], [acl_class_grant, acl_class_revoke]) +register_links(AccessHolder, [acl_detail]) +register_links(['acls:acl_setup_valid_classes', 'acls:acl_class_acl_list', 'acls:acl_class_new_holder_for', 'acls:acl_class_acl_detail', 'acls:acl_class_multiple_grant', 'acls:acl_class_multiple_revoke'], [acl_class_list], menu_name='secondary_menu') +register_links(ClassAccessHolder, [acl_class_acl_detail]) +register_links(['acls:acl_detail'], [acl_grant, acl_revoke], menu_name='multi_item_links') +register_links(['acls:acl_class_acl_detail'], [acl_class_grant, acl_class_revoke], menu_name='multi_item_links') +register_setup(acl_setup_valid_classes) @receiver(post_migrate, dispatch_uid='create_creator_user') diff --git a/mayan/apps/acls/admin.py b/mayan/apps/acls/admin.py index b078281a42..998c3e4c05 100644 --- a/mayan/apps/acls/admin.py +++ b/mayan/apps/acls/admin.py @@ -1,25 +1,16 @@ -from __future__ import absolute_import +from __future__ import unicode_literals from django.contrib import admin from .models import AccessEntry -# class PermissionHolderInline(admin.StackedInline): -# model = PermissionHolder -# extra = 1 -# classes = ('collapse-open',) -# allow_add = True# -# - - class AccessEntryAdmin(admin.ModelAdmin): + model = AccessEntry + list_display = ('pk', 'holder_object', 'permission', 'content_object') + list_display_links = ('pk',) related_lookup_fields = { 'generic': [['holder_type', 'holder_id'], ['content_type', 'object_id']], } - # inlines = [PermissionHolderInline] - list_display = ('pk', 'holder_object', 'permission', 'content_object') - list_display_links = ('pk',) - model = AccessEntry admin.site.register(AccessEntry, AccessEntryAdmin) diff --git a/mayan/apps/acls/api.py b/mayan/apps/acls/api.py index bfcdcf1e7b..314eaad0c2 100644 --- a/mayan/apps/acls/api.py +++ b/mayan/apps/acls/api.py @@ -1,4 +1,4 @@ -from __future__ import absolute_import +from __future__ import unicode_literals from django.contrib.contenttypes.models import ContentType diff --git a/mayan/apps/acls/classes.py b/mayan/apps/acls/classes.py index 533ea7e497..edab6e6fa9 100644 --- a/mayan/apps/acls/classes.py +++ b/mayan/apps/acls/classes.py @@ -1,4 +1,4 @@ -from __future__ import absolute_import +from __future__ import unicode_literals import logging import sys @@ -7,7 +7,6 @@ import types from django.contrib.contenttypes.models import ContentType from django.core.exceptions import ObjectDoesNotExist from django.db.models.base import ModelBase -from django.template.defaultfilters import capfirst from common.models import AnonymousUserSingleton @@ -24,7 +23,7 @@ def get_source_object(obj): class EncapsulatedObject(object): - source_object_name = u'source_object' + source_object_name = 'source_object' @classmethod def object_key(cls, app_label=None, model=None, pk=None): @@ -83,18 +82,14 @@ class EncapsulatedObject(object): try: content_type = ContentType.objects.get(app_label=app_label, model=model) except ContentType.DoesNotExist: - # cls.add_to_class('DoesNotExist', subclass_exception('DoesNotExist', (ObjectDoesNotExist,), cls.__name__)) - # raise cls.DoesNotExist("%s matching query does not exist." % ContentType._meta.object_name) - raise ObjectDoesNotExist("%s matching query does not exist." % ContentType._meta.object_name) + raise ObjectDoesNotExist('%s matching query does not exist.' % ContentType._meta.object_name) else: source_object_model_class = content_type.model_class() if pk: try: source_object = content_type.get_object_for_this_type(pk=pk) except source_object_model_class.DoesNotExist: - # cls.add_to_class('DoesNotExist', subclass_exception('DoesNotExist', (ObjectDoesNotExist,), cls.__name__)) - # raise cls.DoesNotExist("%s matching query does not exist." % source_object_model_class._meta.object_name) - raise ObjectDoesNotExist("%s matching query does not exist." % source_object_model_class._meta.object_name) + raise ObjectDoesNotExist('%s matching query does not exist.' % source_object_model_class._meta.object_name) else: source_object = source_object_model_class @@ -115,15 +110,15 @@ class EncapsulatedObject(object): def __unicode__(self): if isinstance(self.source_object, ModelBase): - return capfirst(unicode(self.source_object._meta.verbose_name_plural)) + return unicode(self.source_object._meta.verbose_name_plural) elif self.ct_fullname == 'auth.user': - return u'%s %s' % (self.source_object._meta.verbose_name, self.source_object.get_full_name()) + return '%s %s' % (self.source_object._meta.verbose_name, self.source_object.get_full_name()) elif self.ct_fullname == 'common.anonymoususersingleton': return unicode(self.source_object) elif self.ct_fullname == 'acls.creatorsingleton': return unicode(self.source_object) else: - return u'%s %s' % (self.source_object._meta.verbose_name, self.source_object) + return '%s %s' % (self.source_object._meta.verbose_name, self.source_object) def __repr__(self): return self.__unicode__() @@ -134,19 +129,19 @@ class EncapsulatedObject(object): class AccessHolder(EncapsulatedObject): - source_object_name = u'holder_object' + source_object_name = 'holder_object' class AccessObject(EncapsulatedObject): - source_object_name = u'obj' + source_object_name = 'obj' class AccessObjectClass(EncapsulatedObject): - source_object_name = u'cls' + source_object_name = 'cls' class ClassAccessHolder(EncapsulatedObject): - source_object_name = u'class_holder' + source_object_name = 'class_holder' if sys.version_info < (2, 5): diff --git a/mayan/apps/acls/cleanup.py b/mayan/apps/acls/cleanup.py deleted file mode 100644 index 172c441a50..0000000000 --- a/mayan/apps/acls/cleanup.py +++ /dev/null @@ -1,8 +0,0 @@ -from __future__ import absolute_import - -from .models import AccessEntry, DefaultAccessEntry - - -def cleanup(): - AccessEntry.objects.all().delete() - DefaultAccessEntry.objects.all().delete() diff --git a/mayan/apps/acls/forms.py b/mayan/apps/acls/forms.py index e1f3b292d8..0f65fefbc7 100644 --- a/mayan/apps/acls/forms.py +++ b/mayan/apps/acls/forms.py @@ -1,4 +1,4 @@ -from __future__ import absolute_import +from __future__ import absolute_import, unicode_literals from django import forms from django.contrib.auth.models import User, Group @@ -22,7 +22,7 @@ def _as_choice_list(holders): class BaseHolderSelectionForm(forms.Form): holder_gid = forms.ChoiceField( - label=_(u'New holder') + label=_('New holder') ) def __init__(self, *args, **kwargs): @@ -39,16 +39,16 @@ class BaseHolderSelectionForm(forms.Form): non_holder_list = [] if users: - non_holder_list.append((_(u'Users'), _as_choice_list(list(users)))) + non_holder_list.append((_('Users'), _as_choice_list(list(users)))) if groups: - non_holder_list.append((_(u'Groups'), _as_choice_list(list(groups)))) + non_holder_list.append((_('Groups'), _as_choice_list(list(groups)))) if roles: - non_holder_list.append((_(u'Roles'), _as_choice_list(list(roles)))) + non_holder_list.append((_('Roles'), _as_choice_list(list(roles)))) if special: - non_holder_list.append((_(u'Special'), _as_choice_list(list(special)))) + non_holder_list.append((_('Special'), _as_choice_list(list(special)))) super(BaseHolderSelectionForm, self).__init__(*args, **kwargs) self.fields['holder_gid'].choices = non_holder_list diff --git a/mayan/apps/acls/links.py b/mayan/apps/acls/links.py index ebd75d414c..dffca74234 100644 --- a/mayan/apps/acls/links.py +++ b/mayan/apps/acls/links.py @@ -1,18 +1,21 @@ +from __future__ import unicode_literals + from django.utils.translation import ugettext_lazy as _ -from .permissions import (ACLS_EDIT_ACL, ACLS_VIEW_ACL, - ACLS_CLASS_EDIT_ACL, ACLS_CLASS_VIEW_ACL) +from .permissions import ( + ACLS_CLASS_EDIT_ACL, ACLS_CLASS_VIEW_ACL, ACLS_EDIT_ACL, ACLS_VIEW_ACL +) -acl_list = {'text': _(u'ACLs'), 'view': 'acl_list', 'famfam': 'lock', 'permissions': [ACLS_VIEW_ACL]} -acl_detail = {'text': _(u'details'), 'view': 'acl_detail', 'args': ['access_object.gid', 'object.gid'], 'famfam': 'key_go', 'permissions': [ACLS_VIEW_ACL]} -acl_grant = {'text': _(u'grant'), 'view': 'acl_multiple_grant', 'famfam': 'key_add', 'permissions': [ACLS_EDIT_ACL]} -acl_revoke = {'text': _(u'revoke'), 'view': 'acl_multiple_revoke', 'famfam': 'key_delete', 'permissions': [ACLS_EDIT_ACL]} -acl_holder_new = {'text': _(u'New holder'), 'view': 'acl_holder_new', 'args': 'access_object.gid', 'famfam': 'user', 'permissions': [ACLS_EDIT_ACL]} +acl_list = {'text': _('ACLs'), 'view': 'acls:acl_list', 'famfam': 'lock', 'permissions': [ACLS_VIEW_ACL]} +acl_detail = {'text': _('Details'), 'view': 'acls:acl_detail', 'args': ['access_object.gid', 'object.gid'], 'famfam': 'key_go', 'permissions': [ACLS_VIEW_ACL]} +acl_grant = {'text': _('Grant'), 'view': 'acls:acl_multiple_grant', 'famfam': 'key_add', 'permissions': [ACLS_EDIT_ACL]} +acl_revoke = {'text': _('Revoke'), 'view': 'acls:acl_multiple_revoke', 'famfam': 'key_delete', 'permissions': [ACLS_EDIT_ACL]} +acl_holder_new = {'text': _('New holder'), 'view': 'acls:acl_holder_new', 'args': 'access_object.gid', 'famfam': 'user', 'permissions': [ACLS_EDIT_ACL]} -acl_setup_valid_classes = {'text': _(u'Default ACLs'), 'view': 'acl_setup_valid_classes', 'icon': 'lock.png', 'permissions': [ACLS_CLASS_VIEW_ACL], 'children_view_regex': [r'^acl_class', r'^acl_setup']} -acl_class_list = {'text': _(u'List of classes'), 'view': 'acl_setup_valid_classes', 'famfam': 'package', 'permissions': [ACLS_CLASS_VIEW_ACL]} -acl_class_acl_list = {'text': _(u'ACLs for class'), 'view': 'acl_class_acl_list', 'args': 'object.gid', 'famfam': 'lock_go', 'permissions': [ACLS_CLASS_VIEW_ACL]} -acl_class_acl_detail = {'text': _(u'details'), 'view': 'acl_class_acl_detail', 'args': ['access_object_class.gid', 'object.gid'], 'famfam': 'key_go', 'permissions': [ACLS_CLASS_VIEW_ACL]} -acl_class_new_holder_for = {'text': _(u'New holder'), 'view': 'acl_class_new_holder_for', 'args': 'object.gid', 'famfam': 'user', 'permissions': [ACLS_CLASS_EDIT_ACL]} -acl_class_grant = {'text': _(u'grant'), 'view': 'acl_class_multiple_grant', 'famfam': 'key_add', 'permissions': [ACLS_CLASS_EDIT_ACL]} -acl_class_revoke = {'text': _(u'revoke'), 'view': 'acl_class_multiple_revoke', 'famfam': 'key_delete', 'permissions': [ACLS_CLASS_EDIT_ACL]} +acl_setup_valid_classes = {'text': _('Default ACLs'), 'view': 'acls:acl_setup_valid_classes', 'icon': 'main/icons/lock.png', 'permissions': [ACLS_CLASS_VIEW_ACL]} +acl_class_list = {'text': _('Classes'), 'view': 'acls:acl_setup_valid_classes', 'famfam': 'package', 'permissions': [ACLS_CLASS_VIEW_ACL]} +acl_class_acl_list = {'text': _('ACLs for class'), 'view': 'acls:acl_class_acl_list', 'args': 'object.gid', 'famfam': 'lock_go', 'permissions': [ACLS_CLASS_VIEW_ACL]} +acl_class_acl_detail = {'text': _('Details'), 'view': 'acls:acl_class_acl_detail', 'args': ['access_object_class.gid', 'object.gid'], 'famfam': 'key_go', 'permissions': [ACLS_CLASS_VIEW_ACL]} +acl_class_new_holder_for = {'text': _('New holder'), 'view': 'acls:acl_class_new_holder_for', 'args': 'object.gid', 'famfam': 'user', 'permissions': [ACLS_CLASS_EDIT_ACL]} +acl_class_grant = {'text': _('Grant'), 'view': 'acls:acl_class_multiple_grant', 'famfam': 'key_add', 'permissions': [ACLS_CLASS_EDIT_ACL]} +acl_class_revoke = {'text': _('Revoke'), 'view': 'acls:acl_class_multiple_revoke', 'famfam': 'key_delete', 'permissions': [ACLS_CLASS_EDIT_ACL]} diff --git a/mayan/apps/acls/literals.py b/mayan/apps/acls/literals.py index 0b867021a9..232128672a 100644 --- a/mayan/apps/acls/literals.py +++ b/mayan/apps/acls/literals.py @@ -1,3 +1,4 @@ +from __future__ import unicode_literals # Content type <-> fam fam icon mapping CONTENT_TYPE_ICON_MAP = { @@ -6,7 +7,7 @@ CONTENT_TYPE_ICON_MAP = { 'documents.document': 'page', 'permissions.role': 'medal_gold_1', 'folders.folder': 'folder', - 'taggit.tag': 'tag_blue', + 'tags.tag': 'tag_blue', 'linking.smartlink': 'page_link', 'common.anonymoususersingleton': 'user', 'acls.creatorsingleton': 'user', diff --git a/mayan/apps/acls/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/ar/LC_MESSAGES/django.mo index 1fe92528e9..da0b8182fd 100644 Binary files a/mayan/apps/acls/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/ar/LC_MESSAGES/django.po b/mayan/apps/acls/locale/ar/LC_MESSAGES/django.po index 70ef6f3d5e..abfc37b7b0 100644 --- a/mayan/apps/acls/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/ar/LC_MESSAGES/django.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: # Mohammed ALDOUB , 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2013-01-26 08:48+0000\n" -"Last-Translator: Mohammed ALDOUB \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2014-10-25 06:47+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Arabic (http://www.transifex.com/projects/p/mayan-edms/" "language/ar/)\n" "Language: ar\n" @@ -20,7 +21,7 @@ msgstr "" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: forms.py:25 links.py:10 links.py:16 +#: forms.py:25 links.py:13 links.py:19 msgid "New holder" msgstr "New holder" @@ -40,31 +41,31 @@ msgstr "Roles" msgid "Special" msgstr "Special" -#: links.py:6 +#: links.py:9 msgid "ACLs" msgstr "ACLs" -#: links.py:7 links.py:15 -msgid "details" -msgstr "details" +#: links.py:10 links.py:18 +msgid "Details" +msgstr "" -#: links.py:8 links.py:17 -msgid "grant" -msgstr "grant" +#: links.py:11 links.py:20 +msgid "Grant" +msgstr "" -#: links.py:9 links.py:18 -msgid "revoke" -msgstr "revoke" +#: links.py:12 links.py:21 +msgid "Revoke" +msgstr "" -#: links.py:12 +#: links.py:15 msgid "Default ACLs" msgstr "Default ACLs" -#: links.py:13 -msgid "List of classes" -msgstr "List of classes" +#: links.py:16 views.py:379 +msgid "Classes" +msgstr "" -#: links.py:14 +#: links.py:17 msgid "ACLs for class" msgstr "ACLs for class" @@ -72,34 +73,30 @@ msgstr "ACLs for class" msgid "Insufficient access." msgstr "Insufficient access." -#: models.py:26 models.py:68 -msgid "permission" -msgstr "permission" +#: models.py:25 models.py:67 +msgid "Permission" +msgstr "" + +#: models.py:51 +msgid "Access entry" +msgstr "" #: models.py:52 -msgid "access entry" -msgstr "access entry" +msgid "Access entries" +msgstr "" -#: models.py:53 -msgid "access entries" -msgstr "access entries" +#: models.py:88 +msgid "Default access entry" +msgstr "" #: models.py:89 -msgid "default access entry" -msgstr "default access entry" +msgid "Default access entries" +msgstr "" -#: models.py:90 -msgid "default access entries" -msgstr "default access entries" - -#: models.py:109 +#: models.py:108 models.py:111 models.py:112 msgid "Creator" msgstr "Creator" -#: models.py:112 models.py:113 -msgid "creator" -msgstr "creator" - #: permissions.py:7 permissions.py:8 msgid "Access control lists" msgstr "Access control lists" @@ -120,66 +117,66 @@ msgstr "Edit class default ACLs" msgid "View class default ACLs" msgstr "View class default ACLs" -#: views.py:46 +#: views.py:48 #, python-format -msgid "access control lists for: %s" -msgstr "access control lists for: %s" +msgid "Access control lists for: %s" +msgstr "" -#: views.py:48 views.py:408 -msgid "holder" -msgstr "holder" +#: views.py:50 views.py:402 +msgid "Holder" +msgstr "" -#: views.py:49 views.py:409 -msgid "permissions" -msgstr "permissions" +#: views.py:51 views.py:403 +msgid "Permissions" +msgstr "" -#: views.py:96 +#: views.py:98 #, python-format -msgid "permissions available to: %(actor)s for %(obj)s" -msgstr "permissions available to: %(actor)s for %(obj)s" +msgid "Permissions available to: %(actor)s for %(obj)s" +msgstr "" -#: views.py:103 views.py:441 -msgid "namespace" -msgstr "namespace" +#: views.py:105 views.py:434 +msgid "Namespace" +msgstr "" -#: views.py:104 views.py:442 -msgid "label" -msgstr "label" +#: views.py:106 views.py:435 +msgid "Label" +msgstr "" -#: views.py:106 views.py:444 -msgid "has permission" -msgstr "has permission" +#: views.py:108 views.py:437 +msgid "Has permission" +msgstr "" -#: views.py:183 views.py:276 views.py:524 views.py:603 +#: views.py:181 views.py:272 views.py:516 views.py:593 msgid ", " msgstr ", " -#: views.py:184 views.py:277 views.py:525 views.py:604 +#: views.py:182 views.py:273 views.py:517 views.py:594 #, python-format msgid " for %s" msgstr " for %s" -#: views.py:185 views.py:526 +#: views.py:183 views.py:518 #, python-format msgid " to %s" msgstr " to %s" -#: views.py:188 views.py:529 +#: views.py:186 views.py:521 #, python-format msgid "Are you sure you wish to grant the permission %(title_suffix)s?" msgstr "Are you sure you wish to grant the permission %(title_suffix)s?" -#: views.py:190 views.py:531 +#: views.py:188 views.py:523 #, python-format msgid "Are you sure you wish to grant the permissions %(title_suffix)s?" msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?" -#: views.py:197 views.py:538 +#: views.py:195 views.py:530 #, python-format msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." -#: views.py:203 views.py:544 +#: views.py:201 views.py:536 #, python-format msgid "" "%(actor)s, already had the permission \"%(permission)s\" granted for " @@ -188,60 +185,65 @@ msgstr "" "%(actor)s, already had the permission \"%(permission)s\" granted for " "%(object)s." -#: views.py:278 views.py:605 +#: views.py:274 views.py:595 #, python-format msgid " from %s" msgstr " from %s" -#: views.py:281 views.py:608 +#: views.py:277 views.py:598 #, python-format msgid "Are you sure you wish to revoke the permission %(title_suffix)s?" msgstr "Are you sure you wish to revoke the permission %(title_suffix)s?" -#: views.py:283 views.py:610 +#: views.py:279 views.py:600 #, python-format msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?" msgstr "Are you sure you wish to revoke the permissions %(title_suffix)s?" -#: views.py:290 views.py:617 +#: views.py:286 views.py:607 #, python-format msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." -#: views.py:296 views.py:623 +#: views.py:292 views.py:613 #, python-format msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." msgstr "" "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." -#: views.py:352 +#: views.py:346 #, python-format -msgid "add new holder for: %s" -msgstr "add new holder for: %s" +msgid "Add new holder for: %s" +msgstr "" -#: views.py:353 views.py:485 +#: views.py:347 views.py:477 msgid "Select" msgstr "Select" -#: views.py:385 -msgid "classes" -msgstr "classes" +#: views.py:381 +msgid "Class" +msgstr "" -#: views.py:387 -msgid "class" -msgstr "class" - -#: views.py:406 +#: views.py:400 #, python-format -msgid "default access control lists for class: %s" -msgstr "default access control lists for class: %s" +msgid "Default access control lists for class: %s" +msgstr "" -#: views.py:434 +#: views.py:428 #, python-format -msgid "permissions available to: %(actor)s for class %(class)s" -msgstr "permissions available to: %(actor)s for class %(class)s" +msgid "Permissions available to: %(actor)s for class %(class)s" +msgstr "" -#: views.py:483 +#: views.py:475 #, python-format -msgid "add new holder for class: %s" -msgstr "add new holder for class: %s" +msgid "Add new holder for class: %s" +msgstr "" + +#~ msgid "List of classes" +#~ msgstr "List of classes" + +#~ msgid "permission" +#~ msgstr "permission" + +#~ msgid "creator" +#~ msgstr "creator" diff --git a/mayan/apps/acls/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/bg/LC_MESSAGES/django.mo index b5404d03cc..d8e6e890f8 100644 Binary files a/mayan/apps/acls/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/bg/LC_MESSAGES/django.po b/mayan/apps/acls/locale/bg/LC_MESSAGES/django.po index 9038a195cc..0e690dedb4 100644 --- a/mayan/apps/acls/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/bg/LC_MESSAGES/django.po @@ -3,15 +3,17 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: # Iliya Georgiev , 2012 # Pavlin Koldamov , 2012 +# Pavlin Koldamov , 2012 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-10-15 10:27+0000\n" -"Last-Translator: Pavlin Koldamov \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2014-10-25 06:47+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Bulgarian (http://www.transifex.com/projects/p/mayan-edms/" "language/bg/)\n" "Language: bg\n" @@ -20,7 +22,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: forms.py:25 links.py:10 links.py:16 +#: forms.py:25 links.py:13 links.py:19 msgid "New holder" msgstr "Нов притежател" @@ -40,31 +42,31 @@ msgstr "Роли" msgid "Special" msgstr "" -#: links.py:6 +#: links.py:9 msgid "ACLs" msgstr "Контролни списъци за достъп" -#: links.py:7 links.py:15 -msgid "details" -msgstr "детайли" +#: links.py:10 links.py:18 +msgid "Details" +msgstr "" -#: links.py:8 links.py:17 -msgid "grant" -msgstr "предоставяне" +#: links.py:11 links.py:20 +msgid "Grant" +msgstr "" -#: links.py:9 links.py:18 -msgid "revoke" -msgstr "отменя" +#: links.py:12 links.py:21 +msgid "Revoke" +msgstr "" -#: links.py:12 +#: links.py:15 msgid "Default ACLs" msgstr "Контролни списъци за достъп по подразбиране" -#: links.py:13 -msgid "List of classes" -msgstr "Списък на класовете" +#: links.py:16 views.py:379 +msgid "Classes" +msgstr "" -#: links.py:14 +#: links.py:17 msgid "ACLs for class" msgstr "Контролни списъци за клас" @@ -72,34 +74,30 @@ msgstr "Контролни списъци за клас" msgid "Insufficient access." msgstr "Недостатъчен достъп." -#: models.py:26 models.py:68 -msgid "permission" -msgstr "разрешение" +#: models.py:25 models.py:67 +msgid "Permission" +msgstr "" + +#: models.py:51 +msgid "Access entry" +msgstr "" #: models.py:52 -msgid "access entry" -msgstr "достъп за влизане" +msgid "Access entries" +msgstr "" -#: models.py:53 -msgid "access entries" -msgstr "достъп вписвания" +#: models.py:88 +msgid "Default access entry" +msgstr "" #: models.py:89 -msgid "default access entry" +msgid "Default access entries" msgstr "" -#: models.py:90 -msgid "default access entries" -msgstr "" - -#: models.py:109 +#: models.py:108 models.py:111 models.py:112 msgid "Creator" msgstr "" -#: models.py:112 models.py:113 -msgid "creator" -msgstr "" - #: permissions.py:7 permissions.py:8 msgid "Access control lists" msgstr "Контролни списъци за достъп" @@ -120,127 +118,132 @@ msgstr "" msgid "View class default ACLs" msgstr "" -#: views.py:46 +#: views.py:48 #, python-format -msgid "access control lists for: %s" +msgid "Access control lists for: %s" msgstr "" -#: views.py:48 views.py:408 -msgid "holder" +#: views.py:50 views.py:402 +msgid "Holder" msgstr "" -#: views.py:49 views.py:409 -msgid "permissions" -msgstr "разрешения" +#: views.py:51 views.py:403 +msgid "Permissions" +msgstr "" -#: views.py:96 +#: views.py:98 #, python-format -msgid "permissions available to: %(actor)s for %(obj)s" +msgid "Permissions available to: %(actor)s for %(obj)s" msgstr "" -#: views.py:103 views.py:441 -msgid "namespace" +#: views.py:105 views.py:434 +msgid "Namespace" msgstr "" -#: views.py:104 views.py:442 -msgid "label" +#: views.py:106 views.py:435 +msgid "Label" msgstr "" -#: views.py:106 views.py:444 -msgid "has permission" +#: views.py:108 views.py:437 +msgid "Has permission" msgstr "" -#: views.py:183 views.py:276 views.py:524 views.py:603 +#: views.py:181 views.py:272 views.py:516 views.py:593 msgid ", " msgstr "" -#: views.py:184 views.py:277 views.py:525 views.py:604 +#: views.py:182 views.py:273 views.py:517 views.py:594 #, python-format msgid " for %s" msgstr " за %s" -#: views.py:185 views.py:526 +#: views.py:183 views.py:518 #, python-format msgid " to %s" msgstr " към %s" -#: views.py:188 views.py:529 +#: views.py:186 views.py:521 #, python-format msgid "Are you sure you wish to grant the permission %(title_suffix)s?" msgstr "Сигурни ли сте, че искате да дадете разрешение за %(title_suffix)s?" -#: views.py:190 views.py:531 +#: views.py:188 views.py:523 #, python-format msgid "Are you sure you wish to grant the permissions %(title_suffix)s?" msgstr "Сигурни ли сте, че искате да дадете разрешения за %(title_suffix)s?" -#: views.py:197 views.py:538 +#: views.py:195 views.py:530 #, python-format msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." msgstr "" -#: views.py:203 views.py:544 +#: views.py:201 views.py:536 #, python-format msgid "" "%(actor)s, already had the permission \"%(permission)s\" granted for " "%(object)s." msgstr "" -#: views.py:278 views.py:605 +#: views.py:274 views.py:595 #, python-format msgid " from %s" msgstr " от %s" -#: views.py:281 views.py:608 +#: views.py:277 views.py:598 #, python-format msgid "Are you sure you wish to revoke the permission %(title_suffix)s?" msgstr "" "Сигурни ли сте, че искате да отнемете разрешението за %(title_suffix)s?" -#: views.py:283 views.py:610 +#: views.py:279 views.py:600 #, python-format msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?" msgstr "" "Сигурни ли сте, че искате да отнемете разрешенията за %(title_suffix)s?" -#: views.py:290 views.py:617 +#: views.py:286 views.py:607 #, python-format msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." msgstr "" -#: views.py:296 views.py:623 +#: views.py:292 views.py:613 #, python-format msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." msgstr "" -#: views.py:352 +#: views.py:346 #, python-format -msgid "add new holder for: %s" +msgid "Add new holder for: %s" msgstr "" -#: views.py:353 views.py:485 +#: views.py:347 views.py:477 msgid "Select" msgstr "" -#: views.py:385 -msgid "classes" -msgstr "класове" - -#: views.py:387 -msgid "class" -msgstr "клас" - -#: views.py:406 -#, python-format -msgid "default access control lists for class: %s" -msgstr "правила за достъп по подразбиране за клас: %s" - -#: views.py:434 -#, python-format -msgid "permissions available to: %(actor)s for class %(class)s" +#: views.py:381 +msgid "Class" msgstr "" -#: views.py:483 +#: views.py:400 #, python-format -msgid "add new holder for class: %s" +msgid "Default access control lists for class: %s" msgstr "" + +#: views.py:428 +#, python-format +msgid "Permissions available to: %(actor)s for class %(class)s" +msgstr "" + +#: views.py:475 +#, python-format +msgid "Add new holder for class: %s" +msgstr "" + +#~ msgid "List of classes" +#~ msgstr "List of classes" + +#~ msgid "permission" +#~ msgstr "permission" + +#~ msgid "creator" +#~ msgstr "creator" diff --git a/mayan/apps/acls/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/bs_BA/LC_MESSAGES/django.mo index fa018dc960..b0d2b34df5 100644 Binary files a/mayan/apps/acls/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/acls/locale/bs_BA/LC_MESSAGES/django.po index e87bddf887..69545f7cc8 100644 --- a/mayan/apps/acls/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/bs_BA/LC_MESSAGES/django.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: # www.ping.ba , 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2013-06-28 13:46+0000\n" -"Last-Translator: www.ping.ba \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2014-10-25 06:47+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" "projects/p/mayan-edms/language/bs_BA/)\n" "Language: bs_BA\n" @@ -20,7 +21,7 @@ msgstr "" "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" -#: forms.py:25 links.py:10 links.py:16 +#: forms.py:25 links.py:13 links.py:19 msgid "New holder" msgstr "Novi posjednik" @@ -40,31 +41,31 @@ msgstr "Role" msgid "Special" msgstr "Posebno" -#: links.py:6 +#: links.py:9 msgid "ACLs" msgstr "ACLs" -#: links.py:7 links.py:15 -msgid "details" -msgstr "detalji" +#: links.py:10 links.py:18 +msgid "Details" +msgstr "" -#: links.py:8 links.py:17 -msgid "grant" -msgstr "odobriti" +#: links.py:11 links.py:20 +msgid "Grant" +msgstr "" -#: links.py:9 links.py:18 -msgid "revoke" -msgstr "ukinuti" +#: links.py:12 links.py:21 +msgid "Revoke" +msgstr "" -#: links.py:12 +#: links.py:15 msgid "Default ACLs" msgstr "Difoltne ACLs" -#: links.py:13 -msgid "List of classes" -msgstr "Lista klasa" +#: links.py:16 views.py:379 +msgid "Classes" +msgstr "" -#: links.py:14 +#: links.py:17 msgid "ACLs for class" msgstr "ACLs za klasu" @@ -72,34 +73,30 @@ msgstr "ACLs za klasu" msgid "Insufficient access." msgstr "Nedovoljne dozvole." -#: models.py:26 models.py:68 -msgid "permission" -msgstr "dozvole" +#: models.py:25 models.py:67 +msgid "Permission" +msgstr "" + +#: models.py:51 +msgid "Access entry" +msgstr "" #: models.py:52 -msgid "access entry" -msgstr "pristupni unos" +msgid "Access entries" +msgstr "" -#: models.py:53 -msgid "access entries" -msgstr "pristupni unosi" +#: models.py:88 +msgid "Default access entry" +msgstr "" #: models.py:89 -msgid "default access entry" -msgstr "difoltni pristupni unos" +msgid "Default access entries" +msgstr "" -#: models.py:90 -msgid "default access entries" -msgstr "difoltni pristupni unosi" - -#: models.py:109 +#: models.py:108 models.py:111 models.py:112 msgid "Creator" msgstr "Kreator" -#: models.py:112 models.py:113 -msgid "creator" -msgstr "kreator" - #: permissions.py:7 permissions.py:8 msgid "Access control lists" msgstr "Liste kontrole pristupa (ACLs)" @@ -120,125 +117,130 @@ msgstr "Izmjeniti difoltne ACLs klase" msgid "View class default ACLs" msgstr "Pregledati difoltne ACLs klase" -#: views.py:46 +#: views.py:48 #, python-format -msgid "access control lists for: %s" -msgstr "lista kontrole pristupa (ACL) za: %s" +msgid "Access control lists for: %s" +msgstr "" -#: views.py:48 views.py:408 -msgid "holder" -msgstr "posjednik" +#: views.py:50 views.py:402 +msgid "Holder" +msgstr "" -#: views.py:49 views.py:409 -msgid "permissions" -msgstr "dozvole" +#: views.py:51 views.py:403 +msgid "Permissions" +msgstr "" -#: views.py:96 +#: views.py:98 #, python-format -msgid "permissions available to: %(actor)s for %(obj)s" -msgstr "važeće dozvole za: %(actor)s prema %(obj)s" +msgid "Permissions available to: %(actor)s for %(obj)s" +msgstr "" -#: views.py:103 views.py:441 -msgid "namespace" -msgstr "prostor za ime" +#: views.py:105 views.py:434 +msgid "Namespace" +msgstr "" -#: views.py:104 views.py:442 -msgid "label" -msgstr "labela" +#: views.py:106 views.py:435 +msgid "Label" +msgstr "" -#: views.py:106 views.py:444 -msgid "has permission" -msgstr "ima dozvolu" +#: views.py:108 views.py:437 +msgid "Has permission" +msgstr "" -#: views.py:183 views.py:276 views.py:524 views.py:603 +#: views.py:181 views.py:272 views.py:516 views.py:593 msgid ", " msgstr ", " -#: views.py:184 views.py:277 views.py:525 views.py:604 +#: views.py:182 views.py:273 views.py:517 views.py:594 #, python-format msgid " for %s" msgstr " za %s" -#: views.py:185 views.py:526 +#: views.py:183 views.py:518 #, python-format msgid " to %s" msgstr " prema %s" -#: views.py:188 views.py:529 +#: views.py:186 views.py:521 #, python-format msgid "Are you sure you wish to grant the permission %(title_suffix)s?" msgstr "Jeste li sigurni da želite odobriti dozvolu %(title_suffix)s?" -#: views.py:190 views.py:531 +#: views.py:188 views.py:523 #, python-format msgid "Are you sure you wish to grant the permissions %(title_suffix)s?" msgstr "Jeste li sigurni da želite odobriti dozvole %(title_suffix)s?" -#: views.py:197 views.py:538 +#: views.py:195 views.py:530 #, python-format msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." msgstr "Dozvola \"%(permission)s\" odobrena za %(actor)s prema %(object)s." -#: views.py:203 views.py:544 +#: views.py:201 views.py:536 #, python-format msgid "" "%(actor)s, already had the permission \"%(permission)s\" granted for " "%(object)s." msgstr "%(actor)s, već ima dozvolu \"%(permission)s\" prema %(object)s." -#: views.py:278 views.py:605 +#: views.py:274 views.py:595 #, python-format msgid " from %s" msgstr " od %s" -#: views.py:281 views.py:608 +#: views.py:277 views.py:598 #, python-format msgid "Are you sure you wish to revoke the permission %(title_suffix)s?" msgstr "Jeste li sigurni da želite ukinuti dozvolu %(title_suffix)s?" -#: views.py:283 views.py:610 +#: views.py:279 views.py:600 #, python-format msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?" msgstr "Jeste li sigurni da želite ukinuti dozvole %(title_suffix)s?" -#: views.py:290 views.py:617 +#: views.py:286 views.py:607 #, python-format msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." msgstr "Dozvola \"%(permission)s\" povučena za %(actor)s prema %(object)s." -#: views.py:296 views.py:623 +#: views.py:292 views.py:613 #, python-format msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." msgstr "%(actor)s, nije imao/la dozvolu \"%(permission)s\" prema %(object)s." -#: views.py:352 +#: views.py:346 #, python-format -msgid "add new holder for: %s" -msgstr "dodati novog posjednika za: %s" +msgid "Add new holder for: %s" +msgstr "" -#: views.py:353 views.py:485 +#: views.py:347 views.py:477 msgid "Select" msgstr "Odabrati" -#: views.py:385 -msgid "classes" -msgstr "klase" +#: views.py:381 +msgid "Class" +msgstr "" -#: views.py:387 -msgid "class" -msgstr "klasa" - -#: views.py:406 +#: views.py:400 #, python-format -msgid "default access control lists for class: %s" -msgstr "difoltna lista kontrole pristupa (ACL) za klasu: %s" +msgid "Default access control lists for class: %s" +msgstr "" -#: views.py:434 +#: views.py:428 #, python-format -msgid "permissions available to: %(actor)s for class %(class)s" -msgstr "važeće dozvole za: %(actor)s za klasu %(class)s" +msgid "Permissions available to: %(actor)s for class %(class)s" +msgstr "" -#: views.py:483 +#: views.py:475 #, python-format -msgid "add new holder for class: %s" -msgstr "dodati novog posjednika za klasu: %s" +msgid "Add new holder for class: %s" +msgstr "" + +#~ msgid "List of classes" +#~ msgstr "List of classes" + +#~ msgid "permission" +#~ msgstr "permission" + +#~ msgid "creator" +#~ msgstr "creator" diff --git a/mayan/apps/acls/locale/da/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/da/LC_MESSAGES/django.mo index 042f99aabf..0e52d2979a 100644 Binary files a/mayan/apps/acls/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/da/LC_MESSAGES/django.po b/mayan/apps/acls/locale/da/LC_MESSAGES/django.po index e705e189e1..13150eee9c 100644 --- a/mayan/apps/acls/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/da/LC_MESSAGES/django.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-01-02 09:45+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2014-10-25 06:47+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Danish (http://www.transifex.com/projects/p/mayan-edms/" "language/da/)\n" "Language: da\n" @@ -18,7 +19,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: forms.py:25 links.py:10 links.py:16 +#: forms.py:25 links.py:13 links.py:19 msgid "New holder" msgstr "" @@ -38,31 +39,31 @@ msgstr "" msgid "Special" msgstr "" -#: links.py:6 +#: links.py:9 msgid "ACLs" msgstr "" -#: links.py:7 links.py:15 -msgid "details" +#: links.py:10 links.py:18 +msgid "Details" msgstr "" -#: links.py:8 links.py:17 -msgid "grant" +#: links.py:11 links.py:20 +msgid "Grant" msgstr "" -#: links.py:9 links.py:18 -msgid "revoke" +#: links.py:12 links.py:21 +msgid "Revoke" msgstr "" -#: links.py:12 +#: links.py:15 msgid "Default ACLs" msgstr "" -#: links.py:13 -msgid "List of classes" +#: links.py:16 views.py:379 +msgid "Classes" msgstr "" -#: links.py:14 +#: links.py:17 msgid "ACLs for class" msgstr "" @@ -70,34 +71,30 @@ msgstr "" msgid "Insufficient access." msgstr "" -#: models.py:26 models.py:68 -msgid "permission" +#: models.py:25 models.py:67 +msgid "Permission" +msgstr "" + +#: models.py:51 +msgid "Access entry" msgstr "" #: models.py:52 -msgid "access entry" +msgid "Access entries" msgstr "" -#: models.py:53 -msgid "access entries" +#: models.py:88 +msgid "Default access entry" msgstr "" #: models.py:89 -msgid "default access entry" +msgid "Default access entries" msgstr "" -#: models.py:90 -msgid "default access entries" -msgstr "" - -#: models.py:109 +#: models.py:108 models.py:111 models.py:112 msgid "Creator" msgstr "" -#: models.py:112 models.py:113 -msgid "creator" -msgstr "" - #: permissions.py:7 permissions.py:8 msgid "Access control lists" msgstr "" @@ -118,125 +115,130 @@ msgstr "" msgid "View class default ACLs" msgstr "" -#: views.py:46 +#: views.py:48 #, python-format -msgid "access control lists for: %s" +msgid "Access control lists for: %s" msgstr "" -#: views.py:48 views.py:408 -msgid "holder" +#: views.py:50 views.py:402 +msgid "Holder" msgstr "" -#: views.py:49 views.py:409 -msgid "permissions" +#: views.py:51 views.py:403 +msgid "Permissions" msgstr "" -#: views.py:96 +#: views.py:98 #, python-format -msgid "permissions available to: %(actor)s for %(obj)s" +msgid "Permissions available to: %(actor)s for %(obj)s" msgstr "" -#: views.py:103 views.py:441 -msgid "namespace" +#: views.py:105 views.py:434 +msgid "Namespace" msgstr "" -#: views.py:104 views.py:442 -msgid "label" +#: views.py:106 views.py:435 +msgid "Label" msgstr "" -#: views.py:106 views.py:444 -msgid "has permission" +#: views.py:108 views.py:437 +msgid "Has permission" msgstr "" -#: views.py:183 views.py:276 views.py:524 views.py:603 +#: views.py:181 views.py:272 views.py:516 views.py:593 msgid ", " msgstr "" -#: views.py:184 views.py:277 views.py:525 views.py:604 +#: views.py:182 views.py:273 views.py:517 views.py:594 #, python-format msgid " for %s" msgstr "" -#: views.py:185 views.py:526 +#: views.py:183 views.py:518 #, python-format msgid " to %s" msgstr "" -#: views.py:188 views.py:529 +#: views.py:186 views.py:521 #, python-format msgid "Are you sure you wish to grant the permission %(title_suffix)s?" msgstr "" -#: views.py:190 views.py:531 +#: views.py:188 views.py:523 #, python-format msgid "Are you sure you wish to grant the permissions %(title_suffix)s?" msgstr "" -#: views.py:197 views.py:538 +#: views.py:195 views.py:530 #, python-format msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." msgstr "" -#: views.py:203 views.py:544 +#: views.py:201 views.py:536 #, python-format msgid "" "%(actor)s, already had the permission \"%(permission)s\" granted for " "%(object)s." msgstr "" -#: views.py:278 views.py:605 +#: views.py:274 views.py:595 #, python-format msgid " from %s" msgstr "" -#: views.py:281 views.py:608 +#: views.py:277 views.py:598 #, python-format msgid "Are you sure you wish to revoke the permission %(title_suffix)s?" msgstr "" -#: views.py:283 views.py:610 +#: views.py:279 views.py:600 #, python-format msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?" msgstr "" -#: views.py:290 views.py:617 +#: views.py:286 views.py:607 #, python-format msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." msgstr "" -#: views.py:296 views.py:623 +#: views.py:292 views.py:613 #, python-format msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." msgstr "" -#: views.py:352 +#: views.py:346 #, python-format -msgid "add new holder for: %s" +msgid "Add new holder for: %s" msgstr "" -#: views.py:353 views.py:485 +#: views.py:347 views.py:477 msgid "Select" msgstr "" -#: views.py:385 -msgid "classes" +#: views.py:381 +msgid "Class" msgstr "" -#: views.py:387 -msgid "class" -msgstr "" - -#: views.py:406 +#: views.py:400 #, python-format -msgid "default access control lists for class: %s" +msgid "Default access control lists for class: %s" msgstr "" -#: views.py:434 +#: views.py:428 #, python-format -msgid "permissions available to: %(actor)s for class %(class)s" +msgid "Permissions available to: %(actor)s for class %(class)s" msgstr "" -#: views.py:483 +#: views.py:475 #, python-format -msgid "add new holder for class: %s" +msgid "Add new holder for class: %s" msgstr "" + +#~ msgid "List of classes" +#~ msgstr "List of classes" + +#~ msgid "permission" +#~ msgstr "permission" + +#~ msgid "creator" +#~ msgstr "creator" diff --git a/mayan/apps/acls/locale/de_CH/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/de_CH/LC_MESSAGES/django.mo new file mode 100644 index 0000000000..93892d918f Binary files /dev/null and b/mayan/apps/acls/locale/de_CH/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/de_CH/LC_MESSAGES/django.po b/mayan/apps/acls/locale/de_CH/LC_MESSAGES/django.po new file mode 100644 index 0000000000..ae9f062db6 --- /dev/null +++ b/mayan/apps/acls/locale/de_CH/LC_MESSAGES/django.po @@ -0,0 +1,244 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2014-10-25 06:47+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: German (Switzerland) (http://www.transifex.com/projects/p/" +"mayan-edms/language/de_CH/)\n" +"Language: de_CH\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: forms.py:25 links.py:13 links.py:19 +msgid "New holder" +msgstr "" + +#: forms.py:42 +msgid "Users" +msgstr "" + +#: forms.py:45 +msgid "Groups" +msgstr "" + +#: forms.py:48 +msgid "Roles" +msgstr "" + +#: forms.py:51 +msgid "Special" +msgstr "" + +#: links.py:9 +msgid "ACLs" +msgstr "" + +#: links.py:10 links.py:18 +msgid "Details" +msgstr "" + +#: links.py:11 links.py:20 +msgid "Grant" +msgstr "" + +#: links.py:12 links.py:21 +msgid "Revoke" +msgstr "" + +#: links.py:15 +msgid "Default ACLs" +msgstr "" + +#: links.py:16 views.py:379 +msgid "Classes" +msgstr "" + +#: links.py:17 +msgid "ACLs for class" +msgstr "" + +#: managers.py:118 managers.py:130 +msgid "Insufficient access." +msgstr "" + +#: models.py:25 models.py:67 +msgid "Permission" +msgstr "" + +#: models.py:51 +msgid "Access entry" +msgstr "" + +#: models.py:52 +msgid "Access entries" +msgstr "" + +#: models.py:88 +msgid "Default access entry" +msgstr "" + +#: models.py:89 +msgid "Default access entries" +msgstr "" + +#: models.py:108 models.py:111 models.py:112 +msgid "Creator" +msgstr "" + +#: permissions.py:7 permissions.py:8 +msgid "Access control lists" +msgstr "" + +#: permissions.py:10 +msgid "Edit ACLs" +msgstr "" + +#: permissions.py:11 +msgid "View ACLs" +msgstr "" + +#: permissions.py:13 +msgid "Edit class default ACLs" +msgstr "" + +#: permissions.py:14 +msgid "View class default ACLs" +msgstr "" + +#: views.py:48 +#, python-format +msgid "Access control lists for: %s" +msgstr "" + +#: views.py:50 views.py:402 +msgid "Holder" +msgstr "" + +#: views.py:51 views.py:403 +msgid "Permissions" +msgstr "" + +#: views.py:98 +#, python-format +msgid "Permissions available to: %(actor)s for %(obj)s" +msgstr "" + +#: views.py:105 views.py:434 +msgid "Namespace" +msgstr "" + +#: views.py:106 views.py:435 +msgid "Label" +msgstr "" + +#: views.py:108 views.py:437 +msgid "Has permission" +msgstr "" + +#: views.py:181 views.py:272 views.py:516 views.py:593 +msgid ", " +msgstr "" + +#: views.py:182 views.py:273 views.py:517 views.py:594 +#, python-format +msgid " for %s" +msgstr "" + +#: views.py:183 views.py:518 +#, python-format +msgid " to %s" +msgstr "" + +#: views.py:186 views.py:521 +#, python-format +msgid "Are you sure you wish to grant the permission %(title_suffix)s?" +msgstr "" + +#: views.py:188 views.py:523 +#, python-format +msgid "Are you sure you wish to grant the permissions %(title_suffix)s?" +msgstr "" + +#: views.py:195 views.py:530 +#, python-format +msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." +msgstr "" + +#: views.py:201 views.py:536 +#, python-format +msgid "" +"%(actor)s, already had the permission \"%(permission)s\" granted for " +"%(object)s." +msgstr "" + +#: views.py:274 views.py:595 +#, python-format +msgid " from %s" +msgstr "" + +#: views.py:277 views.py:598 +#, python-format +msgid "Are you sure you wish to revoke the permission %(title_suffix)s?" +msgstr "" + +#: views.py:279 views.py:600 +#, python-format +msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?" +msgstr "" + +#: views.py:286 views.py:607 +#, python-format +msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." +msgstr "" + +#: views.py:292 views.py:613 +#, python-format +msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +msgstr "" + +#: views.py:346 +#, python-format +msgid "Add new holder for: %s" +msgstr "" + +#: views.py:347 views.py:477 +msgid "Select" +msgstr "" + +#: views.py:381 +msgid "Class" +msgstr "" + +#: views.py:400 +#, python-format +msgid "Default access control lists for class: %s" +msgstr "" + +#: views.py:428 +#, python-format +msgid "Permissions available to: %(actor)s for class %(class)s" +msgstr "" + +#: views.py:475 +#, python-format +msgid "Add new holder for class: %s" +msgstr "" + +#~ msgid "List of classes" +#~ msgstr "List of classes" + +#~ msgid "permission" +#~ msgstr "permission" + +#~ msgid "creator" +#~ msgstr "creator" diff --git a/mayan/apps/acls/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/de_DE/LC_MESSAGES/django.mo index 7a1749a95e..8136fd0533 100644 Binary files a/mayan/apps/acls/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/acls/locale/de_DE/LC_MESSAGES/django.po index f47ea36506..9887200017 100644 --- a/mayan/apps/acls/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/de_DE/LC_MESSAGES/django.po @@ -3,9 +3,11 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: # Stefan Lodders , 2012 # Mathias Behrle , 2014 # Stefan Lodders , 2012 +# Stefan Lodders , 2012 # tilmannsittig , 2012 # tilmannsittig , 2012 # Tobias Paepke , 2014 @@ -13,8 +15,8 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2014-03-12 16:11+0000\n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2015-02-06 23:55+0000\n" "Last-Translator: Mathias Behrle \n" "Language-Team: German (Germany) (http://www.transifex.com/projects/p/mayan-" "edms/language/de_DE/)\n" @@ -24,7 +26,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: forms.py:25 links.py:10 links.py:16 +#: forms.py:25 links.py:13 links.py:19 msgid "New holder" msgstr "Neue Berechtigung" @@ -44,69 +46,65 @@ msgstr "Rollen" msgid "Special" msgstr "Spezial" -#: links.py:6 +#: links.py:9 msgid "ACLs" msgstr "Zugriffsberechtigungen" -#: links.py:7 links.py:15 -msgid "details" +#: links.py:10 links.py:18 +msgid "Details" msgstr "Details" -#: links.py:8 links.py:17 -msgid "grant" -msgstr "Erlauben" +#: links.py:11 links.py:20 +msgid "Grant" +msgstr "Erteilen" -#: links.py:9 links.py:18 -msgid "revoke" -msgstr "Entziehen" +#: links.py:12 links.py:21 +msgid "Revoke" +msgstr "Widerrufen" -#: links.py:12 +#: links.py:15 msgid "Default ACLs" -msgstr "Zugriffsberechtigungen" +msgstr "Standardzugriffsberechtigungen" -#: links.py:13 -msgid "List of classes" +#: links.py:16 views.py:379 +msgid "Classes" msgstr "Klassen" -#: links.py:14 +#: links.py:17 msgid "ACLs for class" msgstr "Zugriffsberechtigungen für Klasse" #: managers.py:118 managers.py:130 msgid "Insufficient access." -msgstr "Unzureichender Zugriff" +msgstr "Keine Zugriffsberechtigung" -#: models.py:26 models.py:68 -msgid "permission" +#: models.py:25 models.py:67 +msgid "Permission" msgstr "Berechtigung" -#: models.py:52 -msgid "access entry" -msgstr "Zugriffsberechtigungseintrag" +#: models.py:51 +msgid "Access entry" +msgstr "Zugriffsberechtigung" -#: models.py:53 -msgid "access entries" -msgstr "Zugriffsberechtigungseinträge" +#: models.py:52 +msgid "Access entries" +msgstr "Zugriffsberechtigungen" + +#: models.py:88 +msgid "Default access entry" +msgstr "Standardzugriffsberechtigung" #: models.py:89 -msgid "default access entry" -msgstr "Zugriffsberechtigungseintrag" +msgid "Default access entries" +msgstr "Standardzugriffsberechtigungen" -#: models.py:90 -msgid "default access entries" -msgstr "Zugriffsberechtigungseinträge" - -#: models.py:109 +#: models.py:108 models.py:111 models.py:112 msgid "Creator" msgstr "Ersteller" -#: models.py:112 models.py:113 -msgid "creator" -msgstr "Ersteller" - #: permissions.py:7 permissions.py:8 msgid "Access control lists" -msgstr "Zugriffsberechtigungslisten" +msgstr "Zugriffsberechtigungen" #: permissions.py:10 msgid "Edit ACLs" @@ -124,70 +122,70 @@ msgstr "Zugriffsberechtigungen der Klasse bearbeiten" msgid "View class default ACLs" msgstr "Zugriffsberechtigungen der Klasse anzeigen" -#: views.py:46 +#: views.py:48 #, python-format -msgid "access control lists for: %s" -msgstr "Zugriffberechtigungsliste für %s" +msgid "Access control lists for: %s" +msgstr "Zugriffsberechtigungen für: %s" -#: views.py:48 views.py:408 -msgid "holder" +#: views.py:50 views.py:402 +msgid "Holder" msgstr "Berechtigter" -#: views.py:49 views.py:409 -msgid "permissions" +#: views.py:51 views.py:403 +msgid "Permissions" msgstr "Berechtigungen" -#: views.py:96 +#: views.py:98 #, python-format -msgid "permissions available to: %(actor)s for %(obj)s" -msgstr "Verfügbare Berechtigungen für %(actor)s in Bezug auf %(obj)s " +msgid "Permissions available to: %(actor)s for %(obj)s" +msgstr "Berechtigungen von %(actor)s für %(obj)s" -#: views.py:103 views.py:441 -msgid "namespace" +#: views.py:105 views.py:434 +msgid "Namespace" msgstr "Namensraum" -#: views.py:104 views.py:442 -msgid "label" -msgstr "Bezeichner" +#: views.py:106 views.py:435 +msgid "Label" +msgstr "Bezeichnung" -#: views.py:106 views.py:444 -msgid "has permission" -msgstr "hat die Berechtigung" +#: views.py:108 views.py:437 +msgid "Has permission" +msgstr "Berechtigt" -#: views.py:183 views.py:276 views.py:524 views.py:603 +#: views.py:181 views.py:272 views.py:516 views.py:593 msgid ", " msgstr "," -#: views.py:184 views.py:277 views.py:525 views.py:604 +#: views.py:182 views.py:273 views.py:517 views.py:594 #, python-format msgid " for %s" msgstr "für %s" -#: views.py:185 views.py:526 +#: views.py:183 views.py:518 #, python-format msgid " to %s" -msgstr "zu %s" +msgstr "an %s" -#: views.py:188 views.py:529 +#: views.py:186 views.py:521 #, python-format msgid "Are you sure you wish to grant the permission %(title_suffix)s?" msgstr "" "Sind Sie sicher, dass Sie die Berechtigung %(title_suffix)s erteilen " "möchten?" -#: views.py:190 views.py:531 +#: views.py:188 views.py:523 #, python-format msgid "Are you sure you wish to grant the permissions %(title_suffix)s?" msgstr "" "Sind Sie sicher, dass Sie die Berechtigungen %(title_suffix)s erteilen " "möchten?" -#: views.py:197 views.py:538 +#: views.py:195 views.py:530 #, python-format msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." -msgstr "Berechtigung \"%(permission)s\" gewährt an %(actor)s für %(object)s." +msgstr "Berechtigung \"%(permission)s\" erteilt an %(actor)s für %(object)s." -#: views.py:203 views.py:544 +#: views.py:201 views.py:536 #, python-format msgid "" "%(actor)s, already had the permission \"%(permission)s\" granted for " @@ -196,64 +194,70 @@ msgstr "" "%(actor)s verfügt bereits über die Berechtigung \"%(permission)s an " "%(object)s." -#: views.py:278 views.py:605 +#: views.py:274 views.py:595 #, python-format msgid " from %s" msgstr "von %s" -#: views.py:281 views.py:608 +#: views.py:277 views.py:598 #, python-format msgid "Are you sure you wish to revoke the permission %(title_suffix)s?" msgstr "" -"Sind Sie sicher, dass Sie die Berechtigung %(title_suffix)s entziehen " +"Sind Sie sicher, dass Sie die Berechtigung %(title_suffix)s widerrufen " "möchten?" -#: views.py:283 views.py:610 +#: views.py:279 views.py:600 #, python-format msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?" msgstr "" -"Sind Sie sicher, dass Sie die Berechtigungen %(title_suffix)s entziehen " +"Sind Sie sicher, dass Sie die Berechtigungen %(title_suffix)s widerrufen " "möchten?" -#: views.py:290 views.py:617 +#: views.py:286 views.py:607 #, python-format msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." -msgstr "Berechtigung \"%(permission)s\" für %(actor)s an %(object)s entzogen." +msgstr "" +"Berechtigung \"%(permission)s\" von %(actor)s für %(object)s widerrufen." -#: views.py:296 views.py:623 +#: views.py:292 views.py:613 #, python-format msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." msgstr "" "%(actor)s verfügte nicht über Berechtigung \"%(permission)s\" für %(object)s." -#: views.py:352 +#: views.py:346 #, python-format -msgid "add new holder for: %s" -msgstr "Neuen Berechtigten eintragen für %s" +msgid "Add new holder for: %s" +msgstr "Neue Berechtigung für %s erstellen" -#: views.py:353 views.py:485 +#: views.py:347 views.py:477 msgid "Select" msgstr "Auswählen" -#: views.py:385 -msgid "classes" -msgstr "Klassen" - -#: views.py:387 -msgid "class" +#: views.py:381 +msgid "Class" msgstr "Klasse" -#: views.py:406 +#: views.py:400 #, python-format -msgid "default access control lists for class: %s" -msgstr "Zugriffsberechtigungen für Klasse %s" +msgid "Default access control lists for class: %s" +msgstr "Standardberechtigungen für Klasse %s" -#: views.py:434 +#: views.py:428 #, python-format -msgid "permissions available to: %(actor)s for class %(class)s" -msgstr "Verfügbare Berechtigungen für %(actor)s in Bezug auf %(class)s " +msgid "Permissions available to: %(actor)s for class %(class)s" +msgstr "Berechtigungen von %(actor)s für Klasse %(class)s" -#: views.py:483 +#: views.py:475 #, python-format -msgid "add new holder for class: %s" -msgstr "Neue Berechtigung für Klasse %s eintragen" +msgid "Add new holder for class: %s" +msgstr "Neue Berechtigung für Klasse %s erstellen" + +#~ msgid "List of classes" +#~ msgstr "List of classes" + +#~ msgid "permission" +#~ msgstr "permission" + +#~ msgid "creator" +#~ msgstr "creator" diff --git a/mayan/apps/acls/locale/en/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/en/LC_MESSAGES/django.mo index 3ea2279c8a..edc0b7b62c 100644 Binary files a/mayan/apps/acls/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/en/LC_MESSAGES/django.po b/mayan/apps/acls/locale/en/LC_MESSAGES/django.po index cee1cbc8ef..f190f43ec8 100644 --- a/mayan/apps/acls/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" "PO-Revision-Date: 2012-02-02 18:20+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -18,7 +18,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: forms.py:25 links.py:10 links.py:16 +#: forms.py:25 links.py:13 links.py:19 msgid "New holder" msgstr "New holder" @@ -38,31 +38,35 @@ msgstr "Roles" msgid "Special" msgstr "Special" -#: links.py:6 +#: links.py:9 msgid "ACLs" msgstr "ACLs" -#: links.py:7 links.py:15 -msgid "details" +#: links.py:10 links.py:18 +#, fuzzy +msgid "Details" msgstr "details" -#: links.py:8 links.py:17 -msgid "grant" +#: links.py:11 links.py:20 +#, fuzzy +msgid "Grant" msgstr "grant" -#: links.py:9 links.py:18 -msgid "revoke" +#: links.py:12 links.py:21 +#, fuzzy +msgid "Revoke" msgstr "revoke" -#: links.py:12 +#: links.py:15 msgid "Default ACLs" msgstr "Default ACLs" -#: links.py:13 -msgid "List of classes" -msgstr "List of classes" +#: links.py:16 views.py:379 +#, fuzzy +msgid "Classes" +msgstr "classes" -#: links.py:14 +#: links.py:17 msgid "ACLs for class" msgstr "ACLs for class" @@ -70,34 +74,35 @@ msgstr "ACLs for class" msgid "Insufficient access." msgstr "Insufficient access." -#: models.py:26 models.py:68 -msgid "permission" -msgstr "permission" +#: models.py:25 models.py:67 +#, fuzzy +msgid "Permission" +msgstr "permissions" -#: models.py:52 -msgid "access entry" +#: models.py:51 +#, fuzzy +msgid "Access entry" msgstr "access entry" -#: models.py:53 -msgid "access entries" +#: models.py:52 +#, fuzzy +msgid "Access entries" msgstr "access entries" -#: models.py:89 -msgid "default access entry" +#: models.py:88 +#, fuzzy +msgid "Default access entry" msgstr "default access entry" -#: models.py:90 -msgid "default access entries" +#: models.py:89 +#, fuzzy +msgid "Default access entries" msgstr "default access entries" -#: models.py:109 +#: models.py:108 models.py:111 models.py:112 msgid "Creator" msgstr "Creator" -#: models.py:112 models.py:113 -msgid "creator" -msgstr "creator" - #: permissions.py:7 permissions.py:8 msgid "Access control lists" msgstr "Access control lists" @@ -118,66 +123,71 @@ msgstr "Edit class default ACLs" msgid "View class default ACLs" msgstr "View class default ACLs" -#: views.py:46 -#, python-format -msgid "access control lists for: %s" +#: views.py:48 +#, fuzzy, python-format +msgid "Access control lists for: %s" msgstr "access control lists for: %s" -#: views.py:48 views.py:408 -msgid "holder" +#: views.py:50 views.py:402 +#, fuzzy +msgid "Holder" msgstr "holder" -#: views.py:49 views.py:409 -msgid "permissions" +#: views.py:51 views.py:403 +#, fuzzy +msgid "Permissions" msgstr "permissions" -#: views.py:96 -#, python-format -msgid "permissions available to: %(actor)s for %(obj)s" +#: views.py:98 +#, fuzzy, python-format +msgid "Permissions available to: %(actor)s for %(obj)s" msgstr "permissions available to: %(actor)s for %(obj)s" -#: views.py:103 views.py:441 -msgid "namespace" +#: views.py:105 views.py:434 +#, fuzzy +msgid "Namespace" msgstr "namespace" -#: views.py:104 views.py:442 -msgid "label" +#: views.py:106 views.py:435 +#, fuzzy +msgid "Label" msgstr "label" -#: views.py:106 views.py:444 -msgid "has permission" +#: views.py:108 views.py:437 +#, fuzzy +msgid "Has permission" msgstr "has permission" -#: views.py:183 views.py:276 views.py:524 views.py:603 +#: views.py:181 views.py:272 views.py:516 views.py:593 msgid ", " msgstr ", " -#: views.py:184 views.py:277 views.py:525 views.py:604 +#: views.py:182 views.py:273 views.py:517 views.py:594 #, python-format msgid " for %s" msgstr " for %s" -#: views.py:185 views.py:526 +#: views.py:183 views.py:518 #, python-format msgid " to %s" msgstr " to %s" -#: views.py:188 views.py:529 +#: views.py:186 views.py:521 #, python-format msgid "Are you sure you wish to grant the permission %(title_suffix)s?" msgstr "Are you sure you wish to grant the permission %(title_suffix)s?" -#: views.py:190 views.py:531 +#: views.py:188 views.py:523 #, python-format msgid "Are you sure you wish to grant the permissions %(title_suffix)s?" msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?" -#: views.py:197 views.py:538 +#: views.py:195 views.py:530 #, python-format msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." -#: views.py:203 views.py:544 +#: views.py:201 views.py:536 #, python-format msgid "" "%(actor)s, already had the permission \"%(permission)s\" granted for " @@ -186,60 +196,66 @@ msgstr "" "%(actor)s, already had the permission \"%(permission)s\" granted for " "%(object)s." -#: views.py:278 views.py:605 +#: views.py:274 views.py:595 #, python-format msgid " from %s" msgstr " from %s" -#: views.py:281 views.py:608 +#: views.py:277 views.py:598 #, python-format msgid "Are you sure you wish to revoke the permission %(title_suffix)s?" msgstr "Are you sure you wish to revoke the permission %(title_suffix)s?" -#: views.py:283 views.py:610 +#: views.py:279 views.py:600 #, python-format msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?" msgstr "Are you sure you wish to revoke the permissions %(title_suffix)s?" -#: views.py:290 views.py:617 +#: views.py:286 views.py:607 #, python-format msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." -#: views.py:296 views.py:623 +#: views.py:292 views.py:613 #, python-format msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." msgstr "" "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." -#: views.py:352 -#, python-format -msgid "add new holder for: %s" +#: views.py:346 +#, fuzzy, python-format +msgid "Add new holder for: %s" msgstr "add new holder for: %s" -#: views.py:353 views.py:485 +#: views.py:347 views.py:477 msgid "Select" msgstr "Select" -#: views.py:385 -msgid "classes" -msgstr "classes" - -#: views.py:387 -msgid "class" +#: views.py:381 +#, fuzzy +msgid "Class" msgstr "class" -#: views.py:406 -#, python-format -msgid "default access control lists for class: %s" +#: views.py:400 +#, fuzzy, python-format +msgid "Default access control lists for class: %s" msgstr "default access control lists for class: %s" -#: views.py:434 -#, python-format -msgid "permissions available to: %(actor)s for class %(class)s" +#: views.py:428 +#, fuzzy, python-format +msgid "Permissions available to: %(actor)s for class %(class)s" msgstr "permissions available to: %(actor)s for class %(class)s" -#: views.py:483 -#, python-format -msgid "add new holder for class: %s" +#: views.py:475 +#, fuzzy, python-format +msgid "Add new holder for class: %s" msgstr "add new holder for class: %s" + +#~ msgid "List of classes" +#~ msgstr "List of classes" + +#~ msgid "permission" +#~ msgstr "permission" + +#~ msgid "creator" +#~ msgstr "creator" diff --git a/mayan/apps/acls/locale/es/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/es/LC_MESSAGES/django.mo index ab3eb5591b..11dc9c8559 100644 Binary files a/mayan/apps/acls/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/es/LC_MESSAGES/django.po b/mayan/apps/acls/locale/es/LC_MESSAGES/django.po index ce07e1b11f..56a91f04f9 100644 --- a/mayan/apps/acls/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/es/LC_MESSAGES/django.po @@ -5,14 +5,15 @@ # Translators: # Translators: # jmcainzos , 2014 +# Lory977 , 2015 # Roberto Rosario, 2012 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2014-07-04 17:25+0000\n" -"Last-Translator: jmcainzos \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2015-01-14 20:07+0000\n" +"Last-Translator: Lory977 \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/mayan-edms/" "language/es/)\n" "Language: es\n" @@ -21,7 +22,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: forms.py:25 links.py:10 links.py:16 +#: forms.py:25 links.py:13 links.py:19 msgid "New holder" msgstr "Nuevo titular" @@ -41,31 +42,31 @@ msgstr "Roles" msgid "Special" msgstr "Especial" -#: links.py:6 +#: links.py:9 msgid "ACLs" msgstr "LCA" -#: links.py:7 links.py:15 -msgid "details" -msgstr "detalles" +#: links.py:10 links.py:18 +msgid "Details" +msgstr "Detalles" -#: links.py:8 links.py:17 -msgid "grant" -msgstr "otorgar" +#: links.py:11 links.py:20 +msgid "Grant" +msgstr "Otorgar" -#: links.py:9 links.py:18 -msgid "revoke" -msgstr "revocar" +#: links.py:12 links.py:21 +msgid "Revoke" +msgstr "Revocar" -#: links.py:12 +#: links.py:15 msgid "Default ACLs" msgstr "LCA por defecto" -#: links.py:13 -msgid "List of classes" -msgstr "Lista de clases" +#: links.py:16 views.py:379 +msgid "Classes" +msgstr "Clases" -#: links.py:14 +#: links.py:17 msgid "ACLs for class" msgstr "LCA para la clase" @@ -73,34 +74,30 @@ msgstr "LCA para la clase" msgid "Insufficient access." msgstr "Acceso insuficiente." -#: models.py:26 models.py:68 -msgid "permission" -msgstr "permiso" +#: models.py:25 models.py:67 +msgid "Permission" +msgstr "Autorización" + +#: models.py:51 +msgid "Access entry" +msgstr "Acceso autorizado" #: models.py:52 -msgid "access entry" -msgstr "entrada de acceso" +msgid "Access entries" +msgstr "las entradas de acceso" -#: models.py:53 -msgid "access entries" -msgstr "entradas de acceso" +#: models.py:88 +msgid "Default access entry" +msgstr "por defecto el acceso de entrada" #: models.py:89 -msgid "default access entry" -msgstr "entrada de acceso por defecto" - -#: models.py:90 -msgid "default access entries" +msgid "Default access entries" msgstr "entradas de acceso por defecto" -#: models.py:109 +#: models.py:108 models.py:111 models.py:112 msgid "Creator" msgstr "Creador" -#: models.py:112 models.py:113 -msgid "creator" -msgstr "creador" - #: permissions.py:7 permissions.py:8 msgid "Access control lists" msgstr "Listas de control de acceso" @@ -121,66 +118,66 @@ msgstr "Editar LCA por defecto de la clase" msgid "View class default ACLs" msgstr "Ver LCA por defecto de la clase" -#: views.py:46 +#: views.py:48 #, python-format -msgid "access control lists for: %s" +msgid "Access control lists for: %s" msgstr "listas de control de acceso para: %s" -#: views.py:48 views.py:408 -msgid "holder" +#: views.py:50 views.py:402 +msgid "Holder" msgstr "titular" -#: views.py:49 views.py:409 -msgid "permissions" -msgstr "permisos" +#: views.py:51 views.py:403 +msgid "Permissions" +msgstr "Autorizaciones" -#: views.py:96 +#: views.py:98 #, python-format -msgid "permissions available to: %(actor)s for %(obj)s" -msgstr "permisos disponibles para: %(actor)s para %(obj)s " +msgid "Permissions available to: %(actor)s for %(obj)s" +msgstr "Autorizaciones disponibles para: %(actor)s para %(obj)s" -#: views.py:103 views.py:441 -msgid "namespace" -msgstr "espacio de nombres" +#: views.py:105 views.py:434 +msgid "Namespace" +msgstr "Espacios nombrados" -#: views.py:104 views.py:442 -msgid "label" -msgstr "etiqueta" +#: views.py:106 views.py:435 +msgid "Label" +msgstr "Etiqueta" -#: views.py:106 views.py:444 -msgid "has permission" -msgstr "tiene permiso" +#: views.py:108 views.py:437 +msgid "Has permission" +msgstr "Tiene permiso" -#: views.py:183 views.py:276 views.py:524 views.py:603 +#: views.py:181 views.py:272 views.py:516 views.py:593 msgid ", " msgstr ", " -#: views.py:184 views.py:277 views.py:525 views.py:604 +#: views.py:182 views.py:273 views.py:517 views.py:594 #, python-format msgid " for %s" msgstr " para %s" -#: views.py:185 views.py:526 +#: views.py:183 views.py:518 #, python-format msgid " to %s" msgstr " a %s" -#: views.py:188 views.py:529 +#: views.py:186 views.py:521 #, python-format msgid "Are you sure you wish to grant the permission %(title_suffix)s?" msgstr "¿Está seguro que desea conceder el permiso %(title_suffix)s?" -#: views.py:190 views.py:531 +#: views.py:188 views.py:523 #, python-format msgid "Are you sure you wish to grant the permissions %(title_suffix)s?" msgstr "¿Está seguro que desea conceder los permisos de %(title_suffix)s?" -#: views.py:197 views.py:538 +#: views.py:195 views.py:530 #, python-format msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." msgstr "Permiso \"%(permission)s\" otorgado a %(actor)s para %(object)s." -#: views.py:203 views.py:544 +#: views.py:201 views.py:536 #, python-format msgid "" "%(actor)s, already had the permission \"%(permission)s\" granted for " @@ -188,59 +185,64 @@ msgid "" msgstr "" "%(actor)s, ya tenía el permiso \"%(permission)s\", otorgado para %(object)s." -#: views.py:278 views.py:605 +#: views.py:274 views.py:595 #, python-format msgid " from %s" msgstr " de %s" -#: views.py:281 views.py:608 +#: views.py:277 views.py:598 #, python-format msgid "Are you sure you wish to revoke the permission %(title_suffix)s?" msgstr "¿Está seguro que desea revocar el permiso %(title_suffix)s?" -#: views.py:283 views.py:610 +#: views.py:279 views.py:600 #, python-format msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?" msgstr "¿Está seguro de querer revocar los permisos %(title_suffix)s?" -#: views.py:290 views.py:617 +#: views.py:286 views.py:607 #, python-format msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." msgstr "Permiso \"%(permission)s\" revocado del %(actor)s para %(object)s." -#: views.py:296 views.py:623 +#: views.py:292 views.py:613 #, python-format msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." msgstr "%(actor)s, no tenía el permiso \"%(permission)s\" para %(object)s." -#: views.py:352 +#: views.py:346 #, python-format -msgid "add new holder for: %s" +msgid "Add new holder for: %s" msgstr "añadir nuevo titular para: %s" -#: views.py:353 views.py:485 +#: views.py:347 views.py:477 msgid "Select" msgstr "Seleccionar" -#: views.py:385 -msgid "classes" -msgstr "clases" +#: views.py:381 +msgid "Class" +msgstr "Clase" -#: views.py:387 -msgid "class" -msgstr "clase" - -#: views.py:406 +#: views.py:400 #, python-format -msgid "default access control lists for class: %s" +msgid "Default access control lists for class: %s" msgstr "listas de control de acceso por defecto para la clase: %s" -#: views.py:434 +#: views.py:428 #, python-format -msgid "permissions available to: %(actor)s for class %(class)s" +msgid "Permissions available to: %(actor)s for class %(class)s" msgstr "permisos disponibles para: %(actor)s para la clase %(class)s " -#: views.py:483 +#: views.py:475 #, python-format -msgid "add new holder for class: %s" +msgid "Add new holder for class: %s" msgstr "añadir nuevo titular para la clase: %s" + +#~ msgid "List of classes" +#~ msgstr "List of classes" + +#~ msgid "permission" +#~ msgstr "permission" + +#~ msgid "creator" +#~ msgstr "creator" diff --git a/mayan/apps/acls/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/fa/LC_MESSAGES/django.mo index a1ed364f86..d216f8338c 100644 Binary files a/mayan/apps/acls/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/fa/LC_MESSAGES/django.po b/mayan/apps/acls/locale/fa/LC_MESSAGES/django.po index 6cbdb6e6b0..d27a9892b4 100644 --- a/mayan/apps/acls/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/fa/LC_MESSAGES/django.po @@ -3,13 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: +# Mehdi Amani , 2014 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2013-06-16 18:57+0000\n" -"Last-Translator: Roberto Rosario\n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2014-10-30 13:05+0000\n" +"Last-Translator: Mehdi Amani \n" "Language-Team: Persian (http://www.transifex.com/projects/p/mayan-edms/" "language/fa/)\n" "Language: fa\n" @@ -18,225 +20,226 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: forms.py:25 links.py:10 links.py:16 +#: forms.py:25 links.py:13 links.py:19 msgid "New holder" -msgstr "" +msgstr "دارنده مجوز جدید" #: forms.py:42 msgid "Users" -msgstr "" +msgstr "کاربران" #: forms.py:45 msgid "Groups" -msgstr "" +msgstr "گروه ها" #: forms.py:48 msgid "Roles" -msgstr "" +msgstr "رل ها" #: forms.py:51 msgid "Special" -msgstr "" +msgstr "ویژه" -#: links.py:6 +#: links.py:9 msgid "ACLs" -msgstr "" +msgstr "لیست دسترسی ها (ACLs)" -#: links.py:7 links.py:15 -msgid "details" -msgstr "" +#: links.py:10 links.py:18 +msgid "Details" +msgstr "جزئیات" -#: links.py:8 links.py:17 -msgid "grant" -msgstr "" +#: links.py:11 links.py:20 +msgid "Grant" +msgstr "دادن اجازه" -#: links.py:9 links.py:18 -msgid "revoke" -msgstr "" +#: links.py:12 links.py:21 +msgid "Revoke" +msgstr "پس گرفتن" -#: links.py:12 +#: links.py:15 msgid "Default ACLs" -msgstr "" +msgstr "لیست دسترسی های پیش فرض" -#: links.py:13 -msgid "List of classes" -msgstr "" +#: links.py:16 views.py:379 +msgid "Classes" +msgstr "کلاس ها" -#: links.py:14 +#: links.py:17 msgid "ACLs for class" -msgstr "" +msgstr "لیست دسترسیها برای کلاس" #: managers.py:118 managers.py:130 msgid "Insufficient access." -msgstr "" +msgstr "دسترسی ناکافی" -#: models.py:26 models.py:68 -msgid "permission" -msgstr "" +#: models.py:25 models.py:67 +msgid "Permission" +msgstr "مجوز" + +#: models.py:51 +msgid "Access entry" +msgstr "ورودی دسترسی" #: models.py:52 -msgid "access entry" -msgstr "" +msgid "Access entries" +msgstr "ورودیهای دسترسی" -#: models.py:53 -msgid "access entries" -msgstr "" +#: models.py:88 +msgid "Default access entry" +msgstr "ورودی دسترسی پیش فرض" #: models.py:89 -msgid "default access entry" -msgstr "" +msgid "Default access entries" +msgstr "ورودیهای دسترسی پیش فرض" -#: models.py:90 -msgid "default access entries" -msgstr "" - -#: models.py:109 +#: models.py:108 models.py:111 models.py:112 msgid "Creator" -msgstr "" - -#: models.py:112 models.py:113 -msgid "creator" -msgstr "" +msgstr "خالق" #: permissions.py:7 permissions.py:8 msgid "Access control lists" -msgstr "" +msgstr "لیست کنترل دسترسی ها" #: permissions.py:10 msgid "Edit ACLs" -msgstr "" +msgstr "ویرایش دسترسی ها" #: permissions.py:11 msgid "View ACLs" -msgstr "" +msgstr "دیدن دسترسی ها" #: permissions.py:13 msgid "Edit class default ACLs" -msgstr "" +msgstr "ویرایش دسترسی های پیش فرض کلاس" #: permissions.py:14 msgid "View class default ACLs" -msgstr "" +msgstr "دیدن دسترسی های پیش فرض کلاس" -#: views.py:46 +#: views.py:48 #, python-format -msgid "access control lists for: %s" -msgstr "" +msgid "Access control lists for: %s" +msgstr "لیست کنترل دسترسی ها برای : %s" -#: views.py:48 views.py:408 -msgid "holder" -msgstr "" +#: views.py:50 views.py:402 +msgid "Holder" +msgstr "دارنده" -#: views.py:49 views.py:409 -msgid "permissions" -msgstr "" +#: views.py:51 views.py:403 +msgid "Permissions" +msgstr "مجوزها" -#: views.py:96 +#: views.py:98 #, python-format -msgid "permissions available to: %(actor)s for %(obj)s" -msgstr "" +msgid "Permissions available to: %(actor)s for %(obj)s" +msgstr "مجوزها : %(actor)sبرای %(obj)s" -#: views.py:103 views.py:441 -msgid "namespace" -msgstr "" +#: views.py:105 views.py:434 +msgid "Namespace" +msgstr "فضای نام" -#: views.py:104 views.py:442 -msgid "label" -msgstr "" +#: views.py:106 views.py:435 +msgid "Label" +msgstr "برچسب" -#: views.py:106 views.py:444 -msgid "has permission" -msgstr "" +#: views.py:108 views.py:437 +msgid "Has permission" +msgstr "دارای مجوز" -#: views.py:183 views.py:276 views.py:524 views.py:603 +#: views.py:181 views.py:272 views.py:516 views.py:593 msgid ", " -msgstr "" +msgstr "," -#: views.py:184 views.py:277 views.py:525 views.py:604 +#: views.py:182 views.py:273 views.py:517 views.py:594 #, python-format msgid " for %s" -msgstr "" +msgstr "برای %s" -#: views.py:185 views.py:526 +#: views.py:183 views.py:518 #, python-format msgid " to %s" -msgstr "" +msgstr "به %s" -#: views.py:188 views.py:529 +#: views.py:186 views.py:521 #, python-format msgid "Are you sure you wish to grant the permission %(title_suffix)s?" -msgstr "" +msgstr "آیا از دادن مجوز به %(title_suffix)s مطمئن هستید؟" -#: views.py:190 views.py:531 +#: views.py:188 views.py:523 #, python-format msgid "Are you sure you wish to grant the permissions %(title_suffix)s?" -msgstr "" +msgstr "آیا از دادن مجوز به %(title_suffix)s مطمئن هستید؟" -#: views.py:197 views.py:538 +#: views.py:195 views.py:530 #, python-format msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." -msgstr "" +msgstr "مجوز \"%(permission)s\" داده شده به %(actor)s برای %(object)s." -#: views.py:203 views.py:544 +#: views.py:201 views.py:536 #, python-format msgid "" "%(actor)s, already had the permission \"%(permission)s\" granted for " "%(object)s." -msgstr "" +msgstr "%(actor)s دارای مجوز %(permission)s برروی %(object)s میباشد." -#: views.py:278 views.py:605 +#: views.py:274 views.py:595 #, python-format msgid " from %s" -msgstr "" +msgstr "از %s" -#: views.py:281 views.py:608 +#: views.py:277 views.py:598 #, python-format msgid "Are you sure you wish to revoke the permission %(title_suffix)s?" -msgstr "" +msgstr "آیا مطمئن هستید که میخواهید مجوز %(title_suffix)s را لغو کنید؟" -#: views.py:283 views.py:610 +#: views.py:279 views.py:600 #, python-format msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?" -msgstr "" +msgstr "آیا مطمئن هستید که میخواهید مجوز %(title_suffix)s را لغو کنید؟" -#: views.py:290 views.py:617 +#: views.py:286 views.py:607 #, python-format msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." -msgstr "" +msgstr "مجوز \"%(permission)s از %(actor)s برای %(object)s گرفته شد." -#: views.py:296 views.py:623 +#: views.py:292 views.py:613 #, python-format msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." -msgstr "" +msgstr "%(actor)s مجوز %(permission)s را برای %(object)s نداشت." -#: views.py:352 +#: views.py:346 #, python-format -msgid "add new holder for: %s" -msgstr "" +msgid "Add new holder for: %s" +msgstr "ایجاد دارنده برای: %s" -#: views.py:353 views.py:485 +#: views.py:347 views.py:477 msgid "Select" -msgstr "" +msgstr "انتخاب" -#: views.py:385 -msgid "classes" -msgstr "" +#: views.py:381 +msgid "Class" +msgstr "کلاس" -#: views.py:387 -msgid "class" -msgstr "" - -#: views.py:406 +#: views.py:400 #, python-format -msgid "default access control lists for class: %s" -msgstr "" +msgid "Default access control lists for class: %s" +msgstr "لیست کنترل دسترسی پیش فرض برای کلاس : %s" -#: views.py:434 +#: views.py:428 #, python-format -msgid "permissions available to: %(actor)s for class %(class)s" -msgstr "" +msgid "Permissions available to: %(actor)s for class %(class)s" +msgstr "مجوزها : %(actor)s برای کلاس %(class)s" -#: views.py:483 +#: views.py:475 #, python-format -msgid "add new holder for class: %s" -msgstr "" +msgid "Add new holder for class: %s" +msgstr "دارنده جدید برای کلاس : %s" + +#~ msgid "List of classes" +#~ msgstr "List of classes" + +#~ msgid "permission" +#~ msgstr "permission" + +#~ msgid "creator" +#~ msgstr "creator" diff --git a/mayan/apps/acls/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/fr/LC_MESSAGES/django.mo index 9d040970f5..9b96a86ab9 100644 Binary files a/mayan/apps/acls/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/fr/LC_MESSAGES/django.po b/mayan/apps/acls/locale/fr/LC_MESSAGES/django.po index 04422584cd..4ca9138e56 100644 --- a/mayan/apps/acls/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/fr/LC_MESSAGES/django.po @@ -3,14 +3,16 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: -# Pierre Lhoste , 2012 +# Translators: +# Christophe kryskool , 2014 +# Pierre Lhoste , 2012 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-07-28 15:20+0000\n" -"Last-Translator: Pierre Lhoste \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2014-11-02 08:22+0000\n" +"Last-Translator: Christophe kryskool \n" "Language-Team: French (http://www.transifex.com/projects/p/mayan-edms/" "language/fr/)\n" "Language: fr\n" @@ -19,7 +21,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: forms.py:25 links.py:10 links.py:16 +#: forms.py:25 links.py:13 links.py:19 msgid "New holder" msgstr "Nouveau détenteur" @@ -39,31 +41,31 @@ msgstr "Rôles" msgid "Special" msgstr "Spécial" -#: links.py:6 +#: links.py:9 msgid "ACLs" msgstr "ACLs" -#: links.py:7 links.py:15 -msgid "details" -msgstr "détails" +#: links.py:10 links.py:18 +msgid "Details" +msgstr "Détails" -#: links.py:8 links.py:17 -msgid "grant" -msgstr "autoriser" +#: links.py:11 links.py:20 +msgid "Grant" +msgstr "Attribuer" -#: links.py:9 links.py:18 -msgid "revoke" -msgstr "révoquer" +#: links.py:12 links.py:21 +msgid "Revoke" +msgstr "Retirer" -#: links.py:12 +#: links.py:15 msgid "Default ACLs" msgstr "ACLs par défaut" -#: links.py:13 -msgid "List of classes" -msgstr "Liste des classes" +#: links.py:16 views.py:379 +msgid "Classes" +msgstr "Classes" -#: links.py:14 +#: links.py:17 msgid "ACLs for class" msgstr "ACLs pour la classe" @@ -71,34 +73,30 @@ msgstr "ACLs pour la classe" msgid "Insufficient access." msgstr "Autorisations insuffisantes." -#: models.py:26 models.py:68 -msgid "permission" -msgstr "autorisation" +#: models.py:25 models.py:67 +msgid "Permission" +msgstr "Droit" + +#: models.py:51 +msgid "Access entry" +msgstr "Autorisation d'accès" #: models.py:52 -msgid "access entry" -msgstr "autorisation d'accès" +msgid "Access entries" +msgstr "Autorisations d'accès" -#: models.py:53 -msgid "access entries" -msgstr "autorisations d'accès" +#: models.py:88 +msgid "Default access entry" +msgstr "Autorisation d'accès par défaut" #: models.py:89 -msgid "default access entry" -msgstr "autorisation d'accès par défaut" +msgid "Default access entries" +msgstr "Autorisations d'accès par défaut" -#: models.py:90 -msgid "default access entries" -msgstr "autorisations d'accès par défaut" - -#: models.py:109 +#: models.py:108 models.py:111 models.py:112 msgid "Creator" msgstr "Créateur" -#: models.py:112 models.py:113 -msgid "creator" -msgstr "créateur" - #: permissions.py:7 permissions.py:8 msgid "Access control lists" msgstr "Listes de contrôle d'accès (ACL)" @@ -119,68 +117,68 @@ msgstr "Modifier ACLs par défaut" msgid "View class default ACLs" msgstr "Afficher ACLs par défaut pour la classe" -#: views.py:46 +#: views.py:48 #, python-format -msgid "access control lists for: %s" +msgid "Access control lists for: %s" msgstr "Liste de contrôle d'accès (ACL) pour: %s" -#: views.py:48 views.py:408 -msgid "holder" -msgstr "détenteur" +#: views.py:50 views.py:402 +msgid "Holder" +msgstr "Détenteur" -#: views.py:49 views.py:409 -msgid "permissions" -msgstr "autorisations" +#: views.py:51 views.py:403 +msgid "Permissions" +msgstr "Droits" -#: views.py:96 +#: views.py:98 #, python-format -msgid "permissions available to: %(actor)s for %(obj)s" -msgstr "autorisations pour: %(actor)s for %(obj)s" +msgid "Permissions available to: %(actor)s for %(obj)s" +msgstr "Autorisations pour: %(actor)s for %(obj)s" -#: views.py:103 views.py:441 -msgid "namespace" -msgstr "espace de nommage" +#: views.py:105 views.py:434 +msgid "Namespace" +msgstr "Espace de nommage" -#: views.py:104 views.py:442 -msgid "label" -msgstr "label" +#: views.py:106 views.py:435 +msgid "Label" +msgstr "Étiquette" -#: views.py:106 views.py:444 -msgid "has permission" -msgstr "autorisation accordée " +#: views.py:108 views.py:437 +msgid "Has permission" +msgstr "Autorisation accordée " -#: views.py:183 views.py:276 views.py:524 views.py:603 +#: views.py:181 views.py:272 views.py:516 views.py:593 msgid ", " msgstr "," -#: views.py:184 views.py:277 views.py:525 views.py:604 +#: views.py:182 views.py:273 views.py:517 views.py:594 #, python-format msgid " for %s" msgstr "à %s" -#: views.py:185 views.py:526 +#: views.py:183 views.py:518 #, python-format msgid " to %s" msgstr "sur %s" -#: views.py:188 views.py:529 +#: views.py:186 views.py:521 #, python-format msgid "Are you sure you wish to grant the permission %(title_suffix)s?" msgstr "" "Êtes vous certain de vouloir attribuer l'autorisation %(title_suffix)s?" -#: views.py:190 views.py:531 +#: views.py:188 views.py:523 #, python-format msgid "Are you sure you wish to grant the permissions %(title_suffix)s?" msgstr "" "Êtes vous certain de vouloir attribuer les autorisations %(title_suffix)s?" -#: views.py:197 views.py:538 +#: views.py:195 views.py:530 #, python-format msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." msgstr "Autorisation \"%(permission)s\" accordée à %(actor)s sur %(object)s." -#: views.py:203 views.py:544 +#: views.py:201 views.py:536 #, python-format msgid "" "%(actor)s, already had the permission \"%(permission)s\" granted for " @@ -189,61 +187,66 @@ msgstr "" "%(actor)s, dispose déjà de l'autorisation \"%(permission)s\" accordée sur " "%(object)s." -#: views.py:278 views.py:605 +#: views.py:274 views.py:595 #, python-format msgid " from %s" msgstr "de %s" -#: views.py:281 views.py:608 +#: views.py:277 views.py:598 #, python-format msgid "Are you sure you wish to revoke the permission %(title_suffix)s?" msgstr "Êtes vous certain de vouloir révoquer l'autorisation %(title_suffix)s?" -#: views.py:283 views.py:610 +#: views.py:279 views.py:600 #, python-format msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?" msgstr "" "Êtes vous certain de vouloir révoquer les autorisations %(title_suffix)s?" -#: views.py:290 views.py:617 +#: views.py:286 views.py:607 #, python-format msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." msgstr "" "Autorisation \"%(permission)s\" révoquée pour %(actor)s sur %(object)s." -#: views.py:296 views.py:623 +#: views.py:292 views.py:613 #, python-format msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." msgstr "%(actor)s, n'a pas l'autorisation \"%(permission)s\" sur %(object)s." -#: views.py:352 +#: views.py:346 #, python-format -msgid "add new holder for: %s" -msgstr "ajouter un nouveau détenteur pour: %s" +msgid "Add new holder for: %s" +msgstr "Ajouter un nouveau détenteur pour: %s" -#: views.py:353 views.py:485 +#: views.py:347 views.py:477 msgid "Select" msgstr "Sélectionner" -#: views.py:385 -msgid "classes" -msgstr "classes" +#: views.py:381 +msgid "Class" +msgstr "Classe" -#: views.py:387 -msgid "class" -msgstr "classe" - -#: views.py:406 +#: views.py:400 #, python-format -msgid "default access control lists for class: %s" -msgstr "liste de contrôle d'accès (ACL) par défaut pour: %s" +msgid "Default access control lists for class: %s" +msgstr "Liste de contrôle d'accès (ACL) par défaut pour: %s" -#: views.py:434 +#: views.py:428 #, python-format -msgid "permissions available to: %(actor)s for class %(class)s" -msgstr "autorisations attribuées à: %(actor)s sur la classe %(class)s" +msgid "Permissions available to: %(actor)s for class %(class)s" +msgstr "Autorisations attribuées à: %(actor)s sur la classe %(class)s" -#: views.py:483 +#: views.py:475 #, python-format -msgid "add new holder for class: %s" -msgstr "ajouter un nouveau détenteur sur la classe: %s" +msgid "Add new holder for class: %s" +msgstr "Ajouter un nouveau détenteur sur la classe: %s" + +#~ msgid "List of classes" +#~ msgstr "List of classes" + +#~ msgid "permission" +#~ msgstr "permission" + +#~ msgid "creator" +#~ msgstr "creator" diff --git a/mayan/apps/acls/locale/hr_HR/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/hr_HR/LC_MESSAGES/django.mo index 69633f5e65..ebb4be9bf3 100644 Binary files a/mayan/apps/acls/locale/hr_HR/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/hr_HR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/hr_HR/LC_MESSAGES/django.po b/mayan/apps/acls/locale/hr_HR/LC_MESSAGES/django.po index 074211ec74..b36db46a02 100644 --- a/mayan/apps/acls/locale/hr_HR/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/hr_HR/LC_MESSAGES/django.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-01-02 09:45+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2014-10-25 06:47+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Croatian (Croatia) (http://www.transifex.com/projects/p/mayan-" "edms/language/hr_HR/)\n" "Language: hr_HR\n" @@ -19,7 +20,7 @@ msgstr "" "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" -#: forms.py:25 links.py:10 links.py:16 +#: forms.py:25 links.py:13 links.py:19 msgid "New holder" msgstr "" @@ -39,31 +40,31 @@ msgstr "" msgid "Special" msgstr "" -#: links.py:6 +#: links.py:9 msgid "ACLs" msgstr "" -#: links.py:7 links.py:15 -msgid "details" +#: links.py:10 links.py:18 +msgid "Details" msgstr "" -#: links.py:8 links.py:17 -msgid "grant" +#: links.py:11 links.py:20 +msgid "Grant" msgstr "" -#: links.py:9 links.py:18 -msgid "revoke" +#: links.py:12 links.py:21 +msgid "Revoke" msgstr "" -#: links.py:12 +#: links.py:15 msgid "Default ACLs" msgstr "" -#: links.py:13 -msgid "List of classes" +#: links.py:16 views.py:379 +msgid "Classes" msgstr "" -#: links.py:14 +#: links.py:17 msgid "ACLs for class" msgstr "" @@ -71,34 +72,30 @@ msgstr "" msgid "Insufficient access." msgstr "" -#: models.py:26 models.py:68 -msgid "permission" +#: models.py:25 models.py:67 +msgid "Permission" +msgstr "" + +#: models.py:51 +msgid "Access entry" msgstr "" #: models.py:52 -msgid "access entry" +msgid "Access entries" msgstr "" -#: models.py:53 -msgid "access entries" +#: models.py:88 +msgid "Default access entry" msgstr "" #: models.py:89 -msgid "default access entry" +msgid "Default access entries" msgstr "" -#: models.py:90 -msgid "default access entries" -msgstr "" - -#: models.py:109 +#: models.py:108 models.py:111 models.py:112 msgid "Creator" msgstr "" -#: models.py:112 models.py:113 -msgid "creator" -msgstr "" - #: permissions.py:7 permissions.py:8 msgid "Access control lists" msgstr "" @@ -119,125 +116,130 @@ msgstr "" msgid "View class default ACLs" msgstr "" -#: views.py:46 +#: views.py:48 #, python-format -msgid "access control lists for: %s" +msgid "Access control lists for: %s" msgstr "" -#: views.py:48 views.py:408 -msgid "holder" +#: views.py:50 views.py:402 +msgid "Holder" msgstr "" -#: views.py:49 views.py:409 -msgid "permissions" +#: views.py:51 views.py:403 +msgid "Permissions" msgstr "" -#: views.py:96 +#: views.py:98 #, python-format -msgid "permissions available to: %(actor)s for %(obj)s" +msgid "Permissions available to: %(actor)s for %(obj)s" msgstr "" -#: views.py:103 views.py:441 -msgid "namespace" +#: views.py:105 views.py:434 +msgid "Namespace" msgstr "" -#: views.py:104 views.py:442 -msgid "label" +#: views.py:106 views.py:435 +msgid "Label" msgstr "" -#: views.py:106 views.py:444 -msgid "has permission" +#: views.py:108 views.py:437 +msgid "Has permission" msgstr "" -#: views.py:183 views.py:276 views.py:524 views.py:603 +#: views.py:181 views.py:272 views.py:516 views.py:593 msgid ", " msgstr "" -#: views.py:184 views.py:277 views.py:525 views.py:604 +#: views.py:182 views.py:273 views.py:517 views.py:594 #, python-format msgid " for %s" msgstr "" -#: views.py:185 views.py:526 +#: views.py:183 views.py:518 #, python-format msgid " to %s" msgstr "" -#: views.py:188 views.py:529 +#: views.py:186 views.py:521 #, python-format msgid "Are you sure you wish to grant the permission %(title_suffix)s?" msgstr "" -#: views.py:190 views.py:531 +#: views.py:188 views.py:523 #, python-format msgid "Are you sure you wish to grant the permissions %(title_suffix)s?" msgstr "" -#: views.py:197 views.py:538 +#: views.py:195 views.py:530 #, python-format msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." msgstr "" -#: views.py:203 views.py:544 +#: views.py:201 views.py:536 #, python-format msgid "" "%(actor)s, already had the permission \"%(permission)s\" granted for " "%(object)s." msgstr "" -#: views.py:278 views.py:605 +#: views.py:274 views.py:595 #, python-format msgid " from %s" msgstr "" -#: views.py:281 views.py:608 +#: views.py:277 views.py:598 #, python-format msgid "Are you sure you wish to revoke the permission %(title_suffix)s?" msgstr "" -#: views.py:283 views.py:610 +#: views.py:279 views.py:600 #, python-format msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?" msgstr "" -#: views.py:290 views.py:617 +#: views.py:286 views.py:607 #, python-format msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." msgstr "" -#: views.py:296 views.py:623 +#: views.py:292 views.py:613 #, python-format msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." msgstr "" -#: views.py:352 +#: views.py:346 #, python-format -msgid "add new holder for: %s" +msgid "Add new holder for: %s" msgstr "" -#: views.py:353 views.py:485 +#: views.py:347 views.py:477 msgid "Select" msgstr "" -#: views.py:385 -msgid "classes" +#: views.py:381 +msgid "Class" msgstr "" -#: views.py:387 -msgid "class" -msgstr "" - -#: views.py:406 +#: views.py:400 #, python-format -msgid "default access control lists for class: %s" +msgid "Default access control lists for class: %s" msgstr "" -#: views.py:434 +#: views.py:428 #, python-format -msgid "permissions available to: %(actor)s for class %(class)s" +msgid "Permissions available to: %(actor)s for class %(class)s" msgstr "" -#: views.py:483 +#: views.py:475 #, python-format -msgid "add new holder for class: %s" +msgid "Add new holder for class: %s" msgstr "" + +#~ msgid "List of classes" +#~ msgstr "List of classes" + +#~ msgid "permission" +#~ msgstr "permission" + +#~ msgid "creator" +#~ msgstr "creator" diff --git a/mayan/apps/acls/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/hu/LC_MESSAGES/django.mo index 1823b367c3..bb25e6987c 100644 Binary files a/mayan/apps/acls/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/hu/LC_MESSAGES/django.po b/mayan/apps/acls/locale/hu/LC_MESSAGES/django.po index eadce93221..ee0982318a 100644 --- a/mayan/apps/acls/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/hu/LC_MESSAGES/django.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2014-07-17 06:16+0000\n" -"Last-Translator: Dezső József \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2014-10-25 06:47+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Hungarian (http://www.transifex.com/projects/p/mayan-edms/" "language/hu/)\n" "Language: hu\n" @@ -20,7 +20,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: forms.py:25 links.py:10 links.py:16 +#: forms.py:25 links.py:13 links.py:19 msgid "New holder" msgstr "" @@ -40,31 +40,31 @@ msgstr "" msgid "Special" msgstr "" -#: links.py:6 +#: links.py:9 msgid "ACLs" msgstr "ACL-ek" -#: links.py:7 links.py:15 -msgid "details" -msgstr "részletek" - -#: links.py:8 links.py:17 -msgid "grant" +#: links.py:10 links.py:18 +msgid "Details" msgstr "" -#: links.py:9 links.py:18 -msgid "revoke" +#: links.py:11 links.py:20 +msgid "Grant" msgstr "" -#: links.py:12 +#: links.py:12 links.py:21 +msgid "Revoke" +msgstr "" + +#: links.py:15 msgid "Default ACLs" msgstr "" -#: links.py:13 -msgid "List of classes" +#: links.py:16 views.py:379 +msgid "Classes" msgstr "" -#: links.py:14 +#: links.py:17 msgid "ACLs for class" msgstr "" @@ -72,34 +72,30 @@ msgstr "" msgid "Insufficient access." msgstr "" -#: models.py:26 models.py:68 -msgid "permission" +#: models.py:25 models.py:67 +msgid "Permission" +msgstr "" + +#: models.py:51 +msgid "Access entry" msgstr "" #: models.py:52 -msgid "access entry" +msgid "Access entries" msgstr "" -#: models.py:53 -msgid "access entries" +#: models.py:88 +msgid "Default access entry" msgstr "" #: models.py:89 -msgid "default access entry" +msgid "Default access entries" msgstr "" -#: models.py:90 -msgid "default access entries" -msgstr "" - -#: models.py:109 +#: models.py:108 models.py:111 models.py:112 msgid "Creator" msgstr "" -#: models.py:112 models.py:113 -msgid "creator" -msgstr "" - #: permissions.py:7 permissions.py:8 msgid "Access control lists" msgstr "" @@ -120,125 +116,130 @@ msgstr "" msgid "View class default ACLs" msgstr "" -#: views.py:46 +#: views.py:48 #, python-format -msgid "access control lists for: %s" +msgid "Access control lists for: %s" msgstr "" -#: views.py:48 views.py:408 -msgid "holder" +#: views.py:50 views.py:402 +msgid "Holder" msgstr "" -#: views.py:49 views.py:409 -msgid "permissions" +#: views.py:51 views.py:403 +msgid "Permissions" msgstr "" -#: views.py:96 +#: views.py:98 #, python-format -msgid "permissions available to: %(actor)s for %(obj)s" +msgid "Permissions available to: %(actor)s for %(obj)s" msgstr "" -#: views.py:103 views.py:441 -msgid "namespace" +#: views.py:105 views.py:434 +msgid "Namespace" msgstr "" -#: views.py:104 views.py:442 -msgid "label" +#: views.py:106 views.py:435 +msgid "Label" msgstr "" -#: views.py:106 views.py:444 -msgid "has permission" +#: views.py:108 views.py:437 +msgid "Has permission" msgstr "" -#: views.py:183 views.py:276 views.py:524 views.py:603 +#: views.py:181 views.py:272 views.py:516 views.py:593 msgid ", " msgstr "" -#: views.py:184 views.py:277 views.py:525 views.py:604 +#: views.py:182 views.py:273 views.py:517 views.py:594 #, python-format msgid " for %s" msgstr "" -#: views.py:185 views.py:526 +#: views.py:183 views.py:518 #, python-format msgid " to %s" msgstr "" -#: views.py:188 views.py:529 +#: views.py:186 views.py:521 #, python-format msgid "Are you sure you wish to grant the permission %(title_suffix)s?" msgstr "" -#: views.py:190 views.py:531 +#: views.py:188 views.py:523 #, python-format msgid "Are you sure you wish to grant the permissions %(title_suffix)s?" msgstr "" -#: views.py:197 views.py:538 +#: views.py:195 views.py:530 #, python-format msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." msgstr "" -#: views.py:203 views.py:544 +#: views.py:201 views.py:536 #, python-format msgid "" "%(actor)s, already had the permission \"%(permission)s\" granted for " "%(object)s." msgstr "" -#: views.py:278 views.py:605 +#: views.py:274 views.py:595 #, python-format msgid " from %s" msgstr "" -#: views.py:281 views.py:608 +#: views.py:277 views.py:598 #, python-format msgid "Are you sure you wish to revoke the permission %(title_suffix)s?" msgstr "" -#: views.py:283 views.py:610 +#: views.py:279 views.py:600 #, python-format msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?" msgstr "" -#: views.py:290 views.py:617 +#: views.py:286 views.py:607 #, python-format msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." msgstr "" -#: views.py:296 views.py:623 +#: views.py:292 views.py:613 #, python-format msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." msgstr "" -#: views.py:352 +#: views.py:346 #, python-format -msgid "add new holder for: %s" +msgid "Add new holder for: %s" msgstr "" -#: views.py:353 views.py:485 +#: views.py:347 views.py:477 msgid "Select" msgstr "" -#: views.py:385 -msgid "classes" +#: views.py:381 +msgid "Class" msgstr "" -#: views.py:387 -msgid "class" -msgstr "" - -#: views.py:406 +#: views.py:400 #, python-format -msgid "default access control lists for class: %s" +msgid "Default access control lists for class: %s" msgstr "" -#: views.py:434 +#: views.py:428 #, python-format -msgid "permissions available to: %(actor)s for class %(class)s" +msgid "Permissions available to: %(actor)s for class %(class)s" msgstr "" -#: views.py:483 +#: views.py:475 #, python-format -msgid "add new holder for class: %s" +msgid "Add new holder for class: %s" msgstr "" + +#~ msgid "List of classes" +#~ msgstr "List of classes" + +#~ msgid "permission" +#~ msgstr "permission" + +#~ msgid "creator" +#~ msgstr "creator" diff --git a/mayan/apps/acls/locale/id/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/id/LC_MESSAGES/django.mo index 6c332c551b..3cdb0dcc56 100644 Binary files a/mayan/apps/acls/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/id/LC_MESSAGES/django.po b/mayan/apps/acls/locale/id/LC_MESSAGES/django.po index ee51498cb0..6aa74ae560 100644 --- a/mayan/apps/acls/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/id/LC_MESSAGES/django.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-01-02 09:45+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2014-10-25 06:47+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Indonesian (http://www.transifex.com/projects/p/mayan-edms/" "language/id/)\n" "Language: id\n" @@ -18,7 +19,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: forms.py:25 links.py:10 links.py:16 +#: forms.py:25 links.py:13 links.py:19 msgid "New holder" msgstr "" @@ -38,31 +39,31 @@ msgstr "" msgid "Special" msgstr "" -#: links.py:6 +#: links.py:9 msgid "ACLs" msgstr "" -#: links.py:7 links.py:15 -msgid "details" +#: links.py:10 links.py:18 +msgid "Details" msgstr "" -#: links.py:8 links.py:17 -msgid "grant" +#: links.py:11 links.py:20 +msgid "Grant" msgstr "" -#: links.py:9 links.py:18 -msgid "revoke" +#: links.py:12 links.py:21 +msgid "Revoke" msgstr "" -#: links.py:12 +#: links.py:15 msgid "Default ACLs" msgstr "" -#: links.py:13 -msgid "List of classes" +#: links.py:16 views.py:379 +msgid "Classes" msgstr "" -#: links.py:14 +#: links.py:17 msgid "ACLs for class" msgstr "" @@ -70,34 +71,30 @@ msgstr "" msgid "Insufficient access." msgstr "" -#: models.py:26 models.py:68 -msgid "permission" +#: models.py:25 models.py:67 +msgid "Permission" +msgstr "" + +#: models.py:51 +msgid "Access entry" msgstr "" #: models.py:52 -msgid "access entry" +msgid "Access entries" msgstr "" -#: models.py:53 -msgid "access entries" +#: models.py:88 +msgid "Default access entry" msgstr "" #: models.py:89 -msgid "default access entry" +msgid "Default access entries" msgstr "" -#: models.py:90 -msgid "default access entries" -msgstr "" - -#: models.py:109 +#: models.py:108 models.py:111 models.py:112 msgid "Creator" msgstr "" -#: models.py:112 models.py:113 -msgid "creator" -msgstr "" - #: permissions.py:7 permissions.py:8 msgid "Access control lists" msgstr "" @@ -118,125 +115,130 @@ msgstr "" msgid "View class default ACLs" msgstr "" -#: views.py:46 +#: views.py:48 #, python-format -msgid "access control lists for: %s" +msgid "Access control lists for: %s" msgstr "" -#: views.py:48 views.py:408 -msgid "holder" +#: views.py:50 views.py:402 +msgid "Holder" msgstr "" -#: views.py:49 views.py:409 -msgid "permissions" +#: views.py:51 views.py:403 +msgid "Permissions" msgstr "" -#: views.py:96 +#: views.py:98 #, python-format -msgid "permissions available to: %(actor)s for %(obj)s" +msgid "Permissions available to: %(actor)s for %(obj)s" msgstr "" -#: views.py:103 views.py:441 -msgid "namespace" +#: views.py:105 views.py:434 +msgid "Namespace" msgstr "" -#: views.py:104 views.py:442 -msgid "label" +#: views.py:106 views.py:435 +msgid "Label" msgstr "" -#: views.py:106 views.py:444 -msgid "has permission" +#: views.py:108 views.py:437 +msgid "Has permission" msgstr "" -#: views.py:183 views.py:276 views.py:524 views.py:603 +#: views.py:181 views.py:272 views.py:516 views.py:593 msgid ", " msgstr "" -#: views.py:184 views.py:277 views.py:525 views.py:604 +#: views.py:182 views.py:273 views.py:517 views.py:594 #, python-format msgid " for %s" msgstr "" -#: views.py:185 views.py:526 +#: views.py:183 views.py:518 #, python-format msgid " to %s" msgstr "" -#: views.py:188 views.py:529 +#: views.py:186 views.py:521 #, python-format msgid "Are you sure you wish to grant the permission %(title_suffix)s?" msgstr "" -#: views.py:190 views.py:531 +#: views.py:188 views.py:523 #, python-format msgid "Are you sure you wish to grant the permissions %(title_suffix)s?" msgstr "" -#: views.py:197 views.py:538 +#: views.py:195 views.py:530 #, python-format msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." msgstr "" -#: views.py:203 views.py:544 +#: views.py:201 views.py:536 #, python-format msgid "" "%(actor)s, already had the permission \"%(permission)s\" granted for " "%(object)s." msgstr "" -#: views.py:278 views.py:605 +#: views.py:274 views.py:595 #, python-format msgid " from %s" msgstr "" -#: views.py:281 views.py:608 +#: views.py:277 views.py:598 #, python-format msgid "Are you sure you wish to revoke the permission %(title_suffix)s?" msgstr "" -#: views.py:283 views.py:610 +#: views.py:279 views.py:600 #, python-format msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?" msgstr "" -#: views.py:290 views.py:617 +#: views.py:286 views.py:607 #, python-format msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." msgstr "" -#: views.py:296 views.py:623 +#: views.py:292 views.py:613 #, python-format msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." msgstr "" -#: views.py:352 +#: views.py:346 #, python-format -msgid "add new holder for: %s" +msgid "Add new holder for: %s" msgstr "" -#: views.py:353 views.py:485 +#: views.py:347 views.py:477 msgid "Select" msgstr "" -#: views.py:385 -msgid "classes" +#: views.py:381 +msgid "Class" msgstr "" -#: views.py:387 -msgid "class" -msgstr "" - -#: views.py:406 +#: views.py:400 #, python-format -msgid "default access control lists for class: %s" +msgid "Default access control lists for class: %s" msgstr "" -#: views.py:434 +#: views.py:428 #, python-format -msgid "permissions available to: %(actor)s for class %(class)s" +msgid "Permissions available to: %(actor)s for class %(class)s" msgstr "" -#: views.py:483 +#: views.py:475 #, python-format -msgid "add new holder for class: %s" +msgid "Add new holder for class: %s" msgstr "" + +#~ msgid "List of classes" +#~ msgstr "List of classes" + +#~ msgid "permission" +#~ msgstr "permission" + +#~ msgid "creator" +#~ msgstr "creator" diff --git a/mayan/apps/acls/locale/it/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/it/LC_MESSAGES/django.mo index 9dab75cfb8..a7b56864ff 100644 Binary files a/mayan/apps/acls/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/it/LC_MESSAGES/django.po b/mayan/apps/acls/locale/it/LC_MESSAGES/django.po index 904af1e4ab..0f65460f17 100644 --- a/mayan/apps/acls/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/it/LC_MESSAGES/django.po @@ -3,16 +3,18 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: # Carlo Zanatto <>, 2012 -# Pierpaolo Baldan , 2012 +# Pierpaolo Baldan , 2012,2015 +# Roberto Rosario, 2012 # Roberto Rosario, 2012 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-06-08 07:20+0000\n" -"Last-Translator: Carlo Zanatto <>\n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2015-01-29 07:17+0000\n" +"Last-Translator: Pierpaolo Baldan \n" "Language-Team: Italian (http://www.transifex.com/projects/p/mayan-edms/" "language/it/)\n" "Language: it\n" @@ -21,7 +23,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: forms.py:25 links.py:10 links.py:16 +#: forms.py:25 links.py:13 links.py:19 msgid "New holder" msgstr "Nuovo titolare" @@ -41,31 +43,31 @@ msgstr "Ruoli" msgid "Special" msgstr "Speciale" -#: links.py:6 +#: links.py:9 msgid "ACLs" msgstr "ACL" -#: links.py:7 links.py:15 -msgid "details" -msgstr "dettagli" +#: links.py:10 links.py:18 +msgid "Details" +msgstr "Dettagli" -#: links.py:8 links.py:17 -msgid "grant" -msgstr "permetti" +#: links.py:11 links.py:20 +msgid "Grant" +msgstr "Permessi" -#: links.py:9 links.py:18 -msgid "revoke" -msgstr "revocare" +#: links.py:12 links.py:21 +msgid "Revoke" +msgstr "Revoca" -#: links.py:12 +#: links.py:15 msgid "Default ACLs" msgstr "Default ACL" -#: links.py:13 -msgid "List of classes" -msgstr "Elenco delle classi" +#: links.py:16 views.py:379 +msgid "Classes" +msgstr "Classi" -#: links.py:14 +#: links.py:17 msgid "ACLs for class" msgstr "ACL per la classe" @@ -73,34 +75,30 @@ msgstr "ACL per la classe" msgid "Insufficient access." msgstr "Accesso insufficiente." -#: models.py:26 models.py:68 -msgid "permission" -msgstr "autorizzazione" +#: models.py:25 models.py:67 +msgid "Permission" +msgstr "Permessi" + +#: models.py:51 +msgid "Access entry" +msgstr "Voce di accesso" #: models.py:52 -msgid "access entry" -msgstr "voce di accesso" +msgid "Access entries" +msgstr "Voci di accesso" -#: models.py:53 -msgid "access entries" -msgstr "voci di accesso" +#: models.py:88 +msgid "Default access entry" +msgstr "Voce di accesso di default" #: models.py:89 -msgid "default access entry" -msgstr "accesso voce predefinita" +msgid "Default access entries" +msgstr "Voci di accesso di default" -#: models.py:90 -msgid "default access entries" -msgstr "voci di accesso predefinite " - -#: models.py:109 +#: models.py:108 models.py:111 models.py:112 msgid "Creator" msgstr "Creatore" -#: models.py:112 models.py:113 -msgid "creator" -msgstr "creatore" - #: permissions.py:7 permissions.py:8 msgid "Access control lists" msgstr "Liste di controllo accessi" @@ -121,125 +119,130 @@ msgstr "Modifica ACL predefiniti di classe" msgid "View class default ACLs" msgstr "Visualizza classi ACL predefinite" -#: views.py:46 +#: views.py:48 #, python-format -msgid "access control lists for: %s" -msgstr "lista controllo accessi per: %s" +msgid "Access control lists for: %s" +msgstr "Lista dei permessi d'accesso per: %s" -#: views.py:48 views.py:408 -msgid "holder" -msgstr "titolare" +#: views.py:50 views.py:402 +msgid "Holder" +msgstr "Titolare" -#: views.py:49 views.py:409 -msgid "permissions" -msgstr "le autorizzazioni" +#: views.py:51 views.py:403 +msgid "Permissions" +msgstr "Permessi" -#: views.py:96 +#: views.py:98 #, python-format -msgid "permissions available to: %(actor)s for %(obj)s" -msgstr "autorizzazioni disponibili per: %(actor)s per %(obj)s " +msgid "Permissions available to: %(actor)s for %(obj)s" +msgstr "Permessi disponibili per: %(actor)s per %(obj)s" -#: views.py:103 views.py:441 -msgid "namespace" -msgstr "namespace" +#: views.py:105 views.py:434 +msgid "Namespace" +msgstr "Namespace" -#: views.py:104 views.py:442 -msgid "label" -msgstr "etichetta" +#: views.py:106 views.py:435 +msgid "Label" +msgstr "Etichetta" -#: views.py:106 views.py:444 -msgid "has permission" -msgstr "ha l'autorizzazione" +#: views.py:108 views.py:437 +msgid "Has permission" +msgstr "Ha il permesso" -#: views.py:183 views.py:276 views.py:524 views.py:603 +#: views.py:181 views.py:272 views.py:516 views.py:593 msgid ", " msgstr ", " -#: views.py:184 views.py:277 views.py:525 views.py:604 +#: views.py:182 views.py:273 views.py:517 views.py:594 #, python-format msgid " for %s" msgstr "per %s" -#: views.py:185 views.py:526 +#: views.py:183 views.py:518 #, python-format msgid " to %s" msgstr "a %s" -#: views.py:188 views.py:529 +#: views.py:186 views.py:521 #, python-format msgid "Are you sure you wish to grant the permission %(title_suffix)s?" msgstr "Sei sicuro di voler concedere l'autorizzazione %(title_suffix)s?" -#: views.py:190 views.py:531 +#: views.py:188 views.py:523 #, python-format msgid "Are you sure you wish to grant the permissions %(title_suffix)s?" msgstr "Sei sicuro di voler concedere permessi %(title_suffix)s?" -#: views.py:197 views.py:538 +#: views.py:195 views.py:530 #, python-format msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." msgstr "Permesso \"%(permission)s\" concesso%(actor)s per %(object)s." -#: views.py:203 views.py:544 +#: views.py:201 views.py:536 #, python-format msgid "" "%(actor)s, already had the permission \"%(permission)s\" granted for " "%(object)s." msgstr "%(actor)s, ha già i permessi\"%(permission)s\" concessi per%(object)s." -#: views.py:278 views.py:605 +#: views.py:274 views.py:595 #, python-format msgid " from %s" msgstr "da %s" -#: views.py:281 views.py:608 +#: views.py:277 views.py:598 #, python-format msgid "Are you sure you wish to revoke the permission %(title_suffix)s?" msgstr "Sei sicuro di voler revocare l'autorizzazione %(title_suffix)s?" -#: views.py:283 views.py:610 +#: views.py:279 views.py:600 #, python-format msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?" msgstr "Sei sicuro di voler revocare permessi %(title_suffix)s?" -#: views.py:290 views.py:617 +#: views.py:286 views.py:607 #, python-format msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." msgstr "Permessi \"%(permission)s\" revocati al %(actor)s per %(object)s." -#: views.py:296 views.py:623 +#: views.py:292 views.py:613 #, python-format msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." msgstr "%(actor)s, non ha i permessi\"%(permission)s\" per %(object)s." -#: views.py:352 +#: views.py:346 #, python-format -msgid "add new holder for: %s" -msgstr "aggiungi nuovo titolare per: %s" +msgid "Add new holder for: %s" +msgstr "Aggiungi un nuovo proprietario per: %s" -#: views.py:353 views.py:485 +#: views.py:347 views.py:477 msgid "Select" msgstr "Selezionare" -#: views.py:385 -msgid "classes" -msgstr "classi" +#: views.py:381 +msgid "Class" +msgstr "Classe" -#: views.py:387 -msgid "class" -msgstr "classe" - -#: views.py:406 +#: views.py:400 #, python-format -msgid "default access control lists for class: %s" -msgstr "lista di default per il controllo accessi per la classe: %s" +msgid "Default access control lists for class: %s" +msgstr "Lista di default per il controlli d'accesso alla classe: %s" -#: views.py:434 +#: views.py:428 #, python-format -msgid "permissions available to: %(actor)s for class %(class)s" -msgstr "permessi disponibili per: %(actor)s per la classe %(class)s" +msgid "Permissions available to: %(actor)s for class %(class)s" +msgstr "Permessi disponibili per: %(actor)s per la classe %(class)s" -#: views.py:483 +#: views.py:475 #, python-format -msgid "add new holder for class: %s" -msgstr "aggiungi un nuovo titolare per la calsse: %s" +msgid "Add new holder for class: %s" +msgstr "Aggiungi un nuovo proprietario per la classe: %s" + +#~ msgid "List of classes" +#~ msgstr "List of classes" + +#~ msgid "permission" +#~ msgstr "permission" + +#~ msgid "creator" +#~ msgstr "creator" diff --git a/mayan/apps/acls/locale/lv/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/lv/LC_MESSAGES/django.mo new file mode 100644 index 0000000000..738d066103 Binary files /dev/null and b/mayan/apps/acls/locale/lv/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/lv/LC_MESSAGES/django.po b/mayan/apps/acls/locale/lv/LC_MESSAGES/django.po new file mode 100644 index 0000000000..7740bdd650 --- /dev/null +++ b/mayan/apps/acls/locale/lv/LC_MESSAGES/django.po @@ -0,0 +1,245 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2014-10-25 06:47+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Latvian (http://www.transifex.com/projects/p/mayan-edms/" +"language/lv/)\n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: forms.py:25 links.py:13 links.py:19 +msgid "New holder" +msgstr "" + +#: forms.py:42 +msgid "Users" +msgstr "" + +#: forms.py:45 +msgid "Groups" +msgstr "" + +#: forms.py:48 +msgid "Roles" +msgstr "" + +#: forms.py:51 +msgid "Special" +msgstr "" + +#: links.py:9 +msgid "ACLs" +msgstr "" + +#: links.py:10 links.py:18 +msgid "Details" +msgstr "" + +#: links.py:11 links.py:20 +msgid "Grant" +msgstr "" + +#: links.py:12 links.py:21 +msgid "Revoke" +msgstr "" + +#: links.py:15 +msgid "Default ACLs" +msgstr "" + +#: links.py:16 views.py:379 +msgid "Classes" +msgstr "" + +#: links.py:17 +msgid "ACLs for class" +msgstr "" + +#: managers.py:118 managers.py:130 +msgid "Insufficient access." +msgstr "" + +#: models.py:25 models.py:67 +msgid "Permission" +msgstr "" + +#: models.py:51 +msgid "Access entry" +msgstr "" + +#: models.py:52 +msgid "Access entries" +msgstr "" + +#: models.py:88 +msgid "Default access entry" +msgstr "" + +#: models.py:89 +msgid "Default access entries" +msgstr "" + +#: models.py:108 models.py:111 models.py:112 +msgid "Creator" +msgstr "" + +#: permissions.py:7 permissions.py:8 +msgid "Access control lists" +msgstr "" + +#: permissions.py:10 +msgid "Edit ACLs" +msgstr "" + +#: permissions.py:11 +msgid "View ACLs" +msgstr "" + +#: permissions.py:13 +msgid "Edit class default ACLs" +msgstr "" + +#: permissions.py:14 +msgid "View class default ACLs" +msgstr "" + +#: views.py:48 +#, python-format +msgid "Access control lists for: %s" +msgstr "" + +#: views.py:50 views.py:402 +msgid "Holder" +msgstr "" + +#: views.py:51 views.py:403 +msgid "Permissions" +msgstr "" + +#: views.py:98 +#, python-format +msgid "Permissions available to: %(actor)s for %(obj)s" +msgstr "" + +#: views.py:105 views.py:434 +msgid "Namespace" +msgstr "" + +#: views.py:106 views.py:435 +msgid "Label" +msgstr "" + +#: views.py:108 views.py:437 +msgid "Has permission" +msgstr "" + +#: views.py:181 views.py:272 views.py:516 views.py:593 +msgid ", " +msgstr "" + +#: views.py:182 views.py:273 views.py:517 views.py:594 +#, python-format +msgid " for %s" +msgstr "" + +#: views.py:183 views.py:518 +#, python-format +msgid " to %s" +msgstr "" + +#: views.py:186 views.py:521 +#, python-format +msgid "Are you sure you wish to grant the permission %(title_suffix)s?" +msgstr "" + +#: views.py:188 views.py:523 +#, python-format +msgid "Are you sure you wish to grant the permissions %(title_suffix)s?" +msgstr "" + +#: views.py:195 views.py:530 +#, python-format +msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." +msgstr "" + +#: views.py:201 views.py:536 +#, python-format +msgid "" +"%(actor)s, already had the permission \"%(permission)s\" granted for " +"%(object)s." +msgstr "" + +#: views.py:274 views.py:595 +#, python-format +msgid " from %s" +msgstr "" + +#: views.py:277 views.py:598 +#, python-format +msgid "Are you sure you wish to revoke the permission %(title_suffix)s?" +msgstr "" + +#: views.py:279 views.py:600 +#, python-format +msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?" +msgstr "" + +#: views.py:286 views.py:607 +#, python-format +msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." +msgstr "" + +#: views.py:292 views.py:613 +#, python-format +msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +msgstr "" + +#: views.py:346 +#, python-format +msgid "Add new holder for: %s" +msgstr "" + +#: views.py:347 views.py:477 +msgid "Select" +msgstr "" + +#: views.py:381 +msgid "Class" +msgstr "" + +#: views.py:400 +#, python-format +msgid "Default access control lists for class: %s" +msgstr "" + +#: views.py:428 +#, python-format +msgid "Permissions available to: %(actor)s for class %(class)s" +msgstr "" + +#: views.py:475 +#, python-format +msgid "Add new holder for class: %s" +msgstr "" + +#~ msgid "List of classes" +#~ msgstr "List of classes" + +#~ msgid "permission" +#~ msgstr "permission" + +#~ msgid "creator" +#~ msgstr "creator" diff --git a/mayan/apps/acls/locale/nb/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/nb/LC_MESSAGES/django.mo new file mode 100644 index 0000000000..d7be7a4b92 Binary files /dev/null and b/mayan/apps/acls/locale/nb/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/nb/LC_MESSAGES/django.po b/mayan/apps/acls/locale/nb/LC_MESSAGES/django.po new file mode 100644 index 0000000000..d711ae363e --- /dev/null +++ b/mayan/apps/acls/locale/nb/LC_MESSAGES/django.po @@ -0,0 +1,244 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2014-10-25 06:47+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Norwegian Bokmål (http://www.transifex.com/projects/p/mayan-" +"edms/language/nb/)\n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: forms.py:25 links.py:13 links.py:19 +msgid "New holder" +msgstr "" + +#: forms.py:42 +msgid "Users" +msgstr "" + +#: forms.py:45 +msgid "Groups" +msgstr "" + +#: forms.py:48 +msgid "Roles" +msgstr "" + +#: forms.py:51 +msgid "Special" +msgstr "" + +#: links.py:9 +msgid "ACLs" +msgstr "" + +#: links.py:10 links.py:18 +msgid "Details" +msgstr "" + +#: links.py:11 links.py:20 +msgid "Grant" +msgstr "" + +#: links.py:12 links.py:21 +msgid "Revoke" +msgstr "" + +#: links.py:15 +msgid "Default ACLs" +msgstr "" + +#: links.py:16 views.py:379 +msgid "Classes" +msgstr "" + +#: links.py:17 +msgid "ACLs for class" +msgstr "" + +#: managers.py:118 managers.py:130 +msgid "Insufficient access." +msgstr "" + +#: models.py:25 models.py:67 +msgid "Permission" +msgstr "" + +#: models.py:51 +msgid "Access entry" +msgstr "" + +#: models.py:52 +msgid "Access entries" +msgstr "" + +#: models.py:88 +msgid "Default access entry" +msgstr "" + +#: models.py:89 +msgid "Default access entries" +msgstr "" + +#: models.py:108 models.py:111 models.py:112 +msgid "Creator" +msgstr "" + +#: permissions.py:7 permissions.py:8 +msgid "Access control lists" +msgstr "" + +#: permissions.py:10 +msgid "Edit ACLs" +msgstr "" + +#: permissions.py:11 +msgid "View ACLs" +msgstr "" + +#: permissions.py:13 +msgid "Edit class default ACLs" +msgstr "" + +#: permissions.py:14 +msgid "View class default ACLs" +msgstr "" + +#: views.py:48 +#, python-format +msgid "Access control lists for: %s" +msgstr "" + +#: views.py:50 views.py:402 +msgid "Holder" +msgstr "" + +#: views.py:51 views.py:403 +msgid "Permissions" +msgstr "" + +#: views.py:98 +#, python-format +msgid "Permissions available to: %(actor)s for %(obj)s" +msgstr "" + +#: views.py:105 views.py:434 +msgid "Namespace" +msgstr "" + +#: views.py:106 views.py:435 +msgid "Label" +msgstr "" + +#: views.py:108 views.py:437 +msgid "Has permission" +msgstr "" + +#: views.py:181 views.py:272 views.py:516 views.py:593 +msgid ", " +msgstr "" + +#: views.py:182 views.py:273 views.py:517 views.py:594 +#, python-format +msgid " for %s" +msgstr "" + +#: views.py:183 views.py:518 +#, python-format +msgid " to %s" +msgstr "" + +#: views.py:186 views.py:521 +#, python-format +msgid "Are you sure you wish to grant the permission %(title_suffix)s?" +msgstr "" + +#: views.py:188 views.py:523 +#, python-format +msgid "Are you sure you wish to grant the permissions %(title_suffix)s?" +msgstr "" + +#: views.py:195 views.py:530 +#, python-format +msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." +msgstr "" + +#: views.py:201 views.py:536 +#, python-format +msgid "" +"%(actor)s, already had the permission \"%(permission)s\" granted for " +"%(object)s." +msgstr "" + +#: views.py:274 views.py:595 +#, python-format +msgid " from %s" +msgstr "" + +#: views.py:277 views.py:598 +#, python-format +msgid "Are you sure you wish to revoke the permission %(title_suffix)s?" +msgstr "" + +#: views.py:279 views.py:600 +#, python-format +msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?" +msgstr "" + +#: views.py:286 views.py:607 +#, python-format +msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." +msgstr "" + +#: views.py:292 views.py:613 +#, python-format +msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +msgstr "" + +#: views.py:346 +#, python-format +msgid "Add new holder for: %s" +msgstr "" + +#: views.py:347 views.py:477 +msgid "Select" +msgstr "" + +#: views.py:381 +msgid "Class" +msgstr "" + +#: views.py:400 +#, python-format +msgid "Default access control lists for class: %s" +msgstr "" + +#: views.py:428 +#, python-format +msgid "Permissions available to: %(actor)s for class %(class)s" +msgstr "" + +#: views.py:475 +#, python-format +msgid "Add new holder for class: %s" +msgstr "" + +#~ msgid "List of classes" +#~ msgstr "List of classes" + +#~ msgid "permission" +#~ msgstr "permission" + +#~ msgid "creator" +#~ msgstr "creator" diff --git a/mayan/apps/acls/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/nl_NL/LC_MESSAGES/django.mo index 82611a2ad3..da7c37791a 100644 Binary files a/mayan/apps/acls/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/acls/locale/nl_NL/LC_MESSAGES/django.po index aed83b112b..d24a9b3e84 100644 --- a/mayan/apps/acls/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/nl_NL/LC_MESSAGES/django.po @@ -3,14 +3,16 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: # Lucas Weel , 2013 +# woei , 2014 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2013-12-21 20:15+0000\n" -"Last-Translator: Lucas Weel \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2014-10-25 06:47+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Dutch (Netherlands) (http://www.transifex.com/projects/p/" "mayan-edms/language/nl_NL/)\n" "Language: nl_NL\n" @@ -19,7 +21,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: forms.py:25 links.py:10 links.py:16 +#: forms.py:25 links.py:13 links.py:19 msgid "New holder" msgstr "Nieuwe houder" @@ -37,33 +39,33 @@ msgstr "gebruikersrollen" #: forms.py:51 msgid "Special" -msgstr "" +msgstr "Speciaal" -#: links.py:6 +#: links.py:9 msgid "ACLs" msgstr "Authorisatielijsten" -#: links.py:7 links.py:15 -msgid "details" -msgstr "details" +#: links.py:10 links.py:18 +msgid "Details" +msgstr "" -#: links.py:8 links.py:17 -msgid "grant" -msgstr "toestaan" +#: links.py:11 links.py:20 +msgid "Grant" +msgstr "" -#: links.py:9 links.py:18 -msgid "revoke" -msgstr "intrekken" +#: links.py:12 links.py:21 +msgid "Revoke" +msgstr "" -#: links.py:12 +#: links.py:15 msgid "Default ACLs" msgstr "Authorisatielijst verstekwaarden" -#: links.py:13 -msgid "List of classes" -msgstr "Lijst met authorisatieklassen" +#: links.py:16 views.py:379 +msgid "Classes" +msgstr "" -#: links.py:14 +#: links.py:17 msgid "ACLs for class" msgstr "Authorisatielijst voor authorisatieklasse" @@ -71,33 +73,29 @@ msgstr "Authorisatielijst voor authorisatieklasse" msgid "Insufficient access." msgstr "Permissies zijn ontoereikend" -#: models.py:26 models.py:68 -msgid "permission" -msgstr "permissie" +#: models.py:25 models.py:67 +msgid "Permission" +msgstr "" + +#: models.py:51 +msgid "Access entry" +msgstr "" #: models.py:52 -msgid "access entry" -msgstr "Authorisatie invoer" +msgid "Access entries" +msgstr "" -#: models.py:53 -msgid "access entries" -msgstr "Authorisatie invoer" +#: models.py:88 +msgid "Default access entry" +msgstr "" #: models.py:89 -msgid "default access entry" -msgstr "Verstekwaarden authorisatie invoer" +msgid "Default access entries" +msgstr "" -#: models.py:90 -msgid "default access entries" -msgstr "Verstekwaarden authorisatie invoer" - -#: models.py:109 +#: models.py:108 models.py:111 models.py:112 msgid "Creator" -msgstr "" - -#: models.py:112 models.py:113 -msgid "creator" -msgstr "" +msgstr "Maker" #: permissions.py:7 permissions.py:8 msgid "Access control lists" @@ -119,125 +117,131 @@ msgstr "Bewerk verstekwaarden authorisatieklasse" msgid "View class default ACLs" msgstr "Bekijken verstekwaarden authorisatieklassen" -#: views.py:46 +#: views.py:48 #, python-format -msgid "access control lists for: %s" -msgstr "Authorisatielijst voor: %s" - -#: views.py:48 views.py:408 -msgid "holder" -msgstr "houder" - -#: views.py:49 views.py:409 -msgid "permissions" -msgstr "permissies" - -#: views.py:96 -#, python-format -msgid "permissions available to: %(actor)s for %(obj)s" -msgstr "permissies voor %(obj)s, beschikbaar voor %(actor)s" - -#: views.py:103 views.py:441 -msgid "namespace" -msgstr "'namespace'" - -#: views.py:104 views.py:442 -msgid "label" -msgstr "label" - -#: views.py:106 views.py:444 -msgid "has permission" -msgstr "heef permissie" - -#: views.py:183 views.py:276 views.py:524 views.py:603 -msgid ", " +msgid "Access control lists for: %s" msgstr "" -#: views.py:184 views.py:277 views.py:525 views.py:604 +#: views.py:50 views.py:402 +msgid "Holder" +msgstr "" + +#: views.py:51 views.py:403 +msgid "Permissions" +msgstr "" + +#: views.py:98 +#, python-format +msgid "Permissions available to: %(actor)s for %(obj)s" +msgstr "" + +#: views.py:105 views.py:434 +msgid "Namespace" +msgstr "" + +#: views.py:106 views.py:435 +msgid "Label" +msgstr "" + +#: views.py:108 views.py:437 +msgid "Has permission" +msgstr "" + +#: views.py:181 views.py:272 views.py:516 views.py:593 +msgid ", " +msgstr "," + +#: views.py:182 views.py:273 views.py:517 views.py:594 #, python-format msgid " for %s" msgstr "voor %s" -#: views.py:185 views.py:526 +#: views.py:183 views.py:518 #, python-format msgid " to %s" msgstr "aan %s" -#: views.py:188 views.py:529 +#: views.py:186 views.py:521 #, python-format msgid "Are you sure you wish to grant the permission %(title_suffix)s?" msgstr "Bent u er zeker van permissies: %(title_suffix)s, toe te staan?" -#: views.py:190 views.py:531 +#: views.py:188 views.py:523 #, python-format msgid "Are you sure you wish to grant the permissions %(title_suffix)s?" msgstr "Bent u er zeker van permissies: %(title_suffix)s, toe te staan?" -#: views.py:197 views.py:538 +#: views.py:195 views.py:530 #, python-format msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." -msgstr "" +msgstr "Permissie \"%(permission)s\" gegeven aan %(actor)s voor %(object)s." -#: views.py:203 views.py:544 +#: views.py:201 views.py:536 #, python-format msgid "" "%(actor)s, already had the permission \"%(permission)s\" granted for " "%(object)s." -msgstr "" +msgstr "%(actor)s, had reeds de permissie \"%(permission)s\" voor %(object)s." -#: views.py:278 views.py:605 +#: views.py:274 views.py:595 #, python-format msgid " from %s" -msgstr "" +msgstr "van %s" -#: views.py:281 views.py:608 +#: views.py:277 views.py:598 #, python-format msgid "Are you sure you wish to revoke the permission %(title_suffix)s?" -msgstr "" +msgstr "Weet u zeker dat u de permissie %(title_suffix)s wilt intrekken?" -#: views.py:283 views.py:610 +#: views.py:279 views.py:600 #, python-format msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?" -msgstr "" +msgstr "Weet u zeker dat u de permissie %(title_suffix)s wilt intrekken?" -#: views.py:290 views.py:617 +#: views.py:286 views.py:607 #, python-format msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." msgstr "" +"Permissie \"%(permission)s\" van %(actor)s voor %(object)s ingetrokken." -#: views.py:296 views.py:623 +#: views.py:292 views.py:613 #, python-format msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." -msgstr "" +msgstr "%(actor)s, had geen permissie \"%(permission)s\" voor %(object)s." -#: views.py:352 +#: views.py:346 #, python-format -msgid "add new holder for: %s" +msgid "Add new holder for: %s" msgstr "" -#: views.py:353 views.py:485 +#: views.py:347 views.py:477 msgid "Select" +msgstr "Selecteer" + +#: views.py:381 +msgid "Class" msgstr "" -#: views.py:385 -msgid "classes" -msgstr "" - -#: views.py:387 -msgid "class" -msgstr "" - -#: views.py:406 +#: views.py:400 #, python-format -msgid "default access control lists for class: %s" +msgid "Default access control lists for class: %s" msgstr "" -#: views.py:434 +#: views.py:428 #, python-format -msgid "permissions available to: %(actor)s for class %(class)s" +msgid "Permissions available to: %(actor)s for class %(class)s" msgstr "" -#: views.py:483 +#: views.py:475 #, python-format -msgid "add new holder for class: %s" +msgid "Add new holder for class: %s" msgstr "" + +#~ msgid "List of classes" +#~ msgstr "List of classes" + +#~ msgid "permission" +#~ msgstr "permission" + +#~ msgid "creator" +#~ msgstr "creator" diff --git a/mayan/apps/acls/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/pl/LC_MESSAGES/django.mo index b3abcca402..8eef812d81 100644 Binary files a/mayan/apps/acls/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/pl/LC_MESSAGES/django.po b/mayan/apps/acls/locale/pl/LC_MESSAGES/django.po index 9130ce4026..7997e01696 100644 --- a/mayan/apps/acls/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/pl/LC_MESSAGES/django.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: # mic , 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2013-11-06 23:35+0000\n" -"Last-Translator: mic \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2014-10-25 06:47+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Polish (http://www.transifex.com/projects/p/mayan-edms/" "language/pl/)\n" "Language: pl\n" @@ -20,7 +21,7 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -#: forms.py:25 links.py:10 links.py:16 +#: forms.py:25 links.py:13 links.py:19 msgid "New holder" msgstr "" @@ -40,31 +41,31 @@ msgstr "" msgid "Special" msgstr "" -#: links.py:6 +#: links.py:9 msgid "ACLs" msgstr "ACLs" -#: links.py:7 links.py:15 -msgid "details" -msgstr "szczegóły" +#: links.py:10 links.py:18 +msgid "Details" +msgstr "" -#: links.py:8 links.py:17 -msgid "grant" -msgstr "przyznać" +#: links.py:11 links.py:20 +msgid "Grant" +msgstr "" -#: links.py:9 links.py:18 -msgid "revoke" -msgstr "odwołać" +#: links.py:12 links.py:21 +msgid "Revoke" +msgstr "" -#: links.py:12 +#: links.py:15 msgid "Default ACLs" msgstr "Domyślne ACLs" -#: links.py:13 -msgid "List of classes" +#: links.py:16 views.py:379 +msgid "Classes" msgstr "" -#: links.py:14 +#: links.py:17 msgid "ACLs for class" msgstr "" @@ -72,34 +73,30 @@ msgstr "" msgid "Insufficient access." msgstr "Niewystarczające uprawnienia." -#: models.py:26 models.py:68 -msgid "permission" -msgstr "uprawnienie" - -#: models.py:52 -msgid "access entry" +#: models.py:25 models.py:67 +msgid "Permission" msgstr "" -#: models.py:53 -msgid "access entries" +#: models.py:51 +msgid "Access entry" +msgstr "" + +#: models.py:52 +msgid "Access entries" +msgstr "" + +#: models.py:88 +msgid "Default access entry" msgstr "" #: models.py:89 -msgid "default access entry" +msgid "Default access entries" msgstr "" -#: models.py:90 -msgid "default access entries" -msgstr "" - -#: models.py:109 +#: models.py:108 models.py:111 models.py:112 msgid "Creator" msgstr "" -#: models.py:112 models.py:113 -msgid "creator" -msgstr "" - #: permissions.py:7 permissions.py:8 msgid "Access control lists" msgstr "" @@ -120,125 +117,130 @@ msgstr "" msgid "View class default ACLs" msgstr "" -#: views.py:46 +#: views.py:48 #, python-format -msgid "access control lists for: %s" +msgid "Access control lists for: %s" msgstr "" -#: views.py:48 views.py:408 -msgid "holder" +#: views.py:50 views.py:402 +msgid "Holder" msgstr "" -#: views.py:49 views.py:409 -msgid "permissions" -msgstr "uprawnienia" +#: views.py:51 views.py:403 +msgid "Permissions" +msgstr "" -#: views.py:96 +#: views.py:98 #, python-format -msgid "permissions available to: %(actor)s for %(obj)s" +msgid "Permissions available to: %(actor)s for %(obj)s" msgstr "" -#: views.py:103 views.py:441 -msgid "namespace" +#: views.py:105 views.py:434 +msgid "Namespace" msgstr "" -#: views.py:104 views.py:442 -msgid "label" -msgstr "etykieta" +#: views.py:106 views.py:435 +msgid "Label" +msgstr "" -#: views.py:106 views.py:444 -msgid "has permission" -msgstr "ma uprawnienie" +#: views.py:108 views.py:437 +msgid "Has permission" +msgstr "" -#: views.py:183 views.py:276 views.py:524 views.py:603 +#: views.py:181 views.py:272 views.py:516 views.py:593 msgid ", " msgstr "" -#: views.py:184 views.py:277 views.py:525 views.py:604 +#: views.py:182 views.py:273 views.py:517 views.py:594 #, python-format msgid " for %s" msgstr "" -#: views.py:185 views.py:526 +#: views.py:183 views.py:518 #, python-format msgid " to %s" msgstr "" -#: views.py:188 views.py:529 +#: views.py:186 views.py:521 #, python-format msgid "Are you sure you wish to grant the permission %(title_suffix)s?" msgstr "Czy na pewno chcesz przyznać uprawnienia %(title_suffix)s?" -#: views.py:190 views.py:531 +#: views.py:188 views.py:523 #, python-format msgid "Are you sure you wish to grant the permissions %(title_suffix)s?" msgstr "Czy na pewno chcesz przyznać uprawnienia %(title_suffix)s?" -#: views.py:197 views.py:538 +#: views.py:195 views.py:530 #, python-format msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." msgstr "" -#: views.py:203 views.py:544 +#: views.py:201 views.py:536 #, python-format msgid "" "%(actor)s, already had the permission \"%(permission)s\" granted for " "%(object)s." msgstr "" -#: views.py:278 views.py:605 +#: views.py:274 views.py:595 #, python-format msgid " from %s" msgstr "" -#: views.py:281 views.py:608 +#: views.py:277 views.py:598 #, python-format msgid "Are you sure you wish to revoke the permission %(title_suffix)s?" msgstr "" -#: views.py:283 views.py:610 +#: views.py:279 views.py:600 #, python-format msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?" msgstr "" -#: views.py:290 views.py:617 +#: views.py:286 views.py:607 #, python-format msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." msgstr "" -#: views.py:296 views.py:623 +#: views.py:292 views.py:613 #, python-format msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." msgstr "" -#: views.py:352 +#: views.py:346 #, python-format -msgid "add new holder for: %s" +msgid "Add new holder for: %s" msgstr "" -#: views.py:353 views.py:485 +#: views.py:347 views.py:477 msgid "Select" msgstr "Wybierz" -#: views.py:385 -msgid "classes" +#: views.py:381 +msgid "Class" msgstr "" -#: views.py:387 -msgid "class" -msgstr "" - -#: views.py:406 +#: views.py:400 #, python-format -msgid "default access control lists for class: %s" +msgid "Default access control lists for class: %s" msgstr "" -#: views.py:434 +#: views.py:428 #, python-format -msgid "permissions available to: %(actor)s for class %(class)s" +msgid "Permissions available to: %(actor)s for class %(class)s" msgstr "" -#: views.py:483 +#: views.py:475 #, python-format -msgid "add new holder for class: %s" +msgid "Add new holder for class: %s" msgstr "" + +#~ msgid "List of classes" +#~ msgstr "List of classes" + +#~ msgid "permission" +#~ msgstr "permission" + +#~ msgid "creator" +#~ msgstr "creator" diff --git a/mayan/apps/acls/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/pt/LC_MESSAGES/django.mo index 506779f275..290eab7211 100644 Binary files a/mayan/apps/acls/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/pt/LC_MESSAGES/django.po b/mayan/apps/acls/locale/pt/LC_MESSAGES/django.po index 4365e3c0f3..f928d4c2ec 100644 --- a/mayan/apps/acls/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/pt/LC_MESSAGES/django.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: # Vítor Figueiró , 2012 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-07-03 19:01+0000\n" -"Last-Translator: Vítor Figueiró \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2014-10-25 06:47+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Portuguese (http://www.transifex.com/projects/p/mayan-edms/" "language/pt/)\n" "Language: pt\n" @@ -19,7 +20,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: forms.py:25 links.py:10 links.py:16 +#: forms.py:25 links.py:13 links.py:19 msgid "New holder" msgstr "Novo detentor" @@ -39,31 +40,31 @@ msgstr "Funções" msgid "Special" msgstr "Especial" -#: links.py:6 +#: links.py:9 msgid "ACLs" msgstr "ACL's" -#: links.py:7 links.py:15 -msgid "details" -msgstr "detalhes" +#: links.py:10 links.py:18 +msgid "Details" +msgstr "" -#: links.py:8 links.py:17 -msgid "grant" -msgstr "conceder" +#: links.py:11 links.py:20 +msgid "Grant" +msgstr "" -#: links.py:9 links.py:18 -msgid "revoke" -msgstr "revogar" +#: links.py:12 links.py:21 +msgid "Revoke" +msgstr "" -#: links.py:12 +#: links.py:15 msgid "Default ACLs" msgstr "ACL's padrão" -#: links.py:13 -msgid "List of classes" -msgstr "Lista de classes" +#: links.py:16 views.py:379 +msgid "Classes" +msgstr "" -#: links.py:14 +#: links.py:17 msgid "ACLs for class" msgstr "ACL's para a classe" @@ -71,34 +72,30 @@ msgstr "ACL's para a classe" msgid "Insufficient access." msgstr "Acesso insuficiente." -#: models.py:26 models.py:68 -msgid "permission" -msgstr "permissão" +#: models.py:25 models.py:67 +msgid "Permission" +msgstr "" + +#: models.py:51 +msgid "Access entry" +msgstr "" #: models.py:52 -msgid "access entry" -msgstr "entrada de acesso" +msgid "Access entries" +msgstr "" -#: models.py:53 -msgid "access entries" -msgstr "entradas de acesso" +#: models.py:88 +msgid "Default access entry" +msgstr "" #: models.py:89 -msgid "default access entry" -msgstr "entrada de acesso padrão" +msgid "Default access entries" +msgstr "" -#: models.py:90 -msgid "default access entries" -msgstr "entradas de acesso padrão" - -#: models.py:109 +#: models.py:108 models.py:111 models.py:112 msgid "Creator" msgstr "Criador" -#: models.py:112 models.py:113 -msgid "creator" -msgstr "criador" - #: permissions.py:7 permissions.py:8 msgid "Access control lists" msgstr "Listas de controlo de acesso" @@ -119,125 +116,130 @@ msgstr "Editar os ACL's padrão da classe" msgid "View class default ACLs" msgstr "Ver os ACL's padrão da classe" -#: views.py:46 +#: views.py:48 #, python-format -msgid "access control lists for: %s" -msgstr "listas de controlo de acesso para: %s" +msgid "Access control lists for: %s" +msgstr "" -#: views.py:48 views.py:408 -msgid "holder" -msgstr "detentor" +#: views.py:50 views.py:402 +msgid "Holder" +msgstr "" -#: views.py:49 views.py:409 -msgid "permissions" -msgstr "permissões" +#: views.py:51 views.py:403 +msgid "Permissions" +msgstr "" -#: views.py:96 +#: views.py:98 #, python-format -msgid "permissions available to: %(actor)s for %(obj)s" -msgstr "permissões disponíveis para: %(actor)s para %(obj)s" +msgid "Permissions available to: %(actor)s for %(obj)s" +msgstr "" -#: views.py:103 views.py:441 -msgid "namespace" -msgstr "escopo" +#: views.py:105 views.py:434 +msgid "Namespace" +msgstr "" -#: views.py:104 views.py:442 -msgid "label" -msgstr "rótulo" +#: views.py:106 views.py:435 +msgid "Label" +msgstr "" -#: views.py:106 views.py:444 -msgid "has permission" -msgstr "tem a permissão" +#: views.py:108 views.py:437 +msgid "Has permission" +msgstr "" -#: views.py:183 views.py:276 views.py:524 views.py:603 +#: views.py:181 views.py:272 views.py:516 views.py:593 msgid ", " msgstr ", " -#: views.py:184 views.py:277 views.py:525 views.py:604 +#: views.py:182 views.py:273 views.py:517 views.py:594 #, python-format msgid " for %s" msgstr " para %s" -#: views.py:185 views.py:526 +#: views.py:183 views.py:518 #, python-format msgid " to %s" msgstr " a %s" -#: views.py:188 views.py:529 +#: views.py:186 views.py:521 #, python-format msgid "Are you sure you wish to grant the permission %(title_suffix)s?" msgstr "Tem a certeza de que pretende conceder a permissão %(title_suffix)s?" -#: views.py:190 views.py:531 +#: views.py:188 views.py:523 #, python-format msgid "Are you sure you wish to grant the permissions %(title_suffix)s?" msgstr "Tem a certeza de que pretende conceder as permissões %(title_suffix)s?" -#: views.py:197 views.py:538 +#: views.py:195 views.py:530 #, python-format msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." msgstr "Permissão \"%(permission)s\" concedida a %(actor)s para %(object)s." -#: views.py:203 views.py:544 +#: views.py:201 views.py:536 #, python-format msgid "" "%(actor)s, already had the permission \"%(permission)s\" granted for " "%(object)s." msgstr "%(actor)s, já possuia a permissão \"%(permission)s\" para %(object)s." -#: views.py:278 views.py:605 +#: views.py:274 views.py:595 #, python-format msgid " from %s" msgstr " de %s" -#: views.py:281 views.py:608 +#: views.py:277 views.py:598 #, python-format msgid "Are you sure you wish to revoke the permission %(title_suffix)s?" msgstr "Tem a certeza de que pretende revogar a permissão %(title_suffix)s?" -#: views.py:283 views.py:610 +#: views.py:279 views.py:600 #, python-format msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?" msgstr "Tem a certeza de que pretende revogar as permissões %(title_suffix)s?" -#: views.py:290 views.py:617 +#: views.py:286 views.py:607 #, python-format msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." msgstr "Permissão \"%(permission)s\" revogada para %(actor)s para %(object)s." -#: views.py:296 views.py:623 +#: views.py:292 views.py:613 #, python-format msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." msgstr "%(actor)s, não tinha a permissão \"%(permission)s\" para %(object)s." -#: views.py:352 +#: views.py:346 #, python-format -msgid "add new holder for: %s" -msgstr "adicionar novo detentor para: %s" +msgid "Add new holder for: %s" +msgstr "" -#: views.py:353 views.py:485 +#: views.py:347 views.py:477 msgid "Select" msgstr "Selecionar" -#: views.py:385 -msgid "classes" -msgstr "classes" +#: views.py:381 +msgid "Class" +msgstr "" -#: views.py:387 -msgid "class" -msgstr "classe" - -#: views.py:406 +#: views.py:400 #, python-format -msgid "default access control lists for class: %s" -msgstr "Listas de controlo de acesso padrão para a classe: %s" +msgid "Default access control lists for class: %s" +msgstr "" -#: views.py:434 +#: views.py:428 #, python-format -msgid "permissions available to: %(actor)s for class %(class)s" -msgstr "permissões disponíveis para: %(actor)s para a classe %(class)s" +msgid "Permissions available to: %(actor)s for class %(class)s" +msgstr "" -#: views.py:483 +#: views.py:475 #, python-format -msgid "add new holder for class: %s" -msgstr "adicionar novo detentor para a classe: %s" +msgid "Add new holder for class: %s" +msgstr "" + +#~ msgid "List of classes" +#~ msgstr "List of classes" + +#~ msgid "permission" +#~ msgstr "permission" + +#~ msgid "creator" +#~ msgstr "creator" diff --git a/mayan/apps/acls/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/pt_BR/LC_MESSAGES/django.mo index a04f79be63..fbdb5b6cc8 100644 Binary files a/mayan/apps/acls/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/acls/locale/pt_BR/LC_MESSAGES/django.po index 9b697e5f43..b1c01bba70 100644 --- a/mayan/apps/acls/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/pt_BR/LC_MESSAGES/django.po @@ -3,14 +3,16 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: +# wolvsky , 2014 # wolvsky , 2014 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2014-06-21 04:43+0000\n" -"Last-Translator: wolvsky \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2014-10-25 06:47+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/" "mayan-edms/language/pt_BR/)\n" "Language: pt_BR\n" @@ -19,7 +21,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: forms.py:25 links.py:10 links.py:16 +#: forms.py:25 links.py:13 links.py:19 msgid "New holder" msgstr "Novo titular" @@ -39,31 +41,31 @@ msgstr "Regras" msgid "Special" msgstr "Especial" -#: links.py:6 +#: links.py:9 msgid "ACLs" msgstr "ACLs" -#: links.py:7 links.py:15 -msgid "details" -msgstr "detalhes" +#: links.py:10 links.py:18 +msgid "Details" +msgstr "" -#: links.py:8 links.py:17 -msgid "grant" -msgstr "conceder" +#: links.py:11 links.py:20 +msgid "Grant" +msgstr "" -#: links.py:9 links.py:18 -msgid "revoke" -msgstr "revogar" +#: links.py:12 links.py:21 +msgid "Revoke" +msgstr "" -#: links.py:12 +#: links.py:15 msgid "Default ACLs" msgstr "ACLs padrões" -#: links.py:13 -msgid "List of classes" -msgstr "Lista de classes" +#: links.py:16 views.py:379 +msgid "Classes" +msgstr "" -#: links.py:14 +#: links.py:17 msgid "ACLs for class" msgstr "ACLs para classes" @@ -71,34 +73,30 @@ msgstr "ACLs para classes" msgid "Insufficient access." msgstr "Acesso insuficiente." -#: models.py:26 models.py:68 -msgid "permission" -msgstr "permissão" +#: models.py:25 models.py:67 +msgid "Permission" +msgstr "" + +#: models.py:51 +msgid "Access entry" +msgstr "" #: models.py:52 -msgid "access entry" -msgstr "entrada de acesso" +msgid "Access entries" +msgstr "" -#: models.py:53 -msgid "access entries" -msgstr "entradas de acesso" +#: models.py:88 +msgid "Default access entry" +msgstr "" #: models.py:89 -msgid "default access entry" -msgstr "entrada de acesso padrão" +msgid "Default access entries" +msgstr "" -#: models.py:90 -msgid "default access entries" -msgstr "entradas de acesso padrão" - -#: models.py:109 +#: models.py:108 models.py:111 models.py:112 msgid "Creator" msgstr "Criador" -#: models.py:112 models.py:113 -msgid "creator" -msgstr "criador" - #: permissions.py:7 permissions.py:8 msgid "Access control lists" msgstr "Listas de controle de acesso" @@ -119,66 +117,66 @@ msgstr "Editar classe de ACLs padrões" msgid "View class default ACLs" msgstr "Visualizar classe de ACLs padrões" -#: views.py:46 +#: views.py:48 #, python-format -msgid "access control lists for: %s" -msgstr "listas de controle de acesso para: %s" +msgid "Access control lists for: %s" +msgstr "" -#: views.py:48 views.py:408 -msgid "holder" -msgstr "titular" +#: views.py:50 views.py:402 +msgid "Holder" +msgstr "" -#: views.py:49 views.py:409 -msgid "permissions" -msgstr "permissões" +#: views.py:51 views.py:403 +msgid "Permissions" +msgstr "" -#: views.py:96 +#: views.py:98 #, python-format -msgid "permissions available to: %(actor)s for %(obj)s" -msgstr "permissões disponíveis para: %(actor)s para %(obj)s" +msgid "Permissions available to: %(actor)s for %(obj)s" +msgstr "" -#: views.py:103 views.py:441 -msgid "namespace" -msgstr "namespace" +#: views.py:105 views.py:434 +msgid "Namespace" +msgstr "" -#: views.py:104 views.py:442 -msgid "label" -msgstr "etiqueta" +#: views.py:106 views.py:435 +msgid "Label" +msgstr "" -#: views.py:106 views.py:444 -msgid "has permission" -msgstr "tem permissão" +#: views.py:108 views.py:437 +msgid "Has permission" +msgstr "" -#: views.py:183 views.py:276 views.py:524 views.py:603 +#: views.py:181 views.py:272 views.py:516 views.py:593 msgid ", " msgstr "," -#: views.py:184 views.py:277 views.py:525 views.py:604 +#: views.py:182 views.py:273 views.py:517 views.py:594 #, python-format msgid " for %s" msgstr "para %s" -#: views.py:185 views.py:526 +#: views.py:183 views.py:518 #, python-format msgid " to %s" msgstr "até %s" -#: views.py:188 views.py:529 +#: views.py:186 views.py:521 #, python-format msgid "Are you sure you wish to grant the permission %(title_suffix)s?" msgstr "Você tem certeza que deseja conceder a permissão %(title_suffix)s?" -#: views.py:190 views.py:531 +#: views.py:188 views.py:523 #, python-format msgid "Are you sure you wish to grant the permissions %(title_suffix)s?" msgstr "Você tem certeza que deseja conceder a permissões %(title_suffix)s?" -#: views.py:197 views.py:538 +#: views.py:195 views.py:530 #, python-format msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." msgstr "Permissão \"%(permission)s\" concedida %(actor)s para %(object)s." -#: views.py:203 views.py:544 +#: views.py:201 views.py:536 #, python-format msgid "" "%(actor)s, already had the permission \"%(permission)s\" granted for " @@ -186,59 +184,64 @@ msgid "" msgstr "" "%(actor)s, já tem a permissão \"%(permission)s\" concedida para %(object)s." -#: views.py:278 views.py:605 +#: views.py:274 views.py:595 #, python-format msgid " from %s" msgstr "de %s" -#: views.py:281 views.py:608 +#: views.py:277 views.py:598 #, python-format msgid "Are you sure you wish to revoke the permission %(title_suffix)s?" msgstr "Você tem certeza que deseja revogar a permissão %(title_suffix)s?" -#: views.py:283 views.py:610 +#: views.py:279 views.py:600 #, python-format msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?" msgstr "Você tem certeza que deseja revogar as permissões %(title_suffix)s?" -#: views.py:290 views.py:617 +#: views.py:286 views.py:607 #, python-format msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." msgstr "Permissão \"%(permission)s\" revogada de %(actor)s para %(object)s." -#: views.py:296 views.py:623 +#: views.py:292 views.py:613 #, python-format msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." msgstr "%(actor)s, não tinha a permissão \"%(permission)s\" para %(object)s." -#: views.py:352 +#: views.py:346 #, python-format -msgid "add new holder for: %s" -msgstr "adicionar um novo titular para: %s" +msgid "Add new holder for: %s" +msgstr "" -#: views.py:353 views.py:485 +#: views.py:347 views.py:477 msgid "Select" msgstr "Selecionar" -#: views.py:385 -msgid "classes" -msgstr "classes" +#: views.py:381 +msgid "Class" +msgstr "" -#: views.py:387 -msgid "class" -msgstr "classe" - -#: views.py:406 +#: views.py:400 #, python-format -msgid "default access control lists for class: %s" -msgstr "listas de controle de acesso padrão para classe: %s" +msgid "Default access control lists for class: %s" +msgstr "" -#: views.py:434 +#: views.py:428 #, python-format -msgid "permissions available to: %(actor)s for class %(class)s" -msgstr "permissões disponíveis para: %(actor)s para a classe %(class)s" +msgid "Permissions available to: %(actor)s for class %(class)s" +msgstr "" -#: views.py:483 +#: views.py:475 #, python-format -msgid "add new holder for class: %s" -msgstr "adicionar um novo titular para a classe: %s" +msgid "Add new holder for class: %s" +msgstr "" + +#~ msgid "List of classes" +#~ msgstr "List of classes" + +#~ msgid "permission" +#~ msgstr "permission" + +#~ msgid "creator" +#~ msgstr "creator" diff --git a/mayan/apps/acls/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/ro_RO/LC_MESSAGES/django.mo index 3981829362..089fea8baf 100644 Binary files a/mayan/apps/acls/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/acls/locale/ro_RO/LC_MESSAGES/django.po index d13c1d530a..de2a5346d5 100644 --- a/mayan/apps/acls/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/ro_RO/LC_MESSAGES/django.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: # Badea Gabriel , 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2013-02-10 16:21+0000\n" -"Last-Translator: Badea Gabriel \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2014-10-25 06:47+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Romanian (Romania) (http://www.transifex.com/projects/p/mayan-" "edms/language/ro_RO/)\n" "Language: ro_RO\n" @@ -20,7 +21,7 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" "2:1));\n" -#: forms.py:25 links.py:10 links.py:16 +#: forms.py:25 links.py:13 links.py:19 msgid "New holder" msgstr "Noul titular" @@ -40,31 +41,31 @@ msgstr "Roluri" msgid "Special" msgstr "Special" -#: links.py:6 +#: links.py:9 msgid "ACLs" msgstr "ACL-uri" -#: links.py:7 links.py:15 -msgid "details" -msgstr "Detalii" +#: links.py:10 links.py:18 +msgid "Details" +msgstr "" -#: links.py:8 links.py:17 -msgid "grant" -msgstr "acorda" +#: links.py:11 links.py:20 +msgid "Grant" +msgstr "" -#: links.py:9 links.py:18 -msgid "revoke" -msgstr "revoca" +#: links.py:12 links.py:21 +msgid "Revoke" +msgstr "" -#: links.py:12 +#: links.py:15 msgid "Default ACLs" msgstr "ACL-uri iniţial" -#: links.py:13 -msgid "List of classes" -msgstr "Lista de clase" +#: links.py:16 views.py:379 +msgid "Classes" +msgstr "" -#: links.py:14 +#: links.py:17 msgid "ACLs for class" msgstr "ACL-uri pentru clasa" @@ -72,34 +73,30 @@ msgstr "ACL-uri pentru clasa" msgid "Insufficient access." msgstr "Accesul insuficient." -#: models.py:26 models.py:68 -msgid "permission" -msgstr "permisiune" +#: models.py:25 models.py:67 +msgid "Permission" +msgstr "" + +#: models.py:51 +msgid "Access entry" +msgstr "" #: models.py:52 -msgid "access entry" -msgstr "de acces de intrare" +msgid "Access entries" +msgstr "" -#: models.py:53 -msgid "access entries" -msgstr "acces intrări" +#: models.py:88 +msgid "Default access entry" +msgstr "" #: models.py:89 -msgid "default access entry" -msgstr "acces de intrare iniţial" +msgid "Default access entries" +msgstr "" -#: models.py:90 -msgid "default access entries" -msgstr "acces intrări implicit " - -#: models.py:109 +#: models.py:108 models.py:111 models.py:112 msgid "Creator" msgstr "Creator" -#: models.py:112 models.py:113 -msgid "creator" -msgstr "creator" - #: permissions.py:7 permissions.py:8 msgid "Access control lists" msgstr "Lista de control acces" @@ -120,66 +117,66 @@ msgstr "Editați ACL-uri de clasă implicite" msgid "View class default ACLs" msgstr "Vezi ACL-uri de clasă implicite" -#: views.py:46 +#: views.py:48 #, python-format -msgid "access control lists for: %s" -msgstr "listele de control accese pentru:% s" +msgid "Access control lists for: %s" +msgstr "" -#: views.py:48 views.py:408 -msgid "holder" -msgstr "titular" +#: views.py:50 views.py:402 +msgid "Holder" +msgstr "" -#: views.py:49 views.py:409 -msgid "permissions" -msgstr "permisiuni" +#: views.py:51 views.py:403 +msgid "Permissions" +msgstr "" -#: views.py:96 +#: views.py:98 #, python-format -msgid "permissions available to: %(actor)s for %(obj)s" -msgstr "permisiunile disponibile la:%(actor)s pentru %(obj)s" +msgid "Permissions available to: %(actor)s for %(obj)s" +msgstr "" -#: views.py:103 views.py:441 -msgid "namespace" -msgstr "namespace" +#: views.py:105 views.py:434 +msgid "Namespace" +msgstr "" -#: views.py:104 views.py:442 -msgid "label" -msgstr "etichetă" +#: views.py:106 views.py:435 +msgid "Label" +msgstr "" -#: views.py:106 views.py:444 -msgid "has permission" -msgstr "are permisiunea" +#: views.py:108 views.py:437 +msgid "Has permission" +msgstr "" -#: views.py:183 views.py:276 views.py:524 views.py:603 +#: views.py:181 views.py:272 views.py:516 views.py:593 msgid ", " msgstr "," -#: views.py:184 views.py:277 views.py:525 views.py:604 +#: views.py:182 views.py:273 views.py:517 views.py:594 #, python-format msgid " for %s" msgstr "pentru% s" -#: views.py:185 views.py:526 +#: views.py:183 views.py:518 #, python-format msgid " to %s" msgstr "la% s" -#: views.py:188 views.py:529 +#: views.py:186 views.py:521 #, python-format msgid "Are you sure you wish to grant the permission %(title_suffix)s?" msgstr "Sunteți sigur că doriți să acorde permisiunea %(title_suffix)s ?" -#: views.py:190 views.py:531 +#: views.py:188 views.py:523 #, python-format msgid "Are you sure you wish to grant the permissions %(title_suffix)s?" msgstr "Sunteți sigur că doriți să acorde permisiuni %(title_suffix)s ?" -#: views.py:197 views.py:538 +#: views.py:195 views.py:530 #, python-format msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." msgstr "Permisiune \"%(permission)s\" acordată %(actor)s pentru %(object)s." -#: views.py:203 views.py:544 +#: views.py:201 views.py:536 #, python-format msgid "" "%(actor)s, already had the permission \"%(permission)s\" granted for " @@ -188,60 +185,65 @@ msgstr "" "%(actor)s , a avut deja permisiunea \"%(permission)s\" acordată pentru " "%(object)s." -#: views.py:278 views.py:605 +#: views.py:274 views.py:595 #, python-format msgid " from %s" msgstr "de la% s" -#: views.py:281 views.py:608 +#: views.py:277 views.py:598 #, python-format msgid "Are you sure you wish to revoke the permission %(title_suffix)s?" msgstr "Sunteți sigur că doriți să revocați permisiunea %(title_suffix)s?" -#: views.py:283 views.py:610 +#: views.py:279 views.py:600 #, python-format msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?" msgstr "Sunteți sigur că doriți să revocați permisiunile %(title_suffix)s?" -#: views.py:290 views.py:617 +#: views.py:286 views.py:607 #, python-format msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." msgstr "" "Permisiune\"%(permission)s\" revocată pentru %(actor)s pentru %(object)s." -#: views.py:296 views.py:623 +#: views.py:292 views.py:613 #, python-format msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." msgstr "%(actor)s, nu a avut permisiunea%(permission)s\" pentru %(object)s." -#: views.py:352 +#: views.py:346 #, python-format -msgid "add new holder for: %s" -msgstr "adauga nou titular pentru:% s" +msgid "Add new holder for: %s" +msgstr "" -#: views.py:353 views.py:485 +#: views.py:347 views.py:477 msgid "Select" msgstr "Selecta" -#: views.py:385 -msgid "classes" -msgstr "clase" +#: views.py:381 +msgid "Class" +msgstr "" -#: views.py:387 -msgid "class" -msgstr "clasă" - -#: views.py:406 +#: views.py:400 #, python-format -msgid "default access control lists for class: %s" -msgstr "listele de control acces implicite pentru clasa:% s" +msgid "Default access control lists for class: %s" +msgstr "" -#: views.py:434 +#: views.py:428 #, python-format -msgid "permissions available to: %(actor)s for class %(class)s" -msgstr "permisiunile disponibile la: %(actor)s pentru clasa %(class)s" +msgid "Permissions available to: %(actor)s for class %(class)s" +msgstr "" -#: views.py:483 +#: views.py:475 #, python-format -msgid "add new holder for class: %s" -msgstr "adauga nou titular pentru clasa:% s" +msgid "Add new holder for class: %s" +msgstr "" + +#~ msgid "List of classes" +#~ msgstr "List of classes" + +#~ msgid "permission" +#~ msgstr "permission" + +#~ msgid "creator" +#~ msgstr "creator" diff --git a/mayan/apps/acls/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/ru/LC_MESSAGES/django.mo index 6ff8f86769..1074a3af6f 100644 Binary files a/mayan/apps/acls/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/ru/LC_MESSAGES/django.po b/mayan/apps/acls/locale/ru/LC_MESSAGES/django.po index 1b5b8d770a..b8ac0f47c0 100644 --- a/mayan/apps/acls/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/ru/LC_MESSAGES/django.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: # Sergey Glita , 2012 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2013-05-14 06:44+0000\n" -"Last-Translator: Sergey Glita \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2014-10-25 06:47+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Russian (http://www.transifex.com/projects/p/mayan-edms/" "language/ru/)\n" "Language: ru\n" @@ -20,7 +21,7 @@ msgstr "" "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" -#: forms.py:25 links.py:10 links.py:16 +#: forms.py:25 links.py:13 links.py:19 msgid "New holder" msgstr "Новый владелец" @@ -40,31 +41,31 @@ msgstr "Роли" msgid "Special" msgstr "Специальный" -#: links.py:6 +#: links.py:9 msgid "ACLs" msgstr "Списки ACL" -#: links.py:7 links.py:15 -msgid "details" -msgstr "детали" +#: links.py:10 links.py:18 +msgid "Details" +msgstr "" -#: links.py:8 links.py:17 -msgid "grant" -msgstr "предоставить" +#: links.py:11 links.py:20 +msgid "Grant" +msgstr "" -#: links.py:9 links.py:18 -msgid "revoke" -msgstr "отозвать" +#: links.py:12 links.py:21 +msgid "Revoke" +msgstr "" -#: links.py:12 +#: links.py:15 msgid "Default ACLs" msgstr "ACL по умолчанию" -#: links.py:13 -msgid "List of classes" -msgstr "Список классов" +#: links.py:16 views.py:379 +msgid "Classes" +msgstr "" -#: links.py:14 +#: links.py:17 msgid "ACLs for class" msgstr "ACL для класса" @@ -72,34 +73,30 @@ msgstr "ACL для класса" msgid "Insufficient access." msgstr "Недостаточный доступ." -#: models.py:26 models.py:68 -msgid "permission" -msgstr "разрешение" +#: models.py:25 models.py:67 +msgid "Permission" +msgstr "" + +#: models.py:51 +msgid "Access entry" +msgstr "" #: models.py:52 -msgid "access entry" -msgstr "запись доступа" +msgid "Access entries" +msgstr "" -#: models.py:53 -msgid "access entries" -msgstr "записи доступа" +#: models.py:88 +msgid "Default access entry" +msgstr "" #: models.py:89 -msgid "default access entry" -msgstr "запись доступа по умолчанию" +msgid "Default access entries" +msgstr "" -#: models.py:90 -msgid "default access entries" -msgstr "записи доступа по умолчанию" - -#: models.py:109 +#: models.py:108 models.py:111 models.py:112 msgid "Creator" msgstr "Создатель" -#: models.py:112 models.py:113 -msgid "creator" -msgstr "создатель" - #: permissions.py:7 permissions.py:8 msgid "Access control lists" msgstr "Списки контроля доступа" @@ -120,125 +117,130 @@ msgstr "Редактировать списки ACL класса по умолч msgid "View class default ACLs" msgstr "Просмотр списков ACL класса по умолчанию" -#: views.py:46 +#: views.py:48 #, python-format -msgid "access control lists for: %s" -msgstr "списки контроля доступа для %s" +msgid "Access control lists for: %s" +msgstr "" -#: views.py:48 views.py:408 -msgid "holder" -msgstr "владелец" +#: views.py:50 views.py:402 +msgid "Holder" +msgstr "" -#: views.py:49 views.py:409 -msgid "permissions" -msgstr "разрешения" +#: views.py:51 views.py:403 +msgid "Permissions" +msgstr "" -#: views.py:96 +#: views.py:98 #, python-format -msgid "permissions available to: %(actor)s for %(obj)s" -msgstr "разрешения, доступные %(actor)s для %(obj)s" +msgid "Permissions available to: %(actor)s for %(obj)s" +msgstr "" -#: views.py:103 views.py:441 -msgid "namespace" -msgstr "пространство имен" +#: views.py:105 views.py:434 +msgid "Namespace" +msgstr "" -#: views.py:104 views.py:442 -msgid "label" -msgstr "этикетка" +#: views.py:106 views.py:435 +msgid "Label" +msgstr "" -#: views.py:106 views.py:444 -msgid "has permission" -msgstr "имеет разрешение" +#: views.py:108 views.py:437 +msgid "Has permission" +msgstr "" -#: views.py:183 views.py:276 views.py:524 views.py:603 +#: views.py:181 views.py:272 views.py:516 views.py:593 msgid ", " msgstr "," -#: views.py:184 views.py:277 views.py:525 views.py:604 +#: views.py:182 views.py:273 views.py:517 views.py:594 #, python-format msgid " for %s" msgstr "для %s" -#: views.py:185 views.py:526 +#: views.py:183 views.py:518 #, python-format msgid " to %s" msgstr "до %s" -#: views.py:188 views.py:529 +#: views.py:186 views.py:521 #, python-format msgid "Are you sure you wish to grant the permission %(title_suffix)s?" msgstr "Вы действительно хотите предоставить разрешение %(title_suffix)s?" -#: views.py:190 views.py:531 +#: views.py:188 views.py:523 #, python-format msgid "Are you sure you wish to grant the permissions %(title_suffix)s?" msgstr "Вы уверены, что хотите предоставить разрешения %(title_suffix)s?" -#: views.py:197 views.py:538 +#: views.py:195 views.py:530 #, python-format msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." msgstr "Право \"%(permission)s\" проедоставлено %(actor)s для %(object)s." -#: views.py:203 views.py:544 +#: views.py:201 views.py:536 #, python-format msgid "" "%(actor)s, already had the permission \"%(permission)s\" granted for " "%(object)s." msgstr "%(actor)s, уже имеет право \"%(permission)s\" для %(object)s." -#: views.py:278 views.py:605 +#: views.py:274 views.py:595 #, python-format msgid " from %s" msgstr "от%s" -#: views.py:281 views.py:608 +#: views.py:277 views.py:598 #, python-format msgid "Are you sure you wish to revoke the permission %(title_suffix)s?" msgstr "Вы уверены, что хотите отменить разрешение %(title_suffix)s?" -#: views.py:283 views.py:610 +#: views.py:279 views.py:600 #, python-format msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?" msgstr "Вы уверены, что хотите отменить разрешение %(title_suffix)s?" -#: views.py:290 views.py:617 +#: views.py:286 views.py:607 #, python-format msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." msgstr "Право \"%(permission)s\" для %(object)s отозвано у %(actor)s." -#: views.py:296 views.py:623 +#: views.py:292 views.py:613 #, python-format msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." msgstr "%(actor)s не имеет права \"%(permission)s\" для %(object)s." -#: views.py:352 +#: views.py:346 #, python-format -msgid "add new holder for: %s" -msgstr "добавить нового владельца для %s" +msgid "Add new holder for: %s" +msgstr "" -#: views.py:353 views.py:485 +#: views.py:347 views.py:477 msgid "Select" msgstr "Выбор" -#: views.py:385 -msgid "classes" -msgstr "классы" +#: views.py:381 +msgid "Class" +msgstr "" -#: views.py:387 -msgid "class" -msgstr "класс" - -#: views.py:406 +#: views.py:400 #, python-format -msgid "default access control lists for class: %s" -msgstr "списки контроля доступа умолчанию для класса %s" +msgid "Default access control lists for class: %s" +msgstr "" -#: views.py:434 +#: views.py:428 #, python-format -msgid "permissions available to: %(actor)s for class %(class)s" -msgstr "разрешения доступные %(actor)s для класса %(class)s" +msgid "Permissions available to: %(actor)s for class %(class)s" +msgstr "" -#: views.py:483 +#: views.py:475 #, python-format -msgid "add new holder for class: %s" -msgstr "добавить нового владельца для класса %s" +msgid "Add new holder for class: %s" +msgstr "" + +#~ msgid "List of classes" +#~ msgstr "List of classes" + +#~ msgid "permission" +#~ msgstr "permission" + +#~ msgid "creator" +#~ msgstr "creator" diff --git a/mayan/apps/acls/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/sl_SI/LC_MESSAGES/django.mo index fd8000ba78..ae40dbd7e6 100644 Binary files a/mayan/apps/acls/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/acls/locale/sl_SI/LC_MESSAGES/django.po index f5e37c99c4..8669bdd212 100644 --- a/mayan/apps/acls/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/sl_SI/LC_MESSAGES/django.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-01-02 09:45+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2014-10-25 06:47+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Slovenian (Slovenia) (http://www.transifex.com/projects/p/" "mayan-edms/language/sl_SI/)\n" "Language: sl_SI\n" @@ -19,7 +20,7 @@ msgstr "" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" "%100==4 ? 2 : 3);\n" -#: forms.py:25 links.py:10 links.py:16 +#: forms.py:25 links.py:13 links.py:19 msgid "New holder" msgstr "" @@ -39,31 +40,31 @@ msgstr "" msgid "Special" msgstr "" -#: links.py:6 +#: links.py:9 msgid "ACLs" msgstr "" -#: links.py:7 links.py:15 -msgid "details" +#: links.py:10 links.py:18 +msgid "Details" msgstr "" -#: links.py:8 links.py:17 -msgid "grant" +#: links.py:11 links.py:20 +msgid "Grant" msgstr "" -#: links.py:9 links.py:18 -msgid "revoke" +#: links.py:12 links.py:21 +msgid "Revoke" msgstr "" -#: links.py:12 +#: links.py:15 msgid "Default ACLs" msgstr "" -#: links.py:13 -msgid "List of classes" +#: links.py:16 views.py:379 +msgid "Classes" msgstr "" -#: links.py:14 +#: links.py:17 msgid "ACLs for class" msgstr "" @@ -71,34 +72,30 @@ msgstr "" msgid "Insufficient access." msgstr "" -#: models.py:26 models.py:68 -msgid "permission" +#: models.py:25 models.py:67 +msgid "Permission" +msgstr "" + +#: models.py:51 +msgid "Access entry" msgstr "" #: models.py:52 -msgid "access entry" +msgid "Access entries" msgstr "" -#: models.py:53 -msgid "access entries" +#: models.py:88 +msgid "Default access entry" msgstr "" #: models.py:89 -msgid "default access entry" +msgid "Default access entries" msgstr "" -#: models.py:90 -msgid "default access entries" -msgstr "" - -#: models.py:109 +#: models.py:108 models.py:111 models.py:112 msgid "Creator" msgstr "" -#: models.py:112 models.py:113 -msgid "creator" -msgstr "" - #: permissions.py:7 permissions.py:8 msgid "Access control lists" msgstr "" @@ -119,125 +116,130 @@ msgstr "" msgid "View class default ACLs" msgstr "" -#: views.py:46 +#: views.py:48 #, python-format -msgid "access control lists for: %s" +msgid "Access control lists for: %s" msgstr "" -#: views.py:48 views.py:408 -msgid "holder" +#: views.py:50 views.py:402 +msgid "Holder" msgstr "" -#: views.py:49 views.py:409 -msgid "permissions" +#: views.py:51 views.py:403 +msgid "Permissions" msgstr "" -#: views.py:96 +#: views.py:98 #, python-format -msgid "permissions available to: %(actor)s for %(obj)s" +msgid "Permissions available to: %(actor)s for %(obj)s" msgstr "" -#: views.py:103 views.py:441 -msgid "namespace" +#: views.py:105 views.py:434 +msgid "Namespace" msgstr "" -#: views.py:104 views.py:442 -msgid "label" +#: views.py:106 views.py:435 +msgid "Label" msgstr "" -#: views.py:106 views.py:444 -msgid "has permission" +#: views.py:108 views.py:437 +msgid "Has permission" msgstr "" -#: views.py:183 views.py:276 views.py:524 views.py:603 +#: views.py:181 views.py:272 views.py:516 views.py:593 msgid ", " msgstr "" -#: views.py:184 views.py:277 views.py:525 views.py:604 +#: views.py:182 views.py:273 views.py:517 views.py:594 #, python-format msgid " for %s" msgstr "" -#: views.py:185 views.py:526 +#: views.py:183 views.py:518 #, python-format msgid " to %s" msgstr "" -#: views.py:188 views.py:529 +#: views.py:186 views.py:521 #, python-format msgid "Are you sure you wish to grant the permission %(title_suffix)s?" msgstr "" -#: views.py:190 views.py:531 +#: views.py:188 views.py:523 #, python-format msgid "Are you sure you wish to grant the permissions %(title_suffix)s?" msgstr "" -#: views.py:197 views.py:538 +#: views.py:195 views.py:530 #, python-format msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." msgstr "" -#: views.py:203 views.py:544 +#: views.py:201 views.py:536 #, python-format msgid "" "%(actor)s, already had the permission \"%(permission)s\" granted for " "%(object)s." msgstr "" -#: views.py:278 views.py:605 +#: views.py:274 views.py:595 #, python-format msgid " from %s" msgstr "" -#: views.py:281 views.py:608 +#: views.py:277 views.py:598 #, python-format msgid "Are you sure you wish to revoke the permission %(title_suffix)s?" msgstr "" -#: views.py:283 views.py:610 +#: views.py:279 views.py:600 #, python-format msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?" msgstr "" -#: views.py:290 views.py:617 +#: views.py:286 views.py:607 #, python-format msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." msgstr "" -#: views.py:296 views.py:623 +#: views.py:292 views.py:613 #, python-format msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." msgstr "" -#: views.py:352 +#: views.py:346 #, python-format -msgid "add new holder for: %s" +msgid "Add new holder for: %s" msgstr "" -#: views.py:353 views.py:485 +#: views.py:347 views.py:477 msgid "Select" msgstr "" -#: views.py:385 -msgid "classes" +#: views.py:381 +msgid "Class" msgstr "" -#: views.py:387 -msgid "class" -msgstr "" - -#: views.py:406 +#: views.py:400 #, python-format -msgid "default access control lists for class: %s" +msgid "Default access control lists for class: %s" msgstr "" -#: views.py:434 +#: views.py:428 #, python-format -msgid "permissions available to: %(actor)s for class %(class)s" +msgid "Permissions available to: %(actor)s for class %(class)s" msgstr "" -#: views.py:483 +#: views.py:475 #, python-format -msgid "add new holder for class: %s" +msgid "Add new holder for class: %s" msgstr "" + +#~ msgid "List of classes" +#~ msgstr "List of classes" + +#~ msgid "permission" +#~ msgstr "permission" + +#~ msgid "creator" +#~ msgstr "creator" diff --git a/mayan/apps/acls/locale/sq/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/sq/LC_MESSAGES/django.mo new file mode 100644 index 0000000000..b7f735411c Binary files /dev/null and b/mayan/apps/acls/locale/sq/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/sq/LC_MESSAGES/django.po b/mayan/apps/acls/locale/sq/LC_MESSAGES/django.po new file mode 100644 index 0000000000..84e9ddec4f --- /dev/null +++ b/mayan/apps/acls/locale/sq/LC_MESSAGES/django.po @@ -0,0 +1,245 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Translators: +# Enri Mullai , 2014 +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2014-10-25 06:47+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Albanian (http://www.transifex.com/projects/p/mayan-edms/" +"language/sq/)\n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: forms.py:25 links.py:13 links.py:19 +msgid "New holder" +msgstr "Mbajtës i ri" + +#: forms.py:42 +msgid "Users" +msgstr "Përdorues" + +#: forms.py:45 +msgid "Groups" +msgstr "Grupe" + +#: forms.py:48 +msgid "Roles" +msgstr "Role" + +#: forms.py:51 +msgid "Special" +msgstr "" + +#: links.py:9 +msgid "ACLs" +msgstr "ACLs" + +#: links.py:10 links.py:18 +msgid "Details" +msgstr "" + +#: links.py:11 links.py:20 +msgid "Grant" +msgstr "" + +#: links.py:12 links.py:21 +msgid "Revoke" +msgstr "" + +#: links.py:15 +msgid "Default ACLs" +msgstr "ACL e paracaktuara" + +#: links.py:16 views.py:379 +msgid "Classes" +msgstr "" + +#: links.py:17 +msgid "ACLs for class" +msgstr "ACL-të per klasën" + +#: managers.py:118 managers.py:130 +msgid "Insufficient access." +msgstr "e drejtë e pa mjaftueshme" + +#: models.py:25 models.py:67 +msgid "Permission" +msgstr "" + +#: models.py:51 +msgid "Access entry" +msgstr "" + +#: models.py:52 +msgid "Access entries" +msgstr "" + +#: models.py:88 +msgid "Default access entry" +msgstr "" + +#: models.py:89 +msgid "Default access entries" +msgstr "" + +#: models.py:108 models.py:111 models.py:112 +msgid "Creator" +msgstr "" + +#: permissions.py:7 permissions.py:8 +msgid "Access control lists" +msgstr "" + +#: permissions.py:10 +msgid "Edit ACLs" +msgstr "" + +#: permissions.py:11 +msgid "View ACLs" +msgstr "" + +#: permissions.py:13 +msgid "Edit class default ACLs" +msgstr "" + +#: permissions.py:14 +msgid "View class default ACLs" +msgstr "" + +#: views.py:48 +#, python-format +msgid "Access control lists for: %s" +msgstr "" + +#: views.py:50 views.py:402 +msgid "Holder" +msgstr "" + +#: views.py:51 views.py:403 +msgid "Permissions" +msgstr "" + +#: views.py:98 +#, python-format +msgid "Permissions available to: %(actor)s for %(obj)s" +msgstr "" + +#: views.py:105 views.py:434 +msgid "Namespace" +msgstr "" + +#: views.py:106 views.py:435 +msgid "Label" +msgstr "" + +#: views.py:108 views.py:437 +msgid "Has permission" +msgstr "" + +#: views.py:181 views.py:272 views.py:516 views.py:593 +msgid ", " +msgstr "" + +#: views.py:182 views.py:273 views.py:517 views.py:594 +#, python-format +msgid " for %s" +msgstr "" + +#: views.py:183 views.py:518 +#, python-format +msgid " to %s" +msgstr "" + +#: views.py:186 views.py:521 +#, python-format +msgid "Are you sure you wish to grant the permission %(title_suffix)s?" +msgstr "" + +#: views.py:188 views.py:523 +#, python-format +msgid "Are you sure you wish to grant the permissions %(title_suffix)s?" +msgstr "" + +#: views.py:195 views.py:530 +#, python-format +msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." +msgstr "" + +#: views.py:201 views.py:536 +#, python-format +msgid "" +"%(actor)s, already had the permission \"%(permission)s\" granted for " +"%(object)s." +msgstr "" + +#: views.py:274 views.py:595 +#, python-format +msgid " from %s" +msgstr "" + +#: views.py:277 views.py:598 +#, python-format +msgid "Are you sure you wish to revoke the permission %(title_suffix)s?" +msgstr "" + +#: views.py:279 views.py:600 +#, python-format +msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?" +msgstr "" + +#: views.py:286 views.py:607 +#, python-format +msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." +msgstr "" + +#: views.py:292 views.py:613 +#, python-format +msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +msgstr "" + +#: views.py:346 +#, python-format +msgid "Add new holder for: %s" +msgstr "" + +#: views.py:347 views.py:477 +msgid "Select" +msgstr "" + +#: views.py:381 +msgid "Class" +msgstr "" + +#: views.py:400 +#, python-format +msgid "Default access control lists for class: %s" +msgstr "" + +#: views.py:428 +#, python-format +msgid "Permissions available to: %(actor)s for class %(class)s" +msgstr "" + +#: views.py:475 +#, python-format +msgid "Add new holder for class: %s" +msgstr "" + +#~ msgid "List of classes" +#~ msgstr "List of classes" + +#~ msgid "permission" +#~ msgstr "permission" + +#~ msgid "creator" +#~ msgstr "creator" diff --git a/mayan/apps/acls/locale/tr_TR/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/tr_TR/LC_MESSAGES/django.mo index 88c17e0085..017e18a58b 100644 Binary files a/mayan/apps/acls/locale/tr_TR/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/tr_TR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/tr_TR/LC_MESSAGES/django.po b/mayan/apps/acls/locale/tr_TR/LC_MESSAGES/django.po index d74fd564f6..2c69578022 100644 --- a/mayan/apps/acls/locale/tr_TR/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/tr_TR/LC_MESSAGES/django.po @@ -3,12 +3,13 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2013-06-10 05:29+0000\n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2014-10-25 06:47+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Turkish (Turkey) (http://www.transifex.com/projects/p/mayan-" "edms/language/tr_TR/)\n" @@ -18,7 +19,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: forms.py:25 links.py:10 links.py:16 +#: forms.py:25 links.py:13 links.py:19 msgid "New holder" msgstr "" @@ -38,31 +39,31 @@ msgstr "" msgid "Special" msgstr "" -#: links.py:6 +#: links.py:9 msgid "ACLs" msgstr "" -#: links.py:7 links.py:15 -msgid "details" +#: links.py:10 links.py:18 +msgid "Details" msgstr "" -#: links.py:8 links.py:17 -msgid "grant" +#: links.py:11 links.py:20 +msgid "Grant" msgstr "" -#: links.py:9 links.py:18 -msgid "revoke" +#: links.py:12 links.py:21 +msgid "Revoke" msgstr "" -#: links.py:12 +#: links.py:15 msgid "Default ACLs" msgstr "" -#: links.py:13 -msgid "List of classes" +#: links.py:16 views.py:379 +msgid "Classes" msgstr "" -#: links.py:14 +#: links.py:17 msgid "ACLs for class" msgstr "" @@ -70,34 +71,30 @@ msgstr "" msgid "Insufficient access." msgstr "" -#: models.py:26 models.py:68 -msgid "permission" +#: models.py:25 models.py:67 +msgid "Permission" +msgstr "" + +#: models.py:51 +msgid "Access entry" msgstr "" #: models.py:52 -msgid "access entry" +msgid "Access entries" msgstr "" -#: models.py:53 -msgid "access entries" +#: models.py:88 +msgid "Default access entry" msgstr "" #: models.py:89 -msgid "default access entry" +msgid "Default access entries" msgstr "" -#: models.py:90 -msgid "default access entries" -msgstr "" - -#: models.py:109 +#: models.py:108 models.py:111 models.py:112 msgid "Creator" msgstr "" -#: models.py:112 models.py:113 -msgid "creator" -msgstr "" - #: permissions.py:7 permissions.py:8 msgid "Access control lists" msgstr "" @@ -118,125 +115,130 @@ msgstr "" msgid "View class default ACLs" msgstr "" -#: views.py:46 +#: views.py:48 #, python-format -msgid "access control lists for: %s" +msgid "Access control lists for: %s" msgstr "" -#: views.py:48 views.py:408 -msgid "holder" +#: views.py:50 views.py:402 +msgid "Holder" msgstr "" -#: views.py:49 views.py:409 -msgid "permissions" +#: views.py:51 views.py:403 +msgid "Permissions" msgstr "" -#: views.py:96 +#: views.py:98 #, python-format -msgid "permissions available to: %(actor)s for %(obj)s" +msgid "Permissions available to: %(actor)s for %(obj)s" msgstr "" -#: views.py:103 views.py:441 -msgid "namespace" +#: views.py:105 views.py:434 +msgid "Namespace" msgstr "" -#: views.py:104 views.py:442 -msgid "label" +#: views.py:106 views.py:435 +msgid "Label" msgstr "" -#: views.py:106 views.py:444 -msgid "has permission" +#: views.py:108 views.py:437 +msgid "Has permission" msgstr "" -#: views.py:183 views.py:276 views.py:524 views.py:603 +#: views.py:181 views.py:272 views.py:516 views.py:593 msgid ", " msgstr "" -#: views.py:184 views.py:277 views.py:525 views.py:604 +#: views.py:182 views.py:273 views.py:517 views.py:594 #, python-format msgid " for %s" msgstr "" -#: views.py:185 views.py:526 +#: views.py:183 views.py:518 #, python-format msgid " to %s" msgstr "" -#: views.py:188 views.py:529 +#: views.py:186 views.py:521 #, python-format msgid "Are you sure you wish to grant the permission %(title_suffix)s?" msgstr "" -#: views.py:190 views.py:531 +#: views.py:188 views.py:523 #, python-format msgid "Are you sure you wish to grant the permissions %(title_suffix)s?" msgstr "" -#: views.py:197 views.py:538 +#: views.py:195 views.py:530 #, python-format msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." msgstr "" -#: views.py:203 views.py:544 +#: views.py:201 views.py:536 #, python-format msgid "" "%(actor)s, already had the permission \"%(permission)s\" granted for " "%(object)s." msgstr "" -#: views.py:278 views.py:605 +#: views.py:274 views.py:595 #, python-format msgid " from %s" msgstr "" -#: views.py:281 views.py:608 +#: views.py:277 views.py:598 #, python-format msgid "Are you sure you wish to revoke the permission %(title_suffix)s?" msgstr "" -#: views.py:283 views.py:610 +#: views.py:279 views.py:600 #, python-format msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?" msgstr "" -#: views.py:290 views.py:617 +#: views.py:286 views.py:607 #, python-format msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." msgstr "" -#: views.py:296 views.py:623 +#: views.py:292 views.py:613 #, python-format msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." msgstr "" -#: views.py:352 +#: views.py:346 #, python-format -msgid "add new holder for: %s" +msgid "Add new holder for: %s" msgstr "" -#: views.py:353 views.py:485 +#: views.py:347 views.py:477 msgid "Select" msgstr "" -#: views.py:385 -msgid "classes" +#: views.py:381 +msgid "Class" msgstr "" -#: views.py:387 -msgid "class" -msgstr "" - -#: views.py:406 +#: views.py:400 #, python-format -msgid "default access control lists for class: %s" +msgid "Default access control lists for class: %s" msgstr "" -#: views.py:434 +#: views.py:428 #, python-format -msgid "permissions available to: %(actor)s for class %(class)s" +msgid "Permissions available to: %(actor)s for class %(class)s" msgstr "" -#: views.py:483 +#: views.py:475 #, python-format -msgid "add new holder for class: %s" +msgid "Add new holder for class: %s" msgstr "" + +#~ msgid "List of classes" +#~ msgstr "List of classes" + +#~ msgid "permission" +#~ msgstr "permission" + +#~ msgid "creator" +#~ msgstr "creator" diff --git a/mayan/apps/acls/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/vi_VN/LC_MESSAGES/django.mo index e600cd26f6..eb3279c1a8 100644 Binary files a/mayan/apps/acls/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/acls/locale/vi_VN/LC_MESSAGES/django.po index 2bbc168a23..02d8f83f70 100644 --- a/mayan/apps/acls/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/vi_VN/LC_MESSAGES/django.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-01-02 09:45+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2014-10-25 06:47+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/projects/p/" "mayan-edms/language/vi_VN/)\n" "Language: vi_VN\n" @@ -18,7 +19,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: forms.py:25 links.py:10 links.py:16 +#: forms.py:25 links.py:13 links.py:19 msgid "New holder" msgstr "" @@ -38,31 +39,31 @@ msgstr "" msgid "Special" msgstr "" -#: links.py:6 +#: links.py:9 msgid "ACLs" msgstr "" -#: links.py:7 links.py:15 -msgid "details" +#: links.py:10 links.py:18 +msgid "Details" msgstr "" -#: links.py:8 links.py:17 -msgid "grant" +#: links.py:11 links.py:20 +msgid "Grant" msgstr "" -#: links.py:9 links.py:18 -msgid "revoke" +#: links.py:12 links.py:21 +msgid "Revoke" msgstr "" -#: links.py:12 +#: links.py:15 msgid "Default ACLs" msgstr "" -#: links.py:13 -msgid "List of classes" +#: links.py:16 views.py:379 +msgid "Classes" msgstr "" -#: links.py:14 +#: links.py:17 msgid "ACLs for class" msgstr "" @@ -70,34 +71,30 @@ msgstr "" msgid "Insufficient access." msgstr "" -#: models.py:26 models.py:68 -msgid "permission" +#: models.py:25 models.py:67 +msgid "Permission" +msgstr "" + +#: models.py:51 +msgid "Access entry" msgstr "" #: models.py:52 -msgid "access entry" +msgid "Access entries" msgstr "" -#: models.py:53 -msgid "access entries" +#: models.py:88 +msgid "Default access entry" msgstr "" #: models.py:89 -msgid "default access entry" +msgid "Default access entries" msgstr "" -#: models.py:90 -msgid "default access entries" -msgstr "" - -#: models.py:109 +#: models.py:108 models.py:111 models.py:112 msgid "Creator" msgstr "" -#: models.py:112 models.py:113 -msgid "creator" -msgstr "" - #: permissions.py:7 permissions.py:8 msgid "Access control lists" msgstr "" @@ -118,125 +115,130 @@ msgstr "" msgid "View class default ACLs" msgstr "" -#: views.py:46 +#: views.py:48 #, python-format -msgid "access control lists for: %s" +msgid "Access control lists for: %s" msgstr "" -#: views.py:48 views.py:408 -msgid "holder" +#: views.py:50 views.py:402 +msgid "Holder" msgstr "" -#: views.py:49 views.py:409 -msgid "permissions" +#: views.py:51 views.py:403 +msgid "Permissions" msgstr "" -#: views.py:96 +#: views.py:98 #, python-format -msgid "permissions available to: %(actor)s for %(obj)s" +msgid "Permissions available to: %(actor)s for %(obj)s" msgstr "" -#: views.py:103 views.py:441 -msgid "namespace" +#: views.py:105 views.py:434 +msgid "Namespace" msgstr "" -#: views.py:104 views.py:442 -msgid "label" +#: views.py:106 views.py:435 +msgid "Label" msgstr "" -#: views.py:106 views.py:444 -msgid "has permission" +#: views.py:108 views.py:437 +msgid "Has permission" msgstr "" -#: views.py:183 views.py:276 views.py:524 views.py:603 +#: views.py:181 views.py:272 views.py:516 views.py:593 msgid ", " msgstr "" -#: views.py:184 views.py:277 views.py:525 views.py:604 +#: views.py:182 views.py:273 views.py:517 views.py:594 #, python-format msgid " for %s" msgstr "" -#: views.py:185 views.py:526 +#: views.py:183 views.py:518 #, python-format msgid " to %s" msgstr "" -#: views.py:188 views.py:529 +#: views.py:186 views.py:521 #, python-format msgid "Are you sure you wish to grant the permission %(title_suffix)s?" msgstr "" -#: views.py:190 views.py:531 +#: views.py:188 views.py:523 #, python-format msgid "Are you sure you wish to grant the permissions %(title_suffix)s?" msgstr "" -#: views.py:197 views.py:538 +#: views.py:195 views.py:530 #, python-format msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." msgstr "" -#: views.py:203 views.py:544 +#: views.py:201 views.py:536 #, python-format msgid "" "%(actor)s, already had the permission \"%(permission)s\" granted for " "%(object)s." msgstr "" -#: views.py:278 views.py:605 +#: views.py:274 views.py:595 #, python-format msgid " from %s" msgstr "" -#: views.py:281 views.py:608 +#: views.py:277 views.py:598 #, python-format msgid "Are you sure you wish to revoke the permission %(title_suffix)s?" msgstr "" -#: views.py:283 views.py:610 +#: views.py:279 views.py:600 #, python-format msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?" msgstr "" -#: views.py:290 views.py:617 +#: views.py:286 views.py:607 #, python-format msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." msgstr "" -#: views.py:296 views.py:623 +#: views.py:292 views.py:613 #, python-format msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." msgstr "" -#: views.py:352 +#: views.py:346 #, python-format -msgid "add new holder for: %s" +msgid "Add new holder for: %s" msgstr "" -#: views.py:353 views.py:485 +#: views.py:347 views.py:477 msgid "Select" msgstr "" -#: views.py:385 -msgid "classes" +#: views.py:381 +msgid "Class" msgstr "" -#: views.py:387 -msgid "class" -msgstr "" - -#: views.py:406 +#: views.py:400 #, python-format -msgid "default access control lists for class: %s" +msgid "Default access control lists for class: %s" msgstr "" -#: views.py:434 +#: views.py:428 #, python-format -msgid "permissions available to: %(actor)s for class %(class)s" +msgid "Permissions available to: %(actor)s for class %(class)s" msgstr "" -#: views.py:483 +#: views.py:475 #, python-format -msgid "add new holder for class: %s" +msgid "Add new holder for class: %s" msgstr "" + +#~ msgid "List of classes" +#~ msgstr "List of classes" + +#~ msgid "permission" +#~ msgstr "permission" + +#~ msgid "creator" +#~ msgstr "creator" diff --git a/mayan/apps/acls/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/zh_CN/LC_MESSAGES/django.mo index 8fe0fa2557..60d00c3af5 100644 Binary files a/mayan/apps/acls/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/acls/locale/zh_CN/LC_MESSAGES/django.po index b5344f64b1..1ad747ea7c 100644 --- a/mayan/apps/acls/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/zh_CN/LC_MESSAGES/django.po @@ -1,25 +1,27 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Ford Guo , 2014 +# Genlin Jiao , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2014-09-24 07:19+0000\n" -"Last-Translator: Ford Guo \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/mayan-edms/language/zh_CN/)\n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2015-01-07 02:01+0000\n" +"Last-Translator: Genlin Jiao \n" +"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/mayan-" +"edms/language/zh_CN/)\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: forms.py:25 links.py:10 links.py:16 +#: forms.py:25 links.py:13 links.py:19 msgid "New holder" msgstr "新建权限" @@ -39,66 +41,62 @@ msgstr "角色" msgid "Special" msgstr "特例" -#: links.py:6 +#: links.py:9 msgid "ACLs" msgstr "访问控制列表" -#: links.py:7 links.py:15 -msgid "details" -msgstr "详细" +#: links.py:10 links.py:18 +msgid "Details" +msgstr "细节" -#: links.py:8 links.py:17 -msgid "grant" -msgstr "授权" +#: links.py:11 links.py:20 +msgid "Grant" +msgstr " 授予" -#: links.py:9 links.py:18 -msgid "revoke" -msgstr "撤销" +#: links.py:12 links.py:21 +msgid "Revoke" +msgstr "撤回" -#: links.py:12 +#: links.py:15 msgid "Default ACLs" msgstr "默认访问控制" -#: links.py:13 -msgid "List of classes" -msgstr "类列表" +#: links.py:16 views.py:379 +msgid "Classes" +msgstr "类" -#: links.py:14 +#: links.py:17 msgid "ACLs for class" -msgstr "访问控制类" +msgstr "类访问控制列表" #: managers.py:118 managers.py:130 msgid "Insufficient access." msgstr "权限不足" -#: models.py:26 models.py:68 -msgid "permission" -msgstr "权限" +#: models.py:25 models.py:67 +msgid "Permission" +msgstr "许可" + +#: models.py:51 +msgid "Access entry" +msgstr "访问入口" #: models.py:52 -msgid "access entry" -msgstr "访问入口" +msgid "Access entries" +msgstr "多个访问入口" -#: models.py:53 -msgid "access entries" -msgstr "访问入口" +#: models.py:88 +msgid "Default access entry" +msgstr "默认访问入口" #: models.py:89 -msgid "default access entry" -msgstr "缺省访问入口" +msgid "Default access entries" +msgstr "默认多个访问入口" -#: models.py:90 -msgid "default access entries" -msgstr "缺省访问入口" - -#: models.py:109 +#: models.py:108 models.py:111 models.py:112 msgid "Creator" msgstr "创建者" -#: models.py:112 models.py:113 -msgid "creator" -msgstr "创建者" - #: permissions.py:7 permissions.py:8 msgid "Access control lists" msgstr "访问控制列表" @@ -119,125 +117,130 @@ msgstr "编辑缺省的ACL类" msgid "View class default ACLs" msgstr "查看缺省的ACL类" -#: views.py:46 +#: views.py:48 #, python-format -msgid "access control lists for: %s" -msgstr "访问控制列表:%s" +msgid "Access control lists for: %s" +msgstr "" -#: views.py:48 views.py:408 -msgid "holder" -msgstr "权限容器" +#: views.py:50 views.py:402 +msgid "Holder" +msgstr "" -#: views.py:49 views.py:409 -msgid "permissions" -msgstr "权限" +#: views.py:51 views.py:403 +msgid "Permissions" +msgstr "" -#: views.py:96 +#: views.py:98 #, python-format -msgid "permissions available to: %(actor)s for %(obj)s" -msgstr "%(obj)s的有效权限:%(actor)s" +msgid "Permissions available to: %(actor)s for %(obj)s" +msgstr "" -#: views.py:103 views.py:441 -msgid "namespace" -msgstr "命名空间" +#: views.py:105 views.py:434 +msgid "Namespace" +msgstr "" -#: views.py:104 views.py:442 -msgid "label" -msgstr "标签" +#: views.py:106 views.py:435 +msgid "Label" +msgstr "" -#: views.py:106 views.py:444 -msgid "has permission" -msgstr "有权限" +#: views.py:108 views.py:437 +msgid "Has permission" +msgstr "" -#: views.py:183 views.py:276 views.py:524 views.py:603 +#: views.py:181 views.py:272 views.py:516 views.py:593 msgid ", " msgstr "," -#: views.py:184 views.py:277 views.py:525 views.py:604 +#: views.py:182 views.py:273 views.py:517 views.py:594 #, python-format msgid " for %s" msgstr "对 %s" -#: views.py:185 views.py:526 +#: views.py:183 views.py:518 #, python-format msgid " to %s" msgstr "到 %s" -#: views.py:188 views.py:529 +#: views.py:186 views.py:521 #, python-format msgid "Are you sure you wish to grant the permission %(title_suffix)s?" msgstr "确定要赋予权限 %(title_suffix)s么?" -#: views.py:190 views.py:531 +#: views.py:188 views.py:523 #, python-format msgid "Are you sure you wish to grant the permissions %(title_suffix)s?" msgstr "确定要赋予权限%(title_suffix)s么?" -#: views.py:197 views.py:538 +#: views.py:195 views.py:530 #, python-format msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." msgstr "权限\"%(permission)s\"被赋给%(object)s的%(actor)s" -#: views.py:203 views.py:544 +#: views.py:201 views.py:536 #, python-format msgid "" "%(actor)s, already had the permission \"%(permission)s\" granted for " "%(object)s." msgstr "%(object)s的%(actor)s已经被赋予\"%(permission)s\"的权限" -#: views.py:278 views.py:605 +#: views.py:274 views.py:595 #, python-format msgid " from %s" msgstr "从 %s" -#: views.py:281 views.py:608 +#: views.py:277 views.py:598 #, python-format msgid "Are you sure you wish to revoke the permission %(title_suffix)s?" msgstr "确定要撤销权限%(title_suffix)s么?" -#: views.py:283 views.py:610 +#: views.py:279 views.py:600 #, python-format msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?" msgstr "确定要撤销权限%(title_suffix)s么?" -#: views.py:290 views.py:617 +#: views.py:286 views.py:607 #, python-format msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." msgstr " %(object)s的%(actor)s权限\"%(permission)s\"已经被撤销" -#: views.py:296 views.py:623 +#: views.py:292 views.py:613 #, python-format msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." msgstr "%(object)s的%(actor)s没有权限\"%(permission)s\"" -#: views.py:352 +#: views.py:346 #, python-format -msgid "add new holder for: %s" -msgstr "新增权限容器:%s" +msgid "Add new holder for: %s" +msgstr "" -#: views.py:353 views.py:485 +#: views.py:347 views.py:477 msgid "Select" msgstr "选择" -#: views.py:385 -msgid "classes" -msgstr "类" +#: views.py:381 +msgid "Class" +msgstr "" -#: views.py:387 -msgid "class" -msgstr "类" - -#: views.py:406 +#: views.py:400 #, python-format -msgid "default access control lists for class: %s" -msgstr "缺省访问控制列表类:%s" +msgid "Default access control lists for class: %s" +msgstr "" -#: views.py:434 +#: views.py:428 #, python-format -msgid "permissions available to: %(actor)s for class %(class)s" -msgstr "类%(class)s的%(actor)s的权限是有效的" +msgid "Permissions available to: %(actor)s for class %(class)s" +msgstr "" -#: views.py:483 +#: views.py:475 #, python-format -msgid "add new holder for class: %s" -msgstr "为类:%s 新增权限容器" +msgid "Add new holder for class: %s" +msgstr "" + +#~ msgid "List of classes" +#~ msgstr "List of classes" + +#~ msgid "permission" +#~ msgstr "permission" + +#~ msgid "creator" +#~ msgstr "creator" diff --git a/mayan/apps/bootstrap/locale/tr_TR/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/zh_TW/LC_MESSAGES/django.mo similarity index 58% rename from mayan/apps/bootstrap/locale/tr_TR/LC_MESSAGES/django.mo rename to mayan/apps/acls/locale/zh_TW/LC_MESSAGES/django.mo index 58abf99136..22751335e9 100644 Binary files a/mayan/apps/bootstrap/locale/tr_TR/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/zh_TW/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/zh_TW/LC_MESSAGES/django.po b/mayan/apps/acls/locale/zh_TW/LC_MESSAGES/django.po new file mode 100644 index 0000000000..54696d854a --- /dev/null +++ b/mayan/apps/acls/locale/zh_TW/LC_MESSAGES/django.po @@ -0,0 +1,244 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2014-10-25 06:47+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/mayan-" +"edms/language/zh_TW/)\n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: forms.py:25 links.py:13 links.py:19 +msgid "New holder" +msgstr "" + +#: forms.py:42 +msgid "Users" +msgstr "" + +#: forms.py:45 +msgid "Groups" +msgstr "" + +#: forms.py:48 +msgid "Roles" +msgstr "" + +#: forms.py:51 +msgid "Special" +msgstr "" + +#: links.py:9 +msgid "ACLs" +msgstr "" + +#: links.py:10 links.py:18 +msgid "Details" +msgstr "" + +#: links.py:11 links.py:20 +msgid "Grant" +msgstr "" + +#: links.py:12 links.py:21 +msgid "Revoke" +msgstr "" + +#: links.py:15 +msgid "Default ACLs" +msgstr "" + +#: links.py:16 views.py:379 +msgid "Classes" +msgstr "" + +#: links.py:17 +msgid "ACLs for class" +msgstr "" + +#: managers.py:118 managers.py:130 +msgid "Insufficient access." +msgstr "" + +#: models.py:25 models.py:67 +msgid "Permission" +msgstr "" + +#: models.py:51 +msgid "Access entry" +msgstr "" + +#: models.py:52 +msgid "Access entries" +msgstr "" + +#: models.py:88 +msgid "Default access entry" +msgstr "" + +#: models.py:89 +msgid "Default access entries" +msgstr "" + +#: models.py:108 models.py:111 models.py:112 +msgid "Creator" +msgstr "" + +#: permissions.py:7 permissions.py:8 +msgid "Access control lists" +msgstr "" + +#: permissions.py:10 +msgid "Edit ACLs" +msgstr "" + +#: permissions.py:11 +msgid "View ACLs" +msgstr "" + +#: permissions.py:13 +msgid "Edit class default ACLs" +msgstr "" + +#: permissions.py:14 +msgid "View class default ACLs" +msgstr "" + +#: views.py:48 +#, python-format +msgid "Access control lists for: %s" +msgstr "" + +#: views.py:50 views.py:402 +msgid "Holder" +msgstr "" + +#: views.py:51 views.py:403 +msgid "Permissions" +msgstr "" + +#: views.py:98 +#, python-format +msgid "Permissions available to: %(actor)s for %(obj)s" +msgstr "" + +#: views.py:105 views.py:434 +msgid "Namespace" +msgstr "" + +#: views.py:106 views.py:435 +msgid "Label" +msgstr "" + +#: views.py:108 views.py:437 +msgid "Has permission" +msgstr "" + +#: views.py:181 views.py:272 views.py:516 views.py:593 +msgid ", " +msgstr "" + +#: views.py:182 views.py:273 views.py:517 views.py:594 +#, python-format +msgid " for %s" +msgstr "" + +#: views.py:183 views.py:518 +#, python-format +msgid " to %s" +msgstr "" + +#: views.py:186 views.py:521 +#, python-format +msgid "Are you sure you wish to grant the permission %(title_suffix)s?" +msgstr "" + +#: views.py:188 views.py:523 +#, python-format +msgid "Are you sure you wish to grant the permissions %(title_suffix)s?" +msgstr "" + +#: views.py:195 views.py:530 +#, python-format +msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." +msgstr "" + +#: views.py:201 views.py:536 +#, python-format +msgid "" +"%(actor)s, already had the permission \"%(permission)s\" granted for " +"%(object)s." +msgstr "" + +#: views.py:274 views.py:595 +#, python-format +msgid " from %s" +msgstr "" + +#: views.py:277 views.py:598 +#, python-format +msgid "Are you sure you wish to revoke the permission %(title_suffix)s?" +msgstr "" + +#: views.py:279 views.py:600 +#, python-format +msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?" +msgstr "" + +#: views.py:286 views.py:607 +#, python-format +msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." +msgstr "" + +#: views.py:292 views.py:613 +#, python-format +msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +msgstr "" + +#: views.py:346 +#, python-format +msgid "Add new holder for: %s" +msgstr "" + +#: views.py:347 views.py:477 +msgid "Select" +msgstr "" + +#: views.py:381 +msgid "Class" +msgstr "" + +#: views.py:400 +#, python-format +msgid "Default access control lists for class: %s" +msgstr "" + +#: views.py:428 +#, python-format +msgid "Permissions available to: %(actor)s for class %(class)s" +msgstr "" + +#: views.py:475 +#, python-format +msgid "Add new holder for class: %s" +msgstr "" + +#~ msgid "List of classes" +#~ msgstr "List of classes" + +#~ msgid "permission" +#~ msgstr "permission" + +#~ msgid "creator" +#~ msgstr "creator" diff --git a/mayan/apps/acls/managers.py b/mayan/apps/acls/managers.py index 6fd54e109e..bb04f301b8 100644 --- a/mayan/apps/acls/managers.py +++ b/mayan/apps/acls/managers.py @@ -1,4 +1,4 @@ -from __future__ import absolute_import +from __future__ import absolute_import, unicode_literals import logging @@ -115,7 +115,7 @@ class AccessEntryManager(models.Manager): if self.has_access(permission, actor, obj): return True else: - raise PermissionDenied(ugettext(u'Insufficient access.')) + raise PermissionDenied(ugettext('Insufficient access.')) def check_accesses(self, permission_list, actor, obj): """ @@ -127,10 +127,10 @@ class AccessEntryManager(models.Manager): if self.has_access(permission, actor, obj): return True - raise PermissionDenied(ugettext(u'Insufficient access.')) + raise PermissionDenied(ugettext('Insufficient access.')) def get_allowed_class_objects(self, permission, actor, cls, related=None): - logger.debug('related: %s' % related) + logger.debug('related: %s', related) actor = AnonymousUserSingleton.objects.passthru_check(actor) actor_type = ContentType.objects.get_for_model(actor) @@ -169,7 +169,7 @@ class AccessEntryManager(models.Manager): if related: actor_query = Q(holder_type=actor_type, holder_id=actor.pk, permission=permission.get_stored_permission) master_list = [obj.content_object for obj in self.model.objects.select_related().filter(actor_query | total_queries)] - logger.debug('master_list: %s' % master_list) + logger.debug('master_list: %s', master_list) # TODO: update to use Q objects and check performance diff # kwargs = {'%s__in' % related: master_list} # Q(**kwargs) @@ -204,8 +204,8 @@ class AccessEntryManager(models.Manager): Returns a list of actors that hold at least one permission for a specific object """ - logger.debug('obj: %s' % obj) - logger.debug('actor: %s' % actor) + logger.debug('obj: %s', obj) + logger.debug('actor: %s', actor) if isinstance(actor, User) and not db_only: if actor.is_superuser or actor.is_staff: @@ -220,8 +220,8 @@ class AccessEntryManager(models.Manager): Filter a list of objects or a QuerySet elements depending on whether the actor holds the specified permission """ - logger.debug('exception_on_empty: %s' % exception_on_empty) - logger.debug('object_list: %s' % object_list) + logger.debug('exception_on_empty: %s', exception_on_empty) + logger.debug('object_list: %s', object_list) if isinstance(actor, User): if actor.is_superuser or actor.is_staff: @@ -238,7 +238,7 @@ class AccessEntryManager(models.Manager): try: # Try to process as a QuerySet qs = object_list.filter(pk__in=[obj.pk for obj in self.get_allowed_class_objects(permission, actor, object_list[0].__class__, related)]) - logger.debug('qs: %s' % qs) + logger.debug('qs: %s', qs) if qs.count() == 0 and exception_on_empty: raise PermissionDenied @@ -247,7 +247,7 @@ class AccessEntryManager(models.Manager): except AttributeError: # Fallback to a filtered list object_list = list(set(object_list) & set(self.get_allowed_class_objects(permission, actor, object_list[0].__class__, related))) - logger.debug('object_list: %s' % object_list) + logger.debug('object_list: %s', object_list) if len(object_list) == 0 and exception_on_empty: raise PermissionDenied diff --git a/mayan/apps/acls/models.py b/mayan/apps/acls/models.py index f800256753..34e63dbb34 100644 --- a/mayan/apps/acls/models.py +++ b/mayan/apps/acls/models.py @@ -1,20 +1,19 @@ -from __future__ import absolute_import +from __future__ import absolute_import, unicode_literals import logging -from django.db import models -from django.utils.translation import ugettext_lazy as _ -from django.utils.translation import ugettext -from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes import generic +from django.contrib.contenttypes.models import ContentType +from django.db import models +from django.utils.translation import ugettext_lazy as _, ugettext from solo.models import SingletonModel from permissions.models import StoredPermission -from .managers import AccessEntryManager, DefaultAccessEntryManager -from .classes import AccessObjectClass from .api import get_classes +from .classes import AccessObjectClass +from .managers import AccessEntryManager, DefaultAccessEntryManager logger = logging.getLogger(__name__) @@ -23,7 +22,7 @@ class AccessEntry(models.Model): """ Model that hold the permission, object, actor relationship """ - permission = models.ForeignKey(StoredPermission, verbose_name=_(u'permission')) + permission = models.ForeignKey(StoredPermission, verbose_name=_('Permission')) holder_type = models.ForeignKey( ContentType, @@ -49,11 +48,11 @@ class AccessEntry(models.Model): objects = AccessEntryManager() class Meta: - verbose_name = _(u'access entry') - verbose_name_plural = _(u'access entries') + verbose_name = _('Access entry') + verbose_name_plural = _('Access entries') def __unicode__(self): - return u'%s: %s' % (self.content_type, self.content_object) + return '%s: %s' % (self.content_type, self.content_object) class DefaultAccessEntry(models.Model): @@ -65,7 +64,7 @@ class DefaultAccessEntry(models.Model): def get_classes(cls): return [AccessObjectClass.encapsulate(cls) for cls in get_classes()] - permission = models.ForeignKey(StoredPermission, verbose_name=_(u'permission')) + permission = models.ForeignKey(StoredPermission, verbose_name=_('Permission')) holder_type = models.ForeignKey( ContentType, @@ -86,11 +85,11 @@ class DefaultAccessEntry(models.Model): objects = DefaultAccessEntryManager() class Meta: - verbose_name = _(u'default access entry') - verbose_name_plural = _(u'default access entries') + verbose_name = _('Default access entry') + verbose_name_plural = _('Default access entries') def __unicode__(self): - return u'%s: %s' % (self.content_type, self.content_object) + return '%s: %s' % (self.content_type, self.content_object) class CreatorSingletonManager(models.Manager): @@ -109,5 +108,5 @@ class CreatorSingleton(SingletonModel): return ugettext('Creator') class Meta: - verbose_name = _(u'creator') - verbose_name_plural = _(u'creator') + verbose_name = _('Creator') + verbose_name_plural = _('Creator') diff --git a/mayan/apps/acls/permissions.py b/mayan/apps/acls/permissions.py index 2ab114070a..f0dc2116e3 100644 --- a/mayan/apps/acls/permissions.py +++ b/mayan/apps/acls/permissions.py @@ -1,14 +1,14 @@ -from __future__ import absolute_import +from __future__ import absolute_import, unicode_literals from django.utils.translation import ugettext_lazy as _ from permissions.models import PermissionNamespace, Permission -acls_namespace = PermissionNamespace('acls', _(u'Access control lists')) -acls_setup_namespace = PermissionNamespace('acls_setup', _(u'Access control lists')) +acls_namespace = PermissionNamespace('acls', _('Access control lists')) +acls_setup_namespace = PermissionNamespace('acls_setup', _('Access control lists')) -ACLS_EDIT_ACL = Permission.objects.register(acls_namespace, 'acl_edit', _(u'Edit ACLs')) -ACLS_VIEW_ACL = Permission.objects.register(acls_namespace, 'acl_view', _(u'View ACLs')) +ACLS_EDIT_ACL = Permission.objects.register(acls_namespace, 'acl_edit', _('Edit ACLs')) +ACLS_VIEW_ACL = Permission.objects.register(acls_namespace, 'acl_view', _('View ACLs')) -ACLS_CLASS_EDIT_ACL = Permission.objects.register(acls_setup_namespace, 'acl_class_edit', _(u'Edit class default ACLs')) -ACLS_CLASS_VIEW_ACL = Permission.objects.register(acls_setup_namespace, 'acl_class_view', _(u'View class default ACLs')) +ACLS_CLASS_EDIT_ACL = Permission.objects.register(acls_setup_namespace, 'acl_class_edit', _('Edit class default ACLs')) +ACLS_CLASS_VIEW_ACL = Permission.objects.register(acls_setup_namespace, 'acl_class_view', _('View class default ACLs')) diff --git a/mayan/apps/acls/registry.py b/mayan/apps/acls/registry.py deleted file mode 100644 index 80422bed67..0000000000 --- a/mayan/apps/acls/registry.py +++ /dev/null @@ -1,10 +0,0 @@ -from __future__ import absolute_import - -from .cleanup import cleanup - -bootstrap_models = [ - { - 'name': 'defaultaccessentry', - }, -] -cleanup_functions = [cleanup] diff --git a/mayan/apps/acls/migrations/0001_initial.py b/mayan/apps/acls/south_migrations/0001_initial.py similarity index 74% rename from mayan/apps/acls/migrations/0001_initial.py rename to mayan/apps/acls/south_migrations/0001_initial.py index 31f90f6ac9..1870903d8e 100644 --- a/mayan/apps/acls/migrations/0001_initial.py +++ b/mayan/apps/acls/south_migrations/0001_initial.py @@ -5,11 +5,14 @@ from django.db import models class Migration(SchemaMigration): + depends_on = ( + ('permissions', '0002_auto__add_storedpermission__add_unique_storedpermission_namespace_name'), + ) def forwards(self, orm): # Adding model 'AccessEntry' - db.create_table(u'acls_accessentry', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + db.create_table('acls_accessentry', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), ('permission', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['permissions.StoredPermission'])), ('holder_type', self.gf('django.db.models.fields.related.ForeignKey')(related_name='access_holder', to=orm['contenttypes.ContentType'])), ('holder_id', self.gf('django.db.models.fields.PositiveIntegerField')()), @@ -19,8 +22,8 @@ class Migration(SchemaMigration): db.send_create_signal(u'acls', ['AccessEntry']) # Adding model 'DefaultAccessEntry' - db.create_table(u'acls_defaultaccessentry', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + db.create_table('acls_defaultaccessentry', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), ('permission', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['permissions.StoredPermission'])), ('holder_type', self.gf('django.db.models.fields.related.ForeignKey')(related_name='default_access_entry_holder', to=orm['contenttypes.ContentType'])), ('holder_id', self.gf('django.db.models.fields.PositiveIntegerField')()), @@ -29,55 +32,55 @@ class Migration(SchemaMigration): db.send_create_signal(u'acls', ['DefaultAccessEntry']) # Adding model 'CreatorSingleton' - db.create_table(u'acls_creatorsingleton', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + db.create_table('acls_creatorsingleton', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), ('lock_id', self.gf('django.db.models.fields.CharField')(default='1', unique=True, max_length=1)), )) - db.send_create_signal(u'acls', ['CreatorSingleton']) + db.send_create_signal('acls', ['CreatorSingleton']) def backwards(self, orm): # Deleting model 'AccessEntry' - db.delete_table(u'acls_accessentry') + db.delete_table('acls_accessentry') # Deleting model 'DefaultAccessEntry' - db.delete_table(u'acls_defaultaccessentry') + db.delete_table('acls_defaultaccessentry') # Deleting model 'CreatorSingleton' - db.delete_table(u'acls_creatorsingleton') + db.delete_table('acls_creatorsingleton') models = { - u'acls.accessentry': { + 'acls.accessentry': { 'Meta': {'object_name': 'AccessEntry'}, 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'object_content_type'", 'to': u"orm['contenttypes.ContentType']"}), 'holder_id': ('django.db.models.fields.PositiveIntegerField', [], {}), 'holder_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'access_holder'", 'to': u"orm['contenttypes.ContentType']"}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}), 'permission': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['permissions.StoredPermission']"}) }, - u'acls.creatorsingleton': { + 'acls.creatorsingleton': { 'Meta': {'object_name': 'CreatorSingleton'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'lock_id': ('django.db.models.fields.CharField', [], {'default': "'1'", 'unique': 'True', 'max_length': '1'}) }, - u'acls.defaultaccessentry': { + 'acls.defaultaccessentry': { 'Meta': {'object_name': 'DefaultAccessEntry'}, 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'default_access_entry_class'", 'to': u"orm['contenttypes.ContentType']"}), 'holder_id': ('django.db.models.fields.PositiveIntegerField', [], {}), 'holder_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'default_access_entry_holder'", 'to': u"orm['contenttypes.ContentType']"}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'permission': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['permissions.StoredPermission']"}) + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'permission': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['permissions.StoredPermission']"}) }, - u'contenttypes.contenttype': { + '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'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + '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'}) }, - u'permissions.storedpermission': { + 'permissions.storedpermission': { 'Meta': {'ordering': "('namespace',)", 'unique_together': "(('namespace', 'name'),)", 'object_name': 'StoredPermission'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}), 'namespace': ('django.db.models.fields.CharField', [], {'max_length': '64'}) } diff --git a/mayan/apps/acls/migrations/0002_auto__del_field_creatorsingleton_lock_id.py b/mayan/apps/acls/south_migrations/0002_auto__del_field_creatorsingleton_lock_id.py similarity index 74% rename from mayan/apps/acls/migrations/0002_auto__del_field_creatorsingleton_lock_id.py rename to mayan/apps/acls/south_migrations/0002_auto__del_field_creatorsingleton_lock_id.py index 35d59bf359..ac7fd8260e 100644 --- a/mayan/apps/acls/migrations/0002_auto__del_field_creatorsingleton_lock_id.py +++ b/mayan/apps/acls/south_migrations/0002_auto__del_field_creatorsingleton_lock_id.py @@ -8,46 +8,46 @@ class Migration(SchemaMigration): def forwards(self, orm): # Deleting field 'CreatorSingleton.lock_id' - db.delete_column(u'acls_creatorsingleton', 'lock_id') + db.delete_column('acls_creatorsingleton', 'lock_id') def backwards(self, orm): # Adding field 'CreatorSingleton.lock_id' - db.add_column(u'acls_creatorsingleton', 'lock_id', + db.add_column('acls_creatorsingleton', 'lock_id', self.gf('django.db.models.fields.CharField')(default='1', max_length=1, unique=True), keep_default=False) models = { - u'acls.accessentry': { + 'acls.accessentry': { 'Meta': {'object_name': 'AccessEntry'}, 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'object_content_type'", 'to': u"orm['contenttypes.ContentType']"}), 'holder_id': ('django.db.models.fields.PositiveIntegerField', [], {}), 'holder_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'access_holder'", 'to': u"orm['contenttypes.ContentType']"}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}), - 'permission': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['permissions.StoredPermission']"}) + 'permission': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['permissions.StoredPermission']"}) }, - u'acls.creatorsingleton': { + 'acls.creatorsingleton': { 'Meta': {'object_name': 'CreatorSingleton'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) }, - u'acls.defaultaccessentry': { + 'acls.defaultaccessentry': { 'Meta': {'object_name': 'DefaultAccessEntry'}, 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'default_access_entry_class'", 'to': u"orm['contenttypes.ContentType']"}), 'holder_id': ('django.db.models.fields.PositiveIntegerField', [], {}), 'holder_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'default_access_entry_holder'", 'to': u"orm['contenttypes.ContentType']"}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'permission': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['permissions.StoredPermission']"}) + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'permission': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['permissions.StoredPermission']"}) }, - u'contenttypes.contenttype': { + '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'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + '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'}) }, - u'permissions.storedpermission': { + 'permissions.storedpermission': { 'Meta': {'ordering': "('namespace',)", 'unique_together': "(('namespace', 'name'),)", 'object_name': 'StoredPermission'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}), 'namespace': ('django.db.models.fields.CharField', [], {'max_length': '64'}) } diff --git a/mayan/apps/bootstrap/__init__.py b/mayan/apps/acls/south_migrations/__init__.py similarity index 100% rename from mayan/apps/bootstrap/__init__.py rename to mayan/apps/acls/south_migrations/__init__.py diff --git a/mayan/apps/acls/templatetags/acl_tags.py b/mayan/apps/acls/templatetags/acl_tags.py index 68ce30263d..f8f8471912 100644 --- a/mayan/apps/acls/templatetags/acl_tags.py +++ b/mayan/apps/acls/templatetags/acl_tags.py @@ -1,14 +1,16 @@ +from __future__ import unicode_literals + import logging from django.core.exceptions import PermissionDenied -from django.template import (TemplateSyntaxError, Library, - Node, Variable, VariableDoesNotExist) - +from django.template import ( + Library, Node, TemplateSyntaxError, Variable, VariableDoesNotExist +) from acls.models import AccessEntry -register = Library() logger = logging.getLogger(__name__) +register = Library() class CheckAccessNode(Node): @@ -19,45 +21,45 @@ class CheckAccessNode(Node): def render(self, context): permission_list = Variable(self.permission_list).resolve(context) - logger.debug('permission_list: %s' % u','.join([unicode(p) for p in permission_list])) + logger.debug('permission_list: %s', ','.join([unicode(p) for p in permission_list])) try: # Check access_object, useful for document_page views obj = Variable('access_object').resolve(context) - logger.debug('access_object: %s' % obj) + logger.debug('access_object: %s', obj) except VariableDoesNotExist: try: obj = Variable(self.obj).resolve(context) - logger.debug('obj: %s' % obj) + logger.debug('obj: %s', obj) except VariableDoesNotExist: - context[u'access'] = False + context['access'] = False logger.debug('no obj, access False') - return u'' + return '' if not permission_list: # There is no permissions list to check against which means # this link is available for all - context[u'access'] = True - return u'' + context['access'] = True + return '' requester = Variable(self.requester).resolve(context) - logger.debug('requester: %s' % requester) + logger.debug('requester: %s', requester) if obj: try: AccessEntry.objects.check_accesses(permission_list, requester, obj) except PermissionDenied: - context[u'access'] = False + context['access'] = False logger.debug('access: False') - return u'' + return '' else: - context[u'access'] = True + context['access'] = True logger.debug('access: True') - return u'' + return '' else: - context[u'access'] = False + context['access'] = False logger.debug('No object, access: False') - return u'' + return '' @register.tag @@ -66,6 +68,6 @@ def check_access(parser, token): # Splitting by None == splitting by spaces. tag_name, args = token.contents.split(None, 1) except ValueError: - raise TemplateSyntaxError(u'%r tag requires arguments' % token.contents.split()[0]) + raise TemplateSyntaxError('%r tag requires arguments' % token.contents.split()[0]) return CheckAccessNode(*args.split()) diff --git a/mayan/apps/acls/urls.py b/mayan/apps/acls/urls.py index 572eb5fe80..5a96c21f4b 100644 --- a/mayan/apps/acls/urls.py +++ b/mayan/apps/acls/urls.py @@ -1,3 +1,5 @@ +from __future__ import unicode_literals + from django.conf.urls import patterns, url urlpatterns = patterns('acls.views', diff --git a/mayan/apps/acls/utils.py b/mayan/apps/acls/utils.py index 17029e18be..2e66429e30 100644 --- a/mayan/apps/acls/utils.py +++ b/mayan/apps/acls/utils.py @@ -1,4 +1,4 @@ -from __future__ import absolute_import +from __future__ import unicode_literals import logging @@ -6,14 +6,14 @@ from django.contrib.contenttypes.models import ContentType from common.models import AnonymousUserSingleton -from .models import AccessEntry, DefaultAccessEntry, CreatorSingleton from .classes import get_source_object +from .models import AccessEntry, CreatorSingleton, DefaultAccessEntry logger = logging.getLogger(__name__) def apply_default_acls(obj, actor=None): - logger.debug('actor, init: %s' % actor) + logger.debug('actor, init: %s', actor) obj = get_source_object(obj) if actor: diff --git a/mayan/apps/acls/views.py b/mayan/apps/acls/views.py index d3dedbc0fd..66ca796d86 100644 --- a/mayan/apps/acls/views.py +++ b/mayan/apps/acls/views.py @@ -1,4 +1,4 @@ -from __future__ import absolute_import +from __future__ import absolute_import, unicode_literals import logging from json import loads @@ -7,8 +7,8 @@ from django.contrib import messages from django.contrib.contenttypes.models import ContentType from django.core.exceptions import ObjectDoesNotExist, PermissionDenied from django.core.urlresolvers import reverse -from django.http import HttpResponseRedirect, Http404 -from django.shortcuts import render_to_response, get_object_or_404 +from django.http import Http404, HttpResponseRedirect +from django.shortcuts import get_object_or_404, render_to_response from django.template import RequestContext from django.utils.http import urlencode from django.utils.translation import ugettext_lazy as _ @@ -18,19 +18,21 @@ from common.widgets import two_state_template from permissions.models import Permission from .api import get_class_permissions_for -from .classes import (AccessHolder, AccessObject, AccessObjectClass, - ClassAccessHolder) -from .forms import HolderSelectionForm, ClassHolderSelectionForm +from .classes import ( + AccessHolder, AccessObject, AccessObjectClass, ClassAccessHolder +) +from .forms import ClassHolderSelectionForm, HolderSelectionForm from .models import AccessEntry, DefaultAccessEntry -from .permissions import (ACLS_EDIT_ACL, ACLS_VIEW_ACL, - ACLS_CLASS_EDIT_ACL, ACLS_CLASS_VIEW_ACL) +from .permissions import ( + ACLS_EDIT_ACL, ACLS_CLASS_EDIT_ACL, ACLS_CLASS_VIEW_ACL, ACLS_VIEW_ACL +) from .widgets import object_w_content_type_icon logger = logging.getLogger(__name__) def _permission_titles(permission_list): - return u', '.join([unicode(permission) for permission in permission_list]) + return ', '.join([unicode(permission) for permission in permission_list]) def acl_list_for(request, obj, extra_context=None): @@ -39,14 +41,14 @@ def acl_list_for(request, obj, extra_context=None): except PermissionDenied: AccessEntry.objects.check_access(ACLS_VIEW_ACL, request.user, obj) - logger.debug('obj: %s' % obj) + logger.debug('obj: %s', obj) context = { 'object_list': AccessEntry.objects.get_holders_for(obj), - 'title': _(u'access control lists for: %s' % obj), + 'title': _('Access control lists for: %s' % obj), 'extra_columns': [ - {'name': _(u'holder'), 'attribute': encapsulate(lambda x: object_w_content_type_icon(x.source_object))}, - {'name': _(u'permissions'), 'attribute': encapsulate(lambda x: _permission_titles(AccessEntry.objects.get_holder_permissions_for(obj, x.source_object, db_only=True)))}, + {'name': _('Holder'), 'attribute': encapsulate(lambda x: object_w_content_type_icon(x.source_object))}, + {'name': _('Permissions'), 'attribute': encapsulate(lambda x: _permission_titles(AccessEntry.objects.get_holder_permissions_for(obj, x.source_object, db_only=True)))}, ], 'hide_object': True, 'access_object': AccessObject.encapsulate(obj), @@ -60,8 +62,8 @@ def acl_list_for(request, obj, extra_context=None): if extra_context: context.update(extra_context) - return render_to_response('generic_list.html', context, - context_instance=RequestContext(request)) + return render_to_response('main/generic_list.html', context, + context_instance=RequestContext(request)) def acl_list(request, app_label, model_name, object_id): @@ -91,19 +93,19 @@ def acl_detail_for(request, actor, obj): # TODO : get all globally assigned permission, new function get_permissions_for_holder (roles aware) subtemplates_list = [ { - 'name': u'generic_list_subtemplate.html', + 'name': 'main/generic_list_subtemplate.html', 'context': { - 'title': _(u'permissions available to: %(actor)s for %(obj)s' % { + 'title': _('Permissions available to: %(actor)s for %(obj)s' % { 'actor': actor, 'obj': obj } ), 'object_list': permission_list, 'extra_columns': [ - {'name': _(u'namespace'), 'attribute': 'namespace'}, - {'name': _(u'label'), 'attribute': 'label'}, + {'name': _('Namespace'), 'attribute': 'namespace'}, + {'name': _('Label'), 'attribute': 'label'}, { - 'name': _(u'has permission'), + 'name': _('Has permission'), 'attribute': encapsulate(lambda permission: two_state_template(AccessEntry.objects.has_access(permission, actor, obj, db_only=True))) }, ], @@ -115,7 +117,6 @@ def acl_detail_for(request, actor, obj): context = { 'object': obj.source_object, 'subtemplates_list': subtemplates_list, - 'multi_select_as_buttons': True, 'multi_select_item_properties': { 'permission_pk': lambda x: x.pk, 'holder_gid': lambda x: actor.gid, @@ -128,18 +129,15 @@ def acl_detail_for(request, actor, obj): ], } - return render_to_response( - 'generic_detail.html', - context, - context_instance=RequestContext(request) - ) + return render_to_response('main/generic_detail.html', context, + context_instance=RequestContext(request)) def acl_grant(request): items_property_list = loads(request.GET.get('items_property_list', [])) - next = request.POST.get('next', request.GET.get('next', request.META.get('HTTP_REFERER', '/'))) - previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/'))) + next = request.POST.get('next', request.GET.get('next', request.META.get('HTTP_REFERER', reverse('main:home')))) + previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', reverse('main:home')))) items = {} title_suffix = [] @@ -180,27 +178,27 @@ def acl_grant(request): for requester, obj_ps in items.items(): for obj, ps in obj_ps.items(): - title_suffix.append(_(u', ').join([u'"%s"' % unicode(p) for p in ps])) - title_suffix.append(_(u' for %s') % obj) - title_suffix.append(_(u' to %s') % requester) + title_suffix.append(_(', ').join(['"%s"' % unicode(p) for p in ps])) + title_suffix.append(_(' for %s') % obj) + title_suffix.append(_(' to %s') % requester) if len(items_property_list) == 1: - title_prefix = _(u'Are you sure you wish to grant the permission %(title_suffix)s?') + title_prefix = _('Are you sure you wish to grant the permission %(title_suffix)s?') else: - title_prefix = _(u'Are you sure you wish to grant the permissions %(title_suffix)s?') + title_prefix = _('Are you sure you wish to grant the permissions %(title_suffix)s?') if request.method == 'POST': for requester, object_permissions in items.items(): for obj, permissions in object_permissions.items(): for permission in permissions: if AccessEntry.objects.grant(permission, requester.source_object, obj.source_object): - messages.success(request, _(u'Permission "%(permission)s" granted to %(actor)s for %(object)s.') % { + messages.success(request, _('Permission "%(permission)s" granted to %(actor)s for %(object)s.') % { 'permission': permission, 'actor': requester, 'object': obj }) else: - messages.warning(request, _(u'%(actor)s, already had the permission "%(permission)s" granted for %(object)s.') % { + messages.warning(request, _('%(actor)s, already had the permission "%(permission)s" granted for %(object)s.') % { 'actor': requester, 'permission': permission, 'object': obj, @@ -209,30 +207,28 @@ def acl_grant(request): return HttpResponseRedirect(next) context = { - 'delete_view': True, 'previous': previous, 'next': next, - 'form_icon': u'key_add.png', } context['title'] = title_prefix % { - 'title_suffix': u''.join(title_suffix), + 'title_suffix': ''.join(title_suffix), } - logger.debug('navigation_object_count: %d' % navigation_object_count) - logger.debug('navigation_object: %s' % navigation_object) + logger.debug('navigation_object_count: %d', navigation_object_count) + logger.debug('navigation_object: %s', navigation_object) if navigation_object_count == 1: context['object'] = navigation_object.source_object - return render_to_response('generic_confirm.html', context, - context_instance=RequestContext(request)) + return render_to_response('main/generic_confirm.html', context, + context_instance=RequestContext(request)) def acl_revoke(request): items_property_list = loads(request.GET.get('items_property_list', [])) - next = request.POST.get('next', request.GET.get('next', request.META.get('HTTP_REFERER', '/'))) - previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/'))) + next = request.POST.get('next', request.GET.get('next', request.META.get('HTTP_REFERER', reverse('main:home')))) + previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', reverse('main:home')))) items = {} title_suffix = [] @@ -273,27 +269,27 @@ def acl_revoke(request): for requester, obj_ps in items.items(): for obj, ps in obj_ps.items(): - title_suffix.append(_(u', ').join([u'"%s"' % unicode(p) for p in ps])) - title_suffix.append(_(u' for %s') % obj) - title_suffix.append(_(u' from %s') % requester) + title_suffix.append(_(', ').join(['"%s"' % unicode(p) for p in ps])) + title_suffix.append(_(' for %s') % obj) + title_suffix.append(_(' from %s') % requester) if len(items_property_list) == 1: - title_prefix = _(u'Are you sure you wish to revoke the permission %(title_suffix)s?') + title_prefix = _('Are you sure you wish to revoke the permission %(title_suffix)s?') else: - title_prefix = _(u'Are you sure you wish to revoke the permissions %(title_suffix)s?') + title_prefix = _('Are you sure you wish to revoke the permissions %(title_suffix)s?') if request.method == 'POST': for requester, object_permissions in items.items(): for obj, permissions in object_permissions.items(): for permission in permissions: if AccessEntry.objects.revoke(permission, requester.source_object, obj.source_object): - messages.success(request, _(u'Permission "%(permission)s" revoked of %(actor)s for %(object)s.') % { + messages.success(request, _('Permission "%(permission)s" revoked of %(actor)s for %(object)s.') % { 'permission': permission, 'actor': requester, 'object': obj }) else: - messages.warning(request, _(u'%(actor)s, didn\'t had the permission "%(permission)s" for %(object)s.') % { + messages.warning(request, _('%(actor)s, didn\'t had the permission "%(permission)s" for %(object)s.') % { 'actor': requester, 'permission': permission, 'object': obj, @@ -302,23 +298,21 @@ def acl_revoke(request): return HttpResponseRedirect(next) context = { - 'delete_view': True, 'previous': previous, 'next': next, - 'form_icon': u'key_delete.png', } context['title'] = title_prefix % { - 'title_suffix': u''.join(title_suffix), + 'title_suffix': ''.join(title_suffix), } - logger.debug('navigation_object_count: %d' % navigation_object_count) - logger.debug('navigation_object: %s' % navigation_object) + logger.debug('navigation_object_count: %d', navigation_object_count) + logger.debug('navigation_object: %s', navigation_object) if navigation_object_count == 1: context['object'] = navigation_object.source_object - return render_to_response('generic_confirm.html', context, - context_instance=RequestContext(request)) + return render_to_response('main/generic_confirm.html', context, + context_instance=RequestContext(request)) def acl_new_holder_for(request, obj, extra_context=None, navigation_object=None): @@ -334,11 +328,11 @@ def acl_new_holder_for(request, obj, extra_context=None, navigation_object=None) access_object = AccessObject.encapsulate(obj) access_holder = AccessHolder.get(form.cleaned_data['holder_gid']) - query_string = {u'navigation_object': navigation_object} + query_string = {'navigation_object': navigation_object} return HttpResponseRedirect( - u'%s?%s' % ( - reverse('acl_detail', args=[access_object.gid, access_holder.gid]), + '%s?%s' % ( + reverse('acls:acl_detail', args=[access_object.gid, access_holder.gid]), urlencode(query_string) ) ) @@ -349,8 +343,8 @@ def acl_new_holder_for(request, obj, extra_context=None, navigation_object=None) context = { 'form': form, - 'title': _(u'add new holder for: %s') % obj, - 'submit_label': _(u'Select'), + 'title': _('Add new holder for: %s') % obj, + 'submit_label': _('Select'), 'submit_icon_famfam': 'tick', 'object': obj, 'access_object': AccessObject.encapsulate(obj), @@ -363,8 +357,8 @@ def acl_new_holder_for(request, obj, extra_context=None, navigation_object=None) if extra_context: context.update(extra_context) - return render_to_response('generic_form.html', context, - context_instance=RequestContext(request)) + return render_to_response('main/generic_form.html', context, + context_instance=RequestContext(request)) def acl_holder_new(request, access_object_gid): @@ -382,39 +376,39 @@ def acl_setup_valid_classes(request): context = { 'object_list': DefaultAccessEntry.get_classes(), - 'title': _(u'classes'), + 'title': _('Classes'), 'extra_columns': [ - {'name': _(u'class'), 'attribute': encapsulate(lambda x: object_w_content_type_icon(x.source_object))}, + {'name': _('Class'), 'attribute': encapsulate(lambda x: object_w_content_type_icon(x.source_object))}, ], 'hide_object': True, } - return render_to_response('generic_list.html', context, - context_instance=RequestContext(request)) + return render_to_response('main/generic_list.html', context, + context_instance=RequestContext(request)) def acl_class_acl_list(request, access_object_class_gid): - logger.debug('access_object_class_gid: %s' % access_object_class_gid) + logger.debug('access_object_class_gid: %s', access_object_class_gid) Permission.objects.check_permissions(request.user, [ACLS_CLASS_VIEW_ACL]) access_object_class = AccessObjectClass.get(gid=access_object_class_gid) - logger.debug('access_object_class: %s' % access_object_class) + logger.debug('access_object_class: %s', access_object_class) context = { 'object_list': DefaultAccessEntry.objects.get_holders_for(access_object_class.source_object), - 'title': _(u'default access control lists for class: %s') % access_object_class, + 'title': _('Default access control lists for class: %s') % access_object_class, 'extra_columns': [ - {'name': _(u'holder'), 'attribute': encapsulate(lambda x: object_w_content_type_icon(x.source_object))}, - {'name': _(u'permissions'), 'attribute': encapsulate(lambda x: _permission_titles(DefaultAccessEntry.objects.get_holder_permissions_for(access_object_class.source_object, x.source_object)))}, + {'name': _('Holder'), 'attribute': encapsulate(lambda x: object_w_content_type_icon(x.source_object))}, + {'name': _('Permissions'), 'attribute': encapsulate(lambda x: _permission_titles(DefaultAccessEntry.objects.get_holder_permissions_for(access_object_class.source_object, x.source_object)))}, ], 'hide_object': True, 'access_object_class': access_object_class, 'object': access_object_class, } - return render_to_response('generic_list.html', context, - context_instance=RequestContext(request)) + return render_to_response('main/generic_list.html', context, + context_instance=RequestContext(request)) def acl_class_acl_detail(request, access_object_class_gid, holder_object_gid): @@ -429,19 +423,18 @@ def acl_class_acl_detail(request, access_object_class_gid, holder_object_gid): # TODO : get all globally assigned permission, new function get_permissions_for_holder (roles aware) subtemplates_list = [ { - 'name': u'generic_list_subtemplate.html', + 'name': 'main/generic_list_subtemplate.html', 'context': { - 'title': _(u'permissions available to: %(actor)s for class %(class)s' % { - 'actor': actor, - 'class': access_object_class - } - ), + 'title': _('Permissions available to: %(actor)s for class %(class)s' % { + 'actor': actor, + 'class': access_object_class + }), 'object_list': permission_list, 'extra_columns': [ - {'name': _(u'namespace'), 'attribute': 'namespace'}, - {'name': _(u'label'), 'attribute': 'label'}, + {'name': _('Namespace'), 'attribute': 'namespace'}, + {'name': _('Label'), 'attribute': 'label'}, { - 'name': _(u'has permission'), + 'name': _('Has permission'), 'attribute': encapsulate(lambda x: two_state_template(DefaultAccessEntry.objects.has_access(x, actor.source_object, access_object_class.source_object))) }, ], @@ -450,10 +443,9 @@ def acl_class_acl_detail(request, access_object_class_gid, holder_object_gid): }, ] - return render_to_response('generic_detail.html', { + return render_to_response('main/generic_detail.html', { 'object': access_object_class, 'subtemplates_list': subtemplates_list, - 'multi_select_as_buttons': True, 'multi_select_item_properties': { 'permission_pk': lambda x: x.pk, 'holder_gid': lambda x: actor.gid, @@ -472,7 +464,7 @@ def acl_class_new_holder_for(request, access_object_class_gid): try: access_holder = ClassAccessHolder.get(form.cleaned_data['holder_gid']) - return HttpResponseRedirect(reverse('acl_class_acl_detail', args=[access_object_class.gid, access_holder.gid])) + return HttpResponseRedirect(reverse('acls:acl_class_acl_detail', args=[access_object_class.gid, access_holder.gid])) except ObjectDoesNotExist: raise Http404 else: @@ -480,22 +472,22 @@ def acl_class_new_holder_for(request, access_object_class_gid): context = { 'form': form, - 'title': _(u'add new holder for class: %s') % unicode(access_object_class), + 'title': _('Add new holder for class: %s') % unicode(access_object_class), 'object': access_object_class, - 'submit_label': _(u'Select'), + 'submit_label': _('Select'), 'submit_icon_famfam': 'tick' } - return render_to_response('generic_form.html', context, - context_instance=RequestContext(request)) + return render_to_response('main/generic_form.html', context, + context_instance=RequestContext(request)) def acl_class_multiple_grant(request): Permission.objects.check_permissions(request.user, [ACLS_CLASS_EDIT_ACL]) items_property_list = loads(request.GET.get('items_property_list', [])) - next = request.POST.get('next', request.GET.get('next', request.META.get('HTTP_REFERER', '/'))) - previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/'))) + next = request.POST.get('next', request.GET.get('next', request.META.get('HTTP_REFERER', reverse('main:home')))) + previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', reverse('main:home')))) items = {} title_suffix = [] @@ -521,27 +513,27 @@ def acl_class_multiple_grant(request): for requester, obj_ps in items.items(): for obj, ps in obj_ps.items(): - title_suffix.append(_(u', ').join([u'"%s"' % unicode(p) for p in ps])) - title_suffix.append(_(u' for %s') % obj) - title_suffix.append(_(u' to %s') % requester) + title_suffix.append(_(', ').join(['"%s"' % unicode(p) for p in ps])) + title_suffix.append(_(' for %s') % obj) + title_suffix.append(_(' to %s') % requester) if len(items_property_list) == 1: - title_prefix = _(u'Are you sure you wish to grant the permission %(title_suffix)s?') + title_prefix = _('Are you sure you wish to grant the permission %(title_suffix)s?') else: - title_prefix = _(u'Are you sure you wish to grant the permissions %(title_suffix)s?') + title_prefix = _('Are you sure you wish to grant the permissions %(title_suffix)s?') if request.method == 'POST': for requester, object_permissions in items.items(): for obj, permissions in object_permissions.items(): for permission in permissions: if DefaultAccessEntry.objects.grant(permission, requester.source_object, obj.source_object): - messages.success(request, _(u'Permission "%(permission)s" granted to %(actor)s for %(object)s.') % { + messages.success(request, _('Permission "%(permission)s" granted to %(actor)s for %(object)s.') % { 'permission': permission, 'actor': requester, 'object': obj }) else: - messages.warning(request, _(u'%(actor)s, already had the permission "%(permission)s" granted for %(object)s.') % { + messages.warning(request, _('%(actor)s, already had the permission "%(permission)s" granted for %(object)s.') % { 'actor': requester, 'permission': permission, 'object': obj, @@ -550,31 +542,29 @@ def acl_class_multiple_grant(request): return HttpResponseRedirect(next) context = { - 'delete_view': True, 'previous': previous, 'next': next, - 'form_icon': u'key_add.png', } context['title'] = title_prefix % { - 'title_suffix': u''.join(title_suffix), + 'title_suffix': ''.join(title_suffix), } - logger.debug('navigation_object_count: %d' % navigation_object_count) - logger.debug('navigation_object: %s' % navigation_object) + logger.debug('navigation_object_count: %d', navigation_object_count) + logger.debug('navigation_object: %s', navigation_object) if navigation_object_count == 1: context['object'] = navigation_object - return render_to_response('generic_confirm.html', context, - context_instance=RequestContext(request)) + return render_to_response('main/generic_confirm.html', context, + context_instance=RequestContext(request)) def acl_class_multiple_revoke(request): Permission.objects.check_permissions(request.user, [ACLS_CLASS_EDIT_ACL]) items_property_list = loads(request.GET.get('items_property_list', [])) - next = request.POST.get('next', request.GET.get('next', request.META.get('HTTP_REFERER', '/'))) - previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/'))) + next = request.POST.get('next', request.GET.get('next', request.META.get('HTTP_REFERER', reverse('main:home')))) + previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', reverse('main:home')))) items = {} title_suffix = [] @@ -600,27 +590,27 @@ def acl_class_multiple_revoke(request): for requester, obj_ps in items.items(): for obj, ps in obj_ps.items(): - title_suffix.append(_(u', ').join([u'"%s"' % unicode(p) for p in ps])) - title_suffix.append(_(u' for %s') % obj) - title_suffix.append(_(u' from %s') % requester) + title_suffix.append(_(', ').join(['"%s"' % unicode(p) for p in ps])) + title_suffix.append(_(' for %s') % obj) + title_suffix.append(_(' from %s') % requester) if len(items_property_list) == 1: - title_prefix = _(u'Are you sure you wish to revoke the permission %(title_suffix)s?') + title_prefix = _('Are you sure you wish to revoke the permission %(title_suffix)s?') else: - title_prefix = _(u'Are you sure you wish to revoke the permissions %(title_suffix)s?') + title_prefix = _('Are you sure you wish to revoke the permissions %(title_suffix)s?') if request.method == 'POST': for requester, object_permissions in items.items(): for obj, permissions in object_permissions.items(): for permission in permissions: if DefaultAccessEntry.objects.revoke(permission, requester.source_object, obj.source_object): - messages.success(request, _(u'Permission "%(permission)s" revoked of %(actor)s for %(object)s.') % { + messages.success(request, _('Permission "%(permission)s" revoked of %(actor)s for %(object)s.') % { 'permission': permission, 'actor': requester, 'object': obj }) else: - messages.warning(request, _(u'%(actor)s, didn\'t had the permission "%(permission)s" for %(object)s.') % { + messages.warning(request, _('%(actor)s, didn\'t had the permission "%(permission)s" for %(object)s.') % { 'actor': requester, 'permission': permission, 'object': obj, @@ -629,20 +619,18 @@ def acl_class_multiple_revoke(request): return HttpResponseRedirect(next) context = { - 'delete_view': True, 'previous': previous, 'next': next, - 'form_icon': u'key_delete.png', } context['title'] = title_prefix % { - 'title_suffix': u''.join(title_suffix), + 'title_suffix': ''.join(title_suffix), } - logger.debug('navigation_object_count: %d' % navigation_object_count) - logger.debug('navigation_object: %s' % navigation_object) + logger.debug('navigation_object_count: %d', navigation_object_count) + logger.debug('navigation_object: %s', navigation_object) if navigation_object_count == 1: context['object'] = navigation_object - return render_to_response('generic_confirm.html', context, - context_instance=RequestContext(request)) + return render_to_response('main/generic_confirm.html', context, + context_instance=RequestContext(request)) diff --git a/mayan/apps/acls/widgets.py b/mayan/apps/acls/widgets.py index 896d99611b..d6c866bca0 100644 --- a/mayan/apps/acls/widgets.py +++ b/mayan/apps/acls/widgets.py @@ -1,15 +1,14 @@ -from __future__ import absolute_import +from __future__ import unicode_literals from django.utils.safestring import mark_safe from django.contrib.contenttypes.models import ContentType from django.db.models.base import ModelBase -from django.template.defaultfilters import capfirst from .literals import CONTENT_TYPE_ICON_MAP def content_type_icon(content_type): - return mark_safe(u'' % CONTENT_TYPE_ICON_MAP.get('%s.%s' % (content_type.app_label, content_type.model), 'help')) + return mark_safe('' % CONTENT_TYPE_ICON_MAP.get('%s.%s' % (content_type.app_label, content_type.model), 'help')) def object_w_content_type_icon(obj): @@ -24,4 +23,4 @@ def object_w_content_type_icon(obj): else: label = unicode(obj) - return mark_safe('%s%s' % (content_type_icon(content_type), capfirst(label))) + return mark_safe('%s%s' % (content_type_icon(content_type), label)) diff --git a/mayan/apps/app_registry/__init__.py b/mayan/apps/app_registry/__init__.py deleted file mode 100644 index 4020e8369d..0000000000 --- a/mayan/apps/app_registry/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -from __future__ import absolute_import - -import logging - -from django.conf import settings -from django.utils.importlib import import_module - -from .models import App - -logger = logging.getLogger(__name__) - - -def register_apps(): - for app_name in settings.INSTALLED_APPS: - logger.debug('registering: %s' % app_name) - App.register(app_name) - try: - post_init = import_module('%s.post_init' % app_name) - except ImportError: - logger.debug('Unable to import post_init module from: %s' % app_name) - - -register_apps() diff --git a/mayan/apps/app_registry/models.py b/mayan/apps/app_registry/models.py deleted file mode 100644 index b0ec4c970d..0000000000 --- a/mayan/apps/app_registry/models.py +++ /dev/null @@ -1,69 +0,0 @@ -from __future__ import absolute_import - -import logging - -from django.db import models -from django.utils.importlib import import_module - -from bootstrap.classes import BootstrapModel, Cleanup -from navigation.api import register_top_menu -from project_setup.api import register_setup -from project_tools.api import register_tool -from rest_api.classes import APIEndPoint - -logger = logging.getLogger(__name__) - - -class App(object): - @classmethod - def register(cls, app_name): - logger.debug('Trying to import: %s' % app_name) - try: - app_module = import_module(app_name) - except ImportError: - logger.debug('Unable to import app: %s' % app_name) - else: - logger.debug('Trying to import registry from: %s' % app_name) - try: - registration = import_module('%s.registry' % app_name) - except ImportError as e: - logger.debug('Unable to import registry for app: %s; %s' % (app_name, e)) - else: - if not getattr(registration, 'disabled', False): - app = App() - app.name = app_name - # If there are not error go ahead with the stored app instance - app.label = getattr(registration, 'label', app_name) - app.description = getattr(registration, 'description', u'') - - for link in getattr(registration, 'setup_links', []): - logger.debug('setup link: %s' % link) - register_setup(link) - - for link in getattr(registration, 'tool_links', []): - logger.debug('tool link: %s' % link) - register_tool(link) - - for index, link in enumerate(getattr(registration, 'menu_links', [])): - logger.debug('menu_link: %s' % link) - register_top_menu(name='%s.%s' % (app_name, index), link=link) - - for cleanup_function in getattr(registration, 'cleanup_functions', []): - logger.debug('cleanup_function: %s' % cleanup_function) - Cleanup(cleanup_function) - - for bootstrap_model in getattr(registration, 'bootstrap_models', []): - logger.debug('bootstrap_model: %s' % bootstrap_model) - BootstrapModel(model_name=bootstrap_model.get('name'), app_name=app_name, sanitize=bootstrap_model.get('sanitize', True), dependencies=bootstrap_model.get('dependencies')) - - version_0_api_services = getattr(registration, 'version_0_api_services', []) - logger.debug('version_0_api_services: %s' % version_0_api_services) - - if version_0_api_services: - api_endpoint = APIEndPoint(app_name) - - for service in version_0_api_services: - api_endpoint.add_service(**service) - - def __unicode__(self): - return unicode(self.label) diff --git a/mayan/apps/bootstrap/admin.py b/mayan/apps/bootstrap/admin.py deleted file mode 100644 index 86013694b3..0000000000 --- a/mayan/apps/bootstrap/admin.py +++ /dev/null @@ -1,7 +0,0 @@ -from __future__ import absolute_import - -from django.contrib import admin - -from .models import BootstrapSetup - -admin.site.register(BootstrapSetup) diff --git a/mayan/apps/bootstrap/classes.py b/mayan/apps/bootstrap/classes.py deleted file mode 100644 index b3d9555457..0000000000 --- a/mayan/apps/bootstrap/classes.py +++ /dev/null @@ -1,172 +0,0 @@ -from __future__ import absolute_import - -from itertools import chain -import logging - -from django.core import serializers -from django.db import models -from django.utils.datastructures import SortedDict - -from .exceptions import ExistingData, NotABootstrapSetup -from .literals import (FIXTURE_TYPE_PK_NULLIFIER, FIXTURE_TYPE_MODEL_PROCESS, - FIXTURE_METADATA_REMARK_CHARACTER, BOOTSTRAP_SETUP_MAGIC_NUMBER) -from .utils import toposort2 - -logger = logging.getLogger(__name__) - - -class Cleanup(object): - """ - Class to store all the registered cleanup functions in one place. - """ - _registry = {} - - @classmethod - def execute_all(cls): - for cleanup in cls._registry.values(): - cleanup.function() - - def __init__(self, function): - self.function = function - self.__class__._registry[id(self)] = self - - -class BootstrapModel(object): - """ - Class used to keep track of all the models to be dumped to create a - bootstrap setup from the current setup in use. - """ - _registry = SortedDict() - - @classmethod - def get_magic_number(cls): - return '%s %s' % (FIXTURE_METADATA_REMARK_CHARACTER, BOOTSTRAP_SETUP_MAGIC_NUMBER) - - @classmethod - def check_magic_number(cls, data): - if not data.startswith(cls.get_magic_number()): - raise NotABootstrapSetup - - @classmethod - def check_for_data(cls): - for model in cls.get_all(): - model_instance = models.get_model(model.app_name, model.model_name) - if model_instance.objects.all().count(): - raise ExistingData - - @classmethod - def get_all(cls, sort_by_dependencies=False): - """ - Return all boostrap models, sorted by dependencies optionally. - """ - if not sort_by_dependencies: - return cls._registry.values() - else: - return (cls.get_by_name(name) for name in list(chain.from_iterable(toposort2(cls.get_dependency_dict())))) - - @classmethod - def get_dependency_dict(cls): - """ - Return a dictionary where the key is the model name and it's value - is a list of models upon which it depends. - """ - result = {} - for instance in cls.get_all(): - result[instance.get_fullname()] = set(instance.dependencies) - - logger.debug('result: %s' % result) - return result - - @classmethod - def get_by_name(cls, name): - """ - Return a BootstrapModel instance by the fullname of the model it - represents. - """ - return cls._registry[name] - - def get_fullname(self): - """ - Return a the full app name + model name of the model represented - by the instance. - """ - return '.'.join([self.app_name, self.model_name]) - - def get_model_instance(self): - """ - Returns an actual Model class instance of the model. - """ - return models.get_model(self.app_name, self.model_name) - - def __init__(self, model_name, app_name=None, sanitize=True, dependencies=None): - app_name_splitted = None - if '.' in model_name: - app_name_splitted, model_name = model_name.split('.') - - self.app_name = app_name_splitted or app_name - if not self.app_name: - raise Exception('Pass either a dotted app plus model name or a model name and a separate app name') - self.model_name = model_name - self.sanitize = sanitize - self.dependencies = dependencies if dependencies else [] - self.__class__._registry[self.get_fullname()] = self - - def dump(self, serialization_format): - result = serializers.serialize(serialization_format, self.get_model_instance().objects.all(), indent=4, use_natural_keys=True) - logger.debug('result: "%s"' % result) - if self.sanitize: - # Remove primary key values - result = FIXTURE_TYPE_PK_NULLIFIER[serialization_format](result) - # Do any clean up required on the fixture - result = FIXTURE_TYPE_MODEL_PROCESS[serialization_format](result) - return result - - -class FixtureMetadata(object): - """ - Class to automatically create and extract metadata from a bootstrap - fixture. - """ - _registry = SortedDict() - - @classmethod - def get_all(cls): - return cls._registry.values() - - @classmethod - def generate_all(cls, fixture_instance): - result = [] - for fixture_metadata in cls.get_all(): - result.append(fixture_metadata.generate(fixture_instance)) - - return '\n'.join(result) - - @classmethod - def read_all(cls, data): - result = {} - for instance in cls.get_all(): - single_result = instance.read_value(data) - if single_result: - result[instance.property_name] = single_result - - return result - - def __init__(self, literal, generate_function, read_function=None, property_name=None): - self.literal = literal - self.generate_function = generate_function - self.property_name = property_name - self.read_function = read_function or (lambda x: x) - self.__class__._registry[id(self)] = self - - def get_with_remark(self): - return '%s %s' % (FIXTURE_METADATA_REMARK_CHARACTER, self.literal) - - def generate(self, fixture_instance): - return '%s: %s' % (self.get_with_remark(), self.generate_function(fixture_instance)) - - def read_value(self, fixture_data): - if self.property_name: - for line in fixture_data.splitlines(False): - if line.startswith(self.get_with_remark()): - # TODO: replace the "+ 4" with a space and next character finding algo - return self.read_function(line[len(self.literal) + 4:]) diff --git a/mayan/apps/bootstrap/exceptions.py b/mayan/apps/bootstrap/exceptions.py deleted file mode 100644 index dbe4be6955..0000000000 --- a/mayan/apps/bootstrap/exceptions.py +++ /dev/null @@ -1,18 +0,0 @@ -from __future__ import absolute_import - - -class ExistingData(Exception): - """ - Raised when an attempt to execute a bootstrap setup is made and there is - existing data that would be corrupted or damaged by the loading the - bootstrap's fixture. - """ - pass - - -class NotABootstrapSetup(Exception): - """ - Raised when an attempting to import a bootstrap setup without a proper - magic number metadata - """ - pass diff --git a/mayan/apps/bootstrap/forms.py b/mayan/apps/bootstrap/forms.py deleted file mode 100644 index 44a6478712..0000000000 --- a/mayan/apps/bootstrap/forms.py +++ /dev/null @@ -1,56 +0,0 @@ -from __future__ import absolute_import - -import logging - -from django import forms -from django.utils.translation import ugettext_lazy as _ - -from common.forms import DetailForm - -from .models import BootstrapSetup - -logger = logging.getLogger(__name__) - - -class BootstrapSetupForm(forms.ModelForm): - class Meta: - model = BootstrapSetup - widgets = { - 'description': forms.widgets.Textarea(attrs={ - 'rows': 5, 'cols': 80} - ) - } - - -class BootstrapSetupForm_view(DetailForm): - class Meta: - model = BootstrapSetup - widgets = { - 'description': forms.widgets.Textarea(attrs={ - 'rows': 5, 'cols': 80} - ) - } - - -class BootstrapSetupForm_edit(BootstrapSetupForm): - class Meta(BootstrapSetupForm.Meta): - model = BootstrapSetup - exclude = ('type',) - - -class BootstrapSetupForm_dump(BootstrapSetupForm): - class Meta(BootstrapSetupForm.Meta): - model = BootstrapSetup - exclude = ('fixture',) - - -class BootstrapFileImportForm(forms.Form): - file = forms.FileField( - label=_(u'Bootstrap setup file'), - ) - - -class BootstrapURLImportForm(forms.Form): - url = forms.URLField( - label=_(u'Bootstrap setup URL'), - ) diff --git a/mayan/apps/bootstrap/links.py b/mayan/apps/bootstrap/links.py deleted file mode 100644 index 3057c7bfd9..0000000000 --- a/mayan/apps/bootstrap/links.py +++ /dev/null @@ -1,23 +0,0 @@ -from __future__ import absolute_import - -from django.utils.translation import ugettext_lazy as _ - -from .permissions import (PERMISSION_BOOTSTRAP_VIEW, PERMISSION_BOOTSTRAP_CREATE, - PERMISSION_BOOTSTRAP_EDIT, PERMISSION_BOOTSTRAP_DELETE, - PERMISSION_BOOTSTRAP_EXECUTE, PERMISSION_BOOTSTRAP_DUMP, - PERMISSION_NUKE_DATABASE, PERMISSION_BOOTSTRAP_EXPORT, - PERMISSION_BOOTSTRAP_IMPORT, PERMISSION_BOOTSTRAP_REPOSITORY_SYNC) - -link_bootstrap_setup_tool = {'text': _(u'bootstrap'), 'view': 'bootstrap_setup_list', 'icon': 'lightning.png', 'permissions': [PERMISSION_BOOTSTRAP_VIEW]} -link_bootstrap_setup_list = {'text': _(u'bootstrap setup list'), 'view': 'bootstrap_setup_list', 'famfam': 'lightning', 'permissions': [PERMISSION_BOOTSTRAP_VIEW]} -link_bootstrap_setup_create = {'text': _(u'create new bootstrap setup'), 'view': 'bootstrap_setup_create', 'famfam': 'lightning_add', 'permissions': [PERMISSION_BOOTSTRAP_CREATE]} -link_bootstrap_setup_edit = {'text': _(u'edit'), 'view': 'bootstrap_setup_edit', 'args': 'object.pk', 'famfam': 'pencil', 'permissions': [PERMISSION_BOOTSTRAP_EDIT]} -link_bootstrap_setup_delete = {'text': _(u'delete'), 'view': 'bootstrap_setup_delete', 'args': 'object.pk', 'famfam': 'lightning_delete', 'permissions': [PERMISSION_BOOTSTRAP_DELETE]} -link_bootstrap_setup_view = {'text': _(u'details'), 'view': 'bootstrap_setup_view', 'args': 'object.pk', 'famfam': 'lightning', 'permissions': [PERMISSION_BOOTSTRAP_VIEW]} -link_bootstrap_setup_execute = {'text': _(u'execute'), 'view': 'bootstrap_setup_execute', 'args': 'object.pk', 'famfam': 'lightning_go', 'permissions': [PERMISSION_BOOTSTRAP_EXECUTE]} -link_bootstrap_setup_dump = {'text': _(u'dump current setup'), 'view': 'bootstrap_setup_dump', 'famfam': 'arrow_down', 'permissions': [PERMISSION_BOOTSTRAP_DUMP]} -link_bootstrap_setup_export = {'text': _(u'export'), 'view': 'bootstrap_setup_export', 'args': 'object.pk', 'famfam': 'disk', 'permissions': [PERMISSION_BOOTSTRAP_EXPORT]} -link_bootstrap_setup_import_from_file = {'text': _(u'import from file'), 'view': 'bootstrap_setup_import_from_file', 'famfam': 'folder', 'permissions': [PERMISSION_BOOTSTRAP_IMPORT]} -link_bootstrap_setup_import_from_url = {'text': _(u'import from URL'), 'view': 'bootstrap_setup_import_from_url', 'famfam': 'world', 'permissions': [PERMISSION_BOOTSTRAP_IMPORT]} -link_bootstrap_setup_repository_sync = {'text': _(u'sync with repository'), 'view': 'bootstrap_setup_repository_sync', 'famfam': 'world', 'permissions': [PERMISSION_BOOTSTRAP_REPOSITORY_SYNC]} -link_erase_database = {'text': _(u'erase database'), 'view': 'erase_database_view', 'icon': 'radioactivity.png', 'permissions': [PERMISSION_NUKE_DATABASE]} diff --git a/mayan/apps/bootstrap/literals.py b/mayan/apps/bootstrap/literals.py deleted file mode 100644 index 962a9da028..0000000000 --- a/mayan/apps/bootstrap/literals.py +++ /dev/null @@ -1,79 +0,0 @@ -from __future__ import absolute_import - -import re - -try: - import yaml -except ImportError: - YAML_AVAILABLE = False -else: - YAML_AVAILABLE = True - -from django.utils.translation import ugettext_lazy as _ - -FIXTURE_TYPE_JSON = 'json' -FIXTURE_TYPE_YAML = 'yaml' -FIXTURE_TYPE_BETTER_YAML = 'better_yaml' -FIXTURE_TYPE_XML = 'xml' - -FIXTURE_TYPES_CHOICES = ( - (FIXTURE_TYPE_JSON, _(u'JSON')), - # Disabing XML until a way to specify a null pk is found - # (FIXTURE_TYPE_XML, _(u'XML')), -) - -FIXTURE_FILE_TYPE = { - FIXTURE_TYPE_JSON: 'json', - FIXTURE_TYPE_YAML: 'yaml', - FIXTURE_TYPE_BETTER_YAML: 'better_yaml', - FIXTURE_TYPE_XML: 'xml', -} - -FIXTURE_TYPE_PK_NULLIFIER = { - FIXTURE_TYPE_JSON: lambda x: re.sub('"pk": [0-9]{1,5}', '"pk": null', x), - FIXTURE_TYPE_YAML: lambda x: re.sub('pk: [0-9]{1,5}', 'pk: null', x), - FIXTURE_TYPE_BETTER_YAML: lambda x: re.sub('[0-9]{1,5}:', 'null:', x), - FIXTURE_TYPE_XML: lambda x: re.sub('pk="[0-9]{1,5}"', 'pk=null', x), -} - -FIXTURE_TYPE_EMPTY_FIXTURE = { - FIXTURE_TYPE_JSON: lambda x: x.startswith('[]') or x == ',', - FIXTURE_TYPE_YAML: lambda x: x.startswith('[]'), - FIXTURE_TYPE_BETTER_YAML: lambda x: x.startswith('{}'), - FIXTURE_TYPE_XML: lambda x: x, -} - -FIXTURE_TYPE_MODEL_PROCESS = { - FIXTURE_TYPE_JSON: lambda x: '%s,' % x[2:-2], - FIXTURE_TYPE_YAML: lambda x: x, - FIXTURE_TYPE_BETTER_YAML: lambda x: x, - FIXTURE_TYPE_XML: lambda x: x, -} - -FIXTURE_TYPE_FIXTURE_PROCESS = { - FIXTURE_TYPE_JSON: lambda x: '[\n%s\n]' % x[:-1], # Enclose in [], remove last comma - FIXTURE_TYPE_YAML: lambda x: x, - FIXTURE_TYPE_BETTER_YAML: lambda x: x, - FIXTURE_TYPE_XML: lambda x: x, -} - -COMMAND_LOADDATA = 'loaddata' - -if YAML_AVAILABLE: - FIXTURE_TYPES_CHOICES += (FIXTURE_TYPE_YAML, _(u'YAML')), - FIXTURE_TYPES_CHOICES += (FIXTURE_TYPE_BETTER_YAML, _(u'Better YAML')), - # better_yaml is not working with natural keys - -BOOTSTRAP_EXTENSION = 'txt' -BOOTSTRAP_REPOSITORY_INDEX_FILE = '_repo_index.txt' -BOOTSTRAP_REPOSITORY_URL = 'http://bootstrap.mayan-edms.com' -BOOTSTRAP_SETUP_MAGIC_NUMBER = 'bootstrap setup' -DATETIME_STRING_FORMAT = '%a, %d %b %Y %H:%M:%S +0000' -FIXTURE_METADATA_CREATED = 'created' -FIXTURE_METADATA_DESCRIPTION = 'description' -FIXTURE_METADATA_EDITED = 'edited' -FIXTURE_METADATA_FORMAT = 'format' -FIXTURE_METADATA_MAYAN_VERSION = 'mayan_edms_version' -FIXTURE_METADATA_NAME = 'name' -FIXTURE_METADATA_REMARK_CHARACTER = '#' -FIXTURE_METADATA_SLUG = 'slug' diff --git a/mayan/apps/bootstrap/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/bootstrap/locale/ar/LC_MESSAGES/django.mo deleted file mode 100644 index 2b35a93949..0000000000 Binary files a/mayan/apps/bootstrap/locale/ar/LC_MESSAGES/django.mo and /dev/null differ diff --git a/mayan/apps/bootstrap/locale/ar/LC_MESSAGES/django.po b/mayan/apps/bootstrap/locale/ar/LC_MESSAGES/django.po deleted file mode 100644 index d26ec615ca..0000000000 --- a/mayan/apps/bootstrap/locale/ar/LC_MESSAGES/django.po +++ /dev/null @@ -1,324 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# -# Translators: -# Mohammed ALDOUB , 2013 -msgid "" -msgstr "" -"Project-Id-Version: Mayan EDMS\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:55-0400\n" -"PO-Revision-Date: 2013-01-26 08:57+0000\n" -"Last-Translator: Mohammed ALDOUB \n" -"Language-Team: Arabic (http://www.transifex.com/projects/p/mayan-edms/" -"language/ar/)\n" -"Language: ar\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " -"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" - -#: forms.py:49 -msgid "Bootstrap setup file" -msgstr "Bootstrap setup file" - -#: forms.py:55 -msgid "Bootstrap setup URL" -msgstr "Bootstrap setup URL" - -#: links.py:11 -msgid "bootstrap" -msgstr "bootstrap" - -#: links.py:12 -msgid "bootstrap setup list" -msgstr "bootstrap setup list" - -#: links.py:13 -msgid "create new bootstrap setup" -msgstr "create new bootstrap setup" - -#: links.py:14 -msgid "edit" -msgstr "تحرير" - -#: links.py:15 -msgid "delete" -msgstr "حذف" - -#: links.py:16 -msgid "details" -msgstr "تفاصيل" - -#: links.py:17 -msgid "execute" -msgstr "execute" - -#: links.py:18 -msgid "dump current setup" -msgstr "dump current setup" - -#: links.py:19 -msgid "export" -msgstr "export" - -#: links.py:20 -msgid "import from file" -msgstr "import from file" - -#: links.py:21 -msgid "import from URL" -msgstr "import from URL" - -#: links.py:22 -msgid "sync with repository" -msgstr "sync with repository" - -#: links.py:23 -msgid "erase database" -msgstr "مسح قاعدة البيانات" - -#: literals.py:20 -msgid "JSON" -msgstr "JSON" - -#: literals.py:63 -msgid "YAML" -msgstr "YAML" - -#: literals.py:64 -msgid "Better YAML" -msgstr "Better YAML" - -#: models.py:30 -msgid "name" -msgstr "name" - -#: models.py:31 -msgid "slug" -msgstr "slug" - -#: models.py:32 views.py:35 -msgid "description" -msgstr "وصف" - -#: models.py:33 -msgid "fixture" -msgstr "fixture" - -#: models.py:33 -msgid "These are the actual database structure creation instructions." -msgstr "These are the actual database structure creation instructions." - -#: models.py:34 views.py:36 -msgid "type" -msgstr "type" - -#: models.py:35 -msgid "creation date and time" -msgstr "creation date and time" - -#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173 -msgid "bootstrap setup" -msgstr "bootstrap setup" - -#: models.py:105 views.py:32 -msgid "bootstrap setups" -msgstr "bootstrap setups" - -#: permissions.py:7 -msgid "Database bootstrap" -msgstr "Database bootstrap" - -#: permissions.py:9 -msgid "View bootstrap setups" -msgstr "View bootstrap setups" - -#: permissions.py:10 -msgid "Create bootstrap setups" -msgstr "Create bootstrap setups" - -#: permissions.py:11 -msgid "Edit bootstrap setups" -msgstr "Edit bootstrap setups" - -#: permissions.py:12 -msgid "Delete bootstrap setups" -msgstr "Delete bootstrap setups" - -#: permissions.py:13 -msgid "Execute bootstrap setups" -msgstr "Execute bootstrap setups" - -#: permissions.py:14 -msgid "Dump the current project\\s setup into a bootstrap setup" -msgstr "Dump the current project\\s setup into a bootstrap setup" - -#: permissions.py:15 -msgid "Export bootstrap setups as files" -msgstr "Export bootstrap setups as files" - -#: permissions.py:16 -msgid "Import new bootstrap setups" -msgstr "Import new bootstrap setups" - -#: permissions.py:17 -msgid "Sync the local bootstrap setups with a published repository" -msgstr "Sync the local bootstrap setups with a published repository" - -#: permissions.py:18 -msgid "Erase the entire database and document storage" -msgstr "مسح قاعدة البيانات والوئايق بالكامل" - -#: registry.py:7 -msgid "Bootstrap" -msgstr "Bootstrap" - -#: registry.py:8 -msgid "Provides pre configured setups for indexes, document types, tags, etc." -msgstr "Provides pre configured setups for indexes, document types, tags, etc." - -#: views.py:51 -msgid "Bootstrap setup created successfully" -msgstr "Bootstrap setup created successfully" - -#: views.py:54 -msgid "Error creating bootstrap setup." -msgstr "Error creating bootstrap setup." - -#: views.py:59 -msgid "create bootstrap" -msgstr "create bootstrap" - -#: views.py:79 -msgid "Bootstrap setup edited successfully" -msgstr "Bootstrap setup edited successfully" - -#: views.py:82 -msgid "Error editing bootstrap setup." -msgstr "Error editing bootstrap setup." - -#: views.py:87 -#, python-format -msgid "edit bootstrap setup: %s" -msgstr "edit bootstrap setup: %s" - -#: views.py:112 -#, python-format -msgid "Bootstrap setup: %s deleted successfully." -msgstr "Bootstrap setup: %s deleted successfully." - -#: views.py:114 -#, python-format -msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s" -msgstr "Bootstrap setup: %(bootstrap)s, delete error: %(error)s" - -#: views.py:125 -#, python-format -msgid "Are you sure you with to delete the bootstrap setup: %s?" -msgstr "Are you sure you with to delete the bootstrap setup: %s?" - -#: views.py:165 -msgid "" -"Cannot execute bootstrap setup, there is existing data. Erase all data and " -"try again." -msgstr "" -"Cannot execute bootstrap setup, there is existing data. Erase all data and " -"try again." - -#: views.py:167 -#, python-format -msgid "Error executing bootstrap setup; %s" -msgstr "Error executing bootstrap setup; %s" - -#: views.py:169 -#, python-format -msgid "Bootstrap setup \"%s\" executed successfully." -msgstr "Bootstrap setup \"%s\" executed successfully." - -#: views.py:181 -#, python-format -msgid "" -"Are you sure you wish to execute the database bootstrap setup named: %s?" -msgstr "" -"Are you sure you wish to execute the database bootstrap setup named: %s?" - -#: views.py:197 -#, python-format -msgid "Error dumping configuration into a bootstrap setup; %s" -msgstr "Error dumping configuration into a bootstrap setup; %s" - -#: views.py:201 -msgid "Bootstrap setup created successfully." -msgstr "Bootstrap setup created successfully." - -#: views.py:207 -msgid "dump current configuration into a bootstrap setup" -msgstr "dump current configuration into a bootstrap setup" - -#: views.py:241 views.py:269 -msgid "Bootstrap setup imported successfully." -msgstr "Bootstrap setup imported successfully." - -#: views.py:244 -msgid "File is not a bootstrap setup." -msgstr "File is not a bootstrap setup." - -#: views.py:246 -#, python-format -msgid "Error importing bootstrap setup from file; %s." -msgstr "Error importing bootstrap setup from file; %s." - -#: views.py:252 -msgid "Import bootstrap setup from file" -msgstr "Import bootstrap setup from file" - -#: views.py:272 -msgid "Data from URL is not a bootstrap setup." -msgstr "Data from URL is not a bootstrap setup." - -#: views.py:274 -#, python-format -msgid "Error importing bootstrap setup from URL; %s." -msgstr "Error importing bootstrap setup from URL; %s." - -#: views.py:280 -msgid "Import bootstrap setup from URL" -msgstr "Import bootstrap setup from URL" - -#: views.py:299 -#, python-format -msgid "Error erasing database; %s" -msgstr "Error erasing database; %s" - -#: views.py:301 -msgid "Database erased successfully." -msgstr "مسح قاعدة البيانات بنجاح." - -#: views.py:311 -msgid "" -"Are you sure you wish to erase the entire database and document storage?" -msgstr "هل أنت متأكد أنك ترغب في مسح قاعدة البيانات والوثائق بأكملها؟" - -#: views.py:312 -msgid "" -"All documents, sources, metadata, metadata types, set, tags, indexes and " -"logs will be lost irreversibly!" -msgstr "" -"سيتم فقدان كافة الوثائق والمصادر، وأنواع البيانات الوصفية، والكلمات " -"الاستدلالية، والفهارس وسجلات و لن تستطيع ارجاعها!" - -#: views.py:329 -msgid "Bootstrap repository successfully synchronized." -msgstr "Bootstrap repository successfully synchronized." - -#: views.py:331 -#, python-format -msgid "Bootstrap repository synchronization error: %(error)s" -msgstr "Bootstrap repository synchronization error: %(error)s" - -#: views.py:338 -msgid "Are you sure you wish to synchronize with the bootstrap repository?" -msgstr "Are you sure you wish to synchronize with the bootstrap repository?" diff --git a/mayan/apps/bootstrap/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/bootstrap/locale/bg/LC_MESSAGES/django.mo deleted file mode 100644 index 4352713316..0000000000 Binary files a/mayan/apps/bootstrap/locale/bg/LC_MESSAGES/django.mo and /dev/null differ diff --git a/mayan/apps/bootstrap/locale/bg/LC_MESSAGES/django.po b/mayan/apps/bootstrap/locale/bg/LC_MESSAGES/django.po deleted file mode 100644 index da04d3eb44..0000000000 --- a/mayan/apps/bootstrap/locale/bg/LC_MESSAGES/django.po +++ /dev/null @@ -1,321 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# -# Translators: -# Pavlin Koldamov , 2012 -msgid "" -msgstr "" -"Project-Id-Version: Mayan EDMS\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:55-0400\n" -"PO-Revision-Date: 2012-12-12 06:04+0000\n" -"Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/projects/p/mayan-edms/" -"language/bg/)\n" -"Language: bg\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: forms.py:49 -msgid "Bootstrap setup file" -msgstr "" - -#: forms.py:55 -msgid "Bootstrap setup URL" -msgstr "" - -#: links.py:11 -msgid "bootstrap" -msgstr "" - -#: links.py:12 -msgid "bootstrap setup list" -msgstr "" - -#: links.py:13 -msgid "create new bootstrap setup" -msgstr "" - -#: links.py:14 -msgid "edit" -msgstr "редактиране" - -#: links.py:15 -msgid "delete" -msgstr "изтриване" - -#: links.py:16 -msgid "details" -msgstr "детайли" - -#: links.py:17 -msgid "execute" -msgstr "изпълнение" - -#: links.py:18 -msgid "dump current setup" -msgstr "изпринтване на текущата настройка" - -#: links.py:19 -msgid "export" -msgstr "" - -#: links.py:20 -msgid "import from file" -msgstr "" - -#: links.py:21 -msgid "import from URL" -msgstr "" - -#: links.py:22 -msgid "sync with repository" -msgstr "" - -#: links.py:23 -msgid "erase database" -msgstr "изтриване на база данни" - -#: literals.py:20 -msgid "JSON" -msgstr "JSON" - -#: literals.py:63 -msgid "YAML" -msgstr "YAML" - -#: literals.py:64 -msgid "Better YAML" -msgstr "Подобрен YAML" - -#: models.py:30 -msgid "name" -msgstr "име" - -#: models.py:31 -msgid "slug" -msgstr "" - -#: models.py:32 views.py:35 -msgid "description" -msgstr "описание" - -#: models.py:33 -msgid "fixture" -msgstr "" - -#: models.py:33 -msgid "These are the actual database structure creation instructions." -msgstr "" -"Това са текущите инструкции за създаване на структурата на базата данни." - -#: models.py:34 views.py:36 -msgid "type" -msgstr "тип" - -#: models.py:35 -msgid "creation date and time" -msgstr "дата и време на създаване" - -#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173 -msgid "bootstrap setup" -msgstr "" - -#: models.py:105 views.py:32 -msgid "bootstrap setups" -msgstr "" - -#: permissions.py:7 -msgid "Database bootstrap" -msgstr "" - -#: permissions.py:9 -msgid "View bootstrap setups" -msgstr "" - -#: permissions.py:10 -msgid "Create bootstrap setups" -msgstr "" - -#: permissions.py:11 -msgid "Edit bootstrap setups" -msgstr "" - -#: permissions.py:12 -msgid "Delete bootstrap setups" -msgstr "" - -#: permissions.py:13 -msgid "Execute bootstrap setups" -msgstr "" - -#: permissions.py:14 -msgid "Dump the current project\\s setup into a bootstrap setup" -msgstr "" - -#: permissions.py:15 -msgid "Export bootstrap setups as files" -msgstr "" - -#: permissions.py:16 -msgid "Import new bootstrap setups" -msgstr "" - -#: permissions.py:17 -msgid "Sync the local bootstrap setups with a published repository" -msgstr "" - -#: permissions.py:18 -msgid "Erase the entire database and document storage" -msgstr "Изтрийте цялата база данни за съхраняване и документното пространство" - -#: registry.py:7 -msgid "Bootstrap" -msgstr "" - -#: registry.py:8 -msgid "Provides pre configured setups for indexes, document types, tags, etc." -msgstr "" - -#: views.py:51 -msgid "Bootstrap setup created successfully" -msgstr "" - -#: views.py:54 -msgid "Error creating bootstrap setup." -msgstr "" - -#: views.py:59 -msgid "create bootstrap" -msgstr "" - -#: views.py:79 -msgid "Bootstrap setup edited successfully" -msgstr "" - -#: views.py:82 -msgid "Error editing bootstrap setup." -msgstr "" - -#: views.py:87 -#, python-format -msgid "edit bootstrap setup: %s" -msgstr "" - -#: views.py:112 -#, python-format -msgid "Bootstrap setup: %s deleted successfully." -msgstr "" - -#: views.py:114 -#, python-format -msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Are you sure you with to delete the bootstrap setup: %s?" -msgstr "" - -#: views.py:165 -msgid "" -"Cannot execute bootstrap setup, there is existing data. Erase all data and " -"try again." -msgstr "" - -#: views.py:167 -#, python-format -msgid "Error executing bootstrap setup; %s" -msgstr "" - -#: views.py:169 -#, python-format -msgid "Bootstrap setup \"%s\" executed successfully." -msgstr "" - -#: views.py:181 -#, python-format -msgid "" -"Are you sure you wish to execute the database bootstrap setup named: %s?" -msgstr "" - -#: views.py:197 -#, python-format -msgid "Error dumping configuration into a bootstrap setup; %s" -msgstr "" - -#: views.py:201 -msgid "Bootstrap setup created successfully." -msgstr "" - -#: views.py:207 -msgid "dump current configuration into a bootstrap setup" -msgstr "" - -#: views.py:241 views.py:269 -msgid "Bootstrap setup imported successfully." -msgstr "" - -#: views.py:244 -msgid "File is not a bootstrap setup." -msgstr "" - -#: views.py:246 -#, python-format -msgid "Error importing bootstrap setup from file; %s." -msgstr "" - -#: views.py:252 -msgid "Import bootstrap setup from file" -msgstr "" - -#: views.py:272 -msgid "Data from URL is not a bootstrap setup." -msgstr "" - -#: views.py:274 -#, python-format -msgid "Error importing bootstrap setup from URL; %s." -msgstr "" - -#: views.py:280 -msgid "Import bootstrap setup from URL" -msgstr "" - -#: views.py:299 -#, python-format -msgid "Error erasing database; %s" -msgstr "Грешка при изтриване на база данни; %s" - -#: views.py:301 -msgid "Database erased successfully." -msgstr "Базата данни е изтрита успешно." - -#: views.py:311 -msgid "" -"Are you sure you wish to erase the entire database and document storage?" -msgstr "" -"Сигурен ли сте, че искате да изтриете цялата база данни и документното " -"пространство?" - -#: views.py:312 -msgid "" -"All documents, sources, metadata, metadata types, set, tags, indexes and " -"logs will be lost irreversibly!" -msgstr "" - -#: views.py:329 -msgid "Bootstrap repository successfully synchronized." -msgstr "" - -#: views.py:331 -#, python-format -msgid "Bootstrap repository synchronization error: %(error)s" -msgstr "" - -#: views.py:338 -msgid "Are you sure you wish to synchronize with the bootstrap repository?" -msgstr "" diff --git a/mayan/apps/bootstrap/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/bootstrap/locale/bs_BA/LC_MESSAGES/django.mo deleted file mode 100644 index 4e208270a9..0000000000 Binary files a/mayan/apps/bootstrap/locale/bs_BA/LC_MESSAGES/django.mo and /dev/null differ diff --git a/mayan/apps/bootstrap/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/bootstrap/locale/bs_BA/LC_MESSAGES/django.po deleted file mode 100644 index dab5adee5b..0000000000 --- a/mayan/apps/bootstrap/locale/bs_BA/LC_MESSAGES/django.po +++ /dev/null @@ -1,329 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# -# Translators: -# www.ping.ba , 2013 -msgid "" -msgstr "" -"Project-Id-Version: Mayan EDMS\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:55-0400\n" -"PO-Revision-Date: 2013-06-27 13:14+0000\n" -"Last-Translator: www.ping.ba \n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" -"projects/p/mayan-edms/language/bs_BA/)\n" -"Language: bs_BA\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\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" - -#: forms.py:49 -msgid "Bootstrap setup file" -msgstr "datoteka bootstrap setup-a" - -#: forms.py:55 -msgid "Bootstrap setup URL" -msgstr "URL bootstrap setup-a" - -#: links.py:11 -msgid "bootstrap" -msgstr "bootstrap" - -#: links.py:12 -msgid "bootstrap setup list" -msgstr "setup lista bootstrap-a" - -#: links.py:13 -msgid "create new bootstrap setup" -msgstr "kreirati novi bootstrap setup" - -#: links.py:14 -msgid "edit" -msgstr "izmjeniti" - -#: links.py:15 -msgid "delete" -msgstr "obrisati" - -#: links.py:16 -msgid "details" -msgstr "detalji" - -#: links.py:17 -msgid "execute" -msgstr "izvšiti" - -#: links.py:18 -msgid "dump current setup" -msgstr "izlistati trenutni setup" - -#: links.py:19 -msgid "export" -msgstr "eksport" - -#: links.py:20 -msgid "import from file" -msgstr "unos iz datoteke" - -#: links.py:21 -msgid "import from URL" -msgstr "import sa URL" - -#: links.py:22 -msgid "sync with repository" -msgstr "sinhronizacija sa repozitorijem" - -#: links.py:23 -msgid "erase database" -msgstr "izbrisati bazu podataka" - -#: literals.py:20 -msgid "JSON" -msgstr "JSON" - -#: literals.py:63 -msgid "YAML" -msgstr "YAML" - -#: literals.py:64 -msgid "Better YAML" -msgstr "Bolji YAML" - -#: models.py:30 -msgid "name" -msgstr "naziv" - -#: models.py:31 -msgid "slug" -msgstr "slug" - -#: models.py:32 views.py:35 -msgid "description" -msgstr "opis" - -#: models.py:33 -msgid "fixture" -msgstr "popravka" - -#: models.py:33 -msgid "These are the actual database structure creation instructions." -msgstr "Ovo su istrukcije za kreiranje stvarne strukture baze podataka." - -#: models.py:34 views.py:36 -msgid "type" -msgstr "tip" - -#: models.py:35 -msgid "creation date and time" -msgstr "datum i vrijeme kreiranja" - -#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173 -msgid "bootstrap setup" -msgstr "bootstrap setup" - -#: models.py:105 views.py:32 -msgid "bootstrap setups" -msgstr "bootstrap setup-i" - -#: permissions.py:7 -msgid "Database bootstrap" -msgstr "Bootstrap baze podataka" - -#: permissions.py:9 -msgid "View bootstrap setups" -msgstr "Pregledati bootstrap setup-e" - -#: permissions.py:10 -msgid "Create bootstrap setups" -msgstr "Kreirati bootstrap setup-e" - -#: permissions.py:11 -msgid "Edit bootstrap setups" -msgstr "Izmjeniti bootstrap setup-e" - -#: permissions.py:12 -msgid "Delete bootstrap setups" -msgstr "Obrisati bootstrap setup-e" - -#: permissions.py:13 -msgid "Execute bootstrap setups" -msgstr "Izvršiti bootstrap setup-e" - -#: permissions.py:14 -msgid "Dump the current project\\s setup into a bootstrap setup" -msgstr "Prebaciti setup trenutnog/ih projekata u bootstrap setup" - -#: permissions.py:15 -msgid "Export bootstrap setups as files" -msgstr "Eksport bootstrap setup-a kao datoteka" - -#: permissions.py:16 -msgid "Import new bootstrap setups" -msgstr "Import novog bootstrap setup-a" - -#: permissions.py:17 -msgid "Sync the local bootstrap setups with a published repository" -msgstr "Sinhronizirati lokalne bootstrap setup-e sa objavljenim repozitorijem" - -#: permissions.py:18 -msgid "Erase the entire database and document storage" -msgstr "Obrisati čitavu bazu podataka i spremište dokumenata" - -#: registry.py:7 -msgid "Bootstrap" -msgstr "Bootstrap" - -#: registry.py:8 -msgid "Provides pre configured setups for indexes, document types, tags, etc." -msgstr "" -"Obezbjeđuje prekonfigurisane postavke za indekse, dokumente tipove, tagove, " -"itd." - -#: views.py:51 -msgid "Bootstrap setup created successfully" -msgstr "Bootstrap setup uspješno kreiran" - -#: views.py:54 -msgid "Error creating bootstrap setup." -msgstr "Greška kreiranja bootstrap setup-a." - -#: views.py:59 -msgid "create bootstrap" -msgstr "kreirati bootstrap" - -#: views.py:79 -msgid "Bootstrap setup edited successfully" -msgstr "Bootstrap setup uspješno izmjenjen." - -#: views.py:82 -msgid "Error editing bootstrap setup." -msgstr "Greška imjene bootstrap setup-a." - -#: views.py:87 -#, python-format -msgid "edit bootstrap setup: %s" -msgstr "izmjeniti bootstrap setup: %s" - -#: views.py:112 -#, python-format -msgid "Bootstrap setup: %s deleted successfully." -msgstr "Bootstrap setup: %s uspješno obrisan." - -#: views.py:114 -#, python-format -msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s" -msgstr "Bootstrap setup: %(bootstrap)s, greška brisanja: %(error)s" - -#: views.py:125 -#, python-format -msgid "Are you sure you with to delete the bootstrap setup: %s?" -msgstr "Jeste li sigurni da želite izbrisati bootstrap setup: %s?" - -#: views.py:165 -msgid "" -"Cannot execute bootstrap setup, there is existing data. Erase all data and " -"try again." -msgstr "" -"Bootstrap setup se ne može izvršiti, postoje podaci. Izbrisati sve podatke i " -"pokušati ponovo." - -#: views.py:167 -#, python-format -msgid "Error executing bootstrap setup; %s" -msgstr "Greška izvršavanja bootstrap setup-a; %s" - -#: views.py:169 -#, python-format -msgid "Bootstrap setup \"%s\" executed successfully." -msgstr "Bootstrap setup \"%s\" uspješno izvršen." - -#: views.py:181 -#, python-format -msgid "" -"Are you sure you wish to execute the database bootstrap setup named: %s?" -msgstr "" -"Jeste li sigurni da želite izvršiti bootstrap setup baze podataka koji se " -"zove: %s?" - -#: views.py:197 -#, python-format -msgid "Error dumping configuration into a bootstrap setup; %s" -msgstr "Greška prebacivanja configuracije u bootstrap setup; %s" - -#: views.py:201 -msgid "Bootstrap setup created successfully." -msgstr "Bootstrap setup uspješno kreiran." - -#: views.py:207 -msgid "dump current configuration into a bootstrap setup" -msgstr "prebaciti trenutnu konfiguraciju u bootstrap setup" - -#: views.py:241 views.py:269 -msgid "Bootstrap setup imported successfully." -msgstr "Bootstrap setup uspješno importovan." - -#: views.py:244 -msgid "File is not a bootstrap setup." -msgstr "Datoteka nije bootstrap setup." - -#: views.py:246 -#, python-format -msgid "Error importing bootstrap setup from file; %s." -msgstr "Greška importa bootstrap setup-a iz datoteke; %s." - -#: views.py:252 -msgid "Import bootstrap setup from file" -msgstr "Importovati bootstrap setup iz datoteke" - -#: views.py:272 -msgid "Data from URL is not a bootstrap setup." -msgstr "Podaci iz URL nisu bootstrap setup." - -#: views.py:274 -#, python-format -msgid "Error importing bootstrap setup from URL; %s." -msgstr "Greška importovanja bootstrap setup-a sa URL; %s." - -#: views.py:280 -msgid "Import bootstrap setup from URL" -msgstr "Importovati bootstrap setup sa URL" - -#: views.py:299 -#, python-format -msgid "Error erasing database; %s" -msgstr "Greška brisanja baze podataka; %s" - -#: views.py:301 -msgid "Database erased successfully." -msgstr "Baza podataka uspješno obrisana." - -#: views.py:311 -msgid "" -"Are you sure you wish to erase the entire database and document storage?" -msgstr "" -"Jeste li sigurni da želite obrisati čitavu bazu podataka i spremište " -"dokumenata?" - -#: views.py:312 -msgid "" -"All documents, sources, metadata, metadata types, set, tags, indexes and " -"logs will be lost irreversibly!" -msgstr "" -"Svi dokumenti, izvori, metadata, tipovi metadata, setovi, tagovi, indeksi " -"and logovi će biti nepovratno izgubljeni!" - -#: views.py:329 -msgid "Bootstrap repository successfully synchronized." -msgstr "Bootstrap repozitorij uspješno sinhronizovan." - -#: views.py:331 -#, python-format -msgid "Bootstrap repository synchronization error: %(error)s" -msgstr "Greška sinhronizacije bootstrap repozitorija: %(error)s" - -#: views.py:338 -msgid "Are you sure you wish to synchronize with the bootstrap repository?" -msgstr "Jeste li sigurni da želite sinhronizovati sa bootstrap repozitorijem?" diff --git a/mayan/apps/bootstrap/locale/da/LC_MESSAGES/django.po b/mayan/apps/bootstrap/locale/da/LC_MESSAGES/django.po deleted file mode 100644 index e595a0fff3..0000000000 --- a/mayan/apps/bootstrap/locale/da/LC_MESSAGES/django.po +++ /dev/null @@ -1,317 +0,0 @@ -# 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: \n" -"POT-Creation-Date: 2014-07-31 19:55-0400\n" -"PO-Revision-Date: 2012-12-12 06:04+0000\n" -"Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/projects/p/mayan-edms/" -"language/da/)\n" -"Language: da\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: forms.py:49 -msgid "Bootstrap setup file" -msgstr "" - -#: forms.py:55 -msgid "Bootstrap setup URL" -msgstr "" - -#: links.py:11 -msgid "bootstrap" -msgstr "" - -#: links.py:12 -msgid "bootstrap setup list" -msgstr "" - -#: links.py:13 -msgid "create new bootstrap setup" -msgstr "" - -#: links.py:14 -msgid "edit" -msgstr "" - -#: links.py:15 -msgid "delete" -msgstr "" - -#: links.py:16 -msgid "details" -msgstr "" - -#: links.py:17 -msgid "execute" -msgstr "" - -#: links.py:18 -msgid "dump current setup" -msgstr "" - -#: links.py:19 -msgid "export" -msgstr "" - -#: links.py:20 -msgid "import from file" -msgstr "" - -#: links.py:21 -msgid "import from URL" -msgstr "" - -#: links.py:22 -msgid "sync with repository" -msgstr "" - -#: links.py:23 -msgid "erase database" -msgstr "" - -#: literals.py:20 -msgid "JSON" -msgstr "" - -#: literals.py:63 -msgid "YAML" -msgstr "" - -#: literals.py:64 -msgid "Better YAML" -msgstr "" - -#: models.py:30 -msgid "name" -msgstr "" - -#: models.py:31 -msgid "slug" -msgstr "" - -#: models.py:32 views.py:35 -msgid "description" -msgstr "" - -#: models.py:33 -msgid "fixture" -msgstr "" - -#: models.py:33 -msgid "These are the actual database structure creation instructions." -msgstr "" - -#: models.py:34 views.py:36 -msgid "type" -msgstr "" - -#: models.py:35 -msgid "creation date and time" -msgstr "" - -#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173 -msgid "bootstrap setup" -msgstr "" - -#: models.py:105 views.py:32 -msgid "bootstrap setups" -msgstr "" - -#: permissions.py:7 -msgid "Database bootstrap" -msgstr "" - -#: permissions.py:9 -msgid "View bootstrap setups" -msgstr "" - -#: permissions.py:10 -msgid "Create bootstrap setups" -msgstr "" - -#: permissions.py:11 -msgid "Edit bootstrap setups" -msgstr "" - -#: permissions.py:12 -msgid "Delete bootstrap setups" -msgstr "" - -#: permissions.py:13 -msgid "Execute bootstrap setups" -msgstr "" - -#: permissions.py:14 -msgid "Dump the current project\\s setup into a bootstrap setup" -msgstr "" - -#: permissions.py:15 -msgid "Export bootstrap setups as files" -msgstr "" - -#: permissions.py:16 -msgid "Import new bootstrap setups" -msgstr "" - -#: permissions.py:17 -msgid "Sync the local bootstrap setups with a published repository" -msgstr "" - -#: permissions.py:18 -msgid "Erase the entire database and document storage" -msgstr "" - -#: registry.py:7 -msgid "Bootstrap" -msgstr "" - -#: registry.py:8 -msgid "Provides pre configured setups for indexes, document types, tags, etc." -msgstr "" - -#: views.py:51 -msgid "Bootstrap setup created successfully" -msgstr "" - -#: views.py:54 -msgid "Error creating bootstrap setup." -msgstr "" - -#: views.py:59 -msgid "create bootstrap" -msgstr "" - -#: views.py:79 -msgid "Bootstrap setup edited successfully" -msgstr "" - -#: views.py:82 -msgid "Error editing bootstrap setup." -msgstr "" - -#: views.py:87 -#, python-format -msgid "edit bootstrap setup: %s" -msgstr "" - -#: views.py:112 -#, python-format -msgid "Bootstrap setup: %s deleted successfully." -msgstr "" - -#: views.py:114 -#, python-format -msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Are you sure you with to delete the bootstrap setup: %s?" -msgstr "" - -#: views.py:165 -msgid "" -"Cannot execute bootstrap setup, there is existing data. Erase all data and " -"try again." -msgstr "" - -#: views.py:167 -#, python-format -msgid "Error executing bootstrap setup; %s" -msgstr "" - -#: views.py:169 -#, python-format -msgid "Bootstrap setup \"%s\" executed successfully." -msgstr "" - -#: views.py:181 -#, python-format -msgid "" -"Are you sure you wish to execute the database bootstrap setup named: %s?" -msgstr "" - -#: views.py:197 -#, python-format -msgid "Error dumping configuration into a bootstrap setup; %s" -msgstr "" - -#: views.py:201 -msgid "Bootstrap setup created successfully." -msgstr "" - -#: views.py:207 -msgid "dump current configuration into a bootstrap setup" -msgstr "" - -#: views.py:241 views.py:269 -msgid "Bootstrap setup imported successfully." -msgstr "" - -#: views.py:244 -msgid "File is not a bootstrap setup." -msgstr "" - -#: views.py:246 -#, python-format -msgid "Error importing bootstrap setup from file; %s." -msgstr "" - -#: views.py:252 -msgid "Import bootstrap setup from file" -msgstr "" - -#: views.py:272 -msgid "Data from URL is not a bootstrap setup." -msgstr "" - -#: views.py:274 -#, python-format -msgid "Error importing bootstrap setup from URL; %s." -msgstr "" - -#: views.py:280 -msgid "Import bootstrap setup from URL" -msgstr "" - -#: views.py:299 -#, python-format -msgid "Error erasing database; %s" -msgstr "" - -#: views.py:301 -msgid "Database erased successfully." -msgstr "" - -#: views.py:311 -msgid "" -"Are you sure you wish to erase the entire database and document storage?" -msgstr "" - -#: views.py:312 -msgid "" -"All documents, sources, metadata, metadata types, set, tags, indexes and " -"logs will be lost irreversibly!" -msgstr "" - -#: views.py:329 -msgid "Bootstrap repository successfully synchronized." -msgstr "" - -#: views.py:331 -#, python-format -msgid "Bootstrap repository synchronization error: %(error)s" -msgstr "" - -#: views.py:338 -msgid "Are you sure you wish to synchronize with the bootstrap repository?" -msgstr "" diff --git a/mayan/apps/bootstrap/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/bootstrap/locale/de_DE/LC_MESSAGES/django.mo deleted file mode 100644 index 946dd3ce7a..0000000000 Binary files a/mayan/apps/bootstrap/locale/de_DE/LC_MESSAGES/django.mo and /dev/null differ diff --git a/mayan/apps/bootstrap/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/bootstrap/locale/de_DE/LC_MESSAGES/django.po deleted file mode 100644 index 0979691c5d..0000000000 --- a/mayan/apps/bootstrap/locale/de_DE/LC_MESSAGES/django.po +++ /dev/null @@ -1,339 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# -# Translators: -# Mathias Behrle , 2014 -# Tobias Paepke , 2014 -msgid "" -msgstr "" -"Project-Id-Version: Mayan EDMS\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:55-0400\n" -"PO-Revision-Date: 2014-03-12 16:11+0000\n" -"Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/projects/p/mayan-" -"edms/language/de_DE/)\n" -"Language: de_DE\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: forms.py:49 -msgid "Bootstrap setup file" -msgstr "Bootrap-Setup Datei" - -#: forms.py:55 -msgid "Bootstrap setup URL" -msgstr "Boostrap-Setup URL" - -#: links.py:11 -msgid "bootstrap" -msgstr "Bootstrap" - -#: links.py:12 -msgid "bootstrap setup list" -msgstr "Bootstrap-Setup-Liste" - -#: links.py:13 -msgid "create new bootstrap setup" -msgstr "Neues Bootstrap-Setup erstellen" - -#: links.py:14 -msgid "edit" -msgstr "Bearbeiten" - -#: links.py:15 -msgid "delete" -msgstr "Löschen" - -#: links.py:16 -msgid "details" -msgstr "Details" - -#: links.py:17 -msgid "execute" -msgstr "ausführen" - -#: links.py:18 -msgid "dump current setup" -msgstr "Auszug des aktuelles Setups erstellen" - -#: links.py:19 -msgid "export" -msgstr "Export" - -#: links.py:20 -msgid "import from file" -msgstr "Import aus Datei" - -#: links.py:21 -msgid "import from URL" -msgstr "Import von URL" - -#: links.py:22 -msgid "sync with repository" -msgstr "Mit Repository synchronisieren" - -#: links.py:23 -msgid "erase database" -msgstr "Datenbank löschen" - -#: literals.py:20 -msgid "JSON" -msgstr "JSON" - -#: literals.py:63 -msgid "YAML" -msgstr "YAML" - -#: literals.py:64 -msgid "Better YAML" -msgstr "Better YAML" - -#: models.py:30 -msgid "name" -msgstr "Name" - -#: models.py:31 -msgid "slug" -msgstr "slug" - -#: models.py:32 views.py:35 -msgid "description" -msgstr "Beschreibung" - -#: models.py:33 -msgid "fixture" -msgstr "Fixture" - -#: models.py:33 -msgid "These are the actual database structure creation instructions." -msgstr "" -"Dies sind die aktuellen Anweisungen für die Erzeugung der Datenbank-Struktur." - -#: models.py:34 views.py:36 -msgid "type" -msgstr "Typ" - -#: models.py:35 -msgid "creation date and time" -msgstr "Datum und Zeit der Erstellung" - -#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173 -msgid "bootstrap setup" -msgstr "Bootstrap Setup" - -#: models.py:105 views.py:32 -msgid "bootstrap setups" -msgstr "Bootstrap Setups" - -#: permissions.py:7 -msgid "Database bootstrap" -msgstr "Datenbank Bootstrap" - -#: permissions.py:9 -msgid "View bootstrap setups" -msgstr "Bootstrap Setups anzeigen" - -#: permissions.py:10 -msgid "Create bootstrap setups" -msgstr "Bootstrap-Setups erstellen" - -#: permissions.py:11 -msgid "Edit bootstrap setups" -msgstr "Bootstrap Setups bearbeiten" - -#: permissions.py:12 -msgid "Delete bootstrap setups" -msgstr "Bootstrap Setups löschen" - -#: permissions.py:13 -msgid "Execute bootstrap setups" -msgstr "Bootstrap Setups ausführen" - -#: permissions.py:14 -msgid "Dump the current project\\s setup into a bootstrap setup" -msgstr "Auszug des aktuellen Projekt-Setups in ein Bootstrap-Setup erstellen" - -#: permissions.py:15 -msgid "Export bootstrap setups as files" -msgstr "Bootstrap-Setups als Datei exportieren" - -#: permissions.py:16 -msgid "Import new bootstrap setups" -msgstr "Import neuer Bootstrap-Setups" - -#: permissions.py:17 -msgid "Sync the local bootstrap setups with a published repository" -msgstr "" -"Synchronisieren des lokalen Bootstrap-Setups mit einem publizierten " -"Repository" - -#: permissions.py:18 -msgid "Erase the entire database and document storage" -msgstr "Löschen der gesamten Datenbank und des Dokumenten-Speichers" - -#: registry.py:7 -msgid "Bootstrap" -msgstr "Bootstrap" - -#: registry.py:8 -msgid "Provides pre configured setups for indexes, document types, tags, etc." -msgstr "" -"Stellt vorkonfigurierte Setups für Indices, Dokumenten-Typen, Tags, usw. " -"bereit." - -#: views.py:51 -msgid "Bootstrap setup created successfully" -msgstr "Boostrap-Setup erfolgreich erstellt" - -#: views.py:54 -msgid "Error creating bootstrap setup." -msgstr "Fehler beim Erstellen des Bootstrap-Setups." - -#: views.py:59 -msgid "create bootstrap" -msgstr "Erstelle Bootstrap" - -#: views.py:79 -msgid "Bootstrap setup edited successfully" -msgstr "Bootstrap-Setup erfolgreich bearbeitet" - -#: views.py:82 -msgid "Error editing bootstrap setup." -msgstr "Fehler beim Bearbeiten des Bootstrap-Setups." - -#: views.py:87 -#, python-format -msgid "edit bootstrap setup: %s" -msgstr "Bearbeiten des Bootstrap-Setups %s" - -#: views.py:112 -#, python-format -msgid "Bootstrap setup: %s deleted successfully." -msgstr "Boostrap-Setup %s erfolgreich gelöscht." - -#: views.py:114 -#, python-format -msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s" -msgstr "Fehler %(error)s beim Löschen des Bootstrap-Setups %(bootstrap)s" - -#: views.py:125 -#, python-format -msgid "Are you sure you with to delete the bootstrap setup: %s?" -msgstr "" -"Sind Sie sich sicher, das Sie das Bootstrap-Setup \"%s\" wirklich löschen " -"möchten?" - -#: views.py:165 -msgid "" -"Cannot execute bootstrap setup, there is existing data. Erase all data and " -"try again." -msgstr "" -"Kann das Bootstrap-Setup nicht auführen, da es bestehende Daten gibt. Es " -"müssen zuerst alle Daten gelöscht und dann der Vorgang noch einmal versucht " -"werden." - -#: views.py:167 -#, python-format -msgid "Error executing bootstrap setup; %s" -msgstr "Fehler beim Ausführen der Bootstrap-Setup %s" - -#: views.py:169 -#, python-format -msgid "Bootstrap setup \"%s\" executed successfully." -msgstr "Bootstrap-Setup \"%s\" erfolgreich ausgeführt." - -#: views.py:181 -#, python-format -msgid "" -"Are you sure you wish to execute the database bootstrap setup named: %s?" -msgstr "" -"Sind Sie sicher, dass Sie das Datenbank-Bootstrap-Setup \"%s\" ausführen " -"wollen?" - -#: views.py:197 -#, python-format -msgid "Error dumping configuration into a bootstrap setup; %s" -msgstr "" -"Fehler beim Erstellen des Auszugs der Konfiguration in das Bootstrap-Setup %s" - -#: views.py:201 -msgid "Bootstrap setup created successfully." -msgstr "Boostrap-Setup erfolgreich erstellt." - -#: views.py:207 -msgid "dump current configuration into a bootstrap setup" -msgstr "" -"Erstellung eines Auszugs der aktuellen Konfiguration in ein Bootstrap-Setup" - -#: views.py:241 views.py:269 -msgid "Bootstrap setup imported successfully." -msgstr "Boostrap-Setup erfolgreich importiert." - -#: views.py:244 -msgid "File is not a bootstrap setup." -msgstr "Datei ist kein Bootstrap Setup." - -#: views.py:246 -#, python-format -msgid "Error importing bootstrap setup from file; %s." -msgstr "Fehler beim Import des Bootstrap-Setup aus Datei %s." - -#: views.py:252 -msgid "Import bootstrap setup from file" -msgstr "Bootstrap-Setup aus Datei importieren" - -#: views.py:272 -msgid "Data from URL is not a bootstrap setup." -msgstr "Daten von URL sind kein Bootstrap-Setup." - -#: views.py:274 -#, python-format -msgid "Error importing bootstrap setup from URL; %s." -msgstr "Fehler beim Import des Bootstrap-Setup von der URL %s." - -#: views.py:280 -msgid "Import bootstrap setup from URL" -msgstr "Import Bootstrap-Setup von URL" - -#: views.py:299 -#, python-format -msgid "Error erasing database; %s" -msgstr "Fehler beim löschen der Datenbank %s" - -#: views.py:301 -msgid "Database erased successfully." -msgstr "Datenbank erfolgreich gelöscht." - -#: views.py:311 -msgid "" -"Are you sure you wish to erase the entire database and document storage?" -msgstr "" -"Sind Sie sicher, dass die gesamte Datenbank und der Dokumenten-Speicher " -"gelöscht werden sollen?" - -#: views.py:312 -msgid "" -"All documents, sources, metadata, metadata types, set, tags, indexes and " -"logs will be lost irreversibly!" -msgstr "" -"Alle Dokumente, Quellen, Metadaten-Typen, -Sets, Tags, Indices und " -"Protokolle werden unwiderruflich gelöscht!" - -#: views.py:329 -msgid "Bootstrap repository successfully synchronized." -msgstr "Bootstrap Repository erfolgreich synchronisiert." - -#: views.py:331 -#, python-format -msgid "Bootstrap repository synchronization error: %(error)s" -msgstr "Fehler bei der Synchronisation des Bootstrap-Repositories: %(error)s" - -#: views.py:338 -msgid "Are you sure you wish to synchronize with the bootstrap repository?" -msgstr "" -"Sind Sie sich sicher, das Sie mit dem Bootstrap-Repository synchronisieren " -"wollen?" diff --git a/mayan/apps/bootstrap/locale/en/LC_MESSAGES/django.mo b/mayan/apps/bootstrap/locale/en/LC_MESSAGES/django.mo deleted file mode 100644 index 9f25ee5e74..0000000000 Binary files a/mayan/apps/bootstrap/locale/en/LC_MESSAGES/django.mo and /dev/null differ diff --git a/mayan/apps/bootstrap/locale/en/LC_MESSAGES/django.po b/mayan/apps/bootstrap/locale/en/LC_MESSAGES/django.po deleted file mode 100644 index faeb539ef0..0000000000 --- a/mayan/apps/bootstrap/locale/en/LC_MESSAGES/django.po +++ /dev/null @@ -1,323 +0,0 @@ -# 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: \n" -"POT-Creation-Date: 2014-07-31 19:55-0400\n" -"PO-Revision-Date: 2012-12-12 06:04+0000\n" -"Last-Translator: Roberto Rosario\n" -"Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" -"language/en/)\n" -"Language: en\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: forms.py:49 -msgid "Bootstrap setup file" -msgstr "Bootstrap setup file" - -#: forms.py:55 -msgid "Bootstrap setup URL" -msgstr "Bootstrap setup URL" - -#: links.py:11 -msgid "bootstrap" -msgstr "bootstrap" - -#: links.py:12 -msgid "bootstrap setup list" -msgstr "bootstrap setup list" - -#: links.py:13 -msgid "create new bootstrap setup" -msgstr "create new bootstrap setup" - -#: links.py:14 -msgid "edit" -msgstr "edit" - -#: links.py:15 -msgid "delete" -msgstr "delete" - -#: links.py:16 -msgid "details" -msgstr "details" - -#: links.py:17 -msgid "execute" -msgstr "execute" - -#: links.py:18 -msgid "dump current setup" -msgstr "dump current setup" - -#: links.py:19 -msgid "export" -msgstr "export" - -#: links.py:20 -msgid "import from file" -msgstr "import from file" - -#: links.py:21 -msgid "import from URL" -msgstr "import from URL" - -#: links.py:22 -msgid "sync with repository" -msgstr "sync with repository" - -#: links.py:23 -msgid "erase database" -msgstr "erase database" - -#: literals.py:20 -msgid "JSON" -msgstr "JSON" - -#: literals.py:63 -msgid "YAML" -msgstr "YAML" - -#: literals.py:64 -msgid "Better YAML" -msgstr "Better YAML" - -#: models.py:30 -msgid "name" -msgstr "name" - -#: models.py:31 -msgid "slug" -msgstr "slug" - -#: models.py:32 views.py:35 -msgid "description" -msgstr "description" - -#: models.py:33 -msgid "fixture" -msgstr "fixture" - -#: models.py:33 -msgid "These are the actual database structure creation instructions." -msgstr "These are the actual database structure creation instructions." - -#: models.py:34 views.py:36 -msgid "type" -msgstr "type" - -#: models.py:35 -msgid "creation date and time" -msgstr "creation date and time" - -#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173 -msgid "bootstrap setup" -msgstr "bootstrap setup" - -#: models.py:105 views.py:32 -msgid "bootstrap setups" -msgstr "bootstrap setups" - -#: permissions.py:7 -msgid "Database bootstrap" -msgstr "Database bootstrap" - -#: permissions.py:9 -msgid "View bootstrap setups" -msgstr "View bootstrap setups" - -#: permissions.py:10 -msgid "Create bootstrap setups" -msgstr "Create bootstrap setups" - -#: permissions.py:11 -msgid "Edit bootstrap setups" -msgstr "Edit bootstrap setups" - -#: permissions.py:12 -msgid "Delete bootstrap setups" -msgstr "Delete bootstrap setups" - -#: permissions.py:13 -msgid "Execute bootstrap setups" -msgstr "Execute bootstrap setups" - -#: permissions.py:14 -msgid "Dump the current project\\s setup into a bootstrap setup" -msgstr "Dump the current project\\s setup into a bootstrap setup" - -#: permissions.py:15 -msgid "Export bootstrap setups as files" -msgstr "Export bootstrap setups as files" - -#: permissions.py:16 -msgid "Import new bootstrap setups" -msgstr "Import new bootstrap setups" - -#: permissions.py:17 -msgid "Sync the local bootstrap setups with a published repository" -msgstr "Sync the local bootstrap setups with a published repository" - -#: permissions.py:18 -msgid "Erase the entire database and document storage" -msgstr "Erase the entire database and document storage" - -#: registry.py:7 -msgid "Bootstrap" -msgstr "Bootstrap" - -#: registry.py:8 -msgid "Provides pre configured setups for indexes, document types, tags, etc." -msgstr "Provides pre configured setups for indexes, document types, tags, etc." - -#: views.py:51 -msgid "Bootstrap setup created successfully" -msgstr "Bootstrap setup created successfully" - -#: views.py:54 -msgid "Error creating bootstrap setup." -msgstr "Error creating bootstrap setup." - -#: views.py:59 -msgid "create bootstrap" -msgstr "create bootstrap" - -#: views.py:79 -msgid "Bootstrap setup edited successfully" -msgstr "Bootstrap setup edited successfully" - -#: views.py:82 -msgid "Error editing bootstrap setup." -msgstr "Error editing bootstrap setup." - -#: views.py:87 -#, python-format -msgid "edit bootstrap setup: %s" -msgstr "edit bootstrap setup: %s" - -#: views.py:112 -#, python-format -msgid "Bootstrap setup: %s deleted successfully." -msgstr "Bootstrap setup: %s deleted successfully." - -#: views.py:114 -#, python-format -msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s" -msgstr "Bootstrap setup: %(bootstrap)s, delete error: %(error)s" - -#: views.py:125 -#, python-format -msgid "Are you sure you with to delete the bootstrap setup: %s?" -msgstr "Are you sure you with to delete the bootstrap setup: %s?" - -#: views.py:165 -msgid "" -"Cannot execute bootstrap setup, there is existing data. Erase all data and " -"try again." -msgstr "" -"Cannot execute bootstrap setup, there is existing data. Erase all data and " -"try again." - -#: views.py:167 -#, python-format -msgid "Error executing bootstrap setup; %s" -msgstr "Error executing bootstrap setup; %s" - -#: views.py:169 -#, python-format -msgid "Bootstrap setup \"%s\" executed successfully." -msgstr "Bootstrap setup \"%s\" executed successfully." - -#: views.py:181 -#, python-format -msgid "" -"Are you sure you wish to execute the database bootstrap setup named: %s?" -msgstr "" -"Are you sure you wish to execute the database bootstrap setup named: %s?" - -#: views.py:197 -#, python-format -msgid "Error dumping configuration into a bootstrap setup; %s" -msgstr "Error dumping configuration into a bootstrap setup; %s" - -#: views.py:201 -msgid "Bootstrap setup created successfully." -msgstr "Bootstrap setup created successfully." - -#: views.py:207 -msgid "dump current configuration into a bootstrap setup" -msgstr "dump current configuration into a bootstrap setup" - -#: views.py:241 views.py:269 -msgid "Bootstrap setup imported successfully." -msgstr "Bootstrap setup imported successfully." - -#: views.py:244 -msgid "File is not a bootstrap setup." -msgstr "File is not a bootstrap setup." - -#: views.py:246 -#, python-format -msgid "Error importing bootstrap setup from file; %s." -msgstr "Error importing bootstrap setup from file; %s." - -#: views.py:252 -msgid "Import bootstrap setup from file" -msgstr "Import bootstrap setup from file" - -#: views.py:272 -msgid "Data from URL is not a bootstrap setup." -msgstr "Data from URL is not a bootstrap setup." - -#: views.py:274 -#, python-format -msgid "Error importing bootstrap setup from URL; %s." -msgstr "Error importing bootstrap setup from URL; %s." - -#: views.py:280 -msgid "Import bootstrap setup from URL" -msgstr "Import bootstrap setup from URL" - -#: views.py:299 -#, python-format -msgid "Error erasing database; %s" -msgstr "Error erasing database; %s" - -#: views.py:301 -msgid "Database erased successfully." -msgstr "Database erased successfully." - -#: views.py:311 -msgid "" -"Are you sure you wish to erase the entire database and document storage?" -msgstr "" -"Are you sure you wish to erase the entire database and document storage?" - -#: views.py:312 -msgid "" -"All documents, sources, metadata, metadata types, set, tags, indexes and " -"logs will be lost irreversibly!" -msgstr "" -"All documents, sources, metadata, metadata types, set, tags, indexes and " -"logs will be lost irreversibly!" - -#: views.py:329 -msgid "Bootstrap repository successfully synchronized." -msgstr "Bootstrap repository successfully synchronized." - -#: views.py:331 -#, python-format -msgid "Bootstrap repository synchronization error: %(error)s" -msgstr "Bootstrap repository synchronization error: %(error)s" - -#: views.py:338 -msgid "Are you sure you wish to synchronize with the bootstrap repository?" -msgstr "Are you sure you wish to synchronize with the bootstrap repository?" diff --git a/mayan/apps/bootstrap/locale/es/LC_MESSAGES/django.mo b/mayan/apps/bootstrap/locale/es/LC_MESSAGES/django.mo deleted file mode 100644 index c6c25394b5..0000000000 Binary files a/mayan/apps/bootstrap/locale/es/LC_MESSAGES/django.mo and /dev/null differ diff --git a/mayan/apps/bootstrap/locale/es/LC_MESSAGES/django.po b/mayan/apps/bootstrap/locale/es/LC_MESSAGES/django.po deleted file mode 100644 index 8ce4c98404..0000000000 --- a/mayan/apps/bootstrap/locale/es/LC_MESSAGES/django.po +++ /dev/null @@ -1,338 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# -# Translators: -# Roberto Rosario, 2012-2013 -msgid "" -msgstr "" -"Project-Id-Version: Mayan EDMS\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:55-0400\n" -"PO-Revision-Date: 2013-02-10 16:51+0000\n" -"Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/mayan-edms/" -"language/es/)\n" -"Language: es\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: forms.py:49 -msgid "Bootstrap setup file" -msgstr "Archivo de configuración de arranque" - -#: forms.py:55 -msgid "Bootstrap setup URL" -msgstr "URL de configuración de arranque" - -#: links.py:11 -msgid "bootstrap" -msgstr "arranque" - -#: links.py:12 -msgid "bootstrap setup list" -msgstr "list de configuraciones de arranque" - -#: links.py:13 -msgid "create new bootstrap setup" -msgstr "crear nueva configuración de arranque" - -#: links.py:14 -msgid "edit" -msgstr "editar" - -#: links.py:15 -msgid "delete" -msgstr "borrar" - -#: links.py:16 -msgid "details" -msgstr "detalles" - -#: links.py:17 -msgid "execute" -msgstr "ejecutar" - -#: links.py:18 -msgid "dump current setup" -msgstr "grabar la configuración actual" - -#: links.py:19 -msgid "export" -msgstr "exportar" - -#: links.py:20 -msgid "import from file" -msgstr "importar desde el archivo" - -#: links.py:21 -msgid "import from URL" -msgstr "importar desde URL" - -#: links.py:22 -msgid "sync with repository" -msgstr "sincronizar con el repositorio" - -#: links.py:23 -msgid "erase database" -msgstr "borrar la base de datos" - -#: literals.py:20 -msgid "JSON" -msgstr "JSON" - -#: literals.py:63 -msgid "YAML" -msgstr "YAML" - -#: literals.py:64 -msgid "Better YAML" -msgstr "Better YAML" - -#: models.py:30 -msgid "name" -msgstr "nombre" - -#: models.py:31 -msgid "slug" -msgstr "identificador" - -#: models.py:32 views.py:35 -msgid "description" -msgstr "descripción" - -#: models.py:33 -msgid "fixture" -msgstr "código" - -#: models.py:33 -msgid "These are the actual database structure creation instructions." -msgstr "" -"Estas son la instrucciones reales para la creación de las estructuras de la " -"base de datos." - -#: models.py:34 views.py:36 -msgid "type" -msgstr "tipo" - -#: models.py:35 -msgid "creation date and time" -msgstr "fecha y hora de creación" - -#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173 -msgid "bootstrap setup" -msgstr "configuración de arranque" - -#: models.py:105 views.py:32 -msgid "bootstrap setups" -msgstr "configuraciones de arranque" - -#: permissions.py:7 -msgid "Database bootstrap" -msgstr "Arranque de base de datos" - -#: permissions.py:9 -msgid "View bootstrap setups" -msgstr "Ver las configuraciones de arranque" - -#: permissions.py:10 -msgid "Create bootstrap setups" -msgstr "Crear configuraciones de arranque" - -#: permissions.py:11 -msgid "Edit bootstrap setups" -msgstr "Editar las configuraciones de arranque" - -#: permissions.py:12 -msgid "Delete bootstrap setups" -msgstr "Eliminar las configuraciones de arranque" - -#: permissions.py:13 -msgid "Execute bootstrap setups" -msgstr "Ejecutar configuraciones de arranque" - -#: permissions.py:14 -msgid "Dump the current project\\s setup into a bootstrap setup" -msgstr "" -"Grabar la configuración actual del projecto en una configuración de arranque" - -#: permissions.py:15 -msgid "Export bootstrap setups as files" -msgstr "Exportar configuraciones de arranque como archivos" - -#: permissions.py:16 -msgid "Import new bootstrap setups" -msgstr "Importar de nuevas configuraciones de arranque" - -#: permissions.py:17 -msgid "Sync the local bootstrap setups with a published repository" -msgstr "" -"Sincronizar las configuraciones de arranque locales con un repositorio " -"publicado" - -#: permissions.py:18 -msgid "Erase the entire database and document storage" -msgstr "Borrar toda la base de datos y almacenamiento de documentos" - -#: registry.py:7 -msgid "Bootstrap" -msgstr "Arranque" - -#: registry.py:8 -msgid "Provides pre configured setups for indexes, document types, tags, etc." -msgstr "" -"Proporciona configuraciones pre ajustadas para los índices, tipos de " -"documentos, etiquetas, etc" - -#: views.py:51 -msgid "Bootstrap setup created successfully" -msgstr "Configuración de arranque creada exitosamente." - -#: views.py:54 -msgid "Error creating bootstrap setup." -msgstr "Error al crear la configuración de arranque." - -#: views.py:59 -msgid "create bootstrap" -msgstr "crear configuración de arranque" - -#: views.py:79 -msgid "Bootstrap setup edited successfully" -msgstr "Configuración de arranque editada exitosamente." - -#: views.py:82 -msgid "Error editing bootstrap setup." -msgstr "Error editando la configuración de arranque." - -#: views.py:87 -#, python-format -msgid "edit bootstrap setup: %s" -msgstr "editar configuración de arranque: %s" - -#: views.py:112 -#, python-format -msgid "Bootstrap setup: %s deleted successfully." -msgstr "Configuración de arranque :%s eliminada exitosamente." - -#: views.py:114 -#, python-format -msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s" -msgstr "Error borrando configuración de arranque: %(bootstrap)s; %(error)s " - -#: views.py:125 -#, python-format -msgid "Are you sure you with to delete the bootstrap setup: %s?" -msgstr "¿Seguro que desea borrar la configuración de arranque: %s?" - -#: views.py:165 -msgid "" -"Cannot execute bootstrap setup, there is existing data. Erase all data and " -"try again." -msgstr "" -"No se puede ejecutar la configuración de arranque, existen datos. Borre la " -"base de datos y vuelva a intentarlo." - -#: views.py:167 -#, python-format -msgid "Error executing bootstrap setup; %s" -msgstr "Error al ejecutar la configuración de arranque; %s" - -#: views.py:169 -#, python-format -msgid "Bootstrap setup \"%s\" executed successfully." -msgstr "Configuración de arranque \"%s\" ejecutada exitosamente." - -#: views.py:181 -#, python-format -msgid "" -"Are you sure you wish to execute the database bootstrap setup named: %s?" -msgstr "" -"¿Seguro de que desea ejecutar la configuración de arranque de base de datos " -"llamada: %s?" - -#: views.py:197 -#, python-format -msgid "Error dumping configuration into a bootstrap setup; %s" -msgstr "" -"Error vertiendo configuración actual en una configuración de arranque; %s" - -#: views.py:201 -msgid "Bootstrap setup created successfully." -msgstr "Configuración de arranque creada con exitosamente." - -#: views.py:207 -msgid "dump current configuration into a bootstrap setup" -msgstr "vertir la configuración actual en una configuración de arranque" - -#: views.py:241 views.py:269 -msgid "Bootstrap setup imported successfully." -msgstr "Configuración de arranque importada con exitosamente." - -#: views.py:244 -msgid "File is not a bootstrap setup." -msgstr "El archivo no es una configuración de arranque." - -#: views.py:246 -#, python-format -msgid "Error importing bootstrap setup from file; %s." -msgstr "Error al importar la configuración de arranque desde el archivo; %s." - -#: views.py:252 -msgid "Import bootstrap setup from file" -msgstr "Importar configuración de arranque desde un archivo" - -#: views.py:272 -msgid "Data from URL is not a bootstrap setup." -msgstr "Los datos desde el URL no son una configuración de arranque." - -#: views.py:274 -#, python-format -msgid "Error importing bootstrap setup from URL; %s." -msgstr "Error al importar la configuración de arranque desde la URL; %s." - -#: views.py:280 -msgid "Import bootstrap setup from URL" -msgstr "Importar configuración de arranque desde la URL" - -#: views.py:299 -#, python-format -msgid "Error erasing database; %s" -msgstr "Error borrando la base de datos; %s" - -#: views.py:301 -msgid "Database erased successfully." -msgstr "Base de datos borrada exitosamente." - -#: views.py:311 -msgid "" -"Are you sure you wish to erase the entire database and document storage?" -msgstr "" -"¿Está seguro que desea borrar de la base de datos completamente y el " -"almacenamiento de documentos?" - -#: views.py:312 -msgid "" -"All documents, sources, metadata, metadata types, set, tags, indexes and " -"logs will be lost irreversibly!" -msgstr "" -"¡Todos los documentos, las fuentes, los metadatos, los tipos de metadatos, " -"los conjuntos de metadatos, las etiquetas, los índices y vitacoras se " -"perderán irreversiblemente!" - -#: views.py:329 -msgid "Bootstrap repository successfully synchronized." -msgstr "Repositorio de configuración de arranque sincronizado exitosamente." - -#: views.py:331 -#, python-format -msgid "Bootstrap repository synchronization error: %(error)s" -msgstr "" -"Error sincronizando repositorio de configuraciónes de arranque: %(error)s" - -#: views.py:338 -msgid "Are you sure you wish to synchronize with the bootstrap repository?" -msgstr "" -"¿Está seguro que desea sincronizar con el repositorio de configuraciónes de " -"arranque?" diff --git a/mayan/apps/bootstrap/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/bootstrap/locale/fa/LC_MESSAGES/django.mo deleted file mode 100644 index b29d188e84..0000000000 Binary files a/mayan/apps/bootstrap/locale/fa/LC_MESSAGES/django.mo and /dev/null differ diff --git a/mayan/apps/bootstrap/locale/fa/LC_MESSAGES/django.po b/mayan/apps/bootstrap/locale/fa/LC_MESSAGES/django.po deleted file mode 100644 index d0a03c50ad..0000000000 --- a/mayan/apps/bootstrap/locale/fa/LC_MESSAGES/django.po +++ /dev/null @@ -1,318 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# -# Translators: -# Mohammad Dashtizadeh , 2013 -msgid "" -msgstr "" -"Project-Id-Version: Mayan EDMS\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:55-0400\n" -"PO-Revision-Date: 2013-07-05 11:00+0000\n" -"Last-Translator: Mohammad Dashtizadeh \n" -"Language-Team: Persian (http://www.transifex.com/projects/p/mayan-edms/" -"language/fa/)\n" -"Language: fa\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#: forms.py:49 -msgid "Bootstrap setup file" -msgstr "" - -#: forms.py:55 -msgid "Bootstrap setup URL" -msgstr "" - -#: links.py:11 -msgid "bootstrap" -msgstr "" - -#: links.py:12 -msgid "bootstrap setup list" -msgstr "" - -#: links.py:13 -msgid "create new bootstrap setup" -msgstr "" - -#: links.py:14 -msgid "edit" -msgstr "ویرایش" - -#: links.py:15 -msgid "delete" -msgstr "حذف" - -#: links.py:16 -msgid "details" -msgstr "جزوئیات" - -#: links.py:17 -msgid "execute" -msgstr "" - -#: links.py:18 -msgid "dump current setup" -msgstr "" - -#: links.py:19 -msgid "export" -msgstr "" - -#: links.py:20 -msgid "import from file" -msgstr "" - -#: links.py:21 -msgid "import from URL" -msgstr "" - -#: links.py:22 -msgid "sync with repository" -msgstr "" - -#: links.py:23 -msgid "erase database" -msgstr "" - -#: literals.py:20 -msgid "JSON" -msgstr "" - -#: literals.py:63 -msgid "YAML" -msgstr "" - -#: literals.py:64 -msgid "Better YAML" -msgstr "" - -#: models.py:30 -msgid "name" -msgstr "نام" - -#: models.py:31 -msgid "slug" -msgstr "" - -#: models.py:32 views.py:35 -msgid "description" -msgstr "توضیحات" - -#: models.py:33 -msgid "fixture" -msgstr "" - -#: models.py:33 -msgid "These are the actual database structure creation instructions." -msgstr "" - -#: models.py:34 views.py:36 -msgid "type" -msgstr "نوع" - -#: models.py:35 -msgid "creation date and time" -msgstr "" - -#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173 -msgid "bootstrap setup" -msgstr "" - -#: models.py:105 views.py:32 -msgid "bootstrap setups" -msgstr "" - -#: permissions.py:7 -msgid "Database bootstrap" -msgstr "" - -#: permissions.py:9 -msgid "View bootstrap setups" -msgstr "" - -#: permissions.py:10 -msgid "Create bootstrap setups" -msgstr "" - -#: permissions.py:11 -msgid "Edit bootstrap setups" -msgstr "" - -#: permissions.py:12 -msgid "Delete bootstrap setups" -msgstr "" - -#: permissions.py:13 -msgid "Execute bootstrap setups" -msgstr "" - -#: permissions.py:14 -msgid "Dump the current project\\s setup into a bootstrap setup" -msgstr "" - -#: permissions.py:15 -msgid "Export bootstrap setups as files" -msgstr "" - -#: permissions.py:16 -msgid "Import new bootstrap setups" -msgstr "" - -#: permissions.py:17 -msgid "Sync the local bootstrap setups with a published repository" -msgstr "" - -#: permissions.py:18 -msgid "Erase the entire database and document storage" -msgstr "" - -#: registry.py:7 -msgid "Bootstrap" -msgstr "" - -#: registry.py:8 -msgid "Provides pre configured setups for indexes, document types, tags, etc." -msgstr "" - -#: views.py:51 -msgid "Bootstrap setup created successfully" -msgstr "" - -#: views.py:54 -msgid "Error creating bootstrap setup." -msgstr "" - -#: views.py:59 -msgid "create bootstrap" -msgstr "" - -#: views.py:79 -msgid "Bootstrap setup edited successfully" -msgstr "" - -#: views.py:82 -msgid "Error editing bootstrap setup." -msgstr "" - -#: views.py:87 -#, python-format -msgid "edit bootstrap setup: %s" -msgstr "" - -#: views.py:112 -#, python-format -msgid "Bootstrap setup: %s deleted successfully." -msgstr "" - -#: views.py:114 -#, python-format -msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Are you sure you with to delete the bootstrap setup: %s?" -msgstr "" - -#: views.py:165 -msgid "" -"Cannot execute bootstrap setup, there is existing data. Erase all data and " -"try again." -msgstr "" - -#: views.py:167 -#, python-format -msgid "Error executing bootstrap setup; %s" -msgstr "" - -#: views.py:169 -#, python-format -msgid "Bootstrap setup \"%s\" executed successfully." -msgstr "" - -#: views.py:181 -#, python-format -msgid "" -"Are you sure you wish to execute the database bootstrap setup named: %s?" -msgstr "" - -#: views.py:197 -#, python-format -msgid "Error dumping configuration into a bootstrap setup; %s" -msgstr "" - -#: views.py:201 -msgid "Bootstrap setup created successfully." -msgstr "" - -#: views.py:207 -msgid "dump current configuration into a bootstrap setup" -msgstr "" - -#: views.py:241 views.py:269 -msgid "Bootstrap setup imported successfully." -msgstr "" - -#: views.py:244 -msgid "File is not a bootstrap setup." -msgstr "" - -#: views.py:246 -#, python-format -msgid "Error importing bootstrap setup from file; %s." -msgstr "" - -#: views.py:252 -msgid "Import bootstrap setup from file" -msgstr "" - -#: views.py:272 -msgid "Data from URL is not a bootstrap setup." -msgstr "" - -#: views.py:274 -#, python-format -msgid "Error importing bootstrap setup from URL; %s." -msgstr "" - -#: views.py:280 -msgid "Import bootstrap setup from URL" -msgstr "" - -#: views.py:299 -#, python-format -msgid "Error erasing database; %s" -msgstr "" - -#: views.py:301 -msgid "Database erased successfully." -msgstr "" - -#: views.py:311 -msgid "" -"Are you sure you wish to erase the entire database and document storage?" -msgstr "" - -#: views.py:312 -msgid "" -"All documents, sources, metadata, metadata types, set, tags, indexes and " -"logs will be lost irreversibly!" -msgstr "" - -#: views.py:329 -msgid "Bootstrap repository successfully synchronized." -msgstr "" - -#: views.py:331 -#, python-format -msgid "Bootstrap repository synchronization error: %(error)s" -msgstr "" - -#: views.py:338 -msgid "Are you sure you wish to synchronize with the bootstrap repository?" -msgstr "" diff --git a/mayan/apps/bootstrap/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/bootstrap/locale/fr/LC_MESSAGES/django.mo deleted file mode 100644 index 6defb5e87c..0000000000 Binary files a/mayan/apps/bootstrap/locale/fr/LC_MESSAGES/django.mo and /dev/null differ diff --git a/mayan/apps/bootstrap/locale/fr/LC_MESSAGES/django.po b/mayan/apps/bootstrap/locale/fr/LC_MESSAGES/django.po deleted file mode 100644 index 6011052862..0000000000 --- a/mayan/apps/bootstrap/locale/fr/LC_MESSAGES/django.po +++ /dev/null @@ -1,332 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# -# Translators: -# PatrickHetu , 2012 -# Pierre Lhoste , 2012 -# SadE54 , 2013 -msgid "" -msgstr "" -"Project-Id-Version: Mayan EDMS\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:55-0400\n" -"PO-Revision-Date: 2013-02-04 13:37+0000\n" -"Last-Translator: SadE54 \n" -"Language-Team: French (http://www.transifex.com/projects/p/mayan-edms/" -"language/fr/)\n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#: forms.py:49 -msgid "Bootstrap setup file" -msgstr "Fichier de pré-configuration" - -#: forms.py:55 -msgid "Bootstrap setup URL" -msgstr "URL de la pré-configuration" - -#: links.py:11 -msgid "bootstrap" -msgstr "Pré-configuration" - -#: links.py:12 -msgid "bootstrap setup list" -msgstr "Liste des pré-configurations" - -#: links.py:13 -msgid "create new bootstrap setup" -msgstr "Créer une nouvelle pré-configuration" - -#: links.py:14 -msgid "edit" -msgstr "éditer" - -#: links.py:15 -msgid "delete" -msgstr "effacer" - -#: links.py:16 -msgid "details" -msgstr "détails" - -#: links.py:17 -msgid "execute" -msgstr "exécuter" - -#: links.py:18 -msgid "dump current setup" -msgstr "injecter la configuration actuelle" - -#: links.py:19 -msgid "export" -msgstr "exporter" - -#: links.py:20 -msgid "import from file" -msgstr "importer depuis le fichier" - -#: links.py:21 -msgid "import from URL" -msgstr "importer depuis l'URL" - -#: links.py:22 -msgid "sync with repository" -msgstr "synchroniser avec le dépôt" - -#: links.py:23 -msgid "erase database" -msgstr "Supprimer la base de données" - -#: literals.py:20 -msgid "JSON" -msgstr "JSON" - -#: literals.py:63 -msgid "YAML" -msgstr "YAML" - -#: literals.py:64 -msgid "Better YAML" -msgstr "Better YAML" - -#: models.py:30 -msgid "name" -msgstr "nom" - -#: models.py:31 -msgid "slug" -msgstr "slug" - -#: models.py:32 views.py:35 -msgid "description" -msgstr "description" - -#: models.py:33 -msgid "fixture" -msgstr "fixation" - -#: models.py:33 -msgid "These are the actual database structure creation instructions." -msgstr "Ce sont les instructions pour la création de la base de données." - -#: models.py:34 views.py:36 -msgid "type" -msgstr "type" - -#: models.py:35 -msgid "creation date and time" -msgstr "date et heure de création" - -#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173 -msgid "bootstrap setup" -msgstr "pré-configuration" - -#: models.py:105 views.py:32 -msgid "bootstrap setups" -msgstr "Pré-configurations" - -#: permissions.py:7 -msgid "Database bootstrap" -msgstr "Pré-configuration de base de données" - -#: permissions.py:9 -msgid "View bootstrap setups" -msgstr "Afficher les pré-configurations" - -#: permissions.py:10 -msgid "Create bootstrap setups" -msgstr "Créer de nouvelles pré-configurations" - -#: permissions.py:11 -msgid "Edit bootstrap setups" -msgstr "Modifier des pré-configurations" - -#: permissions.py:12 -msgid "Delete bootstrap setups" -msgstr "Supprimer des pré-configurations" - -#: permissions.py:13 -msgid "Execute bootstrap setups" -msgstr "Exécuter des pré-configurations" - -#: permissions.py:14 -msgid "Dump the current project\\s setup into a bootstrap setup" -msgstr "Insérer la configuration actuelle dans une pré-configuration" - -#: permissions.py:15 -msgid "Export bootstrap setups as files" -msgstr "Exporter les pré-configurations sous forme de fichier" - -#: permissions.py:16 -msgid "Import new bootstrap setups" -msgstr "Importer de nouvelles pré-configurations" - -#: permissions.py:17 -msgid "Sync the local bootstrap setups with a published repository" -msgstr "" -"Synchroniser localement les pré-configurations depuis un dépôt en ligne" - -#: permissions.py:18 -msgid "Erase the entire database and document storage" -msgstr "Effacer l'ensemble de la base de donnée et tous les documents stockés" - -#: registry.py:7 -msgid "Bootstrap" -msgstr "Pré-configuration" - -#: registry.py:8 -msgid "Provides pre configured setups for indexes, document types, tags, etc." -msgstr "" -"Permet une pré-configurations des index, types de documents, étiquettes, " -"etc..." - -#: views.py:51 -msgid "Bootstrap setup created successfully" -msgstr "Pré-configuration crée avec succès" - -#: views.py:54 -msgid "Error creating bootstrap setup." -msgstr "Erreur en créant la pré-configuration." - -#: views.py:59 -msgid "create bootstrap" -msgstr "Créer une pré-configuration" - -#: views.py:79 -msgid "Bootstrap setup edited successfully" -msgstr "Pré-configuration modifiée avec succès" - -#: views.py:82 -msgid "Error editing bootstrap setup." -msgstr "erreur en modifiant la pré-configuration." - -#: views.py:87 -#, python-format -msgid "edit bootstrap setup: %s" -msgstr "modifier la pré-configuration: %s" - -#: views.py:112 -#, python-format -msgid "Bootstrap setup: %s deleted successfully." -msgstr "La pré-configuration: %s a été effacée avec succès." - -#: views.py:114 -#, python-format -msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s" -msgstr "Pré-configuration: %(bootstrap)s, erreur de suppression: %(error)s" - -#: views.py:125 -#, python-format -msgid "Are you sure you with to delete the bootstrap setup: %s?" -msgstr "Êtes-vous sûrs de vouloir effacer la pré-configuration: %s?" - -#: views.py:165 -msgid "" -"Cannot execute bootstrap setup, there is existing data. Erase all data and " -"try again." -msgstr "" -"Impossible d'exécuter la pré-configuration car des données existent. Effacez-" -"les et recommencez." - -#: views.py:167 -#, python-format -msgid "Error executing bootstrap setup; %s" -msgstr "Erreur lors de l'exécution de la pré-configuration; %s" - -#: views.py:169 -#, python-format -msgid "Bootstrap setup \"%s\" executed successfully." -msgstr "Pré-configuration \"%s\" effectuée avec succès." - -#: views.py:181 -#, python-format -msgid "" -"Are you sure you wish to execute the database bootstrap setup named: %s?" -msgstr "Êtes-vous sûr de vouloir exécuter la pré-configuration intitulée: %s?" - -#: views.py:197 -#, python-format -msgid "Error dumping configuration into a bootstrap setup; %s" -msgstr "" -"Erreur en insérant la configuration actuelle dans la pré-configuration: %s" - -#: views.py:201 -msgid "Bootstrap setup created successfully." -msgstr "Pré-configuration crée avec succès." - -#: views.py:207 -msgid "dump current configuration into a bootstrap setup" -msgstr "insérer la configuration actuelle dans une pré-configuration" - -#: views.py:241 views.py:269 -msgid "Bootstrap setup imported successfully." -msgstr "Pré-configuration importée avec succès." - -#: views.py:244 -msgid "File is not a bootstrap setup." -msgstr "Ce fichier n'est pas un fichier de pré-configuration." - -#: views.py:246 -#, python-format -msgid "Error importing bootstrap setup from file; %s." -msgstr "Erreur en important la pré-configuration depuis le fichier: %s." - -#: views.py:252 -msgid "Import bootstrap setup from file" -msgstr "Importer la pré-configuration depuis le fichier." - -#: views.py:272 -msgid "Data from URL is not a bootstrap setup." -msgstr "Les données provenant de l'URL ne sont pas une pré-configuration." - -#: views.py:274 -#, python-format -msgid "Error importing bootstrap setup from URL; %s." -msgstr "Erreur en important la pré-configuration depuis l'URL: %s." - -#: views.py:280 -msgid "Import bootstrap setup from URL" -msgstr "Importer une pré-configuration depuis une URL" - -#: views.py:299 -#, python-format -msgid "Error erasing database; %s" -msgstr "Erreur lors de l'effacement de la base de données; %s" - -#: views.py:301 -msgid "Database erased successfully." -msgstr "Base de Données effacée avec succès." - -#: views.py:311 -msgid "" -"Are you sure you wish to erase the entire database and document storage?" -msgstr "" -"Êtes vous certain de vouloir effacer l'intégralité de la base de données et " -"des documents stockés?" - -#: views.py:312 -msgid "" -"All documents, sources, metadata, metadata types, set, tags, indexes and " -"logs will be lost irreversibly!" -msgstr "" -"Tous les documents, sources, métadonnées, types de métadonnées, jeux, " -"étiquettes, indexes et logs seron définitivement perdus!" - -#: views.py:329 -msgid "Bootstrap repository successfully synchronized." -msgstr "Dépôt de pré-configurations correctement synchronisé." - -#: views.py:331 -#, python-format -msgid "Bootstrap repository synchronization error: %(error)s" -msgstr "Erreur de synchronisation du dépôt de pré-configurations: %(error)s" - -#: views.py:338 -msgid "Are you sure you wish to synchronize with the bootstrap repository?" -msgstr "" -"Êtes-vous sûr de vouloir effectuer la synchronisation avec le dépôt de pré-" -"configurations ?" diff --git a/mayan/apps/bootstrap/locale/hr_HR/LC_MESSAGES/django.po b/mayan/apps/bootstrap/locale/hr_HR/LC_MESSAGES/django.po deleted file mode 100644 index c21b4ba2eb..0000000000 --- a/mayan/apps/bootstrap/locale/hr_HR/LC_MESSAGES/django.po +++ /dev/null @@ -1,318 +0,0 @@ -# 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: \n" -"POT-Creation-Date: 2014-07-31 19:55-0400\n" -"PO-Revision-Date: 2012-12-12 06:04+0000\n" -"Last-Translator: Roberto Rosario\n" -"Language-Team: Croatian (Croatia) (http://www.transifex.com/projects/p/mayan-" -"edms/language/hr_HR/)\n" -"Language: hr_HR\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\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" - -#: forms.py:49 -msgid "Bootstrap setup file" -msgstr "" - -#: forms.py:55 -msgid "Bootstrap setup URL" -msgstr "" - -#: links.py:11 -msgid "bootstrap" -msgstr "" - -#: links.py:12 -msgid "bootstrap setup list" -msgstr "" - -#: links.py:13 -msgid "create new bootstrap setup" -msgstr "" - -#: links.py:14 -msgid "edit" -msgstr "" - -#: links.py:15 -msgid "delete" -msgstr "" - -#: links.py:16 -msgid "details" -msgstr "" - -#: links.py:17 -msgid "execute" -msgstr "" - -#: links.py:18 -msgid "dump current setup" -msgstr "" - -#: links.py:19 -msgid "export" -msgstr "" - -#: links.py:20 -msgid "import from file" -msgstr "" - -#: links.py:21 -msgid "import from URL" -msgstr "" - -#: links.py:22 -msgid "sync with repository" -msgstr "" - -#: links.py:23 -msgid "erase database" -msgstr "" - -#: literals.py:20 -msgid "JSON" -msgstr "" - -#: literals.py:63 -msgid "YAML" -msgstr "" - -#: literals.py:64 -msgid "Better YAML" -msgstr "" - -#: models.py:30 -msgid "name" -msgstr "" - -#: models.py:31 -msgid "slug" -msgstr "" - -#: models.py:32 views.py:35 -msgid "description" -msgstr "" - -#: models.py:33 -msgid "fixture" -msgstr "" - -#: models.py:33 -msgid "These are the actual database structure creation instructions." -msgstr "" - -#: models.py:34 views.py:36 -msgid "type" -msgstr "" - -#: models.py:35 -msgid "creation date and time" -msgstr "" - -#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173 -msgid "bootstrap setup" -msgstr "" - -#: models.py:105 views.py:32 -msgid "bootstrap setups" -msgstr "" - -#: permissions.py:7 -msgid "Database bootstrap" -msgstr "" - -#: permissions.py:9 -msgid "View bootstrap setups" -msgstr "" - -#: permissions.py:10 -msgid "Create bootstrap setups" -msgstr "" - -#: permissions.py:11 -msgid "Edit bootstrap setups" -msgstr "" - -#: permissions.py:12 -msgid "Delete bootstrap setups" -msgstr "" - -#: permissions.py:13 -msgid "Execute bootstrap setups" -msgstr "" - -#: permissions.py:14 -msgid "Dump the current project\\s setup into a bootstrap setup" -msgstr "" - -#: permissions.py:15 -msgid "Export bootstrap setups as files" -msgstr "" - -#: permissions.py:16 -msgid "Import new bootstrap setups" -msgstr "" - -#: permissions.py:17 -msgid "Sync the local bootstrap setups with a published repository" -msgstr "" - -#: permissions.py:18 -msgid "Erase the entire database and document storage" -msgstr "" - -#: registry.py:7 -msgid "Bootstrap" -msgstr "" - -#: registry.py:8 -msgid "Provides pre configured setups for indexes, document types, tags, etc." -msgstr "" - -#: views.py:51 -msgid "Bootstrap setup created successfully" -msgstr "" - -#: views.py:54 -msgid "Error creating bootstrap setup." -msgstr "" - -#: views.py:59 -msgid "create bootstrap" -msgstr "" - -#: views.py:79 -msgid "Bootstrap setup edited successfully" -msgstr "" - -#: views.py:82 -msgid "Error editing bootstrap setup." -msgstr "" - -#: views.py:87 -#, python-format -msgid "edit bootstrap setup: %s" -msgstr "" - -#: views.py:112 -#, python-format -msgid "Bootstrap setup: %s deleted successfully." -msgstr "" - -#: views.py:114 -#, python-format -msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Are you sure you with to delete the bootstrap setup: %s?" -msgstr "" - -#: views.py:165 -msgid "" -"Cannot execute bootstrap setup, there is existing data. Erase all data and " -"try again." -msgstr "" - -#: views.py:167 -#, python-format -msgid "Error executing bootstrap setup; %s" -msgstr "" - -#: views.py:169 -#, python-format -msgid "Bootstrap setup \"%s\" executed successfully." -msgstr "" - -#: views.py:181 -#, python-format -msgid "" -"Are you sure you wish to execute the database bootstrap setup named: %s?" -msgstr "" - -#: views.py:197 -#, python-format -msgid "Error dumping configuration into a bootstrap setup; %s" -msgstr "" - -#: views.py:201 -msgid "Bootstrap setup created successfully." -msgstr "" - -#: views.py:207 -msgid "dump current configuration into a bootstrap setup" -msgstr "" - -#: views.py:241 views.py:269 -msgid "Bootstrap setup imported successfully." -msgstr "" - -#: views.py:244 -msgid "File is not a bootstrap setup." -msgstr "" - -#: views.py:246 -#, python-format -msgid "Error importing bootstrap setup from file; %s." -msgstr "" - -#: views.py:252 -msgid "Import bootstrap setup from file" -msgstr "" - -#: views.py:272 -msgid "Data from URL is not a bootstrap setup." -msgstr "" - -#: views.py:274 -#, python-format -msgid "Error importing bootstrap setup from URL; %s." -msgstr "" - -#: views.py:280 -msgid "Import bootstrap setup from URL" -msgstr "" - -#: views.py:299 -#, python-format -msgid "Error erasing database; %s" -msgstr "" - -#: views.py:301 -msgid "Database erased successfully." -msgstr "" - -#: views.py:311 -msgid "" -"Are you sure you wish to erase the entire database and document storage?" -msgstr "" - -#: views.py:312 -msgid "" -"All documents, sources, metadata, metadata types, set, tags, indexes and " -"logs will be lost irreversibly!" -msgstr "" - -#: views.py:329 -msgid "Bootstrap repository successfully synchronized." -msgstr "" - -#: views.py:331 -#, python-format -msgid "Bootstrap repository synchronization error: %(error)s" -msgstr "" - -#: views.py:338 -msgid "Are you sure you wish to synchronize with the bootstrap repository?" -msgstr "" diff --git a/mayan/apps/bootstrap/locale/hu/LC_MESSAGES/django.po b/mayan/apps/bootstrap/locale/hu/LC_MESSAGES/django.po deleted file mode 100644 index d2f4c5c0c1..0000000000 --- a/mayan/apps/bootstrap/locale/hu/LC_MESSAGES/django.po +++ /dev/null @@ -1,317 +0,0 @@ -# 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: \n" -"POT-Creation-Date: 2014-07-31 19:55-0400\n" -"PO-Revision-Date: 2012-12-12 06:04+0000\n" -"Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/projects/p/mayan-edms/" -"language/hu/)\n" -"Language: hu\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: forms.py:49 -msgid "Bootstrap setup file" -msgstr "" - -#: forms.py:55 -msgid "Bootstrap setup URL" -msgstr "" - -#: links.py:11 -msgid "bootstrap" -msgstr "" - -#: links.py:12 -msgid "bootstrap setup list" -msgstr "" - -#: links.py:13 -msgid "create new bootstrap setup" -msgstr "" - -#: links.py:14 -msgid "edit" -msgstr "" - -#: links.py:15 -msgid "delete" -msgstr "" - -#: links.py:16 -msgid "details" -msgstr "" - -#: links.py:17 -msgid "execute" -msgstr "" - -#: links.py:18 -msgid "dump current setup" -msgstr "" - -#: links.py:19 -msgid "export" -msgstr "" - -#: links.py:20 -msgid "import from file" -msgstr "" - -#: links.py:21 -msgid "import from URL" -msgstr "" - -#: links.py:22 -msgid "sync with repository" -msgstr "" - -#: links.py:23 -msgid "erase database" -msgstr "" - -#: literals.py:20 -msgid "JSON" -msgstr "" - -#: literals.py:63 -msgid "YAML" -msgstr "" - -#: literals.py:64 -msgid "Better YAML" -msgstr "" - -#: models.py:30 -msgid "name" -msgstr "" - -#: models.py:31 -msgid "slug" -msgstr "" - -#: models.py:32 views.py:35 -msgid "description" -msgstr "" - -#: models.py:33 -msgid "fixture" -msgstr "" - -#: models.py:33 -msgid "These are the actual database structure creation instructions." -msgstr "" - -#: models.py:34 views.py:36 -msgid "type" -msgstr "" - -#: models.py:35 -msgid "creation date and time" -msgstr "" - -#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173 -msgid "bootstrap setup" -msgstr "" - -#: models.py:105 views.py:32 -msgid "bootstrap setups" -msgstr "" - -#: permissions.py:7 -msgid "Database bootstrap" -msgstr "" - -#: permissions.py:9 -msgid "View bootstrap setups" -msgstr "" - -#: permissions.py:10 -msgid "Create bootstrap setups" -msgstr "" - -#: permissions.py:11 -msgid "Edit bootstrap setups" -msgstr "" - -#: permissions.py:12 -msgid "Delete bootstrap setups" -msgstr "" - -#: permissions.py:13 -msgid "Execute bootstrap setups" -msgstr "" - -#: permissions.py:14 -msgid "Dump the current project\\s setup into a bootstrap setup" -msgstr "" - -#: permissions.py:15 -msgid "Export bootstrap setups as files" -msgstr "" - -#: permissions.py:16 -msgid "Import new bootstrap setups" -msgstr "" - -#: permissions.py:17 -msgid "Sync the local bootstrap setups with a published repository" -msgstr "" - -#: permissions.py:18 -msgid "Erase the entire database and document storage" -msgstr "" - -#: registry.py:7 -msgid "Bootstrap" -msgstr "" - -#: registry.py:8 -msgid "Provides pre configured setups for indexes, document types, tags, etc." -msgstr "" - -#: views.py:51 -msgid "Bootstrap setup created successfully" -msgstr "" - -#: views.py:54 -msgid "Error creating bootstrap setup." -msgstr "" - -#: views.py:59 -msgid "create bootstrap" -msgstr "" - -#: views.py:79 -msgid "Bootstrap setup edited successfully" -msgstr "" - -#: views.py:82 -msgid "Error editing bootstrap setup." -msgstr "" - -#: views.py:87 -#, python-format -msgid "edit bootstrap setup: %s" -msgstr "" - -#: views.py:112 -#, python-format -msgid "Bootstrap setup: %s deleted successfully." -msgstr "" - -#: views.py:114 -#, python-format -msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Are you sure you with to delete the bootstrap setup: %s?" -msgstr "" - -#: views.py:165 -msgid "" -"Cannot execute bootstrap setup, there is existing data. Erase all data and " -"try again." -msgstr "" - -#: views.py:167 -#, python-format -msgid "Error executing bootstrap setup; %s" -msgstr "" - -#: views.py:169 -#, python-format -msgid "Bootstrap setup \"%s\" executed successfully." -msgstr "" - -#: views.py:181 -#, python-format -msgid "" -"Are you sure you wish to execute the database bootstrap setup named: %s?" -msgstr "" - -#: views.py:197 -#, python-format -msgid "Error dumping configuration into a bootstrap setup; %s" -msgstr "" - -#: views.py:201 -msgid "Bootstrap setup created successfully." -msgstr "" - -#: views.py:207 -msgid "dump current configuration into a bootstrap setup" -msgstr "" - -#: views.py:241 views.py:269 -msgid "Bootstrap setup imported successfully." -msgstr "" - -#: views.py:244 -msgid "File is not a bootstrap setup." -msgstr "" - -#: views.py:246 -#, python-format -msgid "Error importing bootstrap setup from file; %s." -msgstr "" - -#: views.py:252 -msgid "Import bootstrap setup from file" -msgstr "" - -#: views.py:272 -msgid "Data from URL is not a bootstrap setup." -msgstr "" - -#: views.py:274 -#, python-format -msgid "Error importing bootstrap setup from URL; %s." -msgstr "" - -#: views.py:280 -msgid "Import bootstrap setup from URL" -msgstr "" - -#: views.py:299 -#, python-format -msgid "Error erasing database; %s" -msgstr "" - -#: views.py:301 -msgid "Database erased successfully." -msgstr "" - -#: views.py:311 -msgid "" -"Are you sure you wish to erase the entire database and document storage?" -msgstr "" - -#: views.py:312 -msgid "" -"All documents, sources, metadata, metadata types, set, tags, indexes and " -"logs will be lost irreversibly!" -msgstr "" - -#: views.py:329 -msgid "Bootstrap repository successfully synchronized." -msgstr "" - -#: views.py:331 -#, python-format -msgid "Bootstrap repository synchronization error: %(error)s" -msgstr "" - -#: views.py:338 -msgid "Are you sure you wish to synchronize with the bootstrap repository?" -msgstr "" diff --git a/mayan/apps/bootstrap/locale/id/LC_MESSAGES/django.po b/mayan/apps/bootstrap/locale/id/LC_MESSAGES/django.po deleted file mode 100644 index 781253fc87..0000000000 --- a/mayan/apps/bootstrap/locale/id/LC_MESSAGES/django.po +++ /dev/null @@ -1,317 +0,0 @@ -# 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: \n" -"POT-Creation-Date: 2014-07-31 19:55-0400\n" -"PO-Revision-Date: 2012-07-23 19:40+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Indonesian (http://www.transifex.com/projects/p/mayan-edms/" -"language/id/)\n" -"Language: id\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#: forms.py:49 -msgid "Bootstrap setup file" -msgstr "" - -#: forms.py:55 -msgid "Bootstrap setup URL" -msgstr "" - -#: links.py:11 -msgid "bootstrap" -msgstr "" - -#: links.py:12 -msgid "bootstrap setup list" -msgstr "" - -#: links.py:13 -msgid "create new bootstrap setup" -msgstr "" - -#: links.py:14 -msgid "edit" -msgstr "" - -#: links.py:15 -msgid "delete" -msgstr "" - -#: links.py:16 -msgid "details" -msgstr "" - -#: links.py:17 -msgid "execute" -msgstr "" - -#: links.py:18 -msgid "dump current setup" -msgstr "" - -#: links.py:19 -msgid "export" -msgstr "" - -#: links.py:20 -msgid "import from file" -msgstr "" - -#: links.py:21 -msgid "import from URL" -msgstr "" - -#: links.py:22 -msgid "sync with repository" -msgstr "" - -#: links.py:23 -msgid "erase database" -msgstr "" - -#: literals.py:20 -msgid "JSON" -msgstr "" - -#: literals.py:63 -msgid "YAML" -msgstr "" - -#: literals.py:64 -msgid "Better YAML" -msgstr "" - -#: models.py:30 -msgid "name" -msgstr "" - -#: models.py:31 -msgid "slug" -msgstr "" - -#: models.py:32 views.py:35 -msgid "description" -msgstr "" - -#: models.py:33 -msgid "fixture" -msgstr "" - -#: models.py:33 -msgid "These are the actual database structure creation instructions." -msgstr "" - -#: models.py:34 views.py:36 -msgid "type" -msgstr "" - -#: models.py:35 -msgid "creation date and time" -msgstr "" - -#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173 -msgid "bootstrap setup" -msgstr "" - -#: models.py:105 views.py:32 -msgid "bootstrap setups" -msgstr "" - -#: permissions.py:7 -msgid "Database bootstrap" -msgstr "" - -#: permissions.py:9 -msgid "View bootstrap setups" -msgstr "" - -#: permissions.py:10 -msgid "Create bootstrap setups" -msgstr "" - -#: permissions.py:11 -msgid "Edit bootstrap setups" -msgstr "" - -#: permissions.py:12 -msgid "Delete bootstrap setups" -msgstr "" - -#: permissions.py:13 -msgid "Execute bootstrap setups" -msgstr "" - -#: permissions.py:14 -msgid "Dump the current project\\s setup into a bootstrap setup" -msgstr "" - -#: permissions.py:15 -msgid "Export bootstrap setups as files" -msgstr "" - -#: permissions.py:16 -msgid "Import new bootstrap setups" -msgstr "" - -#: permissions.py:17 -msgid "Sync the local bootstrap setups with a published repository" -msgstr "" - -#: permissions.py:18 -msgid "Erase the entire database and document storage" -msgstr "" - -#: registry.py:7 -msgid "Bootstrap" -msgstr "" - -#: registry.py:8 -msgid "Provides pre configured setups for indexes, document types, tags, etc." -msgstr "" - -#: views.py:51 -msgid "Bootstrap setup created successfully" -msgstr "" - -#: views.py:54 -msgid "Error creating bootstrap setup." -msgstr "" - -#: views.py:59 -msgid "create bootstrap" -msgstr "" - -#: views.py:79 -msgid "Bootstrap setup edited successfully" -msgstr "" - -#: views.py:82 -msgid "Error editing bootstrap setup." -msgstr "" - -#: views.py:87 -#, python-format -msgid "edit bootstrap setup: %s" -msgstr "" - -#: views.py:112 -#, python-format -msgid "Bootstrap setup: %s deleted successfully." -msgstr "" - -#: views.py:114 -#, python-format -msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Are you sure you with to delete the bootstrap setup: %s?" -msgstr "" - -#: views.py:165 -msgid "" -"Cannot execute bootstrap setup, there is existing data. Erase all data and " -"try again." -msgstr "" - -#: views.py:167 -#, python-format -msgid "Error executing bootstrap setup; %s" -msgstr "" - -#: views.py:169 -#, python-format -msgid "Bootstrap setup \"%s\" executed successfully." -msgstr "" - -#: views.py:181 -#, python-format -msgid "" -"Are you sure you wish to execute the database bootstrap setup named: %s?" -msgstr "" - -#: views.py:197 -#, python-format -msgid "Error dumping configuration into a bootstrap setup; %s" -msgstr "" - -#: views.py:201 -msgid "Bootstrap setup created successfully." -msgstr "" - -#: views.py:207 -msgid "dump current configuration into a bootstrap setup" -msgstr "" - -#: views.py:241 views.py:269 -msgid "Bootstrap setup imported successfully." -msgstr "" - -#: views.py:244 -msgid "File is not a bootstrap setup." -msgstr "" - -#: views.py:246 -#, python-format -msgid "Error importing bootstrap setup from file; %s." -msgstr "" - -#: views.py:252 -msgid "Import bootstrap setup from file" -msgstr "" - -#: views.py:272 -msgid "Data from URL is not a bootstrap setup." -msgstr "" - -#: views.py:274 -#, python-format -msgid "Error importing bootstrap setup from URL; %s." -msgstr "" - -#: views.py:280 -msgid "Import bootstrap setup from URL" -msgstr "" - -#: views.py:299 -#, python-format -msgid "Error erasing database; %s" -msgstr "" - -#: views.py:301 -msgid "Database erased successfully." -msgstr "" - -#: views.py:311 -msgid "" -"Are you sure you wish to erase the entire database and document storage?" -msgstr "" - -#: views.py:312 -msgid "" -"All documents, sources, metadata, metadata types, set, tags, indexes and " -"logs will be lost irreversibly!" -msgstr "" - -#: views.py:329 -msgid "Bootstrap repository successfully synchronized." -msgstr "" - -#: views.py:331 -#, python-format -msgid "Bootstrap repository synchronization error: %(error)s" -msgstr "" - -#: views.py:338 -msgid "Are you sure you wish to synchronize with the bootstrap repository?" -msgstr "" diff --git a/mayan/apps/bootstrap/locale/it/LC_MESSAGES/django.po b/mayan/apps/bootstrap/locale/it/LC_MESSAGES/django.po deleted file mode 100644 index ccb706d61d..0000000000 --- a/mayan/apps/bootstrap/locale/it/LC_MESSAGES/django.po +++ /dev/null @@ -1,317 +0,0 @@ -# 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: \n" -"POT-Creation-Date: 2014-07-31 19:55-0400\n" -"PO-Revision-Date: 2012-12-12 06:04+0000\n" -"Last-Translator: Roberto Rosario\n" -"Language-Team: Italian (http://www.transifex.com/projects/p/mayan-edms/" -"language/it/)\n" -"Language: it\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: forms.py:49 -msgid "Bootstrap setup file" -msgstr "" - -#: forms.py:55 -msgid "Bootstrap setup URL" -msgstr "" - -#: links.py:11 -msgid "bootstrap" -msgstr "" - -#: links.py:12 -msgid "bootstrap setup list" -msgstr "" - -#: links.py:13 -msgid "create new bootstrap setup" -msgstr "" - -#: links.py:14 -msgid "edit" -msgstr "" - -#: links.py:15 -msgid "delete" -msgstr "" - -#: links.py:16 -msgid "details" -msgstr "" - -#: links.py:17 -msgid "execute" -msgstr "" - -#: links.py:18 -msgid "dump current setup" -msgstr "" - -#: links.py:19 -msgid "export" -msgstr "" - -#: links.py:20 -msgid "import from file" -msgstr "" - -#: links.py:21 -msgid "import from URL" -msgstr "" - -#: links.py:22 -msgid "sync with repository" -msgstr "" - -#: links.py:23 -msgid "erase database" -msgstr "" - -#: literals.py:20 -msgid "JSON" -msgstr "" - -#: literals.py:63 -msgid "YAML" -msgstr "" - -#: literals.py:64 -msgid "Better YAML" -msgstr "" - -#: models.py:30 -msgid "name" -msgstr "" - -#: models.py:31 -msgid "slug" -msgstr "" - -#: models.py:32 views.py:35 -msgid "description" -msgstr "" - -#: models.py:33 -msgid "fixture" -msgstr "" - -#: models.py:33 -msgid "These are the actual database structure creation instructions." -msgstr "" - -#: models.py:34 views.py:36 -msgid "type" -msgstr "" - -#: models.py:35 -msgid "creation date and time" -msgstr "" - -#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173 -msgid "bootstrap setup" -msgstr "" - -#: models.py:105 views.py:32 -msgid "bootstrap setups" -msgstr "" - -#: permissions.py:7 -msgid "Database bootstrap" -msgstr "" - -#: permissions.py:9 -msgid "View bootstrap setups" -msgstr "" - -#: permissions.py:10 -msgid "Create bootstrap setups" -msgstr "" - -#: permissions.py:11 -msgid "Edit bootstrap setups" -msgstr "" - -#: permissions.py:12 -msgid "Delete bootstrap setups" -msgstr "" - -#: permissions.py:13 -msgid "Execute bootstrap setups" -msgstr "" - -#: permissions.py:14 -msgid "Dump the current project\\s setup into a bootstrap setup" -msgstr "" - -#: permissions.py:15 -msgid "Export bootstrap setups as files" -msgstr "" - -#: permissions.py:16 -msgid "Import new bootstrap setups" -msgstr "" - -#: permissions.py:17 -msgid "Sync the local bootstrap setups with a published repository" -msgstr "" - -#: permissions.py:18 -msgid "Erase the entire database and document storage" -msgstr "" - -#: registry.py:7 -msgid "Bootstrap" -msgstr "" - -#: registry.py:8 -msgid "Provides pre configured setups for indexes, document types, tags, etc." -msgstr "" - -#: views.py:51 -msgid "Bootstrap setup created successfully" -msgstr "" - -#: views.py:54 -msgid "Error creating bootstrap setup." -msgstr "" - -#: views.py:59 -msgid "create bootstrap" -msgstr "" - -#: views.py:79 -msgid "Bootstrap setup edited successfully" -msgstr "" - -#: views.py:82 -msgid "Error editing bootstrap setup." -msgstr "" - -#: views.py:87 -#, python-format -msgid "edit bootstrap setup: %s" -msgstr "" - -#: views.py:112 -#, python-format -msgid "Bootstrap setup: %s deleted successfully." -msgstr "" - -#: views.py:114 -#, python-format -msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Are you sure you with to delete the bootstrap setup: %s?" -msgstr "" - -#: views.py:165 -msgid "" -"Cannot execute bootstrap setup, there is existing data. Erase all data and " -"try again." -msgstr "" - -#: views.py:167 -#, python-format -msgid "Error executing bootstrap setup; %s" -msgstr "" - -#: views.py:169 -#, python-format -msgid "Bootstrap setup \"%s\" executed successfully." -msgstr "" - -#: views.py:181 -#, python-format -msgid "" -"Are you sure you wish to execute the database bootstrap setup named: %s?" -msgstr "" - -#: views.py:197 -#, python-format -msgid "Error dumping configuration into a bootstrap setup; %s" -msgstr "" - -#: views.py:201 -msgid "Bootstrap setup created successfully." -msgstr "" - -#: views.py:207 -msgid "dump current configuration into a bootstrap setup" -msgstr "" - -#: views.py:241 views.py:269 -msgid "Bootstrap setup imported successfully." -msgstr "" - -#: views.py:244 -msgid "File is not a bootstrap setup." -msgstr "" - -#: views.py:246 -#, python-format -msgid "Error importing bootstrap setup from file; %s." -msgstr "" - -#: views.py:252 -msgid "Import bootstrap setup from file" -msgstr "" - -#: views.py:272 -msgid "Data from URL is not a bootstrap setup." -msgstr "" - -#: views.py:274 -#, python-format -msgid "Error importing bootstrap setup from URL; %s." -msgstr "" - -#: views.py:280 -msgid "Import bootstrap setup from URL" -msgstr "" - -#: views.py:299 -#, python-format -msgid "Error erasing database; %s" -msgstr "" - -#: views.py:301 -msgid "Database erased successfully." -msgstr "" - -#: views.py:311 -msgid "" -"Are you sure you wish to erase the entire database and document storage?" -msgstr "" - -#: views.py:312 -msgid "" -"All documents, sources, metadata, metadata types, set, tags, indexes and " -"logs will be lost irreversibly!" -msgstr "" - -#: views.py:329 -msgid "Bootstrap repository successfully synchronized." -msgstr "" - -#: views.py:331 -#, python-format -msgid "Bootstrap repository synchronization error: %(error)s" -msgstr "" - -#: views.py:338 -msgid "Are you sure you wish to synchronize with the bootstrap repository?" -msgstr "" diff --git a/mayan/apps/bootstrap/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/bootstrap/locale/nl_NL/LC_MESSAGES/django.mo deleted file mode 100644 index 6ec06acb58..0000000000 Binary files a/mayan/apps/bootstrap/locale/nl_NL/LC_MESSAGES/django.mo and /dev/null differ diff --git a/mayan/apps/bootstrap/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/bootstrap/locale/nl_NL/LC_MESSAGES/django.po deleted file mode 100644 index 9ac9449cb0..0000000000 --- a/mayan/apps/bootstrap/locale/nl_NL/LC_MESSAGES/django.po +++ /dev/null @@ -1,338 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# -# Translators: -# Lucas Weel , 2013 -msgid "" -msgstr "" -"Project-Id-Version: Mayan EDMS\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:55-0400\n" -"PO-Revision-Date: 2013-01-12 13:11+0000\n" -"Last-Translator: Lucas Weel \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/projects/p/" -"mayan-edms/language/nl_NL/)\n" -"Language: nl_NL\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: forms.py:49 -msgid "Bootstrap setup file" -msgstr "'Bootstrap Setup' file" - -#: forms.py:55 -msgid "Bootstrap setup URL" -msgstr "'Bootstrap Setup' URL" - -#: links.py:11 -msgid "bootstrap" -msgstr "Bootstrap" - -#: links.py:12 -msgid "bootstrap setup list" -msgstr "'Bootstrap Setup' lijst" - -#: links.py:13 -msgid "create new bootstrap setup" -msgstr "Nieuwe 'Bootstrap Setup' aanmaken" - -#: links.py:14 -msgid "edit" -msgstr "bewerken" - -#: links.py:15 -msgid "delete" -msgstr "verwijderen" - -#: links.py:16 -msgid "details" -msgstr "details" - -#: links.py:17 -msgid "execute" -msgstr "uitvoeren" - -#: links.py:18 -msgid "dump current setup" -msgstr "huidige Setup verwijderen" - -#: links.py:19 -msgid "export" -msgstr "exporteren" - -#: links.py:20 -msgid "import from file" -msgstr "importeren vanaf een bestand" - -#: links.py:21 -msgid "import from URL" -msgstr "importeren vanaf een URL" - -#: links.py:22 -msgid "sync with repository" -msgstr "synchroniseren met de opslag" - -#: links.py:23 -msgid "erase database" -msgstr "database wissen" - -#: literals.py:20 -msgid "JSON" -msgstr "JSON" - -#: literals.py:63 -msgid "YAML" -msgstr "YAML" - -#: literals.py:64 -msgid "Better YAML" -msgstr "'Better YAML'" - -#: models.py:30 -msgid "name" -msgstr "naam" - -#: models.py:31 -msgid "slug" -msgstr "dop" - -#: models.py:32 views.py:35 -msgid "description" -msgstr "omschrijving" - -#: models.py:33 -msgid "fixture" -msgstr "mal" - -#: models.py:33 -msgid "These are the actual database structure creation instructions." -msgstr "Dit zijn de instructies voor het aanmaken van de database." - -#: models.py:34 views.py:36 -msgid "type" -msgstr "soort" - -#: models.py:35 -msgid "creation date and time" -msgstr "aanmaakdatum en tijd" - -#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173 -msgid "bootstrap setup" -msgstr "Bootstrap Setup" - -#: models.py:105 views.py:32 -msgid "bootstrap setups" -msgstr "'Bootstrap Setups'" - -#: permissions.py:7 -msgid "Database bootstrap" -msgstr "Database bootstrap" - -#: permissions.py:9 -msgid "View bootstrap setups" -msgstr "'Bootstrap Setups' bekijken" - -#: permissions.py:10 -msgid "Create bootstrap setups" -msgstr "'Bootstrap Setups' aanmaken" - -#: permissions.py:11 -msgid "Edit bootstrap setups" -msgstr "'Bootstrap Setups' bewerken" - -#: permissions.py:12 -msgid "Delete bootstrap setups" -msgstr "'Bootstrap Setups' verwijderen" - -#: permissions.py:13 -msgid "Execute bootstrap setups" -msgstr "'Bootstrap Setups' uitvoeren" - -#: permissions.py:14 -msgid "Dump the current project\\s setup into a bootstrap setup" -msgstr "" -"Verplaats de 'setup' van het huidige project naar een 'Bootstrap Setup'" - -#: permissions.py:15 -msgid "Export bootstrap setups as files" -msgstr "Exporteer 'Bootstrap Setups' als bestanden" - -#: permissions.py:16 -msgid "Import new bootstrap setups" -msgstr "Importeren van nieuwe 'Bootstrap Setups'" - -#: permissions.py:17 -msgid "Sync the local bootstrap setups with a published repository" -msgstr "Synchroniseer de locale 'Bootstrap Setups' met een publieke opslag" - -#: permissions.py:18 -msgid "Erase the entire database and document storage" -msgstr "Volledige database en documentopslag wissen" - -#: registry.py:7 -msgid "Bootstrap" -msgstr "Bootstrap" - -#: registry.py:8 -msgid "Provides pre configured setups for indexes, document types, tags, etc." -msgstr "" -"Levert voorgeconfigureerde 'Setups' voor indexering, documentsoorten, " -"labels, etc." - -#: views.py:51 -msgid "Bootstrap setup created successfully" -msgstr "'Bootstrap Setup' is aangemaakt" - -#: views.py:54 -msgid "Error creating bootstrap setup." -msgstr "Fout bij het aanmaken van een 'Bootstrap Setup'" - -#: views.py:59 -msgid "create bootstrap" -msgstr "'Bootstrap' aanmaken" - -#: views.py:79 -msgid "Bootstrap setup edited successfully" -msgstr "'Bootstrap Setup' is aangepast" - -#: views.py:82 -msgid "Error editing bootstrap setup." -msgstr "Fout bij het bewerken van een 'Bootstrap Setup'" - -#: views.py:87 -#, python-format -msgid "edit bootstrap setup: %s" -msgstr "'Bootstrap Setup: %s, bewerken" - -#: views.py:112 -#, python-format -msgid "Bootstrap setup: %s deleted successfully." -msgstr "'Bootstrap Setup': %s is verwijdert" - -#: views.py:114 -#, python-format -msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s" -msgstr "" -"Fout bij het verwijderen van 'Bootstrap Setup': %(bootstrap)s. Foutmelding: " -"%(error)s" - -#: views.py:125 -#, python-format -msgid "Are you sure you with to delete the bootstrap setup: %s?" -msgstr "" -"Bent u er zeker van dat u, 'Bootstrap Setup': %s, wenst te verwijderen?" - -#: views.py:165 -msgid "" -"Cannot execute bootstrap setup, there is existing data. Erase all data and " -"try again." -msgstr "" -"Kan de 'Bootstrap Setup' niet uitvoeren, er zijn momenteel gegevens " -"aanwezig. Verwijder aanwezige gegevens en probeer het opnieuw." - -#: views.py:167 -#, python-format -msgid "Error executing bootstrap setup; %s" -msgstr "Fout bij het uitvoeren van 'Bootstrap Setup': Foutmelding: %s" - -#: views.py:169 -#, python-format -msgid "Bootstrap setup \"%s\" executed successfully." -msgstr "'Bootstrap Setup' \"%s\" is uitgevoerd." - -#: views.py:181 -#, python-format -msgid "" -"Are you sure you wish to execute the database bootstrap setup named: %s?" -msgstr "" -"Bent u er zeker van dat u database 'Bootstrap Setup': %s, wenst uit te " -"voeren?" - -#: views.py:197 -#, python-format -msgid "Error dumping configuration into a bootstrap setup; %s" -msgstr "" -"Fout bij het verplatsen van de configuratie naar een 'Bootstrap Setup'. " -"Foutmelding: %s" - -#: views.py:201 -msgid "Bootstrap setup created successfully." -msgstr "'Bootstrap Setup' is aangemaakt." - -#: views.py:207 -msgid "dump current configuration into a bootstrap setup" -msgstr "verplaats huidige configuratie naar een 'Bootstrap Setup'" - -#: views.py:241 views.py:269 -msgid "Bootstrap setup imported successfully." -msgstr "'Bootstrap Setup' is geïmporteerd" - -#: views.py:244 -msgid "File is not a bootstrap setup." -msgstr "Bestand is geen 'Bootstrap Setup'" - -#: views.py:246 -#, python-format -msgid "Error importing bootstrap setup from file; %s." -msgstr "" -"Fout bij het importeren van een 'Bootstrap Setup' vanuit een bestand. " -"Foutmelding: %s. " - -#: views.py:252 -msgid "Import bootstrap setup from file" -msgstr "Importeren van een 'Bootstrap Setup' vanuit een bestand" - -#: views.py:272 -msgid "Data from URL is not a bootstrap setup." -msgstr "De data van de URL is geen 'Bootstrap Setup' " - -#: views.py:274 -#, python-format -msgid "Error importing bootstrap setup from URL; %s." -msgstr "Fout bij het importeren van een 'Bootstrap Setup' vanuit URL: %s." - -#: views.py:280 -msgid "Import bootstrap setup from URL" -msgstr "Importeren van 'Bootstrap Setup' vanuit een URL" - -#: views.py:299 -#, python-format -msgid "Error erasing database; %s" -msgstr "Fout bij wissen database, foutmelding: %s" - -#: views.py:301 -msgid "Database erased successfully." -msgstr "Database is gewist" - -#: views.py:311 -msgid "" -"Are you sure you wish to erase the entire database and document storage?" -msgstr "" -"Bent u er zeker van dat u de volledige database en documentopslag wenst te " -"wissen?" - -#: views.py:312 -msgid "" -"All documents, sources, metadata, metadata types, set, tags, indexes and " -"logs will be lost irreversibly!" -msgstr "" -"Alle documenten, documentbronnen, metadata, metadata-typen, verzamelingen, " -"labels, indexeringen en logboeken, zullen onomkeerbaar worden verwijdert!" - -#: views.py:329 -msgid "Bootstrap repository successfully synchronized." -msgstr "'Bootstrap' opslag is gesynchroniseerd" - -#: views.py:331 -#, python-format -msgid "Bootstrap repository synchronization error: %(error)s" -msgstr "" -"Fout bij het synchroniseren van de 'Bootstrap' opslag. Foutmelding: %(error)s" - -#: views.py:338 -msgid "Are you sure you wish to synchronize with the bootstrap repository?" -msgstr "" -"Bent u er zeker van dat u de 'Bootstrap' opslag wenst te synchroniseren?" diff --git a/mayan/apps/bootstrap/locale/pl/LC_MESSAGES/django.po b/mayan/apps/bootstrap/locale/pl/LC_MESSAGES/django.po deleted file mode 100644 index eb2e645ed9..0000000000 --- a/mayan/apps/bootstrap/locale/pl/LC_MESSAGES/django.po +++ /dev/null @@ -1,318 +0,0 @@ -# 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: \n" -"POT-Creation-Date: 2014-07-31 19:55-0400\n" -"PO-Revision-Date: 2012-12-12 06:04+0000\n" -"Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/projects/p/mayan-edms/" -"language/pl/)\n" -"Language: pl\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " -"|| n%100>=20) ? 1 : 2);\n" - -#: forms.py:49 -msgid "Bootstrap setup file" -msgstr "" - -#: forms.py:55 -msgid "Bootstrap setup URL" -msgstr "" - -#: links.py:11 -msgid "bootstrap" -msgstr "" - -#: links.py:12 -msgid "bootstrap setup list" -msgstr "" - -#: links.py:13 -msgid "create new bootstrap setup" -msgstr "" - -#: links.py:14 -msgid "edit" -msgstr "" - -#: links.py:15 -msgid "delete" -msgstr "" - -#: links.py:16 -msgid "details" -msgstr "" - -#: links.py:17 -msgid "execute" -msgstr "" - -#: links.py:18 -msgid "dump current setup" -msgstr "" - -#: links.py:19 -msgid "export" -msgstr "" - -#: links.py:20 -msgid "import from file" -msgstr "" - -#: links.py:21 -msgid "import from URL" -msgstr "" - -#: links.py:22 -msgid "sync with repository" -msgstr "" - -#: links.py:23 -msgid "erase database" -msgstr "" - -#: literals.py:20 -msgid "JSON" -msgstr "" - -#: literals.py:63 -msgid "YAML" -msgstr "" - -#: literals.py:64 -msgid "Better YAML" -msgstr "" - -#: models.py:30 -msgid "name" -msgstr "" - -#: models.py:31 -msgid "slug" -msgstr "" - -#: models.py:32 views.py:35 -msgid "description" -msgstr "" - -#: models.py:33 -msgid "fixture" -msgstr "" - -#: models.py:33 -msgid "These are the actual database structure creation instructions." -msgstr "" - -#: models.py:34 views.py:36 -msgid "type" -msgstr "" - -#: models.py:35 -msgid "creation date and time" -msgstr "" - -#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173 -msgid "bootstrap setup" -msgstr "" - -#: models.py:105 views.py:32 -msgid "bootstrap setups" -msgstr "" - -#: permissions.py:7 -msgid "Database bootstrap" -msgstr "" - -#: permissions.py:9 -msgid "View bootstrap setups" -msgstr "" - -#: permissions.py:10 -msgid "Create bootstrap setups" -msgstr "" - -#: permissions.py:11 -msgid "Edit bootstrap setups" -msgstr "" - -#: permissions.py:12 -msgid "Delete bootstrap setups" -msgstr "" - -#: permissions.py:13 -msgid "Execute bootstrap setups" -msgstr "" - -#: permissions.py:14 -msgid "Dump the current project\\s setup into a bootstrap setup" -msgstr "" - -#: permissions.py:15 -msgid "Export bootstrap setups as files" -msgstr "" - -#: permissions.py:16 -msgid "Import new bootstrap setups" -msgstr "" - -#: permissions.py:17 -msgid "Sync the local bootstrap setups with a published repository" -msgstr "" - -#: permissions.py:18 -msgid "Erase the entire database and document storage" -msgstr "" - -#: registry.py:7 -msgid "Bootstrap" -msgstr "" - -#: registry.py:8 -msgid "Provides pre configured setups for indexes, document types, tags, etc." -msgstr "" - -#: views.py:51 -msgid "Bootstrap setup created successfully" -msgstr "" - -#: views.py:54 -msgid "Error creating bootstrap setup." -msgstr "" - -#: views.py:59 -msgid "create bootstrap" -msgstr "" - -#: views.py:79 -msgid "Bootstrap setup edited successfully" -msgstr "" - -#: views.py:82 -msgid "Error editing bootstrap setup." -msgstr "" - -#: views.py:87 -#, python-format -msgid "edit bootstrap setup: %s" -msgstr "" - -#: views.py:112 -#, python-format -msgid "Bootstrap setup: %s deleted successfully." -msgstr "" - -#: views.py:114 -#, python-format -msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Are you sure you with to delete the bootstrap setup: %s?" -msgstr "" - -#: views.py:165 -msgid "" -"Cannot execute bootstrap setup, there is existing data. Erase all data and " -"try again." -msgstr "" - -#: views.py:167 -#, python-format -msgid "Error executing bootstrap setup; %s" -msgstr "" - -#: views.py:169 -#, python-format -msgid "Bootstrap setup \"%s\" executed successfully." -msgstr "" - -#: views.py:181 -#, python-format -msgid "" -"Are you sure you wish to execute the database bootstrap setup named: %s?" -msgstr "" - -#: views.py:197 -#, python-format -msgid "Error dumping configuration into a bootstrap setup; %s" -msgstr "" - -#: views.py:201 -msgid "Bootstrap setup created successfully." -msgstr "" - -#: views.py:207 -msgid "dump current configuration into a bootstrap setup" -msgstr "" - -#: views.py:241 views.py:269 -msgid "Bootstrap setup imported successfully." -msgstr "" - -#: views.py:244 -msgid "File is not a bootstrap setup." -msgstr "" - -#: views.py:246 -#, python-format -msgid "Error importing bootstrap setup from file; %s." -msgstr "" - -#: views.py:252 -msgid "Import bootstrap setup from file" -msgstr "" - -#: views.py:272 -msgid "Data from URL is not a bootstrap setup." -msgstr "" - -#: views.py:274 -#, python-format -msgid "Error importing bootstrap setup from URL; %s." -msgstr "" - -#: views.py:280 -msgid "Import bootstrap setup from URL" -msgstr "" - -#: views.py:299 -#, python-format -msgid "Error erasing database; %s" -msgstr "" - -#: views.py:301 -msgid "Database erased successfully." -msgstr "" - -#: views.py:311 -msgid "" -"Are you sure you wish to erase the entire database and document storage?" -msgstr "" - -#: views.py:312 -msgid "" -"All documents, sources, metadata, metadata types, set, tags, indexes and " -"logs will be lost irreversibly!" -msgstr "" - -#: views.py:329 -msgid "Bootstrap repository successfully synchronized." -msgstr "" - -#: views.py:331 -#, python-format -msgid "Bootstrap repository synchronization error: %(error)s" -msgstr "" - -#: views.py:338 -msgid "Are you sure you wish to synchronize with the bootstrap repository?" -msgstr "" diff --git a/mayan/apps/bootstrap/locale/pt/LC_MESSAGES/django.po b/mayan/apps/bootstrap/locale/pt/LC_MESSAGES/django.po deleted file mode 100644 index 4a36409d89..0000000000 --- a/mayan/apps/bootstrap/locale/pt/LC_MESSAGES/django.po +++ /dev/null @@ -1,317 +0,0 @@ -# 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: \n" -"POT-Creation-Date: 2014-07-31 19:55-0400\n" -"PO-Revision-Date: 2012-12-12 06:04+0000\n" -"Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/projects/p/mayan-edms/" -"language/pt/)\n" -"Language: pt\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: forms.py:49 -msgid "Bootstrap setup file" -msgstr "" - -#: forms.py:55 -msgid "Bootstrap setup URL" -msgstr "" - -#: links.py:11 -msgid "bootstrap" -msgstr "" - -#: links.py:12 -msgid "bootstrap setup list" -msgstr "" - -#: links.py:13 -msgid "create new bootstrap setup" -msgstr "" - -#: links.py:14 -msgid "edit" -msgstr "" - -#: links.py:15 -msgid "delete" -msgstr "" - -#: links.py:16 -msgid "details" -msgstr "" - -#: links.py:17 -msgid "execute" -msgstr "" - -#: links.py:18 -msgid "dump current setup" -msgstr "" - -#: links.py:19 -msgid "export" -msgstr "" - -#: links.py:20 -msgid "import from file" -msgstr "" - -#: links.py:21 -msgid "import from URL" -msgstr "" - -#: links.py:22 -msgid "sync with repository" -msgstr "" - -#: links.py:23 -msgid "erase database" -msgstr "" - -#: literals.py:20 -msgid "JSON" -msgstr "" - -#: literals.py:63 -msgid "YAML" -msgstr "" - -#: literals.py:64 -msgid "Better YAML" -msgstr "" - -#: models.py:30 -msgid "name" -msgstr "" - -#: models.py:31 -msgid "slug" -msgstr "" - -#: models.py:32 views.py:35 -msgid "description" -msgstr "" - -#: models.py:33 -msgid "fixture" -msgstr "" - -#: models.py:33 -msgid "These are the actual database structure creation instructions." -msgstr "" - -#: models.py:34 views.py:36 -msgid "type" -msgstr "" - -#: models.py:35 -msgid "creation date and time" -msgstr "" - -#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173 -msgid "bootstrap setup" -msgstr "" - -#: models.py:105 views.py:32 -msgid "bootstrap setups" -msgstr "" - -#: permissions.py:7 -msgid "Database bootstrap" -msgstr "" - -#: permissions.py:9 -msgid "View bootstrap setups" -msgstr "" - -#: permissions.py:10 -msgid "Create bootstrap setups" -msgstr "" - -#: permissions.py:11 -msgid "Edit bootstrap setups" -msgstr "" - -#: permissions.py:12 -msgid "Delete bootstrap setups" -msgstr "" - -#: permissions.py:13 -msgid "Execute bootstrap setups" -msgstr "" - -#: permissions.py:14 -msgid "Dump the current project\\s setup into a bootstrap setup" -msgstr "" - -#: permissions.py:15 -msgid "Export bootstrap setups as files" -msgstr "" - -#: permissions.py:16 -msgid "Import new bootstrap setups" -msgstr "" - -#: permissions.py:17 -msgid "Sync the local bootstrap setups with a published repository" -msgstr "" - -#: permissions.py:18 -msgid "Erase the entire database and document storage" -msgstr "" - -#: registry.py:7 -msgid "Bootstrap" -msgstr "" - -#: registry.py:8 -msgid "Provides pre configured setups for indexes, document types, tags, etc." -msgstr "" - -#: views.py:51 -msgid "Bootstrap setup created successfully" -msgstr "" - -#: views.py:54 -msgid "Error creating bootstrap setup." -msgstr "" - -#: views.py:59 -msgid "create bootstrap" -msgstr "" - -#: views.py:79 -msgid "Bootstrap setup edited successfully" -msgstr "" - -#: views.py:82 -msgid "Error editing bootstrap setup." -msgstr "" - -#: views.py:87 -#, python-format -msgid "edit bootstrap setup: %s" -msgstr "" - -#: views.py:112 -#, python-format -msgid "Bootstrap setup: %s deleted successfully." -msgstr "" - -#: views.py:114 -#, python-format -msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Are you sure you with to delete the bootstrap setup: %s?" -msgstr "" - -#: views.py:165 -msgid "" -"Cannot execute bootstrap setup, there is existing data. Erase all data and " -"try again." -msgstr "" - -#: views.py:167 -#, python-format -msgid "Error executing bootstrap setup; %s" -msgstr "" - -#: views.py:169 -#, python-format -msgid "Bootstrap setup \"%s\" executed successfully." -msgstr "" - -#: views.py:181 -#, python-format -msgid "" -"Are you sure you wish to execute the database bootstrap setup named: %s?" -msgstr "" - -#: views.py:197 -#, python-format -msgid "Error dumping configuration into a bootstrap setup; %s" -msgstr "" - -#: views.py:201 -msgid "Bootstrap setup created successfully." -msgstr "" - -#: views.py:207 -msgid "dump current configuration into a bootstrap setup" -msgstr "" - -#: views.py:241 views.py:269 -msgid "Bootstrap setup imported successfully." -msgstr "" - -#: views.py:244 -msgid "File is not a bootstrap setup." -msgstr "" - -#: views.py:246 -#, python-format -msgid "Error importing bootstrap setup from file; %s." -msgstr "" - -#: views.py:252 -msgid "Import bootstrap setup from file" -msgstr "" - -#: views.py:272 -msgid "Data from URL is not a bootstrap setup." -msgstr "" - -#: views.py:274 -#, python-format -msgid "Error importing bootstrap setup from URL; %s." -msgstr "" - -#: views.py:280 -msgid "Import bootstrap setup from URL" -msgstr "" - -#: views.py:299 -#, python-format -msgid "Error erasing database; %s" -msgstr "" - -#: views.py:301 -msgid "Database erased successfully." -msgstr "" - -#: views.py:311 -msgid "" -"Are you sure you wish to erase the entire database and document storage?" -msgstr "" - -#: views.py:312 -msgid "" -"All documents, sources, metadata, metadata types, set, tags, indexes and " -"logs will be lost irreversibly!" -msgstr "" - -#: views.py:329 -msgid "Bootstrap repository successfully synchronized." -msgstr "" - -#: views.py:331 -#, python-format -msgid "Bootstrap repository synchronization error: %(error)s" -msgstr "" - -#: views.py:338 -msgid "Are you sure you wish to synchronize with the bootstrap repository?" -msgstr "" diff --git a/mayan/apps/bootstrap/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/bootstrap/locale/pt_BR/LC_MESSAGES/django.po deleted file mode 100644 index ea973c5300..0000000000 --- a/mayan/apps/bootstrap/locale/pt_BR/LC_MESSAGES/django.po +++ /dev/null @@ -1,317 +0,0 @@ -# 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: \n" -"POT-Creation-Date: 2014-07-31 19:55-0400\n" -"PO-Revision-Date: 2012-12-12 06:04+0000\n" -"Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/" -"mayan-edms/language/pt_BR/)\n" -"Language: pt_BR\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#: forms.py:49 -msgid "Bootstrap setup file" -msgstr "" - -#: forms.py:55 -msgid "Bootstrap setup URL" -msgstr "" - -#: links.py:11 -msgid "bootstrap" -msgstr "" - -#: links.py:12 -msgid "bootstrap setup list" -msgstr "" - -#: links.py:13 -msgid "create new bootstrap setup" -msgstr "" - -#: links.py:14 -msgid "edit" -msgstr "" - -#: links.py:15 -msgid "delete" -msgstr "" - -#: links.py:16 -msgid "details" -msgstr "" - -#: links.py:17 -msgid "execute" -msgstr "" - -#: links.py:18 -msgid "dump current setup" -msgstr "" - -#: links.py:19 -msgid "export" -msgstr "" - -#: links.py:20 -msgid "import from file" -msgstr "" - -#: links.py:21 -msgid "import from URL" -msgstr "" - -#: links.py:22 -msgid "sync with repository" -msgstr "" - -#: links.py:23 -msgid "erase database" -msgstr "" - -#: literals.py:20 -msgid "JSON" -msgstr "" - -#: literals.py:63 -msgid "YAML" -msgstr "" - -#: literals.py:64 -msgid "Better YAML" -msgstr "" - -#: models.py:30 -msgid "name" -msgstr "" - -#: models.py:31 -msgid "slug" -msgstr "" - -#: models.py:32 views.py:35 -msgid "description" -msgstr "" - -#: models.py:33 -msgid "fixture" -msgstr "" - -#: models.py:33 -msgid "These are the actual database structure creation instructions." -msgstr "" - -#: models.py:34 views.py:36 -msgid "type" -msgstr "" - -#: models.py:35 -msgid "creation date and time" -msgstr "" - -#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173 -msgid "bootstrap setup" -msgstr "" - -#: models.py:105 views.py:32 -msgid "bootstrap setups" -msgstr "" - -#: permissions.py:7 -msgid "Database bootstrap" -msgstr "" - -#: permissions.py:9 -msgid "View bootstrap setups" -msgstr "" - -#: permissions.py:10 -msgid "Create bootstrap setups" -msgstr "" - -#: permissions.py:11 -msgid "Edit bootstrap setups" -msgstr "" - -#: permissions.py:12 -msgid "Delete bootstrap setups" -msgstr "" - -#: permissions.py:13 -msgid "Execute bootstrap setups" -msgstr "" - -#: permissions.py:14 -msgid "Dump the current project\\s setup into a bootstrap setup" -msgstr "" - -#: permissions.py:15 -msgid "Export bootstrap setups as files" -msgstr "" - -#: permissions.py:16 -msgid "Import new bootstrap setups" -msgstr "" - -#: permissions.py:17 -msgid "Sync the local bootstrap setups with a published repository" -msgstr "" - -#: permissions.py:18 -msgid "Erase the entire database and document storage" -msgstr "" - -#: registry.py:7 -msgid "Bootstrap" -msgstr "" - -#: registry.py:8 -msgid "Provides pre configured setups for indexes, document types, tags, etc." -msgstr "" - -#: views.py:51 -msgid "Bootstrap setup created successfully" -msgstr "" - -#: views.py:54 -msgid "Error creating bootstrap setup." -msgstr "" - -#: views.py:59 -msgid "create bootstrap" -msgstr "" - -#: views.py:79 -msgid "Bootstrap setup edited successfully" -msgstr "" - -#: views.py:82 -msgid "Error editing bootstrap setup." -msgstr "" - -#: views.py:87 -#, python-format -msgid "edit bootstrap setup: %s" -msgstr "" - -#: views.py:112 -#, python-format -msgid "Bootstrap setup: %s deleted successfully." -msgstr "" - -#: views.py:114 -#, python-format -msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Are you sure you with to delete the bootstrap setup: %s?" -msgstr "" - -#: views.py:165 -msgid "" -"Cannot execute bootstrap setup, there is existing data. Erase all data and " -"try again." -msgstr "" - -#: views.py:167 -#, python-format -msgid "Error executing bootstrap setup; %s" -msgstr "" - -#: views.py:169 -#, python-format -msgid "Bootstrap setup \"%s\" executed successfully." -msgstr "" - -#: views.py:181 -#, python-format -msgid "" -"Are you sure you wish to execute the database bootstrap setup named: %s?" -msgstr "" - -#: views.py:197 -#, python-format -msgid "Error dumping configuration into a bootstrap setup; %s" -msgstr "" - -#: views.py:201 -msgid "Bootstrap setup created successfully." -msgstr "" - -#: views.py:207 -msgid "dump current configuration into a bootstrap setup" -msgstr "" - -#: views.py:241 views.py:269 -msgid "Bootstrap setup imported successfully." -msgstr "" - -#: views.py:244 -msgid "File is not a bootstrap setup." -msgstr "" - -#: views.py:246 -#, python-format -msgid "Error importing bootstrap setup from file; %s." -msgstr "" - -#: views.py:252 -msgid "Import bootstrap setup from file" -msgstr "" - -#: views.py:272 -msgid "Data from URL is not a bootstrap setup." -msgstr "" - -#: views.py:274 -#, python-format -msgid "Error importing bootstrap setup from URL; %s." -msgstr "" - -#: views.py:280 -msgid "Import bootstrap setup from URL" -msgstr "" - -#: views.py:299 -#, python-format -msgid "Error erasing database; %s" -msgstr "" - -#: views.py:301 -msgid "Database erased successfully." -msgstr "" - -#: views.py:311 -msgid "" -"Are you sure you wish to erase the entire database and document storage?" -msgstr "" - -#: views.py:312 -msgid "" -"All documents, sources, metadata, metadata types, set, tags, indexes and " -"logs will be lost irreversibly!" -msgstr "" - -#: views.py:329 -msgid "Bootstrap repository successfully synchronized." -msgstr "" - -#: views.py:331 -#, python-format -msgid "Bootstrap repository synchronization error: %(error)s" -msgstr "" - -#: views.py:338 -msgid "Are you sure you wish to synchronize with the bootstrap repository?" -msgstr "" diff --git a/mayan/apps/bootstrap/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/bootstrap/locale/ro_RO/LC_MESSAGES/django.mo deleted file mode 100644 index 9bb36dfe73..0000000000 Binary files a/mayan/apps/bootstrap/locale/ro_RO/LC_MESSAGES/django.mo and /dev/null differ diff --git a/mayan/apps/bootstrap/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/bootstrap/locale/ro_RO/LC_MESSAGES/django.po deleted file mode 100644 index 4a73e957a2..0000000000 --- a/mayan/apps/bootstrap/locale/ro_RO/LC_MESSAGES/django.po +++ /dev/null @@ -1,329 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# -# Translators: -# Badea Gabriel , 2013 -msgid "" -msgstr "" -"Project-Id-Version: Mayan EDMS\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:55-0400\n" -"PO-Revision-Date: 2013-02-10 17:10+0000\n" -"Last-Translator: Badea Gabriel \n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/projects/p/mayan-" -"edms/language/ro_RO/)\n" -"Language: ro_RO\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" -"2:1));\n" - -#: forms.py:49 -msgid "Bootstrap setup file" -msgstr "Bootstrap configurare fișier" - -#: forms.py:55 -msgid "Bootstrap setup URL" -msgstr "Bootstrap configurarea URL" - -#: links.py:11 -msgid "bootstrap" -msgstr "bootstrap" - -#: links.py:12 -msgid "bootstrap setup list" -msgstr "bootstrap configurare listă" - -#: links.py:13 -msgid "create new bootstrap setup" -msgstr "configurare a crea bootstrap nou" - -#: links.py:14 -msgid "edit" -msgstr "editează" - -#: links.py:15 -msgid "delete" -msgstr "șterge" - -#: links.py:16 -msgid "details" -msgstr "detalii" - -#: links.py:17 -msgid "execute" -msgstr "executa" - -#: links.py:18 -msgid "dump current setup" -msgstr "dump current setup" - -#: links.py:19 -msgid "export" -msgstr "export" - -#: links.py:20 -msgid "import from file" -msgstr "importa dintr-un fișier" - -#: links.py:21 -msgid "import from URL" -msgstr "importa de la URL" - -#: links.py:22 -msgid "sync with repository" -msgstr "sincronizarea cu repository" - -#: links.py:23 -msgid "erase database" -msgstr "ștergere de date" - -#: literals.py:20 -msgid "JSON" -msgstr "JSON" - -#: literals.py:63 -msgid "YAML" -msgstr "YAML" - -#: literals.py:64 -msgid "Better YAML" -msgstr "Better YAML" - -#: models.py:30 -msgid "name" -msgstr "nume" - -#: models.py:31 -msgid "slug" -msgstr "stăvili" - -#: models.py:32 views.py:35 -msgid "description" -msgstr "descriere" - -#: models.py:33 -msgid "fixture" -msgstr "accesoriu" - -#: models.py:33 -msgid "These are the actual database structure creation instructions." -msgstr "Acestea sunt reale structura instrucțiunile de crearea bazei de date." - -#: models.py:34 views.py:36 -msgid "type" -msgstr "tip" - -#: models.py:35 -msgid "creation date and time" -msgstr "data și ora creării" - -#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173 -msgid "bootstrap setup" -msgstr "bootstrap setup" - -#: models.py:105 views.py:32 -msgid "bootstrap setups" -msgstr "bootstrap setari" - -#: permissions.py:7 -msgid "Database bootstrap" -msgstr "Baza de date bootstrap" - -#: permissions.py:9 -msgid "View bootstrap setups" -msgstr "Vezi setari bootstrap" - -#: permissions.py:10 -msgid "Create bootstrap setups" -msgstr "Creați setari bootstrap" - -#: permissions.py:11 -msgid "Edit bootstrap setups" -msgstr "Editați setări bootstrap" - -#: permissions.py:12 -msgid "Delete bootstrap setups" -msgstr "Ștergeți setari bootstrap" - -#: permissions.py:13 -msgid "Execute bootstrap setups" -msgstr "Executare setari bootstrap" - -#: permissions.py:14 -msgid "Dump the current project\\s setup into a bootstrap setup" -msgstr "Dump proiectul curent \\ setup e într-o configurare bootstrap" - -#: permissions.py:15 -msgid "Export bootstrap setups as files" -msgstr "Export setări bootstrap ca fișiere" - -#: permissions.py:16 -msgid "Import new bootstrap setups" -msgstr "Importul setari noi bootstrap" - -#: permissions.py:17 -msgid "Sync the local bootstrap setups with a published repository" -msgstr "Sincroniza setări locale bootstrap, cu un repository" - -#: permissions.py:18 -msgid "Erase the entire database and document storage" -msgstr "Ștergeți întreaga bază de date și arhiva de documente" - -#: registry.py:7 -msgid "Bootstrap" -msgstr "Bootstrap" - -#: registry.py:8 -msgid "Provides pre configured setups for indexes, document types, tags, etc." -msgstr "" -"Oferă setări pre configurate pentru indicii, tipuri de documente, tag-uri, " -"etc" - -#: views.py:51 -msgid "Bootstrap setup created successfully" -msgstr "Configurarea bootstrap creat cu succes" - -#: views.py:54 -msgid "Error creating bootstrap setup." -msgstr "Eroare la crearea de configurare bootstrap." - -#: views.py:59 -msgid "create bootstrap" -msgstr "creați bootstrap" - -#: views.py:79 -msgid "Bootstrap setup edited successfully" -msgstr "Configurarea bootstrap fost editat cu succes" - -#: views.py:82 -msgid "Error editing bootstrap setup." -msgstr "Eroare editare de configurare bootstrap." - -#: views.py:87 -#, python-format -msgid "edit bootstrap setup: %s" -msgstr "edit configurare bootstrap:% s" - -#: views.py:112 -#, python-format -msgid "Bootstrap setup: %s deleted successfully." -msgstr "Configurare bootstrap:% s eliminat cu succes." - -#: views.py:114 -#, python-format -msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s" -msgstr "Configurare bootstrap:%(bootstrap)s, de ștergere de eroare:%(error)s" - -#: views.py:125 -#, python-format -msgid "Are you sure you with to delete the bootstrap setup: %s?" -msgstr "Ești sigur că vă să ștergeți setarea bootstrap:% s?" - -#: views.py:165 -msgid "" -"Cannot execute bootstrap setup, there is existing data. Erase all data and " -"try again." -msgstr "" -"Nu se poate executa configurarea bootstrap, nu există date existente. Șterge " -"toate datele și încercați din nou." - -#: views.py:167 -#, python-format -msgid "Error executing bootstrap setup; %s" -msgstr "Configurarea bootstrap eroare de executare;% s" - -#: views.py:169 -#, python-format -msgid "Bootstrap setup \"%s\" executed successfully." -msgstr "Bootstrap setup \"%s\" executed successfully." - -#: views.py:181 -#, python-format -msgid "" -"Are you sure you wish to execute the database bootstrap setup named: %s?" -msgstr "" -"Sunteți sigur că doriți să executați configurarea bazei de date bootstrap " -"numit:% s?" - -#: views.py:197 -#, python-format -msgid "Error dumping configuration into a bootstrap setup; %s" -msgstr "Eroare de configurare dumping într-o configurare bootstrap;% s" - -#: views.py:201 -msgid "Bootstrap setup created successfully." -msgstr "Configurarea bootstrap creat cu succes." - -#: views.py:207 -msgid "dump current configuration into a bootstrap setup" -msgstr "utilitară benă configurației actuale într-o configurare bootstrap" - -#: views.py:241 views.py:269 -msgid "Bootstrap setup imported successfully." -msgstr "Configurarea bootstrap importat cu succes." - -#: views.py:244 -msgid "File is not a bootstrap setup." -msgstr "File is not a bootstrap setup." - -#: views.py:246 -#, python-format -msgid "Error importing bootstrap setup from file; %s." -msgstr "Error importing bootstrap setup from file; %s." - -#: views.py:252 -msgid "Import bootstrap setup from file" -msgstr "Import bootstrap setup from file" - -#: views.py:272 -msgid "Data from URL is not a bootstrap setup." -msgstr "Data from URL is not a bootstrap setup." - -#: views.py:274 -#, python-format -msgid "Error importing bootstrap setup from URL; %s." -msgstr "Error importing bootstrap setup from URL; %s." - -#: views.py:280 -msgid "Import bootstrap setup from URL" -msgstr "Import bootstrap setup from URL" - -#: views.py:299 -#, python-format -msgid "Error erasing database; %s" -msgstr "Baza de date Eroare ștergere;% s" - -#: views.py:301 -msgid "Database erased successfully." -msgstr "Baza de date șterse cu succes." - -#: views.py:311 -msgid "" -"Are you sure you wish to erase the entire database and document storage?" -msgstr "" -"Sunteți sigur că doriți să ștergeți întreaga bază de date și stocare a " -"documentelor?" - -#: views.py:312 -msgid "" -"All documents, sources, metadata, metadata types, set, tags, indexes and " -"logs will be lost irreversibly!" -msgstr "" -"Toate documentele, surse, metadate, tipuri de metadate, set, tag-uri, indici " -"și bușteni vor fi pierdute ireversibil!" - -#: views.py:329 -msgid "Bootstrap repository successfully synchronized." -msgstr "Bootstrap repository successfully synchronized." - -#: views.py:331 -#, python-format -msgid "Bootstrap repository synchronization error: %(error)s" -msgstr "Bootstrap repository synchronization error: %(error)s" - -#: views.py:338 -msgid "Are you sure you wish to synchronize with the bootstrap repository?" -msgstr "Are you sure you wish to synchronize with the bootstrap repository?" diff --git a/mayan/apps/bootstrap/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/bootstrap/locale/ru/LC_MESSAGES/django.mo deleted file mode 100644 index 2b3876b839..0000000000 Binary files a/mayan/apps/bootstrap/locale/ru/LC_MESSAGES/django.mo and /dev/null differ diff --git a/mayan/apps/bootstrap/locale/ru/LC_MESSAGES/django.po b/mayan/apps/bootstrap/locale/ru/LC_MESSAGES/django.po deleted file mode 100644 index e9d230bf0b..0000000000 --- a/mayan/apps/bootstrap/locale/ru/LC_MESSAGES/django.po +++ /dev/null @@ -1,323 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# -# Translators: -# Sergey Glita , 2013 -msgid "" -msgstr "" -"Project-Id-Version: Mayan EDMS\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:55-0400\n" -"PO-Revision-Date: 2013-05-14 05:30+0000\n" -"Last-Translator: Sergey Glita \n" -"Language-Team: Russian (http://www.transifex.com/projects/p/mayan-edms/" -"language/ru/)\n" -"Language: ru\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\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" - -#: forms.py:49 -msgid "Bootstrap setup file" -msgstr "Файл заготовки" - -#: forms.py:55 -msgid "Bootstrap setup URL" -msgstr "URL заготовки" - -#: links.py:11 -msgid "bootstrap" -msgstr "заготовка" - -#: links.py:12 -msgid "bootstrap setup list" -msgstr "Список настроек заготовок" - -#: links.py:13 -msgid "create new bootstrap setup" -msgstr "создать новую заготовку" - -#: links.py:14 -msgid "edit" -msgstr "редактировать" - -#: links.py:15 -msgid "delete" -msgstr "удалить" - -#: links.py:16 -msgid "details" -msgstr "детали" - -#: links.py:17 -msgid "execute" -msgstr "выполнять" - -#: links.py:18 -msgid "dump current setup" -msgstr "сохранить текущие настройки" - -#: links.py:19 -msgid "export" -msgstr "экспорт" - -#: links.py:20 -msgid "import from file" -msgstr "импортировать из файла" - -#: links.py:21 -msgid "import from URL" -msgstr "импортировать из URL" - -#: links.py:22 -msgid "sync with repository" -msgstr "Синхронизация с хранилищем" - -#: links.py:23 -msgid "erase database" -msgstr "очистить базу данных" - -#: literals.py:20 -msgid "JSON" -msgstr "JSON" - -#: literals.py:63 -msgid "YAML" -msgstr "YAML" - -#: literals.py:64 -msgid "Better YAML" -msgstr "Better YAML" - -#: models.py:30 -msgid "name" -msgstr "название" - -#: models.py:31 -msgid "slug" -msgstr "жетон" - -#: models.py:32 views.py:35 -msgid "description" -msgstr "описание" - -#: models.py:33 -msgid "fixture" -msgstr "fixture" - -#: models.py:33 -msgid "These are the actual database structure creation instructions." -msgstr "Это фактические инструкции структуру создания базы данных." - -#: models.py:34 views.py:36 -msgid "type" -msgstr "тип" - -#: models.py:35 -msgid "creation date and time" -msgstr "дата и время создания" - -#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173 -msgid "bootstrap setup" -msgstr "настройки заготовок" - -#: models.py:105 views.py:32 -msgid "bootstrap setups" -msgstr "заготовки" - -#: permissions.py:7 -msgid "Database bootstrap" -msgstr "Заготовка базы данных " - -#: permissions.py:9 -msgid "View bootstrap setups" -msgstr "Просмотр заготовок" - -#: permissions.py:10 -msgid "Create bootstrap setups" -msgstr "Создание заготовок" - -#: permissions.py:11 -msgid "Edit bootstrap setups" -msgstr "Изменить заготовку" - -#: permissions.py:12 -msgid "Delete bootstrap setups" -msgstr "Удалить заготовку" - -#: permissions.py:13 -msgid "Execute bootstrap setups" -msgstr "Применить заготовку" - -#: permissions.py:14 -msgid "Dump the current project\\s setup into a bootstrap setup" -msgstr "Дамп текущего проекта \\ установки в заготовку" - -#: permissions.py:15 -msgid "Export bootstrap setups as files" -msgstr "Экспорт заготовок в виде файлов" - -#: permissions.py:16 -msgid "Import new bootstrap setups" -msgstr "Импорт новых заготовок" - -#: permissions.py:17 -msgid "Sync the local bootstrap setups with a published repository" -msgstr "Синхронизация локальных установок с публичным хранилищем" - -#: permissions.py:18 -msgid "Erase the entire database and document storage" -msgstr "Очистить базу данных и хранилище документов" - -#: registry.py:7 -msgid "Bootstrap" -msgstr "Заготовка" - -#: registry.py:8 -msgid "Provides pre configured setups for indexes, document types, tags, etc." -msgstr "Предлагает заготовки для индексов, типов документов, тегов и т.д." - -#: views.py:51 -msgid "Bootstrap setup created successfully" -msgstr "Заготовка создана" - -#: views.py:54 -msgid "Error creating bootstrap setup." -msgstr "Ошибка при создании заготовки." - -#: views.py:59 -msgid "create bootstrap" -msgstr "создание заготовки" - -#: views.py:79 -msgid "Bootstrap setup edited successfully" -msgstr "Заготовка изменена" - -#: views.py:82 -msgid "Error editing bootstrap setup." -msgstr "Ошибка изменения заготовки" - -#: views.py:87 -#, python-format -msgid "edit bootstrap setup: %s" -msgstr "изменить заготовку: %s" - -#: views.py:112 -#, python-format -msgid "Bootstrap setup: %s deleted successfully." -msgstr "Заготовка %s удалена." - -#: views.py:114 -#, python-format -msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s" -msgstr "Заготовка %(bootstrap)s, шибка удаления %(error)s" - -#: views.py:125 -#, python-format -msgid "Are you sure you with to delete the bootstrap setup: %s?" -msgstr "Удалить заготовку %s?" - -#: views.py:165 -msgid "" -"Cannot execute bootstrap setup, there is existing data. Erase all data and " -"try again." -msgstr "" -"Не удается применить заготовку, поскольку имеются данные. Сотрите все данные " -"и повторите попытку." - -#: views.py:167 -#, python-format -msgid "Error executing bootstrap setup; %s" -msgstr "Ошибка применения заготовки; %s" - -#: views.py:169 -#, python-format -msgid "Bootstrap setup \"%s\" executed successfully." -msgstr "Заготовка \"%s\" применена" - -#: views.py:181 -#, python-format -msgid "" -"Are you sure you wish to execute the database bootstrap setup named: %s?" -msgstr "Применить заготовку %s?" - -#: views.py:197 -#, python-format -msgid "Error dumping configuration into a bootstrap setup; %s" -msgstr "Ошибка сохранения конфигурации в заготовку %s" - -#: views.py:201 -msgid "Bootstrap setup created successfully." -msgstr "Заготовка создана" - -#: views.py:207 -msgid "dump current configuration into a bootstrap setup" -msgstr "дамп текущей конфигурации в заготовку" - -#: views.py:241 views.py:269 -msgid "Bootstrap setup imported successfully." -msgstr "Заготовка импортирована" - -#: views.py:244 -msgid "File is not a bootstrap setup." -msgstr "Это не файл заготовки." - -#: views.py:246 -#, python-format -msgid "Error importing bootstrap setup from file; %s." -msgstr "Ошибка импорта заготовки %s." - -#: views.py:252 -msgid "Import bootstrap setup from file" -msgstr "импорт заготовки из файла" - -#: views.py:272 -msgid "Data from URL is not a bootstrap setup." -msgstr "Данные из этого URL не похожи на заготовку" - -#: views.py:274 -#, python-format -msgid "Error importing bootstrap setup from URL; %s." -msgstr "Ошибка импорта заготовки из URL; %s" - -#: views.py:280 -msgid "Import bootstrap setup from URL" -msgstr "импорт заготовки из URL" - -#: views.py:299 -#, python-format -msgid "Error erasing database; %s" -msgstr "Ошибка стирания данных; %s" - -#: views.py:301 -msgid "Database erased successfully." -msgstr "База данных стёрта." - -#: views.py:311 -msgid "" -"Are you sure you wish to erase the entire database and document storage?" -msgstr "Вы уверены, что хотите стереть всю базу данных и хранилище документов?" - -#: views.py:312 -msgid "" -"All documents, sources, metadata, metadata types, set, tags, indexes and " -"logs will be lost irreversibly!" -msgstr "" -"Все документы, источники, метаданные, типы метаданных , наборы, теги, " -"индексы и журналы будут необратимо потеряны!" - -#: views.py:329 -msgid "Bootstrap repository successfully synchronized." -msgstr "Хранилище заготовок синхронизировано." - -#: views.py:331 -#, python-format -msgid "Bootstrap repository synchronization error: %(error)s" -msgstr "Ошибка синхронизации с хранилищем %(error)s" - -#: views.py:338 -msgid "Are you sure you wish to synchronize with the bootstrap repository?" -msgstr "Синхронизировать с хранилищем заготовок?" diff --git a/mayan/apps/bootstrap/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/bootstrap/locale/sl_SI/LC_MESSAGES/django.po deleted file mode 100644 index 1c878f608c..0000000000 --- a/mayan/apps/bootstrap/locale/sl_SI/LC_MESSAGES/django.po +++ /dev/null @@ -1,318 +0,0 @@ -# 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: \n" -"POT-Creation-Date: 2014-07-31 19:55-0400\n" -"PO-Revision-Date: 2012-12-12 06:04+0000\n" -"Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/projects/p/" -"mayan-edms/language/sl_SI/)\n" -"Language: sl_SI\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" -"%100==4 ? 2 : 3);\n" - -#: forms.py:49 -msgid "Bootstrap setup file" -msgstr "" - -#: forms.py:55 -msgid "Bootstrap setup URL" -msgstr "" - -#: links.py:11 -msgid "bootstrap" -msgstr "" - -#: links.py:12 -msgid "bootstrap setup list" -msgstr "" - -#: links.py:13 -msgid "create new bootstrap setup" -msgstr "" - -#: links.py:14 -msgid "edit" -msgstr "" - -#: links.py:15 -msgid "delete" -msgstr "" - -#: links.py:16 -msgid "details" -msgstr "" - -#: links.py:17 -msgid "execute" -msgstr "" - -#: links.py:18 -msgid "dump current setup" -msgstr "" - -#: links.py:19 -msgid "export" -msgstr "" - -#: links.py:20 -msgid "import from file" -msgstr "" - -#: links.py:21 -msgid "import from URL" -msgstr "" - -#: links.py:22 -msgid "sync with repository" -msgstr "" - -#: links.py:23 -msgid "erase database" -msgstr "" - -#: literals.py:20 -msgid "JSON" -msgstr "" - -#: literals.py:63 -msgid "YAML" -msgstr "" - -#: literals.py:64 -msgid "Better YAML" -msgstr "" - -#: models.py:30 -msgid "name" -msgstr "" - -#: models.py:31 -msgid "slug" -msgstr "" - -#: models.py:32 views.py:35 -msgid "description" -msgstr "" - -#: models.py:33 -msgid "fixture" -msgstr "" - -#: models.py:33 -msgid "These are the actual database structure creation instructions." -msgstr "" - -#: models.py:34 views.py:36 -msgid "type" -msgstr "" - -#: models.py:35 -msgid "creation date and time" -msgstr "" - -#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173 -msgid "bootstrap setup" -msgstr "" - -#: models.py:105 views.py:32 -msgid "bootstrap setups" -msgstr "" - -#: permissions.py:7 -msgid "Database bootstrap" -msgstr "" - -#: permissions.py:9 -msgid "View bootstrap setups" -msgstr "" - -#: permissions.py:10 -msgid "Create bootstrap setups" -msgstr "" - -#: permissions.py:11 -msgid "Edit bootstrap setups" -msgstr "" - -#: permissions.py:12 -msgid "Delete bootstrap setups" -msgstr "" - -#: permissions.py:13 -msgid "Execute bootstrap setups" -msgstr "" - -#: permissions.py:14 -msgid "Dump the current project\\s setup into a bootstrap setup" -msgstr "" - -#: permissions.py:15 -msgid "Export bootstrap setups as files" -msgstr "" - -#: permissions.py:16 -msgid "Import new bootstrap setups" -msgstr "" - -#: permissions.py:17 -msgid "Sync the local bootstrap setups with a published repository" -msgstr "" - -#: permissions.py:18 -msgid "Erase the entire database and document storage" -msgstr "" - -#: registry.py:7 -msgid "Bootstrap" -msgstr "" - -#: registry.py:8 -msgid "Provides pre configured setups for indexes, document types, tags, etc." -msgstr "" - -#: views.py:51 -msgid "Bootstrap setup created successfully" -msgstr "" - -#: views.py:54 -msgid "Error creating bootstrap setup." -msgstr "" - -#: views.py:59 -msgid "create bootstrap" -msgstr "" - -#: views.py:79 -msgid "Bootstrap setup edited successfully" -msgstr "" - -#: views.py:82 -msgid "Error editing bootstrap setup." -msgstr "" - -#: views.py:87 -#, python-format -msgid "edit bootstrap setup: %s" -msgstr "" - -#: views.py:112 -#, python-format -msgid "Bootstrap setup: %s deleted successfully." -msgstr "" - -#: views.py:114 -#, python-format -msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Are you sure you with to delete the bootstrap setup: %s?" -msgstr "" - -#: views.py:165 -msgid "" -"Cannot execute bootstrap setup, there is existing data. Erase all data and " -"try again." -msgstr "" - -#: views.py:167 -#, python-format -msgid "Error executing bootstrap setup; %s" -msgstr "" - -#: views.py:169 -#, python-format -msgid "Bootstrap setup \"%s\" executed successfully." -msgstr "" - -#: views.py:181 -#, python-format -msgid "" -"Are you sure you wish to execute the database bootstrap setup named: %s?" -msgstr "" - -#: views.py:197 -#, python-format -msgid "Error dumping configuration into a bootstrap setup; %s" -msgstr "" - -#: views.py:201 -msgid "Bootstrap setup created successfully." -msgstr "" - -#: views.py:207 -msgid "dump current configuration into a bootstrap setup" -msgstr "" - -#: views.py:241 views.py:269 -msgid "Bootstrap setup imported successfully." -msgstr "" - -#: views.py:244 -msgid "File is not a bootstrap setup." -msgstr "" - -#: views.py:246 -#, python-format -msgid "Error importing bootstrap setup from file; %s." -msgstr "" - -#: views.py:252 -msgid "Import bootstrap setup from file" -msgstr "" - -#: views.py:272 -msgid "Data from URL is not a bootstrap setup." -msgstr "" - -#: views.py:274 -#, python-format -msgid "Error importing bootstrap setup from URL; %s." -msgstr "" - -#: views.py:280 -msgid "Import bootstrap setup from URL" -msgstr "" - -#: views.py:299 -#, python-format -msgid "Error erasing database; %s" -msgstr "" - -#: views.py:301 -msgid "Database erased successfully." -msgstr "" - -#: views.py:311 -msgid "" -"Are you sure you wish to erase the entire database and document storage?" -msgstr "" - -#: views.py:312 -msgid "" -"All documents, sources, metadata, metadata types, set, tags, indexes and " -"logs will be lost irreversibly!" -msgstr "" - -#: views.py:329 -msgid "Bootstrap repository successfully synchronized." -msgstr "" - -#: views.py:331 -#, python-format -msgid "Bootstrap repository synchronization error: %(error)s" -msgstr "" - -#: views.py:338 -msgid "Are you sure you wish to synchronize with the bootstrap repository?" -msgstr "" diff --git a/mayan/apps/bootstrap/locale/tr_TR/LC_MESSAGES/django.po b/mayan/apps/bootstrap/locale/tr_TR/LC_MESSAGES/django.po deleted file mode 100644 index 04aa5e372b..0000000000 --- a/mayan/apps/bootstrap/locale/tr_TR/LC_MESSAGES/django.po +++ /dev/null @@ -1,317 +0,0 @@ -# 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: \n" -"POT-Creation-Date: 2014-07-31 19:55-0400\n" -"PO-Revision-Date: 2013-06-10 05:29+0000\n" -"Last-Translator: Roberto Rosario\n" -"Language-Team: Turkish (Turkey) (http://www.transifex.com/projects/p/mayan-" -"edms/language/tr_TR/)\n" -"Language: tr_TR\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#: forms.py:49 -msgid "Bootstrap setup file" -msgstr "" - -#: forms.py:55 -msgid "Bootstrap setup URL" -msgstr "" - -#: links.py:11 -msgid "bootstrap" -msgstr "" - -#: links.py:12 -msgid "bootstrap setup list" -msgstr "" - -#: links.py:13 -msgid "create new bootstrap setup" -msgstr "" - -#: links.py:14 -msgid "edit" -msgstr "" - -#: links.py:15 -msgid "delete" -msgstr "" - -#: links.py:16 -msgid "details" -msgstr "" - -#: links.py:17 -msgid "execute" -msgstr "" - -#: links.py:18 -msgid "dump current setup" -msgstr "" - -#: links.py:19 -msgid "export" -msgstr "" - -#: links.py:20 -msgid "import from file" -msgstr "" - -#: links.py:21 -msgid "import from URL" -msgstr "" - -#: links.py:22 -msgid "sync with repository" -msgstr "" - -#: links.py:23 -msgid "erase database" -msgstr "" - -#: literals.py:20 -msgid "JSON" -msgstr "" - -#: literals.py:63 -msgid "YAML" -msgstr "" - -#: literals.py:64 -msgid "Better YAML" -msgstr "" - -#: models.py:30 -msgid "name" -msgstr "" - -#: models.py:31 -msgid "slug" -msgstr "" - -#: models.py:32 views.py:35 -msgid "description" -msgstr "" - -#: models.py:33 -msgid "fixture" -msgstr "" - -#: models.py:33 -msgid "These are the actual database structure creation instructions." -msgstr "" - -#: models.py:34 views.py:36 -msgid "type" -msgstr "" - -#: models.py:35 -msgid "creation date and time" -msgstr "" - -#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173 -msgid "bootstrap setup" -msgstr "" - -#: models.py:105 views.py:32 -msgid "bootstrap setups" -msgstr "" - -#: permissions.py:7 -msgid "Database bootstrap" -msgstr "" - -#: permissions.py:9 -msgid "View bootstrap setups" -msgstr "" - -#: permissions.py:10 -msgid "Create bootstrap setups" -msgstr "" - -#: permissions.py:11 -msgid "Edit bootstrap setups" -msgstr "" - -#: permissions.py:12 -msgid "Delete bootstrap setups" -msgstr "" - -#: permissions.py:13 -msgid "Execute bootstrap setups" -msgstr "" - -#: permissions.py:14 -msgid "Dump the current project\\s setup into a bootstrap setup" -msgstr "" - -#: permissions.py:15 -msgid "Export bootstrap setups as files" -msgstr "" - -#: permissions.py:16 -msgid "Import new bootstrap setups" -msgstr "" - -#: permissions.py:17 -msgid "Sync the local bootstrap setups with a published repository" -msgstr "" - -#: permissions.py:18 -msgid "Erase the entire database and document storage" -msgstr "" - -#: registry.py:7 -msgid "Bootstrap" -msgstr "" - -#: registry.py:8 -msgid "Provides pre configured setups for indexes, document types, tags, etc." -msgstr "" - -#: views.py:51 -msgid "Bootstrap setup created successfully" -msgstr "" - -#: views.py:54 -msgid "Error creating bootstrap setup." -msgstr "" - -#: views.py:59 -msgid "create bootstrap" -msgstr "" - -#: views.py:79 -msgid "Bootstrap setup edited successfully" -msgstr "" - -#: views.py:82 -msgid "Error editing bootstrap setup." -msgstr "" - -#: views.py:87 -#, python-format -msgid "edit bootstrap setup: %s" -msgstr "" - -#: views.py:112 -#, python-format -msgid "Bootstrap setup: %s deleted successfully." -msgstr "" - -#: views.py:114 -#, python-format -msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Are you sure you with to delete the bootstrap setup: %s?" -msgstr "" - -#: views.py:165 -msgid "" -"Cannot execute bootstrap setup, there is existing data. Erase all data and " -"try again." -msgstr "" - -#: views.py:167 -#, python-format -msgid "Error executing bootstrap setup; %s" -msgstr "" - -#: views.py:169 -#, python-format -msgid "Bootstrap setup \"%s\" executed successfully." -msgstr "" - -#: views.py:181 -#, python-format -msgid "" -"Are you sure you wish to execute the database bootstrap setup named: %s?" -msgstr "" - -#: views.py:197 -#, python-format -msgid "Error dumping configuration into a bootstrap setup; %s" -msgstr "" - -#: views.py:201 -msgid "Bootstrap setup created successfully." -msgstr "" - -#: views.py:207 -msgid "dump current configuration into a bootstrap setup" -msgstr "" - -#: views.py:241 views.py:269 -msgid "Bootstrap setup imported successfully." -msgstr "" - -#: views.py:244 -msgid "File is not a bootstrap setup." -msgstr "" - -#: views.py:246 -#, python-format -msgid "Error importing bootstrap setup from file; %s." -msgstr "" - -#: views.py:252 -msgid "Import bootstrap setup from file" -msgstr "" - -#: views.py:272 -msgid "Data from URL is not a bootstrap setup." -msgstr "" - -#: views.py:274 -#, python-format -msgid "Error importing bootstrap setup from URL; %s." -msgstr "" - -#: views.py:280 -msgid "Import bootstrap setup from URL" -msgstr "" - -#: views.py:299 -#, python-format -msgid "Error erasing database; %s" -msgstr "" - -#: views.py:301 -msgid "Database erased successfully." -msgstr "" - -#: views.py:311 -msgid "" -"Are you sure you wish to erase the entire database and document storage?" -msgstr "" - -#: views.py:312 -msgid "" -"All documents, sources, metadata, metadata types, set, tags, indexes and " -"logs will be lost irreversibly!" -msgstr "" - -#: views.py:329 -msgid "Bootstrap repository successfully synchronized." -msgstr "" - -#: views.py:331 -#, python-format -msgid "Bootstrap repository synchronization error: %(error)s" -msgstr "" - -#: views.py:338 -msgid "Are you sure you wish to synchronize with the bootstrap repository?" -msgstr "" diff --git a/mayan/apps/bootstrap/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/bootstrap/locale/vi_VN/LC_MESSAGES/django.po deleted file mode 100644 index 200f1901e8..0000000000 --- a/mayan/apps/bootstrap/locale/vi_VN/LC_MESSAGES/django.po +++ /dev/null @@ -1,317 +0,0 @@ -# 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: \n" -"POT-Creation-Date: 2014-07-31 19:55-0400\n" -"PO-Revision-Date: 2012-07-23 19:40+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/projects/p/" -"mayan-edms/language/vi_VN/)\n" -"Language: vi_VN\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#: forms.py:49 -msgid "Bootstrap setup file" -msgstr "" - -#: forms.py:55 -msgid "Bootstrap setup URL" -msgstr "" - -#: links.py:11 -msgid "bootstrap" -msgstr "" - -#: links.py:12 -msgid "bootstrap setup list" -msgstr "" - -#: links.py:13 -msgid "create new bootstrap setup" -msgstr "" - -#: links.py:14 -msgid "edit" -msgstr "" - -#: links.py:15 -msgid "delete" -msgstr "" - -#: links.py:16 -msgid "details" -msgstr "" - -#: links.py:17 -msgid "execute" -msgstr "" - -#: links.py:18 -msgid "dump current setup" -msgstr "" - -#: links.py:19 -msgid "export" -msgstr "" - -#: links.py:20 -msgid "import from file" -msgstr "" - -#: links.py:21 -msgid "import from URL" -msgstr "" - -#: links.py:22 -msgid "sync with repository" -msgstr "" - -#: links.py:23 -msgid "erase database" -msgstr "" - -#: literals.py:20 -msgid "JSON" -msgstr "" - -#: literals.py:63 -msgid "YAML" -msgstr "" - -#: literals.py:64 -msgid "Better YAML" -msgstr "" - -#: models.py:30 -msgid "name" -msgstr "" - -#: models.py:31 -msgid "slug" -msgstr "" - -#: models.py:32 views.py:35 -msgid "description" -msgstr "" - -#: models.py:33 -msgid "fixture" -msgstr "" - -#: models.py:33 -msgid "These are the actual database structure creation instructions." -msgstr "" - -#: models.py:34 views.py:36 -msgid "type" -msgstr "" - -#: models.py:35 -msgid "creation date and time" -msgstr "" - -#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173 -msgid "bootstrap setup" -msgstr "" - -#: models.py:105 views.py:32 -msgid "bootstrap setups" -msgstr "" - -#: permissions.py:7 -msgid "Database bootstrap" -msgstr "" - -#: permissions.py:9 -msgid "View bootstrap setups" -msgstr "" - -#: permissions.py:10 -msgid "Create bootstrap setups" -msgstr "" - -#: permissions.py:11 -msgid "Edit bootstrap setups" -msgstr "" - -#: permissions.py:12 -msgid "Delete bootstrap setups" -msgstr "" - -#: permissions.py:13 -msgid "Execute bootstrap setups" -msgstr "" - -#: permissions.py:14 -msgid "Dump the current project\\s setup into a bootstrap setup" -msgstr "" - -#: permissions.py:15 -msgid "Export bootstrap setups as files" -msgstr "" - -#: permissions.py:16 -msgid "Import new bootstrap setups" -msgstr "" - -#: permissions.py:17 -msgid "Sync the local bootstrap setups with a published repository" -msgstr "" - -#: permissions.py:18 -msgid "Erase the entire database and document storage" -msgstr "" - -#: registry.py:7 -msgid "Bootstrap" -msgstr "" - -#: registry.py:8 -msgid "Provides pre configured setups for indexes, document types, tags, etc." -msgstr "" - -#: views.py:51 -msgid "Bootstrap setup created successfully" -msgstr "" - -#: views.py:54 -msgid "Error creating bootstrap setup." -msgstr "" - -#: views.py:59 -msgid "create bootstrap" -msgstr "" - -#: views.py:79 -msgid "Bootstrap setup edited successfully" -msgstr "" - -#: views.py:82 -msgid "Error editing bootstrap setup." -msgstr "" - -#: views.py:87 -#, python-format -msgid "edit bootstrap setup: %s" -msgstr "" - -#: views.py:112 -#, python-format -msgid "Bootstrap setup: %s deleted successfully." -msgstr "" - -#: views.py:114 -#, python-format -msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Are you sure you with to delete the bootstrap setup: %s?" -msgstr "" - -#: views.py:165 -msgid "" -"Cannot execute bootstrap setup, there is existing data. Erase all data and " -"try again." -msgstr "" - -#: views.py:167 -#, python-format -msgid "Error executing bootstrap setup; %s" -msgstr "" - -#: views.py:169 -#, python-format -msgid "Bootstrap setup \"%s\" executed successfully." -msgstr "" - -#: views.py:181 -#, python-format -msgid "" -"Are you sure you wish to execute the database bootstrap setup named: %s?" -msgstr "" - -#: views.py:197 -#, python-format -msgid "Error dumping configuration into a bootstrap setup; %s" -msgstr "" - -#: views.py:201 -msgid "Bootstrap setup created successfully." -msgstr "" - -#: views.py:207 -msgid "dump current configuration into a bootstrap setup" -msgstr "" - -#: views.py:241 views.py:269 -msgid "Bootstrap setup imported successfully." -msgstr "" - -#: views.py:244 -msgid "File is not a bootstrap setup." -msgstr "" - -#: views.py:246 -#, python-format -msgid "Error importing bootstrap setup from file; %s." -msgstr "" - -#: views.py:252 -msgid "Import bootstrap setup from file" -msgstr "" - -#: views.py:272 -msgid "Data from URL is not a bootstrap setup." -msgstr "" - -#: views.py:274 -#, python-format -msgid "Error importing bootstrap setup from URL; %s." -msgstr "" - -#: views.py:280 -msgid "Import bootstrap setup from URL" -msgstr "" - -#: views.py:299 -#, python-format -msgid "Error erasing database; %s" -msgstr "" - -#: views.py:301 -msgid "Database erased successfully." -msgstr "" - -#: views.py:311 -msgid "" -"Are you sure you wish to erase the entire database and document storage?" -msgstr "" - -#: views.py:312 -msgid "" -"All documents, sources, metadata, metadata types, set, tags, indexes and " -"logs will be lost irreversibly!" -msgstr "" - -#: views.py:329 -msgid "Bootstrap repository successfully synchronized." -msgstr "" - -#: views.py:331 -#, python-format -msgid "Bootstrap repository synchronization error: %(error)s" -msgstr "" - -#: views.py:338 -msgid "Are you sure you wish to synchronize with the bootstrap repository?" -msgstr "" diff --git a/mayan/apps/bootstrap/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/bootstrap/locale/zh_CN/LC_MESSAGES/django.mo deleted file mode 100644 index 4bbbde794c..0000000000 Binary files a/mayan/apps/bootstrap/locale/zh_CN/LC_MESSAGES/django.mo and /dev/null differ diff --git a/mayan/apps/bootstrap/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/bootstrap/locale/zh_CN/LC_MESSAGES/django.po deleted file mode 100644 index 38ddb73262..0000000000 --- a/mayan/apps/bootstrap/locale/zh_CN/LC_MESSAGES/django.po +++ /dev/null @@ -1,318 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# -# Translators: -# Translators: -# Ford Guo , 2014 -msgid "" -msgstr "" -"Project-Id-Version: Mayan EDMS\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:55-0400\n" -"PO-Revision-Date: 2014-09-25 14:29+0000\n" -"Last-Translator: Ford Guo \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/mayan-edms/language/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#: forms.py:49 -msgid "Bootstrap setup file" -msgstr "引导设置文件" - -#: forms.py:55 -msgid "Bootstrap setup URL" -msgstr "引导设置URL" - -#: links.py:11 -msgid "bootstrap" -msgstr "引导" - -#: links.py:12 -msgid "bootstrap setup list" -msgstr "引导设置列表" - -#: links.py:13 -msgid "create new bootstrap setup" -msgstr "新建引导设置" - -#: links.py:14 -msgid "edit" -msgstr "编辑" - -#: links.py:15 -msgid "delete" -msgstr "删除" - -#: links.py:16 -msgid "details" -msgstr "详细" - -#: links.py:17 -msgid "execute" -msgstr "执行" - -#: links.py:18 -msgid "dump current setup" -msgstr "导出当前设置" - -#: links.py:19 -msgid "export" -msgstr "导出" - -#: links.py:20 -msgid "import from file" -msgstr "从文件导入" - -#: links.py:21 -msgid "import from URL" -msgstr "从URL导入" - -#: links.py:22 -msgid "sync with repository" -msgstr "同步存储库" - -#: links.py:23 -msgid "erase database" -msgstr "删除数据库" - -#: literals.py:20 -msgid "JSON" -msgstr "JSON" - -#: literals.py:63 -msgid "YAML" -msgstr "YAML" - -#: literals.py:64 -msgid "Better YAML" -msgstr "Better YAML" - -#: models.py:30 -msgid "name" -msgstr "名称" - -#: models.py:31 -msgid "slug" -msgstr "" - -#: models.py:32 views.py:35 -msgid "description" -msgstr "描述" - -#: models.py:33 -msgid "fixture" -msgstr "" - -#: models.py:33 -msgid "These are the actual database structure creation instructions." -msgstr "" - -#: models.py:34 views.py:36 -msgid "type" -msgstr "类型" - -#: models.py:35 -msgid "creation date and time" -msgstr "创建日期时间" - -#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173 -msgid "bootstrap setup" -msgstr "引导设置" - -#: models.py:105 views.py:32 -msgid "bootstrap setups" -msgstr "引导设置" - -#: permissions.py:7 -msgid "Database bootstrap" -msgstr "数据库引导" - -#: permissions.py:9 -msgid "View bootstrap setups" -msgstr "查看引导设置" - -#: permissions.py:10 -msgid "Create bootstrap setups" -msgstr "创建引导设置" - -#: permissions.py:11 -msgid "Edit bootstrap setups" -msgstr "编辑引导设置" - -#: permissions.py:12 -msgid "Delete bootstrap setups" -msgstr "删除引导设置" - -#: permissions.py:13 -msgid "Execute bootstrap setups" -msgstr "执行引导设置" - -#: permissions.py:14 -msgid "Dump the current project\\s setup into a bootstrap setup" -msgstr "" - -#: permissions.py:15 -msgid "Export bootstrap setups as files" -msgstr "" - -#: permissions.py:16 -msgid "Import new bootstrap setups" -msgstr "" - -#: permissions.py:17 -msgid "Sync the local bootstrap setups with a published repository" -msgstr "" - -#: permissions.py:18 -msgid "Erase the entire database and document storage" -msgstr "" - -#: registry.py:7 -msgid "Bootstrap" -msgstr "" - -#: registry.py:8 -msgid "Provides pre configured setups for indexes, document types, tags, etc." -msgstr "" - -#: views.py:51 -msgid "Bootstrap setup created successfully" -msgstr "" - -#: views.py:54 -msgid "Error creating bootstrap setup." -msgstr "" - -#: views.py:59 -msgid "create bootstrap" -msgstr "" - -#: views.py:79 -msgid "Bootstrap setup edited successfully" -msgstr "" - -#: views.py:82 -msgid "Error editing bootstrap setup." -msgstr "" - -#: views.py:87 -#, python-format -msgid "edit bootstrap setup: %s" -msgstr "" - -#: views.py:112 -#, python-format -msgid "Bootstrap setup: %s deleted successfully." -msgstr "" - -#: views.py:114 -#, python-format -msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Are you sure you with to delete the bootstrap setup: %s?" -msgstr "" - -#: views.py:165 -msgid "" -"Cannot execute bootstrap setup, there is existing data. Erase all data and " -"try again." -msgstr "" - -#: views.py:167 -#, python-format -msgid "Error executing bootstrap setup; %s" -msgstr "" - -#: views.py:169 -#, python-format -msgid "Bootstrap setup \"%s\" executed successfully." -msgstr "" - -#: views.py:181 -#, python-format -msgid "" -"Are you sure you wish to execute the database bootstrap setup named: %s?" -msgstr "" - -#: views.py:197 -#, python-format -msgid "Error dumping configuration into a bootstrap setup; %s" -msgstr "" - -#: views.py:201 -msgid "Bootstrap setup created successfully." -msgstr "" - -#: views.py:207 -msgid "dump current configuration into a bootstrap setup" -msgstr "" - -#: views.py:241 views.py:269 -msgid "Bootstrap setup imported successfully." -msgstr "" - -#: views.py:244 -msgid "File is not a bootstrap setup." -msgstr "" - -#: views.py:246 -#, python-format -msgid "Error importing bootstrap setup from file; %s." -msgstr "" - -#: views.py:252 -msgid "Import bootstrap setup from file" -msgstr "" - -#: views.py:272 -msgid "Data from URL is not a bootstrap setup." -msgstr "" - -#: views.py:274 -#, python-format -msgid "Error importing bootstrap setup from URL; %s." -msgstr "" - -#: views.py:280 -msgid "Import bootstrap setup from URL" -msgstr "" - -#: views.py:299 -#, python-format -msgid "Error erasing database; %s" -msgstr "" - -#: views.py:301 -msgid "Database erased successfully." -msgstr "" - -#: views.py:311 -msgid "" -"Are you sure you wish to erase the entire database and document storage?" -msgstr "" - -#: views.py:312 -msgid "" -"All documents, sources, metadata, metadata types, set, tags, indexes and " -"logs will be lost irreversibly!" -msgstr "" - -#: views.py:329 -msgid "Bootstrap repository successfully synchronized." -msgstr "" - -#: views.py:331 -#, python-format -msgid "Bootstrap repository synchronization error: %(error)s" -msgstr "" - -#: views.py:338 -msgid "Are you sure you wish to synchronize with the bootstrap repository?" -msgstr "" diff --git a/mayan/apps/bootstrap/management/commands/erase_data.py b/mayan/apps/bootstrap/management/commands/erase_data.py deleted file mode 100644 index 29d52b1d07..0000000000 --- a/mayan/apps/bootstrap/management/commands/erase_data.py +++ /dev/null @@ -1,63 +0,0 @@ -from __future__ import absolute_import - -from optparse import make_option - -from django.core.management.base import NoArgsCommand, CommandError -from django.core.management.color import no_style -from django.core.management.sql import emit_post_sync_signal -from django.db import models, router, connections, DEFAULT_DB_ALIAS - -from ...classes import Cleanup - - -class Command(NoArgsCommand): - option_list = NoArgsCommand.option_list + ( - make_option('--noinput', action='store_false', dest='interactive', default=True, - help='Tells Django to NOT prompt the user for input of any kind.'), - make_option('--database', action='store', dest='database', - default=DEFAULT_DB_ALIAS, help='Nominates a database to erase. ' - 'Defaults to the "default" database.'), - ) - help = 'Erases all data in a Mayan EDMS installation.' - - def handle_noargs(self, **options): - db = options.get('database', DEFAULT_DB_ALIAS) - connection = connections[db] - verbosity = int(options.get('verbosity', 1)) - interactive = options.get('interactive') - - self.style = no_style() - - if interactive: - confirm = raw_input("""You have requested a erase all the data in the current Mayan EDMS installation. -This will IRREVERSIBLY ERASE all user data currently in the database, -and return each table to the state it was in after syncdb. -Are you sure you want to do this? - - Type 'yes' to continue, or 'no' to cancel: """) - else: - confirm = 'yes' - - if confirm == 'yes': - try: - Cleanup.execute_all() - except Exception as exception: - raise CommandError("""Unable to erase data. Possible reasons: - * The database isn't running or isn't configured correctly. - * At least one of the expected database tables doesn't exist.""") - # Emit the post sync signal. This allows individual - # applications to respond as if the database had been - # sync'd from scratch. - all_models = [] - for app in models.get_apps(): - all_models.extend([ - m for m in models.get_models(app, include_auto_created=True) - if router.allow_syncdb(db, m) - ]) - emit_post_sync_signal(set(all_models), verbosity, interactive, db) - - # Reinstall the initial_data fixture. - kwargs = options.copy() - kwargs['database'] = db - else: - print 'Erase data cancelled.' diff --git a/mayan/apps/bootstrap/management/commands/execute_bootstrap.py b/mayan/apps/bootstrap/management/commands/execute_bootstrap.py deleted file mode 100644 index 79a5799d04..0000000000 --- a/mayan/apps/bootstrap/management/commands/execute_bootstrap.py +++ /dev/null @@ -1,29 +0,0 @@ -from __future__ import absolute_import - -from django.core.management.base import BaseCommand, CommandError - -from ...models import BootstrapSetup -from ...exceptions import ExistingData - - -class Command(BaseCommand): - help = 'Execute a bootstrap setup by the given slug.' - args = '[bootstrap setup slug]' - - def handle(self, bootstrap_setup_slug=None, **options): - if not bootstrap_setup_slug: - raise CommandError('Enter one bootstrap setup slug.') - - # Get corresponding bootstrap setup instance - try: - bootstrap_setup = BootstrapSetup.objects.get(slug=bootstrap_setup_slug) - except BootstrapSetup.DoesNotExist: - raise CommandError('No bootstrap setup with such a slug.') - - # Try to execute bootstrap setup, catch errors - try: - bootstrap_setup.execute() - except ExistingData: - raise CommandError('Cannot execute bootstrap setup, there is existing data. Erase all data and try again.') - except Exception as exception: - raise CommandError('Unhandled exception: %s' % exception) diff --git a/mayan/apps/bootstrap/managers.py b/mayan/apps/bootstrap/managers.py deleted file mode 100644 index b2e6a3fcaa..0000000000 --- a/mayan/apps/bootstrap/managers.py +++ /dev/null @@ -1,72 +0,0 @@ -from __future__ import absolute_import - -from json import loads -import logging - -import requests - -from django.db import IntegrityError, models -from django.db.models import Q - -from .classes import BootstrapModel, FixtureMetadata -from .literals import (FIXTURE_TYPE_FIXTURE_PROCESS, FIXTURE_TYPE_EMPTY_FIXTURE, - BOOTSTRAP_REPOSITORY_URL, BOOTSTRAP_REPOSITORY_INDEX_FILE) - -logger = logging.getLogger(__name__) - - -class BootstrapSetupManager(models.Manager): - def dump(self, serialization_format): - """ - Get the current setup of Mayan in bootstrap format fixture - """ - result = [] - logger.debug('start dumping data') - for bootstrap_model in BootstrapModel.get_all(sort_by_dependencies=True): - logger.debug('dumping model: %s' % bootstrap_model.get_fullname()) - model_fixture = bootstrap_model.dump(serialization_format) - # Only add non empty model fixtures - if not FIXTURE_TYPE_EMPTY_FIXTURE[serialization_format](model_fixture): - result.append(model_fixture) - return FIXTURE_TYPE_FIXTURE_PROCESS[serialization_format]('\n'.join(result)) - - def import_setup(self, file_data, overwrite=False): - BootstrapModel.check_magic_number(file_data) - metadata = FixtureMetadata.read_all(file_data) - instance = self.model(fixture=file_data, **metadata) - try: - instance.save(update_metadata=False) - except IntegrityError: - if not overwrite: - raise - else: - # Delete conflicting bootstrap setups - query = Q() - if 'slug' in metadata: - query = query | Q(slug=metadata['slug']) - - if 'name' in metadata: - query = query | Q(name=metadata['name']) - - self.model.objects.filter(query).delete() - self.import_setup(file_data) - - def import_from_file(self, files): - file_data = files.read() - self.import_setup(file_data) - - def import_from_url(self, url, **kwargs): - response = requests.get(url) - if response.status_code == requests.codes.ok: - self.import_setup(response.text, **kwargs) - else: - response.raise_for_status() - - def repository_sync(self): - response = requests.get('%s/%s' % (BOOTSTRAP_REPOSITORY_URL, BOOTSTRAP_REPOSITORY_INDEX_FILE)) - if response.status_code == requests.codes.ok: - for entry in loads(response.text): - bootstrap_setup_url = '%s/%s' % (BOOTSTRAP_REPOSITORY_URL, entry['filename']) - self.import_from_url(bootstrap_setup_url, overwrite=True) - else: - response.raise_for_status() diff --git a/mayan/apps/bootstrap/migrations/0001_initial.py b/mayan/apps/bootstrap/migrations/0001_initial.py deleted file mode 100644 index c8593a0e00..0000000000 --- a/mayan/apps/bootstrap/migrations/0001_initial.py +++ /dev/null @@ -1,35 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - # Adding model 'BootstrapSetup' - db.create_table('bootstrap_bootstrapsetup', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=128)), - ('description', self.gf('django.db.models.fields.TextField')(blank=True)), - ('fixture', self.gf('django.db.models.fields.TextField')()), - ('type', self.gf('django.db.models.fields.CharField')(max_length=16)), - )) - db.send_create_signal('bootstrap', ['BootstrapSetup']) - - def backwards(self, orm): - # Deleting model 'BootstrapSetup' - db.delete_table('bootstrap_bootstrapsetup') - - models = { - 'bootstrap.bootstrapsetup': { - 'Meta': {'ordering': "['name']", 'object_name': 'BootstrapSetup'}, - 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'fixture': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}), - 'type': ('django.db.models.fields.CharField', [], {'max_length': '16'}) - } - } - - complete_apps = ['bootstrap'] diff --git a/mayan/apps/bootstrap/migrations/0002_auto__add_field_bootstrapsetup_created.py b/mayan/apps/bootstrap/migrations/0002_auto__add_field_bootstrapsetup_created.py deleted file mode 100644 index a342cea06b..0000000000 --- a/mayan/apps/bootstrap/migrations/0002_auto__add_field_bootstrapsetup_created.py +++ /dev/null @@ -1,32 +0,0 @@ -# -*- coding: utf-8 -*- -from south.utils import datetime_utils as 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 'BootstrapSetup.created' - db.add_column('bootstrap_bootstrapsetup', 'created', - self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime(2012, 10, 8, 0, 0)), - keep_default=False) - - def backwards(self, orm): - # Deleting field 'BootstrapSetup.created' - db.delete_column('bootstrap_bootstrapsetup', 'created') - - models = { - 'bootstrap.bootstrapsetup': { - 'Meta': {'ordering': "['name']", 'object_name': 'BootstrapSetup'}, - 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2012, 10, 8, 0, 0)'}), - 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'fixture': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}), - 'type': ('django.db.models.fields.CharField', [], {'max_length': '16'}) - } - } - - complete_apps = ['bootstrap'] diff --git a/mayan/apps/bootstrap/migrations/0003_auto__add_field_bootstrapsetup_slug.py b/mayan/apps/bootstrap/migrations/0003_auto__add_field_bootstrapsetup_slug.py deleted file mode 100644 index dc3bfa39a0..0000000000 --- a/mayan/apps/bootstrap/migrations/0003_auto__add_field_bootstrapsetup_slug.py +++ /dev/null @@ -1,32 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - # Adding field 'BootstrapSetup.slug' - db.add_column('bootstrap_bootstrapsetup', 'slug', - self.gf('django.db.models.fields.SlugField')(default='', unique=True, max_length=128, blank=True), - keep_default=False) - - def backwards(self, orm): - # Deleting field 'BootstrapSetup.slug' - db.delete_column('bootstrap_bootstrapsetup', 'slug') - - models = { - 'bootstrap.bootstrapsetup': { - 'Meta': {'ordering': "['name']", 'object_name': 'BootstrapSetup'}, - 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2012, 10, 16, 0, 0)'}), - 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'fixture': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}), - 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '128', 'blank': 'True'}), - 'type': ('django.db.models.fields.CharField', [], {'max_length': '16'}) - } - } - - complete_apps = ['bootstrap'] diff --git a/mayan/apps/bootstrap/models.py b/mayan/apps/bootstrap/models.py deleted file mode 100644 index d3a4fa8f3f..0000000000 --- a/mayan/apps/bootstrap/models.py +++ /dev/null @@ -1,106 +0,0 @@ -from __future__ import absolute_import - -import os -import re -import tempfile - -import slugify - -try: - from cStringIO import StringIO -except ImportError: - from StringIO import StringIO - -from django.core import management -from django.core.files.uploadedfile import SimpleUploadedFile -from django.db import models -from django.utils.timezone import now -from django.utils.translation import ugettext_lazy as _ - -from .classes import BootstrapModel, FixtureMetadata -from .literals import (FIXTURE_TYPES_CHOICES, FIXTURE_FILE_TYPE, COMMAND_LOADDATA, - BOOTSTRAP_EXTENSION, FIXTURE_METADATA_REMARK_CHARACTER) -from .managers import BootstrapSetupManager - - -class BootstrapSetup(models.Model): - """ - Model to store the fixture for a pre configured setup. - """ - name = models.CharField(max_length=128, verbose_name=_(u'name'), unique=True) - slug = models.SlugField(max_length=128, verbose_name=_(u'slug'), unique=True, blank=True) - description = models.TextField(verbose_name=_(u'description'), blank=True) - fixture = models.TextField(verbose_name=_(u'fixture'), help_text=_(u'These are the actual database structure creation instructions.')) - type = models.CharField(max_length=16, verbose_name=_(u'type'), choices=FIXTURE_TYPES_CHOICES) - created = models.DateTimeField(verbose_name=_('creation date and time'), default=lambda: now(), editable=False) - - objects = BootstrapSetupManager() - - def __unicode__(self): - return self.name - - def get_extension(self): - """ - Return the fixture file extension based on the fixture type. - """ - return FIXTURE_FILE_TYPE[self.type] - - def execute(self): - """ - Read a bootstrap's fixture and create the corresponding model - instances based on it. - """ - BootstrapModel.check_for_data() - handle, filepath = tempfile.mkstemp() - # Just need the filepath, close the file description - os.close(handle) - - filepath = os.path.extsep.join([filepath, self.get_extension()]) - - with open(filepath, 'w') as file_handle: - file_handle.write(self.cleaned_fixture) - - content = StringIO() - management.call_command(COMMAND_LOADDATA, filepath, verbosity=0, stderr=content) - content.seek(0, os.SEEK_END) - if content.tell(): - content.seek(0) - raise Exception(content.readlines()[-2]) - - os.unlink(filepath) - - @property - def cleaned_fixture(self): - """ - Return the bootstrap setup's fixture without comments. - """ - return re.sub(re.compile('%s.*?\n' % FIXTURE_METADATA_REMARK_CHARACTER), '', self.fixture) - - def get_metadata_string(self): - """ - Return all the metadata for the current bootstrap fixture. - """ - return FixtureMetadata.generate_all(self) - - def get_filename(self): - return os.extsep.join([self.name, BOOTSTRAP_EXTENSION]) - - def as_file(self): - return SimpleUploadedFile(name=self.get_filename(), content=self.fixture) - - def save(self, *args, **kwargs): - update_metadata = kwargs.pop('update_metadata', True) - if update_metadata: - self.fixture = '%s\n%s\n%s' % ( - BootstrapModel.get_magic_number(), - self.get_metadata_string(), - self.cleaned_fixture - ) - if not self.slug: - self.slug = slugify.slugify(self.name) - return super(BootstrapSetup, self).save(*args, **kwargs) - - class Meta: - verbose_name = _(u'bootstrap setup') - verbose_name_plural = _(u'bootstrap setups') - ordering = ['name'] diff --git a/mayan/apps/bootstrap/permissions.py b/mayan/apps/bootstrap/permissions.py deleted file mode 100644 index 71165fe954..0000000000 --- a/mayan/apps/bootstrap/permissions.py +++ /dev/null @@ -1,18 +0,0 @@ -from __future__ import absolute_import - -from django.utils.translation import ugettext_lazy as _ - -from permissions.models import PermissionNamespace, Permission - -namespace = PermissionNamespace('bootstrap', _(u'Database bootstrap')) - -PERMISSION_BOOTSTRAP_VIEW = Permission.objects.register(namespace, 'bootstrap_view', _(u'View bootstrap setups')) -PERMISSION_BOOTSTRAP_CREATE = Permission.objects.register(namespace, 'bootstrap_create', _(u'Create bootstrap setups')) -PERMISSION_BOOTSTRAP_EDIT = Permission.objects.register(namespace, 'bootstrap_edit', _(u'Edit bootstrap setups')) -PERMISSION_BOOTSTRAP_DELETE = Permission.objects.register(namespace, 'bootstrap_delete', _(u'Delete bootstrap setups')) -PERMISSION_BOOTSTRAP_EXECUTE = Permission.objects.register(namespace, 'bootstrap_execute', _(u'Execute bootstrap setups')) -PERMISSION_BOOTSTRAP_DUMP = Permission.objects.register(namespace, 'bootstrap_dump', _(u'Dump the current project\s setup into a bootstrap setup')) -PERMISSION_BOOTSTRAP_EXPORT = Permission.objects.register(namespace, 'bootstrap_export', _(u'Export bootstrap setups as files')) -PERMISSION_BOOTSTRAP_IMPORT = Permission.objects.register(namespace, 'bootstrap_import', _(u'Import new bootstrap setups')) -PERMISSION_BOOTSTRAP_REPOSITORY_SYNC = Permission.objects.register(namespace, 'bootstrap_repo_sync', _(u'Sync the local bootstrap setups with a published repository')) -PERMISSION_NUKE_DATABASE = Permission.objects.register(namespace, 'nuke_database', _(u'Erase the entire database and document storage')) diff --git a/mayan/apps/bootstrap/post_init.py b/mayan/apps/bootstrap/post_init.py deleted file mode 100644 index 16931f4aaa..0000000000 --- a/mayan/apps/bootstrap/post_init.py +++ /dev/null @@ -1,31 +0,0 @@ -from __future__ import absolute_import - -import datetime - -from django.utils.timezone import now - -from mayan import __version__ -from navigation.api import register_links - -from .classes import FixtureMetadata -from .links import (link_bootstrap_setup_create, link_bootstrap_setup_execute, - link_bootstrap_setup_list, link_bootstrap_setup_edit, link_bootstrap_setup_delete, - link_bootstrap_setup_view, link_bootstrap_setup_dump, link_bootstrap_setup_export, - link_bootstrap_setup_import_from_url, link_bootstrap_setup_import_from_file, - link_bootstrap_setup_repository_sync) -from .literals import (FIXTURE_METADATA_CREATED, FIXTURE_METADATA_EDITED, - FIXTURE_METADATA_MAYAN_VERSION, FIXTURE_METADATA_FORMAT, FIXTURE_METADATA_NAME, - FIXTURE_METADATA_DESCRIPTION, DATETIME_STRING_FORMAT, FIXTURE_METADATA_SLUG) -from .models import BootstrapSetup - -register_links([BootstrapSetup], [link_bootstrap_setup_view, link_bootstrap_setup_edit, link_bootstrap_setup_delete, link_bootstrap_setup_execute, link_bootstrap_setup_export]) -register_links([BootstrapSetup], [link_bootstrap_setup_list, link_bootstrap_setup_create, link_bootstrap_setup_dump, link_bootstrap_setup_import_from_file, link_bootstrap_setup_import_from_url, link_bootstrap_setup_repository_sync], menu_name='secondary_menu') -register_links(['bootstrap_setup_list', 'bootstrap_setup_create', 'bootstrap_setup_dump', 'bootstrap_setup_import_from_file', 'bootstrap_setup_import_from_url', 'bootstrap_setup_repository_sync'], [link_bootstrap_setup_list, link_bootstrap_setup_create, link_bootstrap_setup_dump, link_bootstrap_setup_import_from_file, link_bootstrap_setup_import_from_url, link_bootstrap_setup_repository_sync], menu_name='secondary_menu') - -FixtureMetadata(FIXTURE_METADATA_CREATED, generate_function=lambda fixture_instance: fixture_instance.created.strftime(DATETIME_STRING_FORMAT), read_function=lambda x: datetime.datetime.strptime(x, DATETIME_STRING_FORMAT), property_name='created') -FixtureMetadata(FIXTURE_METADATA_EDITED, generate_function=lambda fixture_instance: now().strftime(DATETIME_STRING_FORMAT)) -FixtureMetadata(FIXTURE_METADATA_MAYAN_VERSION, generate_function=lambda fixture_instance: __version__) -FixtureMetadata(FIXTURE_METADATA_FORMAT, generate_function=lambda fixture_instance: fixture_instance.type, property_name='type') -FixtureMetadata(FIXTURE_METADATA_NAME, generate_function=lambda fixture_instance: fixture_instance.name, property_name='name') -FixtureMetadata(FIXTURE_METADATA_SLUG, generate_function=lambda fixture_instance: fixture_instance.slug, property_name='slug') -FixtureMetadata(FIXTURE_METADATA_DESCRIPTION, generate_function=lambda fixture_instance: fixture_instance.description, property_name='description') diff --git a/mayan/apps/bootstrap/registry.py b/mayan/apps/bootstrap/registry.py deleted file mode 100644 index 22fcdc0242..0000000000 --- a/mayan/apps/bootstrap/registry.py +++ /dev/null @@ -1,10 +0,0 @@ -from __future__ import absolute_import - -from django.utils.translation import ugettext_lazy as _ - -from .links import link_bootstrap_setup_tool, link_erase_database - -label = _(u'Bootstrap') -description = _(u'Provides pre configured setups for indexes, document types, tags, etc.') -dependencies = ['app_registry', 'icons', 'navigation', 'documents', 'indexing', 'metadata', 'tags'] -setup_links = [link_bootstrap_setup_tool, link_erase_database] diff --git a/mayan/apps/bootstrap/static/images/icons/lightning.png b/mayan/apps/bootstrap/static/images/icons/lightning.png deleted file mode 100644 index df8dffc658..0000000000 Binary files a/mayan/apps/bootstrap/static/images/icons/lightning.png and /dev/null differ diff --git a/mayan/apps/bootstrap/static/images/icons/lightning_delete.png b/mayan/apps/bootstrap/static/images/icons/lightning_delete.png deleted file mode 100644 index 9253d67324..0000000000 Binary files a/mayan/apps/bootstrap/static/images/icons/lightning_delete.png and /dev/null differ diff --git a/mayan/apps/bootstrap/static/images/icons/lightning_go.png b/mayan/apps/bootstrap/static/images/icons/lightning_go.png deleted file mode 100644 index 33833b4cf0..0000000000 Binary files a/mayan/apps/bootstrap/static/images/icons/lightning_go.png and /dev/null differ diff --git a/mayan/apps/bootstrap/static/images/icons/radioactivity.png b/mayan/apps/bootstrap/static/images/icons/radioactivity.png deleted file mode 100644 index ad5d5348ff..0000000000 Binary files a/mayan/apps/bootstrap/static/images/icons/radioactivity.png and /dev/null differ diff --git a/mayan/apps/bootstrap/static/images/icons/world.png b/mayan/apps/bootstrap/static/images/icons/world.png deleted file mode 100755 index 644d9d53a7..0000000000 Binary files a/mayan/apps/bootstrap/static/images/icons/world.png and /dev/null differ diff --git a/mayan/apps/bootstrap/urls.py b/mayan/apps/bootstrap/urls.py deleted file mode 100644 index c301667001..0000000000 --- a/mayan/apps/bootstrap/urls.py +++ /dev/null @@ -1,16 +0,0 @@ -from django.conf.urls import patterns, url - -urlpatterns = patterns('bootstrap.views', - url(r'^setup/list/$', 'bootstrap_setup_list', (), 'bootstrap_setup_list'), - url(r'^setup/create/$', 'bootstrap_setup_create', (), 'bootstrap_setup_create'), - url(r'^setup/(?P\d+)/edit/$', 'bootstrap_setup_edit', (), 'bootstrap_setup_edit'), - url(r'^setup/(?P\d+)/delete/$', 'bootstrap_setup_delete', (), 'bootstrap_setup_delete'), - url(r'^setup/(?P\d+)/$', 'bootstrap_setup_view', (), 'bootstrap_setup_view'), - url(r'^setup/(?P\d+)/execute/$', 'bootstrap_setup_execute', (), 'bootstrap_setup_execute'), - url(r'^setup/(?P\d+)/export/$', 'bootstrap_setup_export', (), 'bootstrap_setup_export'), - url(r'^setup/dump/$', 'bootstrap_setup_dump', (), 'bootstrap_setup_dump'), - url(r'^setup/import/file/$', 'bootstrap_setup_import_from_file', (), 'bootstrap_setup_import_from_file'), - url(r'^setup/import/url/$', 'bootstrap_setup_import_from_url', (), 'bootstrap_setup_import_from_url'), - url(r'^setup/repository/sync/$', 'bootstrap_setup_repository_sync', (), 'bootstrap_setup_repository_sync'), - url(r'^nuke/$', 'erase_database_view', (), 'erase_database_view'), -) diff --git a/mayan/apps/bootstrap/utils.py b/mayan/apps/bootstrap/utils.py deleted file mode 100644 index 2a750da526..0000000000 --- a/mayan/apps/bootstrap/utils.py +++ /dev/null @@ -1,44 +0,0 @@ -# {{{ http://code.activestate.com/recipes/578272/ (r1) - - -def toposort2(data): - """Dependencies are expressed as a dictionary whose keys are items - and whose values are a set of dependent items. Output is a list of - sets in topological order. The first set consists of items with no - dependences, each subsequent set consists of items that depend upon - items in the preceeding sets. - - >>> print '\\n'.join(repr(sorted(x)) for x in toposort2({ - ... 2: set([11]), - ... 9: set([11,8]), - ... 10: set([11,3]), - ... 11: set([7,5]), - ... 8: set([7,3]), - ... }) ) - [3, 5, 7] - [8, 11] - [2, 9, 10] - - """ - - from functools import reduce - - # Ignore self dependencies. - for k, v in data.items(): - v.discard(k) - # Find all items that don't depend on anything. - extra_items_in_deps = reduce(set.union, data.itervalues()) - set(data.iterkeys()) - # Add empty dependences where needed - for item in extra_items_in_deps: - data[item] = set() - while True: - ordered = set(item for item, dep in data.iteritems() if not dep) - if not ordered: - break - yield ordered - data = {} - for item, dep in data.iteritems(): - if item not in ordered: - data[item] = dep - ordered - assert not data, "Cyclic dependencies exist among these items:\n%s" % '\n'.join(repr(x) for x in data.iteritems()) -# end of http://code.activestate.com/recipes/578272/ }}} diff --git a/mayan/apps/bootstrap/views.py b/mayan/apps/bootstrap/views.py deleted file mode 100644 index 694d067b2b..0000000000 --- a/mayan/apps/bootstrap/views.py +++ /dev/null @@ -1,343 +0,0 @@ -from __future__ import absolute_import - -from django.contrib import messages -from django.core.exceptions import PermissionDenied -from django.core.urlresolvers import reverse -from django.http import HttpResponseRedirect -from django.shortcuts import render_to_response, get_object_or_404 -from django.template import RequestContext -from django.utils.translation import ugettext_lazy as _ - -from filetransfers.api import serve_file - -from acls.models import AccessEntry -from permissions.models import Permission - -from .classes import Cleanup -from .exceptions import ExistingData, NotABootstrapSetup -from .forms import (BootstrapSetupForm, BootstrapSetupForm_view, BootstrapSetupForm_dump, - BootstrapSetupForm_edit, BootstrapFileImportForm, BootstrapURLImportForm) -from .models import BootstrapSetup -from .permissions import (PERMISSION_BOOTSTRAP_VIEW, PERMISSION_BOOTSTRAP_CREATE, - PERMISSION_BOOTSTRAP_EDIT, PERMISSION_BOOTSTRAP_DELETE, - PERMISSION_BOOTSTRAP_EXECUTE, PERMISSION_NUKE_DATABASE, PERMISSION_BOOTSTRAP_DUMP, - PERMISSION_BOOTSTRAP_EXPORT, PERMISSION_BOOTSTRAP_IMPORT, PERMISSION_BOOTSTRAP_REPOSITORY_SYNC) - - -def bootstrap_setup_list(request): - Permission.objects.check_permissions(request.user, [PERMISSION_BOOTSTRAP_VIEW]) - - context = { - 'object_list': BootstrapSetup.objects.all(), - 'title': _(u'bootstrap setups'), - 'hide_link': True, - 'extra_columns': [ - {'name': _(u'description'), 'attribute': 'description'}, - {'name': _(u'type'), 'attribute': 'get_type_display'}, - ], - } - - return render_to_response('generic_list.html', context, - context_instance=RequestContext(request)) - - -def bootstrap_setup_create(request): - Permission.objects.check_permissions(request.user, [PERMISSION_BOOTSTRAP_CREATE]) - - if request.method == 'POST': - form = BootstrapSetupForm(request.POST) - if form.is_valid(): - bootstrap = form.save() - messages.success(request, _(u'Bootstrap setup created successfully')) - return HttpResponseRedirect(reverse('bootstrap_setup_list')) - else: - messages.error(request, _(u'Error creating bootstrap setup.')) - else: - form = BootstrapSetupForm() - - return render_to_response('generic_form.html', { - 'title': _(u'create bootstrap'), - 'form': form, - }, - context_instance=RequestContext(request)) - - -def bootstrap_setup_edit(request, bootstrap_setup_pk): - previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/'))) - - bootstrap = get_object_or_404(BootstrapSetup, pk=bootstrap_setup_pk) - - try: - Permission.objects.check_permissions(request.user, [PERMISSION_BOOTSTRAP_EDIT]) - except PermissionDenied: - AccessEntry.objects.check_access(PERMISSION_BOOTSTRAP_EDIT, request.user, bootstrap) - - if request.method == 'POST': - form = BootstrapSetupForm_edit(instance=bootstrap, data=request.POST) - if form.is_valid(): - form.save() - messages.success(request, _(u'Bootstrap setup edited successfully')) - return HttpResponseRedirect(previous) - else: - messages.error(request, _(u'Error editing bootstrap setup.')) - else: - form = BootstrapSetupForm_edit(instance=bootstrap) - - return render_to_response('generic_form.html', { - 'title': _(u'edit bootstrap setup: %s') % bootstrap, - 'form': form, - 'object': bootstrap, - 'previous': previous, - 'object_name': _(u'bootstrap setup'), - }, - context_instance=RequestContext(request)) - - -def bootstrap_setup_delete(request, bootstrap_setup_pk): - bootstrap = get_object_or_404(BootstrapSetup, pk=bootstrap_setup_pk) - - try: - Permission.objects.check_permissions(request.user, [PERMISSION_BOOTSTRAP_DELETE]) - except PermissionDenied: - AccessEntry.objects.check_access(PERMISSION_BOOTSTRAP_DELETE, request.user, bootstrap) - - post_action_redirect = reverse('bootstrap_setup_list') - - 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': - try: - bootstrap.delete() - messages.success(request, _(u'Bootstrap setup: %s deleted successfully.') % bootstrap) - except Exception as exception: - messages.error(request, _(u'Bootstrap setup: %(bootstrap)s, delete error: %(error)s') % { - 'bootstrap': bootstrap, 'error': exception}) - - return HttpResponseRedirect(reverse('bootstrap_setup_list')) - - context = { - 'object_name': _(u'bootstrap setup'), - 'delete_view': True, - 'previous': previous, - 'next': next, - 'object': bootstrap, - 'title': _(u'Are you sure you with to delete the bootstrap setup: %s?') % bootstrap, - 'form_icon': 'lightning_delete.png', - } - - return render_to_response('generic_confirm.html', context, - context_instance=RequestContext(request)) - - -def bootstrap_setup_view(request, bootstrap_setup_pk): - bootstrap = get_object_or_404(BootstrapSetup, pk=bootstrap_setup_pk) - - try: - Permission.objects.check_permissions(request.user, [PERMISSION_BOOTSTRAP_VIEW]) - except PermissionDenied: - AccessEntry.objects.check_access(PERMISSION_BOOTSTRAP_VIEW, request.user, bootstrap) - - form = BootstrapSetupForm_view(instance=bootstrap) - context = { - 'form': form, - 'object': bootstrap, - 'object_name': _(u'bootstrap setup'), - } - - return render_to_response('generic_detail.html', context, - context_instance=RequestContext(request)) - - -def bootstrap_setup_execute(request, bootstrap_setup_pk): - Permission.objects.check_permissions(request.user, [PERMISSION_BOOTSTRAP_EXECUTE]) - bootstrap_setup = get_object_or_404(BootstrapSetup, pk=bootstrap_setup_pk) - - post_action_redirect = reverse('bootstrap_setup_list') - - 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': - try: - bootstrap_setup.execute() - except ExistingData: - messages.error(request, _(u'Cannot execute bootstrap setup, there is existing data. Erase all data and try again.')) - except Exception as exception: - messages.error(request, _(u'Error executing bootstrap setup; %s') % exception) - else: - messages.success(request, _(u'Bootstrap setup "%s" executed successfully.') % bootstrap_setup) - return HttpResponseRedirect(next) - - context = { - 'object_name': _(u'bootstrap setup'), - 'delete_view': False, - 'previous': previous, - 'next': next, - 'form_icon': 'lightning_go.png', - 'object': bootstrap_setup, - } - - context['title'] = _(u'Are you sure you wish to execute the database bootstrap setup named: %s?') % bootstrap_setup - - return render_to_response('generic_confirm.html', context, - context_instance=RequestContext(request)) - - -def bootstrap_setup_dump(request): - Permission.objects.check_permissions(request.user, [PERMISSION_BOOTSTRAP_DUMP]) - - if request.method == 'POST': - form = BootstrapSetupForm_dump(request.POST) - if form.is_valid(): - bootstrap = form.save(commit=False) - try: - bootstrap.fixture = BootstrapSetup.objects.dump(serialization_format=bootstrap.type) - except Exception as exception: - messages.error(request, _(u'Error dumping configuration into a bootstrap setup; %s') % exception) - raise - else: - bootstrap.save() - messages.success(request, _(u'Bootstrap setup created successfully.')) - return HttpResponseRedirect(reverse('bootstrap_setup_list')) - else: - form = BootstrapSetupForm_dump() - - return render_to_response('generic_form.html', { - 'title': _(u'dump current configuration into a bootstrap setup'), - 'form': form, - }, - context_instance=RequestContext(request)) - - -def bootstrap_setup_export(request, bootstrap_setup_pk): - previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/'))) - - bootstrap = get_object_or_404(BootstrapSetup, pk=bootstrap_setup_pk) - - try: - Permission.objects.check_permissions(request.user, [PERMISSION_BOOTSTRAP_EXPORT]) - except PermissionDenied: - AccessEntry.objects.check_access(PERMISSION_BOOTSTRAP_EXPORT, request.user, bootstrap) - - return serve_file( - request, - bootstrap.as_file(), - save_as=u'"%s"' % bootstrap.get_filename(), - content_type='text/plain; charset=us-ascii' - ) - - -def bootstrap_setup_import_from_file(request): - Permission.objects.check_permissions(request.user, [PERMISSION_BOOTSTRAP_IMPORT]) - - previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/'))) - - if request.method == 'POST': - form = BootstrapFileImportForm(request.POST, request.FILES) - if form.is_valid(): - try: - BootstrapSetup.objects.import_from_file(request.FILES['file']) - messages.success(request, _(u'Bootstrap setup imported successfully.')) - return HttpResponseRedirect(reverse('bootstrap_setup_list')) - except NotABootstrapSetup: - messages.error(request, _(u'File is not a bootstrap setup.')) - except Exception as exception: - messages.error(request, _(u'Error importing bootstrap setup from file; %s.') % exception) - return HttpResponseRedirect(previous) - else: - form = BootstrapFileImportForm() - - return render_to_response('generic_form.html', { - 'title': _(u'Import bootstrap setup from file'), - 'form_icon': 'folder.png', - 'form': form, - 'previous': previous, - }, context_instance=RequestContext(request)) - - -def bootstrap_setup_import_from_url(request): - Permission.objects.check_permissions(request.user, [PERMISSION_BOOTSTRAP_IMPORT]) - - previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/'))) - - if request.method == 'POST': - form = BootstrapURLImportForm(request.POST, request.FILES) - if form.is_valid(): - try: - BootstrapSetup.objects.import_from_url(form.cleaned_data['url']) - messages.success(request, _(u'Bootstrap setup imported successfully.')) - return HttpResponseRedirect(reverse('bootstrap_setup_list')) - except NotABootstrapSetup: - messages.error(request, _(u'Data from URL is not a bootstrap setup.')) - except Exception as exception: - messages.error(request, _(u'Error importing bootstrap setup from URL; %s.') % exception) - return HttpResponseRedirect(previous) - else: - form = BootstrapURLImportForm() - - return render_to_response('generic_form.html', { - 'title': _(u'Import bootstrap setup from URL'), - 'form_icon': 'folder.png', - 'form': form, - 'previous': previous, - }, context_instance=RequestContext(request)) - - -def erase_database_view(request): - Permission.objects.check_permissions(request.user, [PERMISSION_NUKE_DATABASE]) - - 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': - try: - Cleanup.execute_all() - except Exception as exception: - messages.error(request, _(u'Error erasing database; %s') % exception) - else: - messages.success(request, _(u'Database erased successfully.')) - return HttpResponseRedirect(next) - - context = { - 'delete_view': False, - 'previous': previous, - 'next': next, - 'form_icon': 'radioactivity.png', - } - - context['title'] = _(u'Are you sure you wish to erase the entire database and document storage?') - context['message'] = _(u'All documents, sources, metadata, metadata types, set, tags, indexes and logs will be lost irreversibly!') - - return render_to_response('generic_confirm.html', context, - context_instance=RequestContext(request)) - - -def bootstrap_setup_repository_sync(request): - Permission.objects.check_permissions(request.user, [PERMISSION_BOOTSTRAP_REPOSITORY_SYNC]) - - post_action_redirect = reverse('bootstrap_setup_list') - - 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': - try: - BootstrapSetup.objects.repository_sync() - messages.success(request, _(u'Bootstrap repository successfully synchronized.')) - except Exception as exception: - messages.error(request, _(u'Bootstrap repository synchronization error: %(error)s') % {'error': exception}) - - return HttpResponseRedirect(reverse('bootstrap_setup_list')) - - context = { - 'previous': previous, - 'next': next, - 'title': _(u'Are you sure you wish to synchronize with the bootstrap repository?'), - 'form_icon': 'world.png', - } - - return render_to_response('generic_confirm.html', context, - context_instance=RequestContext(request)) diff --git a/mayan/apps/checkouts/__init__.py b/mayan/apps/checkouts/__init__.py index 600e41ff5b..032712d7d5 100644 --- a/mayan/apps/checkouts/__init__.py +++ b/mayan/apps/checkouts/__init__.py @@ -1,21 +1,23 @@ -from __future__ import absolute_import +from __future__ import absolute_import, unicode_literals -from django.utils.translation import ugettext_lazy as _ +from datetime import timedelta from acls.api import class_permissions from documents.models import Document -from history.api import register_history_type +from mayan.celery import app from navigation.api import register_links, register_top_menu -from scheduler.api import register_interval_job +from rest_api.classes import APIEndPoint -from .events import (HISTORY_DOCUMENT_CHECKED_OUT, HISTORY_DOCUMENT_CHECKED_IN, - HISTORY_DOCUMENT_AUTO_CHECKED_IN, HISTORY_DOCUMENT_FORCEFUL_CHECK_IN) -from .links import checkout_list, checkout_document, checkout_info, checkin_document +from .links import ( + checkin_document, checkout_document, checkout_info, checkout_list +) from .models import DocumentCheckout -from .permissions import (PERMISSION_DOCUMENT_CHECKOUT, +from .permissions import ( PERMISSION_DOCUMENT_CHECKIN, PERMISSION_DOCUMENT_CHECKIN_OVERRIDE, - PERMISSION_DOCUMENT_RESTRICTIONS_OVERRIDE) -from .tasks import task_check_expired_check_outs + PERMISSION_DOCUMENT_CHECKOUT, PERMISSION_DOCUMENT_RESTRICTIONS_OVERRIDE +) + +CHECK_EXPIRED_CHECK_OUTS_INTERVAL = 60 # Lowest check out expiration allowed def initialize_document_checkout_extra_methods(): @@ -25,9 +27,14 @@ def initialize_document_checkout_extra_methods(): Document.add_to_class('checkout_state', lambda document: DocumentCheckout.objects.document_checkout_state(document)) Document.add_to_class('is_new_versions_allowed', lambda document, user=None: DocumentCheckout.objects.is_document_new_versions_allowed(document, user)) -register_top_menu(name='checkouts', link=checkout_list) -register_links(Document, [checkout_info], menu_name='form_header') -register_links(['checkout_info', 'checkout_document', 'checkin_document'], [checkout_document, checkin_document], menu_name="sidebar") + +app.conf.CELERYBEAT_SCHEDULE.update({ + 'check_expired_check_outs': { + 'task': 'checkouts.tasks.task_check_expired_check_outs', + 'schedule': timedelta(seconds=CHECK_EXPIRED_CHECK_OUTS_INTERVAL), + 'options': {'queue': 'checkouts'} + }, +}) class_permissions(Document, [ PERMISSION_DOCUMENT_CHECKOUT, @@ -36,10 +43,10 @@ class_permissions(Document, [ PERMISSION_DOCUMENT_RESTRICTIONS_OVERRIDE ]) -CHECK_EXPIRED_CHECK_OUTS_INTERVAL = 60 # Lowest check out expiration allowed -register_interval_job('task_check_expired_check_outs', _(u'Check expired check out documents and checks them in.'), task_check_expired_check_outs, seconds=CHECK_EXPIRED_CHECK_OUTS_INTERVAL) initialize_document_checkout_extra_methods() -register_history_type(HISTORY_DOCUMENT_CHECKED_OUT) -register_history_type(HISTORY_DOCUMENT_CHECKED_IN) -register_history_type(HISTORY_DOCUMENT_AUTO_CHECKED_IN) -register_history_type(HISTORY_DOCUMENT_FORCEFUL_CHECK_IN) + +register_links(Document, [checkout_info], menu_name='form_header') +register_links(['checkouts:checkout_info', 'checkouts:checkout_document', 'checkouts:checkin_document'], [checkout_document, checkin_document], menu_name="sidebar") +register_top_menu(name='checkouts', link=checkout_list) + +APIEndPoint('checkouts') diff --git a/mayan/apps/checkouts/api_views.py b/mayan/apps/checkouts/api_views.py new file mode 100644 index 0000000000..712a8575b7 --- /dev/null +++ b/mayan/apps/checkouts/api_views.py @@ -0,0 +1,119 @@ +from __future__ import absolute_import, unicode_literals + +import pytz + +from django.core.exceptions import PermissionDenied +from django.shortcuts import get_object_or_404 + +from rest_framework import generics, status +from rest_framework.response import Response + +from acls.models import AccessEntry +from documents.models import Document +from documents.permissions import PERMISSION_DOCUMENT_VIEW +from permissions.models import Permission + +from .models import DocumentCheckout +from .permissions import PERMISSION_DOCUMENT_CHECKOUT, PERMISSION_DOCUMENT_CHECKIN, PERMISSION_DOCUMENT_CHECKIN_OVERRIDE +from .serializers import DocumentCheckoutSerializer, NewDocumentCheckoutSerializer + + +class APICheckedoutDocumentListView(generics.ListCreateAPIView): + def get_serializer_class(self): + if self.request.method == 'POST': + return NewDocumentCheckoutSerializer + else: + return DocumentCheckoutSerializer + + def get_queryset(self): + documents = DocumentCheckout.objects.checked_out_documents() + + try: + Permission.objects.check_permissions(self.request.user, [PERMISSION_DOCUMENT_VIEW]) + except PermissionDenied: + filtered_documents = AccessEntry.objects.filter_objects_by_access([PERMISSION_DOCUMENT_VIEW], self.request.user, documents) + else: + filtered_documents = documents + + return DocumentCheckout.objects.filter(document__pk__in=filtered_documents.values_list('pk', flat=True)) + + def get(self, request, *args, **kwargs): + """ + Returns a list of all the documents that are currently checked out. + """ + return super(APICheckedoutDocumentListView, self).get(request, *args, **kwargs) + + def post(self, request, *args, **kwargs): + """ + Checkout a document. + """ + serializer = self.get_serializer(data=request.DATA, files=request.FILES) + + if serializer.is_valid(): + document = get_object_or_404(Document, pk=serializer.data['document']) + try: + Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_CHECKOUT]) + except PermissionDenied: + AccessEntry.objects.check_access(PERMISSION_DOCUMENT_CHECKOUT, request.user, document) + + timezone = pytz.utc + + try: + DocumentCheckout.objects.create( + document=document, + expiration_datetime=timezone.localize(serializer.data['expiration_datetime']), + user_object=request.user, + block_new_version=serializer.data['block_new_version'] + ) + except Exception as exception: + return Response(data={'exception': unicode(exception)}, status=status.HTTP_400_BAD_REQUEST) + + return Response(status=status.HTTP_201_CREATED) + + return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) + + +class APICheckedoutDocumentView(generics.RetrieveDestroyAPIView): + serializer_class = DocumentCheckoutSerializer + + def get_queryset(self): + if self.request.method == 'GET': + documents = DocumentCheckout.objects.checked_out_documents() + + try: + Permission.objects.check_permissions(self.request.user, [PERMISSION_DOCUMENT_VIEW]) + except PermissionDenied: + filtered_documents = AccessEntry.objects.filter_objects_by_access([PERMISSION_DOCUMENT_VIEW], self.request.user, documents) + else: + filtered_documents = documents + + return DocumentCheckout.objects.filter(document__pk__in=filtered_documents.values_list('pk', flat=True)) + elif self.request.method == 'DELETE': + return DocumentCheckout.objects.all() + + def get(self, request, *args, **kwargs): + """ + Retrieve the details of the selected checked out document entry. + """ + + return super(APICheckedoutDocumentView, self).get(request, *args, **kwargs) + + def delete(self, request, *args, **kwargs): + """ + Checkin a document. + """ + + document = self.get_object().document + + if document.checkout_info().user_object == request.user: + try: + Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_CHECKIN]) + except PermissionDenied: + AccessEntry.objects.check_access(PERMISSION_DOCUMENT_CHECKIN, request.user, document) + else: + try: + Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_CHECKIN_OVERRIDE]) + except PermissionDenied: + AccessEntry.objects.check_access(PERMISSION_DOCUMENT_CHECKIN_OVERRIDE, request.user, document) + + return super(APICheckedoutDocumentView, self).delete(request, *args, **kwargs) diff --git a/mayan/apps/checkouts/events.py b/mayan/apps/checkouts/events.py index a35503a819..459a015698 100644 --- a/mayan/apps/checkouts/events.py +++ b/mayan/apps/checkouts/events.py @@ -1,28 +1,10 @@ +from __future__ import absolute_import, unicode_literals + from django.utils.translation import ugettext_lazy as _ -HISTORY_DOCUMENT_CHECKED_OUT = { - 'namespace': 'checkouts', 'name': 'document_checked_out', - 'label': _(u'Document checked out'), - 'summary': _(u'Document "%(document)s" checked out by %(fullname)s.'), - 'expressions': {'fullname': 'user.get_full_name() if user.get_full_name() else user'} -} +from events.classes import Event -HISTORY_DOCUMENT_CHECKED_IN = { - 'namespace': 'checkouts', 'name': 'document_checked_in', - 'label': _(u'Document checked in'), - 'summary': _(u'Document "%(document)s" checked in by %(fullname)s.'), - 'expressions': {'fullname': 'user.get_full_name() if user.get_full_name() else user'} -} - -HISTORY_DOCUMENT_AUTO_CHECKED_IN = { - 'namespace': 'checkouts', 'name': 'document_auto_checked_in', - 'label': _(u'Document automatically checked in'), - 'summary': _(u'Document "%(document)s" automatically checked in.'), -} - -HISTORY_DOCUMENT_FORCEFUL_CHECK_IN = { - 'namespace': 'checkouts', 'name': 'document_forefull_check_in', - 'label': _(u'Document forcefully checked in'), - 'summary': _(u'Document "%(document)s" forcefully checked in by %(fullname)s.'), - 'expressions': {'fullname': 'user.get_full_name() if user.get_full_name() else user'} -} +event_document_check_out = Event(name='checkouts_document_check_out', label=_('Document checked out')) +event_document_check_in = Event(name='checkouts_document_check_in', label=_('Document checked in')) +event_document_auto_check_in = Event(name='checkouts_document_auto_check_in', label=_('Document automatically checked in')) +event_document_forceful_check_in = Event(name='checkouts_document_forceful_check_in', label=_('Document forcefully checked in')) diff --git a/mayan/apps/checkouts/exceptions.py b/mayan/apps/checkouts/exceptions.py index c0119f6d7e..fb17b44ae6 100644 --- a/mayan/apps/checkouts/exceptions.py +++ b/mayan/apps/checkouts/exceptions.py @@ -1,3 +1,8 @@ +from __future__ import unicode_literals + +from django.utils.translation import ugettext + + class DocumentNotCheckedOut(Exception): """ Raised when trying to checkin a document that is not checkedout @@ -9,4 +14,5 @@ class DocumentAlreadyCheckedOut(Exception): """ Raised when trying to checkout an already checkedout document """ - pass + def __unicode__(self): + return ugettext('Document already checked out.') diff --git a/mayan/apps/checkouts/forms.py b/mayan/apps/checkouts/forms.py index ee01370235..b0ce0f2b0c 100644 --- a/mayan/apps/checkouts/forms.py +++ b/mayan/apps/checkouts/forms.py @@ -1,8 +1,7 @@ -from __future__ import absolute_import +from __future__ import unicode_literals from django import forms -from .exceptions import DocumentAlreadyCheckedOut from .models import DocumentCheckout from .widgets import SplitTimeDeltaField @@ -12,14 +11,4 @@ class DocumentCheckoutForm(forms.ModelForm): class Meta: model = DocumentCheckout - exclude = ('checkout_datetime', 'user_content_type', 'user_object_id') - - widgets = { - 'document': forms.widgets.HiddenInput(), - } - - def clean_document(self): - document = self.cleaned_data['document'] - if document.is_checked_out(): - raise DocumentAlreadyCheckedOut - return document + exclude = ('document', 'checkout_datetime', 'user_content_type', 'user_object_id') diff --git a/mayan/apps/checkouts/links.py b/mayan/apps/checkouts/links.py index f266745cd7..5c1074f6c8 100644 --- a/mayan/apps/checkouts/links.py +++ b/mayan/apps/checkouts/links.py @@ -1,8 +1,11 @@ -from __future__ import absolute_import +from __future__ import absolute_import, unicode_literals from django.utils.translation import ugettext_lazy as _ -from .permissions import (PERMISSION_DOCUMENT_CHECKOUT, PERMISSION_DOCUMENT_CHECKIN, PERMISSION_DOCUMENT_CHECKIN_OVERRIDE) +from .permissions import ( + PERMISSION_DOCUMENT_CHECKOUT, PERMISSION_DOCUMENT_CHECKIN, + PERMISSION_DOCUMENT_CHECKIN_OVERRIDE +) def is_checked_out(context): @@ -13,7 +16,7 @@ def is_not_checked_out(context): return not context['object'].is_checked_out() -checkout_list = {'text': _(u'checkouts'), 'view': 'checkout_list', 'famfam': 'basket'} -checkout_document = {'text': _('check out document'), 'view': 'checkout_document', 'args': 'object.pk', 'famfam': 'basket_put', 'condition': is_not_checked_out, 'permissions': [PERMISSION_DOCUMENT_CHECKOUT]} -checkin_document = {'text': _('check in document'), 'view': 'checkin_document', 'args': 'object.pk', 'famfam': 'basket_remove', 'condition': is_checked_out, 'permissions': [PERMISSION_DOCUMENT_CHECKIN, PERMISSION_DOCUMENT_CHECKIN_OVERRIDE]} -checkout_info = {'text': _('check in/out'), 'view': 'checkout_info', 'args': 'object.pk', 'famfam': 'basket', 'children_views': ['checkout_document', 'checkin_document'], 'permissions': [PERMISSION_DOCUMENT_CHECKIN, PERMISSION_DOCUMENT_CHECKIN_OVERRIDE, PERMISSION_DOCUMENT_CHECKOUT]} +checkout_list = {'text': _('Checkouts'), 'view': 'checkouts:checkout_list', 'famfam': 'basket'} +checkout_document = {'text': _('Check out document'), 'view': 'checkouts:checkout_document', 'args': 'object.pk', 'famfam': 'basket_put', 'condition': is_not_checked_out, 'permissions': [PERMISSION_DOCUMENT_CHECKOUT]} +checkin_document = {'text': _('Check in document'), 'view': 'checkouts:checkin_document', 'args': 'object.pk', 'famfam': 'basket_remove', 'condition': is_checked_out, 'permissions': [PERMISSION_DOCUMENT_CHECKIN, PERMISSION_DOCUMENT_CHECKIN_OVERRIDE]} +checkout_info = {'text': _('Check in/out'), 'view': 'checkouts:checkout_info', 'args': 'object.pk', 'famfam': 'basket', 'permissions': [PERMISSION_DOCUMENT_CHECKIN, PERMISSION_DOCUMENT_CHECKIN_OVERRIDE, PERMISSION_DOCUMENT_CHECKOUT]} diff --git a/mayan/apps/checkouts/literals.py b/mayan/apps/checkouts/literals.py index 23e9920984..400423a376 100644 --- a/mayan/apps/checkouts/literals.py +++ b/mayan/apps/checkouts/literals.py @@ -1,16 +1,11 @@ -from __future__ import absolute_import +from __future__ import unicode_literals from django.utils.translation import ugettext_lazy as _ STATE_CHECKED_OUT = 'checkedout' STATE_CHECKED_IN = 'checkedin' -STATE_ICONS = { - STATE_CHECKED_OUT: 'basket_put.png', - STATE_CHECKED_IN: 'traffic_lights_green.png', -} - STATE_LABELS = { - STATE_CHECKED_OUT: _(u'checked out'), - STATE_CHECKED_IN: _(u'checked in/available'), + STATE_CHECKED_OUT: _('Checked out'), + STATE_CHECKED_IN: _('Checked in/available'), } diff --git a/mayan/apps/checkouts/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/ar/LC_MESSAGES/django.mo index a28a19242f..07142ced9a 100644 Binary files a/mayan/apps/checkouts/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/ar/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/ar/LC_MESSAGES/django.po index 9f67fc41ef..54fc10209a 100644 --- a/mayan/apps/checkouts/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/ar/LC_MESSAGES/django.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: # Mohammed ALDOUB , 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2013-01-26 08:52+0000\n" -"Last-Translator: Mohammed ALDOUB \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2015-01-11 22:05+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Arabic (http://www.transifex.com/projects/p/mayan-edms/" "language/ar/)\n" "Language: ar\n" @@ -20,106 +21,82 @@ msgstr "" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: __init__.py:40 -msgid "Check expired check out documents and checks them in." -msgstr "Check expired check out documents and checks them in." - -#: events.py:5 +#: events.py:7 msgid "Document checked out" msgstr "Document checked out" -#: events.py:6 -#, python-format -msgid "Document \"%(document)s\" checked out by %(fullname)s." -msgstr "Document \"%(document)s\" checked out by %(fullname)s." - -#: events.py:12 +#: events.py:8 msgid "Document checked in" msgstr "Document checked in" -#: events.py:13 -#, python-format -msgid "Document \"%(document)s\" checked in by %(fullname)s." -msgstr "Document \"%(document)s\" checked in by %(fullname)s." - -#: events.py:19 +#: events.py:9 msgid "Document automatically checked in" msgstr "Document automatically checked in" -#: events.py:20 -#, python-format -msgid "Document \"%(document)s\" automatically checked in." -msgstr "Document \"%(document)s\" automatically checked in." - -#: events.py:25 +#: events.py:10 msgid "Document forcefully checked in" msgstr "Document forcefully checked in" -#: events.py:26 -#, python-format -msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." -msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." - -#: links.py:16 -msgid "checkouts" -msgstr "checkouts" - -#: links.py:17 -msgid "check out document" -msgstr "check out document" - -#: links.py:18 -msgid "check in document" -msgstr "check in document" +#: exceptions.py:18 views.py:82 +msgid "Document already checked out." +msgstr "Document already checked out." #: links.py:19 -msgid "check in/out" -msgstr "check in/out" +msgid "Checkouts" +msgstr "" -#: literals.py:14 -msgid "checked out" -msgstr "checked out" +#: links.py:20 +msgid "Check out document" +msgstr "" -#: literals.py:15 -msgid "checked in/available" -msgstr "checked in/available" +#: links.py:21 +msgid "Check in document" +msgstr "" -#: models.py:24 views.py:132 -msgid "document" -msgstr "document" +#: links.py:22 +msgid "Check in/out" +msgstr "" + +#: literals.py:9 +msgid "Checked out" +msgstr "" + +#: literals.py:10 +msgid "Checked in/available" +msgstr "" + +#: models.py:23 +msgid "Document" +msgstr "" + +#: models.py:24 +msgid "Check out date and time" +msgstr "" + +#: models.py:25 widgets.py:79 +msgid "Check out expiration date and time" +msgstr "Check out expiration date and time" #: models.py:25 -msgid "check out date and time" -msgstr "check out date and time" - -#: models.py:26 -msgid "check out expiration date and time" -msgstr "check out expiration date and time" - -#: models.py:26 msgid "Amount of time to hold the document checked out in minutes." msgstr "Amount of time to hold the document checked out in minutes." -#: models.py:31 -msgid "block new version upload" -msgstr "block new version upload" +#: models.py:32 +msgid "Block new version upload" +msgstr "" -#: models.py:31 +#: models.py:32 msgid "Do not allow new version of this document to be uploaded." msgstr "Do not allow new version of this document to be uploaded." -#: models.py:54 -msgid "document checkout" -msgstr "document checkout" - -#: models.py:55 -msgid "document checkouts" -msgstr "document checkouts" - -#: permissions.py:7 +#: models.py:58 permissions.py:7 msgid "Document checkout" msgstr "Document checkout" +#: models.py:59 +msgid "Document checkouts" +msgstr "" + #: permissions.py:9 msgid "Check out documents" msgstr "Check out documents" @@ -137,20 +114,25 @@ msgid "Allow overriding check out restrictions" msgstr "Allow overriding check out restrictions" #: views.py:32 -msgid "checked out documents" -msgstr "checked out documents" +msgid "Documents checked out" +msgstr "" #: views.py:35 -msgid "checkout user" -msgstr "checkout user" +msgid "Checkout user" +msgstr "" #: views.py:36 -msgid "checkout time and date" -msgstr "checkout time and date" +msgid "Checkout time and date" +msgstr "" #: views.py:37 -msgid "checkout expiration" -msgstr "checkout expiration" +msgid "Checkout expiration" +msgstr "" + +#: views.py:50 +#, python-format +msgid "Document status: %s" +msgstr "" #: views.py:54 #, python-format @@ -173,52 +155,48 @@ msgid "New versions allowed: %s" msgstr "New versions allowed: %s" #: views.py:57 -msgid "yes" -msgstr "yes" +msgid "Yes" +msgstr "" #: views.py:57 -msgid "no" -msgstr "no" +msgid "No" +msgstr "" #: views.py:62 #, python-format msgid "Check out details for document: %s" msgstr "Check out details for document: %s" -#: views.py:82 +#: views.py:85 #, python-format msgid "Error trying to check out document; %s" msgstr "Error trying to check out document; %s" -#: views.py:84 +#: views.py:87 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Document \"%s\" checked out successfully." -#: views.py:87 -msgid "Document already checked out." -msgstr "Document already checked out." - #: views.py:95 #, python-format msgid "Check out document: %s" msgstr "Check out document: %s" -#: views.py:124 +#: views.py:107 views.py:128 msgid "Document has not been checked out." msgstr "Document has not been checked out." -#: views.py:126 +#: views.py:130 #, python-format msgid "Error trying to check in document; %s" msgstr "Error trying to check in document; %s" -#: views.py:128 +#: views.py:132 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Document \"%s\" checked in successfully." -#: views.py:141 +#: views.py:143 #, python-format msgid "" "You didn't originally checked out this document. Are you sure you wish to " @@ -227,45 +205,40 @@ msgstr "" "You didn't originally checked out this document. Are you sure you wish to " "forcefully check in document: %s?" -#: views.py:143 +#: views.py:145 #, python-format msgid "Are you sure you wish to check in document: %s?" msgstr "Are you sure you wish to check in document: %s?" -#: widgets.py:19 -#, python-format -msgid "Document status: %(widget)s %(text)s" -msgstr "Document status: %(widget)s %(text)s" - -#: widgets.py:31 +#: widgets.py:17 msgid "Days" msgstr "Days" -#: widgets.py:32 +#: widgets.py:18 msgid "Hours" msgstr "Hours" -#: widgets.py:33 +#: widgets.py:19 msgid "Minutes" msgstr "Minutes" -#: widgets.py:63 +#: widgets.py:49 msgid "Enter a valid number of days." msgstr "Enter a valid number of days." -#: widgets.py:64 +#: widgets.py:50 msgid "Enter a valid number of hours." msgstr "Enter a valid number of hours." -#: widgets.py:65 +#: widgets.py:51 msgid "Enter a valid number of minutes." msgstr "Enter a valid number of minutes." -#: widgets.py:66 +#: widgets.py:52 msgid "Enter a valid time difference." msgstr "Enter a valid time difference." -#: widgets.py:92 +#: widgets.py:78 msgid "" "Amount of time to hold the document in the checked out state in days, hours " "and/or minutes." @@ -273,6 +246,41 @@ msgstr "" "Amount of time to hold the document in the checked out state in days, hours " "and/or minutes." -#: widgets.py:93 -msgid "Check out expiration date and time" -msgstr "Check out expiration date and time" +#~ msgid "Document \"%(document)s\" checked out by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." + +#~ msgid "Document \"%(document)s\" checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked in by %(fullname)s." + +#~ msgid "Document \"%(document)s\" automatically checked in." +#~ msgstr "Document \"%(document)s\" automatically checked in." + +#~ msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." + +#~ msgid "document" +#~ msgstr "document" + +#~ msgid "check out expiration date and time" +#~ msgstr "check out expiration date and time" + +#~ msgid "document checkout" +#~ msgstr "document checkout" + +#~ msgid "document checkouts" +#~ msgstr "document checkouts" + +#~ msgid "checked out documents" +#~ msgstr "checked out documents" + +#~ msgid "no" +#~ msgstr "no" + +#~ msgid "Check expired check out documents and checks them in." +#~ msgstr "Check expired check out documents and checks them in." + +#~ msgid "check out document" +#~ msgstr "check out document" + +#~ msgid "check in document" +#~ msgstr "check in document" diff --git a/mayan/apps/checkouts/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/bg/LC_MESSAGES/django.mo index 81809a247e..3c406daab7 100644 Binary files a/mayan/apps/checkouts/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/bg/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/bg/LC_MESSAGES/django.po index 061d49d34f..0be7dc1dea 100644 --- a/mayan/apps/checkouts/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/bg/LC_MESSAGES/django.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: # Pavlin Koldamov , 2012 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-10-17 09:35+0000\n" -"Last-Translator: Pavlin Koldamov \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2015-01-11 22:05+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Bulgarian (http://www.transifex.com/projects/p/mayan-edms/" "language/bg/)\n" "Language: bg\n" @@ -19,106 +20,82 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: __init__.py:40 -msgid "Check expired check out documents and checks them in." -msgstr "Проверете изтеклите за проверки документи и ги регистрирайте отново." - -#: events.py:5 +#: events.py:7 msgid "Document checked out" msgstr "Документът е проверен." -#: events.py:6 -#, python-format -msgid "Document \"%(document)s\" checked out by %(fullname)s." -msgstr "Докумнетът \"%(document)s\" е проверен от %(fullname)s." - -#: events.py:12 +#: events.py:8 msgid "Document checked in" msgstr "Докъментът е регистриран" -#: events.py:13 -#, python-format -msgid "Document \"%(document)s\" checked in by %(fullname)s." -msgstr "Документът \"%(document)s\" е регистриран от %(fullname)s." - -#: events.py:19 +#: events.py:9 msgid "Document automatically checked in" msgstr "Автоматично регистрирани документи" -#: events.py:20 -#, python-format -msgid "Document \"%(document)s\" automatically checked in." -msgstr "Документ \"%(document)s\" е автоматично регистриран." - -#: events.py:25 +#: events.py:10 msgid "Document forcefully checked in" msgstr "Документът е принудително регистриран" -#: events.py:26 -#, python-format -msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." -msgstr "Документът \"%(document)s\" принудително регистриран от %(fullname)s." - -#: links.py:16 -msgid "checkouts" -msgstr "проверки" - -#: links.py:17 -msgid "check out document" -msgstr "проверка на документ" - -#: links.py:18 -msgid "check in document" -msgstr "регистриране на документ" +#: exceptions.py:18 views.py:82 +msgid "Document already checked out." +msgstr "Документът вече е проверен." #: links.py:19 -msgid "check in/out" -msgstr "регистриране/проверяване" +msgid "Checkouts" +msgstr "" -#: literals.py:14 -msgid "checked out" -msgstr "проверен" +#: links.py:20 +msgid "Check out document" +msgstr "" -#: literals.py:15 -msgid "checked in/available" -msgstr "регистриран/наличен" +#: links.py:21 +msgid "Check in document" +msgstr "" -#: models.py:24 views.py:132 -msgid "document" -msgstr "документ" +#: links.py:22 +msgid "Check in/out" +msgstr "" + +#: literals.py:9 +msgid "Checked out" +msgstr "" + +#: literals.py:10 +msgid "Checked in/available" +msgstr "" + +#: models.py:23 +msgid "Document" +msgstr "" + +#: models.py:24 +msgid "Check out date and time" +msgstr "" + +#: models.py:25 widgets.py:79 +msgid "Check out expiration date and time" +msgstr "Проверете срока на валидност" #: models.py:25 -msgid "check out date and time" -msgstr "дата и час на проверка" - -#: models.py:26 -msgid "check out expiration date and time" -msgstr "проверка на срока на валидност, дата и час" - -#: models.py:26 msgid "Amount of time to hold the document checked out in minutes." msgstr "Време за задържане на проверения документ в минути." -#: models.py:31 -msgid "block new version upload" -msgstr "блокиране качването на нова версия" +#: models.py:32 +msgid "Block new version upload" +msgstr "" -#: models.py:31 +#: models.py:32 msgid "Do not allow new version of this document to be uploaded." msgstr "Забранете качването на нова версия на този документ." -#: models.py:54 -msgid "document checkout" -msgstr "проверка на документ" - -#: models.py:55 -msgid "document checkouts" -msgstr "проверки на документ" - -#: permissions.py:7 +#: models.py:58 permissions.py:7 msgid "Document checkout" msgstr "Проверка на документ" +#: models.py:59 +msgid "Document checkouts" +msgstr "" + #: permissions.py:9 msgid "Check out documents" msgstr "Провери документи" @@ -136,20 +113,25 @@ msgid "Allow overriding check out restrictions" msgstr "Разреши проверки незвисимо от забрана" #: views.py:32 -msgid "checked out documents" -msgstr "проверени документи" +msgid "Documents checked out" +msgstr "" #: views.py:35 -msgid "checkout user" -msgstr "отписване потребител" +msgid "Checkout user" +msgstr "" #: views.py:36 -msgid "checkout time and date" -msgstr "отписване, час и дата" +msgid "Checkout time and date" +msgstr "" #: views.py:37 -msgid "checkout expiration" -msgstr "проверка срок на валидност" +msgid "Checkout expiration" +msgstr "" + +#: views.py:50 +#, python-format +msgid "Document status: %s" +msgstr "" #: views.py:54 #, python-format @@ -172,52 +154,48 @@ msgid "New versions allowed: %s" msgstr "Разрешени нови версии: %s" #: views.py:57 -msgid "yes" -msgstr "да" +msgid "Yes" +msgstr "" #: views.py:57 -msgid "no" -msgstr "не" +msgid "No" +msgstr "" #: views.py:62 #, python-format msgid "Check out details for document: %s" msgstr "Данни от проверката на документ: %s" -#: views.py:82 +#: views.py:85 #, python-format msgid "Error trying to check out document; %s" msgstr "Грешка при проверка на документ; %s" -#: views.py:84 +#: views.py:87 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Документ \"%s\" проверен успешно." -#: views.py:87 -msgid "Document already checked out." -msgstr "Документът вече е проверен." - #: views.py:95 #, python-format msgid "Check out document: %s" msgstr "Провери документ: %s" -#: views.py:124 +#: views.py:107 views.py:128 msgid "Document has not been checked out." msgstr "Документът не е проверяван." -#: views.py:126 +#: views.py:130 #, python-format msgid "Error trying to check in document; %s" msgstr "Грешка при регистрация на документ; %s" -#: views.py:128 +#: views.py:132 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Документ \"%s\" е регистриран успешно." -#: views.py:141 +#: views.py:143 #, python-format msgid "" "You didn't originally checked out this document. Are you sure you wish to " @@ -226,45 +204,40 @@ msgstr "" "Проверката на този документ не е извършвана от Вас. Сигурни ли сте, че " "искате принудително да регистрирате документа: %s?" -#: views.py:143 +#: views.py:145 #, python-format msgid "Are you sure you wish to check in document: %s?" msgstr "Сигурни ли сте, че искате да регистрирате този документ: %s?" -#: widgets.py:19 -#, python-format -msgid "Document status: %(widget)s %(text)s" -msgstr "Статус на документа: %(widget)s %(text)s" - -#: widgets.py:31 +#: widgets.py:17 msgid "Days" msgstr "Дни" -#: widgets.py:32 +#: widgets.py:18 msgid "Hours" msgstr "Часове" -#: widgets.py:33 +#: widgets.py:19 msgid "Minutes" msgstr "Минути" -#: widgets.py:63 +#: widgets.py:49 msgid "Enter a valid number of days." msgstr "Въведете валиден брой дни." -#: widgets.py:64 +#: widgets.py:50 msgid "Enter a valid number of hours." msgstr "Въведете валиден брой часове." -#: widgets.py:65 +#: widgets.py:51 msgid "Enter a valid number of minutes." msgstr "Въведете валиден брой минути." -#: widgets.py:66 +#: widgets.py:52 msgid "Enter a valid time difference." msgstr "Въведете валидна времева разлика." -#: widgets.py:92 +#: widgets.py:78 msgid "" "Amount of time to hold the document in the checked out state in days, hours " "and/or minutes." @@ -272,6 +245,41 @@ msgstr "" "Време за задържане на документа в състояние проверен, в дни, часове и/или " "минути." -#: widgets.py:93 -msgid "Check out expiration date and time" -msgstr "Проверете срока на валидност" +#~ msgid "Document \"%(document)s\" checked out by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." + +#~ msgid "Document \"%(document)s\" checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked in by %(fullname)s." + +#~ msgid "Document \"%(document)s\" automatically checked in." +#~ msgstr "Document \"%(document)s\" automatically checked in." + +#~ msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." + +#~ msgid "document" +#~ msgstr "document" + +#~ msgid "check out expiration date and time" +#~ msgstr "check out expiration date and time" + +#~ msgid "document checkout" +#~ msgstr "document checkout" + +#~ msgid "document checkouts" +#~ msgstr "document checkouts" + +#~ msgid "checked out documents" +#~ msgstr "checked out documents" + +#~ msgid "no" +#~ msgstr "no" + +#~ msgid "Check expired check out documents and checks them in." +#~ msgstr "Check expired check out documents and checks them in." + +#~ msgid "check out document" +#~ msgstr "check out document" + +#~ msgid "check in document" +#~ msgstr "check in document" diff --git a/mayan/apps/checkouts/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/bs_BA/LC_MESSAGES/django.mo index 37cef289e1..0b5e1fb8ad 100644 Binary files a/mayan/apps/checkouts/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/bs_BA/LC_MESSAGES/django.po index 4bc872fbab..dcc1500c93 100644 --- a/mayan/apps/checkouts/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/bs_BA/LC_MESSAGES/django.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: # www.ping.ba , 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2013-06-28 14:18+0000\n" -"Last-Translator: www.ping.ba \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2015-01-11 22:05+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" "projects/p/mayan-edms/language/bs_BA/)\n" "Language: bs_BA\n" @@ -20,106 +21,82 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: __init__.py:40 -msgid "Check expired check out documents and checks them in." -msgstr "Provjeri zastarjele odjavljene dokumente i prijavi ih." - -#: events.py:5 +#: events.py:7 msgid "Document checked out" msgstr "Dokument odjavljen" -#: events.py:6 -#, python-format -msgid "Document \"%(document)s\" checked out by %(fullname)s." -msgstr "Dokument \"%(document)s\" odjavio/la %(fullname)s." - -#: events.py:12 +#: events.py:8 msgid "Document checked in" msgstr "Dokument prijavljen" -#: events.py:13 -#, python-format -msgid "Document \"%(document)s\" checked in by %(fullname)s." -msgstr "Dokument \"%(document)s\" prijavio/la %(fullname)s." - -#: events.py:19 +#: events.py:9 msgid "Document automatically checked in" msgstr "Dokument je automatski prijavljen" -#: events.py:20 -#, python-format -msgid "Document \"%(document)s\" automatically checked in." -msgstr "Dokument \"%(document)s\" je automatski prijavljen." - -#: events.py:25 +#: events.py:10 msgid "Document forcefully checked in" msgstr "Dokument je prisilno prijavljen" -#: events.py:26 -#, python-format -msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." -msgstr "Dokument \"%(document)s\" prisilno prijavio/la %(fullname)s." - -#: links.py:16 -msgid "checkouts" -msgstr "izvadci" - -#: links.py:17 -msgid "check out document" -msgstr "odjavni dokument" - -#: links.py:18 -msgid "check in document" -msgstr "prijavni dokument" +#: exceptions.py:18 views.py:82 +msgid "Document already checked out." +msgstr "Dokument je već odjavljen." #: links.py:19 -msgid "check in/out" -msgstr "prijava/odjava" +msgid "Checkouts" +msgstr "" -#: literals.py:14 -msgid "checked out" -msgstr "odjavljeno" +#: links.py:20 +msgid "Check out document" +msgstr "" -#: literals.py:15 -msgid "checked in/available" -msgstr "prijavljeno/dostupno" +#: links.py:21 +msgid "Check in document" +msgstr "" -#: models.py:24 views.py:132 -msgid "document" -msgstr "dokument" +#: links.py:22 +msgid "Check in/out" +msgstr "" + +#: literals.py:9 +msgid "Checked out" +msgstr "" + +#: literals.py:10 +msgid "Checked in/available" +msgstr "" + +#: models.py:23 +msgid "Document" +msgstr "" + +#: models.py:24 +msgid "Check out date and time" +msgstr "" + +#: models.py:25 widgets.py:79 +msgid "Check out expiration date and time" +msgstr "Datum i vrijeme istjecanja odjave" #: models.py:25 -msgid "check out date and time" -msgstr "datum i vrijeme odjave" - -#: models.py:26 -msgid "check out expiration date and time" -msgstr "datum i vrijeme istjecanja prijave" - -#: models.py:26 msgid "Amount of time to hold the document checked out in minutes." msgstr "Vrijeme zadržavanja odjavljenog dokumenta u minutama " -#: models.py:31 -msgid "block new version upload" -msgstr "blokirati upload nove verzije" +#: models.py:32 +msgid "Block new version upload" +msgstr "" -#: models.py:31 +#: models.py:32 msgid "Do not allow new version of this document to be uploaded." msgstr "Ne dozvoliti upload nove verzije ovog dokumenta." -#: models.py:54 -msgid "document checkout" -msgstr "odjava dokumenta" - -#: models.py:55 -msgid "document checkouts" -msgstr "odjave dokumenta" - -#: permissions.py:7 +#: models.py:58 permissions.py:7 msgid "Document checkout" msgstr "Odjava dokumenta" +#: models.py:59 +msgid "Document checkouts" +msgstr "" + #: permissions.py:9 msgid "Check out documents" msgstr "Odjaviti dokumente" @@ -137,20 +114,25 @@ msgid "Allow overriding check out restrictions" msgstr "Dozvoliti zanemarivanje ograničenja odjavljivanja" #: views.py:32 -msgid "checked out documents" -msgstr "odjavljeni dokumenti" +msgid "Documents checked out" +msgstr "" #: views.py:35 -msgid "checkout user" -msgstr "korisnik koji je odjavio" +msgid "Checkout user" +msgstr "" #: views.py:36 -msgid "checkout time and date" -msgstr "vrijeme i datum odjave" +msgid "Checkout time and date" +msgstr "" #: views.py:37 -msgid "checkout expiration" -msgstr "isticanje odjave" +msgid "Checkout expiration" +msgstr "" + +#: views.py:50 +#, python-format +msgid "Document status: %s" +msgstr "" #: views.py:54 #, python-format @@ -173,52 +155,48 @@ msgid "New versions allowed: %s" msgstr "Nove verzije dozvoljene: %s" #: views.py:57 -msgid "yes" -msgstr "da" +msgid "Yes" +msgstr "" #: views.py:57 -msgid "no" -msgstr "ne" +msgid "No" +msgstr "" #: views.py:62 #, python-format msgid "Check out details for document: %s" msgstr "Odjavni detalji za dokument: %s" -#: views.py:82 +#: views.py:85 #, python-format msgid "Error trying to check out document; %s" msgstr "Greška pokušaja odjave dokumenta; %s" -#: views.py:84 +#: views.py:87 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Dokument \"%s\" uspješno odjavljen." -#: views.py:87 -msgid "Document already checked out." -msgstr "Dokument je već odjavljen." - #: views.py:95 #, python-format msgid "Check out document: %s" msgstr "Odjaviti dokument: %s" -#: views.py:124 +#: views.py:107 views.py:128 msgid "Document has not been checked out." msgstr "Dokument nije odjavljen." -#: views.py:126 +#: views.py:130 #, python-format msgid "Error trying to check in document; %s" msgstr "Greška pokušaja prijave dokumenta; %s" -#: views.py:128 +#: views.py:132 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Dokument \"%s\" uspješno prijavljen." -#: views.py:141 +#: views.py:143 #, python-format msgid "" "You didn't originally checked out this document. Are you sure you wish to " @@ -227,45 +205,40 @@ msgstr "" "Vi niste odjavili ovaj dokument. Jeste li sigurni da želite prisilno " "prijaviti dokument: %s?" -#: views.py:143 +#: views.py:145 #, python-format msgid "Are you sure you wish to check in document: %s?" msgstr "Jeste li sigurni da želite prijaviti dokument: %s?" -#: widgets.py:19 -#, python-format -msgid "Document status: %(widget)s %(text)s" -msgstr "Status dokumenta: %(widget)s %(text)s" - -#: widgets.py:31 +#: widgets.py:17 msgid "Days" msgstr "Dana" -#: widgets.py:32 +#: widgets.py:18 msgid "Hours" msgstr "Sati" -#: widgets.py:33 +#: widgets.py:19 msgid "Minutes" msgstr "Minuta" -#: widgets.py:63 +#: widgets.py:49 msgid "Enter a valid number of days." msgstr "Unesite validan broj dana." -#: widgets.py:64 +#: widgets.py:50 msgid "Enter a valid number of hours." msgstr "Unesite validan broj sati." -#: widgets.py:65 +#: widgets.py:51 msgid "Enter a valid number of minutes." msgstr "Unesite validan broj minuta." -#: widgets.py:66 +#: widgets.py:52 msgid "Enter a valid time difference." msgstr "Unesite važeću vremensku razliku." -#: widgets.py:92 +#: widgets.py:78 msgid "" "Amount of time to hold the document in the checked out state in days, hours " "and/or minutes." @@ -273,6 +246,41 @@ msgstr "" "Vremenski period zadržavanja dokumenta u odjavljenom stanju u danima, satima " "i/ili minutama." -#: widgets.py:93 -msgid "Check out expiration date and time" -msgstr "Datum i vrijeme istjecanja odjave" +#~ msgid "Document \"%(document)s\" checked out by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." + +#~ msgid "Document \"%(document)s\" checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked in by %(fullname)s." + +#~ msgid "Document \"%(document)s\" automatically checked in." +#~ msgstr "Document \"%(document)s\" automatically checked in." + +#~ msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." + +#~ msgid "document" +#~ msgstr "document" + +#~ msgid "check out expiration date and time" +#~ msgstr "check out expiration date and time" + +#~ msgid "document checkout" +#~ msgstr "document checkout" + +#~ msgid "document checkouts" +#~ msgstr "document checkouts" + +#~ msgid "checked out documents" +#~ msgstr "checked out documents" + +#~ msgid "no" +#~ msgstr "no" + +#~ msgid "Check expired check out documents and checks them in." +#~ msgstr "Check expired check out documents and checks them in." + +#~ msgid "check out document" +#~ msgstr "check out document" + +#~ msgid "check in document" +#~ msgstr "check in document" diff --git a/mayan/apps/checkouts/locale/da/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/da/LC_MESSAGES/django.mo index b717050b6b..3f3e14a3d0 100644 Binary files a/mayan/apps/checkouts/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/da/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/da/LC_MESSAGES/django.po index a2be9ed027..139ae75c90 100644 --- a/mayan/apps/checkouts/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/da/LC_MESSAGES/django.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-07-10 15:47+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2015-01-11 22:05+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Danish (http://www.transifex.com/projects/p/mayan-edms/" "language/da/)\n" "Language: da\n" @@ -18,106 +19,82 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: __init__.py:40 -msgid "Check expired check out documents and checks them in." -msgstr "" - -#: events.py:5 +#: events.py:7 msgid "Document checked out" msgstr "" -#: events.py:6 -#, python-format -msgid "Document \"%(document)s\" checked out by %(fullname)s." -msgstr "" - -#: events.py:12 +#: events.py:8 msgid "Document checked in" msgstr "" -#: events.py:13 -#, python-format -msgid "Document \"%(document)s\" checked in by %(fullname)s." -msgstr "" - -#: events.py:19 +#: events.py:9 msgid "Document automatically checked in" msgstr "" -#: events.py:20 -#, python-format -msgid "Document \"%(document)s\" automatically checked in." -msgstr "" - -#: events.py:25 +#: events.py:10 msgid "Document forcefully checked in" msgstr "" -#: events.py:26 -#, python-format -msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." -msgstr "" - -#: links.py:16 -msgid "checkouts" -msgstr "" - -#: links.py:17 -msgid "check out document" -msgstr "" - -#: links.py:18 -msgid "check in document" +#: exceptions.py:18 views.py:82 +msgid "Document already checked out." msgstr "" #: links.py:19 -msgid "check in/out" +msgid "Checkouts" msgstr "" -#: literals.py:14 -msgid "checked out" +#: links.py:20 +msgid "Check out document" msgstr "" -#: literals.py:15 -msgid "checked in/available" +#: links.py:21 +msgid "Check in document" msgstr "" -#: models.py:24 views.py:132 -msgid "document" +#: links.py:22 +msgid "Check in/out" +msgstr "" + +#: literals.py:9 +msgid "Checked out" +msgstr "" + +#: literals.py:10 +msgid "Checked in/available" +msgstr "" + +#: models.py:23 +msgid "Document" +msgstr "" + +#: models.py:24 +msgid "Check out date and time" +msgstr "" + +#: models.py:25 widgets.py:79 +msgid "Check out expiration date and time" msgstr "" #: models.py:25 -msgid "check out date and time" -msgstr "" - -#: models.py:26 -msgid "check out expiration date and time" -msgstr "" - -#: models.py:26 msgid "Amount of time to hold the document checked out in minutes." msgstr "" -#: models.py:31 -msgid "block new version upload" +#: models.py:32 +msgid "Block new version upload" msgstr "" -#: models.py:31 +#: models.py:32 msgid "Do not allow new version of this document to be uploaded." msgstr "" -#: models.py:54 -msgid "document checkout" -msgstr "" - -#: models.py:55 -msgid "document checkouts" -msgstr "" - -#: permissions.py:7 +#: models.py:58 permissions.py:7 msgid "Document checkout" msgstr "" +#: models.py:59 +msgid "Document checkouts" +msgstr "" + #: permissions.py:9 msgid "Check out documents" msgstr "" @@ -135,19 +112,24 @@ msgid "Allow overriding check out restrictions" msgstr "" #: views.py:32 -msgid "checked out documents" +msgid "Documents checked out" msgstr "" #: views.py:35 -msgid "checkout user" +msgid "Checkout user" msgstr "" #: views.py:36 -msgid "checkout time and date" +msgid "Checkout time and date" msgstr "" #: views.py:37 -msgid "checkout expiration" +msgid "Checkout expiration" +msgstr "" + +#: views.py:50 +#, python-format +msgid "Document status: %s" msgstr "" #: views.py:54 @@ -171,11 +153,11 @@ msgid "New versions allowed: %s" msgstr "" #: views.py:57 -msgid "yes" +msgid "Yes" msgstr "" #: views.py:57 -msgid "no" +msgid "No" msgstr "" #: views.py:62 @@ -183,90 +165,116 @@ msgstr "" msgid "Check out details for document: %s" msgstr "" -#: views.py:82 +#: views.py:85 #, python-format msgid "Error trying to check out document; %s" msgstr "" -#: views.py:84 +#: views.py:87 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "" -#: views.py:87 -msgid "Document already checked out." -msgstr "" - #: views.py:95 #, python-format msgid "Check out document: %s" msgstr "" -#: views.py:124 +#: views.py:107 views.py:128 msgid "Document has not been checked out." msgstr "" -#: views.py:126 +#: views.py:130 #, python-format msgid "Error trying to check in document; %s" msgstr "" -#: views.py:128 +#: views.py:132 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "" -#: views.py:141 +#: views.py:143 #, python-format msgid "" "You didn't originally checked out this document. Are you sure you wish to " "forcefully check in document: %s?" msgstr "" -#: views.py:143 +#: views.py:145 #, python-format msgid "Are you sure you wish to check in document: %s?" msgstr "" -#: widgets.py:19 -#, python-format -msgid "Document status: %(widget)s %(text)s" -msgstr "" - -#: widgets.py:31 +#: widgets.py:17 msgid "Days" msgstr "" -#: widgets.py:32 +#: widgets.py:18 msgid "Hours" msgstr "" -#: widgets.py:33 +#: widgets.py:19 msgid "Minutes" msgstr "" -#: widgets.py:63 +#: widgets.py:49 msgid "Enter a valid number of days." msgstr "" -#: widgets.py:64 +#: widgets.py:50 msgid "Enter a valid number of hours." msgstr "" -#: widgets.py:65 +#: widgets.py:51 msgid "Enter a valid number of minutes." msgstr "" -#: widgets.py:66 +#: widgets.py:52 msgid "Enter a valid time difference." msgstr "" -#: widgets.py:92 +#: widgets.py:78 msgid "" "Amount of time to hold the document in the checked out state in days, hours " "and/or minutes." msgstr "" -#: widgets.py:93 -msgid "Check out expiration date and time" -msgstr "" +#~ msgid "Document \"%(document)s\" checked out by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." + +#~ msgid "Document \"%(document)s\" checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked in by %(fullname)s." + +#~ msgid "Document \"%(document)s\" automatically checked in." +#~ msgstr "Document \"%(document)s\" automatically checked in." + +#~ msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." + +#~ msgid "document" +#~ msgstr "document" + +#~ msgid "check out expiration date and time" +#~ msgstr "check out expiration date and time" + +#~ msgid "document checkout" +#~ msgstr "document checkout" + +#~ msgid "document checkouts" +#~ msgstr "document checkouts" + +#~ msgid "checked out documents" +#~ msgstr "checked out documents" + +#~ msgid "no" +#~ msgstr "no" + +#~ msgid "Check expired check out documents and checks them in." +#~ msgstr "Check expired check out documents and checks them in." + +#~ msgid "check out document" +#~ msgstr "check out document" + +#~ msgid "check in document" +#~ msgstr "check in document" diff --git a/mayan/apps/checkouts/locale/de_CH/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/de_CH/LC_MESSAGES/django.mo new file mode 100644 index 0000000000..5aac648093 Binary files /dev/null and b/mayan/apps/checkouts/locale/de_CH/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/de_CH/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/de_CH/LC_MESSAGES/django.po new file mode 100644 index 0000000000..5969bc11e0 --- /dev/null +++ b/mayan/apps/checkouts/locale/de_CH/LC_MESSAGES/django.po @@ -0,0 +1,280 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2015-01-11 22:05+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: German (Switzerland) (http://www.transifex.com/projects/p/" +"mayan-edms/language/de_CH/)\n" +"Language: de_CH\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: events.py:7 +msgid "Document checked out" +msgstr "" + +#: events.py:8 +msgid "Document checked in" +msgstr "" + +#: events.py:9 +msgid "Document automatically checked in" +msgstr "" + +#: events.py:10 +msgid "Document forcefully checked in" +msgstr "" + +#: exceptions.py:18 views.py:82 +msgid "Document already checked out." +msgstr "" + +#: links.py:19 +msgid "Checkouts" +msgstr "" + +#: links.py:20 +msgid "Check out document" +msgstr "" + +#: links.py:21 +msgid "Check in document" +msgstr "" + +#: links.py:22 +msgid "Check in/out" +msgstr "" + +#: literals.py:9 +msgid "Checked out" +msgstr "" + +#: literals.py:10 +msgid "Checked in/available" +msgstr "" + +#: models.py:23 +msgid "Document" +msgstr "" + +#: models.py:24 +msgid "Check out date and time" +msgstr "" + +#: models.py:25 widgets.py:79 +msgid "Check out expiration date and time" +msgstr "" + +#: models.py:25 +msgid "Amount of time to hold the document checked out in minutes." +msgstr "" + +#: models.py:32 +msgid "Block new version upload" +msgstr "" + +#: models.py:32 +msgid "Do not allow new version of this document to be uploaded." +msgstr "" + +#: models.py:58 permissions.py:7 +msgid "Document checkout" +msgstr "" + +#: models.py:59 +msgid "Document checkouts" +msgstr "" + +#: permissions.py:9 +msgid "Check out documents" +msgstr "" + +#: permissions.py:10 +msgid "Check in documents" +msgstr "" + +#: permissions.py:11 +msgid "Forcefully check in documents" +msgstr "" + +#: permissions.py:12 +msgid "Allow overriding check out restrictions" +msgstr "" + +#: views.py:32 +msgid "Documents checked out" +msgstr "" + +#: views.py:35 +msgid "Checkout user" +msgstr "" + +#: views.py:36 +msgid "Checkout time and date" +msgstr "" + +#: views.py:37 +msgid "Checkout expiration" +msgstr "" + +#: views.py:50 +#, python-format +msgid "Document status: %s" +msgstr "" + +#: views.py:54 +#, python-format +msgid "User: %s" +msgstr "" + +#: views.py:55 +#, python-format +msgid "Check out time: %s" +msgstr "" + +#: views.py:56 +#, python-format +msgid "Check out expiration: %s" +msgstr "" + +#: views.py:57 +#, python-format +msgid "New versions allowed: %s" +msgstr "" + +#: views.py:57 +msgid "Yes" +msgstr "" + +#: views.py:57 +msgid "No" +msgstr "" + +#: views.py:62 +#, python-format +msgid "Check out details for document: %s" +msgstr "" + +#: views.py:85 +#, python-format +msgid "Error trying to check out document; %s" +msgstr "" + +#: views.py:87 +#, python-format +msgid "Document \"%s\" checked out successfully." +msgstr "" + +#: views.py:95 +#, python-format +msgid "Check out document: %s" +msgstr "" + +#: views.py:107 views.py:128 +msgid "Document has not been checked out." +msgstr "" + +#: views.py:130 +#, python-format +msgid "Error trying to check in document; %s" +msgstr "" + +#: views.py:132 +#, python-format +msgid "Document \"%s\" checked in successfully." +msgstr "" + +#: views.py:143 +#, python-format +msgid "" +"You didn't originally checked out this document. Are you sure you wish to " +"forcefully check in document: %s?" +msgstr "" + +#: views.py:145 +#, python-format +msgid "Are you sure you wish to check in document: %s?" +msgstr "" + +#: widgets.py:17 +msgid "Days" +msgstr "" + +#: widgets.py:18 +msgid "Hours" +msgstr "" + +#: widgets.py:19 +msgid "Minutes" +msgstr "" + +#: widgets.py:49 +msgid "Enter a valid number of days." +msgstr "" + +#: widgets.py:50 +msgid "Enter a valid number of hours." +msgstr "" + +#: widgets.py:51 +msgid "Enter a valid number of minutes." +msgstr "" + +#: widgets.py:52 +msgid "Enter a valid time difference." +msgstr "" + +#: widgets.py:78 +msgid "" +"Amount of time to hold the document in the checked out state in days, hours " +"and/or minutes." +msgstr "" + +#~ msgid "Document \"%(document)s\" checked out by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." + +#~ msgid "Document \"%(document)s\" checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked in by %(fullname)s." + +#~ msgid "Document \"%(document)s\" automatically checked in." +#~ msgstr "Document \"%(document)s\" automatically checked in." + +#~ msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." + +#~ msgid "document" +#~ msgstr "document" + +#~ msgid "check out expiration date and time" +#~ msgstr "check out expiration date and time" + +#~ msgid "document checkout" +#~ msgstr "document checkout" + +#~ msgid "document checkouts" +#~ msgstr "document checkouts" + +#~ msgid "checked out documents" +#~ msgstr "checked out documents" + +#~ msgid "no" +#~ msgstr "no" + +#~ msgid "Check expired check out documents and checks them in." +#~ msgstr "Check expired check out documents and checks them in." + +#~ msgid "check out document" +#~ msgstr "check out document" + +#~ msgid "check in document" +#~ msgstr "check in document" diff --git a/mayan/apps/checkouts/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/de_DE/LC_MESSAGES/django.mo index 85b223d68b..c149449b10 100644 Binary files a/mayan/apps/checkouts/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/de_DE/LC_MESSAGES/django.po index 84c56468cf..0d9188100a 100644 --- a/mayan/apps/checkouts/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/de_DE/LC_MESSAGES/django.po @@ -3,16 +3,18 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: # Stefan Lodders , 2012 # Mathias Behrle , 2014 # Stefan Lodders , 2012 +# Stefan Lodders , 2012 # Tobias Paepke , 2014 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2014-03-12 16:11+0000\n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2015-02-06 23:55+0000\n" "Last-Translator: Mathias Behrle \n" "Language-Team: German (Germany) (http://www.transifex.com/projects/p/mayan-" "edms/language/de_DE/)\n" @@ -22,111 +24,85 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: __init__.py:40 -msgid "Check expired check out documents and checks them in." -msgstr "" -"Überprüft, ob die Frist für ausgebuchte Dokumente abgelaufen ist und bucht " -"sie ggf. wieder ein." - -#: events.py:5 +#: events.py:7 msgid "Document checked out" msgstr "Dokument ausgebucht" -#: events.py:6 -#, python-format -msgid "Document \"%(document)s\" checked out by %(fullname)s." -msgstr "Dokument \"%(document)s\" von %(fullname)s ausgebucht." - -#: events.py:12 +#: events.py:8 msgid "Document checked in" msgstr "Dokument eingebucht" -#: events.py:13 -#, python-format -msgid "Document \"%(document)s\" checked in by %(fullname)s." -msgstr "Dokument \"%(document)s\" von %(fullname)s eingebucht." - -#: events.py:19 +#: events.py:9 msgid "Document automatically checked in" msgstr "Dokument automatisch eingebucht" -#: events.py:20 -#, python-format -msgid "Document \"%(document)s\" automatically checked in." -msgstr "Dokument \"%(document)s\" automatisch eingebucht." - -#: events.py:25 +#: events.py:10 msgid "Document forcefully checked in" msgstr "Dokument zwingend eingebucht" -#: events.py:26 -#, python-format -msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." -msgstr "Dokument \" %(document)s \" zwingend durch %(fullname)s eingebucht." - -#: links.py:16 -msgid "checkouts" -msgstr "Ausbuchungen" - -#: links.py:17 -msgid "check out document" -msgstr "Dokument ausbuchen" - -#: links.py:18 -msgid "check in document" -msgstr "Dokument einbuchen" +#: exceptions.py:18 views.py:82 +msgid "Document already checked out." +msgstr "Dokument bereits ausgebucht" #: links.py:19 -msgid "check in/out" +msgid "Checkouts" +msgstr "Ausbuchungen" + +#: links.py:20 +msgid "Check out document" +msgstr "Dokument ausbuchen" + +#: links.py:21 +msgid "Check in document" +msgstr "Dokument einbuchen" + +#: links.py:22 +msgid "Check in/out" msgstr "Aus-/Einbuchen" -#: literals.py:14 -msgid "checked out" +#: literals.py:9 +msgid "Checked out" msgstr "Ausgebucht" -#: literals.py:15 -msgid "checked in/available" +#: literals.py:10 +msgid "Checked in/available" msgstr "Eingebucht/Verfügbar" -#: models.py:24 views.py:132 -msgid "document" +#: models.py:23 +msgid "Document" msgstr "Dokument" +#: models.py:24 +msgid "Check out date and time" +msgstr "Ausbuchungsbeginn" + +#: models.py:25 widgets.py:79 +msgid "Check out expiration date and time" +msgstr "Ausbuchungsende" + #: models.py:25 -msgid "check out date and time" -msgstr "Datum und Uhrzeit Ausbuchung" - -#: models.py:26 -msgid "check out expiration date and time" -msgstr "Ablauf-Datum und Zeit Ausbuchung" - -#: models.py:26 msgid "Amount of time to hold the document checked out in minutes." -msgstr "Zeitraum für die Ausbuchung des Dokuments (in Minuten)." +msgstr "Zeit, für die das Dokument ausgebucht werden soll" -#: models.py:31 -msgid "block new version upload" -msgstr "Hochladen neuer Versionen blockieren" +#: models.py:32 +msgid "Block new version upload" +msgstr "Hochladen von neuen Versionen sperren" -#: models.py:31 +#: models.py:32 msgid "Do not allow new version of this document to be uploaded." -msgstr "Hochladen einer neuen Version dieses Dokuments verweigern." +msgstr "Das Hochladen von neuen Versionen dieses Dokuments sperren" -#: models.py:54 -msgid "document checkout" -msgstr "Dokumentausbuchung" - -#: models.py:55 -msgid "document checkouts" -msgstr "Dokumentausbuchungen" - -#: permissions.py:7 +#: models.py:58 permissions.py:7 msgid "Document checkout" -msgstr "Dokumentausbuchung" +msgstr "Ausbuchung" + +#: models.py:59 +msgid "Document checkouts" +msgstr "Ausbuchungen" #: permissions.py:9 msgid "Check out documents" -msgstr "Dokumentausbuchungen" +msgstr "Dokumente ausbuchen" #: permissions.py:10 msgid "Check in documents" @@ -134,27 +110,32 @@ msgstr "Dokumente einbuchen" #: permissions.py:11 msgid "Forcefully check in documents" -msgstr "Dokumenteneinbuchung erzwingen" +msgstr "Dokumente zwingend einbuchen" #: permissions.py:12 msgid "Allow overriding check out restrictions" -msgstr "Außerkraftsetzung von Ausbuchungsbeschränkungen erlauben" +msgstr "Aufhebung der Ausbuchungseinschränkungen erlauben" #: views.py:32 -msgid "checked out documents" +msgid "Documents checked out" msgstr "Ausgebuchte Dokumente" #: views.py:35 -msgid "checkout user" -msgstr "Ausgebucht durch" +msgid "Checkout user" +msgstr "Benutzer" #: views.py:36 -msgid "checkout time and date" -msgstr "Zeit und Datum Ausbuchung" +msgid "Checkout time and date" +msgstr "Ausbuchungsbeginn" #: views.py:37 -msgid "checkout expiration" -msgstr "Ablauf der Ausbuchung" +msgid "Checkout expiration" +msgstr "Ausbuchungsende" + +#: views.py:50 +#, python-format +msgid "Document status: %s" +msgstr "Dokumentenstatus: %s" #: views.py:54 #, python-format @@ -164,24 +145,24 @@ msgstr "Benutzer: %s" #: views.py:55 #, python-format msgid "Check out time: %s" -msgstr "Zeit Ausbuchung: %s" +msgstr "Ausbuchungsbeginn: %s" #: views.py:56 #, python-format msgid "Check out expiration: %s" -msgstr "Ablauf Ausbuchung: %s" +msgstr "Ausbuchungsende: %s" #: views.py:57 #, python-format msgid "New versions allowed: %s" -msgstr "Neue Versionen erlaubt: %s" +msgstr "Hochladen neuer Versionen erlaubt: %s" #: views.py:57 -msgid "yes" +msgid "Yes" msgstr "Ja" #: views.py:57 -msgid "no" +msgid "No" msgstr "Nein" #: views.py:62 @@ -189,93 +170,119 @@ msgstr "Nein" msgid "Check out details for document: %s" msgstr "Ausbuchungsdetails für Dokument %s" -#: views.py:82 +#: views.py:85 #, python-format msgid "Error trying to check out document; %s" -msgstr "Fehler beim Versuch das Dokument %s auszubuchen" - -#: views.py:84 -#, python-format -msgid "Document \"%s\" checked out successfully." -msgstr "Dokument \"%s\" erfolgreich ausgebucht." +msgstr "Fehler bei der Ausbuchung von Dokument %s" #: views.py:87 -msgid "Document already checked out." -msgstr "Dokument bereits ausgebucht." +#, python-format +msgid "Document \"%s\" checked out successfully." +msgstr "Dokument \"%s\" erfolgreich ausgebucht" #: views.py:95 #, python-format msgid "Check out document: %s" -msgstr "Dokument ausgebucht: %s" +msgstr "Dokument %s ausbuchen" -#: views.py:124 +#: views.py:107 views.py:128 msgid "Document has not been checked out." -msgstr "Dokument wurde nicht ausgebucht." +msgstr "Dokument wurde nicht ausgebucht" -#: views.py:126 +#: views.py:130 #, python-format msgid "Error trying to check in document; %s" -msgstr "Fehler beim Versuch das Dokument %s auszubuchen." +msgstr "Fehler bei der Einbuchung von Dokument %s" -#: views.py:128 +#: views.py:132 #, python-format msgid "Document \"%s\" checked in successfully." -msgstr "Dokument \"%s\" erfolgreich eingebucht." +msgstr "Dokument \"%s\" erfolgreich eingebucht" -#: views.py:141 +#: views.py:143 #, python-format msgid "" "You didn't originally checked out this document. Are you sure you wish to " "forcefully check in document: %s?" msgstr "" -"Sie haben dieses Dokument ursprünglich nicht ausgebucht. Sind Sie sicher, " -"dass Sie die Einbuchung von Dokument %s erzwingen wollen?" +"Ein anderer Benutzer hat dieses Dokument ausgebucht. Wollen Sie Dokument %s " +"wirklich zwingend einbuchen?" -#: views.py:143 +#: views.py:145 #, python-format msgid "Are you sure you wish to check in document: %s?" -msgstr "Sind sie sicher, dass Sie Dokument %s einbuchen wollen?" +msgstr "Wollen Sie Dokument %s wirklich einbuchen?" -#: widgets.py:19 -#, python-format -msgid "Document status: %(widget)s %(text)s" -msgstr "Dokumentenstatus: %(widget)s %(text)s" - -#: widgets.py:31 +#: widgets.py:17 msgid "Days" msgstr "Tage" -#: widgets.py:32 +#: widgets.py:18 msgid "Hours" msgstr "Stunden" -#: widgets.py:33 +#: widgets.py:19 msgid "Minutes" msgstr "Minuten" -#: widgets.py:63 +#: widgets.py:49 msgid "Enter a valid number of days." -msgstr "Eine gültige Anzahl an Tagen ist erforderlich." +msgstr "Geben Sie eine gültige Anzahl an Tagen ein" -#: widgets.py:64 +#: widgets.py:50 msgid "Enter a valid number of hours." -msgstr "Eine gültige Anzahl an Stunden ist erforderlich." +msgstr "Geben Sie eine gültige Anzahl an Stunden ein" -#: widgets.py:65 +#: widgets.py:51 msgid "Enter a valid number of minutes." -msgstr "Eine gültige Anzahl an Minuten ist erforderlich." +msgstr "Geben Sie eine gültige Anzahl an Minuten ein" -#: widgets.py:66 +#: widgets.py:52 msgid "Enter a valid time difference." -msgstr "Eine gültige Zeitdifferenz ist erforderlich." +msgstr "Geben Sie eine gültige Zeitdifferenz ein" -#: widgets.py:92 +#: widgets.py:78 msgid "" "Amount of time to hold the document in the checked out state in days, hours " "and/or minutes." msgstr "" -"Zeitdauer der Ausbuchung des Dokuments (in Tagen, Stunden und/oder Minuten)." +"Zeitdauer der Ausbuchung des Dokuments (in Tagen, Stunden und/oder Minuten)" -#: widgets.py:93 -msgid "Check out expiration date and time" -msgstr "Ablauf-Datum und -Zeit Ausbuchung" +#~ msgid "Document \"%(document)s\" checked out by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." + +#~ msgid "Document \"%(document)s\" checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked in by %(fullname)s." + +#~ msgid "Document \"%(document)s\" automatically checked in." +#~ msgstr "Document \"%(document)s\" automatically checked in." + +#~ msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." + +#~ msgid "document" +#~ msgstr "document" + +#~ msgid "check out expiration date and time" +#~ msgstr "check out expiration date and time" + +#~ msgid "document checkout" +#~ msgstr "document checkout" + +#~ msgid "document checkouts" +#~ msgstr "document checkouts" + +#~ msgid "checked out documents" +#~ msgstr "checked out documents" + +#~ msgid "no" +#~ msgstr "no" + +#~ msgid "Check expired check out documents and checks them in." +#~ msgstr "Check expired check out documents and checks them in." + +#~ msgid "check out document" +#~ msgstr "check out document" + +#~ msgid "check in document" +#~ msgstr "check in document" diff --git a/mayan/apps/checkouts/locale/en/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/en/LC_MESSAGES/django.mo index 02fab5eb58..e8fd6ef2ad 100644 Binary files a/mayan/apps/checkouts/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/en/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/en/LC_MESSAGES/django.po index 194ac55abc..4797730d29 100644 --- a/mayan/apps/checkouts/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" "PO-Revision-Date: 2012-07-10 15:47+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -18,106 +18,92 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: __init__.py:40 -msgid "Check expired check out documents and checks them in." -msgstr "Check expired check out documents and checks them in." - -#: events.py:5 +#: events.py:7 msgid "Document checked out" msgstr "Document checked out" -#: events.py:6 -#, python-format -msgid "Document \"%(document)s\" checked out by %(fullname)s." -msgstr "Document \"%(document)s\" checked out by %(fullname)s." - -#: events.py:12 +#: events.py:8 msgid "Document checked in" msgstr "Document checked in" -#: events.py:13 -#, python-format -msgid "Document \"%(document)s\" checked in by %(fullname)s." -msgstr "Document \"%(document)s\" checked in by %(fullname)s." - -#: events.py:19 +#: events.py:9 msgid "Document automatically checked in" msgstr "Document automatically checked in" -#: events.py:20 -#, python-format -msgid "Document \"%(document)s\" automatically checked in." -msgstr "Document \"%(document)s\" automatically checked in." - -#: events.py:25 +#: events.py:10 msgid "Document forcefully checked in" msgstr "Document forcefully checked in" -#: events.py:26 -#, python-format -msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." -msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." - -#: links.py:16 -msgid "checkouts" -msgstr "checkouts" - -#: links.py:17 -msgid "check out document" -msgstr "check out document" - -#: links.py:18 -msgid "check in document" -msgstr "check in document" +#: exceptions.py:18 views.py:82 +msgid "Document already checked out." +msgstr "Document already checked out." #: links.py:19 -msgid "check in/out" +#, fuzzy +msgid "Checkouts" +msgstr "checkouts" + +#: links.py:20 +#, fuzzy +msgid "Check out document" +msgstr "Check out documents" + +#: links.py:21 +#, fuzzy +msgid "Check in document" +msgstr "Check in documents" + +#: links.py:22 +#, fuzzy +msgid "Check in/out" msgstr "check in/out" -#: literals.py:14 -msgid "checked out" +#: literals.py:9 +#, fuzzy +msgid "Checked out" msgstr "checked out" -#: literals.py:15 -msgid "checked in/available" +#: literals.py:10 +#, fuzzy +msgid "Checked in/available" msgstr "checked in/available" -#: models.py:24 views.py:132 -msgid "document" +#: models.py:23 +#, fuzzy +msgid "Document" msgstr "document" -#: models.py:25 -msgid "check out date and time" +#: models.py:24 +#, fuzzy +msgid "Check out date and time" msgstr "check out date and time" -#: models.py:26 -msgid "check out expiration date and time" -msgstr "check out expiration date and time" +#: models.py:25 widgets.py:79 +msgid "Check out expiration date and time" +msgstr "Check out expiration date and time" -#: models.py:26 +#: models.py:25 msgid "Amount of time to hold the document checked out in minutes." msgstr "Amount of time to hold the document checked out in minutes." -#: models.py:31 -msgid "block new version upload" +#: models.py:32 +#, fuzzy +msgid "Block new version upload" msgstr "block new version upload" -#: models.py:31 +#: models.py:32 msgid "Do not allow new version of this document to be uploaded." msgstr "Do not allow new version of this document to be uploaded." -#: models.py:54 -msgid "document checkout" -msgstr "document checkout" - -#: models.py:55 -msgid "document checkouts" -msgstr "document checkouts" - -#: permissions.py:7 +#: models.py:58 permissions.py:7 msgid "Document checkout" msgstr "Document checkout" +#: models.py:59 +#, fuzzy +msgid "Document checkouts" +msgstr "Document checkout" + #: permissions.py:9 msgid "Check out documents" msgstr "Check out documents" @@ -135,21 +121,30 @@ msgid "Allow overriding check out restrictions" msgstr "Allow overriding check out restrictions" #: views.py:32 -msgid "checked out documents" -msgstr "checked out documents" +#, fuzzy +msgid "Documents checked out" +msgstr "Document checked out" #: views.py:35 -msgid "checkout user" +#, fuzzy +msgid "Checkout user" msgstr "checkout user" #: views.py:36 -msgid "checkout time and date" +#, fuzzy +msgid "Checkout time and date" msgstr "checkout time and date" #: views.py:37 -msgid "checkout expiration" +#, fuzzy +msgid "Checkout expiration" msgstr "checkout expiration" +#: views.py:50 +#, fuzzy, python-format +msgid "Document status: %s" +msgstr "Document status: %(widget)s %(text)s" + #: views.py:54 #, python-format msgid "User: %s" @@ -171,52 +166,49 @@ msgid "New versions allowed: %s" msgstr "New versions allowed: %s" #: views.py:57 -msgid "yes" +#, fuzzy +msgid "Yes" msgstr "yes" #: views.py:57 -msgid "no" -msgstr "no" +msgid "No" +msgstr "" #: views.py:62 #, python-format msgid "Check out details for document: %s" msgstr "Check out details for document: %s" -#: views.py:82 +#: views.py:85 #, python-format msgid "Error trying to check out document; %s" msgstr "Error trying to check out document; %s" -#: views.py:84 +#: views.py:87 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Document \"%s\" checked out successfully." -#: views.py:87 -msgid "Document already checked out." -msgstr "Document already checked out." - #: views.py:95 #, python-format msgid "Check out document: %s" msgstr "Check out document: %s" -#: views.py:124 +#: views.py:107 views.py:128 msgid "Document has not been checked out." msgstr "Document has not been checked out." -#: views.py:126 +#: views.py:130 #, python-format msgid "Error trying to check in document; %s" msgstr "Error trying to check in document; %s" -#: views.py:128 +#: views.py:132 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Document \"%s\" checked in successfully." -#: views.py:141 +#: views.py:143 #, python-format msgid "" "You didn't originally checked out this document. Are you sure you wish to " @@ -225,45 +217,40 @@ msgstr "" "You didn't originally checked out this document. Are you sure you wish to " "forcefully check in document: %s?" -#: views.py:143 +#: views.py:145 #, python-format msgid "Are you sure you wish to check in document: %s?" msgstr "Are you sure you wish to check in document: %s?" -#: widgets.py:19 -#, python-format -msgid "Document status: %(widget)s %(text)s" -msgstr "Document status: %(widget)s %(text)s" - -#: widgets.py:31 +#: widgets.py:17 msgid "Days" msgstr "Days" -#: widgets.py:32 +#: widgets.py:18 msgid "Hours" msgstr "Hours" -#: widgets.py:33 +#: widgets.py:19 msgid "Minutes" msgstr "Minutes" -#: widgets.py:63 +#: widgets.py:49 msgid "Enter a valid number of days." msgstr "Enter a valid number of days." -#: widgets.py:64 +#: widgets.py:50 msgid "Enter a valid number of hours." msgstr "Enter a valid number of hours." -#: widgets.py:65 +#: widgets.py:51 msgid "Enter a valid number of minutes." msgstr "Enter a valid number of minutes." -#: widgets.py:66 +#: widgets.py:52 msgid "Enter a valid time difference." msgstr "Enter a valid time difference." -#: widgets.py:92 +#: widgets.py:78 msgid "" "Amount of time to hold the document in the checked out state in days, hours " "and/or minutes." @@ -271,6 +258,41 @@ msgstr "" "Amount of time to hold the document in the checked out state in days, hours " "and/or minutes." -#: widgets.py:93 -msgid "Check out expiration date and time" -msgstr "Check out expiration date and time" +#~ msgid "Document \"%(document)s\" checked out by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." + +#~ msgid "Document \"%(document)s\" checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked in by %(fullname)s." + +#~ msgid "Document \"%(document)s\" automatically checked in." +#~ msgstr "Document \"%(document)s\" automatically checked in." + +#~ msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." + +#~ msgid "document" +#~ msgstr "document" + +#~ msgid "check out expiration date and time" +#~ msgstr "check out expiration date and time" + +#~ msgid "document checkout" +#~ msgstr "document checkout" + +#~ msgid "document checkouts" +#~ msgstr "document checkouts" + +#~ msgid "checked out documents" +#~ msgstr "checked out documents" + +#~ msgid "no" +#~ msgstr "no" + +#~ msgid "Check expired check out documents and checks them in." +#~ msgstr "Check expired check out documents and checks them in." + +#~ msgid "check out document" +#~ msgstr "check out document" + +#~ msgid "check in document" +#~ msgstr "check in document" diff --git a/mayan/apps/checkouts/locale/es/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/es/LC_MESSAGES/django.mo index 260950e775..102083d656 100644 Binary files a/mayan/apps/checkouts/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/es/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/es/LC_MESSAGES/django.po index e514b33f56..28431be014 100644 --- a/mayan/apps/checkouts/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/es/LC_MESSAGES/django.po @@ -3,13 +3,16 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: -# Roberto Rosario, 2012 +# Translators: +# jmcainzos , 2014 +# Lory977 , 2015 +# Roberto Rosario, 2012,2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-07-10 16:11+0000\n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2015-01-17 23:21+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Spanish (http://www.transifex.com/projects/p/mayan-edms/" "language/es/)\n" @@ -19,107 +22,81 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: __init__.py:40 -msgid "Check expired check out documents and checks them in." -msgstr "" -"Verifica reservaciones de documentos expiradas y los devuelve " -"estomáticamente." - -#: events.py:5 +#: events.py:7 msgid "Document checked out" msgstr "Documento reservado" -#: events.py:6 -#, python-format -msgid "Document \"%(document)s\" checked out by %(fullname)s." -msgstr "Documento \"%(document)s\" reservado por %(fullname)s." - -#: events.py:12 +#: events.py:8 msgid "Document checked in" msgstr "Documento devuelto" -#: events.py:13 -#, python-format -msgid "Document \"%(document)s\" checked in by %(fullname)s." -msgstr "Documento \"%(document)s\" devuelto por %(fullname)s." - -#: events.py:19 +#: events.py:9 msgid "Document automatically checked in" msgstr "Documento devuelto automáticamente" -#: events.py:20 -#, python-format -msgid "Document \"%(document)s\" automatically checked in." -msgstr "Documento \"%(document)s\" devuelto automáticamente." - -#: events.py:25 +#: events.py:10 msgid "Document forcefully checked in" msgstr "Documento devuelto forzosamente" -#: events.py:26 -#, python-format -msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." -msgstr "Documento \"%(document)s\" devuelto forzosamente por %(fullname)s." - -#: links.py:16 -msgid "checkouts" -msgstr "reservaciones" - -#: links.py:17 -msgid "check out document" -msgstr "reservar documento" - -#: links.py:18 -msgid "check in document" -msgstr "devolver documento" +#: exceptions.py:18 views.py:82 +msgid "Document already checked out." +msgstr "El documento ya está reservado." #: links.py:19 -msgid "check in/out" -msgstr "reservas" +msgid "Checkouts" +msgstr "Reservaciones" -#: literals.py:14 -msgid "checked out" -msgstr "reservado" +#: links.py:20 +msgid "Check out document" +msgstr "Reservar documento" -#: literals.py:15 -msgid "checked in/available" -msgstr "devuelto/disponible" +#: links.py:21 +msgid "Check in document" +msgstr "Devolver documento" -#: models.py:24 views.py:132 -msgid "document" -msgstr "documento" +#: links.py:22 +msgid "Check in/out" +msgstr "Reservas" + +#: literals.py:9 +msgid "Checked out" +msgstr "Reservado" + +#: literals.py:10 +msgid "Checked in/available" +msgstr "Devuelto/disponible" + +#: models.py:23 +msgid "Document" +msgstr "Documento" + +#: models.py:24 +msgid "Check out date and time" +msgstr "Fecha y hora de la reservación" + +#: models.py:25 widgets.py:79 +msgid "Check out expiration date and time" +msgstr "Fecha y hora de la expiración de la reserva." #: models.py:25 -msgid "check out date and time" -msgstr "fecha y hora de la reservación" - -#: models.py:26 -msgid "check out expiration date and time" -msgstr "fecha y hora de expiración de reservación" - -#: models.py:26 msgid "Amount of time to hold the document checked out in minutes." msgstr "Cantidad de tiempo para mantener el documento reservado, en minutos." -#: models.py:31 -msgid "block new version upload" -msgstr "restringir la subida de nuevas versiones" +#: models.py:32 +msgid "Block new version upload" +msgstr "Restringir la subida de nuevas versiones" -#: models.py:31 +#: models.py:32 msgid "Do not allow new version of this document to be uploaded." msgstr "No permitir que nuevas versiones de este documento sean cargadas." -#: models.py:54 -msgid "document checkout" -msgstr "reservación de documento" - -#: models.py:55 -msgid "document checkouts" -msgstr "reservaciones de documentos" - -#: permissions.py:7 +#: models.py:58 permissions.py:7 msgid "Document checkout" -msgstr "Reservación de documentos" +msgstr "Reserva de documentos" + +#: models.py:59 +msgid "Document checkouts" +msgstr "Reservaciones de documentos" #: permissions.py:9 msgid "Check out documents" @@ -135,24 +112,29 @@ msgstr "Devolver documentos forzosamente" #: permissions.py:12 msgid "Allow overriding check out restrictions" -msgstr "Evadir restricciones de documentos reservados" +msgstr "Ignorar las restricciones de documentos reservados" #: views.py:32 -msgid "checked out documents" -msgstr "documentos reservados" +msgid "Documents checked out" +msgstr "Documentos reservados" #: views.py:35 -msgid "checkout user" -msgstr "usuario" +msgid "Checkout user" +msgstr "Usuario que reserva" #: views.py:36 -msgid "checkout time and date" +msgid "Checkout time and date" msgstr "fecha y hora de reservación" #: views.py:37 -msgid "checkout expiration" +msgid "Checkout expiration" msgstr "expiración de la reservación" +#: views.py:50 +#, python-format +msgid "Document status: %s" +msgstr "Estado de documento: %s" + #: views.py:54 #, python-format msgid "User: %s" @@ -161,12 +143,12 @@ msgstr "Usuario: %s" #: views.py:55 #, python-format msgid "Check out time: %s" -msgstr "Tiempo de la reservación: %s" +msgstr "Tiempo de la reserva: %s" #: views.py:56 #, python-format msgid "Check out expiration: %s" -msgstr "Expiración de la reservación: %s" +msgstr "Expiración de la reserva: %s" #: views.py:57 #, python-format @@ -174,105 +156,131 @@ msgid "New versions allowed: %s" msgstr "Nuevas versiones permitidas: %s" #: views.py:57 -msgid "yes" -msgstr "sí" +msgid "Yes" +msgstr "Si" #: views.py:57 -msgid "no" -msgstr "no" +msgid "No" +msgstr "No" #: views.py:62 #, python-format msgid "Check out details for document: %s" -msgstr "Detalles de reservación para el documento: %s" +msgstr "Detalles de la reserva para el documento: %s" -#: views.py:82 +#: views.py:85 #, python-format msgid "Error trying to check out document; %s" msgstr "Error tratando de reservar documento: %s" -#: views.py:84 +#: views.py:87 #, python-format msgid "Document \"%s\" checked out successfully." -msgstr "Document \"%s\" reservador exitosamente." - -#: views.py:87 -msgid "Document already checked out." -msgstr "El documento ya esta reservado." +msgstr "Document \"%s\" reservado con éxito." #: views.py:95 #, python-format msgid "Check out document: %s" msgstr "Reservar el documento: %s" -#: views.py:124 +#: views.py:107 views.py:128 msgid "Document has not been checked out." msgstr "El documento no ha sido reservado." -#: views.py:126 +#: views.py:130 #, python-format msgid "Error trying to check in document; %s" msgstr "Error tratando de devolver documento: %s" -#: views.py:128 +#: views.py:132 #, python-format msgid "Document \"%s\" checked in successfully." -msgstr "Documento \"%s\" devuelto exitosamente." +msgstr "Documento \"%s\" devuelto con éxito." -#: views.py:141 +#: views.py:143 #, python-format msgid "" "You didn't originally checked out this document. Are you sure you wish to " "forcefully check in document: %s?" msgstr "" -"Usted reservo originalemente este document. ¿Está seguro que desea devolver " -"forzosamente el documento: %s?" +"Usted no reservó inicialmente este documento. ¿Está seguro que desea " +"devolver forzosamente el documento: %s?" -#: views.py:143 +#: views.py:145 #, python-format msgid "Are you sure you wish to check in document: %s?" msgstr "¿Está seguro que desea devolver el documento: %s?" -#: widgets.py:19 -#, python-format -msgid "Document status: %(widget)s %(text)s" -msgstr "Estado del documento: %(widget)s %(text)s" - -#: widgets.py:31 +#: widgets.py:17 msgid "Days" msgstr "Dias" -#: widgets.py:32 +#: widgets.py:18 msgid "Hours" msgstr "Horas" -#: widgets.py:33 +#: widgets.py:19 msgid "Minutes" msgstr "Minutos" -#: widgets.py:63 +#: widgets.py:49 msgid "Enter a valid number of days." -msgstr "Entre un número de dias válido." +msgstr "Introduzca un número de dias válido." -#: widgets.py:64 +#: widgets.py:50 msgid "Enter a valid number of hours." -msgstr "Entre un número de horas válido." +msgstr "Introduzca un número de horas válido." -#: widgets.py:65 +#: widgets.py:51 msgid "Enter a valid number of minutes." -msgstr "Entre un número de minutos válido." +msgstr "Introduzca un número de minutos válido." -#: widgets.py:66 +#: widgets.py:52 msgid "Enter a valid time difference." -msgstr "Entre una diferencia de tiempo válida." +msgstr "Introduzca una diferencia de tiempo válida." -#: widgets.py:92 +#: widgets.py:78 msgid "" "Amount of time to hold the document in the checked out state in days, hours " "and/or minutes." msgstr "" "Cantidad de tiempo para reservar el documento, en días, horas y / o minutos." -#: widgets.py:93 -msgid "Check out expiration date and time" -msgstr "Fecha y hora de la expiración de la reservación." +#~ msgid "Document \"%(document)s\" checked out by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." + +#~ msgid "Document \"%(document)s\" checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked in by %(fullname)s." + +#~ msgid "Document \"%(document)s\" automatically checked in." +#~ msgstr "Document \"%(document)s\" automatically checked in." + +#~ msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." + +#~ msgid "document" +#~ msgstr "document" + +#~ msgid "check out expiration date and time" +#~ msgstr "check out expiration date and time" + +#~ msgid "document checkout" +#~ msgstr "document checkout" + +#~ msgid "document checkouts" +#~ msgstr "document checkouts" + +#~ msgid "checked out documents" +#~ msgstr "checked out documents" + +#~ msgid "no" +#~ msgstr "no" + +#~ msgid "Check expired check out documents and checks them in." +#~ msgstr "Check expired check out documents and checks them in." + +#~ msgid "check out document" +#~ msgstr "check out document" + +#~ msgid "check in document" +#~ msgstr "check in document" diff --git a/mayan/apps/checkouts/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/fa/LC_MESSAGES/django.mo index 53f88c69e3..970eed0f2e 100644 Binary files a/mayan/apps/checkouts/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/fa/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/fa/LC_MESSAGES/django.po index e1e6b3cfd8..8e2eb35fe9 100644 --- a/mayan/apps/checkouts/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/fa/LC_MESSAGES/django.po @@ -3,14 +3,16 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: +# Mehdi Amani , 2014 # Mohammad Dashtizadeh , 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2013-07-05 11:00+0000\n" -"Last-Translator: Mohammad Dashtizadeh \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2015-01-11 22:05+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Persian (http://www.transifex.com/projects/p/mayan-edms/" "language/fa/)\n" "Language: fa\n" @@ -19,255 +21,266 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: __init__.py:40 -msgid "Check expired check out documents and checks them in." -msgstr "" - -#: events.py:5 +#: events.py:7 msgid "Document checked out" -msgstr "" +msgstr "سند خارج شد." -#: events.py:6 -#, python-format -msgid "Document \"%(document)s\" checked out by %(fullname)s." -msgstr "" - -#: events.py:12 +#: events.py:8 msgid "Document checked in" -msgstr "" +msgstr "سند وارد شد." -#: events.py:13 -#, python-format -msgid "Document \"%(document)s\" checked in by %(fullname)s." -msgstr "" - -#: events.py:19 +#: events.py:9 msgid "Document automatically checked in" -msgstr "" +msgstr "سند بصورت اتوماتیک وارد شده است." -#: events.py:20 -#, python-format -msgid "Document \"%(document)s\" automatically checked in." -msgstr "" - -#: events.py:25 +#: events.py:10 msgid "Document forcefully checked in" -msgstr "" +msgstr "سند طبق دستور وارد شد." -#: events.py:26 -#, python-format -msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." -msgstr "" - -#: links.py:16 -msgid "checkouts" -msgstr "" - -#: links.py:17 -msgid "check out document" -msgstr "" - -#: links.py:18 -msgid "check in document" -msgstr "" +#: exceptions.py:18 views.py:82 +msgid "Document already checked out." +msgstr "سند در حال حاضر خارج و یا checked out شده است." #: links.py:19 -msgid "check in/out" -msgstr "" +msgid "Checkouts" +msgstr "خروج Checkout" -#: literals.py:14 -msgid "checked out" -msgstr "" +#: links.py:20 +msgid "Check out document" +msgstr "خروج checkout سند" -#: literals.py:15 -msgid "checked in/available" -msgstr "" +#: links.py:21 +msgid "Check in document" +msgstr "ورود check in سند" -#: models.py:24 views.py:132 -msgid "document" +#: links.py:22 +msgid "Check in/out" +msgstr "ورود/خروج" + +#: literals.py:9 +msgid "Checked out" +msgstr "خارج شده checked out" + +#: literals.py:10 +msgid "Checked in/available" +msgstr "وارد شده و یا موجود Checked in" + +#: models.py:23 +msgid "Document" msgstr "سند" +#: models.py:24 +msgid "Check out date and time" +msgstr "تاریخ و زمان خروج check out" + +#: models.py:25 widgets.py:79 +msgid "Check out expiration date and time" +msgstr "انقضای مهلت خروج و یا Check out تاریخ و زمان" + #: models.py:25 -msgid "check out date and time" -msgstr "" - -#: models.py:26 -msgid "check out expiration date and time" -msgstr "" - -#: models.py:26 msgid "Amount of time to hold the document checked out in minutes." -msgstr "" +msgstr "مدت زمان مجاز برای خارج نگه داشتن سند به دقیقه." -#: models.py:31 -msgid "block new version upload" -msgstr "" +#: models.py:32 +msgid "Block new version upload" +msgstr "آپلود نسخه و یا بلوک جدید" -#: models.py:31 +#: models.py:32 msgid "Do not allow new version of this document to be uploaded." -msgstr "" +msgstr "از بارگذاری نسخه جدید این سند جلوگیری کنید." -#: models.py:54 -msgid "document checkout" -msgstr "" - -#: models.py:55 -msgid "document checkouts" -msgstr "" - -#: permissions.py:7 +#: models.py:58 permissions.py:7 msgid "Document checkout" -msgstr "" +msgstr "خروج و یا checkout سند" + +#: models.py:59 +msgid "Document checkouts" +msgstr "خروجی های check out سند" #: permissions.py:9 msgid "Check out documents" -msgstr "" +msgstr "خروج اسناد" #: permissions.py:10 msgid "Check in documents" -msgstr "" +msgstr "ورود اسناد" #: permissions.py:11 msgid "Forcefully check in documents" -msgstr "" +msgstr "ورود اجباری اسناد" #: permissions.py:12 msgid "Allow overriding check out restrictions" -msgstr "" +msgstr "اجازه بازنویسی و تعییر محدودیت های خروج سند" #: views.py:32 -msgid "checked out documents" -msgstr "" +msgid "Documents checked out" +msgstr "اسناد خارج شده check out" #: views.py:35 -msgid "checkout user" -msgstr "" +msgid "Checkout user" +msgstr "کاربر خارج کننده Checkout" #: views.py:36 -msgid "checkout time and date" -msgstr "" +msgid "Checkout time and date" +msgstr "زمان و تاریخ خروج" #: views.py:37 -msgid "checkout expiration" -msgstr "" +msgid "Checkout expiration" +msgstr "زمان پایان خارج بودن Checkout" + +#: views.py:50 +#, python-format +msgid "Document status: %s" +msgstr "وضعیت سند : %s" #: views.py:54 #, python-format msgid "User: %s" -msgstr "" +msgstr "کاربر: %s" #: views.py:55 #, python-format msgid "Check out time: %s" -msgstr "" +msgstr "زمان خارج ویا checkout کردن:%s" #: views.py:56 #, python-format msgid "Check out expiration: %s" -msgstr "" +msgstr "انقضای مهلت خارج و یا checkout بودن: %s" #: views.py:57 #, python-format msgid "New versions allowed: %s" -msgstr "" +msgstr "نسخ جدید اجازه دارد: %s" #: views.py:57 -msgid "yes" -msgstr "بله" +msgid "Yes" +msgstr "بلی" #: views.py:57 -msgid "no" +msgid "No" msgstr "خیر" #: views.py:62 #, python-format msgid "Check out details for document: %s" -msgstr "" +msgstr "جزئیات خروج و یا Checkout سند: %s" -#: views.py:82 +#: views.py:85 #, python-format msgid "Error trying to check out document; %s" -msgstr "" - -#: views.py:84 -#, python-format -msgid "Document \"%s\" checked out successfully." -msgstr "" +msgstr "خطا در زمان خارج ویا checkout کردن سند: %s " #: views.py:87 -msgid "Document already checked out." -msgstr "" +#, python-format +msgid "Document \"%s\" checked out successfully." +msgstr "سند \"%s\" بالاجبار خارج ویا checked out شد." #: views.py:95 #, python-format msgid "Check out document: %s" -msgstr "" +msgstr "خروج و یا check out سند: %s" -#: views.py:124 +#: views.py:107 views.py:128 msgid "Document has not been checked out." -msgstr "" +msgstr "سند خارج و یا checked out نشده است." -#: views.py:126 +#: views.py:130 #, python-format msgid "Error trying to check in document; %s" -msgstr "" +msgstr "خطا در زمان خروج و یا checkout سند: %s" -#: views.py:128 +#: views.py:132 #, python-format msgid "Document \"%s\" checked in successfully." -msgstr "" +msgstr "سند \"%s\" با موفقیت وارد و یا checked in شد." -#: views.py:141 +#: views.py:143 #, python-format msgid "" "You didn't originally checked out this document. Are you sure you wish to " "forcefully check in document: %s?" msgstr "" +"شما خارج و یا checkout کننده اصلی این سند : %s نیستید. آیا از ورود و یا " +"check in اجباری این سند مطمئن هستید؟" -#: views.py:143 +#: views.py:145 #, python-format msgid "Are you sure you wish to check in document: %s?" -msgstr "" +msgstr "آیا از ورود ویا check in این سند: %s مطمئن هستید؟" + +#: widgets.py:17 +msgid "Days" +msgstr "روزها" + +#: widgets.py:18 +msgid "Hours" +msgstr "ساعات" #: widgets.py:19 -#, python-format -msgid "Document status: %(widget)s %(text)s" -msgstr "" - -#: widgets.py:31 -msgid "Days" -msgstr "" - -#: widgets.py:32 -msgid "Hours" -msgstr "" - -#: widgets.py:33 msgid "Minutes" -msgstr "" +msgstr "دقایق" -#: widgets.py:63 +#: widgets.py:49 msgid "Enter a valid number of days." -msgstr "یک شماره‌ی معتبر از روزها را وارد کنید." +msgstr "تعداد معتبر روزها را وارد کنید." -#: widgets.py:64 +#: widgets.py:50 msgid "Enter a valid number of hours." -msgstr "یک شماره‌ی معتبر از ساعات را وارد کنید." +msgstr "تعداد معتبر ساعات را وارد کنید." -#: widgets.py:65 +#: widgets.py:51 msgid "Enter a valid number of minutes." -msgstr "یک شماره‌ی معتبر از دقایق را وارد کنید." +msgstr "تعداد معتبر دقایق را وارد کنید." -#: widgets.py:66 +#: widgets.py:52 msgid "Enter a valid time difference." -msgstr "" +msgstr "تفاوت زمانی معتبری وارد کنید." -#: widgets.py:92 +#: widgets.py:78 msgid "" "Amount of time to hold the document in the checked out state in days, hours " "and/or minutes." msgstr "" +"مدت زمان مجاز جهت نگهداری در وضعیت خروج و یا checked out به روز، ساعت و " +"دقیقه." -#: widgets.py:93 -msgid "Check out expiration date and time" -msgstr "" +#~ msgid "Document \"%(document)s\" checked out by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." + +#~ msgid "Document \"%(document)s\" checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked in by %(fullname)s." + +#~ msgid "Document \"%(document)s\" automatically checked in." +#~ msgstr "Document \"%(document)s\" automatically checked in." + +#~ msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." + +#~ msgid "document" +#~ msgstr "document" + +#~ msgid "check out expiration date and time" +#~ msgstr "check out expiration date and time" + +#~ msgid "document checkout" +#~ msgstr "document checkout" + +#~ msgid "document checkouts" +#~ msgstr "document checkouts" + +#~ msgid "checked out documents" +#~ msgstr "checked out documents" + +#~ msgid "no" +#~ msgstr "no" + +#~ msgid "Check expired check out documents and checks them in." +#~ msgstr "Check expired check out documents and checks them in." + +#~ msgid "check out document" +#~ msgstr "check out document" + +#~ msgid "check in document" +#~ msgstr "check in document" diff --git a/mayan/apps/checkouts/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/fr/LC_MESSAGES/django.mo index be3f71e560..cb5e92fa60 100644 Binary files a/mayan/apps/checkouts/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/fr/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/fr/LC_MESSAGES/django.po index 6e88eb4a42..b79656f31f 100644 --- a/mayan/apps/checkouts/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/fr/LC_MESSAGES/django.po @@ -3,14 +3,16 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: -# Pierre Lhoste , 2012 +# Translators: +# Christophe kryskool , 2015 +# Pierre Lhoste , 2012 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-07-28 14:44+0000\n" -"Last-Translator: Pierre Lhoste \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2015-01-29 07:50+0000\n" +"Last-Translator: Christophe kryskool \n" "Language-Team: French (http://www.transifex.com/projects/p/mayan-edms/" "language/fr/)\n" "Language: fr\n" @@ -19,108 +21,82 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: __init__.py:40 -msgid "Check expired check out documents and checks them in." -msgstr "" -"Vérifier les documents retirés aux modifications, dont la période de verrou " -"expiré, et les remettre dans l'état modifiable." - -#: events.py:5 +#: events.py:7 msgid "Document checked out" msgstr "Documents verrouillés" -#: events.py:6 -#, python-format -msgid "Document \"%(document)s\" checked out by %(fullname)s." -msgstr "Document \"%(document)s\" verrouillé par %(fullname)s." - -#: events.py:12 +#: events.py:8 msgid "Document checked in" msgstr "Document déverrouillé" -#: events.py:13 -#, python-format -msgid "Document \"%(document)s\" checked in by %(fullname)s." -msgstr "Documents \"%(document)s\" déverrouillés par %(fullname)s." - -#: events.py:19 +#: events.py:9 msgid "Document automatically checked in" msgstr "Document déverrouillé automatiquement" -#: events.py:20 -#, python-format -msgid "Document \"%(document)s\" automatically checked in." -msgstr "Document \"%(document)s\" déverrouillé automatiquement." - -#: events.py:25 +#: events.py:10 msgid "Document forcefully checked in" msgstr "Document déverrouillé de force" -#: events.py:26 -#, python-format -msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." -msgstr "Document \"%(document)s\" dévérouillé de force par %(fullname)s." - -#: links.py:16 -msgid "checkouts" -msgstr "Verrous" - -#: links.py:17 -msgid "check out document" -msgstr "Poser un verrou sur le document" - -#: links.py:18 -msgid "check in document" -msgstr "Déverrouiller le document" +#: exceptions.py:18 views.py:82 +msgid "Document already checked out." +msgstr "Document déjà verrouillé." #: links.py:19 -msgid "check in/out" -msgstr "verrouiller/déverrouiller" +msgid "Checkouts" +msgstr "" -#: literals.py:14 -msgid "checked out" -msgstr "verrouillé" +#: links.py:20 +msgid "Check out document" +msgstr "" -#: literals.py:15 -msgid "checked in/available" -msgstr "déverrouillé/disponible" +#: links.py:21 +msgid "Check in document" +msgstr "" -#: models.py:24 views.py:132 -msgid "document" -msgstr "document" +#: links.py:22 +msgid "Check in/out" +msgstr "" + +#: literals.py:9 +msgid "Checked out" +msgstr "" + +#: literals.py:10 +msgid "Checked in/available" +msgstr "" + +#: models.py:23 +msgid "Document" +msgstr "Document" + +#: models.py:24 +msgid "Check out date and time" +msgstr "" + +#: models.py:25 widgets.py:79 +msgid "Check out expiration date and time" +msgstr "Date et heure de l'expiration du verrou" #: models.py:25 -msgid "check out date and time" -msgstr "date et heure du verrouillage" - -#: models.py:26 -msgid "check out expiration date and time" -msgstr "date d'expiration du verrouillage" - -#: models.py:26 msgid "Amount of time to hold the document checked out in minutes." msgstr "Durée en minutes pendant laquelle le document doit être verrouillé" -#: models.py:31 -msgid "block new version upload" -msgstr "empêcher import nouvelle version" +#: models.py:32 +msgid "Block new version upload" +msgstr "" -#: models.py:31 +#: models.py:32 msgid "Do not allow new version of this document to be uploaded." msgstr "Ne pas autoriser l'importation d'une nouvelle version de ce document" -#: models.py:54 -msgid "document checkout" -msgstr "verrouillage du document" - -#: models.py:55 -msgid "document checkouts" -msgstr "verrouillages du document" - -#: permissions.py:7 +#: models.py:58 permissions.py:7 msgid "Document checkout" msgstr "Verrouillage du document" +#: models.py:59 +msgid "Document checkouts" +msgstr "" + #: permissions.py:9 msgid "Check out documents" msgstr "Verrouiller les documents" @@ -138,20 +114,25 @@ msgid "Allow overriding check out restrictions" msgstr "Permettre de révoquer le verrouillage" #: views.py:32 -msgid "checked out documents" -msgstr "documents verrouillés" +msgid "Documents checked out" +msgstr "" #: views.py:35 -msgid "checkout user" -msgstr "utilisateur ayant verrouillé" +msgid "Checkout user" +msgstr "Verrou utilisateur" #: views.py:36 -msgid "checkout time and date" -msgstr "date et heure du verrou" +msgid "Checkout time and date" +msgstr "" #: views.py:37 -msgid "checkout expiration" -msgstr "expiration du verrou" +msgid "Checkout expiration" +msgstr "" + +#: views.py:50 +#, python-format +msgid "Document status: %s" +msgstr "État du document: %s" #: views.py:54 #, python-format @@ -174,52 +155,48 @@ msgid "New versions allowed: %s" msgstr "Nouvelles versions autorisées: %s" #: views.py:57 -msgid "yes" -msgstr "oui" +msgid "Yes" +msgstr "Oui" #: views.py:57 -msgid "no" -msgstr "non" +msgid "No" +msgstr "Non" #: views.py:62 #, python-format msgid "Check out details for document: %s" msgstr "Détails du verrou pour le document; %s" -#: views.py:82 +#: views.py:85 #, python-format msgid "Error trying to check out document; %s" msgstr "Erreur lors de l'essai de verrouillage du document; %s" -#: views.py:84 +#: views.py:87 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Document \"%s\" verouillé avec succès." -#: views.py:87 -msgid "Document already checked out." -msgstr "Document déjà verrouillé." - #: views.py:95 #, python-format msgid "Check out document: %s" msgstr "Verrouiller le document: %s" -#: views.py:124 +#: views.py:107 views.py:128 msgid "Document has not been checked out." msgstr "Ce document n'a pas été verrouillé." -#: views.py:126 +#: views.py:130 #, python-format msgid "Error trying to check in document; %s" msgstr "Erreur lors de la tentative de déverrouillage du document; %s " -#: views.py:128 +#: views.py:132 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Document \"%s\" déverrouillé avec succès." -#: views.py:141 +#: views.py:143 #, python-format msgid "" "You didn't originally checked out this document. Are you sure you wish to " @@ -228,45 +205,40 @@ msgstr "" "Ce n'est pas vous qui avec posé le verrou sur ce document. Êtes vous certain " "de vouloir forcer le déverrouillage de: %s?" -#: views.py:143 +#: views.py:145 #, python-format msgid "Are you sure you wish to check in document: %s?" msgstr "Êtes vous certain de vouloir verrouiller le document: %s?" -#: widgets.py:19 -#, python-format -msgid "Document status: %(widget)s %(text)s" -msgstr "Etat du document:%(widget)s %(text)s" - -#: widgets.py:31 +#: widgets.py:17 msgid "Days" msgstr "Jours" -#: widgets.py:32 +#: widgets.py:18 msgid "Hours" msgstr "Heures" -#: widgets.py:33 +#: widgets.py:19 msgid "Minutes" msgstr "Minutes" -#: widgets.py:63 +#: widgets.py:49 msgid "Enter a valid number of days." msgstr "Saisissez un nombre de jours valide." -#: widgets.py:64 +#: widgets.py:50 msgid "Enter a valid number of hours." msgstr "Saisissez un nombre d'heures valide." -#: widgets.py:65 +#: widgets.py:51 msgid "Enter a valid number of minutes." msgstr "Saisissez un nombre de minutes valide." -#: widgets.py:66 +#: widgets.py:52 msgid "Enter a valid time difference." msgstr "Saisissez un intervalle de temps valide." -#: widgets.py:92 +#: widgets.py:78 msgid "" "Amount of time to hold the document in the checked out state in days, hours " "and/or minutes." @@ -274,6 +246,41 @@ msgstr "" "Durée pendant laquelle conserver le verrou sur le document en jours, heures " "et/ou minutes." -#: widgets.py:93 -msgid "Check out expiration date and time" -msgstr "Date et heure de l'expiration du verrou" +#~ msgid "Document \"%(document)s\" checked out by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." + +#~ msgid "Document \"%(document)s\" checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked in by %(fullname)s." + +#~ msgid "Document \"%(document)s\" automatically checked in." +#~ msgstr "Document \"%(document)s\" automatically checked in." + +#~ msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." + +#~ msgid "document" +#~ msgstr "document" + +#~ msgid "check out expiration date and time" +#~ msgstr "check out expiration date and time" + +#~ msgid "document checkout" +#~ msgstr "document checkout" + +#~ msgid "document checkouts" +#~ msgstr "document checkouts" + +#~ msgid "checked out documents" +#~ msgstr "checked out documents" + +#~ msgid "no" +#~ msgstr "no" + +#~ msgid "Check expired check out documents and checks them in." +#~ msgstr "Check expired check out documents and checks them in." + +#~ msgid "check out document" +#~ msgstr "check out document" + +#~ msgid "check in document" +#~ msgstr "check in document" diff --git a/mayan/apps/checkouts/locale/hr_HR/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/hr_HR/LC_MESSAGES/django.mo index b446d9aa20..354ffef0b7 100644 Binary files a/mayan/apps/checkouts/locale/hr_HR/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/hr_HR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/hr_HR/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/hr_HR/LC_MESSAGES/django.po index 7d975a4ed5..662bd1efc6 100644 --- a/mayan/apps/checkouts/locale/hr_HR/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/hr_HR/LC_MESSAGES/django.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-07-10 15:47+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2015-01-11 22:05+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Croatian (Croatia) (http://www.transifex.com/projects/p/mayan-" "edms/language/hr_HR/)\n" "Language: hr_HR\n" @@ -19,106 +20,82 @@ msgstr "" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -#: __init__.py:40 -msgid "Check expired check out documents and checks them in." -msgstr "" - -#: events.py:5 +#: events.py:7 msgid "Document checked out" msgstr "" -#: events.py:6 -#, python-format -msgid "Document \"%(document)s\" checked out by %(fullname)s." -msgstr "" - -#: events.py:12 +#: events.py:8 msgid "Document checked in" msgstr "" -#: events.py:13 -#, python-format -msgid "Document \"%(document)s\" checked in by %(fullname)s." -msgstr "" - -#: events.py:19 +#: events.py:9 msgid "Document automatically checked in" msgstr "" -#: events.py:20 -#, python-format -msgid "Document \"%(document)s\" automatically checked in." -msgstr "" - -#: events.py:25 +#: events.py:10 msgid "Document forcefully checked in" msgstr "" -#: events.py:26 -#, python-format -msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." -msgstr "" - -#: links.py:16 -msgid "checkouts" -msgstr "" - -#: links.py:17 -msgid "check out document" -msgstr "" - -#: links.py:18 -msgid "check in document" +#: exceptions.py:18 views.py:82 +msgid "Document already checked out." msgstr "" #: links.py:19 -msgid "check in/out" +msgid "Checkouts" msgstr "" -#: literals.py:14 -msgid "checked out" +#: links.py:20 +msgid "Check out document" msgstr "" -#: literals.py:15 -msgid "checked in/available" +#: links.py:21 +msgid "Check in document" msgstr "" -#: models.py:24 views.py:132 -msgid "document" +#: links.py:22 +msgid "Check in/out" +msgstr "" + +#: literals.py:9 +msgid "Checked out" +msgstr "" + +#: literals.py:10 +msgid "Checked in/available" +msgstr "" + +#: models.py:23 +msgid "Document" +msgstr "" + +#: models.py:24 +msgid "Check out date and time" +msgstr "" + +#: models.py:25 widgets.py:79 +msgid "Check out expiration date and time" msgstr "" #: models.py:25 -msgid "check out date and time" -msgstr "" - -#: models.py:26 -msgid "check out expiration date and time" -msgstr "" - -#: models.py:26 msgid "Amount of time to hold the document checked out in minutes." msgstr "" -#: models.py:31 -msgid "block new version upload" +#: models.py:32 +msgid "Block new version upload" msgstr "" -#: models.py:31 +#: models.py:32 msgid "Do not allow new version of this document to be uploaded." msgstr "" -#: models.py:54 -msgid "document checkout" -msgstr "" - -#: models.py:55 -msgid "document checkouts" -msgstr "" - -#: permissions.py:7 +#: models.py:58 permissions.py:7 msgid "Document checkout" msgstr "" +#: models.py:59 +msgid "Document checkouts" +msgstr "" + #: permissions.py:9 msgid "Check out documents" msgstr "" @@ -136,19 +113,24 @@ msgid "Allow overriding check out restrictions" msgstr "" #: views.py:32 -msgid "checked out documents" +msgid "Documents checked out" msgstr "" #: views.py:35 -msgid "checkout user" +msgid "Checkout user" msgstr "" #: views.py:36 -msgid "checkout time and date" +msgid "Checkout time and date" msgstr "" #: views.py:37 -msgid "checkout expiration" +msgid "Checkout expiration" +msgstr "" + +#: views.py:50 +#, python-format +msgid "Document status: %s" msgstr "" #: views.py:54 @@ -172,11 +154,11 @@ msgid "New versions allowed: %s" msgstr "" #: views.py:57 -msgid "yes" +msgid "Yes" msgstr "" #: views.py:57 -msgid "no" +msgid "No" msgstr "" #: views.py:62 @@ -184,90 +166,116 @@ msgstr "" msgid "Check out details for document: %s" msgstr "" -#: views.py:82 +#: views.py:85 #, python-format msgid "Error trying to check out document; %s" msgstr "" -#: views.py:84 +#: views.py:87 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "" -#: views.py:87 -msgid "Document already checked out." -msgstr "" - #: views.py:95 #, python-format msgid "Check out document: %s" msgstr "" -#: views.py:124 +#: views.py:107 views.py:128 msgid "Document has not been checked out." msgstr "" -#: views.py:126 +#: views.py:130 #, python-format msgid "Error trying to check in document; %s" msgstr "" -#: views.py:128 +#: views.py:132 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "" -#: views.py:141 +#: views.py:143 #, python-format msgid "" "You didn't originally checked out this document. Are you sure you wish to " "forcefully check in document: %s?" msgstr "" -#: views.py:143 +#: views.py:145 #, python-format msgid "Are you sure you wish to check in document: %s?" msgstr "" -#: widgets.py:19 -#, python-format -msgid "Document status: %(widget)s %(text)s" -msgstr "" - -#: widgets.py:31 +#: widgets.py:17 msgid "Days" msgstr "" -#: widgets.py:32 +#: widgets.py:18 msgid "Hours" msgstr "" -#: widgets.py:33 +#: widgets.py:19 msgid "Minutes" msgstr "" -#: widgets.py:63 +#: widgets.py:49 msgid "Enter a valid number of days." msgstr "" -#: widgets.py:64 +#: widgets.py:50 msgid "Enter a valid number of hours." msgstr "" -#: widgets.py:65 +#: widgets.py:51 msgid "Enter a valid number of minutes." msgstr "" -#: widgets.py:66 +#: widgets.py:52 msgid "Enter a valid time difference." msgstr "" -#: widgets.py:92 +#: widgets.py:78 msgid "" "Amount of time to hold the document in the checked out state in days, hours " "and/or minutes." msgstr "" -#: widgets.py:93 -msgid "Check out expiration date and time" -msgstr "" +#~ msgid "Document \"%(document)s\" checked out by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." + +#~ msgid "Document \"%(document)s\" checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked in by %(fullname)s." + +#~ msgid "Document \"%(document)s\" automatically checked in." +#~ msgstr "Document \"%(document)s\" automatically checked in." + +#~ msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." + +#~ msgid "document" +#~ msgstr "document" + +#~ msgid "check out expiration date and time" +#~ msgstr "check out expiration date and time" + +#~ msgid "document checkout" +#~ msgstr "document checkout" + +#~ msgid "document checkouts" +#~ msgstr "document checkouts" + +#~ msgid "checked out documents" +#~ msgstr "checked out documents" + +#~ msgid "no" +#~ msgstr "no" + +#~ msgid "Check expired check out documents and checks them in." +#~ msgstr "Check expired check out documents and checks them in." + +#~ msgid "check out document" +#~ msgstr "check out document" + +#~ msgid "check in document" +#~ msgstr "check in document" diff --git a/mayan/apps/checkouts/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/hu/LC_MESSAGES/django.mo index 6ff09ea3a7..6d5ac17bc6 100644 Binary files a/mayan/apps/checkouts/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/hu/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/hu/LC_MESSAGES/django.po index d7b9d34eb4..56f3e217bc 100644 --- a/mayan/apps/checkouts/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/hu/LC_MESSAGES/django.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-07-10 15:47+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2015-01-11 22:05+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Hungarian (http://www.transifex.com/projects/p/mayan-edms/" "language/hu/)\n" "Language: hu\n" @@ -18,106 +19,82 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: __init__.py:40 -msgid "Check expired check out documents and checks them in." -msgstr "" - -#: events.py:5 +#: events.py:7 msgid "Document checked out" msgstr "" -#: events.py:6 -#, python-format -msgid "Document \"%(document)s\" checked out by %(fullname)s." -msgstr "" - -#: events.py:12 +#: events.py:8 msgid "Document checked in" msgstr "" -#: events.py:13 -#, python-format -msgid "Document \"%(document)s\" checked in by %(fullname)s." -msgstr "" - -#: events.py:19 +#: events.py:9 msgid "Document automatically checked in" msgstr "" -#: events.py:20 -#, python-format -msgid "Document \"%(document)s\" automatically checked in." -msgstr "" - -#: events.py:25 +#: events.py:10 msgid "Document forcefully checked in" msgstr "" -#: events.py:26 -#, python-format -msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." -msgstr "" - -#: links.py:16 -msgid "checkouts" -msgstr "" - -#: links.py:17 -msgid "check out document" -msgstr "" - -#: links.py:18 -msgid "check in document" +#: exceptions.py:18 views.py:82 +msgid "Document already checked out." msgstr "" #: links.py:19 -msgid "check in/out" +msgid "Checkouts" msgstr "" -#: literals.py:14 -msgid "checked out" +#: links.py:20 +msgid "Check out document" msgstr "" -#: literals.py:15 -msgid "checked in/available" +#: links.py:21 +msgid "Check in document" msgstr "" -#: models.py:24 views.py:132 -msgid "document" +#: links.py:22 +msgid "Check in/out" +msgstr "" + +#: literals.py:9 +msgid "Checked out" +msgstr "" + +#: literals.py:10 +msgid "Checked in/available" +msgstr "" + +#: models.py:23 +msgid "Document" +msgstr "" + +#: models.py:24 +msgid "Check out date and time" +msgstr "" + +#: models.py:25 widgets.py:79 +msgid "Check out expiration date and time" msgstr "" #: models.py:25 -msgid "check out date and time" -msgstr "" - -#: models.py:26 -msgid "check out expiration date and time" -msgstr "" - -#: models.py:26 msgid "Amount of time to hold the document checked out in minutes." msgstr "" -#: models.py:31 -msgid "block new version upload" +#: models.py:32 +msgid "Block new version upload" msgstr "" -#: models.py:31 +#: models.py:32 msgid "Do not allow new version of this document to be uploaded." msgstr "" -#: models.py:54 -msgid "document checkout" -msgstr "" - -#: models.py:55 -msgid "document checkouts" -msgstr "" - -#: permissions.py:7 +#: models.py:58 permissions.py:7 msgid "Document checkout" msgstr "" +#: models.py:59 +msgid "Document checkouts" +msgstr "" + #: permissions.py:9 msgid "Check out documents" msgstr "" @@ -135,19 +112,24 @@ msgid "Allow overriding check out restrictions" msgstr "" #: views.py:32 -msgid "checked out documents" +msgid "Documents checked out" msgstr "" #: views.py:35 -msgid "checkout user" +msgid "Checkout user" msgstr "" #: views.py:36 -msgid "checkout time and date" +msgid "Checkout time and date" msgstr "" #: views.py:37 -msgid "checkout expiration" +msgid "Checkout expiration" +msgstr "" + +#: views.py:50 +#, python-format +msgid "Document status: %s" msgstr "" #: views.py:54 @@ -171,11 +153,11 @@ msgid "New versions allowed: %s" msgstr "" #: views.py:57 -msgid "yes" +msgid "Yes" msgstr "" #: views.py:57 -msgid "no" +msgid "No" msgstr "" #: views.py:62 @@ -183,90 +165,116 @@ msgstr "" msgid "Check out details for document: %s" msgstr "" -#: views.py:82 +#: views.py:85 #, python-format msgid "Error trying to check out document; %s" msgstr "" -#: views.py:84 +#: views.py:87 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "" -#: views.py:87 -msgid "Document already checked out." -msgstr "" - #: views.py:95 #, python-format msgid "Check out document: %s" msgstr "" -#: views.py:124 +#: views.py:107 views.py:128 msgid "Document has not been checked out." msgstr "" -#: views.py:126 +#: views.py:130 #, python-format msgid "Error trying to check in document; %s" msgstr "" -#: views.py:128 +#: views.py:132 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "" -#: views.py:141 +#: views.py:143 #, python-format msgid "" "You didn't originally checked out this document. Are you sure you wish to " "forcefully check in document: %s?" msgstr "" -#: views.py:143 +#: views.py:145 #, python-format msgid "Are you sure you wish to check in document: %s?" msgstr "" -#: widgets.py:19 -#, python-format -msgid "Document status: %(widget)s %(text)s" -msgstr "" - -#: widgets.py:31 +#: widgets.py:17 msgid "Days" msgstr "" -#: widgets.py:32 +#: widgets.py:18 msgid "Hours" msgstr "" -#: widgets.py:33 +#: widgets.py:19 msgid "Minutes" msgstr "" -#: widgets.py:63 +#: widgets.py:49 msgid "Enter a valid number of days." msgstr "" -#: widgets.py:64 +#: widgets.py:50 msgid "Enter a valid number of hours." msgstr "" -#: widgets.py:65 +#: widgets.py:51 msgid "Enter a valid number of minutes." msgstr "" -#: widgets.py:66 +#: widgets.py:52 msgid "Enter a valid time difference." msgstr "" -#: widgets.py:92 +#: widgets.py:78 msgid "" "Amount of time to hold the document in the checked out state in days, hours " "and/or minutes." msgstr "" -#: widgets.py:93 -msgid "Check out expiration date and time" -msgstr "" +#~ msgid "Document \"%(document)s\" checked out by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." + +#~ msgid "Document \"%(document)s\" checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked in by %(fullname)s." + +#~ msgid "Document \"%(document)s\" automatically checked in." +#~ msgstr "Document \"%(document)s\" automatically checked in." + +#~ msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." + +#~ msgid "document" +#~ msgstr "document" + +#~ msgid "check out expiration date and time" +#~ msgstr "check out expiration date and time" + +#~ msgid "document checkout" +#~ msgstr "document checkout" + +#~ msgid "document checkouts" +#~ msgstr "document checkouts" + +#~ msgid "checked out documents" +#~ msgstr "checked out documents" + +#~ msgid "no" +#~ msgstr "no" + +#~ msgid "Check expired check out documents and checks them in." +#~ msgstr "Check expired check out documents and checks them in." + +#~ msgid "check out document" +#~ msgstr "check out document" + +#~ msgid "check in document" +#~ msgstr "check in document" diff --git a/mayan/apps/checkouts/locale/id/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/id/LC_MESSAGES/django.mo index 150d74a348..19fbb83b01 100644 Binary files a/mayan/apps/checkouts/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/id/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/id/LC_MESSAGES/django.po index 0d247ed238..ec98d267cc 100644 --- a/mayan/apps/checkouts/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/id/LC_MESSAGES/django.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-07-10 15:47+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2015-01-11 22:05+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Indonesian (http://www.transifex.com/projects/p/mayan-edms/" "language/id/)\n" "Language: id\n" @@ -18,106 +19,82 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: __init__.py:40 -msgid "Check expired check out documents and checks them in." -msgstr "" - -#: events.py:5 +#: events.py:7 msgid "Document checked out" msgstr "" -#: events.py:6 -#, python-format -msgid "Document \"%(document)s\" checked out by %(fullname)s." -msgstr "" - -#: events.py:12 +#: events.py:8 msgid "Document checked in" msgstr "" -#: events.py:13 -#, python-format -msgid "Document \"%(document)s\" checked in by %(fullname)s." -msgstr "" - -#: events.py:19 +#: events.py:9 msgid "Document automatically checked in" msgstr "" -#: events.py:20 -#, python-format -msgid "Document \"%(document)s\" automatically checked in." -msgstr "" - -#: events.py:25 +#: events.py:10 msgid "Document forcefully checked in" msgstr "" -#: events.py:26 -#, python-format -msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." -msgstr "" - -#: links.py:16 -msgid "checkouts" -msgstr "" - -#: links.py:17 -msgid "check out document" -msgstr "" - -#: links.py:18 -msgid "check in document" +#: exceptions.py:18 views.py:82 +msgid "Document already checked out." msgstr "" #: links.py:19 -msgid "check in/out" +msgid "Checkouts" msgstr "" -#: literals.py:14 -msgid "checked out" +#: links.py:20 +msgid "Check out document" msgstr "" -#: literals.py:15 -msgid "checked in/available" +#: links.py:21 +msgid "Check in document" msgstr "" -#: models.py:24 views.py:132 -msgid "document" +#: links.py:22 +msgid "Check in/out" +msgstr "" + +#: literals.py:9 +msgid "Checked out" +msgstr "" + +#: literals.py:10 +msgid "Checked in/available" +msgstr "" + +#: models.py:23 +msgid "Document" +msgstr "" + +#: models.py:24 +msgid "Check out date and time" +msgstr "" + +#: models.py:25 widgets.py:79 +msgid "Check out expiration date and time" msgstr "" #: models.py:25 -msgid "check out date and time" -msgstr "" - -#: models.py:26 -msgid "check out expiration date and time" -msgstr "" - -#: models.py:26 msgid "Amount of time to hold the document checked out in minutes." msgstr "" -#: models.py:31 -msgid "block new version upload" +#: models.py:32 +msgid "Block new version upload" msgstr "" -#: models.py:31 +#: models.py:32 msgid "Do not allow new version of this document to be uploaded." msgstr "" -#: models.py:54 -msgid "document checkout" -msgstr "" - -#: models.py:55 -msgid "document checkouts" -msgstr "" - -#: permissions.py:7 +#: models.py:58 permissions.py:7 msgid "Document checkout" msgstr "" +#: models.py:59 +msgid "Document checkouts" +msgstr "" + #: permissions.py:9 msgid "Check out documents" msgstr "" @@ -135,19 +112,24 @@ msgid "Allow overriding check out restrictions" msgstr "" #: views.py:32 -msgid "checked out documents" +msgid "Documents checked out" msgstr "" #: views.py:35 -msgid "checkout user" +msgid "Checkout user" msgstr "" #: views.py:36 -msgid "checkout time and date" +msgid "Checkout time and date" msgstr "" #: views.py:37 -msgid "checkout expiration" +msgid "Checkout expiration" +msgstr "" + +#: views.py:50 +#, python-format +msgid "Document status: %s" msgstr "" #: views.py:54 @@ -171,11 +153,11 @@ msgid "New versions allowed: %s" msgstr "" #: views.py:57 -msgid "yes" +msgid "Yes" msgstr "" #: views.py:57 -msgid "no" +msgid "No" msgstr "" #: views.py:62 @@ -183,90 +165,116 @@ msgstr "" msgid "Check out details for document: %s" msgstr "" -#: views.py:82 +#: views.py:85 #, python-format msgid "Error trying to check out document; %s" msgstr "" -#: views.py:84 +#: views.py:87 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "" -#: views.py:87 -msgid "Document already checked out." -msgstr "" - #: views.py:95 #, python-format msgid "Check out document: %s" msgstr "" -#: views.py:124 +#: views.py:107 views.py:128 msgid "Document has not been checked out." msgstr "" -#: views.py:126 +#: views.py:130 #, python-format msgid "Error trying to check in document; %s" msgstr "" -#: views.py:128 +#: views.py:132 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "" -#: views.py:141 +#: views.py:143 #, python-format msgid "" "You didn't originally checked out this document. Are you sure you wish to " "forcefully check in document: %s?" msgstr "" -#: views.py:143 +#: views.py:145 #, python-format msgid "Are you sure you wish to check in document: %s?" msgstr "" -#: widgets.py:19 -#, python-format -msgid "Document status: %(widget)s %(text)s" -msgstr "" - -#: widgets.py:31 +#: widgets.py:17 msgid "Days" msgstr "" -#: widgets.py:32 +#: widgets.py:18 msgid "Hours" msgstr "" -#: widgets.py:33 +#: widgets.py:19 msgid "Minutes" msgstr "" -#: widgets.py:63 +#: widgets.py:49 msgid "Enter a valid number of days." msgstr "" -#: widgets.py:64 +#: widgets.py:50 msgid "Enter a valid number of hours." msgstr "" -#: widgets.py:65 +#: widgets.py:51 msgid "Enter a valid number of minutes." msgstr "" -#: widgets.py:66 +#: widgets.py:52 msgid "Enter a valid time difference." msgstr "" -#: widgets.py:92 +#: widgets.py:78 msgid "" "Amount of time to hold the document in the checked out state in days, hours " "and/or minutes." msgstr "" -#: widgets.py:93 -msgid "Check out expiration date and time" -msgstr "" +#~ msgid "Document \"%(document)s\" checked out by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." + +#~ msgid "Document \"%(document)s\" checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked in by %(fullname)s." + +#~ msgid "Document \"%(document)s\" automatically checked in." +#~ msgstr "Document \"%(document)s\" automatically checked in." + +#~ msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." + +#~ msgid "document" +#~ msgstr "document" + +#~ msgid "check out expiration date and time" +#~ msgstr "check out expiration date and time" + +#~ msgid "document checkout" +#~ msgstr "document checkout" + +#~ msgid "document checkouts" +#~ msgstr "document checkouts" + +#~ msgid "checked out documents" +#~ msgstr "checked out documents" + +#~ msgid "no" +#~ msgstr "no" + +#~ msgid "Check expired check out documents and checks them in." +#~ msgstr "Check expired check out documents and checks them in." + +#~ msgid "check out document" +#~ msgstr "check out document" + +#~ msgid "check in document" +#~ msgstr "check in document" diff --git a/mayan/apps/checkouts/locale/it/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/it/LC_MESSAGES/django.mo index 1ed0bddda7..e05d3dc178 100644 Binary files a/mayan/apps/checkouts/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/it/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/it/LC_MESSAGES/django.po index ba9698fee8..c7b762778b 100644 --- a/mayan/apps/checkouts/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/it/LC_MESSAGES/django.po @@ -3,13 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: +# Pierpaolo Baldan , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-07-10 15:47+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2015-01-29 08:10+0000\n" +"Last-Translator: Pierpaolo Baldan \n" "Language-Team: Italian (http://www.transifex.com/projects/p/mayan-edms/" "language/it/)\n" "Language: it\n" @@ -18,255 +20,266 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: __init__.py:40 -msgid "Check expired check out documents and checks them in." -msgstr "" - -#: events.py:5 +#: events.py:7 msgid "Document checked out" -msgstr "" +msgstr "Documento in uscita" -#: events.py:6 -#, python-format -msgid "Document \"%(document)s\" checked out by %(fullname)s." -msgstr "" - -#: events.py:12 +#: events.py:8 msgid "Document checked in" -msgstr "" +msgstr "Documento in entrata" -#: events.py:13 -#, python-format -msgid "Document \"%(document)s\" checked in by %(fullname)s." -msgstr "" - -#: events.py:19 +#: events.py:9 msgid "Document automatically checked in" -msgstr "" +msgstr "Documento automaticamente in entrata" -#: events.py:20 -#, python-format -msgid "Document \"%(document)s\" automatically checked in." -msgstr "" - -#: events.py:25 +#: events.py:10 msgid "Document forcefully checked in" -msgstr "" +msgstr "Forza documento in entrata" -#: events.py:26 -#, python-format -msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." -msgstr "" - -#: links.py:16 -msgid "checkouts" -msgstr "" - -#: links.py:17 -msgid "check out document" -msgstr "" - -#: links.py:18 -msgid "check in document" -msgstr "" +#: exceptions.py:18 views.py:82 +msgid "Document already checked out." +msgstr "Documento già uscito" #: links.py:19 -msgid "check in/out" -msgstr "" +msgid "Checkouts" +msgstr "Uscite" -#: literals.py:14 -msgid "checked out" -msgstr "" +#: links.py:20 +msgid "Check out document" +msgstr "Documento in uscita" -#: literals.py:15 -msgid "checked in/available" -msgstr "" +#: links.py:21 +msgid "Check in document" +msgstr "Documento in entrata" -#: models.py:24 views.py:132 -msgid "document" -msgstr "" +#: links.py:22 +msgid "Check in/out" +msgstr "Check in / out" + +#: literals.py:9 +msgid "Checked out" +msgstr "Checked-out" + +#: literals.py:10 +msgid "Checked in/available" +msgstr "Check-in / disponibile" + +#: models.py:23 +msgid "Document" +msgstr "Documento" + +#: models.py:24 +msgid "Check out date and time" +msgstr "Uscito in data e ora" + +#: models.py:25 widgets.py:79 +msgid "Check out expiration date and time" +msgstr "Scopri la data e l'ora di scadenza" #: models.py:25 -msgid "check out date and time" -msgstr "" - -#: models.py:26 -msgid "check out expiration date and time" -msgstr "" - -#: models.py:26 msgid "Amount of time to hold the document checked out in minutes." -msgstr "" +msgstr "Minuti disponibili per fermare il documento in checked out" -#: models.py:31 -msgid "block new version upload" -msgstr "" +#: models.py:32 +msgid "Block new version upload" +msgstr "Blocca la nuova versione in caricamento" -#: models.py:31 +#: models.py:32 msgid "Do not allow new version of this document to be uploaded." -msgstr "" +msgstr "Non permettere che la nuova versione di questo documento sia caricata." -#: models.py:54 -msgid "document checkout" -msgstr "" - -#: models.py:55 -msgid "document checkouts" -msgstr "" - -#: permissions.py:7 +#: models.py:58 permissions.py:7 msgid "Document checkout" -msgstr "" +msgstr "Documento uscito" + +#: models.py:59 +msgid "Document checkouts" +msgstr "Documenti usciti" #: permissions.py:9 msgid "Check out documents" -msgstr "" +msgstr "Check out dei documenti" #: permissions.py:10 msgid "Check in documents" -msgstr "" +msgstr "Check in documenti" #: permissions.py:11 msgid "Forcefully check in documents" -msgstr "" +msgstr "Forza il check in dei documenti" #: permissions.py:12 msgid "Allow overriding check out restrictions" -msgstr "" +msgstr "Consenti di sovrascirvere le restrizioni di check out" #: views.py:32 -msgid "checked out documents" -msgstr "" +msgid "Documents checked out" +msgstr "Documenti estratti" #: views.py:35 -msgid "checkout user" -msgstr "" +msgid "Checkout user" +msgstr "Utente per il checkout " #: views.py:36 -msgid "checkout time and date" -msgstr "" +msgid "Checkout time and date" +msgstr "Ora e data checkout " #: views.py:37 -msgid "checkout expiration" -msgstr "" +msgid "Checkout expiration" +msgstr "Scadenza checkout " + +#: views.py:50 +#, python-format +msgid "Document status: %s" +msgstr "Stato del documento: %s" #: views.py:54 #, python-format msgid "User: %s" -msgstr "" +msgstr "Utente: %s" #: views.py:55 #, python-format msgid "Check out time: %s" -msgstr "" +msgstr "Ora del check out: %s" #: views.py:56 #, python-format msgid "Check out expiration: %s" -msgstr "" +msgstr "Scadenza del check out: %s" #: views.py:57 #, python-format msgid "New versions allowed: %s" -msgstr "" +msgstr "Nuova versione concessa: %s" #: views.py:57 -msgid "yes" -msgstr "" +msgid "Yes" +msgstr "Si" #: views.py:57 -msgid "no" -msgstr "" +msgid "No" +msgstr "No" #: views.py:62 #, python-format msgid "Check out details for document: %s" -msgstr "" +msgstr "Dettaglio del check out per il documento: %s" -#: views.py:82 +#: views.py:85 #, python-format msgid "Error trying to check out document; %s" -msgstr "" - -#: views.py:84 -#, python-format -msgid "Document \"%s\" checked out successfully." -msgstr "" +msgstr "Errore nel cercare il check out del documento; %s" #: views.py:87 -msgid "Document already checked out." -msgstr "" +#, python-format +msgid "Document \"%s\" checked out successfully." +msgstr "Il documento\"%s\" è uscito con successo" #: views.py:95 #, python-format msgid "Check out document: %s" -msgstr "" +msgstr "Check out documento: %s" -#: views.py:124 +#: views.py:107 views.py:128 msgid "Document has not been checked out." -msgstr "" +msgstr "Il documento non è stato fatto uscire" -#: views.py:126 +#: views.py:130 #, python-format msgid "Error trying to check in document; %s" -msgstr "" +msgstr "Errore nel tentare il check out del documento; %s" -#: views.py:128 +#: views.py:132 #, python-format msgid "Document \"%s\" checked in successfully." -msgstr "" +msgstr "Il documento \"%s\" è entrato con successo" -#: views.py:141 +#: views.py:143 #, python-format msgid "" "You didn't originally checked out this document. Are you sure you wish to " "forcefully check in document: %s?" msgstr "" +"Originariamente non è stato fatto uscire questo documento. Sei sicuro di " +"voler forzare il check in del documento: %s?" -#: views.py:143 +#: views.py:145 #, python-format msgid "Are you sure you wish to check in document: %s?" -msgstr "" +msgstr "Sei sicuro di voler far entrare il documento: %s?" + +#: widgets.py:17 +msgid "Days" +msgstr "Giorni" + +#: widgets.py:18 +msgid "Hours" +msgstr "Orario" #: widgets.py:19 -#, python-format -msgid "Document status: %(widget)s %(text)s" -msgstr "" - -#: widgets.py:31 -msgid "Days" -msgstr "" - -#: widgets.py:32 -msgid "Hours" -msgstr "" - -#: widgets.py:33 msgid "Minutes" -msgstr "" +msgstr "Minuti" -#: widgets.py:63 +#: widgets.py:49 msgid "Enter a valid number of days." -msgstr "" +msgstr "Immettere un numero valido di giorni." -#: widgets.py:64 +#: widgets.py:50 msgid "Enter a valid number of hours." -msgstr "" +msgstr "Immettere un numero valido di ore." -#: widgets.py:65 +#: widgets.py:51 msgid "Enter a valid number of minutes." -msgstr "" +msgstr "Immettere un numero valido di minuti." -#: widgets.py:66 +#: widgets.py:52 msgid "Enter a valid time difference." -msgstr "" +msgstr "Inserire una differenza di tempo valido." -#: widgets.py:92 +#: widgets.py:78 msgid "" "Amount of time to hold the document in the checked out state in days, hours " "and/or minutes." msgstr "" +"Quantità di tempo per tenere il documento in check out in giorni, ore e / o " +"minuti." -#: widgets.py:93 -msgid "Check out expiration date and time" -msgstr "" +#~ msgid "Document \"%(document)s\" checked out by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." + +#~ msgid "Document \"%(document)s\" checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked in by %(fullname)s." + +#~ msgid "Document \"%(document)s\" automatically checked in." +#~ msgstr "Document \"%(document)s\" automatically checked in." + +#~ msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." + +#~ msgid "document" +#~ msgstr "document" + +#~ msgid "check out expiration date and time" +#~ msgstr "check out expiration date and time" + +#~ msgid "document checkout" +#~ msgstr "document checkout" + +#~ msgid "document checkouts" +#~ msgstr "document checkouts" + +#~ msgid "checked out documents" +#~ msgstr "checked out documents" + +#~ msgid "no" +#~ msgstr "no" + +#~ msgid "Check expired check out documents and checks them in." +#~ msgstr "Check expired check out documents and checks them in." + +#~ msgid "check out document" +#~ msgstr "check out document" + +#~ msgid "check in document" +#~ msgstr "check in document" diff --git a/mayan/apps/checkouts/locale/lv/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/lv/LC_MESSAGES/django.mo new file mode 100644 index 0000000000..4a6fbb9fa0 Binary files /dev/null and b/mayan/apps/checkouts/locale/lv/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/lv/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/lv/LC_MESSAGES/django.po new file mode 100644 index 0000000000..1ab458c6e0 --- /dev/null +++ b/mayan/apps/checkouts/locale/lv/LC_MESSAGES/django.po @@ -0,0 +1,281 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2015-01-11 22:05+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Latvian (http://www.transifex.com/projects/p/mayan-edms/" +"language/lv/)\n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: events.py:7 +msgid "Document checked out" +msgstr "" + +#: events.py:8 +msgid "Document checked in" +msgstr "" + +#: events.py:9 +msgid "Document automatically checked in" +msgstr "" + +#: events.py:10 +msgid "Document forcefully checked in" +msgstr "" + +#: exceptions.py:18 views.py:82 +msgid "Document already checked out." +msgstr "" + +#: links.py:19 +msgid "Checkouts" +msgstr "" + +#: links.py:20 +msgid "Check out document" +msgstr "" + +#: links.py:21 +msgid "Check in document" +msgstr "" + +#: links.py:22 +msgid "Check in/out" +msgstr "" + +#: literals.py:9 +msgid "Checked out" +msgstr "" + +#: literals.py:10 +msgid "Checked in/available" +msgstr "" + +#: models.py:23 +msgid "Document" +msgstr "" + +#: models.py:24 +msgid "Check out date and time" +msgstr "" + +#: models.py:25 widgets.py:79 +msgid "Check out expiration date and time" +msgstr "" + +#: models.py:25 +msgid "Amount of time to hold the document checked out in minutes." +msgstr "" + +#: models.py:32 +msgid "Block new version upload" +msgstr "" + +#: models.py:32 +msgid "Do not allow new version of this document to be uploaded." +msgstr "" + +#: models.py:58 permissions.py:7 +msgid "Document checkout" +msgstr "" + +#: models.py:59 +msgid "Document checkouts" +msgstr "" + +#: permissions.py:9 +msgid "Check out documents" +msgstr "" + +#: permissions.py:10 +msgid "Check in documents" +msgstr "" + +#: permissions.py:11 +msgid "Forcefully check in documents" +msgstr "" + +#: permissions.py:12 +msgid "Allow overriding check out restrictions" +msgstr "" + +#: views.py:32 +msgid "Documents checked out" +msgstr "" + +#: views.py:35 +msgid "Checkout user" +msgstr "" + +#: views.py:36 +msgid "Checkout time and date" +msgstr "" + +#: views.py:37 +msgid "Checkout expiration" +msgstr "" + +#: views.py:50 +#, python-format +msgid "Document status: %s" +msgstr "" + +#: views.py:54 +#, python-format +msgid "User: %s" +msgstr "" + +#: views.py:55 +#, python-format +msgid "Check out time: %s" +msgstr "" + +#: views.py:56 +#, python-format +msgid "Check out expiration: %s" +msgstr "" + +#: views.py:57 +#, python-format +msgid "New versions allowed: %s" +msgstr "" + +#: views.py:57 +msgid "Yes" +msgstr "" + +#: views.py:57 +msgid "No" +msgstr "" + +#: views.py:62 +#, python-format +msgid "Check out details for document: %s" +msgstr "" + +#: views.py:85 +#, python-format +msgid "Error trying to check out document; %s" +msgstr "" + +#: views.py:87 +#, python-format +msgid "Document \"%s\" checked out successfully." +msgstr "" + +#: views.py:95 +#, python-format +msgid "Check out document: %s" +msgstr "" + +#: views.py:107 views.py:128 +msgid "Document has not been checked out." +msgstr "" + +#: views.py:130 +#, python-format +msgid "Error trying to check in document; %s" +msgstr "" + +#: views.py:132 +#, python-format +msgid "Document \"%s\" checked in successfully." +msgstr "" + +#: views.py:143 +#, python-format +msgid "" +"You didn't originally checked out this document. Are you sure you wish to " +"forcefully check in document: %s?" +msgstr "" + +#: views.py:145 +#, python-format +msgid "Are you sure you wish to check in document: %s?" +msgstr "" + +#: widgets.py:17 +msgid "Days" +msgstr "" + +#: widgets.py:18 +msgid "Hours" +msgstr "" + +#: widgets.py:19 +msgid "Minutes" +msgstr "" + +#: widgets.py:49 +msgid "Enter a valid number of days." +msgstr "" + +#: widgets.py:50 +msgid "Enter a valid number of hours." +msgstr "" + +#: widgets.py:51 +msgid "Enter a valid number of minutes." +msgstr "" + +#: widgets.py:52 +msgid "Enter a valid time difference." +msgstr "" + +#: widgets.py:78 +msgid "" +"Amount of time to hold the document in the checked out state in days, hours " +"and/or minutes." +msgstr "" + +#~ msgid "Document \"%(document)s\" checked out by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." + +#~ msgid "Document \"%(document)s\" checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked in by %(fullname)s." + +#~ msgid "Document \"%(document)s\" automatically checked in." +#~ msgstr "Document \"%(document)s\" automatically checked in." + +#~ msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." + +#~ msgid "document" +#~ msgstr "document" + +#~ msgid "check out expiration date and time" +#~ msgstr "check out expiration date and time" + +#~ msgid "document checkout" +#~ msgstr "document checkout" + +#~ msgid "document checkouts" +#~ msgstr "document checkouts" + +#~ msgid "checked out documents" +#~ msgstr "checked out documents" + +#~ msgid "no" +#~ msgstr "no" + +#~ msgid "Check expired check out documents and checks them in." +#~ msgstr "Check expired check out documents and checks them in." + +#~ msgid "check out document" +#~ msgstr "check out document" + +#~ msgid "check in document" +#~ msgstr "check in document" diff --git a/mayan/apps/checkouts/locale/nb/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/nb/LC_MESSAGES/django.mo new file mode 100644 index 0000000000..5ba39fbe6f Binary files /dev/null and b/mayan/apps/checkouts/locale/nb/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/nb/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/nb/LC_MESSAGES/django.po new file mode 100644 index 0000000000..99c7ce2870 --- /dev/null +++ b/mayan/apps/checkouts/locale/nb/LC_MESSAGES/django.po @@ -0,0 +1,280 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2015-01-11 22:05+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Norwegian Bokmål (http://www.transifex.com/projects/p/mayan-" +"edms/language/nb/)\n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: events.py:7 +msgid "Document checked out" +msgstr "" + +#: events.py:8 +msgid "Document checked in" +msgstr "" + +#: events.py:9 +msgid "Document automatically checked in" +msgstr "" + +#: events.py:10 +msgid "Document forcefully checked in" +msgstr "" + +#: exceptions.py:18 views.py:82 +msgid "Document already checked out." +msgstr "" + +#: links.py:19 +msgid "Checkouts" +msgstr "" + +#: links.py:20 +msgid "Check out document" +msgstr "" + +#: links.py:21 +msgid "Check in document" +msgstr "" + +#: links.py:22 +msgid "Check in/out" +msgstr "" + +#: literals.py:9 +msgid "Checked out" +msgstr "" + +#: literals.py:10 +msgid "Checked in/available" +msgstr "" + +#: models.py:23 +msgid "Document" +msgstr "" + +#: models.py:24 +msgid "Check out date and time" +msgstr "" + +#: models.py:25 widgets.py:79 +msgid "Check out expiration date and time" +msgstr "" + +#: models.py:25 +msgid "Amount of time to hold the document checked out in minutes." +msgstr "" + +#: models.py:32 +msgid "Block new version upload" +msgstr "" + +#: models.py:32 +msgid "Do not allow new version of this document to be uploaded." +msgstr "" + +#: models.py:58 permissions.py:7 +msgid "Document checkout" +msgstr "" + +#: models.py:59 +msgid "Document checkouts" +msgstr "" + +#: permissions.py:9 +msgid "Check out documents" +msgstr "" + +#: permissions.py:10 +msgid "Check in documents" +msgstr "" + +#: permissions.py:11 +msgid "Forcefully check in documents" +msgstr "" + +#: permissions.py:12 +msgid "Allow overriding check out restrictions" +msgstr "" + +#: views.py:32 +msgid "Documents checked out" +msgstr "" + +#: views.py:35 +msgid "Checkout user" +msgstr "" + +#: views.py:36 +msgid "Checkout time and date" +msgstr "" + +#: views.py:37 +msgid "Checkout expiration" +msgstr "" + +#: views.py:50 +#, python-format +msgid "Document status: %s" +msgstr "" + +#: views.py:54 +#, python-format +msgid "User: %s" +msgstr "" + +#: views.py:55 +#, python-format +msgid "Check out time: %s" +msgstr "" + +#: views.py:56 +#, python-format +msgid "Check out expiration: %s" +msgstr "" + +#: views.py:57 +#, python-format +msgid "New versions allowed: %s" +msgstr "" + +#: views.py:57 +msgid "Yes" +msgstr "" + +#: views.py:57 +msgid "No" +msgstr "" + +#: views.py:62 +#, python-format +msgid "Check out details for document: %s" +msgstr "" + +#: views.py:85 +#, python-format +msgid "Error trying to check out document; %s" +msgstr "" + +#: views.py:87 +#, python-format +msgid "Document \"%s\" checked out successfully." +msgstr "" + +#: views.py:95 +#, python-format +msgid "Check out document: %s" +msgstr "" + +#: views.py:107 views.py:128 +msgid "Document has not been checked out." +msgstr "" + +#: views.py:130 +#, python-format +msgid "Error trying to check in document; %s" +msgstr "" + +#: views.py:132 +#, python-format +msgid "Document \"%s\" checked in successfully." +msgstr "" + +#: views.py:143 +#, python-format +msgid "" +"You didn't originally checked out this document. Are you sure you wish to " +"forcefully check in document: %s?" +msgstr "" + +#: views.py:145 +#, python-format +msgid "Are you sure you wish to check in document: %s?" +msgstr "" + +#: widgets.py:17 +msgid "Days" +msgstr "" + +#: widgets.py:18 +msgid "Hours" +msgstr "" + +#: widgets.py:19 +msgid "Minutes" +msgstr "" + +#: widgets.py:49 +msgid "Enter a valid number of days." +msgstr "" + +#: widgets.py:50 +msgid "Enter a valid number of hours." +msgstr "" + +#: widgets.py:51 +msgid "Enter a valid number of minutes." +msgstr "" + +#: widgets.py:52 +msgid "Enter a valid time difference." +msgstr "" + +#: widgets.py:78 +msgid "" +"Amount of time to hold the document in the checked out state in days, hours " +"and/or minutes." +msgstr "" + +#~ msgid "Document \"%(document)s\" checked out by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." + +#~ msgid "Document \"%(document)s\" checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked in by %(fullname)s." + +#~ msgid "Document \"%(document)s\" automatically checked in." +#~ msgstr "Document \"%(document)s\" automatically checked in." + +#~ msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." + +#~ msgid "document" +#~ msgstr "document" + +#~ msgid "check out expiration date and time" +#~ msgstr "check out expiration date and time" + +#~ msgid "document checkout" +#~ msgstr "document checkout" + +#~ msgid "document checkouts" +#~ msgstr "document checkouts" + +#~ msgid "checked out documents" +#~ msgstr "checked out documents" + +#~ msgid "no" +#~ msgstr "no" + +#~ msgid "Check expired check out documents and checks them in." +#~ msgstr "Check expired check out documents and checks them in." + +#~ msgid "check out document" +#~ msgstr "check out document" + +#~ msgid "check in document" +#~ msgstr "check in document" diff --git a/mayan/apps/checkouts/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/nl_NL/LC_MESSAGES/django.mo index 588d3dbeb7..695bf55a58 100644 Binary files a/mayan/apps/checkouts/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/nl_NL/LC_MESSAGES/django.po index 926439a125..fd909b5d5f 100644 --- a/mayan/apps/checkouts/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/nl_NL/LC_MESSAGES/django.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-07-10 15:47+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2015-01-11 22:05+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Dutch (Netherlands) (http://www.transifex.com/projects/p/" "mayan-edms/language/nl_NL/)\n" "Language: nl_NL\n" @@ -18,106 +19,82 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: __init__.py:40 -msgid "Check expired check out documents and checks them in." -msgstr "" - -#: events.py:5 +#: events.py:7 msgid "Document checked out" msgstr "" -#: events.py:6 -#, python-format -msgid "Document \"%(document)s\" checked out by %(fullname)s." -msgstr "" - -#: events.py:12 +#: events.py:8 msgid "Document checked in" msgstr "" -#: events.py:13 -#, python-format -msgid "Document \"%(document)s\" checked in by %(fullname)s." -msgstr "" - -#: events.py:19 +#: events.py:9 msgid "Document automatically checked in" msgstr "" -#: events.py:20 -#, python-format -msgid "Document \"%(document)s\" automatically checked in." -msgstr "" - -#: events.py:25 +#: events.py:10 msgid "Document forcefully checked in" msgstr "" -#: events.py:26 -#, python-format -msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." -msgstr "" - -#: links.py:16 -msgid "checkouts" -msgstr "" - -#: links.py:17 -msgid "check out document" -msgstr "" - -#: links.py:18 -msgid "check in document" +#: exceptions.py:18 views.py:82 +msgid "Document already checked out." msgstr "" #: links.py:19 -msgid "check in/out" +msgid "Checkouts" msgstr "" -#: literals.py:14 -msgid "checked out" +#: links.py:20 +msgid "Check out document" msgstr "" -#: literals.py:15 -msgid "checked in/available" +#: links.py:21 +msgid "Check in document" msgstr "" -#: models.py:24 views.py:132 -msgid "document" +#: links.py:22 +msgid "Check in/out" +msgstr "" + +#: literals.py:9 +msgid "Checked out" +msgstr "" + +#: literals.py:10 +msgid "Checked in/available" +msgstr "" + +#: models.py:23 +msgid "Document" +msgstr "" + +#: models.py:24 +msgid "Check out date and time" +msgstr "" + +#: models.py:25 widgets.py:79 +msgid "Check out expiration date and time" msgstr "" #: models.py:25 -msgid "check out date and time" -msgstr "" - -#: models.py:26 -msgid "check out expiration date and time" -msgstr "" - -#: models.py:26 msgid "Amount of time to hold the document checked out in minutes." msgstr "" -#: models.py:31 -msgid "block new version upload" +#: models.py:32 +msgid "Block new version upload" msgstr "" -#: models.py:31 +#: models.py:32 msgid "Do not allow new version of this document to be uploaded." msgstr "" -#: models.py:54 -msgid "document checkout" -msgstr "" - -#: models.py:55 -msgid "document checkouts" -msgstr "" - -#: permissions.py:7 +#: models.py:58 permissions.py:7 msgid "Document checkout" msgstr "" +#: models.py:59 +msgid "Document checkouts" +msgstr "" + #: permissions.py:9 msgid "Check out documents" msgstr "" @@ -135,19 +112,24 @@ msgid "Allow overriding check out restrictions" msgstr "" #: views.py:32 -msgid "checked out documents" +msgid "Documents checked out" msgstr "" #: views.py:35 -msgid "checkout user" +msgid "Checkout user" msgstr "" #: views.py:36 -msgid "checkout time and date" +msgid "Checkout time and date" msgstr "" #: views.py:37 -msgid "checkout expiration" +msgid "Checkout expiration" +msgstr "" + +#: views.py:50 +#, python-format +msgid "Document status: %s" msgstr "" #: views.py:54 @@ -171,11 +153,11 @@ msgid "New versions allowed: %s" msgstr "" #: views.py:57 -msgid "yes" +msgid "Yes" msgstr "" #: views.py:57 -msgid "no" +msgid "No" msgstr "" #: views.py:62 @@ -183,90 +165,116 @@ msgstr "" msgid "Check out details for document: %s" msgstr "" -#: views.py:82 +#: views.py:85 #, python-format msgid "Error trying to check out document; %s" msgstr "" -#: views.py:84 +#: views.py:87 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "" -#: views.py:87 -msgid "Document already checked out." -msgstr "" - #: views.py:95 #, python-format msgid "Check out document: %s" msgstr "" -#: views.py:124 +#: views.py:107 views.py:128 msgid "Document has not been checked out." msgstr "" -#: views.py:126 +#: views.py:130 #, python-format msgid "Error trying to check in document; %s" msgstr "" -#: views.py:128 +#: views.py:132 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "" -#: views.py:141 +#: views.py:143 #, python-format msgid "" "You didn't originally checked out this document. Are you sure you wish to " "forcefully check in document: %s?" msgstr "" -#: views.py:143 +#: views.py:145 #, python-format msgid "Are you sure you wish to check in document: %s?" msgstr "" -#: widgets.py:19 -#, python-format -msgid "Document status: %(widget)s %(text)s" -msgstr "" - -#: widgets.py:31 +#: widgets.py:17 msgid "Days" msgstr "" -#: widgets.py:32 +#: widgets.py:18 msgid "Hours" msgstr "" -#: widgets.py:33 +#: widgets.py:19 msgid "Minutes" msgstr "" -#: widgets.py:63 +#: widgets.py:49 msgid "Enter a valid number of days." msgstr "" -#: widgets.py:64 +#: widgets.py:50 msgid "Enter a valid number of hours." msgstr "" -#: widgets.py:65 +#: widgets.py:51 msgid "Enter a valid number of minutes." msgstr "" -#: widgets.py:66 +#: widgets.py:52 msgid "Enter a valid time difference." msgstr "" -#: widgets.py:92 +#: widgets.py:78 msgid "" "Amount of time to hold the document in the checked out state in days, hours " "and/or minutes." msgstr "" -#: widgets.py:93 -msgid "Check out expiration date and time" -msgstr "" +#~ msgid "Document \"%(document)s\" checked out by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." + +#~ msgid "Document \"%(document)s\" checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked in by %(fullname)s." + +#~ msgid "Document \"%(document)s\" automatically checked in." +#~ msgstr "Document \"%(document)s\" automatically checked in." + +#~ msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." + +#~ msgid "document" +#~ msgstr "document" + +#~ msgid "check out expiration date and time" +#~ msgstr "check out expiration date and time" + +#~ msgid "document checkout" +#~ msgstr "document checkout" + +#~ msgid "document checkouts" +#~ msgstr "document checkouts" + +#~ msgid "checked out documents" +#~ msgstr "checked out documents" + +#~ msgid "no" +#~ msgstr "no" + +#~ msgid "Check expired check out documents and checks them in." +#~ msgstr "Check expired check out documents and checks them in." + +#~ msgid "check out document" +#~ msgstr "check out document" + +#~ msgid "check in document" +#~ msgstr "check in document" diff --git a/mayan/apps/checkouts/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/pl/LC_MESSAGES/django.mo index 61803de49e..d5c60ce167 100644 Binary files a/mayan/apps/checkouts/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/pl/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/pl/LC_MESSAGES/django.po index 2cd4a9cc06..40c177be2e 100644 --- a/mayan/apps/checkouts/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/pl/LC_MESSAGES/django.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-07-10 15:47+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2015-01-11 22:05+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Polish (http://www.transifex.com/projects/p/mayan-edms/" "language/pl/)\n" "Language: pl\n" @@ -19,106 +20,82 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -#: __init__.py:40 -msgid "Check expired check out documents and checks them in." -msgstr "" - -#: events.py:5 +#: events.py:7 msgid "Document checked out" msgstr "" -#: events.py:6 -#, python-format -msgid "Document \"%(document)s\" checked out by %(fullname)s." -msgstr "" - -#: events.py:12 +#: events.py:8 msgid "Document checked in" msgstr "" -#: events.py:13 -#, python-format -msgid "Document \"%(document)s\" checked in by %(fullname)s." -msgstr "" - -#: events.py:19 +#: events.py:9 msgid "Document automatically checked in" msgstr "" -#: events.py:20 -#, python-format -msgid "Document \"%(document)s\" automatically checked in." -msgstr "" - -#: events.py:25 +#: events.py:10 msgid "Document forcefully checked in" msgstr "" -#: events.py:26 -#, python-format -msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." -msgstr "" - -#: links.py:16 -msgid "checkouts" -msgstr "" - -#: links.py:17 -msgid "check out document" -msgstr "" - -#: links.py:18 -msgid "check in document" +#: exceptions.py:18 views.py:82 +msgid "Document already checked out." msgstr "" #: links.py:19 -msgid "check in/out" +msgid "Checkouts" msgstr "" -#: literals.py:14 -msgid "checked out" +#: links.py:20 +msgid "Check out document" msgstr "" -#: literals.py:15 -msgid "checked in/available" +#: links.py:21 +msgid "Check in document" msgstr "" -#: models.py:24 views.py:132 -msgid "document" +#: links.py:22 +msgid "Check in/out" +msgstr "" + +#: literals.py:9 +msgid "Checked out" +msgstr "" + +#: literals.py:10 +msgid "Checked in/available" +msgstr "" + +#: models.py:23 +msgid "Document" +msgstr "" + +#: models.py:24 +msgid "Check out date and time" +msgstr "" + +#: models.py:25 widgets.py:79 +msgid "Check out expiration date and time" msgstr "" #: models.py:25 -msgid "check out date and time" -msgstr "" - -#: models.py:26 -msgid "check out expiration date and time" -msgstr "" - -#: models.py:26 msgid "Amount of time to hold the document checked out in minutes." msgstr "" -#: models.py:31 -msgid "block new version upload" +#: models.py:32 +msgid "Block new version upload" msgstr "" -#: models.py:31 +#: models.py:32 msgid "Do not allow new version of this document to be uploaded." msgstr "" -#: models.py:54 -msgid "document checkout" -msgstr "" - -#: models.py:55 -msgid "document checkouts" -msgstr "" - -#: permissions.py:7 +#: models.py:58 permissions.py:7 msgid "Document checkout" msgstr "" +#: models.py:59 +msgid "Document checkouts" +msgstr "" + #: permissions.py:9 msgid "Check out documents" msgstr "" @@ -136,19 +113,24 @@ msgid "Allow overriding check out restrictions" msgstr "" #: views.py:32 -msgid "checked out documents" +msgid "Documents checked out" msgstr "" #: views.py:35 -msgid "checkout user" +msgid "Checkout user" msgstr "" #: views.py:36 -msgid "checkout time and date" +msgid "Checkout time and date" msgstr "" #: views.py:37 -msgid "checkout expiration" +msgid "Checkout expiration" +msgstr "" + +#: views.py:50 +#, python-format +msgid "Document status: %s" msgstr "" #: views.py:54 @@ -172,11 +154,11 @@ msgid "New versions allowed: %s" msgstr "" #: views.py:57 -msgid "yes" +msgid "Yes" msgstr "" #: views.py:57 -msgid "no" +msgid "No" msgstr "" #: views.py:62 @@ -184,90 +166,116 @@ msgstr "" msgid "Check out details for document: %s" msgstr "" -#: views.py:82 +#: views.py:85 #, python-format msgid "Error trying to check out document; %s" msgstr "" -#: views.py:84 +#: views.py:87 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "" -#: views.py:87 -msgid "Document already checked out." -msgstr "" - #: views.py:95 #, python-format msgid "Check out document: %s" msgstr "" -#: views.py:124 +#: views.py:107 views.py:128 msgid "Document has not been checked out." msgstr "" -#: views.py:126 +#: views.py:130 #, python-format msgid "Error trying to check in document; %s" msgstr "" -#: views.py:128 +#: views.py:132 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "" -#: views.py:141 +#: views.py:143 #, python-format msgid "" "You didn't originally checked out this document. Are you sure you wish to " "forcefully check in document: %s?" msgstr "" -#: views.py:143 +#: views.py:145 #, python-format msgid "Are you sure you wish to check in document: %s?" msgstr "" -#: widgets.py:19 -#, python-format -msgid "Document status: %(widget)s %(text)s" -msgstr "" - -#: widgets.py:31 +#: widgets.py:17 msgid "Days" msgstr "" -#: widgets.py:32 +#: widgets.py:18 msgid "Hours" msgstr "" -#: widgets.py:33 +#: widgets.py:19 msgid "Minutes" msgstr "" -#: widgets.py:63 +#: widgets.py:49 msgid "Enter a valid number of days." msgstr "" -#: widgets.py:64 +#: widgets.py:50 msgid "Enter a valid number of hours." msgstr "" -#: widgets.py:65 +#: widgets.py:51 msgid "Enter a valid number of minutes." msgstr "" -#: widgets.py:66 +#: widgets.py:52 msgid "Enter a valid time difference." msgstr "" -#: widgets.py:92 +#: widgets.py:78 msgid "" "Amount of time to hold the document in the checked out state in days, hours " "and/or minutes." msgstr "" -#: widgets.py:93 -msgid "Check out expiration date and time" -msgstr "" +#~ msgid "Document \"%(document)s\" checked out by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." + +#~ msgid "Document \"%(document)s\" checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked in by %(fullname)s." + +#~ msgid "Document \"%(document)s\" automatically checked in." +#~ msgstr "Document \"%(document)s\" automatically checked in." + +#~ msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." + +#~ msgid "document" +#~ msgstr "document" + +#~ msgid "check out expiration date and time" +#~ msgstr "check out expiration date and time" + +#~ msgid "document checkout" +#~ msgstr "document checkout" + +#~ msgid "document checkouts" +#~ msgstr "document checkouts" + +#~ msgid "checked out documents" +#~ msgstr "checked out documents" + +#~ msgid "no" +#~ msgstr "no" + +#~ msgid "Check expired check out documents and checks them in." +#~ msgstr "Check expired check out documents and checks them in." + +#~ msgid "check out document" +#~ msgstr "check out document" + +#~ msgid "check in document" +#~ msgstr "check in document" diff --git a/mayan/apps/checkouts/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/pt/LC_MESSAGES/django.mo index ff7df711fe..8c6995a534 100644 Binary files a/mayan/apps/checkouts/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/pt/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/pt/LC_MESSAGES/django.po index e79615e5c9..48a4168158 100644 --- a/mayan/apps/checkouts/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/pt/LC_MESSAGES/django.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-07-10 15:47+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2015-01-11 22:05+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Portuguese (http://www.transifex.com/projects/p/mayan-edms/" "language/pt/)\n" "Language: pt\n" @@ -18,106 +19,82 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: __init__.py:40 -msgid "Check expired check out documents and checks them in." -msgstr "" - -#: events.py:5 +#: events.py:7 msgid "Document checked out" msgstr "" -#: events.py:6 -#, python-format -msgid "Document \"%(document)s\" checked out by %(fullname)s." -msgstr "" - -#: events.py:12 +#: events.py:8 msgid "Document checked in" msgstr "" -#: events.py:13 -#, python-format -msgid "Document \"%(document)s\" checked in by %(fullname)s." -msgstr "" - -#: events.py:19 +#: events.py:9 msgid "Document automatically checked in" msgstr "" -#: events.py:20 -#, python-format -msgid "Document \"%(document)s\" automatically checked in." -msgstr "" - -#: events.py:25 +#: events.py:10 msgid "Document forcefully checked in" msgstr "" -#: events.py:26 -#, python-format -msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." -msgstr "" - -#: links.py:16 -msgid "checkouts" -msgstr "" - -#: links.py:17 -msgid "check out document" -msgstr "" - -#: links.py:18 -msgid "check in document" +#: exceptions.py:18 views.py:82 +msgid "Document already checked out." msgstr "" #: links.py:19 -msgid "check in/out" +msgid "Checkouts" msgstr "" -#: literals.py:14 -msgid "checked out" +#: links.py:20 +msgid "Check out document" msgstr "" -#: literals.py:15 -msgid "checked in/available" +#: links.py:21 +msgid "Check in document" msgstr "" -#: models.py:24 views.py:132 -msgid "document" +#: links.py:22 +msgid "Check in/out" +msgstr "" + +#: literals.py:9 +msgid "Checked out" +msgstr "" + +#: literals.py:10 +msgid "Checked in/available" +msgstr "" + +#: models.py:23 +msgid "Document" +msgstr "" + +#: models.py:24 +msgid "Check out date and time" +msgstr "" + +#: models.py:25 widgets.py:79 +msgid "Check out expiration date and time" msgstr "" #: models.py:25 -msgid "check out date and time" -msgstr "" - -#: models.py:26 -msgid "check out expiration date and time" -msgstr "" - -#: models.py:26 msgid "Amount of time to hold the document checked out in minutes." msgstr "" -#: models.py:31 -msgid "block new version upload" +#: models.py:32 +msgid "Block new version upload" msgstr "" -#: models.py:31 +#: models.py:32 msgid "Do not allow new version of this document to be uploaded." msgstr "" -#: models.py:54 -msgid "document checkout" -msgstr "" - -#: models.py:55 -msgid "document checkouts" -msgstr "" - -#: permissions.py:7 +#: models.py:58 permissions.py:7 msgid "Document checkout" msgstr "" +#: models.py:59 +msgid "Document checkouts" +msgstr "" + #: permissions.py:9 msgid "Check out documents" msgstr "" @@ -135,19 +112,24 @@ msgid "Allow overriding check out restrictions" msgstr "" #: views.py:32 -msgid "checked out documents" +msgid "Documents checked out" msgstr "" #: views.py:35 -msgid "checkout user" +msgid "Checkout user" msgstr "" #: views.py:36 -msgid "checkout time and date" +msgid "Checkout time and date" msgstr "" #: views.py:37 -msgid "checkout expiration" +msgid "Checkout expiration" +msgstr "" + +#: views.py:50 +#, python-format +msgid "Document status: %s" msgstr "" #: views.py:54 @@ -171,11 +153,11 @@ msgid "New versions allowed: %s" msgstr "" #: views.py:57 -msgid "yes" +msgid "Yes" msgstr "" #: views.py:57 -msgid "no" +msgid "No" msgstr "" #: views.py:62 @@ -183,90 +165,116 @@ msgstr "" msgid "Check out details for document: %s" msgstr "" -#: views.py:82 +#: views.py:85 #, python-format msgid "Error trying to check out document; %s" msgstr "" -#: views.py:84 +#: views.py:87 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "" -#: views.py:87 -msgid "Document already checked out." -msgstr "" - #: views.py:95 #, python-format msgid "Check out document: %s" msgstr "" -#: views.py:124 +#: views.py:107 views.py:128 msgid "Document has not been checked out." msgstr "" -#: views.py:126 +#: views.py:130 #, python-format msgid "Error trying to check in document; %s" msgstr "" -#: views.py:128 +#: views.py:132 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "" -#: views.py:141 +#: views.py:143 #, python-format msgid "" "You didn't originally checked out this document. Are you sure you wish to " "forcefully check in document: %s?" msgstr "" -#: views.py:143 +#: views.py:145 #, python-format msgid "Are you sure you wish to check in document: %s?" msgstr "" -#: widgets.py:19 -#, python-format -msgid "Document status: %(widget)s %(text)s" -msgstr "" - -#: widgets.py:31 +#: widgets.py:17 msgid "Days" msgstr "" -#: widgets.py:32 +#: widgets.py:18 msgid "Hours" msgstr "" -#: widgets.py:33 +#: widgets.py:19 msgid "Minutes" msgstr "" -#: widgets.py:63 +#: widgets.py:49 msgid "Enter a valid number of days." msgstr "" -#: widgets.py:64 +#: widgets.py:50 msgid "Enter a valid number of hours." msgstr "" -#: widgets.py:65 +#: widgets.py:51 msgid "Enter a valid number of minutes." msgstr "" -#: widgets.py:66 +#: widgets.py:52 msgid "Enter a valid time difference." msgstr "" -#: widgets.py:92 +#: widgets.py:78 msgid "" "Amount of time to hold the document in the checked out state in days, hours " "and/or minutes." msgstr "" -#: widgets.py:93 -msgid "Check out expiration date and time" -msgstr "" +#~ msgid "Document \"%(document)s\" checked out by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." + +#~ msgid "Document \"%(document)s\" checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked in by %(fullname)s." + +#~ msgid "Document \"%(document)s\" automatically checked in." +#~ msgstr "Document \"%(document)s\" automatically checked in." + +#~ msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." + +#~ msgid "document" +#~ msgstr "document" + +#~ msgid "check out expiration date and time" +#~ msgstr "check out expiration date and time" + +#~ msgid "document checkout" +#~ msgstr "document checkout" + +#~ msgid "document checkouts" +#~ msgstr "document checkouts" + +#~ msgid "checked out documents" +#~ msgstr "checked out documents" + +#~ msgid "no" +#~ msgstr "no" + +#~ msgid "Check expired check out documents and checks them in." +#~ msgstr "Check expired check out documents and checks them in." + +#~ msgid "check out document" +#~ msgstr "check out document" + +#~ msgid "check in document" +#~ msgstr "check in document" diff --git a/mayan/apps/checkouts/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/pt_BR/LC_MESSAGES/django.mo index 6fde21bc4c..e66fa46e08 100644 Binary files a/mayan/apps/checkouts/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/pt_BR/LC_MESSAGES/django.po index ae8fff2e8f..6a04b439b5 100644 --- a/mayan/apps/checkouts/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/pt_BR/LC_MESSAGES/django.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-07-10 15:47+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2015-01-11 22:05+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/" "mayan-edms/language/pt_BR/)\n" "Language: pt_BR\n" @@ -18,106 +19,82 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: __init__.py:40 -msgid "Check expired check out documents and checks them in." -msgstr "" - -#: events.py:5 +#: events.py:7 msgid "Document checked out" msgstr "" -#: events.py:6 -#, python-format -msgid "Document \"%(document)s\" checked out by %(fullname)s." -msgstr "" - -#: events.py:12 +#: events.py:8 msgid "Document checked in" msgstr "" -#: events.py:13 -#, python-format -msgid "Document \"%(document)s\" checked in by %(fullname)s." -msgstr "" - -#: events.py:19 +#: events.py:9 msgid "Document automatically checked in" msgstr "" -#: events.py:20 -#, python-format -msgid "Document \"%(document)s\" automatically checked in." -msgstr "" - -#: events.py:25 +#: events.py:10 msgid "Document forcefully checked in" msgstr "" -#: events.py:26 -#, python-format -msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." -msgstr "" - -#: links.py:16 -msgid "checkouts" -msgstr "" - -#: links.py:17 -msgid "check out document" -msgstr "" - -#: links.py:18 -msgid "check in document" +#: exceptions.py:18 views.py:82 +msgid "Document already checked out." msgstr "" #: links.py:19 -msgid "check in/out" +msgid "Checkouts" msgstr "" -#: literals.py:14 -msgid "checked out" +#: links.py:20 +msgid "Check out document" msgstr "" -#: literals.py:15 -msgid "checked in/available" +#: links.py:21 +msgid "Check in document" msgstr "" -#: models.py:24 views.py:132 -msgid "document" +#: links.py:22 +msgid "Check in/out" +msgstr "" + +#: literals.py:9 +msgid "Checked out" +msgstr "" + +#: literals.py:10 +msgid "Checked in/available" +msgstr "" + +#: models.py:23 +msgid "Document" +msgstr "" + +#: models.py:24 +msgid "Check out date and time" +msgstr "" + +#: models.py:25 widgets.py:79 +msgid "Check out expiration date and time" msgstr "" #: models.py:25 -msgid "check out date and time" -msgstr "" - -#: models.py:26 -msgid "check out expiration date and time" -msgstr "" - -#: models.py:26 msgid "Amount of time to hold the document checked out in minutes." msgstr "" -#: models.py:31 -msgid "block new version upload" +#: models.py:32 +msgid "Block new version upload" msgstr "" -#: models.py:31 +#: models.py:32 msgid "Do not allow new version of this document to be uploaded." msgstr "" -#: models.py:54 -msgid "document checkout" -msgstr "" - -#: models.py:55 -msgid "document checkouts" -msgstr "" - -#: permissions.py:7 +#: models.py:58 permissions.py:7 msgid "Document checkout" msgstr "" +#: models.py:59 +msgid "Document checkouts" +msgstr "" + #: permissions.py:9 msgid "Check out documents" msgstr "" @@ -135,19 +112,24 @@ msgid "Allow overriding check out restrictions" msgstr "" #: views.py:32 -msgid "checked out documents" +msgid "Documents checked out" msgstr "" #: views.py:35 -msgid "checkout user" +msgid "Checkout user" msgstr "" #: views.py:36 -msgid "checkout time and date" +msgid "Checkout time and date" msgstr "" #: views.py:37 -msgid "checkout expiration" +msgid "Checkout expiration" +msgstr "" + +#: views.py:50 +#, python-format +msgid "Document status: %s" msgstr "" #: views.py:54 @@ -171,11 +153,11 @@ msgid "New versions allowed: %s" msgstr "" #: views.py:57 -msgid "yes" +msgid "Yes" msgstr "" #: views.py:57 -msgid "no" +msgid "No" msgstr "" #: views.py:62 @@ -183,90 +165,116 @@ msgstr "" msgid "Check out details for document: %s" msgstr "" -#: views.py:82 +#: views.py:85 #, python-format msgid "Error trying to check out document; %s" msgstr "" -#: views.py:84 +#: views.py:87 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "" -#: views.py:87 -msgid "Document already checked out." -msgstr "" - #: views.py:95 #, python-format msgid "Check out document: %s" msgstr "" -#: views.py:124 +#: views.py:107 views.py:128 msgid "Document has not been checked out." msgstr "" -#: views.py:126 +#: views.py:130 #, python-format msgid "Error trying to check in document; %s" msgstr "" -#: views.py:128 +#: views.py:132 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "" -#: views.py:141 +#: views.py:143 #, python-format msgid "" "You didn't originally checked out this document. Are you sure you wish to " "forcefully check in document: %s?" msgstr "" -#: views.py:143 +#: views.py:145 #, python-format msgid "Are you sure you wish to check in document: %s?" msgstr "" -#: widgets.py:19 -#, python-format -msgid "Document status: %(widget)s %(text)s" -msgstr "" - -#: widgets.py:31 +#: widgets.py:17 msgid "Days" msgstr "" -#: widgets.py:32 +#: widgets.py:18 msgid "Hours" msgstr "" -#: widgets.py:33 +#: widgets.py:19 msgid "Minutes" msgstr "" -#: widgets.py:63 +#: widgets.py:49 msgid "Enter a valid number of days." msgstr "" -#: widgets.py:64 +#: widgets.py:50 msgid "Enter a valid number of hours." msgstr "" -#: widgets.py:65 +#: widgets.py:51 msgid "Enter a valid number of minutes." msgstr "" -#: widgets.py:66 +#: widgets.py:52 msgid "Enter a valid time difference." msgstr "" -#: widgets.py:92 +#: widgets.py:78 msgid "" "Amount of time to hold the document in the checked out state in days, hours " "and/or minutes." msgstr "" -#: widgets.py:93 -msgid "Check out expiration date and time" -msgstr "" +#~ msgid "Document \"%(document)s\" checked out by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." + +#~ msgid "Document \"%(document)s\" checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked in by %(fullname)s." + +#~ msgid "Document \"%(document)s\" automatically checked in." +#~ msgstr "Document \"%(document)s\" automatically checked in." + +#~ msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." + +#~ msgid "document" +#~ msgstr "document" + +#~ msgid "check out expiration date and time" +#~ msgstr "check out expiration date and time" + +#~ msgid "document checkout" +#~ msgstr "document checkout" + +#~ msgid "document checkouts" +#~ msgstr "document checkouts" + +#~ msgid "checked out documents" +#~ msgstr "checked out documents" + +#~ msgid "no" +#~ msgstr "no" + +#~ msgid "Check expired check out documents and checks them in." +#~ msgstr "Check expired check out documents and checks them in." + +#~ msgid "check out document" +#~ msgstr "check out document" + +#~ msgid "check in document" +#~ msgstr "check in document" diff --git a/mayan/apps/checkouts/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/ro_RO/LC_MESSAGES/django.mo index b57ea8fc61..79e02b1d65 100644 Binary files a/mayan/apps/checkouts/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/ro_RO/LC_MESSAGES/django.po index c4fd5409ed..193ffbcfe6 100644 --- a/mayan/apps/checkouts/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/ro_RO/LC_MESSAGES/django.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: # Badea Gabriel , 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2013-02-16 21:03+0000\n" -"Last-Translator: Badea Gabriel \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2015-01-11 22:05+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Romanian (Romania) (http://www.transifex.com/projects/p/mayan-" "edms/language/ro_RO/)\n" "Language: ro_RO\n" @@ -20,108 +21,83 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" "2:1));\n" -#: __init__.py:40 -msgid "Check expired check out documents and checks them in." -msgstr "Verificaţi termenul de aprobare" - -#: events.py:5 +#: events.py:7 msgid "Document checked out" msgstr "Documentul aprobat" -#: events.py:6 -#, python-format -msgid "Document \"%(document)s\" checked out by %(fullname)s." -msgstr "Documentul \"%(document)s\" aprobat de %(fullname)s." - -#: events.py:12 +#: events.py:8 msgid "Document checked in" msgstr "Document aprobat în" -#: events.py:13 -#, python-format -msgid "Document \"%(document)s\" checked in by %(fullname)s." -msgstr "Documentul \"%(document)s\" aprobat de către %(fullname)s." - -#: events.py:19 +#: events.py:9 msgid "Document automatically checked in" msgstr "Document aprobat în mod automat " -#: events.py:20 -#, python-format -msgid "Document \"%(document)s\" automatically checked in." -msgstr "Documentul \"%(document)s\" aprobat automat" - -#: events.py:25 +#: events.py:10 msgid "Document forcefully checked in" msgstr "Document aprobat forţat" -#: events.py:26 -#, python-format -msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." -msgstr "" -"Documentul \"%(document)s\" aprobat obligatoriu de către %(fullname)s.." - -#: links.py:16 -msgid "checkouts" -msgstr "aprobări" - -#: links.py:17 -msgid "check out document" -msgstr "document de aprobat" - -#: links.py:18 -msgid "check in document" -msgstr "aprobă document" +#: exceptions.py:18 views.py:82 +msgid "Document already checked out." +msgstr "Document deja aprobat." #: links.py:19 -msgid "check in/out" -msgstr "aprobări" +msgid "Checkouts" +msgstr "" -#: literals.py:14 -msgid "checked out" -msgstr "de aprobat " +#: links.py:20 +msgid "Check out document" +msgstr "" -#: literals.py:15 -msgid "checked in/available" -msgstr "aprobare disponibilă" +#: links.py:21 +msgid "Check in document" +msgstr "" -#: models.py:24 views.py:132 -msgid "document" -msgstr "document" +#: links.py:22 +msgid "Check in/out" +msgstr "" + +#: literals.py:9 +msgid "Checked out" +msgstr "" + +#: literals.py:10 +msgid "Checked in/available" +msgstr "" + +#: models.py:23 +msgid "Document" +msgstr "" + +#: models.py:24 +msgid "Check out date and time" +msgstr "" + +#: models.py:25 widgets.py:79 +msgid "Check out expiration date and time" +msgstr "Verifică data şi ora de expirare" #: models.py:25 -msgid "check out date and time" -msgstr "aprobat la data si ora " - -#: models.py:26 -msgid "check out expiration date and time" -msgstr "data și ora de expirare aprobare" - -#: models.py:26 msgid "Amount of time to hold the document checked out in minutes." msgstr "" "Total timp alocat pentru a deține documentul pentru aprobare în minute." -#: models.py:31 -msgid "block new version upload" -msgstr "blochează actualizarea documentului" +#: models.py:32 +msgid "Block new version upload" +msgstr "" -#: models.py:31 +#: models.py:32 msgid "Do not allow new version of this document to be uploaded." msgstr "Nu se permite actualizarea documentului." -#: models.py:54 -msgid "document checkout" -msgstr "document aprobat" - -#: models.py:55 -msgid "document checkouts" -msgstr "document aprobat" - -#: permissions.py:7 +#: models.py:58 permissions.py:7 msgid "Document checkout" msgstr "Document aprobat" +#: models.py:59 +msgid "Document checkouts" +msgstr "" + #: permissions.py:9 msgid "Check out documents" msgstr "Aprobări documente" @@ -139,20 +115,25 @@ msgid "Allow overriding check out restrictions" msgstr "Permiteți rescrierea aprobării cu restricții" #: views.py:32 -msgid "checked out documents" -msgstr "aprobări documente" +msgid "Documents checked out" +msgstr "" #: views.py:35 -msgid "checkout user" -msgstr "aprobate de" +msgid "Checkout user" +msgstr "" #: views.py:36 -msgid "checkout time and date" -msgstr "aprobat ora și data" +msgid "Checkout time and date" +msgstr "" #: views.py:37 -msgid "checkout expiration" -msgstr "aprobarea expiră" +msgid "Checkout expiration" +msgstr "" + +#: views.py:50 +#, python-format +msgid "Document status: %s" +msgstr "" #: views.py:54 #, python-format @@ -175,52 +156,48 @@ msgid "New versions allowed: %s" msgstr "Noile versiuni permise:% s" #: views.py:57 -msgid "yes" -msgstr "da" +msgid "Yes" +msgstr "" #: views.py:57 -msgid "no" -msgstr "nu" +msgid "No" +msgstr "" #: views.py:62 #, python-format msgid "Check out details for document: %s" msgstr "Verificat detaliile documentului:% s" -#: views.py:82 +#: views.py:85 #, python-format msgid "Error trying to check out document; %s" msgstr "Eroare la încercarea de a aproba documentul ;% s" -#: views.py:84 +#: views.py:87 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Documentul \"%s\" a fost aprobat cu succes." -#: views.py:87 -msgid "Document already checked out." -msgstr "Document deja aprobat." - #: views.py:95 #, python-format msgid "Check out document: %s" msgstr "Aprobarea documentului:% s" -#: views.py:124 +#: views.py:107 views.py:128 msgid "Document has not been checked out." msgstr "Documentul nu a fost aprobat." -#: views.py:126 +#: views.py:130 #, python-format msgid "Error trying to check in document; %s" msgstr "Eroare la încercarea de aprobare a documentului; % s" -#: views.py:128 +#: views.py:132 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Documentul \"%s\" aprobat cu succes." -#: views.py:141 +#: views.py:143 #, python-format msgid "" "You didn't originally checked out this document. Are you sure you wish to " @@ -229,45 +206,40 @@ msgstr "" "Tu nu ai aprobat inițial acest document. Sunteți sigur că doriți să aprobaţi " "forţat documentul:% s?" -#: views.py:143 +#: views.py:145 #, python-format msgid "Are you sure you wish to check in document: %s?" msgstr "Sunteți sigur că doriți să aprobaţi documentul în:% s?" -#: widgets.py:19 -#, python-format -msgid "Document status: %(widget)s %(text)s" -msgstr "Starea documentului: %(widget)s %(text)s" - -#: widgets.py:31 +#: widgets.py:17 msgid "Days" msgstr "Zi" -#: widgets.py:32 +#: widgets.py:18 msgid "Hours" msgstr "Ore" -#: widgets.py:33 +#: widgets.py:19 msgid "Minutes" msgstr "Minute" -#: widgets.py:63 +#: widgets.py:49 msgid "Enter a valid number of days." msgstr "Introduceți un număr valid de zile." -#: widgets.py:64 +#: widgets.py:50 msgid "Enter a valid number of hours." msgstr "Introduceți un număr valid de ore." -#: widgets.py:65 +#: widgets.py:51 msgid "Enter a valid number of minutes." msgstr "Introduceți un număr valid de minute." -#: widgets.py:66 +#: widgets.py:52 msgid "Enter a valid time difference." msgstr "Introduceți o diferență de timp validă." -#: widgets.py:92 +#: widgets.py:78 msgid "" "Amount of time to hold the document in the checked out state in days, hours " "and/or minutes." @@ -275,6 +247,41 @@ msgstr "" "Total timp acordat pentru a deține documente în statul pentru aprobare în " "zile, ore și / sau minute." -#: widgets.py:93 -msgid "Check out expiration date and time" -msgstr "Verifică data şi ora de expirare" +#~ msgid "Document \"%(document)s\" checked out by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." + +#~ msgid "Document \"%(document)s\" checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked in by %(fullname)s." + +#~ msgid "Document \"%(document)s\" automatically checked in." +#~ msgstr "Document \"%(document)s\" automatically checked in." + +#~ msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." + +#~ msgid "document" +#~ msgstr "document" + +#~ msgid "check out expiration date and time" +#~ msgstr "check out expiration date and time" + +#~ msgid "document checkout" +#~ msgstr "document checkout" + +#~ msgid "document checkouts" +#~ msgstr "document checkouts" + +#~ msgid "checked out documents" +#~ msgstr "checked out documents" + +#~ msgid "no" +#~ msgstr "no" + +#~ msgid "Check expired check out documents and checks them in." +#~ msgstr "Check expired check out documents and checks them in." + +#~ msgid "check out document" +#~ msgstr "check out document" + +#~ msgid "check in document" +#~ msgstr "check in document" diff --git a/mayan/apps/checkouts/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/ru/LC_MESSAGES/django.mo index 4383682a8e..8037636196 100644 Binary files a/mayan/apps/checkouts/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/ru/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/ru/LC_MESSAGES/django.po index 5a485df571..1c014b039a 100644 --- a/mayan/apps/checkouts/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/ru/LC_MESSAGES/django.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: # Sergey Glita , 2012-2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2013-05-14 09:21+0000\n" -"Last-Translator: Sergey Glita \n" +"POT-Creation-Date: 2015-02-06 20:44-0400\n" +"PO-Revision-Date: 2015-01-11 22:05+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Russian (http://www.transifex.com/projects/p/mayan-edms/" "language/ru/)\n" "Language: ru\n" @@ -20,106 +21,82 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: __init__.py:40 -msgid "Check expired check out documents and checks them in." -msgstr "Проверка истечения бронирования документов" - -#: events.py:5 +#: events.py:7 msgid "Document checked out" msgstr "Документ забронирован" -#: events.py:6 -#, python-format -msgid "Document \"%(document)s\" checked out by %(fullname)s." -msgstr "Документ \"%(document)s\" забронировал %(fullname)s." - -#: events.py:12 +#: events.py:8 msgid "Document checked in" msgstr "Документ проверен" -#: events.py:13 -#, python-format -msgid "Document \"%(document)s\" checked in by %(fullname)s." -msgstr "Документ \"%(document)s\" проверил %(fullname)s." - -#: events.py:19 +#: events.py:9 msgid "Document automatically checked in" msgstr "Документ проверен автоматически" -#: events.py:20 -#, python-format -msgid "Document \"%(document)s\" automatically checked in." -msgstr "Документ \"%(document)s\" проверен автоматически" - -#: events.py:25 +#: events.py:10 msgid "Document forcefully checked in" msgstr "Документ проверен по требованию" -#: events.py:26 -#, python-format -msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." -msgstr "Документ \"%(document)s\" проверен %(fullname)s." - -#: links.py:16 -msgid "checkouts" -msgstr "бронирование" - -#: links.py:17 -msgid "check out document" -msgstr "бронирование документа" - -#: links.py:18 -msgid "check in document" -msgstr "освободить документ" +#: exceptions.py:18 views.py:82 +msgid "Document already checked out." +msgstr "Документ уже забронирован." #: links.py:19 -msgid "check in/out" -msgstr "бронировать/освободить" +msgid "Checkouts" +msgstr "" -#: literals.py:14 -msgid "checked out" -msgstr "забронировано" +#: links.py:20 +msgid "Check out document" +msgstr "" -#: literals.py:15 -msgid "checked in/available" -msgstr "освобожден/доступен" +#: links.py:21 +msgid "Check in document" +msgstr "" -#: models.py:24 views.py:132 -msgid "document" -msgstr "документ" +#: links.py:22 +msgid "Check in/out" +msgstr "" + +#: literals.py:9 +msgid "Checked out" +msgstr "" + +#: literals.py:10 +msgid "Checked in/available" +msgstr "" + +#: models.py:23 +msgid "Document" +msgstr "" + +#: models.py:24 +msgid "Check out date and time" +msgstr "" + +#: models.py:25 widgets.py:79 +msgid "Check out expiration date and time" +msgstr "Дата и время окончания бронирования" #: models.py:25 -msgid "check out date and time" -msgstr "дата и время бронирования" - -#: models.py:26 -msgid "check out expiration date and time" -msgstr "дата и время окончания бронирования" - -#: models.py:26 msgid "Amount of time to hold the document checked out in minutes." msgstr "Время бронирования документа в минутах." -#: models.py:31 -msgid "block new version upload" -msgstr "блокировка загрузки новой версии" +#: models.py:32 +msgid "Block new version upload" +msgstr "" -#: models.py:31 +#: models.py:32 msgid "Do not allow new version of this document to be uploaded." msgstr "Запретить загрузку новых версий документа." -#: models.py:54 -msgid "document checkout" -msgstr "бронирование документа" - -#: models.py:55 -msgid "document checkouts" -msgstr "бронирования документа" - -#: permissions.py:7 +#: models.py:58 permissions.py:7 msgid "Document checkout" msgstr "Бронирование документа" +#: models.py:59 +msgid "Document checkouts" +msgstr "" + #: permissions.py:9 msgid "Check out documents" msgstr "Бронирование документов" @@ -137,20 +114,25 @@ msgid "Allow overriding check out restrictions" msgstr "Разрешить игнорировать бронирование" #: views.py:32 -msgid "checked out documents" -msgstr "забронированные документы" +msgid "Documents checked out" +msgstr "" #: views.py:35 -msgid "checkout user" -msgstr "забронировал" +msgid "Checkout user" +msgstr "" #: views.py:36 -msgid "checkout time and date" -msgstr "дата и время бронирования" +msgid "Checkout time and date" +msgstr "" #: views.py:37 -msgid "checkout expiration" -msgstr "истечение бронирования" +msgid "Checkout expiration" +msgstr "" + +#: views.py:50 +#, python-format +msgid "Document status: %s" +msgstr "" #: views.py:54 #, python-format @@ -173,102 +155,128 @@ msgid "New versions allowed: %s" msgstr "Новые версии разрешены: %s" #: views.py:57 -msgid "yes" -msgstr "да" +msgid "Yes" +msgstr "" #: views.py:57 -msgid "no" -msgstr "нет" +msgid "No" +msgstr "" #: views.py:62 #, python-format msgid "Check out details for document: %s" msgstr "Подробности бронирования %s" -#: views.py:82 +#: views.py:85 #, python-format msgid "Error trying to check out document; %s" msgstr "Не удалось забронировать %s" -#: views.py:84 +#: views.py:87 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Документ \"%s\" забронирован." -#: views.py:87 -msgid "Document already checked out." -msgstr "Документ уже забронирован." - #: views.py:95 #, python-format msgid "Check out document: %s" msgstr "Бронирование документа: %s" -#: views.py:124 +#: views.py:107 views.py:128 msgid "Document has not been checked out." msgstr "Документ не был забронирован." -#: views.py:126 +#: views.py:130 #, python-format msgid "Error trying to check in document; %s" msgstr "Ошибка освобождения документа %s" -#: views.py:128 +#: views.py:132 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Документ \"%s\" освобожден." -#: views.py:141 +#: views.py:143 #, python-format msgid "" "You didn't originally checked out this document. Are you sure you wish to " "forcefully check in document: %s?" msgstr "Документ был забронирован не вами. Освободить насильно %s?" -#: views.py:143 +#: views.py:145 #, python-format msgid "Are you sure you wish to check in document: %s?" msgstr "Освободить документ %s?" -#: widgets.py:19 -#, python-format -msgid "Document status: %(widget)s %(text)s" -msgstr "Статус документа: %(widget)s %(text)s" - -#: widgets.py:31 +#: widgets.py:17 msgid "Days" msgstr "Дней" -#: widgets.py:32 +#: widgets.py:18 msgid "Hours" msgstr "Часов" -#: widgets.py:33 +#: widgets.py:19 msgid "Minutes" msgstr "Минут" -#: widgets.py:63 +#: widgets.py:49 msgid "Enter a valid number of days." msgstr "Введите действительное количество дней." -#: widgets.py:64 +#: widgets.py:50 msgid "Enter a valid number of hours." msgstr "Введите действительное количество часов." -#: widgets.py:65 +#: widgets.py:51 msgid "Enter a valid number of minutes." msgstr "Введите действительное количество минут." -#: widgets.py:66 +#: widgets.py:52 msgid "Enter a valid time difference." msgstr "Введите действительную разницу во времени." -#: widgets.py:92 +#: widgets.py:78 msgid "" "Amount of time to hold the document in the checked out state in days, hours " "and/or minutes." msgstr "Время бронирования документа в днях, часах и/или минутах." -#: widgets.py:93 -msgid "Check out expiration date and time" -msgstr "Дата и время окончания бронирования" +#~ msgid "Document \"%(document)s\" checked out by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." + +#~ msgid "Document \"%(document)s\" checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked in by %(fullname)s." + +#~ msgid "Document \"%(document)s\" automatically checked in." +#~ msgstr "Document \"%(document)s\" automatically checked in." + +#~ msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." + +#~ msgid "document" +#~ msgstr "document" + +#~ msgid "check out expiration date and time" +#~ msgstr "check out expiration date and time" + +#~ msgid "document checkout" +#~ msgstr "document checkout" + +#~ msgid "document checkouts" +#~ msgstr "document checkouts" + +#~ msgid "checked out documents" +#~ msgstr "checked out documents" + +#~ msgid "no" +#~ msgstr "no" + +#~ msgid "Check expired check out documents and checks them in." +#~ msgstr "Check expired check out documents and checks them in." + +#~ msgid "check out document" +#~ msgstr "check out document" + +#~ msgid "check in document" +#~ msgstr "check in document" diff --git a/mayan/apps/checkouts/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/sl_SI/LC_MESSAGES/django.mo index 2583b7a3ae..3e6b8d8732 100644 Binary files a/mayan/apps/checkouts/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/sl_SI/LC_MESSAGES/django.po index 427f0810de..0f27e0203a 100644 --- a/mayan/apps/checkouts/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/sl_SI/LC_MESSAGES/django.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-07-10 15:47+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-11 22:05+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Slovenian (Slovenia) (http://www.transifex.com/projects/p/" "mayan-edms/language/sl_SI/)\n" "Language: sl_SI\n" @@ -19,106 +20,82 @@ msgstr "" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" "%100==4 ? 2 : 3);\n" -#: __init__.py:40 -msgid "Check expired check out documents and checks them in." -msgstr "" - -#: events.py:5 +#: events.py:7 msgid "Document checked out" msgstr "" -#: events.py:6 -#, python-format -msgid "Document \"%(document)s\" checked out by %(fullname)s." -msgstr "" - -#: events.py:12 +#: events.py:8 msgid "Document checked in" msgstr "" -#: events.py:13 -#, python-format -msgid "Document \"%(document)s\" checked in by %(fullname)s." -msgstr "" - -#: events.py:19 +#: events.py:9 msgid "Document automatically checked in" msgstr "" -#: events.py:20 -#, python-format -msgid "Document \"%(document)s\" automatically checked in." -msgstr "" - -#: events.py:25 +#: events.py:10 msgid "Document forcefully checked in" msgstr "" -#: events.py:26 -#, python-format -msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." -msgstr "" - -#: links.py:16 -msgid "checkouts" -msgstr "" - -#: links.py:17 -msgid "check out document" -msgstr "" - -#: links.py:18 -msgid "check in document" +#: exceptions.py:18 views.py:82 +msgid "Document already checked out." msgstr "" #: links.py:19 -msgid "check in/out" +msgid "Checkouts" msgstr "" -#: literals.py:14 -msgid "checked out" +#: links.py:20 +msgid "Check out document" msgstr "" -#: literals.py:15 -msgid "checked in/available" +#: links.py:21 +msgid "Check in document" msgstr "" -#: models.py:24 views.py:132 -msgid "document" +#: links.py:22 +msgid "Check in/out" +msgstr "" + +#: literals.py:9 +msgid "Checked out" +msgstr "" + +#: literals.py:10 +msgid "Checked in/available" +msgstr "" + +#: models.py:23 +msgid "Document" +msgstr "" + +#: models.py:24 +msgid "Check out date and time" +msgstr "" + +#: models.py:25 widgets.py:79 +msgid "Check out expiration date and time" msgstr "" #: models.py:25 -msgid "check out date and time" -msgstr "" - -#: models.py:26 -msgid "check out expiration date and time" -msgstr "" - -#: models.py:26 msgid "Amount of time to hold the document checked out in minutes." msgstr "" -#: models.py:31 -msgid "block new version upload" +#: models.py:32 +msgid "Block new version upload" msgstr "" -#: models.py:31 +#: models.py:32 msgid "Do not allow new version of this document to be uploaded." msgstr "" -#: models.py:54 -msgid "document checkout" -msgstr "" - -#: models.py:55 -msgid "document checkouts" -msgstr "" - -#: permissions.py:7 +#: models.py:58 permissions.py:7 msgid "Document checkout" msgstr "" +#: models.py:59 +msgid "Document checkouts" +msgstr "" + #: permissions.py:9 msgid "Check out documents" msgstr "" @@ -136,19 +113,24 @@ msgid "Allow overriding check out restrictions" msgstr "" #: views.py:32 -msgid "checked out documents" +msgid "Documents checked out" msgstr "" #: views.py:35 -msgid "checkout user" +msgid "Checkout user" msgstr "" #: views.py:36 -msgid "checkout time and date" +msgid "Checkout time and date" msgstr "" #: views.py:37 -msgid "checkout expiration" +msgid "Checkout expiration" +msgstr "" + +#: views.py:50 +#, python-format +msgid "Document status: %s" msgstr "" #: views.py:54 @@ -172,11 +154,11 @@ msgid "New versions allowed: %s" msgstr "" #: views.py:57 -msgid "yes" +msgid "Yes" msgstr "" #: views.py:57 -msgid "no" +msgid "No" msgstr "" #: views.py:62 @@ -184,90 +166,116 @@ msgstr "" msgid "Check out details for document: %s" msgstr "" -#: views.py:82 +#: views.py:85 #, python-format msgid "Error trying to check out document; %s" msgstr "" -#: views.py:84 +#: views.py:87 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "" -#: views.py:87 -msgid "Document already checked out." -msgstr "" - #: views.py:95 #, python-format msgid "Check out document: %s" msgstr "" -#: views.py:124 +#: views.py:107 views.py:128 msgid "Document has not been checked out." msgstr "" -#: views.py:126 +#: views.py:130 #, python-format msgid "Error trying to check in document; %s" msgstr "" -#: views.py:128 +#: views.py:132 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "" -#: views.py:141 +#: views.py:143 #, python-format msgid "" "You didn't originally checked out this document. Are you sure you wish to " "forcefully check in document: %s?" msgstr "" -#: views.py:143 +#: views.py:145 #, python-format msgid "Are you sure you wish to check in document: %s?" msgstr "" -#: widgets.py:19 -#, python-format -msgid "Document status: %(widget)s %(text)s" -msgstr "" - -#: widgets.py:31 +#: widgets.py:17 msgid "Days" msgstr "" -#: widgets.py:32 +#: widgets.py:18 msgid "Hours" msgstr "" -#: widgets.py:33 +#: widgets.py:19 msgid "Minutes" msgstr "" -#: widgets.py:63 +#: widgets.py:49 msgid "Enter a valid number of days." msgstr "" -#: widgets.py:64 +#: widgets.py:50 msgid "Enter a valid number of hours." msgstr "" -#: widgets.py:65 +#: widgets.py:51 msgid "Enter a valid number of minutes." msgstr "" -#: widgets.py:66 +#: widgets.py:52 msgid "Enter a valid time difference." msgstr "" -#: widgets.py:92 +#: widgets.py:78 msgid "" "Amount of time to hold the document in the checked out state in days, hours " "and/or minutes." msgstr "" -#: widgets.py:93 -msgid "Check out expiration date and time" -msgstr "" +#~ msgid "Document \"%(document)s\" checked out by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." + +#~ msgid "Document \"%(document)s\" checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked in by %(fullname)s." + +#~ msgid "Document \"%(document)s\" automatically checked in." +#~ msgstr "Document \"%(document)s\" automatically checked in." + +#~ msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." + +#~ msgid "document" +#~ msgstr "document" + +#~ msgid "check out expiration date and time" +#~ msgstr "check out expiration date and time" + +#~ msgid "document checkout" +#~ msgstr "document checkout" + +#~ msgid "document checkouts" +#~ msgstr "document checkouts" + +#~ msgid "checked out documents" +#~ msgstr "checked out documents" + +#~ msgid "no" +#~ msgstr "no" + +#~ msgid "Check expired check out documents and checks them in." +#~ msgstr "Check expired check out documents and checks them in." + +#~ msgid "check out document" +#~ msgstr "check out document" + +#~ msgid "check in document" +#~ msgstr "check in document" diff --git a/mayan/apps/checkouts/locale/sq/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/sq/LC_MESSAGES/django.mo new file mode 100644 index 0000000000..7c8c4a3890 Binary files /dev/null and b/mayan/apps/checkouts/locale/sq/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/sq/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/sq/LC_MESSAGES/django.po new file mode 100644 index 0000000000..b6dd4d9e8e --- /dev/null +++ b/mayan/apps/checkouts/locale/sq/LC_MESSAGES/django.po @@ -0,0 +1,280 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-11 22:05+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Albanian (http://www.transifex.com/projects/p/mayan-edms/" +"language/sq/)\n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: events.py:7 +msgid "Document checked out" +msgstr "" + +#: events.py:8 +msgid "Document checked in" +msgstr "" + +#: events.py:9 +msgid "Document automatically checked in" +msgstr "" + +#: events.py:10 +msgid "Document forcefully checked in" +msgstr "" + +#: exceptions.py:18 views.py:82 +msgid "Document already checked out." +msgstr "" + +#: links.py:19 +msgid "Checkouts" +msgstr "" + +#: links.py:20 +msgid "Check out document" +msgstr "" + +#: links.py:21 +msgid "Check in document" +msgstr "" + +#: links.py:22 +msgid "Check in/out" +msgstr "" + +#: literals.py:9 +msgid "Checked out" +msgstr "" + +#: literals.py:10 +msgid "Checked in/available" +msgstr "" + +#: models.py:23 +msgid "Document" +msgstr "" + +#: models.py:24 +msgid "Check out date and time" +msgstr "" + +#: models.py:25 widgets.py:79 +msgid "Check out expiration date and time" +msgstr "" + +#: models.py:25 +msgid "Amount of time to hold the document checked out in minutes." +msgstr "" + +#: models.py:32 +msgid "Block new version upload" +msgstr "" + +#: models.py:32 +msgid "Do not allow new version of this document to be uploaded." +msgstr "" + +#: models.py:58 permissions.py:7 +msgid "Document checkout" +msgstr "" + +#: models.py:59 +msgid "Document checkouts" +msgstr "" + +#: permissions.py:9 +msgid "Check out documents" +msgstr "" + +#: permissions.py:10 +msgid "Check in documents" +msgstr "" + +#: permissions.py:11 +msgid "Forcefully check in documents" +msgstr "" + +#: permissions.py:12 +msgid "Allow overriding check out restrictions" +msgstr "" + +#: views.py:32 +msgid "Documents checked out" +msgstr "" + +#: views.py:35 +msgid "Checkout user" +msgstr "" + +#: views.py:36 +msgid "Checkout time and date" +msgstr "" + +#: views.py:37 +msgid "Checkout expiration" +msgstr "" + +#: views.py:50 +#, python-format +msgid "Document status: %s" +msgstr "" + +#: views.py:54 +#, python-format +msgid "User: %s" +msgstr "" + +#: views.py:55 +#, python-format +msgid "Check out time: %s" +msgstr "" + +#: views.py:56 +#, python-format +msgid "Check out expiration: %s" +msgstr "" + +#: views.py:57 +#, python-format +msgid "New versions allowed: %s" +msgstr "" + +#: views.py:57 +msgid "Yes" +msgstr "" + +#: views.py:57 +msgid "No" +msgstr "" + +#: views.py:62 +#, python-format +msgid "Check out details for document: %s" +msgstr "" + +#: views.py:85 +#, python-format +msgid "Error trying to check out document; %s" +msgstr "" + +#: views.py:87 +#, python-format +msgid "Document \"%s\" checked out successfully." +msgstr "" + +#: views.py:95 +#, python-format +msgid "Check out document: %s" +msgstr "" + +#: views.py:107 views.py:128 +msgid "Document has not been checked out." +msgstr "" + +#: views.py:130 +#, python-format +msgid "Error trying to check in document; %s" +msgstr "" + +#: views.py:132 +#, python-format +msgid "Document \"%s\" checked in successfully." +msgstr "" + +#: views.py:143 +#, python-format +msgid "" +"You didn't originally checked out this document. Are you sure you wish to " +"forcefully check in document: %s?" +msgstr "" + +#: views.py:145 +#, python-format +msgid "Are you sure you wish to check in document: %s?" +msgstr "" + +#: widgets.py:17 +msgid "Days" +msgstr "" + +#: widgets.py:18 +msgid "Hours" +msgstr "" + +#: widgets.py:19 +msgid "Minutes" +msgstr "" + +#: widgets.py:49 +msgid "Enter a valid number of days." +msgstr "" + +#: widgets.py:50 +msgid "Enter a valid number of hours." +msgstr "" + +#: widgets.py:51 +msgid "Enter a valid number of minutes." +msgstr "" + +#: widgets.py:52 +msgid "Enter a valid time difference." +msgstr "" + +#: widgets.py:78 +msgid "" +"Amount of time to hold the document in the checked out state in days, hours " +"and/or minutes." +msgstr "" + +#~ msgid "Document \"%(document)s\" checked out by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." + +#~ msgid "Document \"%(document)s\" checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked in by %(fullname)s." + +#~ msgid "Document \"%(document)s\" automatically checked in." +#~ msgstr "Document \"%(document)s\" automatically checked in." + +#~ msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." + +#~ msgid "document" +#~ msgstr "document" + +#~ msgid "check out expiration date and time" +#~ msgstr "check out expiration date and time" + +#~ msgid "document checkout" +#~ msgstr "document checkout" + +#~ msgid "document checkouts" +#~ msgstr "document checkouts" + +#~ msgid "checked out documents" +#~ msgstr "checked out documents" + +#~ msgid "no" +#~ msgstr "no" + +#~ msgid "Check expired check out documents and checks them in." +#~ msgstr "Check expired check out documents and checks them in." + +#~ msgid "check out document" +#~ msgstr "check out document" + +#~ msgid "check in document" +#~ msgstr "check in document" diff --git a/mayan/apps/checkouts/locale/tr_TR/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/tr_TR/LC_MESSAGES/django.mo index 88c17e0085..ceb3a7da65 100644 Binary files a/mayan/apps/checkouts/locale/tr_TR/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/tr_TR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/tr_TR/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/tr_TR/LC_MESSAGES/django.po index 59264d2f39..a8dc220867 100644 --- a/mayan/apps/checkouts/locale/tr_TR/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/tr_TR/LC_MESSAGES/django.po @@ -3,12 +3,13 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2013-06-10 05:29+0000\n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-11 22:05+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Turkish (Turkey) (http://www.transifex.com/projects/p/mayan-" "edms/language/tr_TR/)\n" @@ -18,106 +19,82 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: __init__.py:40 -msgid "Check expired check out documents and checks them in." -msgstr "" - -#: events.py:5 +#: events.py:7 msgid "Document checked out" msgstr "" -#: events.py:6 -#, python-format -msgid "Document \"%(document)s\" checked out by %(fullname)s." -msgstr "" - -#: events.py:12 +#: events.py:8 msgid "Document checked in" msgstr "" -#: events.py:13 -#, python-format -msgid "Document \"%(document)s\" checked in by %(fullname)s." -msgstr "" - -#: events.py:19 +#: events.py:9 msgid "Document automatically checked in" msgstr "" -#: events.py:20 -#, python-format -msgid "Document \"%(document)s\" automatically checked in." -msgstr "" - -#: events.py:25 +#: events.py:10 msgid "Document forcefully checked in" msgstr "" -#: events.py:26 -#, python-format -msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." -msgstr "" - -#: links.py:16 -msgid "checkouts" -msgstr "" - -#: links.py:17 -msgid "check out document" -msgstr "" - -#: links.py:18 -msgid "check in document" +#: exceptions.py:18 views.py:82 +msgid "Document already checked out." msgstr "" #: links.py:19 -msgid "check in/out" +msgid "Checkouts" msgstr "" -#: literals.py:14 -msgid "checked out" +#: links.py:20 +msgid "Check out document" msgstr "" -#: literals.py:15 -msgid "checked in/available" +#: links.py:21 +msgid "Check in document" msgstr "" -#: models.py:24 views.py:132 -msgid "document" +#: links.py:22 +msgid "Check in/out" +msgstr "" + +#: literals.py:9 +msgid "Checked out" +msgstr "" + +#: literals.py:10 +msgid "Checked in/available" +msgstr "" + +#: models.py:23 +msgid "Document" +msgstr "" + +#: models.py:24 +msgid "Check out date and time" +msgstr "" + +#: models.py:25 widgets.py:79 +msgid "Check out expiration date and time" msgstr "" #: models.py:25 -msgid "check out date and time" -msgstr "" - -#: models.py:26 -msgid "check out expiration date and time" -msgstr "" - -#: models.py:26 msgid "Amount of time to hold the document checked out in minutes." msgstr "" -#: models.py:31 -msgid "block new version upload" +#: models.py:32 +msgid "Block new version upload" msgstr "" -#: models.py:31 +#: models.py:32 msgid "Do not allow new version of this document to be uploaded." msgstr "" -#: models.py:54 -msgid "document checkout" -msgstr "" - -#: models.py:55 -msgid "document checkouts" -msgstr "" - -#: permissions.py:7 +#: models.py:58 permissions.py:7 msgid "Document checkout" msgstr "" +#: models.py:59 +msgid "Document checkouts" +msgstr "" + #: permissions.py:9 msgid "Check out documents" msgstr "" @@ -135,19 +112,24 @@ msgid "Allow overriding check out restrictions" msgstr "" #: views.py:32 -msgid "checked out documents" +msgid "Documents checked out" msgstr "" #: views.py:35 -msgid "checkout user" +msgid "Checkout user" msgstr "" #: views.py:36 -msgid "checkout time and date" +msgid "Checkout time and date" msgstr "" #: views.py:37 -msgid "checkout expiration" +msgid "Checkout expiration" +msgstr "" + +#: views.py:50 +#, python-format +msgid "Document status: %s" msgstr "" #: views.py:54 @@ -171,11 +153,11 @@ msgid "New versions allowed: %s" msgstr "" #: views.py:57 -msgid "yes" +msgid "Yes" msgstr "" #: views.py:57 -msgid "no" +msgid "No" msgstr "" #: views.py:62 @@ -183,90 +165,116 @@ msgstr "" msgid "Check out details for document: %s" msgstr "" -#: views.py:82 +#: views.py:85 #, python-format msgid "Error trying to check out document; %s" msgstr "" -#: views.py:84 +#: views.py:87 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "" -#: views.py:87 -msgid "Document already checked out." -msgstr "" - #: views.py:95 #, python-format msgid "Check out document: %s" msgstr "" -#: views.py:124 +#: views.py:107 views.py:128 msgid "Document has not been checked out." msgstr "" -#: views.py:126 +#: views.py:130 #, python-format msgid "Error trying to check in document; %s" msgstr "" -#: views.py:128 +#: views.py:132 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "" -#: views.py:141 +#: views.py:143 #, python-format msgid "" "You didn't originally checked out this document. Are you sure you wish to " "forcefully check in document: %s?" msgstr "" -#: views.py:143 +#: views.py:145 #, python-format msgid "Are you sure you wish to check in document: %s?" msgstr "" -#: widgets.py:19 -#, python-format -msgid "Document status: %(widget)s %(text)s" -msgstr "" - -#: widgets.py:31 +#: widgets.py:17 msgid "Days" msgstr "" -#: widgets.py:32 +#: widgets.py:18 msgid "Hours" msgstr "" -#: widgets.py:33 +#: widgets.py:19 msgid "Minutes" msgstr "" -#: widgets.py:63 +#: widgets.py:49 msgid "Enter a valid number of days." msgstr "" -#: widgets.py:64 +#: widgets.py:50 msgid "Enter a valid number of hours." msgstr "" -#: widgets.py:65 +#: widgets.py:51 msgid "Enter a valid number of minutes." msgstr "" -#: widgets.py:66 +#: widgets.py:52 msgid "Enter a valid time difference." msgstr "" -#: widgets.py:92 +#: widgets.py:78 msgid "" "Amount of time to hold the document in the checked out state in days, hours " "and/or minutes." msgstr "" -#: widgets.py:93 -msgid "Check out expiration date and time" -msgstr "" +#~ msgid "Document \"%(document)s\" checked out by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." + +#~ msgid "Document \"%(document)s\" checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked in by %(fullname)s." + +#~ msgid "Document \"%(document)s\" automatically checked in." +#~ msgstr "Document \"%(document)s\" automatically checked in." + +#~ msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." + +#~ msgid "document" +#~ msgstr "document" + +#~ msgid "check out expiration date and time" +#~ msgstr "check out expiration date and time" + +#~ msgid "document checkout" +#~ msgstr "document checkout" + +#~ msgid "document checkouts" +#~ msgstr "document checkouts" + +#~ msgid "checked out documents" +#~ msgstr "checked out documents" + +#~ msgid "no" +#~ msgstr "no" + +#~ msgid "Check expired check out documents and checks them in." +#~ msgstr "Check expired check out documents and checks them in." + +#~ msgid "check out document" +#~ msgstr "check out document" + +#~ msgid "check in document" +#~ msgstr "check in document" diff --git a/mayan/apps/checkouts/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/vi_VN/LC_MESSAGES/django.mo index fe8de8316e..4138459806 100644 Binary files a/mayan/apps/checkouts/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/vi_VN/LC_MESSAGES/django.po index 6f953ab293..90477d0f25 100644 --- a/mayan/apps/checkouts/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/vi_VN/LC_MESSAGES/django.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-07-10 15:47+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-11 22:05+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/projects/p/" "mayan-edms/language/vi_VN/)\n" "Language: vi_VN\n" @@ -18,106 +19,82 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: __init__.py:40 -msgid "Check expired check out documents and checks them in." -msgstr "" - -#: events.py:5 +#: events.py:7 msgid "Document checked out" msgstr "" -#: events.py:6 -#, python-format -msgid "Document \"%(document)s\" checked out by %(fullname)s." -msgstr "" - -#: events.py:12 +#: events.py:8 msgid "Document checked in" msgstr "" -#: events.py:13 -#, python-format -msgid "Document \"%(document)s\" checked in by %(fullname)s." -msgstr "" - -#: events.py:19 +#: events.py:9 msgid "Document automatically checked in" msgstr "" -#: events.py:20 -#, python-format -msgid "Document \"%(document)s\" automatically checked in." -msgstr "" - -#: events.py:25 +#: events.py:10 msgid "Document forcefully checked in" msgstr "" -#: events.py:26 -#, python-format -msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." -msgstr "" - -#: links.py:16 -msgid "checkouts" -msgstr "" - -#: links.py:17 -msgid "check out document" -msgstr "" - -#: links.py:18 -msgid "check in document" +#: exceptions.py:18 views.py:82 +msgid "Document already checked out." msgstr "" #: links.py:19 -msgid "check in/out" +msgid "Checkouts" msgstr "" -#: literals.py:14 -msgid "checked out" +#: links.py:20 +msgid "Check out document" msgstr "" -#: literals.py:15 -msgid "checked in/available" +#: links.py:21 +msgid "Check in document" msgstr "" -#: models.py:24 views.py:132 -msgid "document" +#: links.py:22 +msgid "Check in/out" +msgstr "" + +#: literals.py:9 +msgid "Checked out" +msgstr "" + +#: literals.py:10 +msgid "Checked in/available" +msgstr "" + +#: models.py:23 +msgid "Document" +msgstr "" + +#: models.py:24 +msgid "Check out date and time" +msgstr "" + +#: models.py:25 widgets.py:79 +msgid "Check out expiration date and time" msgstr "" #: models.py:25 -msgid "check out date and time" -msgstr "" - -#: models.py:26 -msgid "check out expiration date and time" -msgstr "" - -#: models.py:26 msgid "Amount of time to hold the document checked out in minutes." msgstr "" -#: models.py:31 -msgid "block new version upload" +#: models.py:32 +msgid "Block new version upload" msgstr "" -#: models.py:31 +#: models.py:32 msgid "Do not allow new version of this document to be uploaded." msgstr "" -#: models.py:54 -msgid "document checkout" -msgstr "" - -#: models.py:55 -msgid "document checkouts" -msgstr "" - -#: permissions.py:7 +#: models.py:58 permissions.py:7 msgid "Document checkout" msgstr "" +#: models.py:59 +msgid "Document checkouts" +msgstr "" + #: permissions.py:9 msgid "Check out documents" msgstr "" @@ -135,19 +112,24 @@ msgid "Allow overriding check out restrictions" msgstr "" #: views.py:32 -msgid "checked out documents" +msgid "Documents checked out" msgstr "" #: views.py:35 -msgid "checkout user" +msgid "Checkout user" msgstr "" #: views.py:36 -msgid "checkout time and date" +msgid "Checkout time and date" msgstr "" #: views.py:37 -msgid "checkout expiration" +msgid "Checkout expiration" +msgstr "" + +#: views.py:50 +#, python-format +msgid "Document status: %s" msgstr "" #: views.py:54 @@ -171,11 +153,11 @@ msgid "New versions allowed: %s" msgstr "" #: views.py:57 -msgid "yes" +msgid "Yes" msgstr "" #: views.py:57 -msgid "no" +msgid "No" msgstr "" #: views.py:62 @@ -183,90 +165,116 @@ msgstr "" msgid "Check out details for document: %s" msgstr "" -#: views.py:82 +#: views.py:85 #, python-format msgid "Error trying to check out document; %s" msgstr "" -#: views.py:84 +#: views.py:87 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "" -#: views.py:87 -msgid "Document already checked out." -msgstr "" - #: views.py:95 #, python-format msgid "Check out document: %s" msgstr "" -#: views.py:124 +#: views.py:107 views.py:128 msgid "Document has not been checked out." msgstr "" -#: views.py:126 +#: views.py:130 #, python-format msgid "Error trying to check in document; %s" msgstr "" -#: views.py:128 +#: views.py:132 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "" -#: views.py:141 +#: views.py:143 #, python-format msgid "" "You didn't originally checked out this document. Are you sure you wish to " "forcefully check in document: %s?" msgstr "" -#: views.py:143 +#: views.py:145 #, python-format msgid "Are you sure you wish to check in document: %s?" msgstr "" -#: widgets.py:19 -#, python-format -msgid "Document status: %(widget)s %(text)s" -msgstr "" - -#: widgets.py:31 +#: widgets.py:17 msgid "Days" msgstr "" -#: widgets.py:32 +#: widgets.py:18 msgid "Hours" msgstr "" -#: widgets.py:33 +#: widgets.py:19 msgid "Minutes" msgstr "" -#: widgets.py:63 +#: widgets.py:49 msgid "Enter a valid number of days." msgstr "" -#: widgets.py:64 +#: widgets.py:50 msgid "Enter a valid number of hours." msgstr "" -#: widgets.py:65 +#: widgets.py:51 msgid "Enter a valid number of minutes." msgstr "" -#: widgets.py:66 +#: widgets.py:52 msgid "Enter a valid time difference." msgstr "" -#: widgets.py:92 +#: widgets.py:78 msgid "" "Amount of time to hold the document in the checked out state in days, hours " "and/or minutes." msgstr "" -#: widgets.py:93 -msgid "Check out expiration date and time" -msgstr "" +#~ msgid "Document \"%(document)s\" checked out by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." + +#~ msgid "Document \"%(document)s\" checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked in by %(fullname)s." + +#~ msgid "Document \"%(document)s\" automatically checked in." +#~ msgstr "Document \"%(document)s\" automatically checked in." + +#~ msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." + +#~ msgid "document" +#~ msgstr "document" + +#~ msgid "check out expiration date and time" +#~ msgstr "check out expiration date and time" + +#~ msgid "document checkout" +#~ msgstr "document checkout" + +#~ msgid "document checkouts" +#~ msgstr "document checkouts" + +#~ msgid "checked out documents" +#~ msgstr "checked out documents" + +#~ msgid "no" +#~ msgstr "no" + +#~ msgid "Check expired check out documents and checks them in." +#~ msgstr "Check expired check out documents and checks them in." + +#~ msgid "check out document" +#~ msgstr "check out document" + +#~ msgid "check in document" +#~ msgstr "check in document" diff --git a/mayan/apps/checkouts/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/zh_CN/LC_MESSAGES/django.mo index ab15747f1f..bef57376de 100644 Binary files a/mayan/apps/checkouts/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/zh_CN/LC_MESSAGES/django.po index 40de5e0116..72decfc80e 100644 --- a/mayan/apps/checkouts/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/zh_CN/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Ford Guo , 2014 @@ -9,116 +9,93 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2014-09-30 03:28+0000\n" -"Last-Translator: Ford Guo \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/mayan-edms/language/zh_CN/)\n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-11 22:05+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/mayan-" +"edms/language/zh_CN/)\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: __init__.py:40 -msgid "Check expired check out documents and checks them in." -msgstr "检查过期的检出文档,并且将他们签入。" - -#: events.py:5 +#: events.py:7 msgid "Document checked out" msgstr "文档检出" -#: events.py:6 -#, python-format -msgid "Document \"%(document)s\" checked out by %(fullname)s." -msgstr "文档\"%(document)s\"由%(fullname)s检出" - -#: events.py:12 +#: events.py:8 msgid "Document checked in" msgstr "文档签入" -#: events.py:13 -#, python-format -msgid "Document \"%(document)s\" checked in by %(fullname)s." -msgstr "文档 \"%(document)s\"由%(fullname)s签入" - -#: events.py:19 +#: events.py:9 msgid "Document automatically checked in" msgstr "文档自动签入" -#: events.py:20 -#, python-format -msgid "Document \"%(document)s\" automatically checked in." -msgstr "文档\"%(document)s\"自动签入" - -#: events.py:25 +#: events.py:10 msgid "Document forcefully checked in" msgstr "文档强制签入" -#: events.py:26 -#, python-format -msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." -msgstr "文档\"%(document)s\"由%(fullname)s强制签入。" - -#: links.py:16 -msgid "checkouts" -msgstr "检出" - -#: links.py:17 -msgid "check out document" -msgstr "检出文档" - -#: links.py:18 -msgid "check in document" -msgstr "签入文档" +#: exceptions.py:18 views.py:82 +msgid "Document already checked out." +msgstr "文档已经检出" #: links.py:19 -msgid "check in/out" -msgstr "检出/签入" +msgid "Checkouts" +msgstr "" -#: literals.py:14 -msgid "checked out" -msgstr "检出" +#: links.py:20 +msgid "Check out document" +msgstr "" -#: literals.py:15 -msgid "checked in/available" -msgstr "签入/有效" +#: links.py:21 +msgid "Check in document" +msgstr "" -#: models.py:24 views.py:132 -msgid "document" -msgstr "文档" +#: links.py:22 +msgid "Check in/out" +msgstr "" -#: models.py:25 -msgid "check out date and time" -msgstr "检出日期和时间" +#: literals.py:9 +msgid "Checked out" +msgstr "" -#: models.py:26 -msgid "check out expiration date and time" +#: literals.py:10 +msgid "Checked in/available" +msgstr "" + +#: models.py:23 +msgid "Document" +msgstr "" + +#: models.py:24 +msgid "Check out date and time" +msgstr "" + +#: models.py:25 widgets.py:79 +msgid "Check out expiration date and time" msgstr "检出过期的日期和时间" -#: models.py:26 +#: models.py:25 msgid "Amount of time to hold the document checked out in minutes." msgstr "持有文档检出的时间分钟数" -#: models.py:31 -msgid "block new version upload" -msgstr "阻止新版本上传" +#: models.py:32 +msgid "Block new version upload" +msgstr "" -#: models.py:31 +#: models.py:32 msgid "Do not allow new version of this document to be uploaded." msgstr "此文档不允许上传新版本" -#: models.py:54 -msgid "document checkout" -msgstr "文档检出" - -#: models.py:55 -msgid "document checkouts" -msgstr "文档检出" - -#: permissions.py:7 +#: models.py:58 permissions.py:7 msgid "Document checkout" msgstr "文档检出" +#: models.py:59 +msgid "Document checkouts" +msgstr "" + #: permissions.py:9 msgid "Check out documents" msgstr "检出文档" @@ -136,20 +113,25 @@ msgid "Allow overriding check out restrictions" msgstr "允许覆盖检出限制" #: views.py:32 -msgid "checked out documents" -msgstr "检出文档" +msgid "Documents checked out" +msgstr "" #: views.py:35 -msgid "checkout user" -msgstr "检出用户" +msgid "Checkout user" +msgstr "" #: views.py:36 -msgid "checkout time and date" -msgstr "检出日期和时间" +msgid "Checkout time and date" +msgstr "" #: views.py:37 -msgid "checkout expiration" -msgstr "检出过期" +msgid "Checkout expiration" +msgstr "" + +#: views.py:50 +#, python-format +msgid "Document status: %s" +msgstr "" #: views.py:54 #, python-format @@ -172,102 +154,128 @@ msgid "New versions allowed: %s" msgstr "允许新版本:%s" #: views.py:57 -msgid "yes" -msgstr "是" +msgid "Yes" +msgstr "" #: views.py:57 -msgid "no" -msgstr "否" +msgid "No" +msgstr "" #: views.py:62 #, python-format msgid "Check out details for document: %s" msgstr "文档:%s的检出信息" -#: views.py:82 +#: views.py:85 #, python-format msgid "Error trying to check out document; %s" msgstr "尝试检出文档出错%s" -#: views.py:84 +#: views.py:87 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "文档\"%s\"检出成功" -#: views.py:87 -msgid "Document already checked out." -msgstr "文档已经检出" - #: views.py:95 #, python-format msgid "Check out document: %s" msgstr "检出文档: %s" -#: views.py:124 +#: views.py:107 views.py:128 msgid "Document has not been checked out." msgstr "文档未被检出" -#: views.py:126 +#: views.py:130 #, python-format msgid "Error trying to check in document; %s" msgstr "尝试签入文档出错: %s" -#: views.py:128 +#: views.py:132 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "文档\"%s\"签入成功" -#: views.py:141 +#: views.py:143 #, python-format msgid "" "You didn't originally checked out this document. Are you sure you wish to " "forcefully check in document: %s?" msgstr "你起初没有检出此文档,确定要强制签入文档: %s么?" -#: views.py:143 +#: views.py:145 #, python-format msgid "Are you sure you wish to check in document: %s?" msgstr "确定要签入文档: %s么?" -#: widgets.py:19 -#, python-format -msgid "Document status: %(widget)s %(text)s" -msgstr "文档状态: %(widget)s %(text)s" - -#: widgets.py:31 +#: widgets.py:17 msgid "Days" msgstr "天" -#: widgets.py:32 +#: widgets.py:18 msgid "Hours" msgstr "小时" -#: widgets.py:33 +#: widgets.py:19 msgid "Minutes" msgstr "分钟" -#: widgets.py:63 +#: widgets.py:49 msgid "Enter a valid number of days." msgstr "输入有效的天数" -#: widgets.py:64 +#: widgets.py:50 msgid "Enter a valid number of hours." msgstr "输入有效的小时数" -#: widgets.py:65 +#: widgets.py:51 msgid "Enter a valid number of minutes." msgstr "输入有效的分钟数" -#: widgets.py:66 +#: widgets.py:52 msgid "Enter a valid time difference." msgstr "输入有效的时间差" -#: widgets.py:92 +#: widgets.py:78 msgid "" "Amount of time to hold the document in the checked out state in days, hours " "and/or minutes." msgstr "持有文档检出状态的时间数,以天,小时,分钟为单位。" -#: widgets.py:93 -msgid "Check out expiration date and time" -msgstr "检出过期的日期和时间" +#~ msgid "Document \"%(document)s\" checked out by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." + +#~ msgid "Document \"%(document)s\" checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked in by %(fullname)s." + +#~ msgid "Document \"%(document)s\" automatically checked in." +#~ msgstr "Document \"%(document)s\" automatically checked in." + +#~ msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." + +#~ msgid "document" +#~ msgstr "document" + +#~ msgid "check out expiration date and time" +#~ msgstr "check out expiration date and time" + +#~ msgid "document checkout" +#~ msgstr "document checkout" + +#~ msgid "document checkouts" +#~ msgstr "document checkouts" + +#~ msgid "checked out documents" +#~ msgstr "checked out documents" + +#~ msgid "no" +#~ msgstr "no" + +#~ msgid "Check expired check out documents and checks them in." +#~ msgstr "Check expired check out documents and checks them in." + +#~ msgid "check out document" +#~ msgstr "check out document" + +#~ msgid "check in document" +#~ msgstr "check in document" diff --git a/mayan/apps/checkouts/locale/zh_TW/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/zh_TW/LC_MESSAGES/django.mo new file mode 100644 index 0000000000..787176bee4 Binary files /dev/null and b/mayan/apps/checkouts/locale/zh_TW/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/zh_TW/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/zh_TW/LC_MESSAGES/django.po new file mode 100644 index 0000000000..a31e3329b0 --- /dev/null +++ b/mayan/apps/checkouts/locale/zh_TW/LC_MESSAGES/django.po @@ -0,0 +1,280 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-11 22:05+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/mayan-" +"edms/language/zh_TW/)\n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: events.py:7 +msgid "Document checked out" +msgstr "" + +#: events.py:8 +msgid "Document checked in" +msgstr "" + +#: events.py:9 +msgid "Document automatically checked in" +msgstr "" + +#: events.py:10 +msgid "Document forcefully checked in" +msgstr "" + +#: exceptions.py:18 views.py:82 +msgid "Document already checked out." +msgstr "" + +#: links.py:19 +msgid "Checkouts" +msgstr "" + +#: links.py:20 +msgid "Check out document" +msgstr "" + +#: links.py:21 +msgid "Check in document" +msgstr "" + +#: links.py:22 +msgid "Check in/out" +msgstr "" + +#: literals.py:9 +msgid "Checked out" +msgstr "" + +#: literals.py:10 +msgid "Checked in/available" +msgstr "" + +#: models.py:23 +msgid "Document" +msgstr "" + +#: models.py:24 +msgid "Check out date and time" +msgstr "" + +#: models.py:25 widgets.py:79 +msgid "Check out expiration date and time" +msgstr "" + +#: models.py:25 +msgid "Amount of time to hold the document checked out in minutes." +msgstr "" + +#: models.py:32 +msgid "Block new version upload" +msgstr "" + +#: models.py:32 +msgid "Do not allow new version of this document to be uploaded." +msgstr "" + +#: models.py:58 permissions.py:7 +msgid "Document checkout" +msgstr "" + +#: models.py:59 +msgid "Document checkouts" +msgstr "" + +#: permissions.py:9 +msgid "Check out documents" +msgstr "" + +#: permissions.py:10 +msgid "Check in documents" +msgstr "" + +#: permissions.py:11 +msgid "Forcefully check in documents" +msgstr "" + +#: permissions.py:12 +msgid "Allow overriding check out restrictions" +msgstr "" + +#: views.py:32 +msgid "Documents checked out" +msgstr "" + +#: views.py:35 +msgid "Checkout user" +msgstr "" + +#: views.py:36 +msgid "Checkout time and date" +msgstr "" + +#: views.py:37 +msgid "Checkout expiration" +msgstr "" + +#: views.py:50 +#, python-format +msgid "Document status: %s" +msgstr "" + +#: views.py:54 +#, python-format +msgid "User: %s" +msgstr "" + +#: views.py:55 +#, python-format +msgid "Check out time: %s" +msgstr "" + +#: views.py:56 +#, python-format +msgid "Check out expiration: %s" +msgstr "" + +#: views.py:57 +#, python-format +msgid "New versions allowed: %s" +msgstr "" + +#: views.py:57 +msgid "Yes" +msgstr "" + +#: views.py:57 +msgid "No" +msgstr "" + +#: views.py:62 +#, python-format +msgid "Check out details for document: %s" +msgstr "" + +#: views.py:85 +#, python-format +msgid "Error trying to check out document; %s" +msgstr "" + +#: views.py:87 +#, python-format +msgid "Document \"%s\" checked out successfully." +msgstr "" + +#: views.py:95 +#, python-format +msgid "Check out document: %s" +msgstr "" + +#: views.py:107 views.py:128 +msgid "Document has not been checked out." +msgstr "" + +#: views.py:130 +#, python-format +msgid "Error trying to check in document; %s" +msgstr "" + +#: views.py:132 +#, python-format +msgid "Document \"%s\" checked in successfully." +msgstr "" + +#: views.py:143 +#, python-format +msgid "" +"You didn't originally checked out this document. Are you sure you wish to " +"forcefully check in document: %s?" +msgstr "" + +#: views.py:145 +#, python-format +msgid "Are you sure you wish to check in document: %s?" +msgstr "" + +#: widgets.py:17 +msgid "Days" +msgstr "" + +#: widgets.py:18 +msgid "Hours" +msgstr "" + +#: widgets.py:19 +msgid "Minutes" +msgstr "" + +#: widgets.py:49 +msgid "Enter a valid number of days." +msgstr "" + +#: widgets.py:50 +msgid "Enter a valid number of hours." +msgstr "" + +#: widgets.py:51 +msgid "Enter a valid number of minutes." +msgstr "" + +#: widgets.py:52 +msgid "Enter a valid time difference." +msgstr "" + +#: widgets.py:78 +msgid "" +"Amount of time to hold the document in the checked out state in days, hours " +"and/or minutes." +msgstr "" + +#~ msgid "Document \"%(document)s\" checked out by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." + +#~ msgid "Document \"%(document)s\" checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" checked in by %(fullname)s." + +#~ msgid "Document \"%(document)s\" automatically checked in." +#~ msgstr "Document \"%(document)s\" automatically checked in." + +#~ msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s." +#~ msgstr "Document \"%(document)s\" forcefully checked in by %(fullname)s." + +#~ msgid "document" +#~ msgstr "document" + +#~ msgid "check out expiration date and time" +#~ msgstr "check out expiration date and time" + +#~ msgid "document checkout" +#~ msgstr "document checkout" + +#~ msgid "document checkouts" +#~ msgstr "document checkouts" + +#~ msgid "checked out documents" +#~ msgstr "checked out documents" + +#~ msgid "no" +#~ msgstr "no" + +#~ msgid "Check expired check out documents and checks them in." +#~ msgstr "Check expired check out documents and checks them in." + +#~ msgid "check out document" +#~ msgstr "check out document" + +#~ msgid "check in document" +#~ msgstr "check in document" diff --git a/mayan/apps/checkouts/managers.py b/mayan/apps/checkouts/managers.py index a9d46d1831..e2e76648fe 100644 --- a/mayan/apps/checkouts/managers.py +++ b/mayan/apps/checkouts/managers.py @@ -1,18 +1,19 @@ -from __future__ import absolute_import +from __future__ import absolute_import, unicode_literals import logging -from django.db import models from django.core.exceptions import PermissionDenied +from django.db import models from django.utils.timezone import now from acls.models import AccessEntry from documents.models import Document -from history.api import create_history from permissions.models import Permission -from .events import (HISTORY_DOCUMENT_CHECKED_IN, HISTORY_DOCUMENT_AUTO_CHECKED_IN, - HISTORY_DOCUMENT_FORCEFUL_CHECK_IN) +from .events import ( + event_document_auto_check_in, event_document_check_in, + event_document_forceful_check_in +) from .exceptions import DocumentNotCheckedOut from .literals import STATE_CHECKED_OUT, STATE_CHECKED_IN from .permissions import PERMISSION_DOCUMENT_RESTRICTIONS_OVERRIDE @@ -26,7 +27,7 @@ class DocumentCheckoutManager(models.Manager): def expired_check_outs(self): expired_list = Document.objects.filter(pk__in=self.model.objects.filter(expiration_datetime__lte=now()).values_list('document__pk', flat=True)) - logger.debug('expired_list: %s' % expired_list) + logger.debug('expired_list: %s', expired_list) return expired_list def check_in_expired_check_outs(self): @@ -47,11 +48,11 @@ class DocumentCheckoutManager(models.Manager): else: if user: if self.document_checkout_info(document).user_object != user: - create_history(HISTORY_DOCUMENT_FORCEFUL_CHECK_IN, source_object=document, data={'user': user, 'document': document}) + event_document_forceful_check_in.commit(actor=user, target=document) else: - create_history(HISTORY_DOCUMENT_CHECKED_IN, source_object=document, data={'user': user, 'document': document}) + event_document_check_in.commit(actor=user, target=document) else: - create_history(HISTORY_DOCUMENT_AUTO_CHECKED_IN, source_object=document, data={'document': document}) + event_document_auto_check_in.commit(target=document) document_checkout.delete() @@ -82,7 +83,7 @@ class DocumentCheckoutManager(models.Manager): if user == checkout_info.user_object: # Allow anything to the user who checked out this document - True + return True else: # If not original user check to see if user has global or this document's PERMISSION_DOCUMENT_RESTRICTIONS_OVERRIDE permission try: diff --git a/mayan/apps/checkouts/models.py b/mayan/apps/checkouts/models.py index 679f2994eb..ec08d2a7cb 100644 --- a/mayan/apps/checkouts/models.py +++ b/mayan/apps/checkouts/models.py @@ -1,17 +1,16 @@ -from __future__ import absolute_import +from __future__ import unicode_literals import logging from django.contrib.contenttypes import generic from django.contrib.contenttypes.models import ContentType from django.db import models -from django.utils.timezone import now from django.utils.translation import ugettext_lazy as _ from documents.models import Document -from history.api import create_history -from .events import HISTORY_DOCUMENT_CHECKED_OUT +from .events import event_document_check_out +from .exceptions import DocumentAlreadyCheckedOut from .managers import DocumentCheckoutManager logger = logging.getLogger(__name__) @@ -21,14 +20,16 @@ class DocumentCheckout(models.Model): """ Model to store the state and information of a document checkout """ - document = models.ForeignKey(Document, verbose_name=_(u'document'), unique=True) - checkout_datetime = models.DateTimeField(verbose_name=_(u'check out date and time'), blank=True, null=True) - expiration_datetime = models.DateTimeField(verbose_name=_(u'check out expiration date and time'), help_text=_(u'Amount of time to hold the document checked out in minutes.')) + document = models.ForeignKey(Document, verbose_name=_('Document'), unique=True) + checkout_datetime = models.DateTimeField(verbose_name=_('Check out date and time'), auto_now_add=True) + expiration_datetime = models.DateTimeField(verbose_name=_('Check out expiration date and time'), help_text=_('Amount of time to hold the document checked out in minutes.')) + + # TODO: simplify user_object to an instance of User user_content_type = models.ForeignKey(ContentType, null=True, blank=True) # blank and null added for ease of db migration user_object_id = models.PositiveIntegerField(null=True, blank=True) user_object = generic.GenericForeignKey(ct_field='user_content_type', fk_field='user_object_id') - block_new_version = models.BooleanField(default=True, verbose_name=_(u'block new version upload'), help_text=_(u'Do not allow new version of this document to be uploaded.')) + block_new_version = models.BooleanField(default=True, verbose_name=_('Block new version upload'), help_text=_('Do not allow new version of this document to be uploaded.')) # block_metadata # block_editing @@ -40,16 +41,19 @@ class DocumentCheckout(models.Model): return unicode(self.document) def save(self, *args, **kwargs): - if not self.pk: - self.checkout_datetime = now() + new_checkout = not self.pk + if not new_checkout or self.document.is_checked_out(): + raise DocumentAlreadyCheckedOut + result = super(DocumentCheckout, self).save(*args, **kwargs) - create_history(HISTORY_DOCUMENT_CHECKED_OUT, source_object=self.document, data={'user': self.user_object, 'document': self.document}) + if new_checkout: + event_document_check_out.commit(actor=self.user_object, target=self.document) return result @models.permalink def get_absolute_url(self): - return ('checkout_info', [self.document.pk]) + return ('checkout:checkout_info', [self.document.pk]) class Meta: - verbose_name = _(u'document checkout') - verbose_name_plural = _(u'document checkouts') + verbose_name = _('Document checkout') + verbose_name_plural = _('Document checkouts') diff --git a/mayan/apps/checkouts/permissions.py b/mayan/apps/checkouts/permissions.py index 415c197c29..5a8d631a35 100644 --- a/mayan/apps/checkouts/permissions.py +++ b/mayan/apps/checkouts/permissions.py @@ -1,12 +1,12 @@ -from __future__ import absolute_import +from __future__ import absolute_import, unicode_literals from django.utils.translation import ugettext_lazy as _ from permissions.models import PermissionNamespace, Permission -namespace = PermissionNamespace('checkouts', _(u'Document checkout')) +namespace = PermissionNamespace('checkouts', _('Document checkout')) -PERMISSION_DOCUMENT_CHECKOUT = Permission.objects.register(namespace, 'checkout_document', _(u'Check out documents')) -PERMISSION_DOCUMENT_CHECKIN = Permission.objects.register(namespace, 'checkin_document', _(u'Check in documents')) -PERMISSION_DOCUMENT_CHECKIN_OVERRIDE = Permission.objects.register(namespace, 'checkin_document_override', _(u'Forcefully check in documents')) -PERMISSION_DOCUMENT_RESTRICTIONS_OVERRIDE = Permission.objects.register(namespace, 'checkout_restrictions_override', _(u'Allow overriding check out restrictions')) +PERMISSION_DOCUMENT_CHECKOUT = Permission.objects.register(namespace, 'checkout_document', _('Check out documents')) +PERMISSION_DOCUMENT_CHECKIN = Permission.objects.register(namespace, 'checkin_document', _('Check in documents')) +PERMISSION_DOCUMENT_CHECKIN_OVERRIDE = Permission.objects.register(namespace, 'checkin_document_override', _('Forcefully check in documents')) +PERMISSION_DOCUMENT_RESTRICTIONS_OVERRIDE = Permission.objects.register(namespace, 'checkout_restrictions_override', _('Allow overriding check out restrictions')) diff --git a/mayan/apps/checkouts/serializers.py b/mayan/apps/checkouts/serializers.py new file mode 100644 index 0000000000..2c28430bf6 --- /dev/null +++ b/mayan/apps/checkouts/serializers.py @@ -0,0 +1,24 @@ +from __future__ import unicode_literals + +from rest_framework import serializers + +from .models import DocumentCheckout + + +class DocumentCheckoutSerializer(serializers.ModelSerializer): + def __init__(self, *args, **kwargs): + # Hide this import otherwise strange circular import error occur + from documents.serializers import DocumentSerializer + + super(DocumentCheckoutSerializer, self).__init__(*args, **kwargs) + self.fields['document'] = DocumentSerializer() + + class Meta: + model = DocumentCheckout + read_only_fields = ('user_content_type', 'user_object_id') + + +class NewDocumentCheckoutSerializer(serializers.Serializer): + document = serializers.IntegerField() + expiration_datetime = serializers.DateTimeField() + block_new_version = serializers.BooleanField() diff --git a/mayan/apps/checkouts/migrations/0001_initial.py b/mayan/apps/checkouts/south_migrations/0001_initial.py similarity index 99% rename from mayan/apps/checkouts/migrations/0001_initial.py rename to mayan/apps/checkouts/south_migrations/0001_initial.py index 693bffd8e3..16732c017e 100644 --- a/mayan/apps/checkouts/migrations/0001_initial.py +++ b/mayan/apps/checkouts/south_migrations/0001_initial.py @@ -6,6 +6,9 @@ from django.db import models class Migration(SchemaMigration): + depends_on = ( + ('documents', '0001_initial'), + ) def forwards(self, orm): # Adding model 'DocumentCheckout' diff --git a/mayan/apps/checkouts/migrations/0002_auto__add_field_documentcheckout_user_content_type__add_field_document.py b/mayan/apps/checkouts/south_migrations/0002_auto__add_field_documentcheckout_user_content_type__add_field_document.py similarity index 100% rename from mayan/apps/checkouts/migrations/0002_auto__add_field_documentcheckout_user_content_type__add_field_document.py rename to mayan/apps/checkouts/south_migrations/0002_auto__add_field_documentcheckout_user_content_type__add_field_document.py diff --git a/mayan/apps/checkouts/south_migrations/0003_auto__chg_field_documentcheckout_checkout_datetime.py b/mayan/apps/checkouts/south_migrations/0003_auto__chg_field_documentcheckout_checkout_datetime.py new file mode 100644 index 0000000000..8e85077c73 --- /dev/null +++ b/mayan/apps/checkouts/south_migrations/0003_auto__chg_field_documentcheckout_checkout_datetime.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +from south.utils import datetime_utils as datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + + # Changing field 'DocumentCheckout.checkout_datetime' + db.alter_column(u'checkouts_documentcheckout', 'checkout_datetime', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, default=datetime.datetime(2014, 10, 18, 0, 0))) + + def backwards(self, orm): + + # Changing field 'DocumentCheckout.checkout_datetime' + db.alter_column(u'checkouts_documentcheckout', 'checkout_datetime', self.gf('django.db.models.fields.DateTimeField')(null=True)) + + models = { + u'checkouts.documentcheckout': { + 'Meta': {'object_name': 'DocumentCheckout'}, + 'block_new_version': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'checkout_datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'document': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['documents.Document']", 'unique': 'True'}), + 'expiration_datetime': ('django.db.models.fields.DateTimeField', [], {}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'user_content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']", 'null': 'True', 'blank': 'True'}), + 'user_object_id': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + u'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'}), + u'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'}) + }, + u'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', [], {'null': 'True', 'blank': 'True'}), + 'document_type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'documents'", 'null': 'True', 'to': u"orm['documents.DocumentType']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '48', 'blank': 'True'}) + }, + u'documents.documenttype': { + 'Meta': {'ordering': "['name']", 'object_name': 'DocumentType'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '32'}) + } + } + + complete_apps = ['checkouts'] diff --git a/mayan/apps/bootstrap/management/__init__.py b/mayan/apps/checkouts/south_migrations/__init__.py similarity index 100% rename from mayan/apps/bootstrap/management/__init__.py rename to mayan/apps/checkouts/south_migrations/__init__.py diff --git a/mayan/apps/checkouts/static/images/icons/basket_put.png b/mayan/apps/checkouts/static/images/icons/basket_put.png deleted file mode 100644 index 66e7fcec1a..0000000000 Binary files a/mayan/apps/checkouts/static/images/icons/basket_put.png and /dev/null differ diff --git a/mayan/apps/checkouts/static/images/icons/basket_remove.png b/mayan/apps/checkouts/static/images/icons/basket_remove.png deleted file mode 100644 index 0d8c5a36a3..0000000000 Binary files a/mayan/apps/checkouts/static/images/icons/basket_remove.png and /dev/null differ diff --git a/mayan/apps/checkouts/static/images/icons/traffic_lights_green.png b/mayan/apps/checkouts/static/images/icons/traffic_lights_green.png deleted file mode 100644 index bd53d89990..0000000000 Binary files a/mayan/apps/checkouts/static/images/icons/traffic_lights_green.png and /dev/null differ diff --git a/mayan/apps/checkouts/tasks.py b/mayan/apps/checkouts/tasks.py index d97f08f54b..a6c561267a 100644 --- a/mayan/apps/checkouts/tasks.py +++ b/mayan/apps/checkouts/tasks.py @@ -1,8 +1,9 @@ -from __future__ import absolute_import +from __future__ import unicode_literals import logging from lock_manager import Lock, LockError +from mayan.celery import app from .models import DocumentCheckout @@ -10,13 +11,14 @@ LOCK_EXPIRE = 50 logger = logging.getLogger(__name__) +@app.task(ignore_result=True) def task_check_expired_check_outs(): logger.debug('executing...') - lock_id = u'task_expired_check_outs' + lock_id = 'task_expired_check_outs' try: - logger.debug('trying to acquire lock: %s' % lock_id) + logger.debug('trying to acquire lock: %s', lock_id) lock = Lock.acquire_lock(lock_id, LOCK_EXPIRE) - logger.debug('acquired lock: %s' % lock_id) + logger.debug('acquired lock: %s', lock_id) DocumentCheckout.objects.check_in_expired_check_outs() lock.release() except LockError: diff --git a/mayan/apps/checkouts/urls.py b/mayan/apps/checkouts/urls.py index d82a26ee0a..0ac93964b7 100644 --- a/mayan/apps/checkouts/urls.py +++ b/mayan/apps/checkouts/urls.py @@ -1,8 +1,17 @@ +from __future__ import unicode_literals + from django.conf.urls import patterns, url +from .api_views import APICheckedoutDocumentListView, APICheckedoutDocumentView + urlpatterns = patterns('checkouts.views', url(r'^list/$', 'checkout_list', (), 'checkout_list'), url(r'^(?P\d+)/check/out/$', 'checkout_document', (), 'checkout_document'), url(r'^(?P\d+)/check/in/$', 'checkin_document', (), 'checkin_document'), url(r'^(?P\d+)/check/info/$', 'checkout_info', (), 'checkout_info'), ) + +api_urls = patterns('', + url(r'^documents/$', APICheckedoutDocumentListView.as_view(), name='checkout-document-list'), + url(r'^documents/(?P[0-9]+)/$', APICheckedoutDocumentView.as_view(), name='checkedout-document-view'), +) diff --git a/mayan/apps/checkouts/views.py b/mayan/apps/checkouts/views.py index 1e611e122c..1106f39ff3 100644 --- a/mayan/apps/checkouts/views.py +++ b/mayan/apps/checkouts/views.py @@ -1,10 +1,10 @@ -from __future__ import absolute_import +from __future__ import absolute_import, unicode_literals from django.contrib import messages from django.core.exceptions import PermissionDenied from django.core.urlresolvers import reverse from django.http import HttpResponseRedirect -from django.shortcuts import render_to_response, get_object_or_404 +from django.shortcuts import get_object_or_404, render_to_response from django.template import RequestContext from django.utils.translation import ugettext_lazy as _ @@ -12,30 +12,30 @@ from documents.models import Document from documents.views import document_list from acls.models import AccessEntry -from common.utils import get_object_name -from common.utils import encapsulate +from common.utils import encapsulate, get_object_name from permissions.models import Permission from .exceptions import DocumentAlreadyCheckedOut, DocumentNotCheckedOut from .forms import DocumentCheckoutForm +from .literals import STATE_LABELS from .models import DocumentCheckout -from .permissions import (PERMISSION_DOCUMENT_CHECKOUT, PERMISSION_DOCUMENT_CHECKIN, - PERMISSION_DOCUMENT_CHECKIN_OVERRIDE) -from .widgets import checkout_widget +from .permissions import ( + PERMISSION_DOCUMENT_CHECKIN, PERMISSION_DOCUMENT_CHECKIN_OVERRIDE, + PERMISSION_DOCUMENT_CHECKOUT +) def checkout_list(request): - return document_list( request, object_list=DocumentCheckout.objects.checked_out_documents(), - title=_(u'checked out documents'), + title=_('Documents checked out'), extra_context={ - 'extra_columns': [ - {'name': _(u'checkout user'), 'attribute': encapsulate(lambda document: get_object_name(document.checkout_info().user_object, display_object_type=False))}, - {'name': _(u'checkout time and date'), 'attribute': encapsulate(lambda document: document.checkout_info().checkout_datetime)}, - {'name': _(u'checkout expiration'), 'attribute': encapsulate(lambda document: document.checkout_info().expiration_datetime)}, - ], + 'extra_columns': [ + {'name': _('Checkout user'), 'attribute': encapsulate(lambda document: get_object_name(document.checkout_info().user_object, display_object_type=False))}, + {'name': _('Checkout time and date'), 'attribute': encapsulate(lambda document: document.checkout_info().checkout_datetime)}, + {'name': _('Checkout expiration'), 'attribute': encapsulate(lambda document: document.checkout_info().expiration_datetime)}, + ], } ) @@ -47,19 +47,19 @@ def checkout_info(request, document_pk): except PermissionDenied: AccessEntry.objects.check_accesses([PERMISSION_DOCUMENT_CHECKOUT, PERMISSION_DOCUMENT_CHECKIN], request.user, document) - paragraphs = [checkout_widget(document)] + paragraphs = [_('Document status: %s') % STATE_LABELS[document.checkout_state()]] if document.is_checked_out(): checkout_info = document.checkout_info() - paragraphs.append(_(u'User: %s') % get_object_name(checkout_info.user_object, display_object_type=False)) - paragraphs.append(_(u'Check out time: %s') % checkout_info.checkout_datetime) - paragraphs.append(_(u'Check out expiration: %s') % checkout_info.expiration_datetime) - paragraphs.append(_(u'New versions allowed: %s') % (_(u'yes') if not checkout_info.block_new_version else _(u'no'))) + paragraphs.append(_('User: %s') % get_object_name(checkout_info.user_object, display_object_type=False)) + paragraphs.append(_('Check out time: %s') % checkout_info.checkout_datetime) + paragraphs.append(_('Check out expiration: %s') % checkout_info.expiration_datetime) + paragraphs.append(_('New versions allowed: %s') % (_('Yes') if not checkout_info.block_new_version else _('No'))) - return render_to_response('generic_template.html', { + return render_to_response('main/generic_template.html', { 'paragraphs': paragraphs, 'object': document, - 'title': _(u'Check out details for document: %s') % document + 'title': _('Check out details for document: %s') % document }, context_instance=RequestContext(request)) @@ -72,33 +72,40 @@ def checkout_document(request, document_pk): if request.method == 'POST': form = DocumentCheckoutForm(data=request.POST, initial={'document': document}) - try: - if form.is_valid(): - try: - document_checkout = form.save(commit=False) - document_checkout.user_object = request.user - document_checkout.save() - except Exception as exception: - messages.error(request, _(u'Error trying to check out document; %s') % exception) - else: - messages.success(request, _(u'Document "%s" checked out successfully.') % document) - return HttpResponseRedirect(reverse('checkout_info', args=[document.pk])) - except DocumentAlreadyCheckedOut: - messages.error(request, _(u'Document already checked out.')) - return HttpResponseRedirect(reverse('checkout_info', args=[document.pk])) + if form.is_valid(): + try: + document_checkout = form.save(commit=False) + document_checkout.user_object = request.user + document_checkout.document = document + document_checkout.save() + except DocumentAlreadyCheckedOut: + messages.error(request, _('Document already checked out.')) + return HttpResponseRedirect(reverse('checkouts:checkout_info', args=[document.pk])) + except Exception as exception: + messages.error(request, _('Error trying to check out document; %s') % exception) + else: + messages.success(request, _('Document "%s" checked out successfully.') % document) + return HttpResponseRedirect(reverse('checkouts:checkout_info', args=[document.pk])) else: form = DocumentCheckoutForm(initial={'document': document}) - return render_to_response('generic_form.html', { + return render_to_response('main/generic_form.html', { 'form': form, 'object': document, - 'title': _(u'Check out document: %s') % document + 'title': _('Check out document: %s') % document }, context_instance=RequestContext(request)) def checkin_document(request, document_pk): document = get_object_or_404(Document, pk=document_pk) - post_action_redirect = reverse('checkout_info', args=[document.pk]) + post_action_redirect = reverse('checkouts:checkout_info', args=[document.pk]) + + previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', reverse('main:home')))) + next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', reverse('main:home')))) + + if not document.is_checked_out(): + messages.error(request, _('Document has not been checked out.')) + return HttpResponseRedirect(previous) # If the user trying to check in the document is the same as the check out # user just check for the normal permission otherwise check for the forceful @@ -114,33 +121,28 @@ def checkin_document(request, document_pk): except PermissionDenied: AccessEntry.objects.check_access(PERMISSION_DOCUMENT_CHECKIN_OVERRIDE, request.user, document) - 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': try: document.check_in(user=request.user) except DocumentNotCheckedOut: - messages.error(request, _(u'Document has not been checked out.')) + messages.error(request, _('Document has not been checked out.')) except Exception as exception: - messages.error(request, _(u'Error trying to check in document; %s') % exception) + messages.error(request, _('Error trying to check in document; %s') % exception) else: - messages.success(request, _(u'Document "%s" checked in successfully.') % document) + messages.success(request, _('Document "%s" checked in successfully.') % document) return HttpResponseRedirect(next) context = { - 'object_name': _(u'document'), 'delete_view': False, 'previous': previous, 'next': next, - 'form_icon': u'basket_remove.png', 'object': document, } if document.checkout_info().user_object != request.user: - context['title'] = _(u'You didn\'t originally checked out this document. Are you sure you wish to forcefully check in document: %s?') % document + context['title'] = _('You didn\'t originally checked out this document. Are you sure you wish to forcefully check in document: %s?') % document else: - context['title'] = _(u'Are you sure you wish to check in document: %s?') % document + context['title'] = _('Are you sure you wish to check in document: %s?') % document - return render_to_response('generic_confirm.html', context, - context_instance=RequestContext(request)) + return render_to_response('main/generic_confirm.html', context, + context_instance=RequestContext(request)) diff --git a/mayan/apps/checkouts/widgets.py b/mayan/apps/checkouts/widgets.py index 8170920068..37d14db1ad 100644 --- a/mayan/apps/checkouts/widgets.py +++ b/mayan/apps/checkouts/widgets.py @@ -1,26 +1,12 @@ -from __future__ import absolute_import +from __future__ import unicode_literals import datetime from django import forms -from django.conf import settings from django.core import validators -from django.utils.safestring import mark_safe from django.utils.timezone import now from django.utils.translation import ugettext_lazy as _ -from .literals import STATE_ICONS, STATE_LABELS - - -def checkout_widget(document): - checkout_state = document.checkout_state() - - widget = (u'' % (settings.STATIC_URL, STATE_ICONS[checkout_state])) - return _(u'Document status: %(widget)s %(text)s') % { - 'widget': mark_safe(widget), - 'text': STATE_LABELS[checkout_state] - } - class SplitDeltaWidget(forms.widgets.MultiWidget): """ @@ -28,9 +14,9 @@ class SplitDeltaWidget(forms.widgets.MultiWidget): """ def __init__(self, attrs=None): widgets = ( - forms.widgets.TextInput(attrs={'maxlength': 3, 'style': 'width: 5em;', 'placeholder': _(u'Days')}), - forms.widgets.TextInput(attrs={'maxlength': 4, 'style': 'width: 5em;', 'placeholder': _(u'Hours')}), - forms.widgets.TextInput(attrs={'maxlength': 5, 'style': 'width: 5em;', 'placeholder': _(u'Minutes')}), + forms.widgets.TextInput(attrs={'maxlength': 3, 'style': 'width: 5em;', 'placeholder': _('Days')}), + forms.widgets.TextInput(attrs={'maxlength': 4, 'style': 'width: 5em;', 'placeholder': _('Hours')}), + forms.widgets.TextInput(attrs={'maxlength': 5, 'style': 'width: 5em;', 'placeholder': _('Minutes')}), ) super(SplitDeltaWidget, self).__init__(widgets, attrs) @@ -49,8 +35,8 @@ class SplitHiddenDeltaWidget(forms.widgets.SplitDateTimeWidget): """ is_hidden = True - def __init__(self, attrs=None): - super(SplitHiddenDeltaWidget, self).__init__(attrs, date_format, time_format) + def __init__(self, *args, **kwargs): + super(SplitHiddenDeltaWidget, self).__init__(*args, **kwargs) for widget in self.widgets: widget.input_type = 'hidden' widget.is_hidden = True @@ -60,10 +46,10 @@ class SplitTimeDeltaField(forms.MultiValueField): widget = SplitDeltaWidget hidden_widget = SplitHiddenDeltaWidget default_error_messages = { - 'invalid_days': _(u'Enter a valid number of days.'), - 'invalid_hours': _(u'Enter a valid number of hours.'), - 'invalid_minutes': _(u'Enter a valid number of minutes.'), - 'invalid_timedelta': _(u'Enter a valid time difference.'), + 'invalid_days': _('Enter a valid number of days.'), + 'invalid_hours': _('Enter a valid number of hours.'), + 'invalid_minutes': _('Enter a valid number of minutes.'), + 'invalid_timedelta': _('Enter a valid time difference.'), } def __init__(self, *args, **kwargs): @@ -89,7 +75,7 @@ class SplitTimeDeltaField(forms.MultiValueField): ), ) super(SplitTimeDeltaField, self).__init__(fields, *args, **kwargs) - self.help_text = _(u'Amount of time to hold the document in the checked out state in days, hours and/or minutes.') + self.help_text = _('Amount of time to hold the document in the checked out state in days, hours and/or minutes.') self.label = _('Check out expiration date and time') def compress(self, data_list): diff --git a/mayan/apps/common/__init__.py b/mayan/apps/common/__init__.py index 01b7ad6bf7..f6d267d41a 100644 --- a/mayan/apps/common/__init__.py +++ b/mayan/apps/common/__init__.py @@ -1,31 +1,39 @@ -from __future__ import absolute_import +from __future__ import absolute_import, unicode_literals import logging import tempfile +from django.conf import settings from django.contrib.auth import models as auth_models from django.contrib.auth.models import User +from django.contrib.auth.signals import user_logged_in from django.db.models.signals import post_save from django.dispatch import receiver -from django.utils.translation import ugettext_lazy as _ from south.signals import post_migrate +from common import settings as common_settings from navigation.api import register_links, register_top_menu -from .conf import settings as common_settings -from .conf.settings import (AUTO_ADMIN_USERNAME, AUTO_ADMIN_PASSWORD, - AUTO_CREATE_ADMIN, TEMPORARY_DIRECTORY) -from .links import (link_about, link_current_user_details, - link_current_user_edit, link_license, - link_password_change) -from .models import AnonymousUserSingleton, AutoAdminSingleton +from .links import ( + link_about, link_current_user_details, link_current_user_edit, + link_current_user_locale_profile_details, + link_current_user_locale_profile_edit, link_license, link_logout, + link_password_change +) +from .models import ( + AnonymousUserSingleton, AutoAdminSingleton, UserLocaleProfile +) +from .settings import ( + AUTO_ADMIN_USERNAME, AUTO_ADMIN_PASSWORD, AUTO_CREATE_ADMIN, + TEMPORARY_DIRECTORY +) from .utils import validate_path logger = logging.getLogger(__name__) -register_links(['current_user_details', 'current_user_edit', 'password_change_view'], [link_current_user_details, link_current_user_edit, link_password_change], menu_name='secondary_menu') -register_links(['about_view', 'license_view', 'form_view'], [link_about, link_license], menu_name='secondary_menu') +register_links(['common:current_user_details', 'common:current_user_edit', 'common:current_user_locale_profile_details', 'common:current_user_locale_profile_edit', 'common:password_change_view'], [link_current_user_details, link_current_user_edit, link_current_user_locale_profile_details, link_current_user_locale_profile_edit, link_password_change, link_logout], menu_name='secondary_menu') +register_links(['common:about_view', 'common:license_view', 'registration:form_view'], [link_about, link_license], menu_name='secondary_menu') register_top_menu('about', link_about, position=-1) @@ -50,7 +58,7 @@ def create_superuser_and_anonymous_user(sender, **kwargs): try: auth_models.User.objects.get(username=AUTO_ADMIN_USERNAME) except auth_models.User.DoesNotExist: - logger.info('Creating super admin user -- login: %s, password: %s' % (AUTO_ADMIN_USERNAME, AUTO_ADMIN_PASSWORD)) + logger.info('Creating super admin user -- login: %s, password: %s', AUTO_ADMIN_USERNAME, AUTO_ADMIN_PASSWORD) assert auth_models.User.objects.create_superuser(AUTO_ADMIN_USERNAME, 'autoadmin@autoadmin.com', AUTO_ADMIN_PASSWORD) admin = auth_models.User.objects.get(username=AUTO_ADMIN_USERNAME) # Store the auto admin password properties to display the first login message @@ -60,7 +68,7 @@ def create_superuser_and_anonymous_user(sender, **kwargs): auto_admin_properties.password_hash = admin.password auto_admin_properties.save() else: - logger.info('Super admin user already exists. -- login: %s' % AUTO_ADMIN_USERNAME) + logger.info('Super admin user already exists. -- login: %s', AUTO_ADMIN_USERNAME) @receiver(post_save, dispatch_uid='auto_admin_account_passwd_change', sender=User) @@ -74,5 +82,21 @@ def auto_admin_account_passwd_change(sender, instance, **kwargs): auto_admin_properties.save() +@receiver(user_logged_in, dispatch_uid='user_locale_profile_session_config', sender=User) +def user_locale_profile_session_config(sender, request, user, **kwargs): + if hasattr(request, 'session'): + user_locale_profile, created = UserLocaleProfile.objects.get_or_create(user=user) + request.session['django_language'] = user_locale_profile.language + request.session['django_timezone'] = user_locale_profile.timezone + else: + request.set_cookie(settings.LANGUAGE_COOKIE_NAME, user_locale_profile.language) + + +@receiver(post_save, dispatch_uid='user_locale_profile_create', sender=User) +def user_locale_profile_create(sender, instance, created, **kwargs): + if created: + UserLocaleProfile.objects.create(user=instance) + + if (not validate_path(TEMPORARY_DIRECTORY)) or (not TEMPORARY_DIRECTORY): setattr(common_settings, 'TEMPORARY_DIRECTORY', tempfile.mkdtemp()) diff --git a/mayan/apps/common/admin.py b/mayan/apps/common/admin.py new file mode 100644 index 0000000000..a5ad7b9106 --- /dev/null +++ b/mayan/apps/common/admin.py @@ -0,0 +1,8 @@ +from __future__ import unicode_literals + +from django.contrib import admin + +from .models import AutoAdminSingleton, SharedUploadedFile + +admin.site.register(AutoAdminSingleton) +admin.site.register(SharedUploadedFile) diff --git a/mayan/apps/common/classes.py b/mayan/apps/common/classes.py new file mode 100644 index 0000000000..0e16788412 --- /dev/null +++ b/mayan/apps/common/classes.py @@ -0,0 +1,70 @@ +from __future__ import unicode_literals + +from django.db import models +from django.utils.translation import ugettext + + +class ModelAttribute(object): + __registry = {} + + @classmethod + def get_for(cls, model, type_names=None): + result = [] + + try: + for type_name, attributes in cls.__registry[model].iteritems(): + if not type_names or type_name in type_names: + result.extend(attributes) + + return result + except IndexError: + # We were passed a model instance, try again using the model of the + # instance + + # If we are already in the model class, exit with an error + if model.__class__ == models.base.ModelBase: + raise + + return cls.get_for[type(model)] + + @classmethod + def get_choices_for(cls, model, type_names=None): + return [(attribute.name, attribute) for attribute in cls.get_for(model, type_names)] + + @classmethod + def help_text_for(cls, model, type_names=None): + result = [] + for count, attribute in enumerate(cls.get_for(model, type_names), 1): + result.append('{}) {}'.format(count, unicode(attribute.get_display(show_name=True)))) + + return ' '.join([ugettext('Available attributes: '), ', '.join(result)]) + + def get_display(self, show_name=False): + if self.description: + return '{} - {}'.format(self.name if show_name else self.label, self.description) + else: + return unicode(self.name if show_name else self.label) + + def __unicode__(self): + return self.get_display() + + def __init__(self, model, name, label=None, description=None, type_name=None): + self.model = model + self.label = label + self.name = name + self.description = description + + for field in model._meta.fields: + if field.name == name: + self.label = field.verbose_name + self.description = field.help_text + + self.__registry.setdefault(model, {}) + + if isinstance(type_name, list): + for single_type in type_name: + self.__registry[model].setdefault(single_type, []) + self.__registry[model][single_type].append(self) + else: + self.__registry[model].setdefault(type_name, []) + self.__registry[model][type_name].append(self) diff --git a/mayan/apps/common/compressed_files.py b/mayan/apps/common/compressed_files.py index 0c06ed9d67..c1542c8194 100644 --- a/mayan/apps/common/compressed_files.py +++ b/mayan/apps/common/compressed_files.py @@ -1,3 +1,5 @@ +from __future__ import unicode_literals + import zipfile try: diff --git a/mayan/apps/common/conf/settings.py b/mayan/apps/common/conf/settings.py deleted file mode 100644 index 83d71ab889..0000000000 --- a/mayan/apps/common/conf/settings.py +++ /dev/null @@ -1,76 +0,0 @@ -"""Configuration options for the common app""" - -from django.utils.translation import ugettext_lazy as _ -from django.contrib.auth.models import User - -from smart_settings.api import register_setting - -from common.literals import PAGE_SIZE_LETTER, PAGE_ORIENTATION_PORTRAIT - -TEMPORARY_DIRECTORY = register_setting( - namespace=u'common', - module=u'common.conf.settings', - name=u'TEMPORARY_DIRECTORY', - global_name=u'COMMON_TEMPORARY_DIRECTORY', - default=u'/tmp', - description=_(u'Temporary directory used site wide to store thumbnails, previews and temporary files. If none is specified, one will be created using tempfile.mkdtemp()'), - exists=True -) - -DEFAULT_PAPER_SIZE = register_setting( - namespace=u'common', - module=u'common.conf.settings', - name=u'DEFAULT_PAPER_SIZE', - global_name=u'COMMON_DEFAULT_PAPER_SIZE', - default=PAGE_SIZE_LETTER, -) - -DEFAULT_PAGE_ORIENTATION = register_setting( - namespace=u'common', - module=u'common.conf.settings', - name=u'DEFAULT_PAGE_ORIENTATION', - global_name=u'COMMON_DEFAULT_PAGE_ORIENTATION', - default=PAGE_ORIENTATION_PORTRAIT, -) - -register_setting( - namespace=u'common', - module=u'common.conf.settings', - name=u'AUTO_CREATE_ADMIN', - global_name=u'COMMON_AUTO_CREATE_ADMIN', - default=True, -) - -register_setting( - namespace=u'common', - module=u'common.conf.settings', - name=u'AUTO_ADMIN_USERNAME', - global_name=u'COMMON_AUTO_ADMIN_USERNAME', - default=u'admin', -) - -register_setting( - namespace=u'common', - module=u'common.conf.settings', - name=u'AUTO_ADMIN_PASSWORD', - global_name=u'COMMON_AUTO_ADMIN_PASSWORD', - default=User.objects.make_random_password(), -) - -register_setting( - namespace=u'common', - module=u'common.conf.settings', - name=u'LOGIN_METHOD', - global_name=u'COMMON_LOGIN_METHOD', - default=u'username', - description=_(u'Controls the mechanism used to authenticated user. Options are: username, email'), -) - -register_setting( - namespace=u'common', - module=u'common.conf.settings', - name=u'ALLOW_ANONYMOUS_ACCESS', - global_name=u'COMMON_ALLOW_ANONYMOUS_ACCESS', - default=False, - description=_(u'Allow non authenticated users, access to all views'), -) diff --git a/mayan/apps/common/forms.py b/mayan/apps/common/forms.py index 7703714a24..84de49539e 100644 --- a/mayan/apps/common/forms.py +++ b/mayan/apps/common/forms.py @@ -1,18 +1,19 @@ -from __future__ import absolute_import +from __future__ import unicode_literals +import warnings import os from django import forms from django.conf import settings from django.contrib.auth import authenticate -from django.contrib.auth.forms import AuthenticationForm from django.contrib.auth.models import User from django.db import models from django.utils.html import escape from django.utils.translation import ugettext_lazy as _ +from .models import UserLocaleProfile from .utils import return_attrib -from .widgets import DetailSelectMultiple, PlainWidget, EmailInput +from .widgets import DetailSelectMultiple, EmailInput, PlainWidget class DetailForm(forms.ModelForm): @@ -94,7 +95,7 @@ class ChoiceForm(forms.Form): """ def __init__(self, *args, **kwargs): choices = kwargs.pop('choices', []) - label = kwargs.pop('label', _(u'Selection')) + label = kwargs.pop('label', _('Selection')) super(ChoiceForm, self).__init__(*args, **kwargs) self.fields['selection'].choices = choices self.fields['selection'].label = label @@ -107,6 +108,7 @@ class UserForm_view(DetailForm): """ Form used to display an user's public details """ + class Meta: model = User fields = ('username', 'first_name', 'last_name', 'email', 'is_staff', 'is_superuser', 'last_login', 'date_joined', 'groups') @@ -116,24 +118,37 @@ class UserForm(forms.ModelForm): """ Form used to edit an user's mininal fields by the user himself """ + class Meta: model = User fields = ('username', 'first_name', 'last_name', 'email') +class LocaleProfileForm(forms.ModelForm): + class Meta: + model = UserLocaleProfile + fields = ('language', 'timezone') + + +class LocaleProfileForm_view(DetailForm): + class Meta: + model = UserLocaleProfile + fields = ('language', 'timezone') + + class EmailAuthenticationForm(forms.Form): """ A form to use email address authentication """ - email = forms.CharField(label=_(u'Email'), max_length=254, + email = forms.CharField(label=_('Email'), max_length=254, widget=EmailInput() ) - password = forms.CharField(label=_(u'Password'), widget=forms.PasswordInput) + password = forms.CharField(label=_('Password'), widget=forms.PasswordInput) error_messages = { - 'invalid_login': _(u'Please enter a correct email and password. ' - u'Note that the password field is case-sensitive.'), - 'inactive': _(u'This account is inactive.'), + 'invalid_login': _('Please enter a correct email and password. ' + 'Note that the password field is case-sensitive.'), + 'inactive': _('This account is inactive.'), } def __init__(self, request=None, *args, **kwargs): @@ -164,8 +179,8 @@ class EmailAuthenticationForm(forms.Form): return self.cleaned_data def check_for_test_cookie(self): - warnings.warn("check_for_test_cookie is deprecated; ensure your login " - "view is CSRF-protected.", DeprecationWarning) + warnings.warn('check_for_test_cookie is deprecated; ensure your login ' + 'view is CSRF-protected.', DeprecationWarning) def get_user_id(self): if self.user_cache: @@ -178,7 +193,7 @@ class EmailAuthenticationForm(forms.Form): class FileDisplayForm(forms.Form): text = forms.CharField( - label='', # _(u'Text'), + label='', # _('Text'), widget=forms.widgets.Textarea( attrs={'cols': 40, 'rows': 20, 'readonly': 'readonly'} ) @@ -193,5 +208,5 @@ class FileDisplayForm(forms.Form): class LicenseForm(FileDisplayForm): - FILENAME = u'LICENSE' + FILENAME = 'LICENSE' DIRECTORY = [] diff --git a/mayan/apps/common/links.py b/mayan/apps/common/links.py index 94e2913e0b..8d18e23f14 100644 --- a/mayan/apps/common/links.py +++ b/mayan/apps/common/links.py @@ -1,4 +1,4 @@ -from __future__ import absolute_import +from __future__ import unicode_literals from django.utils.translation import ugettext_lazy as _ @@ -7,9 +7,14 @@ def has_usable_password(context): return context['request'].user.has_usable_password -link_password_change = {'text': _(u'change password'), 'view': 'password_change_view', 'famfam': 'computer_key', 'condition': has_usable_password} -link_current_user_details = {'text': _(u'user details'), 'view': 'current_user_details', 'famfam': 'vcard'} -link_current_user_edit = {'text': _(u'edit details'), 'view': 'current_user_edit', 'famfam': 'vcard_edit'} +link_password_change = {'text': _('Change password'), 'view': 'common:password_change_view', 'famfam': 'computer_key', 'condition': has_usable_password} +link_current_user_details = {'text': _('User details'), 'view': 'common:current_user_details', 'famfam': 'vcard'} +link_current_user_edit = {'text': _('Edit details'), 'view': 'common:current_user_edit', 'famfam': 'vcard_edit'} -link_about = {'text': _(u'about'), 'view': 'about_view', 'famfam': 'information'} -link_license = {'text': _(u'license'), 'view': 'license_view', 'famfam': 'script'} +link_about = {'text': _('About'), 'view': 'common:about_view', 'famfam': 'information'} +link_license = {'text': _('License'), 'view': 'common:license_view', 'famfam': 'script'} + +link_current_user_locale_profile_details = {'text': _('Locale profile'), 'view': 'common:current_user_locale_profile_details', 'famfam': 'world'} +link_current_user_locale_profile_edit = {'text': _('Edit locale profile'), 'view': 'common:current_user_locale_profile_edit', 'famfam': 'world_edit'} + +link_logout = {'text': _('Logout'), 'view': 'common:logout_view', 'famfam': 'door_out'} diff --git a/mayan/apps/common/literals.py b/mayan/apps/common/literals.py deleted file mode 100644 index 96a7737ceb..0000000000 --- a/mayan/apps/common/literals.py +++ /dev/null @@ -1,40 +0,0 @@ -from django.utils.translation import ugettext_lazy as _ - -PAGE_SIZE_A5 = u'a5' -PAGE_SIZE_A4 = u'a4' -PAGE_SIZE_A3 = u'a3' -PAGE_SIZE_B5 = u'b5' -PAGE_SIZE_B4 = u'b4' -PAGE_SIZE_LETTER = u'letter' -PAGE_SIZE_LEGAL = u'legal' -PAGE_SIZE_LEDGER = u'ledger' - -PAGE_SIZE_DIMENSIONS = ( - (PAGE_SIZE_A5, (u'148mm', u'210mm')), - (PAGE_SIZE_A4, (u'210mm', u'297mm')), - (PAGE_SIZE_A3, (u'297mm', u'420mm')), - (PAGE_SIZE_B5, (u'176mm', u'250mm')), - (PAGE_SIZE_B4, (u'250mm', u'353mm')), - (PAGE_SIZE_LETTER, (u'8.5in', u'11in')), - (PAGE_SIZE_LEGAL, (u'8.5in', u'14in')), - (PAGE_SIZE_LEDGER, (u'11in', u'17in')) -) - -PAGE_SIZE_CHOICES = ( - (PAGE_SIZE_A5, _(u'A5')), - (PAGE_SIZE_A4, _(u'A4')), - (PAGE_SIZE_A3, _(u'A3')), - (PAGE_SIZE_B5, _(u'B5')), - (PAGE_SIZE_B4, _(u'B4')), - (PAGE_SIZE_LETTER, _(u'Letter')), - (PAGE_SIZE_LEGAL, _(u'Legal')), - (PAGE_SIZE_LEDGER, _(u'Ledger')) -) - -PAGE_ORIENTATION_PORTRAIT = u'portrait' -PAGE_ORIENTATION_LANDSCAPE = u'landscape' - -PAGE_ORIENTATION_CHOICES = ( - (PAGE_ORIENTATION_PORTRAIT, _(u'Portrait')), - (PAGE_ORIENTATION_LANDSCAPE, _(u'Landscape')), -) diff --git a/mayan/apps/common/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/common/locale/ar/LC_MESSAGES/django.mo index ff135de2ea..72a1ddddf6 100644 Binary files a/mayan/apps/common/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/ar/LC_MESSAGES/django.po b/mayan/apps/common/locale/ar/LC_MESSAGES/django.po index 8b039beb13..56ec6f563f 100644 --- a/mayan/apps/common/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/ar/LC_MESSAGES/django.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: # Mohammed ALDOUB , 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2013-01-25 21:06+0000\n" -"Last-Translator: Mohammed ALDOUB \n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-17 07:03+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Arabic (http://www.transifex.com/projects/p/mayan-edms/" "language/ar/)\n" "Language: ar\n" @@ -20,236 +21,121 @@ msgstr "" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: forms.py:97 +#: classes.py:40 +msgid "Available attributes: " +msgstr "" + +#: forms.py:98 msgid "Selection" msgstr "الاختيار" -#: forms.py:128 +#: forms.py:143 msgid "Email" msgstr "البريد الإلكتروني" -#: forms.py:131 -#, fuzzy +#: forms.py:146 models.py:36 msgid "Password" -msgstr "كلمة السر" +msgstr "" -#: forms.py:134 -#, fuzzy +#: forms.py:149 msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." -msgstr "يرجى إدخال البريد الإلكتروني وكلمة المرور الصحيحين. " +msgstr "" -#: forms.py:136 +#: forms.py:151 msgid "This account is inactive." msgstr "هذا الحساب غير نشط." #: links.py:10 -msgid "change password" -msgstr "تغيير كلمة المرور" +msgid "Change password" +msgstr "" #: links.py:11 -msgid "user details" -msgstr "تفاصيل المستخدم" +msgid "User details" +msgstr "" #: links.py:12 -msgid "edit details" -msgstr "تحرير التفاصيل" +msgid "Edit details" +msgstr "" #: links.py:14 -msgid "about" -msgstr "حول" +msgid "About" +msgstr "" -#: links.py:15 -msgid "license" -msgstr "license" - -#: 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 "Ledger" - -#: literals.py:38 -msgid "Portrait" -msgstr "Portrait" - -#: literals.py:39 -msgid "Landscape" -msgstr "Landscape" - -#: models.py:17 -msgid "Anonymous user" -msgstr "مستخدم مجهول" - -#: models.py:20 models.py:21 -msgid "anonymous user" -msgstr "مستخدم مجهول" - -#: models.py:25 -msgid "account" -msgstr "حساب" - -#: models.py:26 -msgid "password" -msgstr "كلمة السر" - -#: models.py:27 -msgid "password hash" -msgstr "password hash" - -#: models.py:30 -msgid "auto admin properties" -msgstr "auto admin properties" - -#: utils.py:299 -msgid "function found" -msgstr "function found" - -#: views.py:39 -msgid "No action selected." -msgstr "لم يتم اختيار اجراء." - -#: views.py:43 -msgid "Must select at least one item." -msgstr "يجب اختيار غرض واحد عالأقل." - -#: views.py:91 -#, python-format -msgid "%(selection)s added successfully added to %(right_list_title)s." -msgstr "%(selection)s تم الادخال بنجاح إلى %(right_list_title)s." - -#: views.py:97 views.py:124 -#, python-format -msgid "Unable to add %(selection)s to %(right_list_title)s." -msgstr "غير قادر على ادخال %(selection)s إلى %(right_list_title)s." - -#: views.py:118 -#, python-format -msgid "%(selection)s added successfully removed from %(right_list_title)s." -msgstr "%(selection)s تمت الإزالة بنجاح من %(right_list_title)s." - -#: views.py:139 -msgid "Add" -msgstr "إضافة" - -#: views.py:150 -msgid "Remove" -msgstr "إزالة" - -#: views.py:173 -msgid "current user details" -msgstr "تفاصيل المستخدم الحالي" - -#: views.py:190 -msgid "E-mail conflict, another user has that same email." -msgstr "تضارب في البريد الإلكتروني ، لدى مستخدم آخر نفس البريد الإلكتروني." - -#: views.py:193 -msgid "Current user's details updated." -msgstr "تفاصيل المستخدم الحالي تم تحديثها." - -#: views.py:202 -msgid "edit current user details" -msgstr "تعديل تفاصيل المستخدم الحالي" - -#: views.py:233 +#: links.py:15 views.py:279 msgid "License" msgstr "License" -#: views.py:242 -msgid "Current user password change" -msgstr "تغيير كلمة السر للمستخدم الحالي" - -#: views.py:257 templates/password_change_done.html:8 -msgid "Your password has been successfully changed." -msgstr "تم تغيير كلمة المرور الخاصة بك بنجاح." - -#: views.py:303 -#, python-format -msgid "Error saving %s details." +#: links.py:17 +msgid "Locale profile" msgstr "" -#: views.py:305 -msgid "Error saving details." +#: links.py:18 +msgid "Edit locale profile" msgstr "" -#: views.py:313 -#, python-format -msgid "%s details saved successfully." +#: links.py:20 +msgid "Logout" msgstr "" -#: views.py:315 -msgid "Details saved successfully." +#: models.py:28 models.py:31 +msgid "Anonymous user" +msgstr "مستخدم مجهول" + +#: models.py:35 +msgid "Account" msgstr "" -#: views.py:327 -#, python-format -msgid "Error creating new %s." +#: models.py:37 +msgid "Password hash" msgstr "" -#: views.py:329 -msgid "Error creating object." +#: models.py:40 +msgid "Auto admin properties" msgstr "" -#: views.py:336 -#, python-format -msgid "%s created successfully." +#: models.py:44 +msgid "File" msgstr "" -#: views.py:338 -msgid "New object created successfully." +#: models.py:45 +msgid "Filename" msgstr "" -#: views.py:356 -#, python-format -msgid "Error deleting %s." +#: models.py:46 +msgid "Date time" msgstr "" -#: views.py:358 -msgid "Error deleting object." +#: models.py:49 +msgid "Shared uploaded file" msgstr "" -#: views.py:363 -#, python-format -msgid "%s deleted successfully." +#: models.py:50 +msgid "Shared uploaded files" msgstr "" -#: views.py:365 -msgid "Object deleted successfully." +#: models.py:61 +msgid "User" msgstr "" -#: widgets.py:58 -msgid "None" -msgstr "لا شيء" +#: models.py:63 +msgid "Timezone" +msgstr "" -#: conf/settings.py:16 +#: models.py:64 +msgid "Language" +msgstr "" + +#: models.py:70 +msgid "User locale profile" +msgstr "" + +#: models.py:71 +msgid "User locale profiles" +msgstr "" + +#: settings.py:14 msgid "" "Temporary directory used site wide to store thumbnails, previews and " "temporary files. If none is specified, one will be created using tempfile." @@ -259,7 +145,7 @@ msgstr "" "temporary files. If none is specified, one will be created using tempfile." "mkdtemp()" -#: conf/settings.py:66 +#: settings.py:48 msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" @@ -267,158 +153,276 @@ msgstr "" "التحكم في آلية التحقق من هوية المستخدم. الخيارات المتاحة هي: اسم المستخدم أو " "البريد الإلكتروني" -#: conf/settings.py:75 +#: settings.py:57 msgid "Allow non authenticated users, access to all views" msgstr "السماح للمستخدمين المجهولين الوصول إلى جميع صفحات العرض" -#: templates/403.html:5 templates/403.html.py:9 -msgid "Insufficient permissions" -msgstr "صلاحيات غير كافية" - -#: templates/403.html:11 -msgid "You don't have enough permissions for this operation." -msgstr "ليس لديك صلاحيات كافية لهذه العملية." - -#: templates/404.html:5 templates/404.html.py:9 -msgid "Page not found" -msgstr "لم يتم العثور على الصفحة" - -#: templates/404.html:11 -msgid "Sorry, but the requested page could not be found." -msgstr "عفواً، لا يمكن العثور على الصفحة المطلوبة." - -#: templates/calculate_form_title.html:8 -#, python-format -msgid "Details for %(object_name)s: %(object)s" -msgstr "تفاصيل ل %(object_name)s: %(object)s" - -#: templates/calculate_form_title.html:10 -#, python-format -msgid "Details for: %(object)s" -msgstr "تفاصيل عن %(object)s" - -#: templates/calculate_form_title.html:15 -#, fuzzy, python-format -msgid "Edit %(object_name)s: %(object)s" -msgstr "تفاصيل ل %(object_name)s: %(object)s" - -#: templates/calculate_form_title.html:17 -#, fuzzy, python-format -msgid "Edit: %(object)s" -msgstr "تحرير %(object_name)s:" - -#: templates/calculate_form_title.html:21 -#, python-format -msgid "Create new %(object_name)s" -msgstr "انشاء %(object_name)s جديد" - -#: templates/calculate_form_title.html:23 -msgid "Create" -msgstr "انشاء" - -#: templates/generic_assign_remove.html:5 -#, python-format -msgid "Assign %(title)s %(object)s" -msgstr "تعيين %(title)s %(object)s" - -#: templates/generic_confirm.html:5 templates/generic_confirm.html.py:19 -msgid "Confirm" -msgstr "تأكيد" - -#: templates/generic_confirm.html:17 -msgid "Confirm delete" -msgstr "تأكيد حذف" - -#: templates/generic_confirm.html:33 -msgid "form icon" -msgstr "أيقونة النموذج" - -#: templates/generic_confirm.html:41 -#, python-format -msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" -msgstr "هل أنت متأكد أنك تريد حذف %(object_name)s: %(object)s ؟" - -#: templates/generic_confirm.html:43 -#, python-format -msgid "Are you sure you wish to delete: %(object)s?" -msgstr "هل أنت متأكد أنك تريد حذف %(object)s ؟" - -#: templates/generic_confirm.html:51 -msgid "Yes" -msgstr "نعم" - -#: templates/generic_confirm.html:55 -msgid "No" -msgstr "لا" - -#: templates/generic_form_instance.html:40 -#: templates/generic_form_subtemplate.html:59 -msgid "required" -msgstr "مطلوب" - -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Save" -msgstr "حفظ" - -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Submit" -msgstr "ارسال" - -#: templates/generic_form_subtemplate.html:90 -msgid "Cancel" -msgstr "إلغاء" - -#: templates/generic_list.html:8 templates/generic_list_horizontal.html:8 -#, fuzzy, python-format -msgid "List of %(title)s" -msgstr "قائمة ل: %(stripped_title)s" - -#: templates/generic_list_horizontal_subtemplate.html:24 -#: templates/generic_list_subtemplate.html:25 -#, python-format -msgid "" -"List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " -"%(page_number)s of %(total_pages)s)" +#: settings.py:66 +msgid "A storage backend that all workers can use to share files." msgstr "" -"List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " -"%(page_number)s of %(total_pages)s)" -#: templates/generic_list_horizontal_subtemplate.html:26 -#: templates/generic_list_subtemplate.html:27 +#: utils.py:114 +msgid "Function found" +msgstr "" + +#: views.py:44 +msgid "No action selected." +msgstr "لم يتم اختيار اجراء." + +#: views.py:48 +msgid "Must select at least one item." +msgstr "يجب اختيار غرض واحد عالأقل." + +#: views.py:100 #, python-format -msgid "List of %(title)s (%(total)s)" -msgstr "قائمة ل: %(title)s (%(total)s)" +msgid "Unable to remove %(selection)s." +msgstr "" -#: templates/generic_list_subtemplate.html:73 -msgid "Identifier" -msgstr "معرف" +#: views.py:125 +#, python-format +msgid "Unable to add %(selection)s." +msgstr "" -#: templates/generic_list_subtemplate.html:147 -#, fuzzy, python-format -msgid "There are no %(title)s" -msgstr "لا توجد أي %(stripped_title)s" +#: views.py:138 +msgid "Add" +msgstr "إضافة" -#: templates/login.html:7 -msgid "Login" -msgstr "دخول" +#: views.py:149 +msgid "Remove" +msgstr "إزالة" -#: templates/password_change_done.html:5 templates/password_change_form.html:5 -#: templates/password_change_form.html:7 -msgid "Password change" -msgstr "تغيير كلمة المرور" +#: views.py:172 +msgid "Current user details" +msgstr "" + +#: views.py:187 +msgid "Current user locale profile details" +msgstr "" + +#: views.py:204 +msgid "E-mail conflict, another user has that same email." +msgstr "تضارب في البريد الإلكتروني ، لدى مستخدم آخر نفس البريد الإلكتروني." + +#: views.py:207 +msgid "Current user's details updated." +msgstr "تفاصيل المستخدم الحالي تم تحديثها." + +#: views.py:216 +msgid "Edit current user details" +msgstr "" + +#: views.py:239 +msgid "Current user's locale profile details updated." +msgstr "" + +#: views.py:248 +msgid "Edit current user locale profile details" +msgstr "" + +#: views.py:288 +msgid "Current user password change" +msgstr "تغيير كلمة السر للمستخدم الحالي" + +#: views.py:303 +msgid "Your password has been successfully changed." +msgstr "تم تغيير كلمة المرور الخاصة بك بنجاح." + +#: views.py:314 +#, python-format +msgid "Error saving %s details." +msgstr "" + +#: views.py:316 +msgid "Error saving details." +msgstr "" + +#: views.py:324 +#, python-format +msgid "%s details saved successfully." +msgstr "" + +#: views.py:326 +msgid "Details saved successfully." +msgstr "" + +#: views.py:338 +#, python-format +msgid "Error creating new %s." +msgstr "" + +#: views.py:340 +msgid "Error creating object." +msgstr "" + +#: views.py:347 +#, python-format +msgid "%s created successfully." +msgstr "" + +#: views.py:349 +msgid "New object created successfully." +msgstr "" + +#: views.py:367 +#, python-format +msgid "Error deleting %s." +msgstr "" + +#: views.py:369 +msgid "Error deleting object." +msgstr "" + +#: views.py:374 +#, python-format +msgid "%s deleted successfully." +msgstr "" + +#: views.py:376 +msgid "Object deleted successfully." +msgstr "" + +#: widgets.py:60 +msgid "None" +msgstr "لا شيء" + +#~ msgid "%(selection)s added successfully added to %(right_list_title)s." +#~ msgstr "%(selection)s added successfully added to %(right_list_title)s." + +#~ msgid "%(selection)s added successfully removed from %(right_list_title)s." +#~ msgstr "%(selection)s added successfully removed from %(right_list_title)s." + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "Letter" +#~ msgstr "Letter" + +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Ledger" +#~ msgstr "Ledger" + +#~ msgid "Portrait" +#~ msgstr "Portrait" + +#~ msgid "Landscape" +#~ msgstr "Landscape" + +#~ msgid "license" +#~ msgstr "license" + +#~ msgid "anonymous user" +#~ msgstr "anonymous user" + +#~ msgid "password" +#~ msgstr "password" + +#~ msgid "Insufficient permissions" +#~ msgstr "Insufficient permissions" + +#~ msgid "You don't have enough permissions for this operation." +#~ msgstr "You don't have enough permissions for this operation." + +#~ msgid "Page not found" +#~ msgstr "Page not found" + +#~ msgid "Sorry, but the requested page could not be found." +#~ msgstr "Sorry, but the requested page could not be found." + +#~ msgid "Details for %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Details for: %(object)s" +#~ msgstr "Details for: %(object)s" + +#~ msgid "Edit %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Edit: %(object)s" +#~ msgstr "Edit %(object_name)s:" + +#~ msgid "Create new %(object_name)s" +#~ msgstr "Create new %(object_name)s" + +#~ msgid "Create" +#~ msgstr "Create" + +#~ msgid "Assign %(title)s %(object)s" +#~ msgstr "Assign %(title)s %(object)s" + +#~ msgid "Confirm" +#~ msgstr "Confirm" + +#~ msgid "Confirm delete" +#~ msgstr "Confirm delete" + +#~ msgid "form icon" +#~ msgstr "form icon" + +#~ msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +#~ msgstr "Are you sure you wish to delete %(object_name)s: %(object)s?" + +#~ msgid "Are you sure you wish to delete: %(object)s?" +#~ msgstr "Are you sure you wish to delete: %(object)s?" + +#~ msgid "Yes" +#~ msgstr "Yes" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "required" +#~ msgstr "required" + +#~ msgid "Save" +#~ msgstr "Save" + +#~ msgid "Submit" +#~ msgstr "Submit" + +#~ msgid "Cancel" +#~ msgstr "Cancel" + +#~ msgid "List of %(title)s" +#~ msgstr "List of %(stripped_title)s" + +#~ msgid "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" +#~ msgstr "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" + +#~ msgid "List of %(title)s (%(total)s)" +#~ msgstr "List of %(title)s (%(total)s)" + +#~ msgid "Identifier" +#~ msgstr "Identifier" + +#~ msgid "There are no %(title)s" +#~ msgstr "There are no %(stripped_title)s" + +#~ msgid "Login" +#~ msgstr "Login" + +#~ msgid "Password change" +#~ msgstr "Password change" #~ msgid "lock field" -#~ msgstr "قفل الحقل" +#~ msgstr "lock field" #~ msgid "Edit" -#~ msgstr "تحرير" +#~ msgstr "Edit" diff --git a/mayan/apps/common/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/common/locale/bg/LC_MESSAGES/django.mo index 8c3221b665..398c525933 100644 Binary files a/mayan/apps/common/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/bg/LC_MESSAGES/django.po b/mayan/apps/common/locale/bg/LC_MESSAGES/django.po index fcc8c5bbd2..6bf5f79079 100644 --- a/mayan/apps/common/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/bg/LC_MESSAGES/django.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: # Pavlin Koldamov , 2012 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-12-12 06:05+0000\n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-17 07:03+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Bulgarian (http://www.transifex.com/projects/p/mayan-edms/" "language/bg/)\n" @@ -19,394 +20,403 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: forms.py:97 +#: classes.py:40 +msgid "Available attributes: " +msgstr "" + +#: forms.py:98 msgid "Selection" msgstr "" -#: forms.py:128 +#: forms.py:143 msgid "Email" msgstr "Електронна поща" -#: forms.py:131 -#, fuzzy +#: forms.py:146 models.py:36 msgid "Password" -msgstr "парола" +msgstr "" -#: forms.py:134 +#: forms.py:149 msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." msgstr "" -#: forms.py:136 +#: forms.py:151 msgid "This account is inactive." msgstr "" #: links.py:10 -msgid "change password" -msgstr "смяна на парола" +msgid "Change password" +msgstr "" #: links.py:11 -msgid "user details" -msgstr "потребителски данни" +msgid "User details" +msgstr "" #: links.py:12 -msgid "edit details" -msgstr "промяна на данни" +msgid "Edit details" +msgstr "" #: links.py:14 -msgid "about" -msgstr "относно" - -#: links.py:15 -msgid "license" -msgstr "лиценз" - -#: 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" +msgid "About" msgstr "" -#: literals.py:38 -msgid "Portrait" -msgstr "" - -#: literals.py:39 -msgid "Landscape" -msgstr "" - -#: models.py:17 -msgid "Anonymous user" -msgstr "Анонимен потребител" - -#: models.py:20 models.py:21 -msgid "anonymous user" -msgstr "анонимен потребител" - -#: models.py:25 -msgid "account" -msgstr "" - -#: models.py:26 -msgid "password" -msgstr "парола" - -#: models.py:27 -msgid "password hash" -msgstr "" - -#: models.py:30 -msgid "auto admin properties" -msgstr "" - -#: utils.py:299 -msgid "function found" -msgstr "" - -#: views.py:39 -msgid "No action selected." -msgstr "" - -#: views.py:43 -msgid "Must select at least one item." -msgstr "" - -#: views.py:91 -#, python-format -msgid "%(selection)s added successfully added to %(right_list_title)s." -msgstr "" - -#: views.py:97 views.py:124 -#, python-format -msgid "Unable to add %(selection)s to %(right_list_title)s." -msgstr "" - -#: views.py:118 -#, python-format -msgid "%(selection)s added successfully removed from %(right_list_title)s." -msgstr "" - -#: views.py:139 -msgid "Add" -msgstr "Добави" - -#: views.py:150 -msgid "Remove" -msgstr "Премахнете" - -#: views.py:173 -msgid "current user details" -msgstr "актуални данни на потребителя" - -#: views.py:190 -msgid "E-mail conflict, another user has that same email." -msgstr "" - -#: views.py:193 -msgid "Current user's details updated." -msgstr "" - -#: views.py:202 -msgid "edit current user details" -msgstr "редактиране на актуалните данни на потребителя" - -#: views.py:233 +#: links.py:15 views.py:279 msgid "License" msgstr "Лиценз" -#: views.py:242 -msgid "Current user password change" -msgstr "Промяна паролата на текущия потребител" - -#: views.py:257 templates/password_change_done.html:8 -msgid "Your password has been successfully changed." -msgstr "Вашата парола е сменена успешно." - -#: views.py:303 -#, python-format -msgid "Error saving %s details." +#: links.py:17 +msgid "Locale profile" msgstr "" -#: views.py:305 -msgid "Error saving details." +#: links.py:18 +msgid "Edit locale profile" msgstr "" -#: views.py:313 -#, python-format -msgid "%s details saved successfully." +#: links.py:20 +msgid "Logout" msgstr "" -#: views.py:315 -msgid "Details saved successfully." +#: models.py:28 models.py:31 +msgid "Anonymous user" +msgstr "Анонимен потребител" + +#: models.py:35 +msgid "Account" msgstr "" -#: views.py:327 -#, python-format -msgid "Error creating new %s." +#: models.py:37 +msgid "Password hash" msgstr "" -#: views.py:329 -msgid "Error creating object." +#: models.py:40 +msgid "Auto admin properties" msgstr "" -#: views.py:336 -#, python-format -msgid "%s created successfully." +#: models.py:44 +msgid "File" msgstr "" -#: views.py:338 -msgid "New object created successfully." +#: models.py:45 +msgid "Filename" msgstr "" -#: views.py:356 -#, python-format -msgid "Error deleting %s." +#: models.py:46 +msgid "Date time" msgstr "" -#: views.py:358 -msgid "Error deleting object." +#: models.py:49 +msgid "Shared uploaded file" msgstr "" -#: views.py:363 -#, python-format -msgid "%s deleted successfully." +#: models.py:50 +msgid "Shared uploaded files" msgstr "" -#: views.py:365 -msgid "Object deleted successfully." +#: models.py:61 +msgid "User" msgstr "" -#: widgets.py:58 -msgid "None" -msgstr "Няма" +#: models.py:63 +msgid "Timezone" +msgstr "" -#: conf/settings.py:16 +#: models.py:64 +msgid "Language" +msgstr "" + +#: models.py:70 +msgid "User locale profile" +msgstr "" + +#: models.py:71 +msgid "User locale profiles" +msgstr "" + +#: settings.py:14 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 "" -#: conf/settings.py:66 +#: settings.py:48 msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" msgstr "" -#: conf/settings.py:75 +#: settings.py:57 msgid "Allow non authenticated users, access to all views" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 -msgid "Insufficient permissions" +#: settings.py:66 +msgid "A storage backend that all workers can use to share files." msgstr "" -#: templates/403.html:11 -msgid "You don't have enough permissions for this operation." +#: utils.py:114 +msgid "Function found" msgstr "" -#: templates/404.html:5 templates/404.html.py:9 -msgid "Page not found" -msgstr "Страницата не е намерена" - -#: templates/404.html:11 -msgid "Sorry, but the requested page could not be found." +#: views.py:44 +msgid "No action selected." msgstr "" -#: templates/calculate_form_title.html:8 +#: views.py:48 +msgid "Must select at least one item." +msgstr "" + +#: views.py:100 #, python-format -msgid "Details for %(object_name)s: %(object)s" +msgid "Unable to remove %(selection)s." msgstr "" -#: templates/calculate_form_title.html:10 +#: views.py:125 #, python-format -msgid "Details for: %(object)s" +msgid "Unable to add %(selection)s." msgstr "" -#: templates/calculate_form_title.html:15 +#: views.py:138 +msgid "Add" +msgstr "Добави" + +#: views.py:149 +msgid "Remove" +msgstr "Премахнете" + +#: views.py:172 +msgid "Current user details" +msgstr "" + +#: views.py:187 +msgid "Current user locale profile details" +msgstr "" + +#: views.py:204 +msgid "E-mail conflict, another user has that same email." +msgstr "" + +#: views.py:207 +msgid "Current user's details updated." +msgstr "" + +#: views.py:216 +msgid "Edit current user details" +msgstr "" + +#: views.py:239 +msgid "Current user's locale profile details updated." +msgstr "" + +#: views.py:248 +msgid "Edit current user locale profile details" +msgstr "" + +#: views.py:288 +msgid "Current user password change" +msgstr "Промяна паролата на текущия потребител" + +#: views.py:303 +msgid "Your password has been successfully changed." +msgstr "Вашата парола е сменена успешно." + +#: views.py:314 #, python-format -msgid "Edit %(object_name)s: %(object)s" +msgid "Error saving %s details." msgstr "" -#: templates/calculate_form_title.html:17 +#: views.py:316 +msgid "Error saving details." +msgstr "" + +#: views.py:324 #, python-format -msgid "Edit: %(object)s" +msgid "%s details saved successfully." msgstr "" -#: templates/calculate_form_title.html:21 +#: views.py:326 +msgid "Details saved successfully." +msgstr "" + +#: views.py:338 #, python-format -msgid "Create new %(object_name)s" +msgid "Error creating new %s." msgstr "" -#: templates/calculate_form_title.html:23 -msgid "Create" -msgstr "Създаване" +#: views.py:340 +msgid "Error creating object." +msgstr "" -#: templates/generic_assign_remove.html:5 +#: views.py:347 #, python-format -msgid "Assign %(title)s %(object)s" +msgid "%s created successfully." msgstr "" -#: templates/generic_confirm.html:5 templates/generic_confirm.html.py:19 -msgid "Confirm" -msgstr "Потвърждаване" - -#: templates/generic_confirm.html:17 -msgid "Confirm delete" -msgstr "Потвърдете изтриване" - -#: templates/generic_confirm.html:33 -msgid "form icon" +#: views.py:349 +msgid "New object created successfully." msgstr "" -#: templates/generic_confirm.html:41 +#: views.py:367 #, python-format -msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +msgid "Error deleting %s." msgstr "" -#: templates/generic_confirm.html:43 +#: views.py:369 +msgid "Error deleting object." +msgstr "" + +#: views.py:374 #, python-format -msgid "Are you sure you wish to delete: %(object)s?" +msgid "%s deleted successfully." msgstr "" -#: templates/generic_confirm.html:51 -msgid "Yes" -msgstr "Да" - -#: templates/generic_confirm.html:55 -msgid "No" -msgstr "Не" - -#: templates/generic_form_instance.html:40 -#: templates/generic_form_subtemplate.html:59 -msgid "required" +#: views.py:376 +msgid "Object deleted successfully." msgstr "" -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Save" -msgstr "Запазване" +#: widgets.py:60 +msgid "None" +msgstr "Няма" -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Submit" -msgstr "Подаване" +#~ msgid "%(selection)s added successfully added to %(right_list_title)s." +#~ msgstr "%(selection)s added successfully added to %(right_list_title)s." -#: templates/generic_form_subtemplate.html:90 -msgid "Cancel" -msgstr "Отказ" +#~ msgid "%(selection)s added successfully removed from %(right_list_title)s." +#~ msgstr "%(selection)s added successfully removed from %(right_list_title)s." -#: templates/generic_list.html:8 templates/generic_list_horizontal.html:8 -#, python-format -msgid "List of %(title)s" -msgstr "" +#~ msgid "A5" +#~ msgstr "A5" -#: templates/generic_list_horizontal_subtemplate.html:24 -#: templates/generic_list_subtemplate.html:25 -#, python-format -msgid "" -"List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " -"%(page_number)s of %(total_pages)s)" -msgstr "" +#~ msgid "A4" +#~ msgstr "A4" -#: templates/generic_list_horizontal_subtemplate.html:26 -#: templates/generic_list_subtemplate.html:27 -#, python-format -msgid "List of %(title)s (%(total)s)" -msgstr "" +#~ msgid "A3" +#~ msgstr "A3" -#: templates/generic_list_subtemplate.html:73 -msgid "Identifier" -msgstr "Идентификатор" +#~ msgid "B5" +#~ msgstr "B5" -#: templates/generic_list_subtemplate.html:147 -#, python-format -msgid "There are no %(title)s" -msgstr "" +#~ msgid "B4" +#~ msgstr "B4" -#: templates/login.html:7 -msgid "Login" -msgstr "Влез" +#~ msgid "Letter" +#~ msgstr "Letter" -#: templates/password_change_done.html:5 templates/password_change_form.html:5 -#: templates/password_change_form.html:7 -msgid "Password change" -msgstr "Промяна на паролата" +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Ledger" +#~ msgstr "Ledger" + +#~ msgid "Portrait" +#~ msgstr "Portrait" + +#~ msgid "Landscape" +#~ msgstr "Landscape" + +#~ msgid "license" +#~ msgstr "license" + +#~ msgid "anonymous user" +#~ msgstr "anonymous user" + +#~ msgid "password" +#~ msgstr "password" + +#~ msgid "Insufficient permissions" +#~ msgstr "Insufficient permissions" + +#~ msgid "You don't have enough permissions for this operation." +#~ msgstr "You don't have enough permissions for this operation." + +#~ msgid "Page not found" +#~ msgstr "Page not found" + +#~ msgid "Sorry, but the requested page could not be found." +#~ msgstr "Sorry, but the requested page could not be found." + +#~ msgid "Details for %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Details for: %(object)s" +#~ msgstr "Details for: %(object)s" + +#~ msgid "Edit %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Edit: %(object)s" +#~ msgstr "Edit %(object_name)s:" + +#~ msgid "Create new %(object_name)s" +#~ msgstr "Create new %(object_name)s" + +#~ msgid "Create" +#~ msgstr "Create" + +#~ msgid "Assign %(title)s %(object)s" +#~ msgstr "Assign %(title)s %(object)s" + +#~ msgid "Confirm" +#~ msgstr "Confirm" + +#~ msgid "Confirm delete" +#~ msgstr "Confirm delete" + +#~ msgid "form icon" +#~ msgstr "form icon" + +#~ msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +#~ msgstr "Are you sure you wish to delete %(object_name)s: %(object)s?" + +#~ msgid "Are you sure you wish to delete: %(object)s?" +#~ msgstr "Are you sure you wish to delete: %(object)s?" + +#~ msgid "Yes" +#~ msgstr "Yes" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "required" +#~ msgstr "required" + +#~ msgid "Save" +#~ msgstr "Save" + +#~ msgid "Submit" +#~ msgstr "Submit" + +#~ msgid "Cancel" +#~ msgstr "Cancel" + +#~ msgid "List of %(title)s" +#~ msgstr "List of %(stripped_title)s" + +#~ msgid "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" +#~ msgstr "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" + +#~ msgid "List of %(title)s (%(total)s)" +#~ msgstr "List of %(title)s (%(total)s)" + +#~ msgid "Identifier" +#~ msgstr "Identifier" + +#~ msgid "There are no %(title)s" +#~ msgstr "There are no %(stripped_title)s" + +#~ msgid "Login" +#~ msgstr "Login" + +#~ msgid "Password change" +#~ msgstr "Password change" + +#~ msgid "lock field" +#~ msgstr "lock field" #~ msgid "Edit" -#~ msgstr "Редактиране" +#~ msgstr "Edit" diff --git a/mayan/apps/common/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/common/locale/bs_BA/LC_MESSAGES/django.mo index 3a69b58d7c..7c2889a6e8 100644 Binary files a/mayan/apps/common/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/common/locale/bs_BA/LC_MESSAGES/django.po index 9568d2059c..cd4f36ba4c 100644 --- a/mayan/apps/common/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/bs_BA/LC_MESSAGES/django.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: # www.ping.ba , 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2013-06-28 09:58+0000\n" -"Last-Translator: www.ping.ba \n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-17 07:03+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" "projects/p/mayan-edms/language/bs_BA/)\n" "Language: bs_BA\n" @@ -20,238 +21,121 @@ msgstr "" "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" -#: forms.py:97 +#: classes.py:40 +msgid "Available attributes: " +msgstr "" + +#: forms.py:98 msgid "Selection" msgstr "Odabir" -#: forms.py:128 +#: forms.py:143 msgid "Email" msgstr "Email" -#: forms.py:131 -#, fuzzy +#: forms.py:146 models.py:36 msgid "Password" -msgstr "pasvord" +msgstr "" -#: forms.py:134 -#, fuzzy +#: forms.py:149 msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." msgstr "" -"Molim unesite ispravan email i password. Kod passworda je bitna veličina " -"slova." -#: forms.py:136 +#: forms.py:151 msgid "This account is inactive." msgstr "Ovaj account nije aktivan." #: links.py:10 -msgid "change password" -msgstr "promjeniti password" +msgid "Change password" +msgstr "" #: links.py:11 -msgid "user details" -msgstr "korisnički detalji" +msgid "User details" +msgstr "" #: links.py:12 -msgid "edit details" -msgstr "izmjeniti detalje" +msgid "Edit details" +msgstr "" #: links.py:14 -msgid "about" -msgstr "o" +msgid "About" +msgstr "" -#: links.py:15 -msgid "license" -msgstr "licenca" - -#: 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 "Pismo" - -#: literals.py:30 -msgid "Legal" -msgstr "Legalno" - -#: literals.py:31 -msgid "Ledger" -msgstr "Glavna knjiga" - -#: literals.py:38 -msgid "Portrait" -msgstr "Portret" - -#: literals.py:39 -msgid "Landscape" -msgstr "Pejzaž" - -#: models.py:17 -msgid "Anonymous user" -msgstr "Anonimni korisnik" - -#: models.py:20 models.py:21 -msgid "anonymous user" -msgstr "anonimni korisnik" - -#: models.py:25 -msgid "account" -msgstr "account" - -#: models.py:26 -msgid "password" -msgstr "pasvord" - -#: models.py:27 -msgid "password hash" -msgstr "izmješati pasvord" - -#: models.py:30 -msgid "auto admin properties" -msgstr "automatska administratorska svojstva" - -#: utils.py:299 -msgid "function found" -msgstr "pronađena funkcija" - -#: views.py:39 -msgid "No action selected." -msgstr "Nijedna akcija nije odabrana." - -#: views.py:43 -msgid "Must select at least one item." -msgstr "Mora biti izabrana barem jedna stanka." - -#: views.py:91 -#, python-format -msgid "%(selection)s added successfully added to %(right_list_title)s." -msgstr "%(selection)s dodano uspjesno na %(right_list_title)s." - -#: views.py:97 views.py:124 -#, python-format -msgid "Unable to add %(selection)s to %(right_list_title)s." -msgstr "Nemoguce dodati %(selection)s na %(right_list_title)s." - -#: views.py:118 -#, python-format -msgid "%(selection)s added successfully removed from %(right_list_title)s." -msgstr "%(selection)s dodano uspjesno i uklonjeno iz %(right_list_title)s." - -#: views.py:139 -msgid "Add" -msgstr "Dodati" - -#: views.py:150 -msgid "Remove" -msgstr "Ukloniti" - -#: views.py:173 -msgid "current user details" -msgstr "detalji trenutnog korisnika" - -#: views.py:190 -msgid "E-mail conflict, another user has that same email." -msgstr "E-mail zauzet, drugi korisnik ima istu e-mail adresu." - -#: views.py:193 -msgid "Current user's details updated." -msgstr "Detalji trenutnog korisnika ažurirani." - -#: views.py:202 -msgid "edit current user details" -msgstr "izmjeniti detalje trenutnog korisnika" - -#: views.py:233 +#: links.py:15 views.py:279 msgid "License" msgstr "Licence" -#: views.py:242 -msgid "Current user password change" -msgstr "Promjeniti trenutni pasvord" - -#: views.py:257 templates/password_change_done.html:8 -msgid "Your password has been successfully changed." -msgstr "Vaš password je uspješno promjenjen" - -#: views.py:303 -#, python-format -msgid "Error saving %s details." +#: links.py:17 +msgid "Locale profile" msgstr "" -#: views.py:305 -msgid "Error saving details." +#: links.py:18 +msgid "Edit locale profile" msgstr "" -#: views.py:313 -#, python-format -msgid "%s details saved successfully." +#: links.py:20 +msgid "Logout" msgstr "" -#: views.py:315 -msgid "Details saved successfully." +#: models.py:28 models.py:31 +msgid "Anonymous user" +msgstr "Anonimni korisnik" + +#: models.py:35 +msgid "Account" msgstr "" -#: views.py:327 -#, python-format -msgid "Error creating new %s." +#: models.py:37 +msgid "Password hash" msgstr "" -#: views.py:329 -msgid "Error creating object." +#: models.py:40 +msgid "Auto admin properties" msgstr "" -#: views.py:336 -#, python-format -msgid "%s created successfully." +#: models.py:44 +msgid "File" msgstr "" -#: views.py:338 -msgid "New object created successfully." +#: models.py:45 +msgid "Filename" msgstr "" -#: views.py:356 -#, python-format -msgid "Error deleting %s." +#: models.py:46 +msgid "Date time" msgstr "" -#: views.py:358 -msgid "Error deleting object." +#: models.py:49 +msgid "Shared uploaded file" msgstr "" -#: views.py:363 -#, python-format -msgid "%s deleted successfully." +#: models.py:50 +msgid "Shared uploaded files" msgstr "" -#: views.py:365 -msgid "Object deleted successfully." +#: models.py:61 +msgid "User" msgstr "" -#: widgets.py:58 -msgid "None" -msgstr "Nijedno" +#: models.py:63 +msgid "Timezone" +msgstr "" -#: conf/settings.py:16 +#: models.py:64 +msgid "Language" +msgstr "" + +#: models.py:70 +msgid "User locale profile" +msgstr "" + +#: models.py:71 +msgid "User locale profiles" +msgstr "" + +#: settings.py:14 msgid "" "Temporary directory used site wide to store thumbnails, previews and " "temporary files. If none is specified, one will be created using tempfile." @@ -261,165 +145,283 @@ msgstr "" "privremene datoteke. Ako ništa nije naznačeno, biće kreiran korištenjem " "tempfile.mkdtemp()" -#: conf/settings.py:66 +#: settings.py:48 msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" msgstr "" "Određuje način autentikacije korisnika. Opcije su: koricničko ime, email" -#: conf/settings.py:75 +#: settings.py:57 msgid "Allow non authenticated users, access to all views" msgstr "Dozvoliti neovlaštenim korisnicima, pristup svim pregledima" -#: templates/403.html:5 templates/403.html.py:9 -msgid "Insufficient permissions" -msgstr "Nedovoljno dozvola" - -#: templates/403.html:11 -msgid "You don't have enough permissions for this operation." -msgstr "Nemate odgovarajuca prava za ovu operaciju." - -#: templates/404.html:5 templates/404.html.py:9 -msgid "Page not found" -msgstr "Stranica nije pronađena" - -#: templates/404.html:11 -msgid "Sorry, but the requested page could not be found." -msgstr "Žao nam je, ali tražena stranica ne može biti pronađena." - -#: templates/calculate_form_title.html:8 -#, python-format -msgid "Details for %(object_name)s: %(object)s" -msgstr "Detalji o %(object_name)s: %(object)s" - -#: templates/calculate_form_title.html:10 -#, python-format -msgid "Details for: %(object)s" -msgstr "Detalji o: %(object)s" - -#: templates/calculate_form_title.html:15 -#, fuzzy, python-format -msgid "Edit %(object_name)s: %(object)s" -msgstr "Detalji o %(object_name)s: %(object)s" - -#: templates/calculate_form_title.html:17 -#, fuzzy, python-format -msgid "Edit: %(object)s" -msgstr "Urediti %(object_name)s:" - -#: templates/calculate_form_title.html:21 -#, python-format -msgid "Create new %(object_name)s" -msgstr "Kreirati novi %(object_name)s" - -#: templates/calculate_form_title.html:23 -msgid "Create" -msgstr "Kreirati" - -#: templates/generic_assign_remove.html:5 -#, python-format -msgid "Assign %(title)s %(object)s" -msgstr "Dodijeliti %(title)s %(object)s" - -#: templates/generic_confirm.html:5 templates/generic_confirm.html.py:19 -msgid "Confirm" -msgstr "Potvrditi" - -#: templates/generic_confirm.html:17 -msgid "Confirm delete" -msgstr "Potvrditi brisanje" - -#: templates/generic_confirm.html:33 -msgid "form icon" -msgstr "napraviti ikonu" - -#: templates/generic_confirm.html:41 -#, python-format -msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" -msgstr "Jeste li sigurni da želite izbrisati %(object_name)s: %(object)s?" - -#: templates/generic_confirm.html:43 -#, python-format -msgid "Are you sure you wish to delete: %(object)s?" -msgstr "Jeste li sigurni da želite izbrisati: %(object)s?" - -#: templates/generic_confirm.html:51 -msgid "Yes" -msgstr "Da" - -#: templates/generic_confirm.html:55 -msgid "No" -msgstr "Ne" - -#: templates/generic_form_instance.html:40 -#: templates/generic_form_subtemplate.html:59 -msgid "required" -msgstr "potrebno" - -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Save" -msgstr "Sačuvati" - -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Submit" -msgstr "Podnijeti" - -#: templates/generic_form_subtemplate.html:90 -msgid "Cancel" -msgstr "Otkazati" - -#: templates/generic_list.html:8 templates/generic_list_horizontal.html:8 -#, fuzzy, python-format -msgid "List of %(title)s" -msgstr "Lista %(stripped_title)s" - -#: templates/generic_list_horizontal_subtemplate.html:24 -#: templates/generic_list_subtemplate.html:25 -#, python-format -msgid "" -"List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " -"%(page_number)s of %(total_pages)s)" +#: settings.py:66 +msgid "A storage backend that all workers can use to share files." msgstr "" -"Lista %(title)s (%(start)s - %(end)s bez %(total)s) (Stranica " -"%(page_number)s od %(total_pages)s)" -#: templates/generic_list_horizontal_subtemplate.html:26 -#: templates/generic_list_subtemplate.html:27 +#: utils.py:114 +msgid "Function found" +msgstr "" + +#: views.py:44 +msgid "No action selected." +msgstr "Nijedna akcija nije odabrana." + +#: views.py:48 +msgid "Must select at least one item." +msgstr "Mora biti izabrana barem jedna stanka." + +#: views.py:100 #, python-format -msgid "List of %(title)s (%(total)s)" -msgstr "Lista %(title)s (%(total)s)" +msgid "Unable to remove %(selection)s." +msgstr "" -#: templates/generic_list_subtemplate.html:73 -msgid "Identifier" -msgstr "Identifikator" +#: views.py:125 +#, python-format +msgid "Unable to add %(selection)s." +msgstr "" -#: templates/generic_list_subtemplate.html:147 -#, fuzzy, python-format -msgid "There are no %(title)s" -msgstr "Ne postoje %(stripped_title)s" +#: views.py:138 +msgid "Add" +msgstr "Dodati" -#: templates/login.html:7 -msgid "Login" -msgstr "Prijava" +#: views.py:149 +msgid "Remove" +msgstr "Ukloniti" -#: templates/password_change_done.html:5 templates/password_change_form.html:5 -#: templates/password_change_form.html:7 -msgid "Password change" -msgstr "Promjeniti pasvord" +#: views.py:172 +msgid "Current user details" +msgstr "" + +#: views.py:187 +msgid "Current user locale profile details" +msgstr "" + +#: views.py:204 +msgid "E-mail conflict, another user has that same email." +msgstr "E-mail zauzet, drugi korisnik ima istu e-mail adresu." + +#: views.py:207 +msgid "Current user's details updated." +msgstr "Detalji trenutnog korisnika ažurirani." + +#: views.py:216 +msgid "Edit current user details" +msgstr "" + +#: views.py:239 +msgid "Current user's locale profile details updated." +msgstr "" + +#: views.py:248 +msgid "Edit current user locale profile details" +msgstr "" + +#: views.py:288 +msgid "Current user password change" +msgstr "Promjeniti trenutni pasvord" + +#: views.py:303 +msgid "Your password has been successfully changed." +msgstr "Vaš password je uspješno promjenjen" + +#: views.py:314 +#, python-format +msgid "Error saving %s details." +msgstr "" + +#: views.py:316 +msgid "Error saving details." +msgstr "" + +#: views.py:324 +#, python-format +msgid "%s details saved successfully." +msgstr "" + +#: views.py:326 +msgid "Details saved successfully." +msgstr "" + +#: views.py:338 +#, python-format +msgid "Error creating new %s." +msgstr "" + +#: views.py:340 +msgid "Error creating object." +msgstr "" + +#: views.py:347 +#, python-format +msgid "%s created successfully." +msgstr "" + +#: views.py:349 +msgid "New object created successfully." +msgstr "" + +#: views.py:367 +#, python-format +msgid "Error deleting %s." +msgstr "" + +#: views.py:369 +msgid "Error deleting object." +msgstr "" + +#: views.py:374 +#, python-format +msgid "%s deleted successfully." +msgstr "" + +#: views.py:376 +msgid "Object deleted successfully." +msgstr "" + +#: widgets.py:60 +msgid "None" +msgstr "Nijedno" + +#~ msgid "%(selection)s added successfully added to %(right_list_title)s." +#~ msgstr "%(selection)s added successfully added to %(right_list_title)s." + +#~ msgid "%(selection)s added successfully removed from %(right_list_title)s." +#~ msgstr "%(selection)s added successfully removed from %(right_list_title)s." + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "Letter" +#~ msgstr "Letter" + +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Ledger" +#~ msgstr "Ledger" + +#~ msgid "Portrait" +#~ msgstr "Portrait" + +#~ msgid "Landscape" +#~ msgstr "Landscape" + +#~ msgid "license" +#~ msgstr "license" + +#~ msgid "anonymous user" +#~ msgstr "anonymous user" + +#~ msgid "password" +#~ msgstr "password" + +#~ msgid "Insufficient permissions" +#~ msgstr "Insufficient permissions" + +#~ msgid "You don't have enough permissions for this operation." +#~ msgstr "You don't have enough permissions for this operation." + +#~ msgid "Page not found" +#~ msgstr "Page not found" + +#~ msgid "Sorry, but the requested page could not be found." +#~ msgstr "Sorry, but the requested page could not be found." + +#~ msgid "Details for %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Details for: %(object)s" +#~ msgstr "Details for: %(object)s" + +#~ msgid "Edit %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Edit: %(object)s" +#~ msgstr "Edit %(object_name)s:" + +#~ msgid "Create new %(object_name)s" +#~ msgstr "Create new %(object_name)s" + +#~ msgid "Create" +#~ msgstr "Create" + +#~ msgid "Assign %(title)s %(object)s" +#~ msgstr "Assign %(title)s %(object)s" + +#~ msgid "Confirm" +#~ msgstr "Confirm" + +#~ msgid "Confirm delete" +#~ msgstr "Confirm delete" + +#~ msgid "form icon" +#~ msgstr "form icon" + +#~ msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +#~ msgstr "Are you sure you wish to delete %(object_name)s: %(object)s?" + +#~ msgid "Are you sure you wish to delete: %(object)s?" +#~ msgstr "Are you sure you wish to delete: %(object)s?" + +#~ msgid "Yes" +#~ msgstr "Yes" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "required" +#~ msgstr "required" + +#~ msgid "Save" +#~ msgstr "Save" + +#~ msgid "Submit" +#~ msgstr "Submit" + +#~ msgid "Cancel" +#~ msgstr "Cancel" + +#~ msgid "List of %(title)s" +#~ msgstr "List of %(stripped_title)s" + +#~ msgid "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" +#~ msgstr "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" + +#~ msgid "List of %(title)s (%(total)s)" +#~ msgstr "List of %(title)s (%(total)s)" + +#~ msgid "Identifier" +#~ msgstr "Identifier" + +#~ msgid "There are no %(title)s" +#~ msgstr "There are no %(stripped_title)s" + +#~ msgid "Login" +#~ msgstr "Login" + +#~ msgid "Password change" +#~ msgstr "Password change" #~ msgid "lock field" -#~ msgstr "zaključano polje" +#~ msgstr "lock field" #~ msgid "Edit" -#~ msgstr "Urediti" +#~ msgstr "Edit" diff --git a/mayan/apps/common/locale/da/LC_MESSAGES/django.mo b/mayan/apps/common/locale/da/LC_MESSAGES/django.mo index c005a4a766..1d21df4aaa 100644 Binary files a/mayan/apps/common/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/da/LC_MESSAGES/django.po b/mayan/apps/common/locale/da/LC_MESSAGES/django.po index b2dbe72e86..92dcac70b8 100644 --- a/mayan/apps/common/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/da/LC_MESSAGES/django.po @@ -3,12 +3,13 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-12-12 06:05+0000\n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-17 07:03+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Danish (http://www.transifex.com/projects/p/mayan-edms/" "language/da/)\n" @@ -18,390 +19,403 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: forms.py:97 +#: classes.py:40 +msgid "Available attributes: " +msgstr "" + +#: forms.py:98 msgid "Selection" msgstr "" -#: forms.py:128 +#: forms.py:143 msgid "Email" msgstr "" -#: forms.py:131 +#: forms.py:146 models.py:36 msgid "Password" msgstr "" -#: forms.py:134 +#: forms.py:149 msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." msgstr "" -#: forms.py:136 +#: forms.py:151 msgid "This account is inactive." msgstr "" #: links.py:10 -msgid "change password" +msgid "Change password" msgstr "" #: links.py:11 -msgid "user details" +msgid "User details" msgstr "" #: links.py:12 -msgid "edit details" +msgid "Edit details" msgstr "" #: links.py:14 -msgid "about" +msgid "About" msgstr "" -#: links.py:15 -msgid "license" -msgstr "" - -#: literals.py:24 -msgid "A5" -msgstr "" - -#: literals.py:25 -msgid "A4" -msgstr "" - -#: literals.py:26 -msgid "A3" -msgstr "" - -#: literals.py:27 -msgid "B5" -msgstr "" - -#: literals.py:28 -msgid "B4" -msgstr "" - -#: literals.py:29 -msgid "Letter" -msgstr "" - -#: literals.py:30 -msgid "Legal" -msgstr "" - -#: literals.py:31 -msgid "Ledger" -msgstr "" - -#: literals.py:38 -msgid "Portrait" -msgstr "" - -#: literals.py:39 -msgid "Landscape" -msgstr "" - -#: models.py:17 -msgid "Anonymous user" -msgstr "" - -#: models.py:20 models.py:21 -msgid "anonymous user" -msgstr "" - -#: models.py:25 -msgid "account" -msgstr "" - -#: models.py:26 -msgid "password" -msgstr "" - -#: models.py:27 -msgid "password hash" -msgstr "" - -#: models.py:30 -msgid "auto admin properties" -msgstr "" - -#: utils.py:299 -msgid "function found" -msgstr "" - -#: views.py:39 -msgid "No action selected." -msgstr "" - -#: views.py:43 -msgid "Must select at least one item." -msgstr "" - -#: views.py:91 -#, python-format -msgid "%(selection)s added successfully added to %(right_list_title)s." -msgstr "" - -#: views.py:97 views.py:124 -#, python-format -msgid "Unable to add %(selection)s to %(right_list_title)s." -msgstr "" - -#: views.py:118 -#, python-format -msgid "%(selection)s added successfully removed from %(right_list_title)s." -msgstr "" - -#: views.py:139 -msgid "Add" -msgstr "" - -#: views.py:150 -msgid "Remove" -msgstr "" - -#: views.py:173 -msgid "current user details" -msgstr "" - -#: views.py:190 -msgid "E-mail conflict, another user has that same email." -msgstr "" - -#: views.py:193 -msgid "Current user's details updated." -msgstr "" - -#: views.py:202 -msgid "edit current user details" -msgstr "" - -#: views.py:233 +#: links.py:15 views.py:279 msgid "License" msgstr "" -#: views.py:242 -msgid "Current user password change" +#: links.py:17 +msgid "Locale profile" msgstr "" -#: views.py:257 templates/password_change_done.html:8 -msgid "Your password has been successfully changed." +#: links.py:18 +msgid "Edit locale profile" msgstr "" -#: views.py:303 -#, python-format -msgid "Error saving %s details." +#: links.py:20 +msgid "Logout" msgstr "" -#: views.py:305 -msgid "Error saving details." +#: models.py:28 models.py:31 +msgid "Anonymous user" msgstr "" -#: views.py:313 -#, python-format -msgid "%s details saved successfully." +#: models.py:35 +msgid "Account" msgstr "" -#: views.py:315 -msgid "Details saved successfully." +#: models.py:37 +msgid "Password hash" msgstr "" -#: views.py:327 -#, python-format -msgid "Error creating new %s." +#: models.py:40 +msgid "Auto admin properties" msgstr "" -#: views.py:329 -msgid "Error creating object." +#: models.py:44 +msgid "File" msgstr "" -#: views.py:336 -#, python-format -msgid "%s created successfully." +#: models.py:45 +msgid "Filename" msgstr "" -#: views.py:338 -msgid "New object created successfully." +#: models.py:46 +msgid "Date time" msgstr "" -#: views.py:356 -#, python-format -msgid "Error deleting %s." +#: models.py:49 +msgid "Shared uploaded file" msgstr "" -#: views.py:358 -msgid "Error deleting object." +#: models.py:50 +msgid "Shared uploaded files" msgstr "" -#: views.py:363 -#, python-format -msgid "%s deleted successfully." +#: models.py:61 +msgid "User" msgstr "" -#: views.py:365 -msgid "Object deleted successfully." +#: models.py:63 +msgid "Timezone" msgstr "" -#: widgets.py:58 -msgid "None" +#: models.py:64 +msgid "Language" msgstr "" -#: conf/settings.py:16 +#: models.py:70 +msgid "User locale profile" +msgstr "" + +#: models.py:71 +msgid "User locale profiles" +msgstr "" + +#: settings.py:14 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 "" -#: conf/settings.py:66 +#: settings.py:48 msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" msgstr "" -#: conf/settings.py:75 +#: settings.py:57 msgid "Allow non authenticated users, access to all views" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 -msgid "Insufficient permissions" +#: settings.py:66 +msgid "A storage backend that all workers can use to share files." msgstr "" -#: templates/403.html:11 -msgid "You don't have enough permissions for this operation." +#: utils.py:114 +msgid "Function found" msgstr "" -#: templates/404.html:5 templates/404.html.py:9 -msgid "Page not found" +#: views.py:44 +msgid "No action selected." msgstr "" -#: templates/404.html:11 -msgid "Sorry, but the requested page could not be found." +#: views.py:48 +msgid "Must select at least one item." msgstr "" -#: templates/calculate_form_title.html:8 +#: views.py:100 #, python-format -msgid "Details for %(object_name)s: %(object)s" +msgid "Unable to remove %(selection)s." msgstr "" -#: templates/calculate_form_title.html:10 +#: views.py:125 #, python-format -msgid "Details for: %(object)s" +msgid "Unable to add %(selection)s." msgstr "" -#: templates/calculate_form_title.html:15 +#: views.py:138 +msgid "Add" +msgstr "" + +#: views.py:149 +msgid "Remove" +msgstr "" + +#: views.py:172 +msgid "Current user details" +msgstr "" + +#: views.py:187 +msgid "Current user locale profile details" +msgstr "" + +#: views.py:204 +msgid "E-mail conflict, another user has that same email." +msgstr "" + +#: views.py:207 +msgid "Current user's details updated." +msgstr "" + +#: views.py:216 +msgid "Edit current user details" +msgstr "" + +#: views.py:239 +msgid "Current user's locale profile details updated." +msgstr "" + +#: views.py:248 +msgid "Edit current user locale profile details" +msgstr "" + +#: views.py:288 +msgid "Current user password change" +msgstr "" + +#: views.py:303 +msgid "Your password has been successfully changed." +msgstr "" + +#: views.py:314 #, python-format -msgid "Edit %(object_name)s: %(object)s" +msgid "Error saving %s details." msgstr "" -#: templates/calculate_form_title.html:17 +#: views.py:316 +msgid "Error saving details." +msgstr "" + +#: views.py:324 #, python-format -msgid "Edit: %(object)s" +msgid "%s details saved successfully." msgstr "" -#: templates/calculate_form_title.html:21 +#: views.py:326 +msgid "Details saved successfully." +msgstr "" + +#: views.py:338 #, python-format -msgid "Create new %(object_name)s" +msgid "Error creating new %s." msgstr "" -#: templates/calculate_form_title.html:23 -msgid "Create" +#: views.py:340 +msgid "Error creating object." msgstr "" -#: templates/generic_assign_remove.html:5 +#: views.py:347 #, python-format -msgid "Assign %(title)s %(object)s" +msgid "%s created successfully." msgstr "" -#: templates/generic_confirm.html:5 templates/generic_confirm.html.py:19 -msgid "Confirm" +#: views.py:349 +msgid "New object created successfully." msgstr "" -#: templates/generic_confirm.html:17 -msgid "Confirm delete" -msgstr "" - -#: templates/generic_confirm.html:33 -msgid "form icon" -msgstr "" - -#: templates/generic_confirm.html:41 +#: views.py:367 #, python-format -msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +msgid "Error deleting %s." msgstr "" -#: templates/generic_confirm.html:43 +#: views.py:369 +msgid "Error deleting object." +msgstr "" + +#: views.py:374 #, python-format -msgid "Are you sure you wish to delete: %(object)s?" +msgid "%s deleted successfully." msgstr "" -#: templates/generic_confirm.html:51 -msgid "Yes" +#: views.py:376 +msgid "Object deleted successfully." msgstr "" -#: templates/generic_confirm.html:55 -msgid "No" +#: widgets.py:60 +msgid "None" msgstr "" -#: templates/generic_form_instance.html:40 -#: templates/generic_form_subtemplate.html:59 -msgid "required" -msgstr "" +#~ msgid "%(selection)s added successfully added to %(right_list_title)s." +#~ msgstr "%(selection)s added successfully added to %(right_list_title)s." -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Save" -msgstr "" +#~ msgid "%(selection)s added successfully removed from %(right_list_title)s." +#~ msgstr "%(selection)s added successfully removed from %(right_list_title)s." -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Submit" -msgstr "" +#~ msgid "A5" +#~ msgstr "A5" -#: templates/generic_form_subtemplate.html:90 -msgid "Cancel" -msgstr "" +#~ msgid "A4" +#~ msgstr "A4" -#: templates/generic_list.html:8 templates/generic_list_horizontal.html:8 -#, python-format -msgid "List of %(title)s" -msgstr "" +#~ msgid "A3" +#~ msgstr "A3" -#: templates/generic_list_horizontal_subtemplate.html:24 -#: templates/generic_list_subtemplate.html:25 -#, python-format -msgid "" -"List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " -"%(page_number)s of %(total_pages)s)" -msgstr "" +#~ msgid "B5" +#~ msgstr "B5" -#: templates/generic_list_horizontal_subtemplate.html:26 -#: templates/generic_list_subtemplate.html:27 -#, python-format -msgid "List of %(title)s (%(total)s)" -msgstr "" +#~ msgid "B4" +#~ msgstr "B4" -#: templates/generic_list_subtemplate.html:73 -msgid "Identifier" -msgstr "" +#~ msgid "Letter" +#~ msgstr "Letter" -#: templates/generic_list_subtemplate.html:147 -#, python-format -msgid "There are no %(title)s" -msgstr "" +#~ msgid "Legal" +#~ msgstr "Legal" -#: templates/login.html:7 -msgid "Login" -msgstr "" +#~ msgid "Ledger" +#~ msgstr "Ledger" -#: templates/password_change_done.html:5 templates/password_change_form.html:5 -#: templates/password_change_form.html:7 -msgid "Password change" -msgstr "" +#~ msgid "Portrait" +#~ msgstr "Portrait" + +#~ msgid "Landscape" +#~ msgstr "Landscape" + +#~ msgid "license" +#~ msgstr "license" + +#~ msgid "anonymous user" +#~ msgstr "anonymous user" + +#~ msgid "password" +#~ msgstr "password" + +#~ msgid "Insufficient permissions" +#~ msgstr "Insufficient permissions" + +#~ msgid "You don't have enough permissions for this operation." +#~ msgstr "You don't have enough permissions for this operation." + +#~ msgid "Page not found" +#~ msgstr "Page not found" + +#~ msgid "Sorry, but the requested page could not be found." +#~ msgstr "Sorry, but the requested page could not be found." + +#~ msgid "Details for %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Details for: %(object)s" +#~ msgstr "Details for: %(object)s" + +#~ msgid "Edit %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Edit: %(object)s" +#~ msgstr "Edit %(object_name)s:" + +#~ msgid "Create new %(object_name)s" +#~ msgstr "Create new %(object_name)s" + +#~ msgid "Create" +#~ msgstr "Create" + +#~ msgid "Assign %(title)s %(object)s" +#~ msgstr "Assign %(title)s %(object)s" + +#~ msgid "Confirm" +#~ msgstr "Confirm" + +#~ msgid "Confirm delete" +#~ msgstr "Confirm delete" + +#~ msgid "form icon" +#~ msgstr "form icon" + +#~ msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +#~ msgstr "Are you sure you wish to delete %(object_name)s: %(object)s?" + +#~ msgid "Are you sure you wish to delete: %(object)s?" +#~ msgstr "Are you sure you wish to delete: %(object)s?" + +#~ msgid "Yes" +#~ msgstr "Yes" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "required" +#~ msgstr "required" + +#~ msgid "Save" +#~ msgstr "Save" + +#~ msgid "Submit" +#~ msgstr "Submit" + +#~ msgid "Cancel" +#~ msgstr "Cancel" + +#~ msgid "List of %(title)s" +#~ msgstr "List of %(stripped_title)s" + +#~ msgid "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" +#~ msgstr "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" + +#~ msgid "List of %(title)s (%(total)s)" +#~ msgstr "List of %(title)s (%(total)s)" + +#~ msgid "Identifier" +#~ msgstr "Identifier" + +#~ msgid "There are no %(title)s" +#~ msgstr "There are no %(stripped_title)s" + +#~ msgid "Login" +#~ msgstr "Login" + +#~ msgid "Password change" +#~ msgstr "Password change" + +#~ msgid "lock field" +#~ msgstr "lock field" + +#~ msgid "Edit" +#~ msgstr "Edit" diff --git a/mayan/apps/common/locale/de_CH/LC_MESSAGES/django.mo b/mayan/apps/common/locale/de_CH/LC_MESSAGES/django.mo new file mode 100644 index 0000000000..679c2820a9 Binary files /dev/null and b/mayan/apps/common/locale/de_CH/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/de_CH/LC_MESSAGES/django.po b/mayan/apps/common/locale/de_CH/LC_MESSAGES/django.po new file mode 100644 index 0000000000..db1214ce4c --- /dev/null +++ b/mayan/apps/common/locale/de_CH/LC_MESSAGES/django.po @@ -0,0 +1,421 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-17 07:03+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: German (Switzerland) (http://www.transifex.com/projects/p/" +"mayan-edms/language/de_CH/)\n" +"Language: de_CH\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: classes.py:40 +msgid "Available attributes: " +msgstr "" + +#: forms.py:98 +msgid "Selection" +msgstr "" + +#: forms.py:143 +msgid "Email" +msgstr "" + +#: forms.py:146 models.py:36 +msgid "Password" +msgstr "" + +#: forms.py:149 +msgid "" +"Please enter a correct email and password. Note that the password field is " +"case-sensitive." +msgstr "" + +#: forms.py:151 +msgid "This account is inactive." +msgstr "" + +#: links.py:10 +msgid "Change password" +msgstr "" + +#: links.py:11 +msgid "User details" +msgstr "" + +#: links.py:12 +msgid "Edit details" +msgstr "" + +#: links.py:14 +msgid "About" +msgstr "" + +#: links.py:15 views.py:279 +msgid "License" +msgstr "" + +#: links.py:17 +msgid "Locale profile" +msgstr "" + +#: links.py:18 +msgid "Edit locale profile" +msgstr "" + +#: links.py:20 +msgid "Logout" +msgstr "" + +#: models.py:28 models.py:31 +msgid "Anonymous user" +msgstr "" + +#: models.py:35 +msgid "Account" +msgstr "" + +#: models.py:37 +msgid "Password hash" +msgstr "" + +#: models.py:40 +msgid "Auto admin properties" +msgstr "" + +#: models.py:44 +msgid "File" +msgstr "" + +#: models.py:45 +msgid "Filename" +msgstr "" + +#: models.py:46 +msgid "Date time" +msgstr "" + +#: models.py:49 +msgid "Shared uploaded file" +msgstr "" + +#: models.py:50 +msgid "Shared uploaded files" +msgstr "" + +#: models.py:61 +msgid "User" +msgstr "" + +#: models.py:63 +msgid "Timezone" +msgstr "" + +#: models.py:64 +msgid "Language" +msgstr "" + +#: models.py:70 +msgid "User locale profile" +msgstr "" + +#: models.py:71 +msgid "User locale profiles" +msgstr "" + +#: settings.py:14 +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 "" + +#: settings.py:48 +msgid "" +"Controls the mechanism used to authenticated user. Options are: username, " +"email" +msgstr "" + +#: settings.py:57 +msgid "Allow non authenticated users, access to all views" +msgstr "" + +#: settings.py:66 +msgid "A storage backend that all workers can use to share files." +msgstr "" + +#: utils.py:114 +msgid "Function found" +msgstr "" + +#: views.py:44 +msgid "No action selected." +msgstr "" + +#: views.py:48 +msgid "Must select at least one item." +msgstr "" + +#: views.py:100 +#, python-format +msgid "Unable to remove %(selection)s." +msgstr "" + +#: views.py:125 +#, python-format +msgid "Unable to add %(selection)s." +msgstr "" + +#: views.py:138 +msgid "Add" +msgstr "" + +#: views.py:149 +msgid "Remove" +msgstr "" + +#: views.py:172 +msgid "Current user details" +msgstr "" + +#: views.py:187 +msgid "Current user locale profile details" +msgstr "" + +#: views.py:204 +msgid "E-mail conflict, another user has that same email." +msgstr "" + +#: views.py:207 +msgid "Current user's details updated." +msgstr "" + +#: views.py:216 +msgid "Edit current user details" +msgstr "" + +#: views.py:239 +msgid "Current user's locale profile details updated." +msgstr "" + +#: views.py:248 +msgid "Edit current user locale profile details" +msgstr "" + +#: views.py:288 +msgid "Current user password change" +msgstr "" + +#: views.py:303 +msgid "Your password has been successfully changed." +msgstr "" + +#: views.py:314 +#, python-format +msgid "Error saving %s details." +msgstr "" + +#: views.py:316 +msgid "Error saving details." +msgstr "" + +#: views.py:324 +#, python-format +msgid "%s details saved successfully." +msgstr "" + +#: views.py:326 +msgid "Details saved successfully." +msgstr "" + +#: views.py:338 +#, python-format +msgid "Error creating new %s." +msgstr "" + +#: views.py:340 +msgid "Error creating object." +msgstr "" + +#: views.py:347 +#, python-format +msgid "%s created successfully." +msgstr "" + +#: views.py:349 +msgid "New object created successfully." +msgstr "" + +#: views.py:367 +#, python-format +msgid "Error deleting %s." +msgstr "" + +#: views.py:369 +msgid "Error deleting object." +msgstr "" + +#: views.py:374 +#, python-format +msgid "%s deleted successfully." +msgstr "" + +#: views.py:376 +msgid "Object deleted successfully." +msgstr "" + +#: widgets.py:60 +msgid "None" +msgstr "" + +#~ msgid "%(selection)s added successfully added to %(right_list_title)s." +#~ msgstr "%(selection)s added successfully added to %(right_list_title)s." + +#~ msgid "%(selection)s added successfully removed from %(right_list_title)s." +#~ msgstr "%(selection)s added successfully removed from %(right_list_title)s." + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "Letter" +#~ msgstr "Letter" + +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Ledger" +#~ msgstr "Ledger" + +#~ msgid "Portrait" +#~ msgstr "Portrait" + +#~ msgid "Landscape" +#~ msgstr "Landscape" + +#~ msgid "license" +#~ msgstr "license" + +#~ msgid "anonymous user" +#~ msgstr "anonymous user" + +#~ msgid "password" +#~ msgstr "password" + +#~ msgid "Insufficient permissions" +#~ msgstr "Insufficient permissions" + +#~ msgid "You don't have enough permissions for this operation." +#~ msgstr "You don't have enough permissions for this operation." + +#~ msgid "Page not found" +#~ msgstr "Page not found" + +#~ msgid "Sorry, but the requested page could not be found." +#~ msgstr "Sorry, but the requested page could not be found." + +#~ msgid "Details for %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Details for: %(object)s" +#~ msgstr "Details for: %(object)s" + +#~ msgid "Edit %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Edit: %(object)s" +#~ msgstr "Edit %(object_name)s:" + +#~ msgid "Create new %(object_name)s" +#~ msgstr "Create new %(object_name)s" + +#~ msgid "Create" +#~ msgstr "Create" + +#~ msgid "Assign %(title)s %(object)s" +#~ msgstr "Assign %(title)s %(object)s" + +#~ msgid "Confirm" +#~ msgstr "Confirm" + +#~ msgid "Confirm delete" +#~ msgstr "Confirm delete" + +#~ msgid "form icon" +#~ msgstr "form icon" + +#~ msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +#~ msgstr "Are you sure you wish to delete %(object_name)s: %(object)s?" + +#~ msgid "Are you sure you wish to delete: %(object)s?" +#~ msgstr "Are you sure you wish to delete: %(object)s?" + +#~ msgid "Yes" +#~ msgstr "Yes" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "required" +#~ msgstr "required" + +#~ msgid "Save" +#~ msgstr "Save" + +#~ msgid "Submit" +#~ msgstr "Submit" + +#~ msgid "Cancel" +#~ msgstr "Cancel" + +#~ msgid "List of %(title)s" +#~ msgstr "List of %(stripped_title)s" + +#~ msgid "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" +#~ msgstr "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" + +#~ msgid "List of %(title)s (%(total)s)" +#~ msgstr "List of %(title)s (%(total)s)" + +#~ msgid "Identifier" +#~ msgstr "Identifier" + +#~ msgid "There are no %(title)s" +#~ msgstr "There are no %(stripped_title)s" + +#~ msgid "Login" +#~ msgstr "Login" + +#~ msgid "Password change" +#~ msgstr "Password change" + +#~ msgid "lock field" +#~ msgstr "lock field" + +#~ msgid "Edit" +#~ msgstr "Edit" diff --git a/mayan/apps/common/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/common/locale/de_DE/LC_MESSAGES/django.mo index 22a675ec31..fa20c2c438 100644 Binary files a/mayan/apps/common/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/common/locale/de_DE/LC_MESSAGES/django.po index 4e12a30da7..97000db499 100644 --- a/mayan/apps/common/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/de_DE/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Stefan Lodders , 2012 @@ -13,419 +13,413 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2014-07-20 00:16+0000\n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-02-06 23:55+0000\n" "Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/projects/p/mayan-" -"edms/language/de_DE/)\n" -"Language: de_DE\n" +"Language-Team: German (Germany) (http://www.transifex.com/projects/p/mayan-edms/language/de_DE/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: forms.py:97 +#: classes.py:40 +msgid "Available attributes: " +msgstr "Verfügbare Attribute:" + +#: forms.py:98 msgid "Selection" msgstr "Auswahl" -#: forms.py:128 +#: forms.py:143 msgid "Email" msgstr "E-Mail" -#: forms.py:131 -#, fuzzy +#: forms.py:146 models.py:36 msgid "Password" msgstr "Passwort" -#: forms.py:134 -#, fuzzy +#: forms.py:149 msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." -msgstr "" -"Bitte geben Sie Ihre E-Mailadresse und ein Passwort an. Beachten Sie, dass " -"die Passwortfelder Groß- und Kleinschreibung unterscheiden." +msgstr "Bitte geben Sie Ihre E-Mailadresse und ein Passwort an. Beachten Sie, dass das Passwortfeld Groß- und Kleinschreibung unterscheidet." -#: forms.py:136 +#: forms.py:151 msgid "This account is inactive." msgstr "Dieses Konto ist inaktiv." #: links.py:10 -msgid "change password" +msgid "Change password" msgstr "Passwort ändern" #: links.py:11 -msgid "user details" +msgid "User details" msgstr "Benutzerdetails" #: links.py:12 -msgid "edit details" -msgstr "Bearbeite Details" +msgid "Edit details" +msgstr "Details bearbeiten" #: links.py:14 -msgid "about" +msgid "About" msgstr "Über" -#: links.py:15 -msgid "license" -msgstr "Lizenz" - -#: 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 "Ledger" - -#: literals.py:38 -msgid "Portrait" -msgstr "Hochformat" - -#: literals.py:39 -msgid "Landscape" -msgstr "Querformat" - -#: models.py:17 -msgid "Anonymous user" -msgstr "Anonymer Benutzer" - -#: models.py:20 models.py:21 -msgid "anonymous user" -msgstr "Anonymer Benutzer" - -#: models.py:25 -msgid "account" -msgstr "Konto" - -#: models.py:26 -msgid "password" -msgstr "Passwort" - -#: models.py:27 -msgid "password hash" -msgstr "Passworthash" - -#: models.py:30 -msgid "auto admin properties" -msgstr "Auto-Admin Eigenschaften" - -#: utils.py:299 -msgid "function found" -msgstr "Funktion gefunden" - -#: views.py:39 -msgid "No action selected." -msgstr "Keine Aktion ausgewählt." - -#: views.py:43 -msgid "Must select at least one item." -msgstr "Es muss mindestens ein Element ausgewählt werden." - -#: views.py:91 -#, python-format -msgid "%(selection)s added successfully added to %(right_list_title)s." -msgstr "%(selection)s erfolgreich hinzugefügt zu %(right_list_title)s." - -#: views.py:97 views.py:124 -#, python-format -msgid "Unable to add %(selection)s to %(right_list_title)s." -msgstr "" -"%(selection)s konnte nicht zu %(right_list_title)s hinzuzugefügt werden." - -#: views.py:118 -#, python-format -msgid "%(selection)s added successfully removed from %(right_list_title)s." -msgstr "%(selection)s erfolgreich entfernt von %(right_list_title)s." - -#: views.py:139 -msgid "Add" -msgstr "Hinzufügen" - -#: views.py:150 -msgid "Remove" -msgstr "Entfernen" - -#: views.py:173 -msgid "current user details" -msgstr "Details des aktuellen Nutzers" - -#: views.py:190 -msgid "E-mail conflict, another user has that same email." -msgstr "E-Mail-Konflikt: Diese E-Mailadresse wird bereits im System verwendet." - -#: views.py:193 -msgid "Current user's details updated." -msgstr "Details des aktuellen Benutzers aktualisiert." - -#: views.py:202 -msgid "edit current user details" -msgstr "Details des aktuellen Nutzers bearbeiten" - -#: views.py:233 +#: links.py:15 views.py:279 msgid "License" msgstr "Lizenz" -#: views.py:242 -msgid "Current user password change" -msgstr "Passwort des aktuellen Benutzers ändern" +#: links.py:17 +msgid "Locale profile" +msgstr "Lokalisierungsprofil" -#: views.py:257 templates/password_change_done.html:8 -msgid "Your password has been successfully changed." -msgstr "Das Passwort wurde erfolgreich geändert." +#: links.py:18 +msgid "Edit locale profile" +msgstr "Lokalisierungsprofil bearbeiten" -#: views.py:303 -#, python-format -msgid "Error saving %s details." -msgstr "Fehler bei der Speicherung von %s Details." +#: links.py:20 +msgid "Logout" +msgstr "Abmelden" -#: views.py:305 -msgid "Error saving details." -msgstr "Fehler bei der Speicherung von Details." +#: models.py:28 models.py:31 +msgid "Anonymous user" +msgstr "Anonymer Benutzer" -#: views.py:313 -#, python-format -msgid "%s details saved successfully." -msgstr "%s Details erfolgreich gespeichert." +#: models.py:35 +msgid "Account" +msgstr "Konto" -#: views.py:315 -msgid "Details saved successfully." -msgstr "Details erfolgreich gespeichert." +#: models.py:37 +msgid "Password hash" +msgstr "Passworthash" -#: views.py:327 -#, python-format -msgid "Error creating new %s." -msgstr "Fehler bei der Erstellung von neuem %s." +#: models.py:40 +msgid "Auto admin properties" +msgstr "Autoadmineigenschaften" -#: views.py:329 -msgid "Error creating object." -msgstr "Fehler bei der Erstellung des Objekts." +#: models.py:44 +msgid "File" +msgstr "Datei" -#: views.py:336 -#, python-format -msgid "%s created successfully." -msgstr "%s erfolgreich erstellt." +#: models.py:45 +msgid "Filename" +msgstr "Dateiname" -#: views.py:338 -msgid "New object created successfully." -msgstr "Neues Objekt erfolgreich erstellt." +#: models.py:46 +msgid "Date time" +msgstr "Zeit" -#: views.py:356 -#, python-format -msgid "Error deleting %s." -msgstr "Fehler beim Löschen von %s." +#: models.py:49 +msgid "Shared uploaded file" +msgstr "Geteilte hochgeladene Datei" -#: views.py:358 -msgid "Error deleting object." -msgstr "Fehler beim Löschen des Objekts." +#: models.py:50 +msgid "Shared uploaded files" +msgstr "Geteilte hochgeladene Dateien" -#: views.py:363 -#, python-format -msgid "%s deleted successfully." -msgstr "%s erfolgreich gelöscht." +#: models.py:61 +msgid "User" +msgstr "Benutzer" -#: views.py:365 -msgid "Object deleted successfully." -msgstr "Objekt erfolgreich gelöscht." +#: models.py:63 +msgid "Timezone" +msgstr "Zeitzone" -#: widgets.py:58 -msgid "None" -msgstr "Kein(e)" +#: models.py:64 +msgid "Language" +msgstr "Sprache" -#: conf/settings.py:16 +#: models.py:70 +msgid "User locale profile" +msgstr "Benutzerlokalisierungsprofil" + +#: models.py:71 +msgid "User locale profiles" +msgstr "Benutzerlokalisierungsprofile" + +#: settings.py:14 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 "" -"Temporäres Verzeichnis zum systemweiten Speichern von Thumbnails, Vorschau " -"und temporären Dateien. Falls keines angegeben wurde, wird es mit tempfile." -"mkdtemp() erzeugt." +"temporary files. If none is specified, one will be created using " +"tempfile.mkdtemp()" +msgstr "Temporäres Verzeichnis zum systemweiten Speichern von Thumbnails, Vorschau und temporären Dateien. Falls keines angegeben wurde, wird es mit tempfile.mkdtemp() erzeugt." -#: conf/settings.py:66 +#: settings.py:48 msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" -msgstr "" -"Authentifizierungs-Mechanismus für die Benutzer. Optionen: Benutzername, E-" -"Mailadresse" +msgstr "Authentifizierungs-Mechanismus für die Benutzer. Optionen: Benutzername, E-Mailadresse" -#: conf/settings.py:75 +#: settings.py:57 msgid "Allow non authenticated users, access to all views" msgstr "Nicht authentifizierten Benutzern Zugriff auf alle Ansichten gestatten" -#: templates/403.html:5 templates/403.html.py:9 -msgid "Insufficient permissions" -msgstr "Unzureichende Berechtigungen" +#: settings.py:66 +msgid "A storage backend that all workers can use to share files." +msgstr "Datenbackend, das alle Worker benutzen können, um Dateien zu teilen" -#: templates/403.html:11 -msgid "You don't have enough permissions for this operation." -msgstr "Sie haben unzureichende Berechtigungen für diesen Vorgang." +#: utils.py:114 +msgid "Function found" +msgstr "Funktion gefunden" -#: templates/404.html:5 templates/404.html.py:9 -msgid "Page not found" -msgstr "Seite nicht gefunden" +#: views.py:44 +msgid "No action selected." +msgstr "Keine Aktion ausgewählt." -#: templates/404.html:11 -msgid "Sorry, but the requested page could not be found." -msgstr "Die angeforderte Seite konnte nicht gefunden werden." +#: views.py:48 +msgid "Must select at least one item." +msgstr "Es muss mindestens ein Element ausgewählt werden." -#: templates/calculate_form_title.html:8 +#: views.py:100 #, python-format -msgid "Details for %(object_name)s: %(object)s" -msgstr "Details für %(object_name)s %(object)s" +msgid "Unable to remove %(selection)s." +msgstr "Konnte %(selection)s nicht entfernen" -#: templates/calculate_form_title.html:10 +#: views.py:125 #, python-format -msgid "Details for: %(object)s" -msgstr "Details für %(object)s" +msgid "Unable to add %(selection)s." +msgstr "Konnte %(selection)s nicht hinzufügen" -#: templates/calculate_form_title.html:15 +#: views.py:138 +msgid "Add" +msgstr "Hinzufügen" + +#: views.py:149 +msgid "Remove" +msgstr "Entfernen" + +#: views.py:172 +msgid "Current user details" +msgstr "Aktuelle Benutzerdetails" + +#: views.py:187 +msgid "Current user locale profile details" +msgstr "Aktuelle Benutzerlokalisierungsdetails" + +#: views.py:204 +msgid "E-mail conflict, another user has that same email." +msgstr "E-Mail-Konflikt: Diese E-Mailadresse wird bereits im System verwendet" + +#: views.py:207 +msgid "Current user's details updated." +msgstr "Details des aktuellen Benutzers aktualisiert" + +#: views.py:216 +msgid "Edit current user details" +msgstr "Aktuelle Benutzerdetails bearbeiten" + +#: views.py:239 +msgid "Current user's locale profile details updated." +msgstr "Aktuelles Benutzerlokalisierungsprofil aktualisiert" + +#: views.py:248 +msgid "Edit current user locale profile details" +msgstr "Aktuelle Benutzerlokalisierungsdetails bearbeiten" + +#: views.py:288 +msgid "Current user password change" +msgstr "Passwort des aktuellen Benutzers ändern" + +#: views.py:303 +msgid "Your password has been successfully changed." +msgstr "Das Passwort wurde erfolgreich geändert" + +#: views.py:314 #, python-format -msgid "Edit %(object_name)s: %(object)s" -msgstr "%(object_name)s bearbeiten: %(object)s" +msgid "Error saving %s details." +msgstr "Fehler bei der Speicherung von %s Details" -#: templates/calculate_form_title.html:17 +#: views.py:316 +msgid "Error saving details." +msgstr "Fehler bei der Speicherung von Details" + +#: views.py:324 #, python-format -msgid "Edit: %(object)s" -msgstr "%(object)s bearbeiten" +msgid "%s details saved successfully." +msgstr "%s Details erfolgreich gespeichert" -#: templates/calculate_form_title.html:21 +#: views.py:326 +msgid "Details saved successfully." +msgstr "Details erfolgreich gespeichert" + +#: views.py:338 #, python-format -msgid "Create new %(object_name)s" -msgstr "%(object_name)s erstellen" +msgid "Error creating new %s." +msgstr "Fehler bei der Erstellung von neuem %s" -#: templates/calculate_form_title.html:23 -msgid "Create" -msgstr "Erstellen" +#: views.py:340 +msgid "Error creating object." +msgstr "Fehler bei der Erstellung des Objekts" -#: templates/generic_assign_remove.html:5 +#: views.py:347 #, python-format -msgid "Assign %(title)s %(object)s" -msgstr "%(title)s %(object)s zuordnen" +msgid "%s created successfully." +msgstr "%s erfolgreich erstellt" -#: templates/generic_confirm.html:5 templates/generic_confirm.html.py:19 -msgid "Confirm" -msgstr "Bestätigen" +#: views.py:349 +msgid "New object created successfully." +msgstr "Neues Objekt erfolgreich erstellt" -#: templates/generic_confirm.html:17 -msgid "Confirm delete" -msgstr "Löschen bestätigen" - -#: templates/generic_confirm.html:33 -msgid "form icon" -msgstr "Formularsymbol" - -#: templates/generic_confirm.html:41 +#: views.py:367 #, python-format -msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" -msgstr "Sind Sie sicher, dass Sie %(object_name)s %(object)s löschen möchten?" +msgid "Error deleting %s." +msgstr "Fehler beim Löschen von %s" -#: templates/generic_confirm.html:43 +#: views.py:369 +msgid "Error deleting object." +msgstr "Fehler beim Löschen des Objekts" + +#: views.py:374 #, python-format -msgid "Are you sure you wish to delete: %(object)s?" -msgstr "Soll %(object)s wirklich gelöscht werden?" +msgid "%s deleted successfully." +msgstr "%s erfolgreich gelöscht" -#: templates/generic_confirm.html:51 -msgid "Yes" -msgstr "Ja" +#: views.py:376 +msgid "Object deleted successfully." +msgstr "Objekt erfolgreich gelöscht" -#: templates/generic_confirm.html:55 -msgid "No" -msgstr "Nein" +#: widgets.py:60 +msgid "None" +msgstr "Kein(e)" -#: templates/generic_form_instance.html:40 -#: templates/generic_form_subtemplate.html:59 -msgid "required" -msgstr "Erforderlich" +#~ msgid "%(selection)s added successfully added to %(right_list_title)s." +#~ msgstr "%(selection)s added successfully added to %(right_list_title)s." -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Save" -msgstr "Speichern" +#~ msgid "%(selection)s added successfully removed from %(right_list_title)s." +#~ msgstr "%(selection)s added successfully removed from %(right_list_title)s." -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Submit" -msgstr "Senden" +#~ msgid "A5" +#~ msgstr "A5" -#: templates/generic_form_subtemplate.html:90 -msgid "Cancel" -msgstr "Abbrechen" +#~ msgid "A4" +#~ msgstr "A4" -#: templates/generic_list.html:8 templates/generic_list_horizontal.html:8 -#, python-format -msgid "List of %(title)s" -msgstr "%(title)s" +#~ msgid "A3" +#~ msgstr "A3" -#: templates/generic_list_horizontal_subtemplate.html:24 -#: templates/generic_list_subtemplate.html:25 -#, python-format -msgid "" -"List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " -"%(page_number)s of %(total_pages)s)" -msgstr "" -"%(title)s (%(start)s - %(end)s von %(total)s) (Seite %(page_number)s von " -"%(total_pages)s)" +#~ msgid "B5" +#~ msgstr "B5" -#: templates/generic_list_horizontal_subtemplate.html:26 -#: templates/generic_list_subtemplate.html:27 -#, python-format -msgid "List of %(title)s (%(total)s)" -msgstr "%(title)s (%(total)s)" +#~ msgid "B4" +#~ msgstr "B4" -#: templates/generic_list_subtemplate.html:73 -msgid "Identifier" -msgstr "Bezeichner" +#~ msgid "Letter" +#~ msgstr "Letter" -#: templates/generic_list_subtemplate.html:147 -#, python-format -msgid "There are no %(title)s" -msgstr "There are no %(title)s" +#~ msgid "Legal" +#~ msgstr "Legal" -#: templates/login.html:7 -msgid "Login" -msgstr "Login" +#~ msgid "Ledger" +#~ msgstr "Ledger" -#: templates/password_change_done.html:5 templates/password_change_form.html:5 -#: templates/password_change_form.html:7 -msgid "Password change" -msgstr "Passwort ändern" +#~ msgid "Portrait" +#~ msgstr "Portrait" + +#~ msgid "Landscape" +#~ msgstr "Landscape" + +#~ msgid "license" +#~ msgstr "license" + +#~ msgid "anonymous user" +#~ msgstr "anonymous user" + +#~ msgid "password" +#~ msgstr "password" + +#~ msgid "Insufficient permissions" +#~ msgstr "Insufficient permissions" + +#~ msgid "You don't have enough permissions for this operation." +#~ msgstr "You don't have enough permissions for this operation." + +#~ msgid "Page not found" +#~ msgstr "Page not found" + +#~ msgid "Sorry, but the requested page could not be found." +#~ msgstr "Sorry, but the requested page could not be found." + +#~ msgid "Details for %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Details for: %(object)s" +#~ msgstr "Details for: %(object)s" + +#~ msgid "Edit %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Edit: %(object)s" +#~ msgstr "Edit %(object_name)s:" + +#~ msgid "Create new %(object_name)s" +#~ msgstr "Create new %(object_name)s" + +#~ msgid "Create" +#~ msgstr "Create" + +#~ msgid "Assign %(title)s %(object)s" +#~ msgstr "Assign %(title)s %(object)s" + +#~ msgid "Confirm" +#~ msgstr "Confirm" + +#~ msgid "Confirm delete" +#~ msgstr "Confirm delete" + +#~ msgid "form icon" +#~ msgstr "form icon" + +#~ msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +#~ msgstr "Are you sure you wish to delete %(object_name)s: %(object)s?" + +#~ msgid "Are you sure you wish to delete: %(object)s?" +#~ msgstr "Are you sure you wish to delete: %(object)s?" + +#~ msgid "Yes" +#~ msgstr "Yes" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "required" +#~ msgstr "required" + +#~ msgid "Save" +#~ msgstr "Save" + +#~ msgid "Submit" +#~ msgstr "Submit" + +#~ msgid "Cancel" +#~ msgstr "Cancel" + +#~ msgid "List of %(title)s" +#~ msgstr "List of %(stripped_title)s" + +#~ msgid "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" +#~ msgstr "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" + +#~ msgid "List of %(title)s (%(total)s)" +#~ msgstr "List of %(title)s (%(total)s)" + +#~ msgid "Identifier" +#~ msgstr "Identifier" + +#~ msgid "There are no %(title)s" +#~ msgstr "There are no %(stripped_title)s" + +#~ msgid "Login" +#~ msgstr "Login" + +#~ msgid "Password change" +#~ msgstr "Password change" #~ msgid "lock field" -#~ msgstr "Feld sperren" +#~ msgstr "lock field" #~ msgid "Edit" #~ msgstr "Edit" diff --git a/mayan/apps/common/locale/en/LC_MESSAGES/django.mo b/mayan/apps/common/locale/en/LC_MESSAGES/django.mo index 5e71551f8a..cb86f81435 100644 Binary files a/mayan/apps/common/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/en/LC_MESSAGES/django.po b/mayan/apps/common/locale/en/LC_MESSAGES/django.po index 3b3bc84ebc..7041d6a3d4 100644 --- a/mayan/apps/common/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" "PO-Revision-Date: 2012-12-12 06:05+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -18,20 +18,24 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: forms.py:97 +#: classes.py:40 +msgid "Available attributes: " +msgstr "" + +#: forms.py:98 msgid "Selection" msgstr "Selection" -#: forms.py:128 +#: forms.py:143 msgid "Email" msgstr "Email" -#: forms.py:131 +#: forms.py:146 models.py:36 #, fuzzy msgid "Password" msgstr "password" -#: forms.py:134 +#: forms.py:149 #, fuzzy msgid "" "Please enter a correct email and password. Note that the password field is " @@ -40,382 +44,400 @@ msgstr "" "Please enter a correct email and password. Note that the password fields is " "case-sensitive." -#: forms.py:136 +#: forms.py:151 msgid "This account is inactive." msgstr "This account is inactive." #: links.py:10 -msgid "change password" +#, fuzzy +msgid "Change password" msgstr "change password" #: links.py:11 -msgid "user details" +#, fuzzy +msgid "User details" msgstr "user details" #: links.py:12 -msgid "edit details" +#, fuzzy +msgid "Edit details" msgstr "edit details" #: links.py:14 -msgid "about" +#, fuzzy +msgid "About" msgstr "about" -#: links.py:15 -msgid "license" -msgstr "license" - -#: 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 "Ledger" - -#: literals.py:38 -msgid "Portrait" -msgstr "Portrait" - -#: literals.py:39 -msgid "Landscape" -msgstr "Landscape" - -#: models.py:17 -msgid "Anonymous user" -msgstr "Anonymous user" - -#: models.py:20 models.py:21 -msgid "anonymous user" -msgstr "anonymous user" - -#: models.py:25 -msgid "account" -msgstr "account" - -#: models.py:26 -msgid "password" -msgstr "password" - -#: models.py:27 -msgid "password hash" -msgstr "password hash" - -#: models.py:30 -msgid "auto admin properties" -msgstr "auto admin properties" - -#: utils.py:299 -msgid "function found" -msgstr "function found" - -#: views.py:39 -msgid "No action selected." -msgstr "No action selected." - -#: views.py:43 -msgid "Must select at least one item." -msgstr "Must select at least one item." - -#: views.py:91 -#, python-format -msgid "%(selection)s added successfully added to %(right_list_title)s." -msgstr "%(selection)s added successfully added to %(right_list_title)s." - -#: views.py:97 views.py:124 -#, python-format -msgid "Unable to add %(selection)s to %(right_list_title)s." -msgstr "Unable to add %(selection)s to %(right_list_title)s." - -#: views.py:118 -#, python-format -msgid "%(selection)s added successfully removed from %(right_list_title)s." -msgstr "%(selection)s added successfully removed from %(right_list_title)s." - -#: views.py:139 -msgid "Add" -msgstr "Add" - -#: views.py:150 -msgid "Remove" -msgstr "Remove" - -#: views.py:173 -msgid "current user details" -msgstr "current user details" - -#: views.py:190 -msgid "E-mail conflict, another user has that same email." -msgstr "E-mail conflict, another user has that same email." - -#: views.py:193 -msgid "Current user's details updated." -msgstr "Current user's details updated." - -#: views.py:202 -msgid "edit current user details" -msgstr "edit current user details" - -#: views.py:233 +#: links.py:15 views.py:279 msgid "License" msgstr "License" -#: views.py:242 +#: links.py:17 +msgid "Locale profile" +msgstr "" + +#: links.py:18 +msgid "Edit locale profile" +msgstr "" + +#: links.py:20 +msgid "Logout" +msgstr "" + +#: models.py:28 models.py:31 +msgid "Anonymous user" +msgstr "Anonymous user" + +#: models.py:35 +#, fuzzy +msgid "Account" +msgstr "account" + +#: models.py:37 +#, fuzzy +msgid "Password hash" +msgstr "password hash" + +#: models.py:40 +#, fuzzy +msgid "Auto admin properties" +msgstr "auto admin properties" + +#: models.py:44 +msgid "File" +msgstr "" + +#: models.py:45 +msgid "Filename" +msgstr "" + +#: models.py:46 +msgid "Date time" +msgstr "" + +#: models.py:49 +msgid "Shared uploaded file" +msgstr "" + +#: models.py:50 +msgid "Shared uploaded files" +msgstr "" + +#: models.py:61 +msgid "User" +msgstr "" + +#: models.py:63 +msgid "Timezone" +msgstr "" + +#: models.py:64 +msgid "Language" +msgstr "" + +#: models.py:70 +msgid "User locale profile" +msgstr "" + +#: models.py:71 +msgid "User locale profiles" +msgstr "" + +#: settings.py:14 +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 "" +"Temporary directory used site wide to store thumbnails, previews and " +"temporary files. If none is specified, one will be created using tempfile." +"mkdtemp()" + +#: settings.py:48 +msgid "" +"Controls the mechanism used to authenticated user. Options are: username, " +"email" +msgstr "" +"Controls the mechanism used to authenticated user. Options are: username, " +"email" + +#: settings.py:57 +msgid "Allow non authenticated users, access to all views" +msgstr "Allow non authenticated users, access to all views" + +#: settings.py:66 +msgid "A storage backend that all workers can use to share files." +msgstr "" + +#: utils.py:114 +#, fuzzy +msgid "Function found" +msgstr "function found" + +#: views.py:44 +msgid "No action selected." +msgstr "No action selected." + +#: views.py:48 +msgid "Must select at least one item." +msgstr "Must select at least one item." + +#: views.py:100 +#, fuzzy, python-format +msgid "Unable to remove %(selection)s." +msgstr "Unable to add %(selection)s to %(right_list_title)s." + +#: views.py:125 +#, fuzzy, python-format +msgid "Unable to add %(selection)s." +msgstr "Unable to add %(selection)s to %(right_list_title)s." + +#: views.py:138 +msgid "Add" +msgstr "Add" + +#: views.py:149 +msgid "Remove" +msgstr "Remove" + +#: views.py:172 +#, fuzzy +msgid "Current user details" +msgstr "current user details" + +#: views.py:187 +#, fuzzy +msgid "Current user locale profile details" +msgstr "current user details" + +#: views.py:204 +msgid "E-mail conflict, another user has that same email." +msgstr "E-mail conflict, another user has that same email." + +#: views.py:207 +msgid "Current user's details updated." +msgstr "Current user's details updated." + +#: views.py:216 +#, fuzzy +msgid "Edit current user details" +msgstr "edit current user details" + +#: views.py:239 +#, fuzzy +msgid "Current user's locale profile details updated." +msgstr "Current user's details updated." + +#: views.py:248 +#, fuzzy +msgid "Edit current user locale profile details" +msgstr "edit current user details" + +#: views.py:288 msgid "Current user password change" msgstr "Current user password change" -#: views.py:257 templates/password_change_done.html:8 +#: views.py:303 msgid "Your password has been successfully changed." msgstr "Your password has been successfully changed." -#: views.py:303 +#: views.py:314 #, python-format msgid "Error saving %s details." msgstr "" -#: views.py:305 +#: views.py:316 msgid "Error saving details." msgstr "" -#: views.py:313 +#: views.py:324 #, python-format msgid "%s details saved successfully." msgstr "" -#: views.py:315 +#: views.py:326 msgid "Details saved successfully." msgstr "" -#: views.py:327 +#: views.py:338 #, python-format msgid "Error creating new %s." msgstr "" -#: views.py:329 +#: views.py:340 msgid "Error creating object." msgstr "" -#: views.py:336 +#: views.py:347 #, python-format msgid "%s created successfully." msgstr "" -#: views.py:338 +#: views.py:349 msgid "New object created successfully." msgstr "" -#: views.py:356 +#: views.py:367 #, python-format msgid "Error deleting %s." msgstr "" -#: views.py:358 +#: views.py:369 msgid "Error deleting object." msgstr "" -#: views.py:363 +#: views.py:374 #, python-format msgid "%s deleted successfully." msgstr "" -#: views.py:365 +#: views.py:376 msgid "Object deleted successfully." msgstr "" -#: widgets.py:58 +#: widgets.py:60 msgid "None" msgstr "None" -#: conf/settings.py:16 -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 "" -"Temporary directory used site wide to store thumbnails, previews and " -"temporary files. If none is specified, one will be created using tempfile." -"mkdtemp()" +#~ msgid "%(selection)s added successfully added to %(right_list_title)s." +#~ msgstr "%(selection)s added successfully added to %(right_list_title)s." -#: conf/settings.py:66 -msgid "" -"Controls the mechanism used to authenticated user. Options are: username, " -"email" -msgstr "" -"Controls the mechanism used to authenticated user. Options are: username, " -"email" +#~ msgid "%(selection)s added successfully removed from %(right_list_title)s." +#~ msgstr "%(selection)s added successfully removed from %(right_list_title)s." -#: conf/settings.py:75 -msgid "Allow non authenticated users, access to all views" -msgstr "Allow non authenticated users, access to all views" +#~ msgid "A5" +#~ msgstr "A5" -#: templates/403.html:5 templates/403.html.py:9 -msgid "Insufficient permissions" -msgstr "Insufficient permissions" +#~ msgid "A4" +#~ msgstr "A4" -#: templates/403.html:11 -msgid "You don't have enough permissions for this operation." -msgstr "You don't have enough permissions for this operation." +#~ msgid "A3" +#~ msgstr "A3" -#: templates/404.html:5 templates/404.html.py:9 -msgid "Page not found" -msgstr "Page not found" +#~ msgid "B5" +#~ msgstr "B5" -#: templates/404.html:11 -msgid "Sorry, but the requested page could not be found." -msgstr "Sorry, but the requested page could not be found." +#~ msgid "B4" +#~ msgstr "B4" -#: templates/calculate_form_title.html:8 -#, python-format -msgid "Details for %(object_name)s: %(object)s" -msgstr "Details for %(object_name)s: %(object)s" +#~ msgid "Letter" +#~ msgstr "Letter" -#: templates/calculate_form_title.html:10 -#, python-format -msgid "Details for: %(object)s" -msgstr "Details for: %(object)s" +#~ msgid "Legal" +#~ msgstr "Legal" -#: templates/calculate_form_title.html:15 -#, fuzzy, python-format -msgid "Edit %(object_name)s: %(object)s" -msgstr "Details for %(object_name)s: %(object)s" +#~ msgid "Ledger" +#~ msgstr "Ledger" -#: templates/calculate_form_title.html:17 -#, fuzzy, python-format -msgid "Edit: %(object)s" -msgstr "Edit %(object_name)s:" +#~ msgid "Portrait" +#~ msgstr "Portrait" -#: templates/calculate_form_title.html:21 -#, python-format -msgid "Create new %(object_name)s" -msgstr "Create new %(object_name)s" +#~ msgid "Landscape" +#~ msgstr "Landscape" -#: templates/calculate_form_title.html:23 -msgid "Create" -msgstr "Create" +#~ msgid "license" +#~ msgstr "license" -#: templates/generic_assign_remove.html:5 -#, python-format -msgid "Assign %(title)s %(object)s" -msgstr "Assign %(title)s %(object)s" +#~ msgid "anonymous user" +#~ msgstr "anonymous user" -#: templates/generic_confirm.html:5 templates/generic_confirm.html.py:19 -msgid "Confirm" -msgstr "Confirm" +#~ msgid "password" +#~ msgstr "password" -#: templates/generic_confirm.html:17 -msgid "Confirm delete" -msgstr "Confirm delete" +#~ msgid "Insufficient permissions" +#~ msgstr "Insufficient permissions" -#: templates/generic_confirm.html:33 -msgid "form icon" -msgstr "form icon" +#~ msgid "You don't have enough permissions for this operation." +#~ msgstr "You don't have enough permissions for this operation." -#: templates/generic_confirm.html:41 -#, python-format -msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" -msgstr "Are you sure you wish to delete %(object_name)s: %(object)s?" +#~ msgid "Page not found" +#~ msgstr "Page not found" -#: templates/generic_confirm.html:43 -#, python-format -msgid "Are you sure you wish to delete: %(object)s?" -msgstr "Are you sure you wish to delete: %(object)s?" +#~ msgid "Sorry, but the requested page could not be found." +#~ msgstr "Sorry, but the requested page could not be found." -#: templates/generic_confirm.html:51 -msgid "Yes" -msgstr "Yes" +#~ msgid "Details for %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" -#: templates/generic_confirm.html:55 -msgid "No" -msgstr "No" +#~ msgid "Details for: %(object)s" +#~ msgstr "Details for: %(object)s" -#: templates/generic_form_instance.html:40 -#: templates/generic_form_subtemplate.html:59 -msgid "required" -msgstr "required" +#, fuzzy +#~ msgid "Edit %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Save" -msgstr "Save" +#, fuzzy +#~ msgid "Edit: %(object)s" +#~ msgstr "Edit %(object_name)s:" -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Submit" -msgstr "Submit" +#~ msgid "Create new %(object_name)s" +#~ msgstr "Create new %(object_name)s" -#: templates/generic_form_subtemplate.html:90 -msgid "Cancel" -msgstr "Cancel" +#~ msgid "Create" +#~ msgstr "Create" -#: templates/generic_list.html:8 templates/generic_list_horizontal.html:8 -#, fuzzy, python-format -msgid "List of %(title)s" -msgstr "List of %(stripped_title)s" +#~ msgid "Assign %(title)s %(object)s" +#~ msgstr "Assign %(title)s %(object)s" -#: templates/generic_list_horizontal_subtemplate.html:24 -#: templates/generic_list_subtemplate.html:25 -#, python-format -msgid "" -"List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " -"%(page_number)s of %(total_pages)s)" -msgstr "" -"List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " -"%(page_number)s of %(total_pages)s)" +#~ msgid "Confirm" +#~ msgstr "Confirm" -#: templates/generic_list_horizontal_subtemplate.html:26 -#: templates/generic_list_subtemplate.html:27 -#, python-format -msgid "List of %(title)s (%(total)s)" -msgstr "List of %(title)s (%(total)s)" +#~ msgid "Confirm delete" +#~ msgstr "Confirm delete" -#: templates/generic_list_subtemplate.html:73 -msgid "Identifier" -msgstr "Identifier" +#~ msgid "form icon" +#~ msgstr "form icon" -#: templates/generic_list_subtemplate.html:147 -#, fuzzy, python-format -msgid "There are no %(title)s" -msgstr "There are no %(stripped_title)s" +#~ msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +#~ msgstr "Are you sure you wish to delete %(object_name)s: %(object)s?" -#: templates/login.html:7 -msgid "Login" -msgstr "Login" +#~ msgid "Are you sure you wish to delete: %(object)s?" +#~ msgstr "Are you sure you wish to delete: %(object)s?" -#: templates/password_change_done.html:5 templates/password_change_form.html:5 -#: templates/password_change_form.html:7 -msgid "Password change" -msgstr "Password change" +#~ msgid "Yes" +#~ msgstr "Yes" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "required" +#~ msgstr "required" + +#~ msgid "Save" +#~ msgstr "Save" + +#~ msgid "Submit" +#~ msgstr "Submit" + +#~ msgid "Cancel" +#~ msgstr "Cancel" + +#, fuzzy +#~ msgid "List of %(title)s" +#~ msgstr "List of %(stripped_title)s" + +#~ msgid "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" +#~ msgstr "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" + +#~ msgid "List of %(title)s (%(total)s)" +#~ msgstr "List of %(title)s (%(total)s)" + +#~ msgid "Identifier" +#~ msgstr "Identifier" + +#, fuzzy +#~ msgid "There are no %(title)s" +#~ msgstr "There are no %(stripped_title)s" + +#~ msgid "Login" +#~ msgstr "Login" + +#~ msgid "Password change" +#~ msgstr "Password change" #~ msgid "lock field" #~ msgstr "lock field" diff --git a/mayan/apps/common/locale/es/LC_MESSAGES/django.mo b/mayan/apps/common/locale/es/LC_MESSAGES/django.mo index 1c2adf34d2..359b30d35a 100644 Binary files a/mayan/apps/common/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/es/LC_MESSAGES/django.po b/mayan/apps/common/locale/es/LC_MESSAGES/django.po index f7f7e85abc..cba44e3ee9 100644 --- a/mayan/apps/common/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/es/LC_MESSAGES/django.po @@ -5,14 +5,15 @@ # Translators: # Translators: # jmcainzos , 2014 -# Roberto Rosario, 2011-2012 +# Lory977 , 2015 +# Roberto Rosario, 2011-2012,2014 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2014-07-04 17:49+0000\n" -"Last-Translator: jmcainzos \n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-17 07:03+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Spanish (http://www.transifex.com/projects/p/mayan-edms/" "language/es/)\n" "Language: es\n" @@ -21,241 +22,123 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: forms.py:97 +#: classes.py:40 +msgid "Available attributes: " +msgstr "Atributos disponibles" + +#: forms.py:98 msgid "Selection" msgstr "Selección" -#: forms.py:128 +#: forms.py:143 msgid "Email" msgstr "E-mail" -#: forms.py:131 -#, fuzzy +#: forms.py:146 models.py:36 msgid "Password" -msgstr "contraseña" +msgstr "Contraseña" -#: forms.py:134 -#, fuzzy +#: forms.py:149 msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." msgstr "" -"Por favor entre la dirección de correo electrónico y la contraseña " -"correctas. Tenga en cuenta que los campos de contraseña distingue entre " -"mayúsculas y minúsculas." +"Introduzca una dirección de correo y contraseña válidos. Recuerde que la " +"contraseña es sensible a mayúsculas." -#: forms.py:136 +#: forms.py:151 msgid "This account is inactive." msgstr "Esta cuenta está inactiva." #: links.py:10 -msgid "change password" -msgstr "cambiar contraseña" +msgid "Change password" +msgstr "Cambiar contraseña" #: links.py:11 -msgid "user details" -msgstr "detalles de usuario" +msgid "User details" +msgstr "Detalles del usuario" #: links.py:12 -msgid "edit details" -msgstr "editar detalles" +msgid "Edit details" +msgstr "Editar detalles" #: links.py:14 -msgid "about" -msgstr "sobre" +msgid "About" +msgstr "Acerca de" -#: links.py:15 -msgid "license" -msgstr "licencia" - -#: 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 "Carta" - -#: literals.py:30 -msgid "Legal" -msgstr "Legal" - -#: literals.py:31 -msgid "Ledger" -msgstr "Libro mayor" - -#: literals.py:38 -msgid "Portrait" -msgstr "Retrato" - -#: literals.py:39 -msgid "Landscape" -msgstr "Apaisado" - -#: models.py:17 -msgid "Anonymous user" -msgstr "Usuario anónimo" - -#: models.py:20 models.py:21 -msgid "anonymous user" -msgstr "usuario anónimo" - -#: models.py:25 -msgid "account" -msgstr "cuenta" - -#: models.py:26 -msgid "password" -msgstr "contraseña" - -#: models.py:27 -msgid "password hash" -msgstr "huella de la contraseña" - -#: models.py:30 -msgid "auto admin properties" -msgstr "propiedades de administrador automático" - -#: utils.py:299 -msgid "function found" -msgstr "función encontrada" - -#: views.py:39 -msgid "No action selected." -msgstr "Ninguna acción seleccionada." - -#: views.py:43 -msgid "Must select at least one item." -msgstr "Debe seleccionar al menos un artículo." - -#: views.py:91 -#, python-format -msgid "%(selection)s added successfully added to %(right_list_title)s." -msgstr "Se agregó con éxito %(selection)s a %(right_list_title)s." - -#: views.py:97 views.py:124 -#, python-format -msgid "Unable to add %(selection)s to %(right_list_title)s." -msgstr "No se puede agregar %(selection)s a %(right_list_title)s." - -#: views.py:118 -#, python-format -msgid "%(selection)s added successfully removed from %(right_list_title)s." -msgstr "Se eliminó con éxito %(selection)s de %(right_list_title)s." - -#: views.py:139 -msgid "Add" -msgstr "Agregar" - -#: views.py:150 -msgid "Remove" -msgstr "Eliminar" - -#: views.py:173 -msgid "current user details" -msgstr "detalles del usuario actual" - -#: views.py:190 -msgid "E-mail conflict, another user has that same email." -msgstr "" -"Conflicto de correo electrónico, otro usuario tiene ese mismo correo " -"electrónico." - -#: views.py:193 -msgid "Current user's details updated." -msgstr "Datos del usuario actual actualizados." - -#: views.py:202 -msgid "edit current user details" -msgstr "editar detalles del usuario actual" - -#: views.py:233 +#: links.py:15 views.py:279 msgid "License" msgstr "Licencia" -#: views.py:242 -msgid "Current user password change" -msgstr "Cambio de contraseña de usuario actual" +#: links.py:17 +msgid "Locale profile" +msgstr "Localizar perfil" -#: views.py:257 templates/password_change_done.html:8 -msgid "Your password has been successfully changed." -msgstr "Su contraseña se ha modificado correctamente." +#: links.py:18 +msgid "Edit locale profile" +msgstr "Editar perfil local" -#: views.py:303 -#, python-format -msgid "Error saving %s details." -msgstr "Error al salvar los detalles %s." +#: links.py:20 +msgid "Logout" +msgstr "" -#: views.py:305 -msgid "Error saving details." -msgstr "Error al salvar los detalles." +#: models.py:28 models.py:31 +msgid "Anonymous user" +msgstr "Usuario anónimo" -#: views.py:313 -#, python-format -msgid "%s details saved successfully." -msgstr "Los detalles %s se han guardado con éxito." +#: models.py:35 +msgid "Account" +msgstr "Cuenta" -#: views.py:315 -msgid "Details saved successfully." -msgstr "Detalles guardados con éxito." +#: models.py:37 +msgid "Password hash" +msgstr "Hash de la contraseña" -#: views.py:327 -#, python-format -msgid "Error creating new %s." -msgstr "Error al crear nuevo %s." +#: models.py:40 +msgid "Auto admin properties" +msgstr "propiedades de administrador automático" -#: views.py:329 -msgid "Error creating object." -msgstr "Error al crear objeto." +#: models.py:44 +msgid "File" +msgstr "Carpeta" -#: views.py:336 -#, python-format -msgid "%s created successfully." -msgstr "%s creado con éxito." +#: models.py:45 +msgid "Filename" +msgstr "Nombre del archivo" -#: views.py:338 -msgid "New object created successfully." -msgstr "Nuevo objeto creado con éxito." +#: models.py:46 +msgid "Date time" +msgstr "Fecha y hora" -#: views.py:356 -#, python-format -msgid "Error deleting %s." -msgstr "Error al borrar %s." +#: models.py:49 +msgid "Shared uploaded file" +msgstr "Compartir archivo cargado" -#: views.py:358 -msgid "Error deleting object." -msgstr "Error al borrar objeto." +#: models.py:50 +msgid "Shared uploaded files" +msgstr "Compartir archivos cargados" -#: views.py:363 -#, python-format -msgid "%s deleted successfully." -msgstr "%s borrado con éxito." +#: models.py:61 +msgid "User" +msgstr "Usuario" -#: views.py:365 -msgid "Object deleted successfully." -msgstr "Objeto borrado con éxito." +#: models.py:63 +msgid "Timezone" +msgstr "Zona horaria" -#: widgets.py:58 -msgid "None" -msgstr "Ninguno" +#: models.py:64 +msgid "Language" +msgstr "Lenguaje" -#: conf/settings.py:16 +#: models.py:70 +msgid "User locale profile" +msgstr "Perfil de usuario local" + +#: models.py:71 +msgid "User locale profiles" +msgstr "Perfil de usuario local" + +#: settings.py:14 msgid "" "Temporary directory used site wide to store thumbnails, previews and " "temporary files. If none is specified, one will be created using tempfile." @@ -265,7 +148,7 @@ msgstr "" "y archivos temporales. Si no se especifica ninguno, se creará utilizando " "tempfile.mkdtemp()" -#: conf/settings.py:66 +#: settings.py:48 msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" @@ -273,158 +156,278 @@ msgstr "" "Controla el mecanismo utilizado para el usuario autenticado. Las opciones " "son: 'username' nombre de usuario, 'email' correo electrónico" -#: conf/settings.py:75 +#: settings.py:57 msgid "Allow non authenticated users, access to all views" msgstr "Permita a los usuarios no autenticados el acceso a todas las pantallas" -#: templates/403.html:5 templates/403.html.py:9 -msgid "Insufficient permissions" -msgstr "Permisos insuficientes" - -#: templates/403.html:11 -msgid "You don't have enough permissions for this operation." -msgstr "No tiene suficientes permisos para esta operación." - -#: templates/404.html:5 templates/404.html.py:9 -msgid "Page not found" -msgstr "Página no encontrada" - -#: templates/404.html:11 -msgid "Sorry, but the requested page could not be found." -msgstr "Lo sentimos, pero la página solicitada no pudo ser encontrada." - -#: templates/calculate_form_title.html:8 -#, python-format -msgid "Details for %(object_name)s: %(object)s" -msgstr "Detalles para %(object_name)s: %(object)s" - -#: templates/calculate_form_title.html:10 -#, python-format -msgid "Details for: %(object)s" -msgstr "Detalles para: %(object)s " - -#: templates/calculate_form_title.html:15 -#, python-format -msgid "Edit %(object_name)s: %(object)s" -msgstr "Editar %(object_name)s: %(object)s" - -#: templates/calculate_form_title.html:17 -#, python-format -msgid "Edit: %(object)s" -msgstr "Editar: %(object)s" - -#: templates/calculate_form_title.html:21 -#, python-format -msgid "Create new %(object_name)s" -msgstr "Crear nuevo %(object_name)s" - -#: templates/calculate_form_title.html:23 -msgid "Create" -msgstr "Crear" - -#: templates/generic_assign_remove.html:5 -#, python-format -msgid "Assign %(title)s %(object)s" -msgstr "Asignar %(title)s %(object)s" - -#: templates/generic_confirm.html:5 templates/generic_confirm.html.py:19 -msgid "Confirm" -msgstr "Confirmar" - -#: templates/generic_confirm.html:17 -msgid "Confirm delete" -msgstr "Confirmar eliminación" - -#: templates/generic_confirm.html:33 -msgid "form icon" -msgstr "icono del formulario" - -#: templates/generic_confirm.html:41 -#, python-format -msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" -msgstr "¿Está seguro que desea eliminar %(object_name)s: %(object)s?" - -#: templates/generic_confirm.html:43 -#, python-format -msgid "Are you sure you wish to delete: %(object)s?" -msgstr "¿Está seguro que desea eliminar: %(object)s?" - -#: templates/generic_confirm.html:51 -msgid "Yes" -msgstr "Sí" - -#: templates/generic_confirm.html:55 -msgid "No" -msgstr "No" - -#: templates/generic_form_instance.html:40 -#: templates/generic_form_subtemplate.html:59 -msgid "required" -msgstr "requerido" - -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Save" -msgstr "Guardar" - -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Submit" -msgstr "Enviar" - -#: templates/generic_form_subtemplate.html:90 -msgid "Cancel" -msgstr "Cancelar" - -#: templates/generic_list.html:8 templates/generic_list_horizontal.html:8 -#, python-format -msgid "List of %(title)s" -msgstr "Lista de %(title)s" - -#: templates/generic_list_horizontal_subtemplate.html:24 -#: templates/generic_list_subtemplate.html:25 -#, python-format -msgid "" -"List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " -"%(page_number)s of %(total_pages)s)" +#: settings.py:66 +msgid "A storage backend that all workers can use to share files." msgstr "" -"Lista de %(title)s (%(start)s - %(end)s de %(total)s) (Página " -"%(page_number)s de %(total_pages)s)" -#: templates/generic_list_horizontal_subtemplate.html:26 -#: templates/generic_list_subtemplate.html:27 +#: utils.py:114 +msgid "Function found" +msgstr "función encontrada" + +#: views.py:44 +msgid "No action selected." +msgstr "Ninguna acción seleccionada." + +#: views.py:48 +msgid "Must select at least one item." +msgstr "Debe seleccionar al menos un artículo." + +#: views.py:100 #, python-format -msgid "List of %(title)s (%(total)s)" -msgstr "Lista de %(title)s (%(total)s)" +msgid "Unable to remove %(selection)s." +msgstr "No se puede remover %(selection)s." -#: templates/generic_list_subtemplate.html:73 -msgid "Identifier" -msgstr "Identificador" - -#: templates/generic_list_subtemplate.html:147 +#: views.py:125 #, python-format -msgid "There are no %(title)s" -msgstr "No existen %(title)s" +msgid "Unable to add %(selection)s." +msgstr "No se puede agregar %(selection)s." -#: templates/login.html:7 -msgid "Login" -msgstr "Iniciar sesión" +#: views.py:138 +msgid "Add" +msgstr "Agregar" -#: templates/password_change_done.html:5 templates/password_change_form.html:5 -#: templates/password_change_form.html:7 -msgid "Password change" -msgstr "Cambio de contraseña" +#: views.py:149 +msgid "Remove" +msgstr "Eliminar" + +#: views.py:172 +msgid "Current user details" +msgstr "detalles del usuario corriente" + +#: views.py:187 +msgid "Current user locale profile details" +msgstr "" + +#: views.py:204 +msgid "E-mail conflict, another user has that same email." +msgstr "" +"Conflicto de correo electrónico, otro usuario tiene ese mismo correo " +"electrónico." + +#: views.py:207 +msgid "Current user's details updated." +msgstr "Datos del usuario actual actualizados." + +#: views.py:216 +msgid "Edit current user details" +msgstr "Editar los detalles del usuario actual" + +#: views.py:239 +msgid "Current user's locale profile details updated." +msgstr "Datos del usuario corriente actualizados." + +#: views.py:248 +msgid "Edit current user locale profile details" +msgstr "Editar los detalles del perfil del usuario local" + +#: views.py:288 +msgid "Current user password change" +msgstr "Cambio de contraseña de usuario actual" + +#: views.py:303 +msgid "Your password has been successfully changed." +msgstr "Su contraseña se ha modificado correctamente." + +#: views.py:314 +#, python-format +msgid "Error saving %s details." +msgstr "Error al salvar los detalles %s." + +#: views.py:316 +msgid "Error saving details." +msgstr "Error al salvar los detalles." + +#: views.py:324 +#, python-format +msgid "%s details saved successfully." +msgstr "Los detalles %s se han guardado con éxito." + +#: views.py:326 +msgid "Details saved successfully." +msgstr "Detalles guardados con éxito." + +#: views.py:338 +#, python-format +msgid "Error creating new %s." +msgstr "Error al crear nuevo %s." + +#: views.py:340 +msgid "Error creating object." +msgstr "Error al crear objeto." + +#: views.py:347 +#, python-format +msgid "%s created successfully." +msgstr "%s creado con éxito." + +#: views.py:349 +msgid "New object created successfully." +msgstr "Nuevo objeto creado con éxito." + +#: views.py:367 +#, python-format +msgid "Error deleting %s." +msgstr "Error al borrar %s." + +#: views.py:369 +msgid "Error deleting object." +msgstr "Error al borrar objeto." + +#: views.py:374 +#, python-format +msgid "%s deleted successfully." +msgstr "%s borrado con éxito." + +#: views.py:376 +msgid "Object deleted successfully." +msgstr "Objeto borrado con éxito." + +#: widgets.py:60 +msgid "None" +msgstr "Ninguno" + +#~ msgid "%(selection)s added successfully added to %(right_list_title)s." +#~ msgstr "%(selection)s added successfully added to %(right_list_title)s." + +#~ msgid "%(selection)s added successfully removed from %(right_list_title)s." +#~ msgstr "%(selection)s added successfully removed from %(right_list_title)s." + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "Letter" +#~ msgstr "Letter" + +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Ledger" +#~ msgstr "Ledger" + +#~ msgid "Portrait" +#~ msgstr "Portrait" + +#~ msgid "Landscape" +#~ msgstr "Landscape" + +#~ msgid "license" +#~ msgstr "license" + +#~ msgid "anonymous user" +#~ msgstr "anonymous user" + +#~ msgid "password" +#~ msgstr "password" + +#~ msgid "Insufficient permissions" +#~ msgstr "Insufficient permissions" + +#~ msgid "You don't have enough permissions for this operation." +#~ msgstr "You don't have enough permissions for this operation." + +#~ msgid "Page not found" +#~ msgstr "Page not found" + +#~ msgid "Sorry, but the requested page could not be found." +#~ msgstr "Sorry, but the requested page could not be found." + +#~ msgid "Details for %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Details for: %(object)s" +#~ msgstr "Details for: %(object)s" + +#~ msgid "Edit %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Edit: %(object)s" +#~ msgstr "Edit %(object_name)s:" + +#~ msgid "Create new %(object_name)s" +#~ msgstr "Create new %(object_name)s" + +#~ msgid "Create" +#~ msgstr "Create" + +#~ msgid "Assign %(title)s %(object)s" +#~ msgstr "Assign %(title)s %(object)s" + +#~ msgid "Confirm" +#~ msgstr "Confirm" + +#~ msgid "Confirm delete" +#~ msgstr "Confirm delete" + +#~ msgid "form icon" +#~ msgstr "form icon" + +#~ msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +#~ msgstr "Are you sure you wish to delete %(object_name)s: %(object)s?" + +#~ msgid "Are you sure you wish to delete: %(object)s?" +#~ msgstr "Are you sure you wish to delete: %(object)s?" + +#~ msgid "Yes" +#~ msgstr "Yes" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "required" +#~ msgstr "required" + +#~ msgid "Save" +#~ msgstr "Save" + +#~ msgid "Submit" +#~ msgstr "Submit" + +#~ msgid "Cancel" +#~ msgstr "Cancel" + +#~ msgid "List of %(title)s" +#~ msgstr "List of %(stripped_title)s" + +#~ msgid "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" +#~ msgstr "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" + +#~ msgid "List of %(title)s (%(total)s)" +#~ msgstr "List of %(title)s (%(total)s)" + +#~ msgid "Identifier" +#~ msgstr "Identifier" + +#~ msgid "There are no %(title)s" +#~ msgstr "There are no %(stripped_title)s" + +#~ msgid "Login" +#~ msgstr "Login" + +#~ msgid "Password change" +#~ msgstr "Password change" #~ msgid "lock field" -#~ msgstr "campo de bloqueo" +#~ msgstr "lock field" #~ msgid "Edit" #~ msgstr "Edit" diff --git a/mayan/apps/common/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/common/locale/fa/LC_MESSAGES/django.mo index daed86302d..9f2a570016 100644 Binary files a/mayan/apps/common/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/fa/LC_MESSAGES/django.po b/mayan/apps/common/locale/fa/LC_MESSAGES/django.po index ff4f5d1ca6..a8f3cb6bce 100644 --- a/mayan/apps/common/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/fa/LC_MESSAGES/django.po @@ -3,14 +3,16 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: +# Mehdi Amani , 2014 # Mohammad Dashtizadeh , 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2013-07-05 11:24+0000\n" -"Last-Translator: Mohammad Dashtizadeh \n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-17 07:03+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Persian (http://www.transifex.com/projects/p/mayan-edms/" "language/fa/)\n" "Language: fa\n" @@ -19,391 +21,407 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: forms.py:97 -msgid "Selection" +#: classes.py:40 +msgid "Available attributes: " msgstr "" -#: forms.py:128 +#: forms.py:98 +msgid "Selection" +msgstr "انتخاب" + +#: forms.py:143 msgid "Email" msgstr "پست الکترونیک" -#: forms.py:131 -#, fuzzy +#: forms.py:146 models.py:36 msgid "Password" -msgstr "تغییر رمزعبور" +msgstr "رمزعبور" -#: forms.py:134 +#: forms.py:149 msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." msgstr "" +"لطفا از ایمیل و کلمه عبور معتبر جهت ورود استفاده کنید. درضمن کلمه عبور case-" +"sensitive است." -#: forms.py:136 +#: forms.py:151 msgid "This account is inactive." -msgstr "" +msgstr "اکانت غیرفعال است." #: links.py:10 -msgid "change password" -msgstr "تغییر رمزعبور" +msgid "Change password" +msgstr "تغییر کلمه عبور" #: links.py:11 -msgid "user details" +msgid "User details" msgstr "جزئیات کاربر" #: links.py:12 -msgid "edit details" +msgid "Edit details" msgstr "ویرایش جزئیات" #: links.py:14 -msgid "about" +msgid "About" msgstr "درباره" -#: links.py:15 -msgid "license" -msgstr "" - -#: 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 "" - -#: literals.py:30 -msgid "Legal" -msgstr "" - -#: literals.py:31 -msgid "Ledger" -msgstr "" - -#: literals.py:38 -msgid "Portrait" -msgstr "" - -#: literals.py:39 -msgid "Landscape" -msgstr "" - -#: models.py:17 -msgid "Anonymous user" -msgstr "" - -#: models.py:20 models.py:21 -msgid "anonymous user" -msgstr "" - -#: models.py:25 -msgid "account" -msgstr "" - -#: models.py:26 -msgid "password" -msgstr "" - -#: models.py:27 -msgid "password hash" -msgstr "" - -#: models.py:30 -msgid "auto admin properties" -msgstr "" - -#: utils.py:299 -msgid "function found" -msgstr "" - -#: views.py:39 -msgid "No action selected." -msgstr "" - -#: views.py:43 -msgid "Must select at least one item." -msgstr "" - -#: views.py:91 -#, python-format -msgid "%(selection)s added successfully added to %(right_list_title)s." -msgstr "" - -#: views.py:97 views.py:124 -#, python-format -msgid "Unable to add %(selection)s to %(right_list_title)s." -msgstr "" - -#: views.py:118 -#, python-format -msgid "%(selection)s added successfully removed from %(right_list_title)s." -msgstr "" - -#: views.py:139 -msgid "Add" -msgstr "افزودن" - -#: views.py:150 -msgid "Remove" -msgstr "حذف" - -#: views.py:173 -msgid "current user details" -msgstr "" - -#: views.py:190 -msgid "E-mail conflict, another user has that same email." -msgstr "" - -#: views.py:193 -msgid "Current user's details updated." -msgstr "" - -#: views.py:202 -msgid "edit current user details" -msgstr "" - -#: views.py:233 +#: links.py:15 views.py:279 msgid "License" +msgstr "لیسانس" + +#: links.py:17 +msgid "Locale profile" msgstr "" -#: views.py:242 -msgid "Current user password change" +#: links.py:18 +msgid "Edit locale profile" msgstr "" -#: views.py:257 templates/password_change_done.html:8 -msgid "Your password has been successfully changed." +#: links.py:20 +msgid "Logout" msgstr "" -#: views.py:303 -#, python-format -msgid "Error saving %s details." +#: models.py:28 models.py:31 +msgid "Anonymous user" +msgstr "کاربر ناشناس anonymous" + +#: models.py:35 +msgid "Account" +msgstr "حساب" + +#: models.py:37 +msgid "Password hash" +msgstr "هش کلمه عبور" + +#: models.py:40 +msgid "Auto admin properties" +msgstr "خصوصیات مدبر خودکار" + +#: models.py:44 +msgid "File" +msgstr "فایل" + +#: models.py:45 +msgid "Filename" +msgstr "نام فایل" + +#: models.py:46 +msgid "Date time" +msgstr "تاریخ زمان" + +#: models.py:49 +msgid "Shared uploaded file" +msgstr "فایل آپلود شده اشتراکی" + +#: models.py:50 +msgid "Shared uploaded files" +msgstr "فایلهای آپلود شده اشتراکی" + +#: models.py:61 +msgid "User" msgstr "" -#: views.py:305 -msgid "Error saving details." +#: models.py:63 +msgid "Timezone" msgstr "" -#: views.py:313 -#, python-format -msgid "%s details saved successfully." +#: models.py:64 +msgid "Language" msgstr "" -#: views.py:315 -msgid "Details saved successfully." +#: models.py:70 +msgid "User locale profile" msgstr "" -#: views.py:327 -#, python-format -msgid "Error creating new %s." +#: models.py:71 +msgid "User locale profiles" msgstr "" -#: views.py:329 -msgid "Error creating object." -msgstr "" - -#: views.py:336 -#, python-format -msgid "%s created successfully." -msgstr "" - -#: views.py:338 -msgid "New object created successfully." -msgstr "" - -#: views.py:356 -#, python-format -msgid "Error deleting %s." -msgstr "" - -#: views.py:358 -msgid "Error deleting object." -msgstr "" - -#: views.py:363 -#, python-format -msgid "%s deleted successfully." -msgstr "" - -#: views.py:365 -msgid "Object deleted successfully." -msgstr "" - -#: widgets.py:58 -msgid "None" -msgstr "" - -#: conf/settings.py:16 +#: settings.py:14 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 "" +"دایرکتوری موقت جهت نگهداری فایلهای موقت، اگر دایرکتوری مشخص نگردد یکی بوسیله " +"tempfile.mkdtemp() ساخته خواهد شد." -#: conf/settings.py:66 +#: settings.py:48 msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" -msgstr "" +msgstr "روش کنترل اعتبار سنجی کاربران، انتخابها عبارتند از:username, email." -#: conf/settings.py:75 +#: settings.py:57 msgid "Allow non authenticated users, access to all views" -msgstr "" +msgstr "اجازه دادن به کاربران اعتبار سنجی نشده، جهت بازبینی و یا Viewها." -#: templates/403.html:5 templates/403.html.py:9 -msgid "Insufficient permissions" -msgstr "" +#: settings.py:66 +msgid "A storage backend that all workers can use to share files." +msgstr "محلی که کلیه کاربران جهت به اشتراک گذاری فایل میتوانند استفاه کنند." -#: templates/403.html:11 -msgid "You don't have enough permissions for this operation." -msgstr "" +#: utils.py:114 +msgid "Function found" +msgstr "فانکشن و یا تابع پیدا شد." -#: templates/404.html:5 templates/404.html.py:9 -msgid "Page not found" -msgstr "" +#: views.py:44 +msgid "No action selected." +msgstr "هیچ عملیاتی action انتخاب نشده است." -#: templates/404.html:11 -msgid "Sorry, but the requested page could not be found." -msgstr "" +#: views.py:48 +msgid "Must select at least one item." +msgstr "حداقل یک مورد انتخاب شود." -#: templates/calculate_form_title.html:8 +#: views.py:100 #, python-format -msgid "Details for %(object_name)s: %(object)s" -msgstr "" +msgid "Unable to remove %(selection)s." +msgstr "عیر قابل حذف و یا برداشتن %(selection)s." -#: templates/calculate_form_title.html:10 +#: views.py:125 #, python-format -msgid "Details for: %(object)s" +msgid "Unable to add %(selection)s." +msgstr "نمیتوان برداشت: %(selection)s." + +#: views.py:138 +msgid "Add" +msgstr "افزودن" + +#: views.py:149 +msgid "Remove" +msgstr "حذف" + +#: views.py:172 +msgid "Current user details" +msgstr "جزئیاتا کاربر فعلی" + +#: views.py:187 +msgid "Current user locale profile details" msgstr "" -#: templates/calculate_form_title.html:15 -#, fuzzy, python-format -msgid "Edit %(object_name)s: %(object)s" -msgstr "ویرایش %(object_name)s:" +#: views.py:204 +msgid "E-mail conflict, another user has that same email." +msgstr "این ایمیل با ایمیل کاربر دیگری یکسان است." -#: templates/calculate_form_title.html:17 -#, fuzzy, python-format -msgid "Edit: %(object)s" -msgstr "ویرایش %(object_name)s:" +#: views.py:207 +msgid "Current user's details updated." +msgstr "کزئیات کاربر فعلی بروزرسانی شد." -#: templates/calculate_form_title.html:21 +#: views.py:216 +msgid "Edit current user details" +msgstr "یرایش جزئیات کاربر کنونی" + +#: views.py:239 +msgid "Current user's locale profile details updated." +msgstr "" + +#: views.py:248 +msgid "Edit current user locale profile details" +msgstr "" + +#: views.py:288 +msgid "Current user password change" +msgstr "تغییر کلمه عبور کاربر" + +#: views.py:303 +msgid "Your password has been successfully changed." +msgstr "کلمه عبور شما با موفقیت تغییر کرد." + +#: views.py:314 #, python-format -msgid "Create new %(object_name)s" -msgstr "" +msgid "Error saving %s details." +msgstr "خطا در ثبت چزئیات %s." -#: templates/calculate_form_title.html:23 -msgid "Create" -msgstr "" +#: views.py:316 +msgid "Error saving details." +msgstr "خطا در ثبت چزئیات ." -#: templates/generic_assign_remove.html:5 +#: views.py:324 #, python-format -msgid "Assign %(title)s %(object)s" -msgstr "" +msgid "%s details saved successfully." +msgstr "جزئیات %s با موفقیت ثبت شد." -#: templates/generic_confirm.html:5 templates/generic_confirm.html.py:19 -msgid "Confirm" -msgstr "" +#: views.py:326 +msgid "Details saved successfully." +msgstr "جزییات با موفقیت ثبت شد." -#: templates/generic_confirm.html:17 -msgid "Confirm delete" -msgstr "" - -#: templates/generic_confirm.html:33 -msgid "form icon" -msgstr "" - -#: templates/generic_confirm.html:41 +#: views.py:338 #, python-format -msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" -msgstr "" +msgid "Error creating new %s." +msgstr "خطا در زمان ایجاد %s." -#: templates/generic_confirm.html:43 +#: views.py:340 +msgid "Error creating object." +msgstr "خطا در زمان ایجاد شی" + +#: views.py:347 #, python-format -msgid "Are you sure you wish to delete: %(object)s?" -msgstr "" +msgid "%s created successfully." +msgstr "%s با موفقیت ایجاد شد." -#: templates/generic_confirm.html:51 -msgid "Yes" -msgstr "" +#: views.py:349 +msgid "New object created successfully." +msgstr "شی جدید با موفقیت ساخته شد." -#: templates/generic_confirm.html:55 -msgid "No" -msgstr "" - -#: templates/generic_form_instance.html:40 -#: templates/generic_form_subtemplate.html:59 -msgid "required" -msgstr "" - -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Save" -msgstr "" - -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Submit" -msgstr "" - -#: templates/generic_form_subtemplate.html:90 -msgid "Cancel" -msgstr "" - -#: templates/generic_list.html:8 templates/generic_list_horizontal.html:8 +#: views.py:367 #, python-format -msgid "List of %(title)s" -msgstr "" +msgid "Error deleting %s." +msgstr "خطا در زمان حذف %s." -#: templates/generic_list_horizontal_subtemplate.html:24 -#: templates/generic_list_subtemplate.html:25 +#: views.py:369 +msgid "Error deleting object." +msgstr "خطا در حذف شی." + +#: views.py:374 #, python-format -msgid "" -"List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " -"%(page_number)s of %(total_pages)s)" -msgstr "" +msgid "%s deleted successfully." +msgstr "%s با موفقیت حذف شد." -#: templates/generic_list_horizontal_subtemplate.html:26 -#: templates/generic_list_subtemplate.html:27 -#, python-format -msgid "List of %(title)s (%(total)s)" -msgstr "" +#: views.py:376 +msgid "Object deleted successfully." +msgstr "شی با موفقیت حذف شد." -#: templates/generic_list_subtemplate.html:73 -msgid "Identifier" -msgstr "" +#: widgets.py:60 +msgid "None" +msgstr "هیچکدام." -#: templates/generic_list_subtemplate.html:147 -#, python-format -msgid "There are no %(title)s" -msgstr "" +#~ msgid "%(selection)s added successfully added to %(right_list_title)s." +#~ msgstr "%(selection)s added successfully added to %(right_list_title)s." -#: templates/login.html:7 -msgid "Login" -msgstr "" +#~ msgid "%(selection)s added successfully removed from %(right_list_title)s." +#~ msgstr "%(selection)s added successfully removed from %(right_list_title)s." -#: templates/password_change_done.html:5 templates/password_change_form.html:5 -#: templates/password_change_form.html:7 -msgid "Password change" -msgstr "" +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "Letter" +#~ msgstr "Letter" + +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Ledger" +#~ msgstr "Ledger" + +#~ msgid "Portrait" +#~ msgstr "Portrait" + +#~ msgid "Landscape" +#~ msgstr "Landscape" + +#~ msgid "license" +#~ msgstr "license" + +#~ msgid "anonymous user" +#~ msgstr "anonymous user" + +#~ msgid "password" +#~ msgstr "password" + +#~ msgid "Insufficient permissions" +#~ msgstr "Insufficient permissions" + +#~ msgid "You don't have enough permissions for this operation." +#~ msgstr "You don't have enough permissions for this operation." + +#~ msgid "Page not found" +#~ msgstr "Page not found" + +#~ msgid "Sorry, but the requested page could not be found." +#~ msgstr "Sorry, but the requested page could not be found." + +#~ msgid "Details for %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Details for: %(object)s" +#~ msgstr "Details for: %(object)s" + +#~ msgid "Edit %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Edit: %(object)s" +#~ msgstr "Edit %(object_name)s:" + +#~ msgid "Create new %(object_name)s" +#~ msgstr "Create new %(object_name)s" + +#~ msgid "Create" +#~ msgstr "Create" + +#~ msgid "Assign %(title)s %(object)s" +#~ msgstr "Assign %(title)s %(object)s" + +#~ msgid "Confirm" +#~ msgstr "Confirm" + +#~ msgid "Confirm delete" +#~ msgstr "Confirm delete" + +#~ msgid "form icon" +#~ msgstr "form icon" + +#~ msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +#~ msgstr "Are you sure you wish to delete %(object_name)s: %(object)s?" + +#~ msgid "Are you sure you wish to delete: %(object)s?" +#~ msgstr "Are you sure you wish to delete: %(object)s?" + +#~ msgid "Yes" +#~ msgstr "Yes" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "required" +#~ msgstr "required" + +#~ msgid "Save" +#~ msgstr "Save" + +#~ msgid "Submit" +#~ msgstr "Submit" + +#~ msgid "Cancel" +#~ msgstr "Cancel" + +#~ msgid "List of %(title)s" +#~ msgstr "List of %(stripped_title)s" + +#~ msgid "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" +#~ msgstr "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" + +#~ msgid "List of %(title)s (%(total)s)" +#~ msgstr "List of %(title)s (%(total)s)" + +#~ msgid "Identifier" +#~ msgstr "Identifier" + +#~ msgid "There are no %(title)s" +#~ msgstr "There are no %(stripped_title)s" + +#~ msgid "Login" +#~ msgstr "Login" + +#~ msgid "Password change" +#~ msgstr "Password change" + +#~ msgid "lock field" +#~ msgstr "lock field" + +#~ msgid "Edit" +#~ msgstr "Edit" diff --git a/mayan/apps/common/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/common/locale/fr/LC_MESSAGES/django.mo index aa865a32bb..181afe5659 100644 Binary files a/mayan/apps/common/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/fr/LC_MESSAGES/django.po b/mayan/apps/common/locale/fr/LC_MESSAGES/django.po index e03d873217..e0b2ec3857 100644 --- a/mayan/apps/common/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/fr/LC_MESSAGES/django.po @@ -4,16 +4,16 @@ # # Translators: # Translators: -# Christophe kryskool , 2014 +# Christophe kryskool , 2014-2015 # PatrickHetu , 2012 -# Pierre Lhoste , 2012 +# Pierre Lhoste , 2012 # SadE54 , 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2014-07-18 17:17+0000\n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-29 07:48+0000\n" "Last-Translator: Christophe kryskool \n" "Language-Team: French (http://www.transifex.com/projects/p/mayan-edms/" "language/fr/)\n" @@ -23,238 +23,123 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: forms.py:97 +#: classes.py:40 +msgid "Available attributes: " +msgstr "Options disponibles" + +#: forms.py:98 msgid "Selection" msgstr "Sélection" -#: forms.py:128 +#: forms.py:143 msgid "Email" msgstr "adresse électronique" -#: forms.py:131 -#, fuzzy +#: forms.py:146 models.py:36 msgid "Password" -msgstr "mot de passe" +msgstr "Mot de passe" -#: forms.py:134 -#, fuzzy +#: forms.py:149 msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." msgstr "" -"S'il vous plaît veuillez entrer une adresse électronique et un mot de passe. " -"Notez que les champs de mot de passe sont sensibles à la casse." +"Veuillez rentrer un courriel et mot de passe correct. Note: le mot de passe " +"est sensible à la casse." -#: forms.py:136 +#: forms.py:151 msgid "This account is inactive." msgstr "Ce compte est inactif." #: links.py:10 -msgid "change password" -msgstr "modifier le mot de passe" +msgid "Change password" +msgstr "Modifier le mot de passe" #: links.py:11 -msgid "user details" -msgstr "détails de l'utilisateur" +msgid "User details" +msgstr "Profil Utilisateur" #: links.py:12 -msgid "edit details" -msgstr "modifier les détails" +msgid "Edit details" +msgstr "Modifier les détails" #: links.py:14 -msgid "about" -msgstr "à propos" +msgid "About" +msgstr "À propos" -#: links.py:15 -msgid "license" -msgstr "licence" - -#: 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 "Lettre" - -#: literals.py:30 -msgid "Legal" -msgstr "Légal" - -#: literals.py:31 -msgid "Ledger" -msgstr "Ledger" - -#: literals.py:38 -msgid "Portrait" -msgstr "Portrait" - -#: literals.py:39 -msgid "Landscape" -msgstr "Paysage" - -#: models.py:17 -msgid "Anonymous user" -msgstr "Utilisateur anonyme" - -#: models.py:20 models.py:21 -msgid "anonymous user" -msgstr "utilisateur anonyme" - -#: models.py:25 -msgid "account" -msgstr "compte" - -#: models.py:26 -msgid "password" -msgstr "mot de passe" - -#: models.py:27 -msgid "password hash" -msgstr "hachage de mot de passe" - -#: models.py:30 -msgid "auto admin properties" -msgstr "propriétés de l'administration automatique" - -#: utils.py:299 -msgid "function found" -msgstr "fonction trouvée" - -#: views.py:39 -msgid "No action selected." -msgstr "Aucune action sélectionnée." - -#: views.py:43 -msgid "Must select at least one item." -msgstr "Vous devez sélectionner au moins un élément." - -#: views.py:91 -#, python-format -msgid "%(selection)s added successfully added to %(right_list_title)s." -msgstr " %(selection)s a été ajouté avec succès à %(right_list_title)s ." - -#: views.py:97 views.py:124 -#, python-format -msgid "Unable to add %(selection)s to %(right_list_title)s." -msgstr "Impossible d'ajouter %(selection)s à %(right_list_title)s ." - -#: views.py:118 -#, python-format -msgid "%(selection)s added successfully removed from %(right_list_title)s." -msgstr " %(selection)s a été supprimé avec succès de %(right_list_title)s ." - -#: views.py:139 -msgid "Add" -msgstr "Ajouter" - -#: views.py:150 -msgid "Remove" -msgstr "Supprimer" - -#: views.py:173 -msgid "current user details" -msgstr "détails de l'utilisateur courant" - -#: views.py:190 -msgid "E-mail conflict, another user has that same email." -msgstr "Conflit d'adresse électronique: un autre utilisateur a cette adresse." - -#: views.py:193 -msgid "Current user's details updated." -msgstr "Les détails de l'utilisateur actuel ont été mis à jour." - -#: views.py:202 -msgid "edit current user details" -msgstr "modifier les détails des utilisateurs actuels" - -#: views.py:233 +#: links.py:15 views.py:279 msgid "License" msgstr "Licence" -#: views.py:242 -msgid "Current user password change" -msgstr "Modifier le mot de passe de l'utilisateur courant" +#: links.py:17 +msgid "Locale profile" +msgstr "Paramètres régionaux du profil" -#: views.py:257 templates/password_change_done.html:8 -msgid "Your password has been successfully changed." -msgstr "Votre mot de passe a été modifié avec succès." +#: links.py:18 +msgid "Edit locale profile" +msgstr "Éditer les paramètres régionaux du profil" -#: views.py:303 -#, python-format -msgid "Error saving %s details." -msgstr "Erreur de sauvegarde %s pour voir les détails." +#: links.py:20 +msgid "Logout" +msgstr "Déconnexion" -#: views.py:305 -msgid "Error saving details." -msgstr "Erreur de sauvegarde détaillée." +#: models.py:28 models.py:31 +msgid "Anonymous user" +msgstr "Utilisateur anonyme" -#: views.py:313 -#, python-format -msgid "%s details saved successfully." -msgstr "Sauvegarde de %s détaillé avec succès." +#: models.py:35 +msgid "Account" +msgstr "Compte" -#: views.py:315 -msgid "Details saved successfully." -msgstr "Détails sauvegardé avec succès." +#: models.py:37 +msgid "Password hash" +msgstr "Hachage de mot de passe" -#: views.py:327 -#, python-format -msgid "Error creating new %s." -msgstr "Erreur nouvelle création %s. " +#: models.py:40 +msgid "Auto admin properties" +msgstr "Propriétés de l'administration automatique" -#: views.py:329 -msgid "Error creating object." -msgstr "Erreur de création de l'objet." +#: models.py:44 +msgid "File" +msgstr "Fichier" -#: views.py:336 -#, python-format -msgid "%s created successfully." -msgstr "%s créé avec succès" +#: models.py:45 +msgid "Filename" +msgstr "Nom de fichier" -#: views.py:338 -msgid "New object created successfully." -msgstr "Le nouvel objet a été créé avec succès" +#: models.py:46 +msgid "Date time" +msgstr "Date et heure" -#: views.py:356 -#, python-format -msgid "Error deleting %s." -msgstr "Erreur de suppression %s." +#: models.py:49 +msgid "Shared uploaded file" +msgstr "Partager le fichier transféré" -#: views.py:358 -msgid "Error deleting object." -msgstr "Erreur de suppression de l'objet" +#: models.py:50 +msgid "Shared uploaded files" +msgstr "Partager les fichiers téléchargés" -#: views.py:363 -#, python-format -msgid "%s deleted successfully." -msgstr "%s supprimé avec succès." +#: models.py:61 +msgid "User" +msgstr "Uitlisateur" -#: views.py:365 -msgid "Object deleted successfully." -msgstr "Objet supprimé avec succès" +#: models.py:63 +msgid "Timezone" +msgstr "Fuseau horaire" -#: widgets.py:58 -msgid "None" -msgstr "Aucun" +#: models.py:64 +msgid "Language" +msgstr "Langue" -#: conf/settings.py:16 +#: models.py:70 +msgid "User locale profile" +msgstr "Paramètres régionaux du profil utilisateur" + +#: models.py:71 +msgid "User locale profiles" +msgstr "Paramètres régionaux des profils utilisateur" + +#: settings.py:14 msgid "" "Temporary directory used site wide to store thumbnails, previews and " "temporary files. If none is specified, one will be created using tempfile." @@ -264,167 +149,285 @@ msgstr "" "les fichiers temporaires. Si aucun n'est indiqué, celui-ci sera crée à " "l'aide de la fonction tempfile.mdktemp()" -#: conf/settings.py:66 +#: settings.py:48 msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" msgstr "" "Mécanisme utilisé pour l'authentification. Les options sont: username, email" -#: conf/settings.py:75 +#: settings.py:57 msgid "Allow non authenticated users, access to all views" msgstr "Autoriser les utilisateurs non-authentifiés, à accéder à tous les vues" -#: templates/403.html:5 templates/403.html.py:9 -msgid "Insufficient permissions" -msgstr "Permissions insuffisantes" - -#: templates/403.html:11 -msgid "You don't have enough permissions for this operation." -msgstr "Vous n'avez pas les permissions requises pour cette opération." - -#: templates/404.html:5 templates/404.html.py:9 -msgid "Page not found" -msgstr "Page non trouvée" - -#: templates/404.html:11 -msgid "Sorry, but the requested page could not be found." -msgstr "Désolé, la page demandée n'a pu être trouvée." - -#: templates/calculate_form_title.html:8 -#, python-format -msgid "Details for %(object_name)s: %(object)s" -msgstr "Détails de %(object_name)s : %(object)s " - -#: templates/calculate_form_title.html:10 -#, python-format -msgid "Details for: %(object)s" -msgstr "Détails de: %(object)s " - -#: templates/calculate_form_title.html:15 -#, python-format -msgid "Edit %(object_name)s: %(object)s" -msgstr "Éditer %(object_name)s: %(object)s" - -#: templates/calculate_form_title.html:17 -#, python-format -msgid "Edit: %(object)s" -msgstr "Éditer: %(object)s" - -#: templates/calculate_form_title.html:21 -#, python-format -msgid "Create new %(object_name)s" -msgstr "Créer un nouveau %(object_name)s " - -#: templates/calculate_form_title.html:23 -msgid "Create" -msgstr "Créer" - -#: templates/generic_assign_remove.html:5 -#, python-format -msgid "Assign %(title)s %(object)s" -msgstr "Attribuer %(title)s à %(object)s" - -#: templates/generic_confirm.html:5 templates/generic_confirm.html.py:19 -msgid "Confirm" -msgstr "Confirmer" - -#: templates/generic_confirm.html:17 -msgid "Confirm delete" -msgstr "Confirmer la suppression" - -#: templates/generic_confirm.html:33 -msgid "form icon" -msgstr "icône du formulaire" - -#: templates/generic_confirm.html:41 -#, python-format -msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +#: settings.py:66 +msgid "A storage backend that all workers can use to share files." msgstr "" -"Etes-vous certain de vouloir supprimer l'élément %(object_name)s : " -"%(object)s ?" +"Un espace de stockage que tous les agents pourront utiliser pour partager " +"des fichiers." -#: templates/generic_confirm.html:43 +#: utils.py:114 +msgid "Function found" +msgstr "Fonction trouvée" + +#: views.py:44 +msgid "No action selected." +msgstr "Aucune action sélectionnée." + +#: views.py:48 +msgid "Must select at least one item." +msgstr "Vous devez sélectionner au moins un élément." + +#: views.py:100 #, python-format -msgid "Are you sure you wish to delete: %(object)s?" -msgstr "Etes-vous certain de vouloir supprimer l'élément: %(object)s ?" +msgid "Unable to remove %(selection)s." +msgstr "Impossible de supprimer %(selection)s." -#: templates/generic_confirm.html:51 -msgid "Yes" -msgstr "Oui" - -#: templates/generic_confirm.html:55 -msgid "No" -msgstr "Non" - -#: templates/generic_form_instance.html:40 -#: templates/generic_form_subtemplate.html:59 -msgid "required" -msgstr "requis" - -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Save" -msgstr "Sauvegarder" - -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Submit" -msgstr "Envoyer" - -#: templates/generic_form_subtemplate.html:90 -msgid "Cancel" -msgstr "Annuler" - -#: templates/generic_list.html:8 templates/generic_list_horizontal.html:8 +#: views.py:125 #, python-format -msgid "List of %(title)s" -msgstr "Liste des %(title)s" +msgid "Unable to add %(selection)s." +msgstr "Impossible d'ajouter %(selection)s." -#: templates/generic_list_horizontal_subtemplate.html:24 -#: templates/generic_list_subtemplate.html:25 +#: views.py:138 +msgid "Add" +msgstr "Ajouter" + +#: views.py:149 +msgid "Remove" +msgstr "Supprimer" + +#: views.py:172 +msgid "Current user details" +msgstr "Détails de l'utilisateur courant" + +#: views.py:187 +msgid "Current user locale profile details" +msgstr "Détails des paramètres régionaux de l'utilisateur actuel" + +#: views.py:204 +msgid "E-mail conflict, another user has that same email." +msgstr "Conflit d'adresse électronique: un autre utilisateur a cette adresse." + +#: views.py:207 +msgid "Current user's details updated." +msgstr "Les détails de l'utilisateur actuel ont été mis à jour." + +#: views.py:216 +msgid "Edit current user details" +msgstr "Modifier les détails des utilisateurs actuels" + +#: views.py:239 +msgid "Current user's locale profile details updated." +msgstr "Détails des paramètres régionaux de l'utilisateur actuel mis à jour." + +#: views.py:248 +msgid "Edit current user locale profile details" +msgstr "Éditer le détail des paramètres régionaux de l'utilisateur actuel" + +#: views.py:288 +msgid "Current user password change" +msgstr "Modifier le mot de passe de l'utilisateur courant" + +#: views.py:303 +msgid "Your password has been successfully changed." +msgstr "Votre mot de passe a été modifié avec succès." + +#: views.py:314 #, python-format -msgid "" -"List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " -"%(page_number)s of %(total_pages)s)" -msgstr "" -"Liste des %(title)s (%(start)s - %(end)s sur %(total)s) (Page " -"%(page_number)s de %(total_pages)s)" +msgid "Error saving %s details." +msgstr "Erreur de sauvegarde %s pour voir les détails." -#: templates/generic_list_horizontal_subtemplate.html:26 -#: templates/generic_list_subtemplate.html:27 +#: views.py:316 +msgid "Error saving details." +msgstr "Erreur de sauvegarde détaillée." + +#: views.py:324 #, python-format -msgid "List of %(title)s (%(total)s)" -msgstr "Liste des %(title)s (%(total)s )" +msgid "%s details saved successfully." +msgstr "Sauvegarde de %s détaillé avec succès." -#: templates/generic_list_subtemplate.html:73 -msgid "Identifier" -msgstr "Identifiant" +#: views.py:326 +msgid "Details saved successfully." +msgstr "Détails sauvegardé avec succès." -#: templates/generic_list_subtemplate.html:147 +#: views.py:338 #, python-format -msgid "There are no %(title)s" -msgstr "Il n'y a pas de %(title)s" +msgid "Error creating new %s." +msgstr "Erreur nouvelle création %s. " -#: templates/login.html:7 -msgid "Login" -msgstr "Connexion" +#: views.py:340 +msgid "Error creating object." +msgstr "Erreur de création de l'objet." -#: templates/password_change_done.html:5 templates/password_change_form.html:5 -#: templates/password_change_form.html:7 -msgid "Password change" -msgstr "Modifier le mot de passe" +#: views.py:347 +#, python-format +msgid "%s created successfully." +msgstr "%s créé avec succès" + +#: views.py:349 +msgid "New object created successfully." +msgstr "Le nouvel objet a été créé avec succès" + +#: views.py:367 +#, python-format +msgid "Error deleting %s." +msgstr "Erreur de suppression %s." + +#: views.py:369 +msgid "Error deleting object." +msgstr "Erreur de suppression de l'objet" + +#: views.py:374 +#, python-format +msgid "%s deleted successfully." +msgstr "%s supprimé avec succès." + +#: views.py:376 +msgid "Object deleted successfully." +msgstr "Objet supprimé avec succès" + +#: widgets.py:60 +msgid "None" +msgstr "Aucun" + +#~ msgid "%(selection)s added successfully added to %(right_list_title)s." +#~ msgstr "%(selection)s added successfully added to %(right_list_title)s." + +#~ msgid "%(selection)s added successfully removed from %(right_list_title)s." +#~ msgstr "%(selection)s added successfully removed from %(right_list_title)s." + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "Letter" +#~ msgstr "Letter" + +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Ledger" +#~ msgstr "Ledger" + +#~ msgid "Portrait" +#~ msgstr "Portrait" + +#~ msgid "Landscape" +#~ msgstr "Landscape" + +#~ msgid "license" +#~ msgstr "license" + +#~ msgid "anonymous user" +#~ msgstr "anonymous user" + +#~ msgid "password" +#~ msgstr "password" + +#~ msgid "Insufficient permissions" +#~ msgstr "Insufficient permissions" + +#~ msgid "You don't have enough permissions for this operation." +#~ msgstr "You don't have enough permissions for this operation." + +#~ msgid "Page not found" +#~ msgstr "Page not found" + +#~ msgid "Sorry, but the requested page could not be found." +#~ msgstr "Sorry, but the requested page could not be found." + +#~ msgid "Details for %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Details for: %(object)s" +#~ msgstr "Details for: %(object)s" + +#~ msgid "Edit %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Edit: %(object)s" +#~ msgstr "Edit %(object_name)s:" + +#~ msgid "Create new %(object_name)s" +#~ msgstr "Create new %(object_name)s" + +#~ msgid "Create" +#~ msgstr "Create" + +#~ msgid "Assign %(title)s %(object)s" +#~ msgstr "Assign %(title)s %(object)s" + +#~ msgid "Confirm" +#~ msgstr "Confirm" + +#~ msgid "Confirm delete" +#~ msgstr "Confirm delete" + +#~ msgid "form icon" +#~ msgstr "form icon" + +#~ msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +#~ msgstr "Are you sure you wish to delete %(object_name)s: %(object)s?" + +#~ msgid "Are you sure you wish to delete: %(object)s?" +#~ msgstr "Are you sure you wish to delete: %(object)s?" + +#~ msgid "Yes" +#~ msgstr "Yes" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "required" +#~ msgstr "required" + +#~ msgid "Save" +#~ msgstr "Save" + +#~ msgid "Submit" +#~ msgstr "Submit" + +#~ msgid "Cancel" +#~ msgstr "Cancel" + +#~ msgid "List of %(title)s" +#~ msgstr "List of %(stripped_title)s" + +#~ msgid "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" +#~ msgstr "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" + +#~ msgid "List of %(title)s (%(total)s)" +#~ msgstr "List of %(title)s (%(total)s)" + +#~ msgid "Identifier" +#~ msgstr "Identifier" + +#~ msgid "There are no %(title)s" +#~ msgstr "There are no %(stripped_title)s" + +#~ msgid "Login" +#~ msgstr "Login" + +#~ msgid "Password change" +#~ msgstr "Password change" #~ msgid "lock field" -#~ msgstr "Champ verrouiller" +#~ msgstr "lock field" #~ msgid "Edit" #~ msgstr "Edit" diff --git a/mayan/apps/common/locale/hr_HR/LC_MESSAGES/django.mo b/mayan/apps/common/locale/hr_HR/LC_MESSAGES/django.mo index 19d4315c61..b4bbec113c 100644 Binary files a/mayan/apps/common/locale/hr_HR/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/hr_HR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/hr_HR/LC_MESSAGES/django.po b/mayan/apps/common/locale/hr_HR/LC_MESSAGES/django.po index 7b416bd0ee..d39a405022 100644 --- a/mayan/apps/common/locale/hr_HR/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/hr_HR/LC_MESSAGES/django.po @@ -3,12 +3,13 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-12-12 06:05+0000\n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-17 07:03+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Croatian (Croatia) (http://www.transifex.com/projects/p/mayan-" "edms/language/hr_HR/)\n" @@ -19,390 +20,403 @@ msgstr "" "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" -#: forms.py:97 +#: classes.py:40 +msgid "Available attributes: " +msgstr "" + +#: forms.py:98 msgid "Selection" msgstr "" -#: forms.py:128 +#: forms.py:143 msgid "Email" msgstr "" -#: forms.py:131 +#: forms.py:146 models.py:36 msgid "Password" msgstr "" -#: forms.py:134 +#: forms.py:149 msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." msgstr "" -#: forms.py:136 +#: forms.py:151 msgid "This account is inactive." msgstr "" #: links.py:10 -msgid "change password" +msgid "Change password" msgstr "" #: links.py:11 -msgid "user details" +msgid "User details" msgstr "" #: links.py:12 -msgid "edit details" +msgid "Edit details" msgstr "" #: links.py:14 -msgid "about" +msgid "About" msgstr "" -#: links.py:15 -msgid "license" -msgstr "" - -#: literals.py:24 -msgid "A5" -msgstr "" - -#: literals.py:25 -msgid "A4" -msgstr "" - -#: literals.py:26 -msgid "A3" -msgstr "" - -#: literals.py:27 -msgid "B5" -msgstr "" - -#: literals.py:28 -msgid "B4" -msgstr "" - -#: literals.py:29 -msgid "Letter" -msgstr "" - -#: literals.py:30 -msgid "Legal" -msgstr "" - -#: literals.py:31 -msgid "Ledger" -msgstr "" - -#: literals.py:38 -msgid "Portrait" -msgstr "" - -#: literals.py:39 -msgid "Landscape" -msgstr "" - -#: models.py:17 -msgid "Anonymous user" -msgstr "" - -#: models.py:20 models.py:21 -msgid "anonymous user" -msgstr "" - -#: models.py:25 -msgid "account" -msgstr "" - -#: models.py:26 -msgid "password" -msgstr "" - -#: models.py:27 -msgid "password hash" -msgstr "" - -#: models.py:30 -msgid "auto admin properties" -msgstr "" - -#: utils.py:299 -msgid "function found" -msgstr "" - -#: views.py:39 -msgid "No action selected." -msgstr "" - -#: views.py:43 -msgid "Must select at least one item." -msgstr "" - -#: views.py:91 -#, python-format -msgid "%(selection)s added successfully added to %(right_list_title)s." -msgstr "" - -#: views.py:97 views.py:124 -#, python-format -msgid "Unable to add %(selection)s to %(right_list_title)s." -msgstr "" - -#: views.py:118 -#, python-format -msgid "%(selection)s added successfully removed from %(right_list_title)s." -msgstr "" - -#: views.py:139 -msgid "Add" -msgstr "" - -#: views.py:150 -msgid "Remove" -msgstr "" - -#: views.py:173 -msgid "current user details" -msgstr "" - -#: views.py:190 -msgid "E-mail conflict, another user has that same email." -msgstr "" - -#: views.py:193 -msgid "Current user's details updated." -msgstr "" - -#: views.py:202 -msgid "edit current user details" -msgstr "" - -#: views.py:233 +#: links.py:15 views.py:279 msgid "License" msgstr "" -#: views.py:242 -msgid "Current user password change" +#: links.py:17 +msgid "Locale profile" msgstr "" -#: views.py:257 templates/password_change_done.html:8 -msgid "Your password has been successfully changed." +#: links.py:18 +msgid "Edit locale profile" msgstr "" -#: views.py:303 -#, python-format -msgid "Error saving %s details." +#: links.py:20 +msgid "Logout" msgstr "" -#: views.py:305 -msgid "Error saving details." +#: models.py:28 models.py:31 +msgid "Anonymous user" msgstr "" -#: views.py:313 -#, python-format -msgid "%s details saved successfully." +#: models.py:35 +msgid "Account" msgstr "" -#: views.py:315 -msgid "Details saved successfully." +#: models.py:37 +msgid "Password hash" msgstr "" -#: views.py:327 -#, python-format -msgid "Error creating new %s." +#: models.py:40 +msgid "Auto admin properties" msgstr "" -#: views.py:329 -msgid "Error creating object." +#: models.py:44 +msgid "File" msgstr "" -#: views.py:336 -#, python-format -msgid "%s created successfully." +#: models.py:45 +msgid "Filename" msgstr "" -#: views.py:338 -msgid "New object created successfully." +#: models.py:46 +msgid "Date time" msgstr "" -#: views.py:356 -#, python-format -msgid "Error deleting %s." +#: models.py:49 +msgid "Shared uploaded file" msgstr "" -#: views.py:358 -msgid "Error deleting object." +#: models.py:50 +msgid "Shared uploaded files" msgstr "" -#: views.py:363 -#, python-format -msgid "%s deleted successfully." +#: models.py:61 +msgid "User" msgstr "" -#: views.py:365 -msgid "Object deleted successfully." +#: models.py:63 +msgid "Timezone" msgstr "" -#: widgets.py:58 -msgid "None" +#: models.py:64 +msgid "Language" msgstr "" -#: conf/settings.py:16 +#: models.py:70 +msgid "User locale profile" +msgstr "" + +#: models.py:71 +msgid "User locale profiles" +msgstr "" + +#: settings.py:14 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 "" -#: conf/settings.py:66 +#: settings.py:48 msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" msgstr "" -#: conf/settings.py:75 +#: settings.py:57 msgid "Allow non authenticated users, access to all views" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 -msgid "Insufficient permissions" +#: settings.py:66 +msgid "A storage backend that all workers can use to share files." msgstr "" -#: templates/403.html:11 -msgid "You don't have enough permissions for this operation." +#: utils.py:114 +msgid "Function found" msgstr "" -#: templates/404.html:5 templates/404.html.py:9 -msgid "Page not found" +#: views.py:44 +msgid "No action selected." msgstr "" -#: templates/404.html:11 -msgid "Sorry, but the requested page could not be found." +#: views.py:48 +msgid "Must select at least one item." msgstr "" -#: templates/calculate_form_title.html:8 +#: views.py:100 #, python-format -msgid "Details for %(object_name)s: %(object)s" +msgid "Unable to remove %(selection)s." msgstr "" -#: templates/calculate_form_title.html:10 +#: views.py:125 #, python-format -msgid "Details for: %(object)s" +msgid "Unable to add %(selection)s." msgstr "" -#: templates/calculate_form_title.html:15 +#: views.py:138 +msgid "Add" +msgstr "" + +#: views.py:149 +msgid "Remove" +msgstr "" + +#: views.py:172 +msgid "Current user details" +msgstr "" + +#: views.py:187 +msgid "Current user locale profile details" +msgstr "" + +#: views.py:204 +msgid "E-mail conflict, another user has that same email." +msgstr "" + +#: views.py:207 +msgid "Current user's details updated." +msgstr "" + +#: views.py:216 +msgid "Edit current user details" +msgstr "" + +#: views.py:239 +msgid "Current user's locale profile details updated." +msgstr "" + +#: views.py:248 +msgid "Edit current user locale profile details" +msgstr "" + +#: views.py:288 +msgid "Current user password change" +msgstr "" + +#: views.py:303 +msgid "Your password has been successfully changed." +msgstr "" + +#: views.py:314 #, python-format -msgid "Edit %(object_name)s: %(object)s" +msgid "Error saving %s details." msgstr "" -#: templates/calculate_form_title.html:17 +#: views.py:316 +msgid "Error saving details." +msgstr "" + +#: views.py:324 #, python-format -msgid "Edit: %(object)s" +msgid "%s details saved successfully." msgstr "" -#: templates/calculate_form_title.html:21 +#: views.py:326 +msgid "Details saved successfully." +msgstr "" + +#: views.py:338 #, python-format -msgid "Create new %(object_name)s" +msgid "Error creating new %s." msgstr "" -#: templates/calculate_form_title.html:23 -msgid "Create" +#: views.py:340 +msgid "Error creating object." msgstr "" -#: templates/generic_assign_remove.html:5 +#: views.py:347 #, python-format -msgid "Assign %(title)s %(object)s" +msgid "%s created successfully." msgstr "" -#: templates/generic_confirm.html:5 templates/generic_confirm.html.py:19 -msgid "Confirm" +#: views.py:349 +msgid "New object created successfully." msgstr "" -#: templates/generic_confirm.html:17 -msgid "Confirm delete" -msgstr "" - -#: templates/generic_confirm.html:33 -msgid "form icon" -msgstr "" - -#: templates/generic_confirm.html:41 +#: views.py:367 #, python-format -msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +msgid "Error deleting %s." msgstr "" -#: templates/generic_confirm.html:43 +#: views.py:369 +msgid "Error deleting object." +msgstr "" + +#: views.py:374 #, python-format -msgid "Are you sure you wish to delete: %(object)s?" +msgid "%s deleted successfully." msgstr "" -#: templates/generic_confirm.html:51 -msgid "Yes" +#: views.py:376 +msgid "Object deleted successfully." msgstr "" -#: templates/generic_confirm.html:55 -msgid "No" +#: widgets.py:60 +msgid "None" msgstr "" -#: templates/generic_form_instance.html:40 -#: templates/generic_form_subtemplate.html:59 -msgid "required" -msgstr "" +#~ msgid "%(selection)s added successfully added to %(right_list_title)s." +#~ msgstr "%(selection)s added successfully added to %(right_list_title)s." -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Save" -msgstr "" +#~ msgid "%(selection)s added successfully removed from %(right_list_title)s." +#~ msgstr "%(selection)s added successfully removed from %(right_list_title)s." -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Submit" -msgstr "" +#~ msgid "A5" +#~ msgstr "A5" -#: templates/generic_form_subtemplate.html:90 -msgid "Cancel" -msgstr "" +#~ msgid "A4" +#~ msgstr "A4" -#: templates/generic_list.html:8 templates/generic_list_horizontal.html:8 -#, python-format -msgid "List of %(title)s" -msgstr "" +#~ msgid "A3" +#~ msgstr "A3" -#: templates/generic_list_horizontal_subtemplate.html:24 -#: templates/generic_list_subtemplate.html:25 -#, python-format -msgid "" -"List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " -"%(page_number)s of %(total_pages)s)" -msgstr "" +#~ msgid "B5" +#~ msgstr "B5" -#: templates/generic_list_horizontal_subtemplate.html:26 -#: templates/generic_list_subtemplate.html:27 -#, python-format -msgid "List of %(title)s (%(total)s)" -msgstr "" +#~ msgid "B4" +#~ msgstr "B4" -#: templates/generic_list_subtemplate.html:73 -msgid "Identifier" -msgstr "" +#~ msgid "Letter" +#~ msgstr "Letter" -#: templates/generic_list_subtemplate.html:147 -#, python-format -msgid "There are no %(title)s" -msgstr "" +#~ msgid "Legal" +#~ msgstr "Legal" -#: templates/login.html:7 -msgid "Login" -msgstr "" +#~ msgid "Ledger" +#~ msgstr "Ledger" -#: templates/password_change_done.html:5 templates/password_change_form.html:5 -#: templates/password_change_form.html:7 -msgid "Password change" -msgstr "" +#~ msgid "Portrait" +#~ msgstr "Portrait" + +#~ msgid "Landscape" +#~ msgstr "Landscape" + +#~ msgid "license" +#~ msgstr "license" + +#~ msgid "anonymous user" +#~ msgstr "anonymous user" + +#~ msgid "password" +#~ msgstr "password" + +#~ msgid "Insufficient permissions" +#~ msgstr "Insufficient permissions" + +#~ msgid "You don't have enough permissions for this operation." +#~ msgstr "You don't have enough permissions for this operation." + +#~ msgid "Page not found" +#~ msgstr "Page not found" + +#~ msgid "Sorry, but the requested page could not be found." +#~ msgstr "Sorry, but the requested page could not be found." + +#~ msgid "Details for %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Details for: %(object)s" +#~ msgstr "Details for: %(object)s" + +#~ msgid "Edit %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Edit: %(object)s" +#~ msgstr "Edit %(object_name)s:" + +#~ msgid "Create new %(object_name)s" +#~ msgstr "Create new %(object_name)s" + +#~ msgid "Create" +#~ msgstr "Create" + +#~ msgid "Assign %(title)s %(object)s" +#~ msgstr "Assign %(title)s %(object)s" + +#~ msgid "Confirm" +#~ msgstr "Confirm" + +#~ msgid "Confirm delete" +#~ msgstr "Confirm delete" + +#~ msgid "form icon" +#~ msgstr "form icon" + +#~ msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +#~ msgstr "Are you sure you wish to delete %(object_name)s: %(object)s?" + +#~ msgid "Are you sure you wish to delete: %(object)s?" +#~ msgstr "Are you sure you wish to delete: %(object)s?" + +#~ msgid "Yes" +#~ msgstr "Yes" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "required" +#~ msgstr "required" + +#~ msgid "Save" +#~ msgstr "Save" + +#~ msgid "Submit" +#~ msgstr "Submit" + +#~ msgid "Cancel" +#~ msgstr "Cancel" + +#~ msgid "List of %(title)s" +#~ msgstr "List of %(stripped_title)s" + +#~ msgid "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" +#~ msgstr "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" + +#~ msgid "List of %(title)s (%(total)s)" +#~ msgstr "List of %(title)s (%(total)s)" + +#~ msgid "Identifier" +#~ msgstr "Identifier" + +#~ msgid "There are no %(title)s" +#~ msgstr "There are no %(stripped_title)s" + +#~ msgid "Login" +#~ msgstr "Login" + +#~ msgid "Password change" +#~ msgstr "Password change" + +#~ msgid "lock field" +#~ msgstr "lock field" + +#~ msgid "Edit" +#~ msgstr "Edit" diff --git a/mayan/apps/common/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/common/locale/hu/LC_MESSAGES/django.mo index 66f05a8371..4346e183ee 100644 Binary files a/mayan/apps/common/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/hu/LC_MESSAGES/django.po b/mayan/apps/common/locale/hu/LC_MESSAGES/django.po index 3625c370bd..33c754bedd 100644 --- a/mayan/apps/common/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/hu/LC_MESSAGES/django.po @@ -3,12 +3,13 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-12-12 06:05+0000\n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-17 07:03+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Hungarian (http://www.transifex.com/projects/p/mayan-edms/" "language/hu/)\n" @@ -18,390 +19,403 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: forms.py:97 +#: classes.py:40 +msgid "Available attributes: " +msgstr "" + +#: forms.py:98 msgid "Selection" msgstr "" -#: forms.py:128 +#: forms.py:143 msgid "Email" msgstr "" -#: forms.py:131 +#: forms.py:146 models.py:36 msgid "Password" msgstr "" -#: forms.py:134 +#: forms.py:149 msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." msgstr "" -#: forms.py:136 +#: forms.py:151 msgid "This account is inactive." msgstr "" #: links.py:10 -msgid "change password" +msgid "Change password" msgstr "" #: links.py:11 -msgid "user details" +msgid "User details" msgstr "" #: links.py:12 -msgid "edit details" +msgid "Edit details" msgstr "" #: links.py:14 -msgid "about" +msgid "About" msgstr "" -#: links.py:15 -msgid "license" -msgstr "" - -#: literals.py:24 -msgid "A5" -msgstr "" - -#: literals.py:25 -msgid "A4" -msgstr "" - -#: literals.py:26 -msgid "A3" -msgstr "" - -#: literals.py:27 -msgid "B5" -msgstr "" - -#: literals.py:28 -msgid "B4" -msgstr "" - -#: literals.py:29 -msgid "Letter" -msgstr "" - -#: literals.py:30 -msgid "Legal" -msgstr "" - -#: literals.py:31 -msgid "Ledger" -msgstr "" - -#: literals.py:38 -msgid "Portrait" -msgstr "" - -#: literals.py:39 -msgid "Landscape" -msgstr "" - -#: models.py:17 -msgid "Anonymous user" -msgstr "" - -#: models.py:20 models.py:21 -msgid "anonymous user" -msgstr "" - -#: models.py:25 -msgid "account" -msgstr "" - -#: models.py:26 -msgid "password" -msgstr "" - -#: models.py:27 -msgid "password hash" -msgstr "" - -#: models.py:30 -msgid "auto admin properties" -msgstr "" - -#: utils.py:299 -msgid "function found" -msgstr "" - -#: views.py:39 -msgid "No action selected." -msgstr "" - -#: views.py:43 -msgid "Must select at least one item." -msgstr "" - -#: views.py:91 -#, python-format -msgid "%(selection)s added successfully added to %(right_list_title)s." -msgstr "" - -#: views.py:97 views.py:124 -#, python-format -msgid "Unable to add %(selection)s to %(right_list_title)s." -msgstr "" - -#: views.py:118 -#, python-format -msgid "%(selection)s added successfully removed from %(right_list_title)s." -msgstr "" - -#: views.py:139 -msgid "Add" -msgstr "" - -#: views.py:150 -msgid "Remove" -msgstr "" - -#: views.py:173 -msgid "current user details" -msgstr "" - -#: views.py:190 -msgid "E-mail conflict, another user has that same email." -msgstr "" - -#: views.py:193 -msgid "Current user's details updated." -msgstr "" - -#: views.py:202 -msgid "edit current user details" -msgstr "" - -#: views.py:233 +#: links.py:15 views.py:279 msgid "License" msgstr "" -#: views.py:242 -msgid "Current user password change" +#: links.py:17 +msgid "Locale profile" msgstr "" -#: views.py:257 templates/password_change_done.html:8 -msgid "Your password has been successfully changed." +#: links.py:18 +msgid "Edit locale profile" msgstr "" -#: views.py:303 -#, python-format -msgid "Error saving %s details." +#: links.py:20 +msgid "Logout" msgstr "" -#: views.py:305 -msgid "Error saving details." +#: models.py:28 models.py:31 +msgid "Anonymous user" msgstr "" -#: views.py:313 -#, python-format -msgid "%s details saved successfully." +#: models.py:35 +msgid "Account" msgstr "" -#: views.py:315 -msgid "Details saved successfully." +#: models.py:37 +msgid "Password hash" msgstr "" -#: views.py:327 -#, python-format -msgid "Error creating new %s." +#: models.py:40 +msgid "Auto admin properties" msgstr "" -#: views.py:329 -msgid "Error creating object." +#: models.py:44 +msgid "File" msgstr "" -#: views.py:336 -#, python-format -msgid "%s created successfully." +#: models.py:45 +msgid "Filename" msgstr "" -#: views.py:338 -msgid "New object created successfully." +#: models.py:46 +msgid "Date time" msgstr "" -#: views.py:356 -#, python-format -msgid "Error deleting %s." +#: models.py:49 +msgid "Shared uploaded file" msgstr "" -#: views.py:358 -msgid "Error deleting object." +#: models.py:50 +msgid "Shared uploaded files" msgstr "" -#: views.py:363 -#, python-format -msgid "%s deleted successfully." +#: models.py:61 +msgid "User" msgstr "" -#: views.py:365 -msgid "Object deleted successfully." +#: models.py:63 +msgid "Timezone" msgstr "" -#: widgets.py:58 -msgid "None" +#: models.py:64 +msgid "Language" msgstr "" -#: conf/settings.py:16 +#: models.py:70 +msgid "User locale profile" +msgstr "" + +#: models.py:71 +msgid "User locale profiles" +msgstr "" + +#: settings.py:14 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 "" -#: conf/settings.py:66 +#: settings.py:48 msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" msgstr "" -#: conf/settings.py:75 +#: settings.py:57 msgid "Allow non authenticated users, access to all views" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 -msgid "Insufficient permissions" +#: settings.py:66 +msgid "A storage backend that all workers can use to share files." msgstr "" -#: templates/403.html:11 -msgid "You don't have enough permissions for this operation." +#: utils.py:114 +msgid "Function found" msgstr "" -#: templates/404.html:5 templates/404.html.py:9 -msgid "Page not found" +#: views.py:44 +msgid "No action selected." msgstr "" -#: templates/404.html:11 -msgid "Sorry, but the requested page could not be found." +#: views.py:48 +msgid "Must select at least one item." msgstr "" -#: templates/calculate_form_title.html:8 +#: views.py:100 #, python-format -msgid "Details for %(object_name)s: %(object)s" +msgid "Unable to remove %(selection)s." msgstr "" -#: templates/calculate_form_title.html:10 +#: views.py:125 #, python-format -msgid "Details for: %(object)s" +msgid "Unable to add %(selection)s." msgstr "" -#: templates/calculate_form_title.html:15 +#: views.py:138 +msgid "Add" +msgstr "" + +#: views.py:149 +msgid "Remove" +msgstr "" + +#: views.py:172 +msgid "Current user details" +msgstr "" + +#: views.py:187 +msgid "Current user locale profile details" +msgstr "" + +#: views.py:204 +msgid "E-mail conflict, another user has that same email." +msgstr "" + +#: views.py:207 +msgid "Current user's details updated." +msgstr "" + +#: views.py:216 +msgid "Edit current user details" +msgstr "" + +#: views.py:239 +msgid "Current user's locale profile details updated." +msgstr "" + +#: views.py:248 +msgid "Edit current user locale profile details" +msgstr "" + +#: views.py:288 +msgid "Current user password change" +msgstr "" + +#: views.py:303 +msgid "Your password has been successfully changed." +msgstr "" + +#: views.py:314 #, python-format -msgid "Edit %(object_name)s: %(object)s" +msgid "Error saving %s details." msgstr "" -#: templates/calculate_form_title.html:17 +#: views.py:316 +msgid "Error saving details." +msgstr "" + +#: views.py:324 #, python-format -msgid "Edit: %(object)s" +msgid "%s details saved successfully." msgstr "" -#: templates/calculate_form_title.html:21 +#: views.py:326 +msgid "Details saved successfully." +msgstr "" + +#: views.py:338 #, python-format -msgid "Create new %(object_name)s" +msgid "Error creating new %s." msgstr "" -#: templates/calculate_form_title.html:23 -msgid "Create" +#: views.py:340 +msgid "Error creating object." msgstr "" -#: templates/generic_assign_remove.html:5 +#: views.py:347 #, python-format -msgid "Assign %(title)s %(object)s" +msgid "%s created successfully." msgstr "" -#: templates/generic_confirm.html:5 templates/generic_confirm.html.py:19 -msgid "Confirm" +#: views.py:349 +msgid "New object created successfully." msgstr "" -#: templates/generic_confirm.html:17 -msgid "Confirm delete" -msgstr "" - -#: templates/generic_confirm.html:33 -msgid "form icon" -msgstr "" - -#: templates/generic_confirm.html:41 +#: views.py:367 #, python-format -msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +msgid "Error deleting %s." msgstr "" -#: templates/generic_confirm.html:43 +#: views.py:369 +msgid "Error deleting object." +msgstr "" + +#: views.py:374 #, python-format -msgid "Are you sure you wish to delete: %(object)s?" +msgid "%s deleted successfully." msgstr "" -#: templates/generic_confirm.html:51 -msgid "Yes" +#: views.py:376 +msgid "Object deleted successfully." msgstr "" -#: templates/generic_confirm.html:55 -msgid "No" +#: widgets.py:60 +msgid "None" msgstr "" -#: templates/generic_form_instance.html:40 -#: templates/generic_form_subtemplate.html:59 -msgid "required" -msgstr "" +#~ msgid "%(selection)s added successfully added to %(right_list_title)s." +#~ msgstr "%(selection)s added successfully added to %(right_list_title)s." -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Save" -msgstr "" +#~ msgid "%(selection)s added successfully removed from %(right_list_title)s." +#~ msgstr "%(selection)s added successfully removed from %(right_list_title)s." -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Submit" -msgstr "" +#~ msgid "A5" +#~ msgstr "A5" -#: templates/generic_form_subtemplate.html:90 -msgid "Cancel" -msgstr "" +#~ msgid "A4" +#~ msgstr "A4" -#: templates/generic_list.html:8 templates/generic_list_horizontal.html:8 -#, python-format -msgid "List of %(title)s" -msgstr "" +#~ msgid "A3" +#~ msgstr "A3" -#: templates/generic_list_horizontal_subtemplate.html:24 -#: templates/generic_list_subtemplate.html:25 -#, python-format -msgid "" -"List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " -"%(page_number)s of %(total_pages)s)" -msgstr "" +#~ msgid "B5" +#~ msgstr "B5" -#: templates/generic_list_horizontal_subtemplate.html:26 -#: templates/generic_list_subtemplate.html:27 -#, python-format -msgid "List of %(title)s (%(total)s)" -msgstr "" +#~ msgid "B4" +#~ msgstr "B4" -#: templates/generic_list_subtemplate.html:73 -msgid "Identifier" -msgstr "" +#~ msgid "Letter" +#~ msgstr "Letter" -#: templates/generic_list_subtemplate.html:147 -#, python-format -msgid "There are no %(title)s" -msgstr "" +#~ msgid "Legal" +#~ msgstr "Legal" -#: templates/login.html:7 -msgid "Login" -msgstr "" +#~ msgid "Ledger" +#~ msgstr "Ledger" -#: templates/password_change_done.html:5 templates/password_change_form.html:5 -#: templates/password_change_form.html:7 -msgid "Password change" -msgstr "" +#~ msgid "Portrait" +#~ msgstr "Portrait" + +#~ msgid "Landscape" +#~ msgstr "Landscape" + +#~ msgid "license" +#~ msgstr "license" + +#~ msgid "anonymous user" +#~ msgstr "anonymous user" + +#~ msgid "password" +#~ msgstr "password" + +#~ msgid "Insufficient permissions" +#~ msgstr "Insufficient permissions" + +#~ msgid "You don't have enough permissions for this operation." +#~ msgstr "You don't have enough permissions for this operation." + +#~ msgid "Page not found" +#~ msgstr "Page not found" + +#~ msgid "Sorry, but the requested page could not be found." +#~ msgstr "Sorry, but the requested page could not be found." + +#~ msgid "Details for %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Details for: %(object)s" +#~ msgstr "Details for: %(object)s" + +#~ msgid "Edit %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Edit: %(object)s" +#~ msgstr "Edit %(object_name)s:" + +#~ msgid "Create new %(object_name)s" +#~ msgstr "Create new %(object_name)s" + +#~ msgid "Create" +#~ msgstr "Create" + +#~ msgid "Assign %(title)s %(object)s" +#~ msgstr "Assign %(title)s %(object)s" + +#~ msgid "Confirm" +#~ msgstr "Confirm" + +#~ msgid "Confirm delete" +#~ msgstr "Confirm delete" + +#~ msgid "form icon" +#~ msgstr "form icon" + +#~ msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +#~ msgstr "Are you sure you wish to delete %(object_name)s: %(object)s?" + +#~ msgid "Are you sure you wish to delete: %(object)s?" +#~ msgstr "Are you sure you wish to delete: %(object)s?" + +#~ msgid "Yes" +#~ msgstr "Yes" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "required" +#~ msgstr "required" + +#~ msgid "Save" +#~ msgstr "Save" + +#~ msgid "Submit" +#~ msgstr "Submit" + +#~ msgid "Cancel" +#~ msgstr "Cancel" + +#~ msgid "List of %(title)s" +#~ msgstr "List of %(stripped_title)s" + +#~ msgid "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" +#~ msgstr "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" + +#~ msgid "List of %(title)s (%(total)s)" +#~ msgstr "List of %(title)s (%(total)s)" + +#~ msgid "Identifier" +#~ msgstr "Identifier" + +#~ msgid "There are no %(title)s" +#~ msgstr "There are no %(stripped_title)s" + +#~ msgid "Login" +#~ msgstr "Login" + +#~ msgid "Password change" +#~ msgstr "Password change" + +#~ msgid "lock field" +#~ msgstr "lock field" + +#~ msgid "Edit" +#~ msgstr "Edit" diff --git a/mayan/apps/common/locale/id/LC_MESSAGES/django.mo b/mayan/apps/common/locale/id/LC_MESSAGES/django.mo index c4b68e2946..ed0be124aa 100644 Binary files a/mayan/apps/common/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/id/LC_MESSAGES/django.po b/mayan/apps/common/locale/id/LC_MESSAGES/django.po index 296907d26e..7f6ddfd128 100644 --- a/mayan/apps/common/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/id/LC_MESSAGES/django.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2011-09-30 04:55+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-17 07:03+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Indonesian (http://www.transifex.com/projects/p/mayan-edms/" "language/id/)\n" "Language: id\n" @@ -18,390 +19,403 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: forms.py:97 +#: classes.py:40 +msgid "Available attributes: " +msgstr "" + +#: forms.py:98 msgid "Selection" msgstr "" -#: forms.py:128 +#: forms.py:143 msgid "Email" msgstr "" -#: forms.py:131 +#: forms.py:146 models.py:36 msgid "Password" msgstr "" -#: forms.py:134 +#: forms.py:149 msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." msgstr "" -#: forms.py:136 +#: forms.py:151 msgid "This account is inactive." msgstr "" #: links.py:10 -msgid "change password" +msgid "Change password" msgstr "" #: links.py:11 -msgid "user details" +msgid "User details" msgstr "" #: links.py:12 -msgid "edit details" +msgid "Edit details" msgstr "" #: links.py:14 -msgid "about" +msgid "About" msgstr "" -#: links.py:15 -msgid "license" -msgstr "" - -#: literals.py:24 -msgid "A5" -msgstr "" - -#: literals.py:25 -msgid "A4" -msgstr "" - -#: literals.py:26 -msgid "A3" -msgstr "" - -#: literals.py:27 -msgid "B5" -msgstr "" - -#: literals.py:28 -msgid "B4" -msgstr "" - -#: literals.py:29 -msgid "Letter" -msgstr "" - -#: literals.py:30 -msgid "Legal" -msgstr "" - -#: literals.py:31 -msgid "Ledger" -msgstr "" - -#: literals.py:38 -msgid "Portrait" -msgstr "" - -#: literals.py:39 -msgid "Landscape" -msgstr "" - -#: models.py:17 -msgid "Anonymous user" -msgstr "" - -#: models.py:20 models.py:21 -msgid "anonymous user" -msgstr "" - -#: models.py:25 -msgid "account" -msgstr "" - -#: models.py:26 -msgid "password" -msgstr "" - -#: models.py:27 -msgid "password hash" -msgstr "" - -#: models.py:30 -msgid "auto admin properties" -msgstr "" - -#: utils.py:299 -msgid "function found" -msgstr "" - -#: views.py:39 -msgid "No action selected." -msgstr "" - -#: views.py:43 -msgid "Must select at least one item." -msgstr "" - -#: views.py:91 -#, python-format -msgid "%(selection)s added successfully added to %(right_list_title)s." -msgstr "" - -#: views.py:97 views.py:124 -#, python-format -msgid "Unable to add %(selection)s to %(right_list_title)s." -msgstr "" - -#: views.py:118 -#, python-format -msgid "%(selection)s added successfully removed from %(right_list_title)s." -msgstr "" - -#: views.py:139 -msgid "Add" -msgstr "" - -#: views.py:150 -msgid "Remove" -msgstr "" - -#: views.py:173 -msgid "current user details" -msgstr "" - -#: views.py:190 -msgid "E-mail conflict, another user has that same email." -msgstr "" - -#: views.py:193 -msgid "Current user's details updated." -msgstr "" - -#: views.py:202 -msgid "edit current user details" -msgstr "" - -#: views.py:233 +#: links.py:15 views.py:279 msgid "License" msgstr "" -#: views.py:242 -msgid "Current user password change" +#: links.py:17 +msgid "Locale profile" msgstr "" -#: views.py:257 templates/password_change_done.html:8 -msgid "Your password has been successfully changed." +#: links.py:18 +msgid "Edit locale profile" msgstr "" -#: views.py:303 -#, python-format -msgid "Error saving %s details." +#: links.py:20 +msgid "Logout" msgstr "" -#: views.py:305 -msgid "Error saving details." +#: models.py:28 models.py:31 +msgid "Anonymous user" msgstr "" -#: views.py:313 -#, python-format -msgid "%s details saved successfully." +#: models.py:35 +msgid "Account" msgstr "" -#: views.py:315 -msgid "Details saved successfully." +#: models.py:37 +msgid "Password hash" msgstr "" -#: views.py:327 -#, python-format -msgid "Error creating new %s." +#: models.py:40 +msgid "Auto admin properties" msgstr "" -#: views.py:329 -msgid "Error creating object." +#: models.py:44 +msgid "File" msgstr "" -#: views.py:336 -#, python-format -msgid "%s created successfully." +#: models.py:45 +msgid "Filename" msgstr "" -#: views.py:338 -msgid "New object created successfully." +#: models.py:46 +msgid "Date time" msgstr "" -#: views.py:356 -#, python-format -msgid "Error deleting %s." +#: models.py:49 +msgid "Shared uploaded file" msgstr "" -#: views.py:358 -msgid "Error deleting object." +#: models.py:50 +msgid "Shared uploaded files" msgstr "" -#: views.py:363 -#, python-format -msgid "%s deleted successfully." +#: models.py:61 +msgid "User" msgstr "" -#: views.py:365 -msgid "Object deleted successfully." +#: models.py:63 +msgid "Timezone" msgstr "" -#: widgets.py:58 -msgid "None" +#: models.py:64 +msgid "Language" msgstr "" -#: conf/settings.py:16 +#: models.py:70 +msgid "User locale profile" +msgstr "" + +#: models.py:71 +msgid "User locale profiles" +msgstr "" + +#: settings.py:14 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 "" -#: conf/settings.py:66 +#: settings.py:48 msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" msgstr "" -#: conf/settings.py:75 +#: settings.py:57 msgid "Allow non authenticated users, access to all views" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 -msgid "Insufficient permissions" +#: settings.py:66 +msgid "A storage backend that all workers can use to share files." msgstr "" -#: templates/403.html:11 -msgid "You don't have enough permissions for this operation." +#: utils.py:114 +msgid "Function found" msgstr "" -#: templates/404.html:5 templates/404.html.py:9 -msgid "Page not found" +#: views.py:44 +msgid "No action selected." msgstr "" -#: templates/404.html:11 -msgid "Sorry, but the requested page could not be found." +#: views.py:48 +msgid "Must select at least one item." msgstr "" -#: templates/calculate_form_title.html:8 +#: views.py:100 #, python-format -msgid "Details for %(object_name)s: %(object)s" +msgid "Unable to remove %(selection)s." msgstr "" -#: templates/calculate_form_title.html:10 +#: views.py:125 #, python-format -msgid "Details for: %(object)s" +msgid "Unable to add %(selection)s." msgstr "" -#: templates/calculate_form_title.html:15 +#: views.py:138 +msgid "Add" +msgstr "" + +#: views.py:149 +msgid "Remove" +msgstr "" + +#: views.py:172 +msgid "Current user details" +msgstr "" + +#: views.py:187 +msgid "Current user locale profile details" +msgstr "" + +#: views.py:204 +msgid "E-mail conflict, another user has that same email." +msgstr "" + +#: views.py:207 +msgid "Current user's details updated." +msgstr "" + +#: views.py:216 +msgid "Edit current user details" +msgstr "" + +#: views.py:239 +msgid "Current user's locale profile details updated." +msgstr "" + +#: views.py:248 +msgid "Edit current user locale profile details" +msgstr "" + +#: views.py:288 +msgid "Current user password change" +msgstr "" + +#: views.py:303 +msgid "Your password has been successfully changed." +msgstr "" + +#: views.py:314 #, python-format -msgid "Edit %(object_name)s: %(object)s" +msgid "Error saving %s details." msgstr "" -#: templates/calculate_form_title.html:17 +#: views.py:316 +msgid "Error saving details." +msgstr "" + +#: views.py:324 #, python-format -msgid "Edit: %(object)s" +msgid "%s details saved successfully." msgstr "" -#: templates/calculate_form_title.html:21 +#: views.py:326 +msgid "Details saved successfully." +msgstr "" + +#: views.py:338 #, python-format -msgid "Create new %(object_name)s" +msgid "Error creating new %s." msgstr "" -#: templates/calculate_form_title.html:23 -msgid "Create" +#: views.py:340 +msgid "Error creating object." msgstr "" -#: templates/generic_assign_remove.html:5 +#: views.py:347 #, python-format -msgid "Assign %(title)s %(object)s" +msgid "%s created successfully." msgstr "" -#: templates/generic_confirm.html:5 templates/generic_confirm.html.py:19 -msgid "Confirm" +#: views.py:349 +msgid "New object created successfully." msgstr "" -#: templates/generic_confirm.html:17 -msgid "Confirm delete" -msgstr "" - -#: templates/generic_confirm.html:33 -msgid "form icon" -msgstr "" - -#: templates/generic_confirm.html:41 +#: views.py:367 #, python-format -msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +msgid "Error deleting %s." msgstr "" -#: templates/generic_confirm.html:43 +#: views.py:369 +msgid "Error deleting object." +msgstr "" + +#: views.py:374 #, python-format -msgid "Are you sure you wish to delete: %(object)s?" +msgid "%s deleted successfully." msgstr "" -#: templates/generic_confirm.html:51 -msgid "Yes" +#: views.py:376 +msgid "Object deleted successfully." msgstr "" -#: templates/generic_confirm.html:55 -msgid "No" +#: widgets.py:60 +msgid "None" msgstr "" -#: templates/generic_form_instance.html:40 -#: templates/generic_form_subtemplate.html:59 -msgid "required" -msgstr "" +#~ msgid "%(selection)s added successfully added to %(right_list_title)s." +#~ msgstr "%(selection)s added successfully added to %(right_list_title)s." -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Save" -msgstr "" +#~ msgid "%(selection)s added successfully removed from %(right_list_title)s." +#~ msgstr "%(selection)s added successfully removed from %(right_list_title)s." -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Submit" -msgstr "" +#~ msgid "A5" +#~ msgstr "A5" -#: templates/generic_form_subtemplate.html:90 -msgid "Cancel" -msgstr "" +#~ msgid "A4" +#~ msgstr "A4" -#: templates/generic_list.html:8 templates/generic_list_horizontal.html:8 -#, python-format -msgid "List of %(title)s" -msgstr "" +#~ msgid "A3" +#~ msgstr "A3" -#: templates/generic_list_horizontal_subtemplate.html:24 -#: templates/generic_list_subtemplate.html:25 -#, python-format -msgid "" -"List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " -"%(page_number)s of %(total_pages)s)" -msgstr "" +#~ msgid "B5" +#~ msgstr "B5" -#: templates/generic_list_horizontal_subtemplate.html:26 -#: templates/generic_list_subtemplate.html:27 -#, python-format -msgid "List of %(title)s (%(total)s)" -msgstr "" +#~ msgid "B4" +#~ msgstr "B4" -#: templates/generic_list_subtemplate.html:73 -msgid "Identifier" -msgstr "" +#~ msgid "Letter" +#~ msgstr "Letter" -#: templates/generic_list_subtemplate.html:147 -#, python-format -msgid "There are no %(title)s" -msgstr "" +#~ msgid "Legal" +#~ msgstr "Legal" -#: templates/login.html:7 -msgid "Login" -msgstr "" +#~ msgid "Ledger" +#~ msgstr "Ledger" -#: templates/password_change_done.html:5 templates/password_change_form.html:5 -#: templates/password_change_form.html:7 -msgid "Password change" -msgstr "" +#~ msgid "Portrait" +#~ msgstr "Portrait" + +#~ msgid "Landscape" +#~ msgstr "Landscape" + +#~ msgid "license" +#~ msgstr "license" + +#~ msgid "anonymous user" +#~ msgstr "anonymous user" + +#~ msgid "password" +#~ msgstr "password" + +#~ msgid "Insufficient permissions" +#~ msgstr "Insufficient permissions" + +#~ msgid "You don't have enough permissions for this operation." +#~ msgstr "You don't have enough permissions for this operation." + +#~ msgid "Page not found" +#~ msgstr "Page not found" + +#~ msgid "Sorry, but the requested page could not be found." +#~ msgstr "Sorry, but the requested page could not be found." + +#~ msgid "Details for %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Details for: %(object)s" +#~ msgstr "Details for: %(object)s" + +#~ msgid "Edit %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Edit: %(object)s" +#~ msgstr "Edit %(object_name)s:" + +#~ msgid "Create new %(object_name)s" +#~ msgstr "Create new %(object_name)s" + +#~ msgid "Create" +#~ msgstr "Create" + +#~ msgid "Assign %(title)s %(object)s" +#~ msgstr "Assign %(title)s %(object)s" + +#~ msgid "Confirm" +#~ msgstr "Confirm" + +#~ msgid "Confirm delete" +#~ msgstr "Confirm delete" + +#~ msgid "form icon" +#~ msgstr "form icon" + +#~ msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +#~ msgstr "Are you sure you wish to delete %(object_name)s: %(object)s?" + +#~ msgid "Are you sure you wish to delete: %(object)s?" +#~ msgstr "Are you sure you wish to delete: %(object)s?" + +#~ msgid "Yes" +#~ msgstr "Yes" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "required" +#~ msgstr "required" + +#~ msgid "Save" +#~ msgstr "Save" + +#~ msgid "Submit" +#~ msgstr "Submit" + +#~ msgid "Cancel" +#~ msgstr "Cancel" + +#~ msgid "List of %(title)s" +#~ msgstr "List of %(stripped_title)s" + +#~ msgid "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" +#~ msgstr "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" + +#~ msgid "List of %(title)s (%(total)s)" +#~ msgstr "List of %(title)s (%(total)s)" + +#~ msgid "Identifier" +#~ msgstr "Identifier" + +#~ msgid "There are no %(title)s" +#~ msgstr "There are no %(stripped_title)s" + +#~ msgid "Login" +#~ msgstr "Login" + +#~ msgid "Password change" +#~ msgstr "Password change" + +#~ msgid "lock field" +#~ msgstr "lock field" + +#~ msgid "Edit" +#~ msgstr "Edit" diff --git a/mayan/apps/common/locale/it/LC_MESSAGES/django.mo b/mayan/apps/common/locale/it/LC_MESSAGES/django.mo index b13068e95e..7a996189e2 100644 Binary files a/mayan/apps/common/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/it/LC_MESSAGES/django.po b/mayan/apps/common/locale/it/LC_MESSAGES/django.po index 27d8d1c9a7..52f1eef430 100644 --- a/mayan/apps/common/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/it/LC_MESSAGES/django.po @@ -3,18 +3,19 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: # Carlo Zanatto <>, 2012 # Giovanni Tricarico , 2014 # Pierpaolo Baldan , 2011 -# Pierpaolo Baldan , 2012 +# Pierpaolo Baldan , 2012,2015 # Roberto Rosario, 2012 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2014-01-11 12:02+0000\n" -"Last-Translator: Giovanni Tricarico \n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-29 08:38+0000\n" +"Last-Translator: Pierpaolo Baldan \n" "Language-Team: Italian (http://www.transifex.com/projects/p/mayan-edms/" "language/it/)\n" "Language: it\n" @@ -23,238 +24,123 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: forms.py:97 +#: classes.py:40 +msgid "Available attributes: " +msgstr "Attributi disponibili:" + +#: forms.py:98 msgid "Selection" msgstr "Selezione" -#: forms.py:128 +#: forms.py:143 msgid "Email" msgstr "Email" -#: forms.py:131 -#, fuzzy +#: forms.py:146 models.py:36 msgid "Password" -msgstr "password" +msgstr "Password" -#: forms.py:134 -#, fuzzy +#: forms.py:149 msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." msgstr "" -"Inserisci un'indirizzo mail valido e una password. Ricorda che il campo " -"password è case-sensitive" +"Inserisci una corretta email e password. Si noti che il campo password è " +"case-sensitive." -#: forms.py:136 +#: forms.py:151 msgid "This account is inactive." msgstr "Questo account è inattivo" #: links.py:10 -msgid "change password" -msgstr "cambia password" +msgid "Change password" +msgstr "Cambiare la password" #: links.py:11 -msgid "user details" -msgstr "dettaglio utente" +msgid "User details" +msgstr "Dettagli utente" #: links.py:12 -msgid "edit details" -msgstr "modifica dettagli" +msgid "Edit details" +msgstr "Modifica dettagli" #: links.py:14 -msgid "about" -msgstr "informazioni" +msgid "About" +msgstr "About" -#: links.py:15 -msgid "license" -msgstr "licenza" - -#: 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" - -#: models.py:17 -msgid "Anonymous user" -msgstr "Utente anonimo" - -#: models.py:20 models.py:21 -msgid "anonymous user" -msgstr "utente anonimo" - -#: models.py:25 -msgid "account" -msgstr "account " - -#: models.py:26 -msgid "password" -msgstr "password" - -#: models.py:27 -msgid "password hash" -msgstr "password hash" - -#: models.py:30 -msgid "auto admin properties" -msgstr "proprietà auto amministratore " - -#: utils.py:299 -msgid "function found" -msgstr "trovata funzione" - -#: views.py:39 -msgid "No action selected." -msgstr "Nessuna azione selezionata" - -#: views.py:43 -msgid "Must select at least one item." -msgstr "Devi selezionare un elemento" - -#: views.py:91 -#, 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:97 views.py:124 -#, 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:118 -#, 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:139 -msgid "Add" -msgstr "Aggiungi" - -#: views.py:150 -msgid "Remove" -msgstr "Rimuovi" - -#: views.py:173 -msgid "current user details" -msgstr "dettagli dell'utente corrente" - -#: views.py:190 -msgid "E-mail conflict, another user has that same email." -msgstr "E-mail conflitto, un altro utente ha quella stessa email." - -#: views.py:193 -msgid "Current user's details updated." -msgstr "Dettagli dell'utente corrente aggiornati" - -#: views.py:202 -msgid "edit current user details" -msgstr "modifica i dettagli dell'utente corrente" - -#: views.py:233 +#: links.py:15 views.py:279 msgid "License" msgstr "Licenza" -#: views.py:242 -msgid "Current user password change" -msgstr "Modifica della password dell'utente corrente" +#: links.py:17 +msgid "Locale profile" +msgstr "Profilo Locale" -#: views.py:257 templates/password_change_done.html:8 -msgid "Your password has been successfully changed." -msgstr "La tua password è stata cambiata con successo" +#: links.py:18 +msgid "Edit locale profile" +msgstr "Modifica profilo locale" -#: views.py:303 -#, python-format -msgid "Error saving %s details." +#: links.py:20 +msgid "Logout" +msgstr "Logout" + +#: models.py:28 models.py:31 +msgid "Anonymous user" +msgstr "Utente anonimo" + +#: models.py:35 +msgid "Account" +msgstr "Account" + +#: models.py:37 +msgid "Password hash" msgstr "" -#: views.py:305 -msgid "Error saving details." -msgstr "" +#: models.py:40 +msgid "Auto admin properties" +msgstr "Auto proprietà di amministrazione " -#: views.py:313 -#, python-format -msgid "%s details saved successfully." -msgstr "" +#: models.py:44 +msgid "File" +msgstr "File" -#: views.py:315 -msgid "Details saved successfully." -msgstr "" +#: models.py:45 +msgid "Filename" +msgstr "Filename" -#: views.py:327 -#, python-format -msgid "Error creating new %s." -msgstr "" +#: models.py:46 +msgid "Date time" +msgstr "Date time" -#: views.py:329 -msgid "Error creating object." -msgstr "" +#: models.py:49 +msgid "Shared uploaded file" +msgstr "Condividi file caricato" -#: views.py:336 -#, python-format -msgid "%s created successfully." -msgstr "" +#: models.py:50 +msgid "Shared uploaded files" +msgstr "Condividi files caricati" -#: views.py:338 -msgid "New object created successfully." -msgstr "" +#: models.py:61 +msgid "User" +msgstr "Utente" -#: views.py:356 -#, python-format -msgid "Error deleting %s." -msgstr "" +#: models.py:63 +msgid "Timezone" +msgstr "Fuso orario" -#: views.py:358 -msgid "Error deleting object." -msgstr "" +#: models.py:64 +msgid "Language" +msgstr "Lingua" -#: views.py:363 -#, python-format -msgid "%s deleted successfully." -msgstr "" +#: models.py:70 +msgid "User locale profile" +msgstr "Profilo utente locale" -#: views.py:365 -msgid "Object deleted successfully." -msgstr "" +#: models.py:71 +msgid "User locale profiles" +msgstr "Profili dell'utente locale" -#: widgets.py:58 -msgid "None" -msgstr "Nessuno" - -#: conf/settings.py:16 +#: settings.py:14 msgid "" "Temporary directory used site wide to store thumbnails, previews and " "temporary files. If none is specified, one will be created using tempfile." @@ -264,7 +150,7 @@ msgstr "" "file temporanei. Se nessuno è specificato, uno può essere creato usando " "tempfile.mkdtemp() " -#: conf/settings.py:66 +#: settings.py:48 msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" @@ -272,158 +158,278 @@ msgstr "" "Controllo del meccanismo di autenticazione. Le opzioni possibili sono:" "username,email" -#: conf/settings.py:75 +#: settings.py:57 msgid "Allow non authenticated users, access to all views" msgstr "Consentire agli utenti non autenticati, l'accesso a tutte le viste" -#: templates/403.html:5 templates/403.html.py:9 -msgid "Insufficient permissions" -msgstr "Permessi insufficienti" - -#: templates/403.html:11 -msgid "You don't have enough permissions for this operation." -msgstr "Non hai i permessi per effettuare questa operazione." - -#: templates/404.html:5 templates/404.html.py:9 -msgid "Page not found" -msgstr "Pagina non trovata" - -#: templates/404.html:11 -msgid "Sorry, but the requested page could not be found." -msgstr "Scusa ma la pagina richiesta non è disponibile" - -#: templates/calculate_form_title.html:8 -#, python-format -msgid "Details for %(object_name)s: %(object)s" -msgstr "Dettagli per %(object_name)s: %(object)s" - -#: templates/calculate_form_title.html:10 -#, python-format -msgid "Details for: %(object)s" -msgstr "Detaglio per: %(object)s" - -#: templates/calculate_form_title.html:15 -#, fuzzy, python-format -msgid "Edit %(object_name)s: %(object)s" -msgstr "Dettagli per %(object_name)s: %(object)s" - -#: templates/calculate_form_title.html:17 -#, fuzzy, python-format -msgid "Edit: %(object)s" -msgstr "Modifica %(object_name)s:" - -#: templates/calculate_form_title.html:21 -#, python-format -msgid "Create new %(object_name)s" -msgstr "Crea nuovo %(object_name)s" - -#: templates/calculate_form_title.html:23 -msgid "Create" -msgstr "Crea" - -#: templates/generic_assign_remove.html:5 -#, python-format -msgid "Assign %(title)s %(object)s" -msgstr "Assigna %(title)s %(object)s" - -#: templates/generic_confirm.html:5 templates/generic_confirm.html.py:19 -msgid "Confirm" -msgstr "Conferma" - -#: templates/generic_confirm.html:17 -msgid "Confirm delete" -msgstr "Conferma la cancellazione" - -#: templates/generic_confirm.html:33 -msgid "form icon" -msgstr "icona del modulo" - -#: templates/generic_confirm.html:41 -#, 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:43 -#, python-format -msgid "Are you sure you wish to delete: %(object)s?" -msgstr "Sei sicuro di volr cancellare: %(object)s?" - -#: templates/generic_confirm.html:51 -msgid "Yes" -msgstr "Si" - -#: templates/generic_confirm.html:55 -msgid "No" -msgstr "No" - -#: templates/generic_form_instance.html:40 -#: templates/generic_form_subtemplate.html:59 -msgid "required" -msgstr "richiesto" - -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Save" -msgstr "Salva" - -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Submit" -msgstr "Conferma" - -#: templates/generic_form_subtemplate.html:90 -msgid "Cancel" -msgstr "Annullare" - -#: templates/generic_list.html:8 templates/generic_list_horizontal.html:8 -#, fuzzy, python-format -msgid "List of %(title)s" -msgstr "Lista di %(stripped_title)s" - -#: templates/generic_list_horizontal_subtemplate.html:24 -#: templates/generic_list_subtemplate.html:25 -#, python-format -msgid "" -"List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " -"%(page_number)s of %(total_pages)s)" +#: settings.py:66 +msgid "A storage backend that all workers can use to share files." msgstr "" -"Lista di %(title)s (%(start)s - %(end)s fuori %(total)s) (Page " -"%(page_number)s of %(total_pages)s)" +"Un backend di memorizzazione che tutti i lavoratori possono utilizzare per " +"condividere i file." -#: templates/generic_list_horizontal_subtemplate.html:26 -#: templates/generic_list_subtemplate.html:27 +#: utils.py:114 +msgid "Function found" +msgstr "Trovata funzione" + +#: views.py:44 +msgid "No action selected." +msgstr "Nessuna azione selezionata" + +#: views.py:48 +msgid "Must select at least one item." +msgstr "Devi selezionare un elemento" + +#: views.py:100 #, python-format -msgid "List of %(title)s (%(total)s)" -msgstr "Lista di %(title)s (%(total)s)" +msgid "Unable to remove %(selection)s." +msgstr "Impossibile rimuovere %(selection)s." -#: templates/generic_list_subtemplate.html:73 -msgid "Identifier" -msgstr "Identificatore" +#: views.py:125 +#, python-format +msgid "Unable to add %(selection)s." +msgstr "Impossibile aggiungere %(selection)s." -#: templates/generic_list_subtemplate.html:147 -#, fuzzy, python-format -msgid "There are no %(title)s" -msgstr "Non ci sono %(stripped_title)s" +#: views.py:138 +msgid "Add" +msgstr "Aggiungi" -#: templates/login.html:7 -msgid "Login" -msgstr "Login" +#: views.py:149 +msgid "Remove" +msgstr "Rimuovi" -#: templates/password_change_done.html:5 templates/password_change_form.html:5 -#: templates/password_change_form.html:7 -msgid "Password change" -msgstr "Cambia password" +#: views.py:172 +msgid "Current user details" +msgstr "Dettagli dell'attuale utente" + +#: views.py:187 +msgid "Current user locale profile details" +msgstr "Dettagli del profilo dell'utente attuale" + +#: views.py:204 +msgid "E-mail conflict, another user has that same email." +msgstr "E-mail conflitto, un altro utente ha quella stessa email." + +#: views.py:207 +msgid "Current user's details updated." +msgstr "Dettagli dell'utente corrente aggiornati" + +#: views.py:216 +msgid "Edit current user details" +msgstr "Modificare i dati dell'utente attuale" + +#: views.py:239 +msgid "Current user's locale profile details updated." +msgstr "Dettagli del profilo locale dell'utente attuale aggiornati." + +#: views.py:248 +msgid "Edit current user locale profile details" +msgstr "Modificare i dettagli del profilo corrente dell'utente" + +#: views.py:288 +msgid "Current user password change" +msgstr "Modifica della password dell'utente corrente" + +#: views.py:303 +msgid "Your password has been successfully changed." +msgstr "La tua password è stata cambiata con successo" + +#: views.py:314 +#, python-format +msgid "Error saving %s details." +msgstr "Errore nel salvataggio %s dei dettagli" + +#: views.py:316 +msgid "Error saving details." +msgstr "Dettagli errore di salvataggio." + +#: views.py:324 +#, python-format +msgid "%s details saved successfully." +msgstr "%s dettagli salvati con successo" + +#: views.py:326 +msgid "Details saved successfully." +msgstr "Dettagli salvati correttamente." + +#: views.py:338 +#, python-format +msgid "Error creating new %s." +msgstr "Errore nella creazione del nuovo %s." + +#: views.py:340 +msgid "Error creating object." +msgstr "Errore nella creazione dell'oggetto" + +#: views.py:347 +#, python-format +msgid "%s created successfully." +msgstr "%s creato con successo" + +#: views.py:349 +msgid "New object created successfully." +msgstr "Nuovo oggetto creato con successo." + +#: views.py:367 +#, python-format +msgid "Error deleting %s." +msgstr "Errore nel cancellare %s." + +#: views.py:369 +msgid "Error deleting object." +msgstr "Errore nel cancellare l'oggetto." + +#: views.py:374 +#, python-format +msgid "%s deleted successfully." +msgstr "%s cancellato con successo" + +#: views.py:376 +msgid "Object deleted successfully." +msgstr "Oggetto cancellato con successo" + +#: widgets.py:60 +msgid "None" +msgstr "Nessuno" + +#~ msgid "%(selection)s added successfully added to %(right_list_title)s." +#~ msgstr "%(selection)s added successfully added to %(right_list_title)s." + +#~ msgid "%(selection)s added successfully removed from %(right_list_title)s." +#~ msgstr "%(selection)s added successfully removed from %(right_list_title)s." + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "Letter" +#~ msgstr "Letter" + +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Ledger" +#~ msgstr "Ledger" + +#~ msgid "Portrait" +#~ msgstr "Portrait" + +#~ msgid "Landscape" +#~ msgstr "Landscape" + +#~ msgid "license" +#~ msgstr "license" + +#~ msgid "anonymous user" +#~ msgstr "anonymous user" + +#~ msgid "password" +#~ msgstr "password" + +#~ msgid "Insufficient permissions" +#~ msgstr "Insufficient permissions" + +#~ msgid "You don't have enough permissions for this operation." +#~ msgstr "You don't have enough permissions for this operation." + +#~ msgid "Page not found" +#~ msgstr "Page not found" + +#~ msgid "Sorry, but the requested page could not be found." +#~ msgstr "Sorry, but the requested page could not be found." + +#~ msgid "Details for %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Details for: %(object)s" +#~ msgstr "Details for: %(object)s" + +#~ msgid "Edit %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Edit: %(object)s" +#~ msgstr "Edit %(object_name)s:" + +#~ msgid "Create new %(object_name)s" +#~ msgstr "Create new %(object_name)s" + +#~ msgid "Create" +#~ msgstr "Create" + +#~ msgid "Assign %(title)s %(object)s" +#~ msgstr "Assign %(title)s %(object)s" + +#~ msgid "Confirm" +#~ msgstr "Confirm" + +#~ msgid "Confirm delete" +#~ msgstr "Confirm delete" + +#~ msgid "form icon" +#~ msgstr "form icon" + +#~ msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +#~ msgstr "Are you sure you wish to delete %(object_name)s: %(object)s?" + +#~ msgid "Are you sure you wish to delete: %(object)s?" +#~ msgstr "Are you sure you wish to delete: %(object)s?" + +#~ msgid "Yes" +#~ msgstr "Yes" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "required" +#~ msgstr "required" + +#~ msgid "Save" +#~ msgstr "Save" + +#~ msgid "Submit" +#~ msgstr "Submit" + +#~ msgid "Cancel" +#~ msgstr "Cancel" + +#~ msgid "List of %(title)s" +#~ msgstr "List of %(stripped_title)s" + +#~ msgid "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" +#~ msgstr "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" + +#~ msgid "List of %(title)s (%(total)s)" +#~ msgstr "List of %(title)s (%(total)s)" + +#~ msgid "Identifier" +#~ msgstr "Identifier" + +#~ msgid "There are no %(title)s" +#~ msgstr "There are no %(stripped_title)s" + +#~ msgid "Login" +#~ msgstr "Login" + +#~ msgid "Password change" +#~ msgstr "Password change" #~ msgid "lock field" -#~ msgstr "blocca campo" +#~ msgstr "lock field" #~ msgid "Edit" -#~ msgstr "Modifica" +#~ msgstr "Edit" diff --git a/mayan/apps/common/locale/lv/LC_MESSAGES/django.mo b/mayan/apps/common/locale/lv/LC_MESSAGES/django.mo new file mode 100644 index 0000000000..30259057c1 Binary files /dev/null and b/mayan/apps/common/locale/lv/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/lv/LC_MESSAGES/django.po b/mayan/apps/common/locale/lv/LC_MESSAGES/django.po new file mode 100644 index 0000000000..c3feae4c7d --- /dev/null +++ b/mayan/apps/common/locale/lv/LC_MESSAGES/django.po @@ -0,0 +1,422 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-17 07:03+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Latvian (http://www.transifex.com/projects/p/mayan-edms/" +"language/lv/)\n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: classes.py:40 +msgid "Available attributes: " +msgstr "" + +#: forms.py:98 +msgid "Selection" +msgstr "" + +#: forms.py:143 +msgid "Email" +msgstr "" + +#: forms.py:146 models.py:36 +msgid "Password" +msgstr "" + +#: forms.py:149 +msgid "" +"Please enter a correct email and password. Note that the password field is " +"case-sensitive." +msgstr "" + +#: forms.py:151 +msgid "This account is inactive." +msgstr "" + +#: links.py:10 +msgid "Change password" +msgstr "" + +#: links.py:11 +msgid "User details" +msgstr "" + +#: links.py:12 +msgid "Edit details" +msgstr "" + +#: links.py:14 +msgid "About" +msgstr "" + +#: links.py:15 views.py:279 +msgid "License" +msgstr "" + +#: links.py:17 +msgid "Locale profile" +msgstr "" + +#: links.py:18 +msgid "Edit locale profile" +msgstr "" + +#: links.py:20 +msgid "Logout" +msgstr "" + +#: models.py:28 models.py:31 +msgid "Anonymous user" +msgstr "" + +#: models.py:35 +msgid "Account" +msgstr "" + +#: models.py:37 +msgid "Password hash" +msgstr "" + +#: models.py:40 +msgid "Auto admin properties" +msgstr "" + +#: models.py:44 +msgid "File" +msgstr "" + +#: models.py:45 +msgid "Filename" +msgstr "" + +#: models.py:46 +msgid "Date time" +msgstr "" + +#: models.py:49 +msgid "Shared uploaded file" +msgstr "" + +#: models.py:50 +msgid "Shared uploaded files" +msgstr "" + +#: models.py:61 +msgid "User" +msgstr "" + +#: models.py:63 +msgid "Timezone" +msgstr "" + +#: models.py:64 +msgid "Language" +msgstr "" + +#: models.py:70 +msgid "User locale profile" +msgstr "" + +#: models.py:71 +msgid "User locale profiles" +msgstr "" + +#: settings.py:14 +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 "" + +#: settings.py:48 +msgid "" +"Controls the mechanism used to authenticated user. Options are: username, " +"email" +msgstr "" + +#: settings.py:57 +msgid "Allow non authenticated users, access to all views" +msgstr "" + +#: settings.py:66 +msgid "A storage backend that all workers can use to share files." +msgstr "" + +#: utils.py:114 +msgid "Function found" +msgstr "" + +#: views.py:44 +msgid "No action selected." +msgstr "" + +#: views.py:48 +msgid "Must select at least one item." +msgstr "" + +#: views.py:100 +#, python-format +msgid "Unable to remove %(selection)s." +msgstr "" + +#: views.py:125 +#, python-format +msgid "Unable to add %(selection)s." +msgstr "" + +#: views.py:138 +msgid "Add" +msgstr "" + +#: views.py:149 +msgid "Remove" +msgstr "" + +#: views.py:172 +msgid "Current user details" +msgstr "" + +#: views.py:187 +msgid "Current user locale profile details" +msgstr "" + +#: views.py:204 +msgid "E-mail conflict, another user has that same email." +msgstr "" + +#: views.py:207 +msgid "Current user's details updated." +msgstr "" + +#: views.py:216 +msgid "Edit current user details" +msgstr "" + +#: views.py:239 +msgid "Current user's locale profile details updated." +msgstr "" + +#: views.py:248 +msgid "Edit current user locale profile details" +msgstr "" + +#: views.py:288 +msgid "Current user password change" +msgstr "" + +#: views.py:303 +msgid "Your password has been successfully changed." +msgstr "" + +#: views.py:314 +#, python-format +msgid "Error saving %s details." +msgstr "" + +#: views.py:316 +msgid "Error saving details." +msgstr "" + +#: views.py:324 +#, python-format +msgid "%s details saved successfully." +msgstr "" + +#: views.py:326 +msgid "Details saved successfully." +msgstr "" + +#: views.py:338 +#, python-format +msgid "Error creating new %s." +msgstr "" + +#: views.py:340 +msgid "Error creating object." +msgstr "" + +#: views.py:347 +#, python-format +msgid "%s created successfully." +msgstr "" + +#: views.py:349 +msgid "New object created successfully." +msgstr "" + +#: views.py:367 +#, python-format +msgid "Error deleting %s." +msgstr "" + +#: views.py:369 +msgid "Error deleting object." +msgstr "" + +#: views.py:374 +#, python-format +msgid "%s deleted successfully." +msgstr "" + +#: views.py:376 +msgid "Object deleted successfully." +msgstr "" + +#: widgets.py:60 +msgid "None" +msgstr "" + +#~ msgid "%(selection)s added successfully added to %(right_list_title)s." +#~ msgstr "%(selection)s added successfully added to %(right_list_title)s." + +#~ msgid "%(selection)s added successfully removed from %(right_list_title)s." +#~ msgstr "%(selection)s added successfully removed from %(right_list_title)s." + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "Letter" +#~ msgstr "Letter" + +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Ledger" +#~ msgstr "Ledger" + +#~ msgid "Portrait" +#~ msgstr "Portrait" + +#~ msgid "Landscape" +#~ msgstr "Landscape" + +#~ msgid "license" +#~ msgstr "license" + +#~ msgid "anonymous user" +#~ msgstr "anonymous user" + +#~ msgid "password" +#~ msgstr "password" + +#~ msgid "Insufficient permissions" +#~ msgstr "Insufficient permissions" + +#~ msgid "You don't have enough permissions for this operation." +#~ msgstr "You don't have enough permissions for this operation." + +#~ msgid "Page not found" +#~ msgstr "Page not found" + +#~ msgid "Sorry, but the requested page could not be found." +#~ msgstr "Sorry, but the requested page could not be found." + +#~ msgid "Details for %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Details for: %(object)s" +#~ msgstr "Details for: %(object)s" + +#~ msgid "Edit %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Edit: %(object)s" +#~ msgstr "Edit %(object_name)s:" + +#~ msgid "Create new %(object_name)s" +#~ msgstr "Create new %(object_name)s" + +#~ msgid "Create" +#~ msgstr "Create" + +#~ msgid "Assign %(title)s %(object)s" +#~ msgstr "Assign %(title)s %(object)s" + +#~ msgid "Confirm" +#~ msgstr "Confirm" + +#~ msgid "Confirm delete" +#~ msgstr "Confirm delete" + +#~ msgid "form icon" +#~ msgstr "form icon" + +#~ msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +#~ msgstr "Are you sure you wish to delete %(object_name)s: %(object)s?" + +#~ msgid "Are you sure you wish to delete: %(object)s?" +#~ msgstr "Are you sure you wish to delete: %(object)s?" + +#~ msgid "Yes" +#~ msgstr "Yes" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "required" +#~ msgstr "required" + +#~ msgid "Save" +#~ msgstr "Save" + +#~ msgid "Submit" +#~ msgstr "Submit" + +#~ msgid "Cancel" +#~ msgstr "Cancel" + +#~ msgid "List of %(title)s" +#~ msgstr "List of %(stripped_title)s" + +#~ msgid "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" +#~ msgstr "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" + +#~ msgid "List of %(title)s (%(total)s)" +#~ msgstr "List of %(title)s (%(total)s)" + +#~ msgid "Identifier" +#~ msgstr "Identifier" + +#~ msgid "There are no %(title)s" +#~ msgstr "There are no %(stripped_title)s" + +#~ msgid "Login" +#~ msgstr "Login" + +#~ msgid "Password change" +#~ msgstr "Password change" + +#~ msgid "lock field" +#~ msgstr "lock field" + +#~ msgid "Edit" +#~ msgstr "Edit" diff --git a/mayan/apps/common/locale/nb/LC_MESSAGES/django.mo b/mayan/apps/common/locale/nb/LC_MESSAGES/django.mo new file mode 100644 index 0000000000..fe40bd91f7 Binary files /dev/null and b/mayan/apps/common/locale/nb/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/nb/LC_MESSAGES/django.po b/mayan/apps/common/locale/nb/LC_MESSAGES/django.po new file mode 100644 index 0000000000..9c4f74306c --- /dev/null +++ b/mayan/apps/common/locale/nb/LC_MESSAGES/django.po @@ -0,0 +1,421 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-17 07:03+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Norwegian Bokmål (http://www.transifex.com/projects/p/mayan-" +"edms/language/nb/)\n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: classes.py:40 +msgid "Available attributes: " +msgstr "" + +#: forms.py:98 +msgid "Selection" +msgstr "" + +#: forms.py:143 +msgid "Email" +msgstr "" + +#: forms.py:146 models.py:36 +msgid "Password" +msgstr "" + +#: forms.py:149 +msgid "" +"Please enter a correct email and password. Note that the password field is " +"case-sensitive." +msgstr "" + +#: forms.py:151 +msgid "This account is inactive." +msgstr "" + +#: links.py:10 +msgid "Change password" +msgstr "" + +#: links.py:11 +msgid "User details" +msgstr "" + +#: links.py:12 +msgid "Edit details" +msgstr "" + +#: links.py:14 +msgid "About" +msgstr "" + +#: links.py:15 views.py:279 +msgid "License" +msgstr "" + +#: links.py:17 +msgid "Locale profile" +msgstr "" + +#: links.py:18 +msgid "Edit locale profile" +msgstr "" + +#: links.py:20 +msgid "Logout" +msgstr "" + +#: models.py:28 models.py:31 +msgid "Anonymous user" +msgstr "" + +#: models.py:35 +msgid "Account" +msgstr "" + +#: models.py:37 +msgid "Password hash" +msgstr "" + +#: models.py:40 +msgid "Auto admin properties" +msgstr "" + +#: models.py:44 +msgid "File" +msgstr "" + +#: models.py:45 +msgid "Filename" +msgstr "" + +#: models.py:46 +msgid "Date time" +msgstr "" + +#: models.py:49 +msgid "Shared uploaded file" +msgstr "" + +#: models.py:50 +msgid "Shared uploaded files" +msgstr "" + +#: models.py:61 +msgid "User" +msgstr "" + +#: models.py:63 +msgid "Timezone" +msgstr "" + +#: models.py:64 +msgid "Language" +msgstr "" + +#: models.py:70 +msgid "User locale profile" +msgstr "" + +#: models.py:71 +msgid "User locale profiles" +msgstr "" + +#: settings.py:14 +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 "" + +#: settings.py:48 +msgid "" +"Controls the mechanism used to authenticated user. Options are: username, " +"email" +msgstr "" + +#: settings.py:57 +msgid "Allow non authenticated users, access to all views" +msgstr "" + +#: settings.py:66 +msgid "A storage backend that all workers can use to share files." +msgstr "" + +#: utils.py:114 +msgid "Function found" +msgstr "" + +#: views.py:44 +msgid "No action selected." +msgstr "" + +#: views.py:48 +msgid "Must select at least one item." +msgstr "" + +#: views.py:100 +#, python-format +msgid "Unable to remove %(selection)s." +msgstr "" + +#: views.py:125 +#, python-format +msgid "Unable to add %(selection)s." +msgstr "" + +#: views.py:138 +msgid "Add" +msgstr "" + +#: views.py:149 +msgid "Remove" +msgstr "" + +#: views.py:172 +msgid "Current user details" +msgstr "" + +#: views.py:187 +msgid "Current user locale profile details" +msgstr "" + +#: views.py:204 +msgid "E-mail conflict, another user has that same email." +msgstr "" + +#: views.py:207 +msgid "Current user's details updated." +msgstr "" + +#: views.py:216 +msgid "Edit current user details" +msgstr "" + +#: views.py:239 +msgid "Current user's locale profile details updated." +msgstr "" + +#: views.py:248 +msgid "Edit current user locale profile details" +msgstr "" + +#: views.py:288 +msgid "Current user password change" +msgstr "" + +#: views.py:303 +msgid "Your password has been successfully changed." +msgstr "" + +#: views.py:314 +#, python-format +msgid "Error saving %s details." +msgstr "" + +#: views.py:316 +msgid "Error saving details." +msgstr "" + +#: views.py:324 +#, python-format +msgid "%s details saved successfully." +msgstr "" + +#: views.py:326 +msgid "Details saved successfully." +msgstr "" + +#: views.py:338 +#, python-format +msgid "Error creating new %s." +msgstr "" + +#: views.py:340 +msgid "Error creating object." +msgstr "" + +#: views.py:347 +#, python-format +msgid "%s created successfully." +msgstr "" + +#: views.py:349 +msgid "New object created successfully." +msgstr "" + +#: views.py:367 +#, python-format +msgid "Error deleting %s." +msgstr "" + +#: views.py:369 +msgid "Error deleting object." +msgstr "" + +#: views.py:374 +#, python-format +msgid "%s deleted successfully." +msgstr "" + +#: views.py:376 +msgid "Object deleted successfully." +msgstr "" + +#: widgets.py:60 +msgid "None" +msgstr "" + +#~ msgid "%(selection)s added successfully added to %(right_list_title)s." +#~ msgstr "%(selection)s added successfully added to %(right_list_title)s." + +#~ msgid "%(selection)s added successfully removed from %(right_list_title)s." +#~ msgstr "%(selection)s added successfully removed from %(right_list_title)s." + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "Letter" +#~ msgstr "Letter" + +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Ledger" +#~ msgstr "Ledger" + +#~ msgid "Portrait" +#~ msgstr "Portrait" + +#~ msgid "Landscape" +#~ msgstr "Landscape" + +#~ msgid "license" +#~ msgstr "license" + +#~ msgid "anonymous user" +#~ msgstr "anonymous user" + +#~ msgid "password" +#~ msgstr "password" + +#~ msgid "Insufficient permissions" +#~ msgstr "Insufficient permissions" + +#~ msgid "You don't have enough permissions for this operation." +#~ msgstr "You don't have enough permissions for this operation." + +#~ msgid "Page not found" +#~ msgstr "Page not found" + +#~ msgid "Sorry, but the requested page could not be found." +#~ msgstr "Sorry, but the requested page could not be found." + +#~ msgid "Details for %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Details for: %(object)s" +#~ msgstr "Details for: %(object)s" + +#~ msgid "Edit %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Edit: %(object)s" +#~ msgstr "Edit %(object_name)s:" + +#~ msgid "Create new %(object_name)s" +#~ msgstr "Create new %(object_name)s" + +#~ msgid "Create" +#~ msgstr "Create" + +#~ msgid "Assign %(title)s %(object)s" +#~ msgstr "Assign %(title)s %(object)s" + +#~ msgid "Confirm" +#~ msgstr "Confirm" + +#~ msgid "Confirm delete" +#~ msgstr "Confirm delete" + +#~ msgid "form icon" +#~ msgstr "form icon" + +#~ msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +#~ msgstr "Are you sure you wish to delete %(object_name)s: %(object)s?" + +#~ msgid "Are you sure you wish to delete: %(object)s?" +#~ msgstr "Are you sure you wish to delete: %(object)s?" + +#~ msgid "Yes" +#~ msgstr "Yes" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "required" +#~ msgstr "required" + +#~ msgid "Save" +#~ msgstr "Save" + +#~ msgid "Submit" +#~ msgstr "Submit" + +#~ msgid "Cancel" +#~ msgstr "Cancel" + +#~ msgid "List of %(title)s" +#~ msgstr "List of %(stripped_title)s" + +#~ msgid "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" +#~ msgstr "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" + +#~ msgid "List of %(title)s (%(total)s)" +#~ msgstr "List of %(title)s (%(total)s)" + +#~ msgid "Identifier" +#~ msgstr "Identifier" + +#~ msgid "There are no %(title)s" +#~ msgstr "There are no %(stripped_title)s" + +#~ msgid "Login" +#~ msgstr "Login" + +#~ msgid "Password change" +#~ msgstr "Password change" + +#~ msgid "lock field" +#~ msgstr "lock field" + +#~ msgid "Edit" +#~ msgstr "Edit" diff --git a/mayan/apps/common/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/common/locale/nl_NL/LC_MESSAGES/django.mo index c0a11e1b19..8be4cea06c 100644 Binary files a/mayan/apps/common/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/common/locale/nl_NL/LC_MESSAGES/django.po index 57663793a7..7d3c6cbabb 100644 --- a/mayan/apps/common/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/nl_NL/LC_MESSAGES/django.po @@ -3,12 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: +# woei , 2014 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-12-12 06:05+0000\n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-17 07:03+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Dutch (Netherlands) (http://www.transifex.com/projects/p/" "mayan-edms/language/nl_NL/)\n" @@ -18,390 +20,405 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: forms.py:97 +#: classes.py:40 +msgid "Available attributes: " +msgstr "" + +#: forms.py:98 msgid "Selection" -msgstr "" +msgstr "Selectie" -#: forms.py:128 +#: forms.py:143 msgid "Email" -msgstr "" +msgstr "Email" -#: forms.py:131 +#: forms.py:146 models.py:36 msgid "Password" -msgstr "" +msgstr "Wachtwoord" -#: forms.py:134 +#: forms.py:149 msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." msgstr "" +"Gelieve een correct email adres en wachtwoord invoeren. Let er op dat het " +"wachtwoord veld hoofdletter gevoelig is." -#: forms.py:136 +#: forms.py:151 msgid "This account is inactive." -msgstr "" +msgstr "Dit account is inactief." #: links.py:10 -msgid "change password" +msgid "Change password" msgstr "" #: links.py:11 -msgid "user details" +msgid "User details" msgstr "" #: links.py:12 -msgid "edit details" +msgid "Edit details" msgstr "" #: links.py:14 -msgid "about" +msgid "About" msgstr "" -#: links.py:15 -msgid "license" -msgstr "" - -#: literals.py:24 -msgid "A5" -msgstr "" - -#: literals.py:25 -msgid "A4" -msgstr "" - -#: literals.py:26 -msgid "A3" -msgstr "" - -#: literals.py:27 -msgid "B5" -msgstr "" - -#: literals.py:28 -msgid "B4" -msgstr "" - -#: literals.py:29 -msgid "Letter" -msgstr "" - -#: literals.py:30 -msgid "Legal" -msgstr "" - -#: literals.py:31 -msgid "Ledger" -msgstr "" - -#: literals.py:38 -msgid "Portrait" -msgstr "" - -#: literals.py:39 -msgid "Landscape" -msgstr "" - -#: models.py:17 -msgid "Anonymous user" -msgstr "" - -#: models.py:20 models.py:21 -msgid "anonymous user" -msgstr "" - -#: models.py:25 -msgid "account" -msgstr "" - -#: models.py:26 -msgid "password" -msgstr "" - -#: models.py:27 -msgid "password hash" -msgstr "" - -#: models.py:30 -msgid "auto admin properties" -msgstr "" - -#: utils.py:299 -msgid "function found" -msgstr "" - -#: views.py:39 -msgid "No action selected." -msgstr "" - -#: views.py:43 -msgid "Must select at least one item." -msgstr "" - -#: views.py:91 -#, python-format -msgid "%(selection)s added successfully added to %(right_list_title)s." -msgstr "" - -#: views.py:97 views.py:124 -#, python-format -msgid "Unable to add %(selection)s to %(right_list_title)s." -msgstr "" - -#: views.py:118 -#, python-format -msgid "%(selection)s added successfully removed from %(right_list_title)s." -msgstr "" - -#: views.py:139 -msgid "Add" -msgstr "" - -#: views.py:150 -msgid "Remove" -msgstr "" - -#: views.py:173 -msgid "current user details" -msgstr "" - -#: views.py:190 -msgid "E-mail conflict, another user has that same email." -msgstr "" - -#: views.py:193 -msgid "Current user's details updated." -msgstr "" - -#: views.py:202 -msgid "edit current user details" -msgstr "" - -#: views.py:233 +#: links.py:15 views.py:279 msgid "License" +msgstr "Licentie" + +#: links.py:17 +msgid "Locale profile" msgstr "" -#: views.py:242 -msgid "Current user password change" +#: links.py:18 +msgid "Edit locale profile" msgstr "" -#: views.py:257 templates/password_change_done.html:8 -msgid "Your password has been successfully changed." +#: links.py:20 +msgid "Logout" msgstr "" -#: views.py:303 -#, python-format -msgid "Error saving %s details." +#: models.py:28 models.py:31 +msgid "Anonymous user" +msgstr "Anonieme gebruiker" + +#: models.py:35 +msgid "Account" msgstr "" -#: views.py:305 -msgid "Error saving details." +#: models.py:37 +msgid "Password hash" msgstr "" -#: views.py:313 -#, python-format -msgid "%s details saved successfully." +#: models.py:40 +msgid "Auto admin properties" msgstr "" -#: views.py:315 -msgid "Details saved successfully." +#: models.py:44 +msgid "File" msgstr "" -#: views.py:327 -#, python-format -msgid "Error creating new %s." +#: models.py:45 +msgid "Filename" msgstr "" -#: views.py:329 -msgid "Error creating object." +#: models.py:46 +msgid "Date time" msgstr "" -#: views.py:336 -#, python-format -msgid "%s created successfully." +#: models.py:49 +msgid "Shared uploaded file" msgstr "" -#: views.py:338 -msgid "New object created successfully." +#: models.py:50 +msgid "Shared uploaded files" msgstr "" -#: views.py:356 -#, python-format -msgid "Error deleting %s." +#: models.py:61 +msgid "User" msgstr "" -#: views.py:358 -msgid "Error deleting object." +#: models.py:63 +msgid "Timezone" msgstr "" -#: views.py:363 -#, python-format -msgid "%s deleted successfully." +#: models.py:64 +msgid "Language" msgstr "" -#: views.py:365 -msgid "Object deleted successfully." +#: models.py:70 +msgid "User locale profile" msgstr "" -#: widgets.py:58 -msgid "None" +#: models.py:71 +msgid "User locale profiles" msgstr "" -#: conf/settings.py:16 +#: settings.py:14 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 "" -#: conf/settings.py:66 +#: settings.py:48 msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" msgstr "" -#: conf/settings.py:75 +#: settings.py:57 msgid "Allow non authenticated users, access to all views" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 -msgid "Insufficient permissions" +#: settings.py:66 +msgid "A storage backend that all workers can use to share files." msgstr "" -#: templates/403.html:11 -msgid "You don't have enough permissions for this operation." +#: utils.py:114 +msgid "Function found" msgstr "" -#: templates/404.html:5 templates/404.html.py:9 -msgid "Page not found" -msgstr "" +#: views.py:44 +msgid "No action selected." +msgstr "Geen acties geselecteerd." -#: templates/404.html:11 -msgid "Sorry, but the requested page could not be found." -msgstr "" +#: views.py:48 +msgid "Must select at least one item." +msgstr "Selecteer minimaal een item." -#: templates/calculate_form_title.html:8 +#: views.py:100 #, python-format -msgid "Details for %(object_name)s: %(object)s" +msgid "Unable to remove %(selection)s." msgstr "" -#: templates/calculate_form_title.html:10 +#: views.py:125 #, python-format -msgid "Details for: %(object)s" +msgid "Unable to add %(selection)s." msgstr "" -#: templates/calculate_form_title.html:15 +#: views.py:138 +msgid "Add" +msgstr "Voeg toe" + +#: views.py:149 +msgid "Remove" +msgstr "Verwijder" + +#: views.py:172 +msgid "Current user details" +msgstr "" + +#: views.py:187 +msgid "Current user locale profile details" +msgstr "" + +#: views.py:204 +msgid "E-mail conflict, another user has that same email." +msgstr "Email conflict, een andere gebruiker heeft hetzelfde email adres." + +#: views.py:207 +msgid "Current user's details updated." +msgstr "Gegevens van huidige gerbuiker aangepast." + +#: views.py:216 +msgid "Edit current user details" +msgstr "" + +#: views.py:239 +msgid "Current user's locale profile details updated." +msgstr "" + +#: views.py:248 +msgid "Edit current user locale profile details" +msgstr "" + +#: views.py:288 +msgid "Current user password change" +msgstr "Wijzig wachtwoord van huidige gebruiker" + +#: views.py:303 +msgid "Your password has been successfully changed." +msgstr "Uw wachtwoord is succesvol aangepast." + +#: views.py:314 #, python-format -msgid "Edit %(object_name)s: %(object)s" -msgstr "" +msgid "Error saving %s details." +msgstr "Error bij opslaan van %s gegevens." -#: templates/calculate_form_title.html:17 +#: views.py:316 +msgid "Error saving details." +msgstr "Error bij opslaan gegevens." + +#: views.py:324 #, python-format -msgid "Edit: %(object)s" -msgstr "" +msgid "%s details saved successfully." +msgstr "%s gegevens succesvol opgeslagen." -#: templates/calculate_form_title.html:21 +#: views.py:326 +msgid "Details saved successfully." +msgstr "Gegevens succesvol opgeslagen." + +#: views.py:338 #, python-format -msgid "Create new %(object_name)s" -msgstr "" +msgid "Error creating new %s." +msgstr "Error bij maken nieuwe %s." -#: templates/calculate_form_title.html:23 -msgid "Create" -msgstr "" +#: views.py:340 +msgid "Error creating object." +msgstr "Error bij het maken van object." -#: templates/generic_assign_remove.html:5 +#: views.py:347 #, python-format -msgid "Assign %(title)s %(object)s" -msgstr "" +msgid "%s created successfully." +msgstr "%s succesvol aangemaakt." -#: templates/generic_confirm.html:5 templates/generic_confirm.html.py:19 -msgid "Confirm" -msgstr "" +#: views.py:349 +msgid "New object created successfully." +msgstr "Nieuw object succesvol aangemaakt." -#: templates/generic_confirm.html:17 -msgid "Confirm delete" -msgstr "" - -#: templates/generic_confirm.html:33 -msgid "form icon" -msgstr "" - -#: templates/generic_confirm.html:41 +#: views.py:367 #, python-format -msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" -msgstr "" +msgid "Error deleting %s." +msgstr "Error bij verwijderen %s." -#: templates/generic_confirm.html:43 +#: views.py:369 +msgid "Error deleting object." +msgstr "Error bij het verwijderen van object." + +#: views.py:374 #, python-format -msgid "Are you sure you wish to delete: %(object)s?" -msgstr "" +msgid "%s deleted successfully." +msgstr "%s succesvol verwijderd." -#: templates/generic_confirm.html:51 -msgid "Yes" -msgstr "" +#: views.py:376 +msgid "Object deleted successfully." +msgstr "Object succesvol verwijderd." -#: templates/generic_confirm.html:55 -msgid "No" -msgstr "" +#: widgets.py:60 +msgid "None" +msgstr "Geen" -#: templates/generic_form_instance.html:40 -#: templates/generic_form_subtemplate.html:59 -msgid "required" -msgstr "" +#~ msgid "%(selection)s added successfully added to %(right_list_title)s." +#~ msgstr "%(selection)s added successfully added to %(right_list_title)s." -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Save" -msgstr "" +#~ msgid "%(selection)s added successfully removed from %(right_list_title)s." +#~ msgstr "%(selection)s added successfully removed from %(right_list_title)s." -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Submit" -msgstr "" +#~ msgid "A5" +#~ msgstr "A5" -#: templates/generic_form_subtemplate.html:90 -msgid "Cancel" -msgstr "" +#~ msgid "A4" +#~ msgstr "A4" -#: templates/generic_list.html:8 templates/generic_list_horizontal.html:8 -#, python-format -msgid "List of %(title)s" -msgstr "" +#~ msgid "A3" +#~ msgstr "A3" -#: templates/generic_list_horizontal_subtemplate.html:24 -#: templates/generic_list_subtemplate.html:25 -#, python-format -msgid "" -"List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " -"%(page_number)s of %(total_pages)s)" -msgstr "" +#~ msgid "B5" +#~ msgstr "B5" -#: templates/generic_list_horizontal_subtemplate.html:26 -#: templates/generic_list_subtemplate.html:27 -#, python-format -msgid "List of %(title)s (%(total)s)" -msgstr "" +#~ msgid "B4" +#~ msgstr "B4" -#: templates/generic_list_subtemplate.html:73 -msgid "Identifier" -msgstr "" +#~ msgid "Letter" +#~ msgstr "Letter" -#: templates/generic_list_subtemplate.html:147 -#, python-format -msgid "There are no %(title)s" -msgstr "" +#~ msgid "Legal" +#~ msgstr "Legal" -#: templates/login.html:7 -msgid "Login" -msgstr "" +#~ msgid "Ledger" +#~ msgstr "Ledger" -#: templates/password_change_done.html:5 templates/password_change_form.html:5 -#: templates/password_change_form.html:7 -msgid "Password change" -msgstr "" +#~ msgid "Portrait" +#~ msgstr "Portrait" + +#~ msgid "Landscape" +#~ msgstr "Landscape" + +#~ msgid "license" +#~ msgstr "license" + +#~ msgid "anonymous user" +#~ msgstr "anonymous user" + +#~ msgid "password" +#~ msgstr "password" + +#~ msgid "Insufficient permissions" +#~ msgstr "Insufficient permissions" + +#~ msgid "You don't have enough permissions for this operation." +#~ msgstr "You don't have enough permissions for this operation." + +#~ msgid "Page not found" +#~ msgstr "Page not found" + +#~ msgid "Sorry, but the requested page could not be found." +#~ msgstr "Sorry, but the requested page could not be found." + +#~ msgid "Details for %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Details for: %(object)s" +#~ msgstr "Details for: %(object)s" + +#~ msgid "Edit %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Edit: %(object)s" +#~ msgstr "Edit %(object_name)s:" + +#~ msgid "Create new %(object_name)s" +#~ msgstr "Create new %(object_name)s" + +#~ msgid "Create" +#~ msgstr "Create" + +#~ msgid "Assign %(title)s %(object)s" +#~ msgstr "Assign %(title)s %(object)s" + +#~ msgid "Confirm" +#~ msgstr "Confirm" + +#~ msgid "Confirm delete" +#~ msgstr "Confirm delete" + +#~ msgid "form icon" +#~ msgstr "form icon" + +#~ msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +#~ msgstr "Are you sure you wish to delete %(object_name)s: %(object)s?" + +#~ msgid "Are you sure you wish to delete: %(object)s?" +#~ msgstr "Are you sure you wish to delete: %(object)s?" + +#~ msgid "Yes" +#~ msgstr "Yes" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "required" +#~ msgstr "required" + +#~ msgid "Save" +#~ msgstr "Save" + +#~ msgid "Submit" +#~ msgstr "Submit" + +#~ msgid "Cancel" +#~ msgstr "Cancel" + +#~ msgid "List of %(title)s" +#~ msgstr "List of %(stripped_title)s" + +#~ msgid "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" +#~ msgstr "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" + +#~ msgid "List of %(title)s (%(total)s)" +#~ msgstr "List of %(title)s (%(total)s)" + +#~ msgid "Identifier" +#~ msgstr "Identifier" + +#~ msgid "There are no %(title)s" +#~ msgstr "There are no %(stripped_title)s" + +#~ msgid "Login" +#~ msgstr "Login" + +#~ msgid "Password change" +#~ msgstr "Password change" + +#~ msgid "lock field" +#~ msgstr "lock field" + +#~ msgid "Edit" +#~ msgstr "Edit" diff --git a/mayan/apps/common/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/common/locale/pl/LC_MESSAGES/django.mo index 37a89c53b4..3fdb1ee00a 100644 Binary files a/mayan/apps/common/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/pl/LC_MESSAGES/django.po b/mayan/apps/common/locale/pl/LC_MESSAGES/django.po index 8ffef612e8..e9a81f5e3c 100644 --- a/mayan/apps/common/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/pl/LC_MESSAGES/django.po @@ -3,6 +3,7 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: # mic, 2012 # mic , 2012 # mic , 2012 @@ -11,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-12-12 06:05+0000\n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-17 07:03+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Polish (http://www.transifex.com/projects/p/mayan-edms/" "language/pl/)\n" @@ -23,402 +24,403 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -#: forms.py:97 +#: classes.py:40 +msgid "Available attributes: " +msgstr "" + +#: forms.py:98 msgid "Selection" msgstr "Zaznaczenie" -#: forms.py:128 +#: forms.py:143 msgid "Email" msgstr "E-mail" -#: forms.py:131 -#, fuzzy +#: forms.py:146 models.py:36 msgid "Password" -msgstr "Zmiana hasła" +msgstr "" -#: forms.py:134 -#, fuzzy +#: forms.py:149 msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." msgstr "" -"Proszę wpisać poprawną nazwę użytkownika i hasło. Uwaga: wielkość liter ma " -"znaczenie." -#: forms.py:136 +#: forms.py:151 msgid "This account is inactive." msgstr "To konto jest nieaktywne." #: links.py:10 -msgid "change password" -msgstr "zmień hasło" +msgid "Change password" +msgstr "" #: links.py:11 -msgid "user details" -msgstr "szczegóły konta użytkownika" +msgid "User details" +msgstr "" #: links.py:12 -msgid "edit details" -msgstr "edytuj szczegóły" +msgid "Edit details" +msgstr "" #: links.py:14 -msgid "about" -msgstr "informacje o" - -#: links.py:15 -msgid "license" -msgstr "licencja" - -#: 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 "Ledger" - -#: literals.py:38 -msgid "Portrait" -msgstr "Portrait" - -#: literals.py:39 -msgid "Landscape" -msgstr "Landscape" - -#: models.py:17 -msgid "Anonymous user" -msgstr "Użytkownik anonimowy" - -#: models.py:20 models.py:21 -msgid "anonymous user" -msgstr "użytkownik anonimowy" - -#: models.py:25 -msgid "account" +msgid "About" msgstr "" -#: models.py:26 -msgid "password" -msgstr "" - -#: models.py:27 -msgid "password hash" -msgstr "" - -#: models.py:30 -msgid "auto admin properties" -msgstr "" - -#: utils.py:299 -msgid "function found" -msgstr "znaleźć funkcję" - -#: views.py:39 -msgid "No action selected." -msgstr "Nie wybrano żadnego działania" - -#: views.py:43 -msgid "Must select at least one item." -msgstr "Musisz wybrać co najmniej jeden element." - -#: views.py:91 -#, python-format -msgid "%(selection)s added successfully added to %(right_list_title)s." -msgstr " %(selection)s pomyślnie dodana do %(right_list_title)s." - -#: views.py:97 views.py:124 -#, python-format -msgid "Unable to add %(selection)s to %(right_list_title)s." -msgstr "Nie można dodać %(selection)s do %(right_list_title)s." - -#: views.py:118 -#, python-format -msgid "%(selection)s added successfully removed from %(right_list_title)s." -msgstr " %(selection)s pomyślnie dodana usunięty z %(right_list_title)s." - -#: views.py:139 -msgid "Add" -msgstr "Dodaj" - -#: views.py:150 -msgid "Remove" -msgstr "Usuń" - -#: views.py:173 -msgid "current user details" -msgstr "aktualne dane użytkownika" - -#: views.py:190 -msgid "E-mail conflict, another user has that same email." -msgstr "Użytkownik o podanym adresie e-mail już istnieje." - -#: views.py:193 -msgid "Current user's details updated." -msgstr "Aktualne dane użytkownika aktualizowane." - -#: views.py:202 -msgid "edit current user details" -msgstr "edytuj aktualne dane użytkownika" - -#: views.py:233 +#: links.py:15 views.py:279 msgid "License" msgstr "Licencja" -#: views.py:242 -msgid "Current user password change" -msgstr "Zmiana hasła użytkownika" - -#: views.py:257 templates/password_change_done.html:8 -msgid "Your password has been successfully changed." -msgstr "Twoje hasło zostało pomyślnie zmienione." - -#: views.py:303 -#, python-format -msgid "Error saving %s details." +#: links.py:17 +msgid "Locale profile" msgstr "" -#: views.py:305 -msgid "Error saving details." +#: links.py:18 +msgid "Edit locale profile" msgstr "" -#: views.py:313 -#, python-format -msgid "%s details saved successfully." +#: links.py:20 +msgid "Logout" msgstr "" -#: views.py:315 -msgid "Details saved successfully." +#: models.py:28 models.py:31 +msgid "Anonymous user" +msgstr "Użytkownik anonimowy" + +#: models.py:35 +msgid "Account" msgstr "" -#: views.py:327 -#, python-format -msgid "Error creating new %s." +#: models.py:37 +msgid "Password hash" msgstr "" -#: views.py:329 -msgid "Error creating object." +#: models.py:40 +msgid "Auto admin properties" msgstr "" -#: views.py:336 -#, python-format -msgid "%s created successfully." +#: models.py:44 +msgid "File" msgstr "" -#: views.py:338 -msgid "New object created successfully." +#: models.py:45 +msgid "Filename" msgstr "" -#: views.py:356 -#, python-format -msgid "Error deleting %s." +#: models.py:46 +msgid "Date time" msgstr "" -#: views.py:358 -msgid "Error deleting object." +#: models.py:49 +msgid "Shared uploaded file" msgstr "" -#: views.py:363 -#, python-format -msgid "%s deleted successfully." +#: models.py:50 +msgid "Shared uploaded files" msgstr "" -#: views.py:365 -msgid "Object deleted successfully." +#: models.py:61 +msgid "User" msgstr "" -#: widgets.py:58 -msgid "None" -msgstr "Brak" +#: models.py:63 +msgid "Timezone" +msgstr "" -#: conf/settings.py:16 +#: models.py:64 +msgid "Language" +msgstr "" + +#: models.py:70 +msgid "User locale profile" +msgstr "" + +#: models.py:71 +msgid "User locale profiles" +msgstr "" + +#: settings.py:14 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 "" -#: conf/settings.py:66 +#: settings.py:48 msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" msgstr "" -#: conf/settings.py:75 +#: settings.py:57 msgid "Allow non authenticated users, access to all views" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 -msgid "Insufficient permissions" -msgstr "Niewystarczające uprawnienia" - -#: templates/403.html:11 -msgid "You don't have enough permissions for this operation." -msgstr "Nie masz wystarczających uprawnień do tej operacji." - -#: templates/404.html:5 templates/404.html.py:9 -msgid "Page not found" -msgstr "Nie znaleziono strony" - -#: templates/404.html:11 -msgid "Sorry, but the requested page could not be found." -msgstr "Przykro nam, ale żądana strona nie została odnaleziona." - -#: templates/calculate_form_title.html:8 -#, python-format -msgid "Details for %(object_name)s: %(object)s" -msgstr "Szczegóły dla %(object_name)s : %(object)s " - -#: templates/calculate_form_title.html:10 -#, python-format -msgid "Details for: %(object)s" -msgstr "Szczegóły: %(object)s " - -#: templates/calculate_form_title.html:15 -#, fuzzy, python-format -msgid "Edit %(object_name)s: %(object)s" -msgstr "Szczegóły dla %(object_name)s : %(object)s " - -#: templates/calculate_form_title.html:17 -#, fuzzy, python-format -msgid "Edit: %(object)s" -msgstr "Edytuj %(object_name)s :" - -#: templates/calculate_form_title.html:21 -#, python-format -msgid "Create new %(object_name)s" -msgstr "Utwórz nową %(object_name)s " - -#: templates/calculate_form_title.html:23 -msgid "Create" -msgstr "Utwórz" - -#: templates/generic_assign_remove.html:5 -#, python-format -msgid "Assign %(title)s %(object)s" -msgstr "Przypisz %(title)s %(object)s" - -#: templates/generic_confirm.html:5 templates/generic_confirm.html.py:19 -msgid "Confirm" -msgstr "Potwierdź" - -#: templates/generic_confirm.html:17 -msgid "Confirm delete" -msgstr "Potwierdź usunięcie" - -#: templates/generic_confirm.html:33 -msgid "form icon" -msgstr "form icon" - -#: templates/generic_confirm.html:41 -#, python-format -msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" -msgstr "Czy na pewno chcesz usunąć %(object_name)s : %(object)s ?" - -#: templates/generic_confirm.html:43 -#, python-format -msgid "Are you sure you wish to delete: %(object)s?" -msgstr "Czy na pewno chcesz usunąć: %(object)s?" - -#: templates/generic_confirm.html:51 -msgid "Yes" -msgstr "Tak" - -#: templates/generic_confirm.html:55 -msgid "No" -msgstr "Nie" - -#: templates/generic_form_instance.html:40 -#: templates/generic_form_subtemplate.html:59 -msgid "required" -msgstr "wymagane" - -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Save" -msgstr "Zapisz" - -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Submit" -msgstr "Wyślij" - -#: templates/generic_form_subtemplate.html:90 -msgid "Cancel" -msgstr "Anuluj" - -#: templates/generic_list.html:8 templates/generic_list_horizontal.html:8 -#, fuzzy, python-format -msgid "List of %(title)s" -msgstr "Wykaz %(stripped_title)s" - -#: templates/generic_list_horizontal_subtemplate.html:24 -#: templates/generic_list_subtemplate.html:25 -#, python-format -msgid "" -"List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " -"%(page_number)s of %(total_pages)s)" +#: settings.py:66 +msgid "A storage backend that all workers can use to share files." msgstr "" -"Wykaz %(title)s (%(start)s - %(end)s z %(total)s) (Page %(page_number)s z " -"%(total_pages)s)" -#: templates/generic_list_horizontal_subtemplate.html:26 -#: templates/generic_list_subtemplate.html:27 +#: utils.py:114 +msgid "Function found" +msgstr "" + +#: views.py:44 +msgid "No action selected." +msgstr "Nie wybrano żadnego działania" + +#: views.py:48 +msgid "Must select at least one item." +msgstr "Musisz wybrać co najmniej jeden element." + +#: views.py:100 #, python-format -msgid "List of %(title)s (%(total)s)" -msgstr "Wykaz %(title)s (%(total)s)" +msgid "Unable to remove %(selection)s." +msgstr "" -#: templates/generic_list_subtemplate.html:73 -msgid "Identifier" -msgstr "Identyfikator" +#: views.py:125 +#, python-format +msgid "Unable to add %(selection)s." +msgstr "" -#: templates/generic_list_subtemplate.html:147 -#, fuzzy, python-format -msgid "There are no %(title)s" -msgstr "Brak %(stripped_title)s" +#: views.py:138 +msgid "Add" +msgstr "Dodaj" -#: templates/login.html:7 -msgid "Login" -msgstr "Zaloguj" +#: views.py:149 +msgid "Remove" +msgstr "Usuń" -#: templates/password_change_done.html:5 templates/password_change_form.html:5 -#: templates/password_change_form.html:7 -msgid "Password change" -msgstr "Zmiana hasła" +#: views.py:172 +msgid "Current user details" +msgstr "" + +#: views.py:187 +msgid "Current user locale profile details" +msgstr "" + +#: views.py:204 +msgid "E-mail conflict, another user has that same email." +msgstr "Użytkownik o podanym adresie e-mail już istnieje." + +#: views.py:207 +msgid "Current user's details updated." +msgstr "Aktualne dane użytkownika aktualizowane." + +#: views.py:216 +msgid "Edit current user details" +msgstr "" + +#: views.py:239 +msgid "Current user's locale profile details updated." +msgstr "" + +#: views.py:248 +msgid "Edit current user locale profile details" +msgstr "" + +#: views.py:288 +msgid "Current user password change" +msgstr "Zmiana hasła użytkownika" + +#: views.py:303 +msgid "Your password has been successfully changed." +msgstr "Twoje hasło zostało pomyślnie zmienione." + +#: views.py:314 +#, python-format +msgid "Error saving %s details." +msgstr "" + +#: views.py:316 +msgid "Error saving details." +msgstr "" + +#: views.py:324 +#, python-format +msgid "%s details saved successfully." +msgstr "" + +#: views.py:326 +msgid "Details saved successfully." +msgstr "" + +#: views.py:338 +#, python-format +msgid "Error creating new %s." +msgstr "" + +#: views.py:340 +msgid "Error creating object." +msgstr "" + +#: views.py:347 +#, python-format +msgid "%s created successfully." +msgstr "" + +#: views.py:349 +msgid "New object created successfully." +msgstr "" + +#: views.py:367 +#, python-format +msgid "Error deleting %s." +msgstr "" + +#: views.py:369 +msgid "Error deleting object." +msgstr "" + +#: views.py:374 +#, python-format +msgid "%s deleted successfully." +msgstr "" + +#: views.py:376 +msgid "Object deleted successfully." +msgstr "" + +#: widgets.py:60 +msgid "None" +msgstr "Brak" + +#~ msgid "%(selection)s added successfully added to %(right_list_title)s." +#~ msgstr "%(selection)s added successfully added to %(right_list_title)s." + +#~ msgid "%(selection)s added successfully removed from %(right_list_title)s." +#~ msgstr "%(selection)s added successfully removed from %(right_list_title)s." + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "Letter" +#~ msgstr "Letter" + +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Ledger" +#~ msgstr "Ledger" + +#~ msgid "Portrait" +#~ msgstr "Portrait" + +#~ msgid "Landscape" +#~ msgstr "Landscape" + +#~ msgid "license" +#~ msgstr "license" + +#~ msgid "anonymous user" +#~ msgstr "anonymous user" + +#~ msgid "password" +#~ msgstr "password" + +#~ msgid "Insufficient permissions" +#~ msgstr "Insufficient permissions" + +#~ msgid "You don't have enough permissions for this operation." +#~ msgstr "You don't have enough permissions for this operation." + +#~ msgid "Page not found" +#~ msgstr "Page not found" + +#~ msgid "Sorry, but the requested page could not be found." +#~ msgstr "Sorry, but the requested page could not be found." + +#~ msgid "Details for %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Details for: %(object)s" +#~ msgstr "Details for: %(object)s" + +#~ msgid "Edit %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Edit: %(object)s" +#~ msgstr "Edit %(object_name)s:" + +#~ msgid "Create new %(object_name)s" +#~ msgstr "Create new %(object_name)s" + +#~ msgid "Create" +#~ msgstr "Create" + +#~ msgid "Assign %(title)s %(object)s" +#~ msgstr "Assign %(title)s %(object)s" + +#~ msgid "Confirm" +#~ msgstr "Confirm" + +#~ msgid "Confirm delete" +#~ msgstr "Confirm delete" + +#~ msgid "form icon" +#~ msgstr "form icon" + +#~ msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +#~ msgstr "Are you sure you wish to delete %(object_name)s: %(object)s?" + +#~ msgid "Are you sure you wish to delete: %(object)s?" +#~ msgstr "Are you sure you wish to delete: %(object)s?" + +#~ msgid "Yes" +#~ msgstr "Yes" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "required" +#~ msgstr "required" + +#~ msgid "Save" +#~ msgstr "Save" + +#~ msgid "Submit" +#~ msgstr "Submit" + +#~ msgid "Cancel" +#~ msgstr "Cancel" + +#~ msgid "List of %(title)s" +#~ msgstr "List of %(stripped_title)s" + +#~ msgid "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" +#~ msgstr "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" + +#~ msgid "List of %(title)s (%(total)s)" +#~ msgstr "List of %(title)s (%(total)s)" + +#~ msgid "Identifier" +#~ msgstr "Identifier" + +#~ msgid "There are no %(title)s" +#~ msgstr "There are no %(stripped_title)s" + +#~ msgid "Login" +#~ msgstr "Login" + +#~ msgid "Password change" +#~ msgstr "Password change" #~ msgid "lock field" -#~ msgstr "zablokować pole" +#~ msgstr "lock field" #~ msgid "Edit" -#~ msgstr "Edytuj" +#~ msgstr "Edit" diff --git a/mayan/apps/common/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/common/locale/pt/LC_MESSAGES/django.mo index 4dd5ef8f6a..a4ace95c13 100644 Binary files a/mayan/apps/common/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/pt/LC_MESSAGES/django.po b/mayan/apps/common/locale/pt/LC_MESSAGES/django.po index de2f192951..8ea3b21950 100644 --- a/mayan/apps/common/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/pt/LC_MESSAGES/django.po @@ -3,15 +3,16 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: -# emersonsoares , 2011 +# Translators: +# Emerson Soares , 2011 # Roberto Rosario, 2012 # Vítor Figueiró , 2012 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-12-12 06:05+0000\n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-17 07:03+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Portuguese (http://www.transifex.com/projects/p/mayan-edms/" "language/pt/)\n" @@ -21,245 +22,128 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: forms.py:97 +#: classes.py:40 +msgid "Available attributes: " +msgstr "" + +#: forms.py:98 msgid "Selection" msgstr "Seleção" -#: forms.py:128 +#: forms.py:143 msgid "Email" msgstr "E-mail" -#: forms.py:131 -#, fuzzy +#: forms.py:146 models.py:36 msgid "Password" -msgstr "Alteração da senha" +msgstr "" -#: forms.py:134 -#, fuzzy +#: forms.py:149 msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." msgstr "" -"Insira um e-mail e senha corretos, por favor. Note que o campo da senha é " -"sensível a minúsculas e maiúsculas." -#: forms.py:136 +#: forms.py:151 msgid "This account is inactive." msgstr "Esta conta está inativa." #: links.py:10 -msgid "change password" -msgstr "alterar a senha" +msgid "Change password" +msgstr "" #: links.py:11 -msgid "user details" -msgstr "detalhes do utilizador" +msgid "User details" +msgstr "" #: links.py:12 -msgid "edit details" -msgstr "editar detalhes" +msgid "Edit details" +msgstr "" #: links.py:14 -msgid "about" -msgstr "sobre" - -#: links.py:15 -msgid "license" -msgstr "licença" - -#: 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 "Livro-razão" - -#: literals.py:38 -msgid "Portrait" -msgstr "Retrato" - -#: literals.py:39 -msgid "Landscape" -msgstr "Paisagem" - -#: models.py:17 -msgid "Anonymous user" -msgstr "Utilizador anónimo" - -#: models.py:20 models.py:21 -msgid "anonymous user" -msgstr "utilizador anónimo" - -#: models.py:25 -msgid "account" +msgid "About" msgstr "" -#: models.py:26 -msgid "password" -msgstr "" - -#: models.py:27 -msgid "password hash" -msgstr "" - -#: models.py:30 -msgid "auto admin properties" -msgstr "" - -#: utils.py:299 -msgid "function found" -msgstr "função encontrada" - -#: views.py:39 -msgid "No action selected." -msgstr "Nenhuma ação selecionada." - -#: views.py:43 -msgid "Must select at least one item." -msgstr "Deve selecionar pelo menos um item." - -#: views.py:91 -#, python-format -msgid "%(selection)s added successfully added to %(right_list_title)s." -msgstr "%(selection)s adicionadas com sucesso a %(right_list_title)s ." - -#: views.py:97 views.py:124 -#, python-format -msgid "Unable to add %(selection)s to %(right_list_title)s." -msgstr "Não foi possível adicionar %(selection)s a %(right_list_title)s ." - -#: views.py:118 -#, python-format -msgid "%(selection)s added successfully removed from %(right_list_title)s." -msgstr " %(selection)s removido com sucesso de %(right_list_title)s." - -#: views.py:139 -msgid "Add" -msgstr "Adicionar" - -#: views.py:150 -msgid "Remove" -msgstr "Remover" - -#: views.py:173 -msgid "current user details" -msgstr "detalhes do utilizador atual" - -#: views.py:190 -msgid "E-mail conflict, another user has that same email." -msgstr "Conflito de E-mail; outro utilizador tem o mesmo e-mail." - -#: views.py:193 -msgid "Current user's details updated." -msgstr "Detalhes do utilizador atual atualizados." - -#: views.py:202 -msgid "edit current user details" -msgstr "editar os detalhes do utilizador atual" - -#: views.py:233 +#: links.py:15 views.py:279 msgid "License" msgstr "Licença" -#: views.py:242 -msgid "Current user password change" -msgstr "Alteração da senha do utilizador atual" - -#: views.py:257 templates/password_change_done.html:8 -msgid "Your password has been successfully changed." -msgstr "A sua senha foi alterada com êxito." - -#: views.py:303 -#, python-format -msgid "Error saving %s details." +#: links.py:17 +msgid "Locale profile" msgstr "" -#: views.py:305 -msgid "Error saving details." +#: links.py:18 +msgid "Edit locale profile" msgstr "" -#: views.py:313 -#, python-format -msgid "%s details saved successfully." +#: links.py:20 +msgid "Logout" msgstr "" -#: views.py:315 -msgid "Details saved successfully." +#: models.py:28 models.py:31 +msgid "Anonymous user" +msgstr "Utilizador anónimo" + +#: models.py:35 +msgid "Account" msgstr "" -#: views.py:327 -#, python-format -msgid "Error creating new %s." +#: models.py:37 +msgid "Password hash" msgstr "" -#: views.py:329 -msgid "Error creating object." +#: models.py:40 +msgid "Auto admin properties" msgstr "" -#: views.py:336 -#, python-format -msgid "%s created successfully." +#: models.py:44 +msgid "File" msgstr "" -#: views.py:338 -msgid "New object created successfully." +#: models.py:45 +msgid "Filename" msgstr "" -#: views.py:356 -#, python-format -msgid "Error deleting %s." +#: models.py:46 +msgid "Date time" msgstr "" -#: views.py:358 -msgid "Error deleting object." +#: models.py:49 +msgid "Shared uploaded file" msgstr "" -#: views.py:363 -#, python-format -msgid "%s deleted successfully." +#: models.py:50 +msgid "Shared uploaded files" msgstr "" -#: views.py:365 -msgid "Object deleted successfully." +#: models.py:61 +msgid "User" msgstr "" -#: widgets.py:58 -msgid "None" -msgstr "Nenhum" +#: models.py:63 +msgid "Timezone" +msgstr "" -#: conf/settings.py:16 +#: models.py:64 +msgid "Language" +msgstr "" + +#: models.py:70 +msgid "User locale profile" +msgstr "" + +#: models.py:71 +msgid "User locale profiles" +msgstr "" + +#: settings.py:14 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 "" -#: conf/settings.py:66 +#: settings.py:48 msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" @@ -267,158 +151,276 @@ msgstr "" "Controla o mecanismo usado para autenticar o utilizador. As opções são: " "username, email" -#: conf/settings.py:75 +#: settings.py:57 msgid "Allow non authenticated users, access to all views" msgstr "Permitir acesso a todas as vistas aos utilizadores não autenticados" -#: templates/403.html:5 templates/403.html.py:9 -msgid "Insufficient permissions" -msgstr "Permissões insuficientes" - -#: templates/403.html:11 -msgid "You don't have enough permissions for this operation." -msgstr "Não possui permissões suficientes para esta operação." - -#: templates/404.html:5 templates/404.html.py:9 -msgid "Page not found" -msgstr "Página não encontrada" - -#: templates/404.html:11 -msgid "Sorry, but the requested page could not be found." -msgstr "Desculpe, mas a página solicitada não foi encontrada." - -#: templates/calculate_form_title.html:8 -#, python-format -msgid "Details for %(object_name)s: %(object)s" -msgstr "Detalhes para %(object_name)s : %(object)s " - -#: templates/calculate_form_title.html:10 -#, python-format -msgid "Details for: %(object)s" -msgstr "Detalhes para: %(object)s " - -#: templates/calculate_form_title.html:15 -#, fuzzy, python-format -msgid "Edit %(object_name)s: %(object)s" -msgstr "Detalhes para %(object_name)s : %(object)s " - -#: templates/calculate_form_title.html:17 -#, fuzzy, python-format -msgid "Edit: %(object)s" -msgstr "Editar %(object_name)s:" - -#: templates/calculate_form_title.html:21 -#, python-format -msgid "Create new %(object_name)s" -msgstr "Criar novo %(object_name)s " - -#: templates/calculate_form_title.html:23 -msgid "Create" -msgstr "Criar" - -#: templates/generic_assign_remove.html:5 -#, python-format -msgid "Assign %(title)s %(object)s" -msgstr "Atribuir %(title)s %(object)s " - -#: templates/generic_confirm.html:5 templates/generic_confirm.html.py:19 -msgid "Confirm" -msgstr "Confirmar" - -#: templates/generic_confirm.html:17 -msgid "Confirm delete" -msgstr "Confirmar exclusão" - -#: templates/generic_confirm.html:33 -msgid "form icon" -msgstr "ícone de formulário" - -#: templates/generic_confirm.html:41 -#, python-format -msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" -msgstr "Tem certeza de que deseja excluir %(object_name)s: %(object)s ?" - -#: templates/generic_confirm.html:43 -#, python-format -msgid "Are you sure you wish to delete: %(object)s?" -msgstr "Tem a certeza de que deseja excluir: %(object)s ?" - -#: templates/generic_confirm.html:51 -msgid "Yes" -msgstr "Sim" - -#: templates/generic_confirm.html:55 -msgid "No" -msgstr "Não" - -#: templates/generic_form_instance.html:40 -#: templates/generic_form_subtemplate.html:59 -msgid "required" -msgstr "exigido" - -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Save" -msgstr "Salvar" - -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Submit" -msgstr "Submeter" - -#: templates/generic_form_subtemplate.html:90 -msgid "Cancel" -msgstr "Cancelar" - -#: templates/generic_list.html:8 templates/generic_list_horizontal.html:8 -#, fuzzy, python-format -msgid "List of %(title)s" -msgstr "Lista de %(stripped_title)s " - -#: templates/generic_list_horizontal_subtemplate.html:24 -#: templates/generic_list_subtemplate.html:25 -#, python-format -msgid "" -"List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " -"%(page_number)s of %(total_pages)s)" +#: settings.py:66 +msgid "A storage backend that all workers can use to share files." msgstr "" -"Lista de %(title)s (%(start)s - %(end)s de %(total)s) (Página " -"%(page_number)s de %(total_pages)s)" -#: templates/generic_list_horizontal_subtemplate.html:26 -#: templates/generic_list_subtemplate.html:27 +#: utils.py:114 +msgid "Function found" +msgstr "" + +#: views.py:44 +msgid "No action selected." +msgstr "Nenhuma ação selecionada." + +#: views.py:48 +msgid "Must select at least one item." +msgstr "Deve selecionar pelo menos um item." + +#: views.py:100 #, python-format -msgid "List of %(title)s (%(total)s)" -msgstr "Lista de %(title)s (%(total)s)" +msgid "Unable to remove %(selection)s." +msgstr "" -#: templates/generic_list_subtemplate.html:73 -msgid "Identifier" -msgstr "Identificador" +#: views.py:125 +#, python-format +msgid "Unable to add %(selection)s." +msgstr "" -#: templates/generic_list_subtemplate.html:147 -#, fuzzy, python-format -msgid "There are no %(title)s" -msgstr "Não há %(stripped_title)s " +#: views.py:138 +msgid "Add" +msgstr "Adicionar" -#: templates/login.html:7 -msgid "Login" -msgstr "Login" +#: views.py:149 +msgid "Remove" +msgstr "Remover" -#: templates/password_change_done.html:5 templates/password_change_form.html:5 -#: templates/password_change_form.html:7 -msgid "Password change" -msgstr "Alteração da senha" +#: views.py:172 +msgid "Current user details" +msgstr "" + +#: views.py:187 +msgid "Current user locale profile details" +msgstr "" + +#: views.py:204 +msgid "E-mail conflict, another user has that same email." +msgstr "Conflito de E-mail; outro utilizador tem o mesmo e-mail." + +#: views.py:207 +msgid "Current user's details updated." +msgstr "Detalhes do utilizador atual atualizados." + +#: views.py:216 +msgid "Edit current user details" +msgstr "" + +#: views.py:239 +msgid "Current user's locale profile details updated." +msgstr "" + +#: views.py:248 +msgid "Edit current user locale profile details" +msgstr "" + +#: views.py:288 +msgid "Current user password change" +msgstr "Alteração da senha do utilizador atual" + +#: views.py:303 +msgid "Your password has been successfully changed." +msgstr "A sua senha foi alterada com êxito." + +#: views.py:314 +#, python-format +msgid "Error saving %s details." +msgstr "" + +#: views.py:316 +msgid "Error saving details." +msgstr "" + +#: views.py:324 +#, python-format +msgid "%s details saved successfully." +msgstr "" + +#: views.py:326 +msgid "Details saved successfully." +msgstr "" + +#: views.py:338 +#, python-format +msgid "Error creating new %s." +msgstr "" + +#: views.py:340 +msgid "Error creating object." +msgstr "" + +#: views.py:347 +#, python-format +msgid "%s created successfully." +msgstr "" + +#: views.py:349 +msgid "New object created successfully." +msgstr "" + +#: views.py:367 +#, python-format +msgid "Error deleting %s." +msgstr "" + +#: views.py:369 +msgid "Error deleting object." +msgstr "" + +#: views.py:374 +#, python-format +msgid "%s deleted successfully." +msgstr "" + +#: views.py:376 +msgid "Object deleted successfully." +msgstr "" + +#: widgets.py:60 +msgid "None" +msgstr "Nenhum" + +#~ msgid "%(selection)s added successfully added to %(right_list_title)s." +#~ msgstr "%(selection)s added successfully added to %(right_list_title)s." + +#~ msgid "%(selection)s added successfully removed from %(right_list_title)s." +#~ msgstr "%(selection)s added successfully removed from %(right_list_title)s." + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "Letter" +#~ msgstr "Letter" + +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Ledger" +#~ msgstr "Ledger" + +#~ msgid "Portrait" +#~ msgstr "Portrait" + +#~ msgid "Landscape" +#~ msgstr "Landscape" + +#~ msgid "license" +#~ msgstr "license" + +#~ msgid "anonymous user" +#~ msgstr "anonymous user" + +#~ msgid "password" +#~ msgstr "password" + +#~ msgid "Insufficient permissions" +#~ msgstr "Insufficient permissions" + +#~ msgid "You don't have enough permissions for this operation." +#~ msgstr "You don't have enough permissions for this operation." + +#~ msgid "Page not found" +#~ msgstr "Page not found" + +#~ msgid "Sorry, but the requested page could not be found." +#~ msgstr "Sorry, but the requested page could not be found." + +#~ msgid "Details for %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Details for: %(object)s" +#~ msgstr "Details for: %(object)s" + +#~ msgid "Edit %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Edit: %(object)s" +#~ msgstr "Edit %(object_name)s:" + +#~ msgid "Create new %(object_name)s" +#~ msgstr "Create new %(object_name)s" + +#~ msgid "Create" +#~ msgstr "Create" + +#~ msgid "Assign %(title)s %(object)s" +#~ msgstr "Assign %(title)s %(object)s" + +#~ msgid "Confirm" +#~ msgstr "Confirm" + +#~ msgid "Confirm delete" +#~ msgstr "Confirm delete" + +#~ msgid "form icon" +#~ msgstr "form icon" + +#~ msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +#~ msgstr "Are you sure you wish to delete %(object_name)s: %(object)s?" + +#~ msgid "Are you sure you wish to delete: %(object)s?" +#~ msgstr "Are you sure you wish to delete: %(object)s?" + +#~ msgid "Yes" +#~ msgstr "Yes" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "required" +#~ msgstr "required" + +#~ msgid "Save" +#~ msgstr "Save" + +#~ msgid "Submit" +#~ msgstr "Submit" + +#~ msgid "Cancel" +#~ msgstr "Cancel" + +#~ msgid "List of %(title)s" +#~ msgstr "List of %(stripped_title)s" + +#~ msgid "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" +#~ msgstr "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" + +#~ msgid "List of %(title)s (%(total)s)" +#~ msgstr "List of %(title)s (%(total)s)" + +#~ msgid "Identifier" +#~ msgstr "Identifier" + +#~ msgid "There are no %(title)s" +#~ msgstr "There are no %(stripped_title)s" + +#~ msgid "Login" +#~ msgstr "Login" + +#~ msgid "Password change" +#~ msgstr "Password change" #~ msgid "lock field" -#~ msgstr "campo de bloqueio" +#~ msgstr "lock field" #~ msgid "Edit" -#~ msgstr "Editar" +#~ msgstr "Edit" diff --git a/mayan/apps/common/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/common/locale/pt_BR/LC_MESSAGES/django.mo index 8c089357c0..1a4ac05adc 100644 Binary files a/mayan/apps/common/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/common/locale/pt_BR/LC_MESSAGES/django.po index 82b28fbf8d..bc65254df9 100644 --- a/mayan/apps/common/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/pt_BR/LC_MESSAGES/django.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: -# emersonsoares , 2011 +# Translators: +# Emerson Soares , 2011 # Roberto Rosario, 2012 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-12-12 06:05+0000\n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-17 07:03+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/" "mayan-edms/language/pt_BR/)\n" @@ -20,245 +21,128 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: forms.py:97 +#: classes.py:40 +msgid "Available attributes: " +msgstr "" + +#: forms.py:98 msgid "Selection" msgstr "Seleção" -#: forms.py:128 +#: forms.py:143 msgid "Email" msgstr "E-mail" -#: forms.py:131 -#, fuzzy +#: forms.py:146 models.py:36 msgid "Password" -msgstr "Alterar a senha" +msgstr "" -#: forms.py:134 -#, fuzzy +#: forms.py:149 msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." msgstr "" -"Por favor insira o e-mail e senha corretos. Note que os campos de senha são " -"case-sensitive." -#: forms.py:136 +#: forms.py:151 msgid "This account is inactive." msgstr "Esta conta está inativa." #: links.py:10 -msgid "change password" -msgstr "alterar a senha" +msgid "Change password" +msgstr "" #: links.py:11 -msgid "user details" -msgstr "detalhes do usuário" +msgid "User details" +msgstr "" #: links.py:12 -msgid "edit details" -msgstr "editar detalhes" +msgid "Edit details" +msgstr "" #: links.py:14 -msgid "about" -msgstr "sobre" - -#: links.py:15 -msgid "license" -msgstr "licença" - -#: 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 "Carta" - -#: literals.py:30 -msgid "Legal" -msgstr "Legal" - -#: literals.py:31 -msgid "Ledger" -msgstr "Livro-razão" - -#: literals.py:38 -msgid "Portrait" -msgstr "Retrato" - -#: literals.py:39 -msgid "Landscape" -msgstr "Paisagem" - -#: models.py:17 -msgid "Anonymous user" -msgstr "Usuário anônimo" - -#: models.py:20 models.py:21 -msgid "anonymous user" -msgstr "usuário anônimo" - -#: models.py:25 -msgid "account" +msgid "About" msgstr "" -#: models.py:26 -msgid "password" -msgstr "" - -#: models.py:27 -msgid "password hash" -msgstr "" - -#: models.py:30 -msgid "auto admin properties" -msgstr "" - -#: utils.py:299 -msgid "function found" -msgstr "função encontrada" - -#: views.py:39 -msgid "No action selected." -msgstr "Nenhuma ação selecionada." - -#: views.py:43 -msgid "Must select at least one item." -msgstr "Deve selecionar pelo menos um item." - -#: views.py:91 -#, python-format -msgid "%(selection)s added successfully added to %(right_list_title)s." -msgstr "%(selection)s adicionadas com sucesso a %(right_list_title)s ." - -#: views.py:97 views.py:124 -#, python-format -msgid "Unable to add %(selection)s to %(right_list_title)s." -msgstr "Não foi possível adicionar %(selection)s para %(right_list_title)s ." - -#: views.py:118 -#, python-format -msgid "%(selection)s added successfully removed from %(right_list_title)s." -msgstr " %(selection)s adicionado com sucesso removidos %(right_list_title)s." - -#: views.py:139 -msgid "Add" -msgstr "Adicionar" - -#: views.py:150 -msgid "Remove" -msgstr "Remover" - -#: views.py:173 -msgid "current user details" -msgstr "detalhes atuais do usuário" - -#: views.py:190 -msgid "E-mail conflict, another user has that same email." -msgstr "E-mail conflito, outro usuário que tem mesmo e-mail." - -#: views.py:193 -msgid "Current user's details updated." -msgstr "Detalhes do usuário atual atualizados." - -#: views.py:202 -msgid "edit current user details" -msgstr "editar os detalhes do usuário atual" - -#: views.py:233 +#: links.py:15 views.py:279 msgid "License" msgstr "Licença" -#: views.py:242 -msgid "Current user password change" -msgstr "Alteração de senha do usuário atual" - -#: views.py:257 templates/password_change_done.html:8 -msgid "Your password has been successfully changed." -msgstr "Sua senha foi alterada com êxito." - -#: views.py:303 -#, python-format -msgid "Error saving %s details." +#: links.py:17 +msgid "Locale profile" msgstr "" -#: views.py:305 -msgid "Error saving details." +#: links.py:18 +msgid "Edit locale profile" msgstr "" -#: views.py:313 -#, python-format -msgid "%s details saved successfully." +#: links.py:20 +msgid "Logout" msgstr "" -#: views.py:315 -msgid "Details saved successfully." +#: models.py:28 models.py:31 +msgid "Anonymous user" +msgstr "Usuário anônimo" + +#: models.py:35 +msgid "Account" msgstr "" -#: views.py:327 -#, python-format -msgid "Error creating new %s." +#: models.py:37 +msgid "Password hash" msgstr "" -#: views.py:329 -msgid "Error creating object." +#: models.py:40 +msgid "Auto admin properties" msgstr "" -#: views.py:336 -#, python-format -msgid "%s created successfully." +#: models.py:44 +msgid "File" msgstr "" -#: views.py:338 -msgid "New object created successfully." +#: models.py:45 +msgid "Filename" msgstr "" -#: views.py:356 -#, python-format -msgid "Error deleting %s." +#: models.py:46 +msgid "Date time" msgstr "" -#: views.py:358 -msgid "Error deleting object." +#: models.py:49 +msgid "Shared uploaded file" msgstr "" -#: views.py:363 -#, python-format -msgid "%s deleted successfully." +#: models.py:50 +msgid "Shared uploaded files" msgstr "" -#: views.py:365 -msgid "Object deleted successfully." +#: models.py:61 +msgid "User" msgstr "" -#: widgets.py:58 -msgid "None" -msgstr "Nenhum" +#: models.py:63 +msgid "Timezone" +msgstr "" -#: conf/settings.py:16 +#: models.py:64 +msgid "Language" +msgstr "" + +#: models.py:70 +msgid "User locale profile" +msgstr "" + +#: models.py:71 +msgid "User locale profiles" +msgstr "" + +#: settings.py:14 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 "" -#: conf/settings.py:66 +#: settings.py:48 msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" @@ -266,155 +150,276 @@ msgstr "" "Controla o mecanismo usado para usuário autenticado. As opções são: e-mail, " "nome de usuário," -#: conf/settings.py:75 +#: settings.py:57 msgid "Allow non authenticated users, access to all views" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 -msgid "Insufficient permissions" -msgstr "Permissões insuficientes" - -#: templates/403.html:11 -msgid "You don't have enough permissions for this operation." -msgstr "Você não tem permissões suficientes para esta operação." - -#: templates/404.html:5 templates/404.html.py:9 -msgid "Page not found" -msgstr "Página não encontrada" - -#: templates/404.html:11 -msgid "Sorry, but the requested page could not be found." -msgstr "Desculpe, mas a página solicitada não pôde ser encontrada." - -#: templates/calculate_form_title.html:8 -#, python-format -msgid "Details for %(object_name)s: %(object)s" -msgstr "Detalhes para %(object_name)s : %(object)s " - -#: templates/calculate_form_title.html:10 -#, python-format -msgid "Details for: %(object)s" -msgstr "Detalhes para: %(object)s " - -#: templates/calculate_form_title.html:15 -#, fuzzy, python-format -msgid "Edit %(object_name)s: %(object)s" -msgstr "Detalhes para %(object_name)s : %(object)s " - -#: templates/calculate_form_title.html:17 -#, fuzzy, python-format -msgid "Edit: %(object)s" -msgstr "Editar %(object_name)s:" - -#: templates/calculate_form_title.html:21 -#, python-format -msgid "Create new %(object_name)s" -msgstr "Criar novas %(object_name)s " - -#: templates/calculate_form_title.html:23 -msgid "Create" -msgstr "Criar" - -#: templates/generic_assign_remove.html:5 -#, python-format -msgid "Assign %(title)s %(object)s" -msgstr "Atribuir %(title)s %(object)s " - -#: templates/generic_confirm.html:5 templates/generic_confirm.html.py:19 -msgid "Confirm" -msgstr "Confirmar" - -#: templates/generic_confirm.html:17 -msgid "Confirm delete" -msgstr "Confirmar exclusão" - -#: templates/generic_confirm.html:33 -msgid "form icon" -msgstr "ícone de formulário" - -#: templates/generic_confirm.html:41 -#, python-format -msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" -msgstr "Tem certeza de que deseja excluir %(object_name)s: %(object)s ?" - -#: templates/generic_confirm.html:43 -#, python-format -msgid "Are you sure you wish to delete: %(object)s?" -msgstr "Tem certeza de que deseja excluir: %(object)s ?" - -#: templates/generic_confirm.html:51 -msgid "Yes" -msgstr "Sim" - -#: templates/generic_confirm.html:55 -msgid "No" -msgstr "Não" - -#: templates/generic_form_instance.html:40 -#: templates/generic_form_subtemplate.html:59 -msgid "required" -msgstr "exigido" - -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Save" -msgstr "Salvar" - -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Submit" -msgstr "Submeter" - -#: templates/generic_form_subtemplate.html:90 -msgid "Cancel" -msgstr "Cancelar" - -#: templates/generic_list.html:8 templates/generic_list_horizontal.html:8 -#, fuzzy, python-format -msgid "List of %(title)s" -msgstr "Lista de %(stripped_title)s " - -#: templates/generic_list_horizontal_subtemplate.html:24 -#: templates/generic_list_subtemplate.html:25 -#, python-format -msgid "" -"List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " -"%(page_number)s of %(total_pages)s)" +#: settings.py:66 +msgid "A storage backend that all workers can use to share files." msgstr "" -"Lista de %(title)s (%(start)s - %(end)s de %(total)s) (Page %(page_number)s " -"of %(total_pages)s)" -#: templates/generic_list_horizontal_subtemplate.html:26 -#: templates/generic_list_subtemplate.html:27 +#: utils.py:114 +msgid "Function found" +msgstr "" + +#: views.py:44 +msgid "No action selected." +msgstr "Nenhuma ação selecionada." + +#: views.py:48 +msgid "Must select at least one item." +msgstr "Deve selecionar pelo menos um item." + +#: views.py:100 #, python-format -msgid "List of %(title)s (%(total)s)" -msgstr "Lista de %(title)s (%(total)s)" +msgid "Unable to remove %(selection)s." +msgstr "" -#: templates/generic_list_subtemplate.html:73 -msgid "Identifier" -msgstr "Identificador" +#: views.py:125 +#, python-format +msgid "Unable to add %(selection)s." +msgstr "" -#: templates/generic_list_subtemplate.html:147 -#, fuzzy, python-format -msgid "There are no %(title)s" -msgstr "Não há %(stripped_title)s " +#: views.py:138 +msgid "Add" +msgstr "Adicionar" -#: templates/login.html:7 -msgid "Login" -msgstr "Login" +#: views.py:149 +msgid "Remove" +msgstr "Remover" -#: templates/password_change_done.html:5 templates/password_change_form.html:5 -#: templates/password_change_form.html:7 -msgid "Password change" -msgstr "Alterar a senha" +#: views.py:172 +msgid "Current user details" +msgstr "" + +#: views.py:187 +msgid "Current user locale profile details" +msgstr "" + +#: views.py:204 +msgid "E-mail conflict, another user has that same email." +msgstr "E-mail conflito, outro usuário que tem mesmo e-mail." + +#: views.py:207 +msgid "Current user's details updated." +msgstr "Detalhes do usuário atual atualizados." + +#: views.py:216 +msgid "Edit current user details" +msgstr "" + +#: views.py:239 +msgid "Current user's locale profile details updated." +msgstr "" + +#: views.py:248 +msgid "Edit current user locale profile details" +msgstr "" + +#: views.py:288 +msgid "Current user password change" +msgstr "Alteração de senha do usuário atual" + +#: views.py:303 +msgid "Your password has been successfully changed." +msgstr "Sua senha foi alterada com êxito." + +#: views.py:314 +#, python-format +msgid "Error saving %s details." +msgstr "" + +#: views.py:316 +msgid "Error saving details." +msgstr "" + +#: views.py:324 +#, python-format +msgid "%s details saved successfully." +msgstr "" + +#: views.py:326 +msgid "Details saved successfully." +msgstr "" + +#: views.py:338 +#, python-format +msgid "Error creating new %s." +msgstr "" + +#: views.py:340 +msgid "Error creating object." +msgstr "" + +#: views.py:347 +#, python-format +msgid "%s created successfully." +msgstr "" + +#: views.py:349 +msgid "New object created successfully." +msgstr "" + +#: views.py:367 +#, python-format +msgid "Error deleting %s." +msgstr "" + +#: views.py:369 +msgid "Error deleting object." +msgstr "" + +#: views.py:374 +#, python-format +msgid "%s deleted successfully." +msgstr "" + +#: views.py:376 +msgid "Object deleted successfully." +msgstr "" + +#: widgets.py:60 +msgid "None" +msgstr "Nenhum" + +#~ msgid "%(selection)s added successfully added to %(right_list_title)s." +#~ msgstr "%(selection)s added successfully added to %(right_list_title)s." + +#~ msgid "%(selection)s added successfully removed from %(right_list_title)s." +#~ msgstr "%(selection)s added successfully removed from %(right_list_title)s." + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "Letter" +#~ msgstr "Letter" + +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Ledger" +#~ msgstr "Ledger" + +#~ msgid "Portrait" +#~ msgstr "Portrait" + +#~ msgid "Landscape" +#~ msgstr "Landscape" + +#~ msgid "license" +#~ msgstr "license" + +#~ msgid "anonymous user" +#~ msgstr "anonymous user" + +#~ msgid "password" +#~ msgstr "password" + +#~ msgid "Insufficient permissions" +#~ msgstr "Insufficient permissions" + +#~ msgid "You don't have enough permissions for this operation." +#~ msgstr "You don't have enough permissions for this operation." + +#~ msgid "Page not found" +#~ msgstr "Page not found" + +#~ msgid "Sorry, but the requested page could not be found." +#~ msgstr "Sorry, but the requested page could not be found." + +#~ msgid "Details for %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Details for: %(object)s" +#~ msgstr "Details for: %(object)s" + +#~ msgid "Edit %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Edit: %(object)s" +#~ msgstr "Edit %(object_name)s:" + +#~ msgid "Create new %(object_name)s" +#~ msgstr "Create new %(object_name)s" + +#~ msgid "Create" +#~ msgstr "Create" + +#~ msgid "Assign %(title)s %(object)s" +#~ msgstr "Assign %(title)s %(object)s" + +#~ msgid "Confirm" +#~ msgstr "Confirm" + +#~ msgid "Confirm delete" +#~ msgstr "Confirm delete" + +#~ msgid "form icon" +#~ msgstr "form icon" + +#~ msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +#~ msgstr "Are you sure you wish to delete %(object_name)s: %(object)s?" + +#~ msgid "Are you sure you wish to delete: %(object)s?" +#~ msgstr "Are you sure you wish to delete: %(object)s?" + +#~ msgid "Yes" +#~ msgstr "Yes" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "required" +#~ msgstr "required" + +#~ msgid "Save" +#~ msgstr "Save" + +#~ msgid "Submit" +#~ msgstr "Submit" + +#~ msgid "Cancel" +#~ msgstr "Cancel" + +#~ msgid "List of %(title)s" +#~ msgstr "List of %(stripped_title)s" + +#~ msgid "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" +#~ msgstr "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" + +#~ msgid "List of %(title)s (%(total)s)" +#~ msgstr "List of %(title)s (%(total)s)" + +#~ msgid "Identifier" +#~ msgstr "Identifier" + +#~ msgid "There are no %(title)s" +#~ msgstr "There are no %(stripped_title)s" + +#~ msgid "Login" +#~ msgstr "Login" + +#~ msgid "Password change" +#~ msgstr "Password change" + +#~ msgid "lock field" +#~ msgstr "lock field" #~ msgid "Edit" -#~ msgstr "Editar" +#~ msgstr "Edit" diff --git a/mayan/apps/common/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/common/locale/ro_RO/LC_MESSAGES/django.mo index 8dd54258a9..5a64357491 100644 Binary files a/mayan/apps/common/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/common/locale/ro_RO/LC_MESSAGES/django.po index b2c251c778..82e327e386 100644 --- a/mayan/apps/common/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/ro_RO/LC_MESSAGES/django.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: # Badea Gabriel , 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2013-02-17 12:20+0000\n" -"Last-Translator: Badea Gabriel \n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-17 07:03+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Romanian (Romania) (http://www.transifex.com/projects/p/mayan-" "edms/language/ro_RO/)\n" "Language: ro_RO\n" @@ -20,239 +21,121 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" "2:1));\n" -#: forms.py:97 +#: classes.py:40 +msgid "Available attributes: " +msgstr "" + +#: forms.py:98 msgid "Selection" msgstr "selecţie" -#: forms.py:128 +#: forms.py:143 msgid "Email" msgstr "email" -#: forms.py:131 -#, fuzzy +#: forms.py:146 models.py:36 msgid "Password" -msgstr "parolă" +msgstr "" -#: forms.py:134 -#, fuzzy +#: forms.py:149 msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." msgstr "" -"Vă rugăm să introduceți o adresa de e-mail și o parolă corectă. Rețineți că " -"datele pentru parola sunt sensibile la majuscule." -#: forms.py:136 +#: forms.py:151 msgid "This account is inactive." msgstr "Acest cont este inactiv." #: links.py:10 -msgid "change password" -msgstr "schimbă parola" +msgid "Change password" +msgstr "" #: links.py:11 -msgid "user details" -msgstr "detalii utilizator" +msgid "User details" +msgstr "" #: links.py:12 -msgid "edit details" -msgstr "editează detalii" +msgid "Edit details" +msgstr "" #: links.py:14 -msgid "about" -msgstr "despre" - -#: links.py:15 -msgid "license" -msgstr "licenţă" - -#: 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 "Ledger" - -#: literals.py:38 -msgid "Portrait" -msgstr "Portret" - -#: literals.py:39 -msgid "Landscape" -msgstr "Landscape" - -#: models.py:17 -msgid "Anonymous user" -msgstr "Utilizator anonim" - -#: models.py:20 models.py:21 -msgid "anonymous user" -msgstr "utilizator anonim" - -#: models.py:25 -msgid "account" -msgstr "cont" - -#: models.py:26 -msgid "password" -msgstr "parolă" - -#: models.py:27 -msgid "password hash" -msgstr "hash parolă" - -#: models.py:30 -msgid "auto admin properties" -msgstr "proprietăți admin" - -#: utils.py:299 -msgid "function found" -msgstr "functie gasită" - -#: views.py:39 -msgid "No action selected." -msgstr "Nu a fost selectată nici o acţiune." - -#: views.py:43 -msgid "Must select at least one item." -msgstr "Trebuie sa selectaţi cel puţin un rând" - -#: views.py:91 -#, python-format -msgid "%(selection)s added successfully added to %(right_list_title)s." -msgstr "%(selection)s adaugate cu succes la %(right_list_title)s." - -#: views.py:97 views.py:124 -#, python-format -msgid "Unable to add %(selection)s to %(right_list_title)s." -msgstr "nu au putut fi adăugate %(selection)s la %(right_list_title)s." - -#: views.py:118 -#, python-format -msgid "%(selection)s added successfully removed from %(right_list_title)s." +msgid "About" msgstr "" -"%(selection)s adăugate cu succes şi şterse urmatoarele %(right_list_title)s." -#: views.py:139 -msgid "Add" -msgstr "Adaugă" - -#: views.py:150 -msgid "Remove" -msgstr "Şterge" - -#: views.py:173 -msgid "current user details" -msgstr "detaliile utilizatorului curent" - -#: views.py:190 -msgid "E-mail conflict, another user has that same email." -msgstr "E-mail conflict, un alt utilizator are acest e-mail." - -#: views.py:193 -msgid "Current user's details updated." -msgstr "Detaliile utilizatorului curent au fost actualizate." - -#: views.py:202 -msgid "edit current user details" -msgstr "editează detaliile utilizatorului curent" - -#: views.py:233 +#: links.py:15 views.py:279 msgid "License" msgstr "Licenţă" -#: views.py:242 -msgid "Current user password change" -msgstr "Schimbare parola pentru utilizatorul curent" - -#: views.py:257 templates/password_change_done.html:8 -msgid "Your password has been successfully changed." -msgstr "Parola dvs. a fost schimbată cu succes" - -#: views.py:303 -#, python-format -msgid "Error saving %s details." +#: links.py:17 +msgid "Locale profile" msgstr "" -#: views.py:305 -msgid "Error saving details." +#: links.py:18 +msgid "Edit locale profile" msgstr "" -#: views.py:313 -#, python-format -msgid "%s details saved successfully." +#: links.py:20 +msgid "Logout" msgstr "" -#: views.py:315 -msgid "Details saved successfully." +#: models.py:28 models.py:31 +msgid "Anonymous user" +msgstr "Utilizator anonim" + +#: models.py:35 +msgid "Account" msgstr "" -#: views.py:327 -#, python-format -msgid "Error creating new %s." +#: models.py:37 +msgid "Password hash" msgstr "" -#: views.py:329 -msgid "Error creating object." +#: models.py:40 +msgid "Auto admin properties" msgstr "" -#: views.py:336 -#, python-format -msgid "%s created successfully." +#: models.py:44 +msgid "File" msgstr "" -#: views.py:338 -msgid "New object created successfully." +#: models.py:45 +msgid "Filename" msgstr "" -#: views.py:356 -#, python-format -msgid "Error deleting %s." +#: models.py:46 +msgid "Date time" msgstr "" -#: views.py:358 -msgid "Error deleting object." +#: models.py:49 +msgid "Shared uploaded file" msgstr "" -#: views.py:363 -#, python-format -msgid "%s deleted successfully." +#: models.py:50 +msgid "Shared uploaded files" msgstr "" -#: views.py:365 -msgid "Object deleted successfully." +#: models.py:61 +msgid "User" msgstr "" -#: widgets.py:58 -msgid "None" -msgstr "Nici unul" +#: models.py:63 +msgid "Timezone" +msgstr "" -#: conf/settings.py:16 +#: models.py:64 +msgid "Language" +msgstr "" + +#: models.py:70 +msgid "User locale profile" +msgstr "" + +#: models.py:71 +msgid "User locale profiles" +msgstr "" + +#: settings.py:14 msgid "" "Temporary directory used site wide to store thumbnails, previews and " "temporary files. If none is specified, one will be created using tempfile." @@ -262,7 +145,7 @@ msgstr "" "previzualizări și fișiere temporare. În cazul în care nu este specificat, " "se va fi creat cu ajutorul tempfile.mkdtemp ()" -#: conf/settings.py:66 +#: settings.py:48 msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" @@ -270,159 +153,277 @@ msgstr "" "Controlează mecanismul utilizat pentru autentificare. Optiunile sunt: numele " "de utilizator, e-mail" -#: conf/settings.py:75 +#: settings.py:57 msgid "Allow non authenticated users, access to all views" msgstr "" "Permiteți accesul utilizatorilor neautentificati la toate punctele de vedere" -#: templates/403.html:5 templates/403.html.py:9 -msgid "Insufficient permissions" -msgstr "permisiuni insuficiente" - -#: templates/403.html:11 -msgid "You don't have enough permissions for this operation." -msgstr "Nu aveți permisiuni suficiente pentru această operație." - -#: templates/404.html:5 templates/404.html.py:9 -msgid "Page not found" -msgstr "Pagina nu a fost gasită" - -#: templates/404.html:11 -msgid "Sorry, but the requested page could not be found." -msgstr "Ne pare rău, dar pagina solicitată nu a putut fi găsit." - -#: templates/calculate_form_title.html:8 -#, python-format -msgid "Details for %(object_name)s: %(object)s" -msgstr "Detalii pentru %(object_name)s: %(object)s" - -#: templates/calculate_form_title.html:10 -#, python-format -msgid "Details for: %(object)s" -msgstr "Detalii pentru: %(object)s" - -#: templates/calculate_form_title.html:15 -#, fuzzy, python-format -msgid "Edit %(object_name)s: %(object)s" -msgstr "Detalii pentru %(object_name)s: %(object)s" - -#: templates/calculate_form_title.html:17 -#, fuzzy, python-format -msgid "Edit: %(object)s" -msgstr "Editează %(object_name)s:" - -#: templates/calculate_form_title.html:21 -#, python-format -msgid "Create new %(object_name)s" -msgstr "Creati nou %(object_name)s" - -#: templates/calculate_form_title.html:23 -msgid "Create" -msgstr "Creati" - -#: templates/generic_assign_remove.html:5 -#, python-format -msgid "Assign %(title)s %(object)s" -msgstr "Atribuirea %(title)s %(object)s " - -#: templates/generic_confirm.html:5 templates/generic_confirm.html.py:19 -msgid "Confirm" -msgstr "Confirmă" - -#: templates/generic_confirm.html:17 -msgid "Confirm delete" -msgstr "Confirmă stergerea" - -#: templates/generic_confirm.html:33 -msgid "form icon" -msgstr "icon formular" - -#: templates/generic_confirm.html:41 -#, python-format -msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" -msgstr "Sunteți sigur că doriți să ștergeți %(object_name)s: %(object)s ?" - -#: templates/generic_confirm.html:43 -#, python-format -msgid "Are you sure you wish to delete: %(object)s?" -msgstr "Sunteți sigur că doriți să ștergeți: %(object)s?" - -#: templates/generic_confirm.html:51 -msgid "Yes" -msgstr "Da" - -#: templates/generic_confirm.html:55 -msgid "No" -msgstr "Nu" - -#: templates/generic_form_instance.html:40 -#: templates/generic_form_subtemplate.html:59 -msgid "required" -msgstr "necesar" - -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Save" -msgstr "salvează" - -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Submit" -msgstr "Trimiteţi" - -#: templates/generic_form_subtemplate.html:90 -msgid "Cancel" -msgstr "Anulează" - -#: templates/generic_list.html:8 templates/generic_list_horizontal.html:8 -#, fuzzy, python-format -msgid "List of %(title)s" -msgstr "Lista de %(stripped_title)s" - -#: templates/generic_list_horizontal_subtemplate.html:24 -#: templates/generic_list_subtemplate.html:25 -#, python-format -msgid "" -"List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " -"%(page_number)s of %(total_pages)s)" +#: settings.py:66 +msgid "A storage backend that all workers can use to share files." msgstr "" -"Listă de %(title)s (%(start)s - %(end)s din %(total)s) (Page %(page_number)s " -"din %(total_pages)s)" -#: templates/generic_list_horizontal_subtemplate.html:26 -#: templates/generic_list_subtemplate.html:27 +#: utils.py:114 +msgid "Function found" +msgstr "" + +#: views.py:44 +msgid "No action selected." +msgstr "Nu a fost selectată nici o acţiune." + +#: views.py:48 +msgid "Must select at least one item." +msgstr "Trebuie sa selectaţi cel puţin un rând" + +#: views.py:100 #, python-format -msgid "List of %(title)s (%(total)s)" -msgstr "Listă de %(title)s (%(total)s)" +msgid "Unable to remove %(selection)s." +msgstr "" -#: templates/generic_list_subtemplate.html:73 -msgid "Identifier" -msgstr "ID" +#: views.py:125 +#, python-format +msgid "Unable to add %(selection)s." +msgstr "" -#: templates/generic_list_subtemplate.html:147 -#, fuzzy, python-format -msgid "There are no %(title)s" -msgstr "Nu sunt %(stripped_title)s" +#: views.py:138 +msgid "Add" +msgstr "Adaugă" -#: templates/login.html:7 -msgid "Login" -msgstr "Conectare" +#: views.py:149 +msgid "Remove" +msgstr "Şterge" -#: templates/password_change_done.html:5 templates/password_change_form.html:5 -#: templates/password_change_form.html:7 -msgid "Password change" -msgstr "Schimbarea parolei " +#: views.py:172 +msgid "Current user details" +msgstr "" + +#: views.py:187 +msgid "Current user locale profile details" +msgstr "" + +#: views.py:204 +msgid "E-mail conflict, another user has that same email." +msgstr "E-mail conflict, un alt utilizator are acest e-mail." + +#: views.py:207 +msgid "Current user's details updated." +msgstr "Detaliile utilizatorului curent au fost actualizate." + +#: views.py:216 +msgid "Edit current user details" +msgstr "" + +#: views.py:239 +msgid "Current user's locale profile details updated." +msgstr "" + +#: views.py:248 +msgid "Edit current user locale profile details" +msgstr "" + +#: views.py:288 +msgid "Current user password change" +msgstr "Schimbare parola pentru utilizatorul curent" + +#: views.py:303 +msgid "Your password has been successfully changed." +msgstr "Parola dvs. a fost schimbată cu succes" + +#: views.py:314 +#, python-format +msgid "Error saving %s details." +msgstr "" + +#: views.py:316 +msgid "Error saving details." +msgstr "" + +#: views.py:324 +#, python-format +msgid "%s details saved successfully." +msgstr "" + +#: views.py:326 +msgid "Details saved successfully." +msgstr "" + +#: views.py:338 +#, python-format +msgid "Error creating new %s." +msgstr "" + +#: views.py:340 +msgid "Error creating object." +msgstr "" + +#: views.py:347 +#, python-format +msgid "%s created successfully." +msgstr "" + +#: views.py:349 +msgid "New object created successfully." +msgstr "" + +#: views.py:367 +#, python-format +msgid "Error deleting %s." +msgstr "" + +#: views.py:369 +msgid "Error deleting object." +msgstr "" + +#: views.py:374 +#, python-format +msgid "%s deleted successfully." +msgstr "" + +#: views.py:376 +msgid "Object deleted successfully." +msgstr "" + +#: widgets.py:60 +msgid "None" +msgstr "Nici unul" + +#~ msgid "%(selection)s added successfully added to %(right_list_title)s." +#~ msgstr "%(selection)s added successfully added to %(right_list_title)s." + +#~ msgid "%(selection)s added successfully removed from %(right_list_title)s." +#~ msgstr "%(selection)s added successfully removed from %(right_list_title)s." + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "Letter" +#~ msgstr "Letter" + +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Ledger" +#~ msgstr "Ledger" + +#~ msgid "Portrait" +#~ msgstr "Portrait" + +#~ msgid "Landscape" +#~ msgstr "Landscape" + +#~ msgid "license" +#~ msgstr "license" + +#~ msgid "anonymous user" +#~ msgstr "anonymous user" + +#~ msgid "password" +#~ msgstr "password" + +#~ msgid "Insufficient permissions" +#~ msgstr "Insufficient permissions" + +#~ msgid "You don't have enough permissions for this operation." +#~ msgstr "You don't have enough permissions for this operation." + +#~ msgid "Page not found" +#~ msgstr "Page not found" + +#~ msgid "Sorry, but the requested page could not be found." +#~ msgstr "Sorry, but the requested page could not be found." + +#~ msgid "Details for %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Details for: %(object)s" +#~ msgstr "Details for: %(object)s" + +#~ msgid "Edit %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Edit: %(object)s" +#~ msgstr "Edit %(object_name)s:" + +#~ msgid "Create new %(object_name)s" +#~ msgstr "Create new %(object_name)s" + +#~ msgid "Create" +#~ msgstr "Create" + +#~ msgid "Assign %(title)s %(object)s" +#~ msgstr "Assign %(title)s %(object)s" + +#~ msgid "Confirm" +#~ msgstr "Confirm" + +#~ msgid "Confirm delete" +#~ msgstr "Confirm delete" + +#~ msgid "form icon" +#~ msgstr "form icon" + +#~ msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +#~ msgstr "Are you sure you wish to delete %(object_name)s: %(object)s?" + +#~ msgid "Are you sure you wish to delete: %(object)s?" +#~ msgstr "Are you sure you wish to delete: %(object)s?" + +#~ msgid "Yes" +#~ msgstr "Yes" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "required" +#~ msgstr "required" + +#~ msgid "Save" +#~ msgstr "Save" + +#~ msgid "Submit" +#~ msgstr "Submit" + +#~ msgid "Cancel" +#~ msgstr "Cancel" + +#~ msgid "List of %(title)s" +#~ msgstr "List of %(stripped_title)s" + +#~ msgid "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" +#~ msgstr "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" + +#~ msgid "List of %(title)s (%(total)s)" +#~ msgstr "List of %(title)s (%(total)s)" + +#~ msgid "Identifier" +#~ msgstr "Identifier" + +#~ msgid "There are no %(title)s" +#~ msgstr "There are no %(stripped_title)s" + +#~ msgid "Login" +#~ msgstr "Login" + +#~ msgid "Password change" +#~ msgstr "Password change" #~ msgid "lock field" -#~ msgstr "câmp blocat" +#~ msgstr "lock field" #~ msgid "Edit" -#~ msgstr "Editează" +#~ msgstr "Edit" diff --git a/mayan/apps/common/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/common/locale/ru/LC_MESSAGES/django.mo index 752c40c138..87202110dc 100644 Binary files a/mayan/apps/common/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/ru/LC_MESSAGES/django.po b/mayan/apps/common/locale/ru/LC_MESSAGES/django.po index 9ba63e77e6..db12208984 100644 --- a/mayan/apps/common/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/ru/LC_MESSAGES/django.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: # Sergey Glita , 2011-2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2013-05-14 06:31+0000\n" -"Last-Translator: Sergey Glita \n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-17 07:03+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Russian (http://www.transifex.com/projects/p/mayan-edms/" "language/ru/)\n" "Language: ru\n" @@ -20,238 +21,121 @@ msgstr "" "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" -#: forms.py:97 +#: classes.py:40 +msgid "Available attributes: " +msgstr "" + +#: forms.py:98 msgid "Selection" msgstr "Выбор" -#: forms.py:128 +#: forms.py:143 msgid "Email" msgstr "Email" -#: forms.py:131 -#, fuzzy +#: forms.py:146 models.py:36 msgid "Password" -msgstr "пароль" +msgstr "" -#: forms.py:134 -#, fuzzy +#: forms.py:149 msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." msgstr "" -"Пожалуйста, введите правильный адрес электронной почты и пароль с учетом " -"регистра." -#: forms.py:136 +#: forms.py:151 msgid "This account is inactive." msgstr "Эта учетная запись неактивна." #: links.py:10 -msgid "change password" -msgstr "Изменение пароля" +msgid "Change password" +msgstr "" #: links.py:11 -msgid "user details" -msgstr "сведения о пользователе" +msgid "User details" +msgstr "" #: links.py:12 -msgid "edit details" -msgstr "изменение сведений" +msgid "Edit details" +msgstr "" #: links.py:14 -msgid "about" -msgstr "инфо" +msgid "About" +msgstr "" -#: links.py:15 -msgid "license" -msgstr "лицензия" - -#: 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 "Ledger" - -#: literals.py:38 -msgid "Portrait" -msgstr "Портрет" - -#: literals.py:39 -msgid "Landscape" -msgstr "Пейзаж" - -#: models.py:17 -msgid "Anonymous user" -msgstr "Анонимный пользователь" - -#: models.py:20 models.py:21 -msgid "anonymous user" -msgstr "анонимный пользователь" - -#: models.py:25 -msgid "account" -msgstr "учетная запись" - -#: models.py:26 -msgid "password" -msgstr "пароль" - -#: models.py:27 -msgid "password hash" -msgstr "хэш пароля" - -#: models.py:30 -msgid "auto admin properties" -msgstr "свойства авто администратора" - -#: utils.py:299 -msgid "function found" -msgstr "функция найдена" - -#: views.py:39 -msgid "No action selected." -msgstr "Никаких действий не выбрано." - -#: views.py:43 -msgid "Must select at least one item." -msgstr "Необходимо выбрать хотя бы один элемент." - -#: views.py:91 -#, python-format -msgid "%(selection)s added successfully added to %(right_list_title)s." -msgstr "%(selection)s успешно добавлен в %(right_list_title)s ." - -#: views.py:97 views.py:124 -#, python-format -msgid "Unable to add %(selection)s to %(right_list_title)s." -msgstr "Не удалось добавить %(selection)s до %(right_list_title)s ." - -#: views.py:118 -#, python-format -msgid "%(selection)s added successfully removed from %(right_list_title)s." -msgstr "%(selection)s успешно удален из %(right_list_title)s ." - -#: views.py:139 -msgid "Add" -msgstr "Добавить" - -#: views.py:150 -msgid "Remove" -msgstr "Удалить" - -#: views.py:173 -msgid "current user details" -msgstr "данные пользователя" - -#: views.py:190 -msgid "E-mail conflict, another user has that same email." -msgstr "Другой пользователь укеазал тот же е-мейл." - -#: views.py:193 -msgid "Current user's details updated." -msgstr "Данные пользователя обновлены." - -#: views.py:202 -msgid "edit current user details" -msgstr "редактировать данные пользователя" - -#: views.py:233 +#: links.py:15 views.py:279 msgid "License" msgstr "Лицензия" -#: views.py:242 -msgid "Current user password change" -msgstr "Изменить пароль пользователя" - -#: views.py:257 templates/password_change_done.html:8 -msgid "Your password has been successfully changed." -msgstr "Ваш пароль был изменен." - -#: views.py:303 -#, python-format -msgid "Error saving %s details." +#: links.py:17 +msgid "Locale profile" msgstr "" -#: views.py:305 -msgid "Error saving details." +#: links.py:18 +msgid "Edit locale profile" msgstr "" -#: views.py:313 -#, python-format -msgid "%s details saved successfully." +#: links.py:20 +msgid "Logout" msgstr "" -#: views.py:315 -msgid "Details saved successfully." +#: models.py:28 models.py:31 +msgid "Anonymous user" +msgstr "Анонимный пользователь" + +#: models.py:35 +msgid "Account" msgstr "" -#: views.py:327 -#, python-format -msgid "Error creating new %s." +#: models.py:37 +msgid "Password hash" msgstr "" -#: views.py:329 -msgid "Error creating object." +#: models.py:40 +msgid "Auto admin properties" msgstr "" -#: views.py:336 -#, python-format -msgid "%s created successfully." +#: models.py:44 +msgid "File" msgstr "" -#: views.py:338 -msgid "New object created successfully." +#: models.py:45 +msgid "Filename" msgstr "" -#: views.py:356 -#, python-format -msgid "Error deleting %s." +#: models.py:46 +msgid "Date time" msgstr "" -#: views.py:358 -msgid "Error deleting object." +#: models.py:49 +msgid "Shared uploaded file" msgstr "" -#: views.py:363 -#, python-format -msgid "%s deleted successfully." +#: models.py:50 +msgid "Shared uploaded files" msgstr "" -#: views.py:365 -msgid "Object deleted successfully." +#: models.py:61 +msgid "User" msgstr "" -#: widgets.py:58 -msgid "None" -msgstr "Ни один" +#: models.py:63 +msgid "Timezone" +msgstr "" -#: conf/settings.py:16 +#: models.py:64 +msgid "Language" +msgstr "" + +#: models.py:70 +msgid "User locale profile" +msgstr "" + +#: models.py:71 +msgid "User locale profiles" +msgstr "" + +#: settings.py:14 msgid "" "Temporary directory used site wide to store thumbnails, previews and " "temporary files. If none is specified, one will be created using tempfile." @@ -261,7 +145,7 @@ msgstr "" "временных файлов. Если он не указан, он будет создан с использованием " "tempfile.mkdtemp ()" -#: conf/settings.py:66 +#: settings.py:48 msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" @@ -269,159 +153,277 @@ msgstr "" "Управление механизмом, используемым для аутентификации пользователя. " "Возможные варианты: имя пользователя, адрес электронной почты" -#: conf/settings.py:75 +#: settings.py:57 msgid "Allow non authenticated users, access to all views" msgstr "" "Разрешить, не прошедшим проверку, пользователям доступ ко всем представлениям" -#: templates/403.html:5 templates/403.html.py:9 -msgid "Insufficient permissions" -msgstr "Недостаточно прав" - -#: templates/403.html:11 -msgid "You don't have enough permissions for this operation." -msgstr "У вас недостаточно прав для этой операции." - -#: templates/404.html:5 templates/404.html.py:9 -msgid "Page not found" -msgstr "Страница не найдена" - -#: templates/404.html:11 -msgid "Sorry, but the requested page could not be found." -msgstr "Извините, но запрашиваемая страница не найдена." - -#: templates/calculate_form_title.html:8 -#, python-format -msgid "Details for %(object_name)s: %(object)s" -msgstr "Подробная информация для %(object_name)s : %(object)s" - -#: templates/calculate_form_title.html:10 -#, python-format -msgid "Details for: %(object)s" -msgstr "Подробности: %(object)s" - -#: templates/calculate_form_title.html:15 -#, fuzzy, python-format -msgid "Edit %(object_name)s: %(object)s" -msgstr "Подробная информация для %(object_name)s : %(object)s" - -#: templates/calculate_form_title.html:17 -#, fuzzy, python-format -msgid "Edit: %(object)s" -msgstr "Редактировать %(object_name)s :" - -#: templates/calculate_form_title.html:21 -#, python-format -msgid "Create new %(object_name)s" -msgstr "Создать %(object_name)s" - -#: templates/calculate_form_title.html:23 -msgid "Create" -msgstr "Создать" - -#: templates/generic_assign_remove.html:5 -#, python-format -msgid "Assign %(title)s %(object)s" -msgstr "Назначить %(title)s%(object)s" - -#: templates/generic_confirm.html:5 templates/generic_confirm.html.py:19 -msgid "Confirm" -msgstr "Подтверждать" - -#: templates/generic_confirm.html:17 -msgid "Confirm delete" -msgstr "Подтвердить удаление" - -#: templates/generic_confirm.html:33 -msgid "form icon" -msgstr "значок формы" - -#: templates/generic_confirm.html:41 -#, python-format -msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" -msgstr "Вы действительно хотите удалить %(object_name)s: %(object)s?" - -#: templates/generic_confirm.html:43 -#, python-format -msgid "Are you sure you wish to delete: %(object)s?" -msgstr "Вы действительно хотите удалить: %(object)s?" - -#: templates/generic_confirm.html:51 -msgid "Yes" -msgstr "Да" - -#: templates/generic_confirm.html:55 -msgid "No" -msgstr "Нет" - -#: templates/generic_form_instance.html:40 -#: templates/generic_form_subtemplate.html:59 -msgid "required" -msgstr "требуется" - -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Save" -msgstr "Сохранить" - -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Submit" -msgstr "Выполнить" - -#: templates/generic_form_subtemplate.html:90 -msgid "Cancel" -msgstr "Отменить" - -#: templates/generic_list.html:8 templates/generic_list_horizontal.html:8 -#, fuzzy, python-format -msgid "List of %(title)s" -msgstr "Список \"%(stripped_title)s\"" - -#: templates/generic_list_horizontal_subtemplate.html:24 -#: templates/generic_list_subtemplate.html:25 -#, python-format -msgid "" -"List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " -"%(page_number)s of %(total_pages)s)" +#: settings.py:66 +msgid "A storage backend that all workers can use to share files." msgstr "" -"Список %(title)s (%(start)s - %(end)s из %(total)s) (Page %(page_number)s из " -"%(total_pages)s)" -#: templates/generic_list_horizontal_subtemplate.html:26 -#: templates/generic_list_subtemplate.html:27 +#: utils.py:114 +msgid "Function found" +msgstr "" + +#: views.py:44 +msgid "No action selected." +msgstr "Никаких действий не выбрано." + +#: views.py:48 +msgid "Must select at least one item." +msgstr "Необходимо выбрать хотя бы один элемент." + +#: views.py:100 #, python-format -msgid "List of %(title)s (%(total)s)" -msgstr "Список %(title)s (%(total)s)" +msgid "Unable to remove %(selection)s." +msgstr "" -#: templates/generic_list_subtemplate.html:73 -msgid "Identifier" -msgstr "Идентификатор" +#: views.py:125 +#, python-format +msgid "Unable to add %(selection)s." +msgstr "" -#: templates/generic_list_subtemplate.html:147 -#, fuzzy, python-format -msgid "There are no %(title)s" -msgstr "Нет %(stripped_title)s" +#: views.py:138 +msgid "Add" +msgstr "Добавить" -#: templates/login.html:7 -msgid "Login" -msgstr "Войти" +#: views.py:149 +msgid "Remove" +msgstr "Удалить" -#: templates/password_change_done.html:5 templates/password_change_form.html:5 -#: templates/password_change_form.html:7 -msgid "Password change" -msgstr "Изменение пароля" +#: views.py:172 +msgid "Current user details" +msgstr "" + +#: views.py:187 +msgid "Current user locale profile details" +msgstr "" + +#: views.py:204 +msgid "E-mail conflict, another user has that same email." +msgstr "Другой пользователь укеазал тот же е-мейл." + +#: views.py:207 +msgid "Current user's details updated." +msgstr "Данные пользователя обновлены." + +#: views.py:216 +msgid "Edit current user details" +msgstr "" + +#: views.py:239 +msgid "Current user's locale profile details updated." +msgstr "" + +#: views.py:248 +msgid "Edit current user locale profile details" +msgstr "" + +#: views.py:288 +msgid "Current user password change" +msgstr "Изменить пароль пользователя" + +#: views.py:303 +msgid "Your password has been successfully changed." +msgstr "Ваш пароль был изменен." + +#: views.py:314 +#, python-format +msgid "Error saving %s details." +msgstr "" + +#: views.py:316 +msgid "Error saving details." +msgstr "" + +#: views.py:324 +#, python-format +msgid "%s details saved successfully." +msgstr "" + +#: views.py:326 +msgid "Details saved successfully." +msgstr "" + +#: views.py:338 +#, python-format +msgid "Error creating new %s." +msgstr "" + +#: views.py:340 +msgid "Error creating object." +msgstr "" + +#: views.py:347 +#, python-format +msgid "%s created successfully." +msgstr "" + +#: views.py:349 +msgid "New object created successfully." +msgstr "" + +#: views.py:367 +#, python-format +msgid "Error deleting %s." +msgstr "" + +#: views.py:369 +msgid "Error deleting object." +msgstr "" + +#: views.py:374 +#, python-format +msgid "%s deleted successfully." +msgstr "" + +#: views.py:376 +msgid "Object deleted successfully." +msgstr "" + +#: widgets.py:60 +msgid "None" +msgstr "Ни один" + +#~ msgid "%(selection)s added successfully added to %(right_list_title)s." +#~ msgstr "%(selection)s added successfully added to %(right_list_title)s." + +#~ msgid "%(selection)s added successfully removed from %(right_list_title)s." +#~ msgstr "%(selection)s added successfully removed from %(right_list_title)s." + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "Letter" +#~ msgstr "Letter" + +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Ledger" +#~ msgstr "Ledger" + +#~ msgid "Portrait" +#~ msgstr "Portrait" + +#~ msgid "Landscape" +#~ msgstr "Landscape" + +#~ msgid "license" +#~ msgstr "license" + +#~ msgid "anonymous user" +#~ msgstr "anonymous user" + +#~ msgid "password" +#~ msgstr "password" + +#~ msgid "Insufficient permissions" +#~ msgstr "Insufficient permissions" + +#~ msgid "You don't have enough permissions for this operation." +#~ msgstr "You don't have enough permissions for this operation." + +#~ msgid "Page not found" +#~ msgstr "Page not found" + +#~ msgid "Sorry, but the requested page could not be found." +#~ msgstr "Sorry, but the requested page could not be found." + +#~ msgid "Details for %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Details for: %(object)s" +#~ msgstr "Details for: %(object)s" + +#~ msgid "Edit %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Edit: %(object)s" +#~ msgstr "Edit %(object_name)s:" + +#~ msgid "Create new %(object_name)s" +#~ msgstr "Create new %(object_name)s" + +#~ msgid "Create" +#~ msgstr "Create" + +#~ msgid "Assign %(title)s %(object)s" +#~ msgstr "Assign %(title)s %(object)s" + +#~ msgid "Confirm" +#~ msgstr "Confirm" + +#~ msgid "Confirm delete" +#~ msgstr "Confirm delete" + +#~ msgid "form icon" +#~ msgstr "form icon" + +#~ msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +#~ msgstr "Are you sure you wish to delete %(object_name)s: %(object)s?" + +#~ msgid "Are you sure you wish to delete: %(object)s?" +#~ msgstr "Are you sure you wish to delete: %(object)s?" + +#~ msgid "Yes" +#~ msgstr "Yes" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "required" +#~ msgstr "required" + +#~ msgid "Save" +#~ msgstr "Save" + +#~ msgid "Submit" +#~ msgstr "Submit" + +#~ msgid "Cancel" +#~ msgstr "Cancel" + +#~ msgid "List of %(title)s" +#~ msgstr "List of %(stripped_title)s" + +#~ msgid "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" +#~ msgstr "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" + +#~ msgid "List of %(title)s (%(total)s)" +#~ msgstr "List of %(title)s (%(total)s)" + +#~ msgid "Identifier" +#~ msgstr "Identifier" + +#~ msgid "There are no %(title)s" +#~ msgstr "There are no %(stripped_title)s" + +#~ msgid "Login" +#~ msgstr "Login" + +#~ msgid "Password change" +#~ msgstr "Password change" #~ msgid "lock field" -#~ msgstr "блокировка поля" +#~ msgstr "lock field" #~ msgid "Edit" -#~ msgstr "Редактировать" +#~ msgstr "Edit" diff --git a/mayan/apps/common/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/common/locale/sl_SI/LC_MESSAGES/django.mo index 21faaf0ab0..b2193960dd 100644 Binary files a/mayan/apps/common/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/common/locale/sl_SI/LC_MESSAGES/django.po index 4d732baba6..c3b5b29bef 100644 --- a/mayan/apps/common/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/sl_SI/LC_MESSAGES/django.po @@ -3,12 +3,13 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2012-12-12 06:05+0000\n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-17 07:03+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Slovenian (Slovenia) (http://www.transifex.com/projects/p/" "mayan-edms/language/sl_SI/)\n" @@ -19,390 +20,403 @@ msgstr "" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" "%100==4 ? 2 : 3);\n" -#: forms.py:97 +#: classes.py:40 +msgid "Available attributes: " +msgstr "" + +#: forms.py:98 msgid "Selection" msgstr "" -#: forms.py:128 +#: forms.py:143 msgid "Email" msgstr "" -#: forms.py:131 +#: forms.py:146 models.py:36 msgid "Password" msgstr "" -#: forms.py:134 +#: forms.py:149 msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." msgstr "" -#: forms.py:136 +#: forms.py:151 msgid "This account is inactive." msgstr "" #: links.py:10 -msgid "change password" +msgid "Change password" msgstr "" #: links.py:11 -msgid "user details" +msgid "User details" msgstr "" #: links.py:12 -msgid "edit details" +msgid "Edit details" msgstr "" #: links.py:14 -msgid "about" +msgid "About" msgstr "" -#: links.py:15 -msgid "license" -msgstr "" - -#: literals.py:24 -msgid "A5" -msgstr "" - -#: literals.py:25 -msgid "A4" -msgstr "" - -#: literals.py:26 -msgid "A3" -msgstr "" - -#: literals.py:27 -msgid "B5" -msgstr "" - -#: literals.py:28 -msgid "B4" -msgstr "" - -#: literals.py:29 -msgid "Letter" -msgstr "" - -#: literals.py:30 -msgid "Legal" -msgstr "" - -#: literals.py:31 -msgid "Ledger" -msgstr "" - -#: literals.py:38 -msgid "Portrait" -msgstr "" - -#: literals.py:39 -msgid "Landscape" -msgstr "" - -#: models.py:17 -msgid "Anonymous user" -msgstr "" - -#: models.py:20 models.py:21 -msgid "anonymous user" -msgstr "" - -#: models.py:25 -msgid "account" -msgstr "" - -#: models.py:26 -msgid "password" -msgstr "" - -#: models.py:27 -msgid "password hash" -msgstr "" - -#: models.py:30 -msgid "auto admin properties" -msgstr "" - -#: utils.py:299 -msgid "function found" -msgstr "" - -#: views.py:39 -msgid "No action selected." -msgstr "" - -#: views.py:43 -msgid "Must select at least one item." -msgstr "" - -#: views.py:91 -#, python-format -msgid "%(selection)s added successfully added to %(right_list_title)s." -msgstr "" - -#: views.py:97 views.py:124 -#, python-format -msgid "Unable to add %(selection)s to %(right_list_title)s." -msgstr "" - -#: views.py:118 -#, python-format -msgid "%(selection)s added successfully removed from %(right_list_title)s." -msgstr "" - -#: views.py:139 -msgid "Add" -msgstr "" - -#: views.py:150 -msgid "Remove" -msgstr "" - -#: views.py:173 -msgid "current user details" -msgstr "" - -#: views.py:190 -msgid "E-mail conflict, another user has that same email." -msgstr "" - -#: views.py:193 -msgid "Current user's details updated." -msgstr "" - -#: views.py:202 -msgid "edit current user details" -msgstr "" - -#: views.py:233 +#: links.py:15 views.py:279 msgid "License" msgstr "" -#: views.py:242 -msgid "Current user password change" +#: links.py:17 +msgid "Locale profile" msgstr "" -#: views.py:257 templates/password_change_done.html:8 -msgid "Your password has been successfully changed." +#: links.py:18 +msgid "Edit locale profile" msgstr "" -#: views.py:303 -#, python-format -msgid "Error saving %s details." +#: links.py:20 +msgid "Logout" msgstr "" -#: views.py:305 -msgid "Error saving details." +#: models.py:28 models.py:31 +msgid "Anonymous user" msgstr "" -#: views.py:313 -#, python-format -msgid "%s details saved successfully." +#: models.py:35 +msgid "Account" msgstr "" -#: views.py:315 -msgid "Details saved successfully." +#: models.py:37 +msgid "Password hash" msgstr "" -#: views.py:327 -#, python-format -msgid "Error creating new %s." +#: models.py:40 +msgid "Auto admin properties" msgstr "" -#: views.py:329 -msgid "Error creating object." +#: models.py:44 +msgid "File" msgstr "" -#: views.py:336 -#, python-format -msgid "%s created successfully." +#: models.py:45 +msgid "Filename" msgstr "" -#: views.py:338 -msgid "New object created successfully." +#: models.py:46 +msgid "Date time" msgstr "" -#: views.py:356 -#, python-format -msgid "Error deleting %s." +#: models.py:49 +msgid "Shared uploaded file" msgstr "" -#: views.py:358 -msgid "Error deleting object." +#: models.py:50 +msgid "Shared uploaded files" msgstr "" -#: views.py:363 -#, python-format -msgid "%s deleted successfully." +#: models.py:61 +msgid "User" msgstr "" -#: views.py:365 -msgid "Object deleted successfully." +#: models.py:63 +msgid "Timezone" msgstr "" -#: widgets.py:58 -msgid "None" +#: models.py:64 +msgid "Language" msgstr "" -#: conf/settings.py:16 +#: models.py:70 +msgid "User locale profile" +msgstr "" + +#: models.py:71 +msgid "User locale profiles" +msgstr "" + +#: settings.py:14 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 "" -#: conf/settings.py:66 +#: settings.py:48 msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" msgstr "" -#: conf/settings.py:75 +#: settings.py:57 msgid "Allow non authenticated users, access to all views" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 -msgid "Insufficient permissions" +#: settings.py:66 +msgid "A storage backend that all workers can use to share files." msgstr "" -#: templates/403.html:11 -msgid "You don't have enough permissions for this operation." +#: utils.py:114 +msgid "Function found" msgstr "" -#: templates/404.html:5 templates/404.html.py:9 -msgid "Page not found" +#: views.py:44 +msgid "No action selected." msgstr "" -#: templates/404.html:11 -msgid "Sorry, but the requested page could not be found." +#: views.py:48 +msgid "Must select at least one item." msgstr "" -#: templates/calculate_form_title.html:8 +#: views.py:100 #, python-format -msgid "Details for %(object_name)s: %(object)s" +msgid "Unable to remove %(selection)s." msgstr "" -#: templates/calculate_form_title.html:10 +#: views.py:125 #, python-format -msgid "Details for: %(object)s" +msgid "Unable to add %(selection)s." msgstr "" -#: templates/calculate_form_title.html:15 +#: views.py:138 +msgid "Add" +msgstr "" + +#: views.py:149 +msgid "Remove" +msgstr "" + +#: views.py:172 +msgid "Current user details" +msgstr "" + +#: views.py:187 +msgid "Current user locale profile details" +msgstr "" + +#: views.py:204 +msgid "E-mail conflict, another user has that same email." +msgstr "" + +#: views.py:207 +msgid "Current user's details updated." +msgstr "" + +#: views.py:216 +msgid "Edit current user details" +msgstr "" + +#: views.py:239 +msgid "Current user's locale profile details updated." +msgstr "" + +#: views.py:248 +msgid "Edit current user locale profile details" +msgstr "" + +#: views.py:288 +msgid "Current user password change" +msgstr "" + +#: views.py:303 +msgid "Your password has been successfully changed." +msgstr "" + +#: views.py:314 #, python-format -msgid "Edit %(object_name)s: %(object)s" +msgid "Error saving %s details." msgstr "" -#: templates/calculate_form_title.html:17 +#: views.py:316 +msgid "Error saving details." +msgstr "" + +#: views.py:324 #, python-format -msgid "Edit: %(object)s" +msgid "%s details saved successfully." msgstr "" -#: templates/calculate_form_title.html:21 +#: views.py:326 +msgid "Details saved successfully." +msgstr "" + +#: views.py:338 #, python-format -msgid "Create new %(object_name)s" +msgid "Error creating new %s." msgstr "" -#: templates/calculate_form_title.html:23 -msgid "Create" +#: views.py:340 +msgid "Error creating object." msgstr "" -#: templates/generic_assign_remove.html:5 +#: views.py:347 #, python-format -msgid "Assign %(title)s %(object)s" +msgid "%s created successfully." msgstr "" -#: templates/generic_confirm.html:5 templates/generic_confirm.html.py:19 -msgid "Confirm" +#: views.py:349 +msgid "New object created successfully." msgstr "" -#: templates/generic_confirm.html:17 -msgid "Confirm delete" -msgstr "" - -#: templates/generic_confirm.html:33 -msgid "form icon" -msgstr "" - -#: templates/generic_confirm.html:41 +#: views.py:367 #, python-format -msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +msgid "Error deleting %s." msgstr "" -#: templates/generic_confirm.html:43 +#: views.py:369 +msgid "Error deleting object." +msgstr "" + +#: views.py:374 #, python-format -msgid "Are you sure you wish to delete: %(object)s?" +msgid "%s deleted successfully." msgstr "" -#: templates/generic_confirm.html:51 -msgid "Yes" +#: views.py:376 +msgid "Object deleted successfully." msgstr "" -#: templates/generic_confirm.html:55 -msgid "No" +#: widgets.py:60 +msgid "None" msgstr "" -#: templates/generic_form_instance.html:40 -#: templates/generic_form_subtemplate.html:59 -msgid "required" -msgstr "" +#~ msgid "%(selection)s added successfully added to %(right_list_title)s." +#~ msgstr "%(selection)s added successfully added to %(right_list_title)s." -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Save" -msgstr "" +#~ msgid "%(selection)s added successfully removed from %(right_list_title)s." +#~ msgstr "%(selection)s added successfully removed from %(right_list_title)s." -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Submit" -msgstr "" +#~ msgid "A5" +#~ msgstr "A5" -#: templates/generic_form_subtemplate.html:90 -msgid "Cancel" -msgstr "" +#~ msgid "A4" +#~ msgstr "A4" -#: templates/generic_list.html:8 templates/generic_list_horizontal.html:8 -#, python-format -msgid "List of %(title)s" -msgstr "" +#~ msgid "A3" +#~ msgstr "A3" -#: templates/generic_list_horizontal_subtemplate.html:24 -#: templates/generic_list_subtemplate.html:25 -#, python-format -msgid "" -"List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " -"%(page_number)s of %(total_pages)s)" -msgstr "" +#~ msgid "B5" +#~ msgstr "B5" -#: templates/generic_list_horizontal_subtemplate.html:26 -#: templates/generic_list_subtemplate.html:27 -#, python-format -msgid "List of %(title)s (%(total)s)" -msgstr "" +#~ msgid "B4" +#~ msgstr "B4" -#: templates/generic_list_subtemplate.html:73 -msgid "Identifier" -msgstr "" +#~ msgid "Letter" +#~ msgstr "Letter" -#: templates/generic_list_subtemplate.html:147 -#, python-format -msgid "There are no %(title)s" -msgstr "" +#~ msgid "Legal" +#~ msgstr "Legal" -#: templates/login.html:7 -msgid "Login" -msgstr "" +#~ msgid "Ledger" +#~ msgstr "Ledger" -#: templates/password_change_done.html:5 templates/password_change_form.html:5 -#: templates/password_change_form.html:7 -msgid "Password change" -msgstr "" +#~ msgid "Portrait" +#~ msgstr "Portrait" + +#~ msgid "Landscape" +#~ msgstr "Landscape" + +#~ msgid "license" +#~ msgstr "license" + +#~ msgid "anonymous user" +#~ msgstr "anonymous user" + +#~ msgid "password" +#~ msgstr "password" + +#~ msgid "Insufficient permissions" +#~ msgstr "Insufficient permissions" + +#~ msgid "You don't have enough permissions for this operation." +#~ msgstr "You don't have enough permissions for this operation." + +#~ msgid "Page not found" +#~ msgstr "Page not found" + +#~ msgid "Sorry, but the requested page could not be found." +#~ msgstr "Sorry, but the requested page could not be found." + +#~ msgid "Details for %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Details for: %(object)s" +#~ msgstr "Details for: %(object)s" + +#~ msgid "Edit %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Edit: %(object)s" +#~ msgstr "Edit %(object_name)s:" + +#~ msgid "Create new %(object_name)s" +#~ msgstr "Create new %(object_name)s" + +#~ msgid "Create" +#~ msgstr "Create" + +#~ msgid "Assign %(title)s %(object)s" +#~ msgstr "Assign %(title)s %(object)s" + +#~ msgid "Confirm" +#~ msgstr "Confirm" + +#~ msgid "Confirm delete" +#~ msgstr "Confirm delete" + +#~ msgid "form icon" +#~ msgstr "form icon" + +#~ msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +#~ msgstr "Are you sure you wish to delete %(object_name)s: %(object)s?" + +#~ msgid "Are you sure you wish to delete: %(object)s?" +#~ msgstr "Are you sure you wish to delete: %(object)s?" + +#~ msgid "Yes" +#~ msgstr "Yes" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "required" +#~ msgstr "required" + +#~ msgid "Save" +#~ msgstr "Save" + +#~ msgid "Submit" +#~ msgstr "Submit" + +#~ msgid "Cancel" +#~ msgstr "Cancel" + +#~ msgid "List of %(title)s" +#~ msgstr "List of %(stripped_title)s" + +#~ msgid "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" +#~ msgstr "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" + +#~ msgid "List of %(title)s (%(total)s)" +#~ msgstr "List of %(title)s (%(total)s)" + +#~ msgid "Identifier" +#~ msgstr "Identifier" + +#~ msgid "There are no %(title)s" +#~ msgstr "There are no %(stripped_title)s" + +#~ msgid "Login" +#~ msgstr "Login" + +#~ msgid "Password change" +#~ msgstr "Password change" + +#~ msgid "lock field" +#~ msgstr "lock field" + +#~ msgid "Edit" +#~ msgstr "Edit" diff --git a/mayan/apps/common/locale/sq/LC_MESSAGES/django.mo b/mayan/apps/common/locale/sq/LC_MESSAGES/django.mo new file mode 100644 index 0000000000..b19f318ae5 Binary files /dev/null and b/mayan/apps/common/locale/sq/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/sq/LC_MESSAGES/django.po b/mayan/apps/common/locale/sq/LC_MESSAGES/django.po new file mode 100644 index 0000000000..f0cf91b420 --- /dev/null +++ b/mayan/apps/common/locale/sq/LC_MESSAGES/django.po @@ -0,0 +1,421 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-17 07:03+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Albanian (http://www.transifex.com/projects/p/mayan-edms/" +"language/sq/)\n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: classes.py:40 +msgid "Available attributes: " +msgstr "" + +#: forms.py:98 +msgid "Selection" +msgstr "" + +#: forms.py:143 +msgid "Email" +msgstr "" + +#: forms.py:146 models.py:36 +msgid "Password" +msgstr "" + +#: forms.py:149 +msgid "" +"Please enter a correct email and password. Note that the password field is " +"case-sensitive." +msgstr "" + +#: forms.py:151 +msgid "This account is inactive." +msgstr "" + +#: links.py:10 +msgid "Change password" +msgstr "" + +#: links.py:11 +msgid "User details" +msgstr "" + +#: links.py:12 +msgid "Edit details" +msgstr "" + +#: links.py:14 +msgid "About" +msgstr "" + +#: links.py:15 views.py:279 +msgid "License" +msgstr "" + +#: links.py:17 +msgid "Locale profile" +msgstr "" + +#: links.py:18 +msgid "Edit locale profile" +msgstr "" + +#: links.py:20 +msgid "Logout" +msgstr "" + +#: models.py:28 models.py:31 +msgid "Anonymous user" +msgstr "" + +#: models.py:35 +msgid "Account" +msgstr "" + +#: models.py:37 +msgid "Password hash" +msgstr "" + +#: models.py:40 +msgid "Auto admin properties" +msgstr "" + +#: models.py:44 +msgid "File" +msgstr "" + +#: models.py:45 +msgid "Filename" +msgstr "" + +#: models.py:46 +msgid "Date time" +msgstr "" + +#: models.py:49 +msgid "Shared uploaded file" +msgstr "" + +#: models.py:50 +msgid "Shared uploaded files" +msgstr "" + +#: models.py:61 +msgid "User" +msgstr "" + +#: models.py:63 +msgid "Timezone" +msgstr "" + +#: models.py:64 +msgid "Language" +msgstr "" + +#: models.py:70 +msgid "User locale profile" +msgstr "" + +#: models.py:71 +msgid "User locale profiles" +msgstr "" + +#: settings.py:14 +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 "" + +#: settings.py:48 +msgid "" +"Controls the mechanism used to authenticated user. Options are: username, " +"email" +msgstr "" + +#: settings.py:57 +msgid "Allow non authenticated users, access to all views" +msgstr "" + +#: settings.py:66 +msgid "A storage backend that all workers can use to share files." +msgstr "" + +#: utils.py:114 +msgid "Function found" +msgstr "" + +#: views.py:44 +msgid "No action selected." +msgstr "" + +#: views.py:48 +msgid "Must select at least one item." +msgstr "" + +#: views.py:100 +#, python-format +msgid "Unable to remove %(selection)s." +msgstr "" + +#: views.py:125 +#, python-format +msgid "Unable to add %(selection)s." +msgstr "" + +#: views.py:138 +msgid "Add" +msgstr "" + +#: views.py:149 +msgid "Remove" +msgstr "" + +#: views.py:172 +msgid "Current user details" +msgstr "" + +#: views.py:187 +msgid "Current user locale profile details" +msgstr "" + +#: views.py:204 +msgid "E-mail conflict, another user has that same email." +msgstr "" + +#: views.py:207 +msgid "Current user's details updated." +msgstr "" + +#: views.py:216 +msgid "Edit current user details" +msgstr "" + +#: views.py:239 +msgid "Current user's locale profile details updated." +msgstr "" + +#: views.py:248 +msgid "Edit current user locale profile details" +msgstr "" + +#: views.py:288 +msgid "Current user password change" +msgstr "" + +#: views.py:303 +msgid "Your password has been successfully changed." +msgstr "" + +#: views.py:314 +#, python-format +msgid "Error saving %s details." +msgstr "" + +#: views.py:316 +msgid "Error saving details." +msgstr "" + +#: views.py:324 +#, python-format +msgid "%s details saved successfully." +msgstr "" + +#: views.py:326 +msgid "Details saved successfully." +msgstr "" + +#: views.py:338 +#, python-format +msgid "Error creating new %s." +msgstr "" + +#: views.py:340 +msgid "Error creating object." +msgstr "" + +#: views.py:347 +#, python-format +msgid "%s created successfully." +msgstr "" + +#: views.py:349 +msgid "New object created successfully." +msgstr "" + +#: views.py:367 +#, python-format +msgid "Error deleting %s." +msgstr "" + +#: views.py:369 +msgid "Error deleting object." +msgstr "" + +#: views.py:374 +#, python-format +msgid "%s deleted successfully." +msgstr "" + +#: views.py:376 +msgid "Object deleted successfully." +msgstr "" + +#: widgets.py:60 +msgid "None" +msgstr "" + +#~ msgid "%(selection)s added successfully added to %(right_list_title)s." +#~ msgstr "%(selection)s added successfully added to %(right_list_title)s." + +#~ msgid "%(selection)s added successfully removed from %(right_list_title)s." +#~ msgstr "%(selection)s added successfully removed from %(right_list_title)s." + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "Letter" +#~ msgstr "Letter" + +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Ledger" +#~ msgstr "Ledger" + +#~ msgid "Portrait" +#~ msgstr "Portrait" + +#~ msgid "Landscape" +#~ msgstr "Landscape" + +#~ msgid "license" +#~ msgstr "license" + +#~ msgid "anonymous user" +#~ msgstr "anonymous user" + +#~ msgid "password" +#~ msgstr "password" + +#~ msgid "Insufficient permissions" +#~ msgstr "Insufficient permissions" + +#~ msgid "You don't have enough permissions for this operation." +#~ msgstr "You don't have enough permissions for this operation." + +#~ msgid "Page not found" +#~ msgstr "Page not found" + +#~ msgid "Sorry, but the requested page could not be found." +#~ msgstr "Sorry, but the requested page could not be found." + +#~ msgid "Details for %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Details for: %(object)s" +#~ msgstr "Details for: %(object)s" + +#~ msgid "Edit %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Edit: %(object)s" +#~ msgstr "Edit %(object_name)s:" + +#~ msgid "Create new %(object_name)s" +#~ msgstr "Create new %(object_name)s" + +#~ msgid "Create" +#~ msgstr "Create" + +#~ msgid "Assign %(title)s %(object)s" +#~ msgstr "Assign %(title)s %(object)s" + +#~ msgid "Confirm" +#~ msgstr "Confirm" + +#~ msgid "Confirm delete" +#~ msgstr "Confirm delete" + +#~ msgid "form icon" +#~ msgstr "form icon" + +#~ msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +#~ msgstr "Are you sure you wish to delete %(object_name)s: %(object)s?" + +#~ msgid "Are you sure you wish to delete: %(object)s?" +#~ msgstr "Are you sure you wish to delete: %(object)s?" + +#~ msgid "Yes" +#~ msgstr "Yes" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "required" +#~ msgstr "required" + +#~ msgid "Save" +#~ msgstr "Save" + +#~ msgid "Submit" +#~ msgstr "Submit" + +#~ msgid "Cancel" +#~ msgstr "Cancel" + +#~ msgid "List of %(title)s" +#~ msgstr "List of %(stripped_title)s" + +#~ msgid "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" +#~ msgstr "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" + +#~ msgid "List of %(title)s (%(total)s)" +#~ msgstr "List of %(title)s (%(total)s)" + +#~ msgid "Identifier" +#~ msgstr "Identifier" + +#~ msgid "There are no %(title)s" +#~ msgstr "There are no %(stripped_title)s" + +#~ msgid "Login" +#~ msgstr "Login" + +#~ msgid "Password change" +#~ msgstr "Password change" + +#~ msgid "lock field" +#~ msgstr "lock field" + +#~ msgid "Edit" +#~ msgstr "Edit" diff --git a/mayan/apps/common/locale/tr_TR/LC_MESSAGES/django.mo b/mayan/apps/common/locale/tr_TR/LC_MESSAGES/django.mo index fc93577eb2..68791d60ea 100644 Binary files a/mayan/apps/common/locale/tr_TR/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/tr_TR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/tr_TR/LC_MESSAGES/django.po b/mayan/apps/common/locale/tr_TR/LC_MESSAGES/django.po index ce2e08ae6c..4008d1dde7 100644 --- a/mayan/apps/common/locale/tr_TR/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/tr_TR/LC_MESSAGES/django.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: # Caner Başaran , 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2013-06-10 10:53+0000\n" -"Last-Translator: Caner Başaran \n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-17 07:03+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Turkish (Turkey) (http://www.transifex.com/projects/p/mayan-" "edms/language/tr_TR/)\n" "Language: tr_TR\n" @@ -19,396 +20,403 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: forms.py:97 +#: classes.py:40 +msgid "Available attributes: " +msgstr "" + +#: forms.py:98 msgid "Selection" msgstr "" -#: forms.py:128 +#: forms.py:143 msgid "Email" msgstr "E-posta" -#: forms.py:131 -#, fuzzy +#: forms.py:146 models.py:36 msgid "Password" -msgstr "parola" +msgstr "" -#: forms.py:134 -#, fuzzy +#: forms.py:149 msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." msgstr "" -"Doğru bir e-posta ve parola girin. Parola kısmı büyük-küçük harf duyarlıdır." -#: forms.py:136 +#: forms.py:151 msgid "This account is inactive." msgstr "Bu hesap etkin değildir." #: links.py:10 -msgid "change password" -msgstr "parola değiştir" +msgid "Change password" +msgstr "" #: links.py:11 -msgid "user details" +msgid "User details" msgstr "" #: links.py:12 -msgid "edit details" +msgid "Edit details" msgstr "" #: links.py:14 -msgid "about" -msgstr "hakkında" - -#: links.py:15 -msgid "license" +msgid "About" msgstr "" -#: 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 "" - -#: literals.py:30 -msgid "Legal" -msgstr "" - -#: literals.py:31 -msgid "Ledger" -msgstr "" - -#: literals.py:38 -msgid "Portrait" -msgstr "Dikey" - -#: literals.py:39 -msgid "Landscape" -msgstr "Yatay" - -#: models.py:17 -msgid "Anonymous user" -msgstr "Anonim kullanıcı" - -#: models.py:20 models.py:21 -msgid "anonymous user" -msgstr "anonim kullanıcı" - -#: models.py:25 -msgid "account" -msgstr "hesap" - -#: models.py:26 -msgid "password" -msgstr "parola" - -#: models.py:27 -msgid "password hash" -msgstr "" - -#: models.py:30 -msgid "auto admin properties" -msgstr "" - -#: utils.py:299 -msgid "function found" -msgstr "" - -#: views.py:39 -msgid "No action selected." -msgstr "" - -#: views.py:43 -msgid "Must select at least one item." -msgstr "" - -#: views.py:91 -#, python-format -msgid "%(selection)s added successfully added to %(right_list_title)s." -msgstr "" - -#: views.py:97 views.py:124 -#, python-format -msgid "Unable to add %(selection)s to %(right_list_title)s." -msgstr "" - -#: views.py:118 -#, python-format -msgid "%(selection)s added successfully removed from %(right_list_title)s." -msgstr "" - -#: views.py:139 -msgid "Add" -msgstr "Ekle" - -#: views.py:150 -msgid "Remove" -msgstr "Kaldır" - -#: views.py:173 -msgid "current user details" -msgstr "" - -#: views.py:190 -msgid "E-mail conflict, another user has that same email." -msgstr "" - -#: views.py:193 -msgid "Current user's details updated." -msgstr "" - -#: views.py:202 -msgid "edit current user details" -msgstr "" - -#: views.py:233 +#: links.py:15 views.py:279 msgid "License" msgstr "" -#: views.py:242 -msgid "Current user password change" +#: links.py:17 +msgid "Locale profile" msgstr "" -#: views.py:257 templates/password_change_done.html:8 -msgid "Your password has been successfully changed." -msgstr "Parolanız başarılı olarak değiştirildi." - -#: views.py:303 -#, python-format -msgid "Error saving %s details." +#: links.py:18 +msgid "Edit locale profile" msgstr "" -#: views.py:305 -msgid "Error saving details." +#: links.py:20 +msgid "Logout" msgstr "" -#: views.py:313 -#, python-format -msgid "%s details saved successfully." +#: models.py:28 models.py:31 +msgid "Anonymous user" +msgstr "Anonim kullanıcı" + +#: models.py:35 +msgid "Account" msgstr "" -#: views.py:315 -msgid "Details saved successfully." +#: models.py:37 +msgid "Password hash" msgstr "" -#: views.py:327 -#, python-format -msgid "Error creating new %s." +#: models.py:40 +msgid "Auto admin properties" msgstr "" -#: views.py:329 -msgid "Error creating object." +#: models.py:44 +msgid "File" msgstr "" -#: views.py:336 -#, python-format -msgid "%s created successfully." +#: models.py:45 +msgid "Filename" msgstr "" -#: views.py:338 -msgid "New object created successfully." +#: models.py:46 +msgid "Date time" msgstr "" -#: views.py:356 -#, python-format -msgid "Error deleting %s." +#: models.py:49 +msgid "Shared uploaded file" msgstr "" -#: views.py:358 -msgid "Error deleting object." +#: models.py:50 +msgid "Shared uploaded files" msgstr "" -#: views.py:363 -#, python-format -msgid "%s deleted successfully." +#: models.py:61 +msgid "User" msgstr "" -#: views.py:365 -msgid "Object deleted successfully." +#: models.py:63 +msgid "Timezone" msgstr "" -#: widgets.py:58 -msgid "None" +#: models.py:64 +msgid "Language" msgstr "" -#: conf/settings.py:16 +#: models.py:70 +msgid "User locale profile" +msgstr "" + +#: models.py:71 +msgid "User locale profiles" +msgstr "" + +#: settings.py:14 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 "" -#: conf/settings.py:66 +#: settings.py:48 msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" msgstr "" -#: conf/settings.py:75 +#: settings.py:57 msgid "Allow non authenticated users, access to all views" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 -msgid "Insufficient permissions" +#: settings.py:66 +msgid "A storage backend that all workers can use to share files." msgstr "" -#: templates/403.html:11 -msgid "You don't have enough permissions for this operation." +#: utils.py:114 +msgid "Function found" msgstr "" -#: templates/404.html:5 templates/404.html.py:9 -msgid "Page not found" +#: views.py:44 +msgid "No action selected." msgstr "" -#: templates/404.html:11 -msgid "Sorry, but the requested page could not be found." +#: views.py:48 +msgid "Must select at least one item." msgstr "" -#: templates/calculate_form_title.html:8 +#: views.py:100 #, python-format -msgid "Details for %(object_name)s: %(object)s" +msgid "Unable to remove %(selection)s." msgstr "" -#: templates/calculate_form_title.html:10 +#: views.py:125 #, python-format -msgid "Details for: %(object)s" +msgid "Unable to add %(selection)s." msgstr "" -#: templates/calculate_form_title.html:15 -#, fuzzy, python-format -msgid "Edit %(object_name)s: %(object)s" -msgstr "Düzenle %(object_name)s:" +#: views.py:138 +msgid "Add" +msgstr "Ekle" -#: templates/calculate_form_title.html:17 -#, fuzzy, python-format -msgid "Edit: %(object)s" -msgstr "Düzenle %(object_name)s:" +#: views.py:149 +msgid "Remove" +msgstr "Kaldır" -#: templates/calculate_form_title.html:21 +#: views.py:172 +msgid "Current user details" +msgstr "" + +#: views.py:187 +msgid "Current user locale profile details" +msgstr "" + +#: views.py:204 +msgid "E-mail conflict, another user has that same email." +msgstr "" + +#: views.py:207 +msgid "Current user's details updated." +msgstr "" + +#: views.py:216 +msgid "Edit current user details" +msgstr "" + +#: views.py:239 +msgid "Current user's locale profile details updated." +msgstr "" + +#: views.py:248 +msgid "Edit current user locale profile details" +msgstr "" + +#: views.py:288 +msgid "Current user password change" +msgstr "" + +#: views.py:303 +msgid "Your password has been successfully changed." +msgstr "Parolanız başarılı olarak değiştirildi." + +#: views.py:314 #, python-format -msgid "Create new %(object_name)s" +msgid "Error saving %s details." msgstr "" -#: templates/calculate_form_title.html:23 -msgid "Create" -msgstr "Oluştur" +#: views.py:316 +msgid "Error saving details." +msgstr "" -#: templates/generic_assign_remove.html:5 +#: views.py:324 #, python-format -msgid "Assign %(title)s %(object)s" +msgid "%s details saved successfully." msgstr "" -#: templates/generic_confirm.html:5 templates/generic_confirm.html.py:19 -msgid "Confirm" -msgstr "Onayla" - -#: templates/generic_confirm.html:17 -msgid "Confirm delete" +#: views.py:326 +msgid "Details saved successfully." msgstr "" -#: templates/generic_confirm.html:33 -msgid "form icon" -msgstr "" - -#: templates/generic_confirm.html:41 +#: views.py:338 #, python-format -msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +msgid "Error creating new %s." msgstr "" -#: templates/generic_confirm.html:43 +#: views.py:340 +msgid "Error creating object." +msgstr "" + +#: views.py:347 #, python-format -msgid "Are you sure you wish to delete: %(object)s?" +msgid "%s created successfully." msgstr "" -#: templates/generic_confirm.html:51 -msgid "Yes" -msgstr "Evet" - -#: templates/generic_confirm.html:55 -msgid "No" -msgstr "Hayır" - -#: templates/generic_form_instance.html:40 -#: templates/generic_form_subtemplate.html:59 -msgid "required" +#: views.py:349 +msgid "New object created successfully." msgstr "" -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Save" -msgstr "Kaydet" - -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Submit" -msgstr "Gönder" - -#: templates/generic_form_subtemplate.html:90 -msgid "Cancel" -msgstr "İptal" - -#: templates/generic_list.html:8 templates/generic_list_horizontal.html:8 -#, fuzzy, python-format -msgid "List of %(title)s" -msgstr "%(stripped_title)s listesi" - -#: templates/generic_list_horizontal_subtemplate.html:24 -#: templates/generic_list_subtemplate.html:25 +#: views.py:367 #, python-format -msgid "" -"List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " -"%(page_number)s of %(total_pages)s)" +msgid "Error deleting %s." msgstr "" -#: templates/generic_list_horizontal_subtemplate.html:26 -#: templates/generic_list_subtemplate.html:27 +#: views.py:369 +msgid "Error deleting object." +msgstr "" + +#: views.py:374 #, python-format -msgid "List of %(title)s (%(total)s)" +msgid "%s deleted successfully." msgstr "" -#: templates/generic_list_subtemplate.html:73 -msgid "Identifier" +#: views.py:376 +msgid "Object deleted successfully." msgstr "" -#: templates/generic_list_subtemplate.html:147 -#, python-format -msgid "There are no %(title)s" +#: widgets.py:60 +msgid "None" msgstr "" -#: templates/login.html:7 -msgid "Login" -msgstr "Giriş" +#~ msgid "%(selection)s added successfully added to %(right_list_title)s." +#~ msgstr "%(selection)s added successfully added to %(right_list_title)s." -#: templates/password_change_done.html:5 templates/password_change_form.html:5 -#: templates/password_change_form.html:7 -msgid "Password change" -msgstr "Parola değiştir" +#~ msgid "%(selection)s added successfully removed from %(right_list_title)s." +#~ msgstr "%(selection)s added successfully removed from %(right_list_title)s." + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "Letter" +#~ msgstr "Letter" + +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Ledger" +#~ msgstr "Ledger" + +#~ msgid "Portrait" +#~ msgstr "Portrait" + +#~ msgid "Landscape" +#~ msgstr "Landscape" + +#~ msgid "license" +#~ msgstr "license" + +#~ msgid "anonymous user" +#~ msgstr "anonymous user" + +#~ msgid "password" +#~ msgstr "password" + +#~ msgid "Insufficient permissions" +#~ msgstr "Insufficient permissions" + +#~ msgid "You don't have enough permissions for this operation." +#~ msgstr "You don't have enough permissions for this operation." + +#~ msgid "Page not found" +#~ msgstr "Page not found" + +#~ msgid "Sorry, but the requested page could not be found." +#~ msgstr "Sorry, but the requested page could not be found." + +#~ msgid "Details for %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Details for: %(object)s" +#~ msgstr "Details for: %(object)s" + +#~ msgid "Edit %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Edit: %(object)s" +#~ msgstr "Edit %(object_name)s:" + +#~ msgid "Create new %(object_name)s" +#~ msgstr "Create new %(object_name)s" + +#~ msgid "Create" +#~ msgstr "Create" + +#~ msgid "Assign %(title)s %(object)s" +#~ msgstr "Assign %(title)s %(object)s" + +#~ msgid "Confirm" +#~ msgstr "Confirm" + +#~ msgid "Confirm delete" +#~ msgstr "Confirm delete" + +#~ msgid "form icon" +#~ msgstr "form icon" + +#~ msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +#~ msgstr "Are you sure you wish to delete %(object_name)s: %(object)s?" + +#~ msgid "Are you sure you wish to delete: %(object)s?" +#~ msgstr "Are you sure you wish to delete: %(object)s?" + +#~ msgid "Yes" +#~ msgstr "Yes" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "required" +#~ msgstr "required" + +#~ msgid "Save" +#~ msgstr "Save" + +#~ msgid "Submit" +#~ msgstr "Submit" + +#~ msgid "Cancel" +#~ msgstr "Cancel" + +#~ msgid "List of %(title)s" +#~ msgstr "List of %(stripped_title)s" + +#~ msgid "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" +#~ msgstr "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" + +#~ msgid "List of %(title)s (%(total)s)" +#~ msgstr "List of %(title)s (%(total)s)" + +#~ msgid "Identifier" +#~ msgstr "Identifier" + +#~ msgid "There are no %(title)s" +#~ msgstr "There are no %(stripped_title)s" + +#~ msgid "Login" +#~ msgstr "Login" + +#~ msgid "Password change" +#~ msgstr "Password change" + +#~ msgid "lock field" +#~ msgstr "lock field" #~ msgid "Edit" -#~ msgstr "Düzenle" +#~ msgstr "Edit" diff --git a/mayan/apps/common/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/common/locale/vi_VN/LC_MESSAGES/django.mo index c4ea7efec1..f97c5ad962 100644 Binary files a/mayan/apps/common/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/common/locale/vi_VN/LC_MESSAGES/django.po index 274711b7fb..b6b3807792 100644 --- a/mayan/apps/common/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/vi_VN/LC_MESSAGES/django.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Translators: # Trung Phan Minh , 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2013-01-24 09:11+0000\n" -"Last-Translator: Trung Phan Minh \n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-17 07:03+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/projects/p/" "mayan-edms/language/vi_VN/)\n" "Language: vi_VN\n" @@ -19,395 +20,403 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: forms.py:97 +#: classes.py:40 +msgid "Available attributes: " +msgstr "" + +#: forms.py:98 msgid "Selection" msgstr "Lựa chọn" -#: forms.py:128 +#: forms.py:143 msgid "Email" msgstr "Email" -#: forms.py:131 -#, fuzzy +#: forms.py:146 models.py:36 msgid "Password" -msgstr "thay đổi mật khẩu" +msgstr "" -#: forms.py:134 -#, fuzzy +#: forms.py:149 msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." -msgstr "Vui lòng nhập đúng email và mật khẩu. " +msgstr "" -#: forms.py:136 +#: forms.py:151 msgid "This account is inactive." msgstr "Tài khoản này không được kích hoạt." #: links.py:10 -msgid "change password" -msgstr "thay đổi mật khẩu" +msgid "Change password" +msgstr "" #: links.py:11 -msgid "user details" -msgstr "chi tiết người dùng" +msgid "User details" +msgstr "" #: links.py:12 -msgid "edit details" -msgstr "sửa chi tiết" +msgid "Edit details" +msgstr "" #: links.py:14 -msgid "about" -msgstr "về" - -#: links.py:15 -msgid "license" -msgstr "bản quyền" - -#: 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 "Ledger" - -#: literals.py:38 -msgid "Portrait" -msgstr "Portrait" - -#: literals.py:39 -msgid "Landscape" -msgstr "Landscape" - -#: models.py:17 -msgid "Anonymous user" +msgid "About" msgstr "" -#: models.py:20 models.py:21 -msgid "anonymous user" -msgstr "" - -#: models.py:25 -msgid "account" -msgstr "" - -#: models.py:26 -msgid "password" -msgstr "" - -#: models.py:27 -msgid "password hash" -msgstr "" - -#: models.py:30 -msgid "auto admin properties" -msgstr "" - -#: utils.py:299 -msgid "function found" -msgstr "function found" - -#: views.py:39 -msgid "No action selected." -msgstr "Không thao tác nào được chọn." - -#: views.py:43 -msgid "Must select at least one item." -msgstr "Cần chọn ít nhất một phần tử." - -#: views.py:91 -#, python-format -msgid "%(selection)s added successfully added to %(right_list_title)s." -msgstr "" - -#: views.py:97 views.py:124 -#, python-format -msgid "Unable to add %(selection)s to %(right_list_title)s." -msgstr "" - -#: views.py:118 -#, python-format -msgid "%(selection)s added successfully removed from %(right_list_title)s." -msgstr "" - -#: views.py:139 -msgid "Add" -msgstr "Thêm" - -#: views.py:150 -msgid "Remove" -msgstr "Xóa" - -#: views.py:173 -msgid "current user details" -msgstr "chi tiết người dùng hiện tại" - -#: views.py:190 -msgid "E-mail conflict, another user has that same email." -msgstr "" - -#: views.py:193 -msgid "Current user's details updated." -msgstr "Thông tin người dùng đã được cập nhật" - -#: views.py:202 -msgid "edit current user details" -msgstr "sửa thông tin người dùng" - -#: views.py:233 +#: links.py:15 views.py:279 msgid "License" msgstr "Bản quyền" -#: views.py:242 -msgid "Current user password change" +#: links.py:17 +msgid "Locale profile" msgstr "" -#: views.py:257 templates/password_change_done.html:8 -msgid "Your password has been successfully changed." -msgstr "Mật khẩu đã thay đổi thành công." - -#: views.py:303 -#, python-format -msgid "Error saving %s details." +#: links.py:18 +msgid "Edit locale profile" msgstr "" -#: views.py:305 -msgid "Error saving details." +#: links.py:20 +msgid "Logout" msgstr "" -#: views.py:313 -#, python-format -msgid "%s details saved successfully." +#: models.py:28 models.py:31 +msgid "Anonymous user" msgstr "" -#: views.py:315 -msgid "Details saved successfully." +#: models.py:35 +msgid "Account" msgstr "" -#: views.py:327 -#, python-format -msgid "Error creating new %s." +#: models.py:37 +msgid "Password hash" msgstr "" -#: views.py:329 -msgid "Error creating object." +#: models.py:40 +msgid "Auto admin properties" msgstr "" -#: views.py:336 -#, python-format -msgid "%s created successfully." +#: models.py:44 +msgid "File" msgstr "" -#: views.py:338 -msgid "New object created successfully." +#: models.py:45 +msgid "Filename" msgstr "" -#: views.py:356 -#, python-format -msgid "Error deleting %s." +#: models.py:46 +msgid "Date time" msgstr "" -#: views.py:358 -msgid "Error deleting object." +#: models.py:49 +msgid "Shared uploaded file" msgstr "" -#: views.py:363 -#, python-format -msgid "%s deleted successfully." +#: models.py:50 +msgid "Shared uploaded files" msgstr "" -#: views.py:365 -msgid "Object deleted successfully." +#: models.py:61 +msgid "User" msgstr "" -#: widgets.py:58 -msgid "None" -msgstr "None" +#: models.py:63 +msgid "Timezone" +msgstr "" -#: conf/settings.py:16 +#: models.py:64 +msgid "Language" +msgstr "" + +#: models.py:70 +msgid "User locale profile" +msgstr "" + +#: models.py:71 +msgid "User locale profiles" +msgstr "" + +#: settings.py:14 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 "" -#: conf/settings.py:66 +#: settings.py:48 msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" msgstr "" -#: conf/settings.py:75 +#: settings.py:57 msgid "Allow non authenticated users, access to all views" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 -msgid "Insufficient permissions" +#: settings.py:66 +msgid "A storage backend that all workers can use to share files." msgstr "" -#: templates/403.html:11 -msgid "You don't have enough permissions for this operation." +#: utils.py:114 +msgid "Function found" msgstr "" -#: templates/404.html:5 templates/404.html.py:9 -msgid "Page not found" -msgstr "Không tìm thấy trang" +#: views.py:44 +msgid "No action selected." +msgstr "Không thao tác nào được chọn." -#: templates/404.html:11 -msgid "Sorry, but the requested page could not be found." -msgstr "" +#: views.py:48 +msgid "Must select at least one item." +msgstr "Cần chọn ít nhất một phần tử." -#: templates/calculate_form_title.html:8 +#: views.py:100 #, python-format -msgid "Details for %(object_name)s: %(object)s" +msgid "Unable to remove %(selection)s." msgstr "" -#: templates/calculate_form_title.html:10 +#: views.py:125 #, python-format -msgid "Details for: %(object)s" +msgid "Unable to add %(selection)s." msgstr "" -#: templates/calculate_form_title.html:15 -#, fuzzy, python-format -msgid "Edit %(object_name)s: %(object)s" -msgstr "Bạn chắc chắn muốn xóa %(object_name)s: %(object)s?" +#: views.py:138 +msgid "Add" +msgstr "Thêm" -#: templates/calculate_form_title.html:17 -#, fuzzy, python-format -msgid "Edit: %(object)s" -msgstr "Gán %(title)s %(object)s" +#: views.py:149 +msgid "Remove" +msgstr "Xóa" -#: templates/calculate_form_title.html:21 +#: views.py:172 +msgid "Current user details" +msgstr "" + +#: views.py:187 +msgid "Current user locale profile details" +msgstr "" + +#: views.py:204 +msgid "E-mail conflict, another user has that same email." +msgstr "" + +#: views.py:207 +msgid "Current user's details updated." +msgstr "Thông tin người dùng đã được cập nhật" + +#: views.py:216 +msgid "Edit current user details" +msgstr "" + +#: views.py:239 +msgid "Current user's locale profile details updated." +msgstr "" + +#: views.py:248 +msgid "Edit current user locale profile details" +msgstr "" + +#: views.py:288 +msgid "Current user password change" +msgstr "" + +#: views.py:303 +msgid "Your password has been successfully changed." +msgstr "Mật khẩu đã thay đổi thành công." + +#: views.py:314 #, python-format -msgid "Create new %(object_name)s" -msgstr "Tạo mới %(object_name)s" +msgid "Error saving %s details." +msgstr "" -#: templates/calculate_form_title.html:23 -msgid "Create" -msgstr "Tạo" +#: views.py:316 +msgid "Error saving details." +msgstr "" -#: templates/generic_assign_remove.html:5 +#: views.py:324 #, python-format -msgid "Assign %(title)s %(object)s" -msgstr "Gán %(title)s %(object)s" +msgid "%s details saved successfully." +msgstr "" -#: templates/generic_confirm.html:5 templates/generic_confirm.html.py:19 -msgid "Confirm" -msgstr "Xác nhận" +#: views.py:326 +msgid "Details saved successfully." +msgstr "" -#: templates/generic_confirm.html:17 -msgid "Confirm delete" -msgstr "Xác nhận xóa" - -#: templates/generic_confirm.html:33 -msgid "form icon" -msgstr "biểu tượng form" - -#: templates/generic_confirm.html:41 +#: views.py:338 #, python-format -msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" -msgstr "Bạn chắc chắn muốn xóa %(object_name)s: %(object)s?" +msgid "Error creating new %s." +msgstr "" -#: templates/generic_confirm.html:43 +#: views.py:340 +msgid "Error creating object." +msgstr "" + +#: views.py:347 #, python-format -msgid "Are you sure you wish to delete: %(object)s?" -msgstr "Bạn chắc chắn muốn xóa: %(object)s?" - -#: templates/generic_confirm.html:51 -msgid "Yes" +msgid "%s created successfully." msgstr "" -#: templates/generic_confirm.html:55 -msgid "No" +#: views.py:349 +msgid "New object created successfully." msgstr "" -#: templates/generic_form_instance.html:40 -#: templates/generic_form_subtemplate.html:59 -msgid "required" -msgstr "" - -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Save" -msgstr "" - -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Submit" -msgstr "" - -#: templates/generic_form_subtemplate.html:90 -msgid "Cancel" -msgstr "" - -#: templates/generic_list.html:8 templates/generic_list_horizontal.html:8 +#: views.py:367 #, python-format -msgid "List of %(title)s" +msgid "Error deleting %s." msgstr "" -#: templates/generic_list_horizontal_subtemplate.html:24 -#: templates/generic_list_subtemplate.html:25 +#: views.py:369 +msgid "Error deleting object." +msgstr "" + +#: views.py:374 #, python-format -msgid "" -"List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " -"%(page_number)s of %(total_pages)s)" +msgid "%s deleted successfully." msgstr "" -#: templates/generic_list_horizontal_subtemplate.html:26 -#: templates/generic_list_subtemplate.html:27 -#, python-format -msgid "List of %(title)s (%(total)s)" +#: views.py:376 +msgid "Object deleted successfully." msgstr "" -#: templates/generic_list_subtemplate.html:73 -msgid "Identifier" -msgstr "" +#: widgets.py:60 +msgid "None" +msgstr "None" -#: templates/generic_list_subtemplate.html:147 -#, python-format -msgid "There are no %(title)s" -msgstr "" +#~ msgid "%(selection)s added successfully added to %(right_list_title)s." +#~ msgstr "%(selection)s added successfully added to %(right_list_title)s." -#: templates/login.html:7 -msgid "Login" -msgstr "" +#~ msgid "%(selection)s added successfully removed from %(right_list_title)s." +#~ msgstr "%(selection)s added successfully removed from %(right_list_title)s." -#: templates/password_change_done.html:5 templates/password_change_form.html:5 -#: templates/password_change_form.html:7 -msgid "Password change" -msgstr "" +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "Letter" +#~ msgstr "Letter" + +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Ledger" +#~ msgstr "Ledger" + +#~ msgid "Portrait" +#~ msgstr "Portrait" + +#~ msgid "Landscape" +#~ msgstr "Landscape" + +#~ msgid "license" +#~ msgstr "license" + +#~ msgid "anonymous user" +#~ msgstr "anonymous user" + +#~ msgid "password" +#~ msgstr "password" + +#~ msgid "Insufficient permissions" +#~ msgstr "Insufficient permissions" + +#~ msgid "You don't have enough permissions for this operation." +#~ msgstr "You don't have enough permissions for this operation." + +#~ msgid "Page not found" +#~ msgstr "Page not found" + +#~ msgid "Sorry, but the requested page could not be found." +#~ msgstr "Sorry, but the requested page could not be found." + +#~ msgid "Details for %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Details for: %(object)s" +#~ msgstr "Details for: %(object)s" + +#~ msgid "Edit %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Edit: %(object)s" +#~ msgstr "Edit %(object_name)s:" + +#~ msgid "Create new %(object_name)s" +#~ msgstr "Create new %(object_name)s" + +#~ msgid "Create" +#~ msgstr "Create" + +#~ msgid "Assign %(title)s %(object)s" +#~ msgstr "Assign %(title)s %(object)s" + +#~ msgid "Confirm" +#~ msgstr "Confirm" + +#~ msgid "Confirm delete" +#~ msgstr "Confirm delete" + +#~ msgid "form icon" +#~ msgstr "form icon" + +#~ msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +#~ msgstr "Are you sure you wish to delete %(object_name)s: %(object)s?" + +#~ msgid "Are you sure you wish to delete: %(object)s?" +#~ msgstr "Are you sure you wish to delete: %(object)s?" + +#~ msgid "Yes" +#~ msgstr "Yes" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "required" +#~ msgstr "required" + +#~ msgid "Save" +#~ msgstr "Save" + +#~ msgid "Submit" +#~ msgstr "Submit" + +#~ msgid "Cancel" +#~ msgstr "Cancel" + +#~ msgid "List of %(title)s" +#~ msgstr "List of %(stripped_title)s" + +#~ msgid "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" +#~ msgstr "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" + +#~ msgid "List of %(title)s (%(total)s)" +#~ msgstr "List of %(title)s (%(total)s)" + +#~ msgid "Identifier" +#~ msgstr "Identifier" + +#~ msgid "There are no %(title)s" +#~ msgstr "There are no %(stripped_title)s" + +#~ msgid "Login" +#~ msgstr "Login" + +#~ msgid "Password change" +#~ msgstr "Password change" + +#~ msgid "lock field" +#~ msgstr "lock field" #~ msgid "Edit" -#~ msgstr "Sửa" +#~ msgstr "Edit" diff --git a/mayan/apps/common/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/common/locale/zh_CN/LC_MESSAGES/django.mo index bb60f16dec..f1706e50f0 100644 Binary files a/mayan/apps/common/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/common/locale/zh_CN/LC_MESSAGES/django.po index 4371fe2a28..954cb5f9ba 100644 --- a/mayan/apps/common/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/zh_CN/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Ford Guo , 2014 @@ -9,403 +9,413 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-07-31 19:51-0400\n" -"PO-Revision-Date: 2014-09-26 04:04+0000\n" -"Last-Translator: Ford Guo \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/mayan-edms/language/zh_CN/)\n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-17 07:03+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/mayan-" +"edms/language/zh_CN/)\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: forms.py:97 +#: classes.py:40 +msgid "Available attributes: " +msgstr "" + +#: forms.py:98 msgid "Selection" msgstr "选择" -#: forms.py:128 +#: forms.py:143 msgid "Email" msgstr "电子邮件" -#: forms.py:131 +#: forms.py:146 models.py:36 msgid "Password" msgstr "密码" -#: forms.py:134 +#: forms.py:149 msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." msgstr "请输入正确的邮箱或者密码。注意!密码是大小写敏感的。" -#: forms.py:136 +#: forms.py:151 msgid "This account is inactive." msgstr "此账号未激活" #: links.py:10 -msgid "change password" -msgstr "修改密码" +msgid "Change password" +msgstr "" #: links.py:11 -msgid "user details" -msgstr "用户详细信息" +msgid "User details" +msgstr "" #: links.py:12 -msgid "edit details" -msgstr "编辑详细信息" +msgid "Edit details" +msgstr "" #: links.py:14 -msgid "about" -msgstr "关于" +msgid "About" +msgstr "" -#: links.py:15 -msgid "license" -msgstr "许可证" - -#: 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 "Ledger" - -#: literals.py:38 -msgid "Portrait" -msgstr "Portrait" - -#: literals.py:39 -msgid "Landscape" -msgstr "Landscape" - -#: models.py:17 -msgid "Anonymous user" -msgstr "匿名用户" - -#: models.py:20 models.py:21 -msgid "anonymous user" -msgstr "匿名用户" - -#: models.py:25 -msgid "account" -msgstr "账号" - -#: models.py:26 -msgid "password" -msgstr "密码" - -#: models.py:27 -msgid "password hash" -msgstr "密码哈希" - -#: models.py:30 -msgid "auto admin properties" -msgstr "自动管理属性" - -#: utils.py:299 -msgid "function found" -msgstr "功能已存在" - -#: views.py:39 -msgid "No action selected." -msgstr "请选择一个操作" - -#: views.py:43 -msgid "Must select at least one item." -msgstr "至少需要选择一项" - -#: views.py:91 -#, python-format -msgid "%(selection)s added successfully added to %(right_list_title)s." -msgstr "%(selection)s成功添加到 %(right_list_title)s." - -#: views.py:97 views.py:124 -#, python-format -msgid "Unable to add %(selection)s to %(right_list_title)s." -msgstr "不能添加%(selection)s到%(right_list_title)s." - -#: views.py:118 -#, python-format -msgid "%(selection)s added successfully removed from %(right_list_title)s." -msgstr "%(selection)s 成功从%(right_list_title)s.移除" - -#: views.py:139 -msgid "Add" -msgstr "新增" - -#: views.py:150 -msgid "Remove" -msgstr "移除" - -#: views.py:173 -msgid "current user details" -msgstr "当前用户详细信息" - -#: views.py:190 -msgid "E-mail conflict, another user has that same email." -msgstr "电子邮箱冲突,另外用户已经使用此邮箱" - -#: views.py:193 -msgid "Current user's details updated." -msgstr "当前用户信息已经更新" - -#: views.py:202 -msgid "edit current user details" -msgstr "编辑当前用户信息" - -#: views.py:233 +#: links.py:15 views.py:279 msgid "License" msgstr "许可证" -#: views.py:242 -msgid "Current user password change" -msgstr "当前用户密码修改" +#: links.py:17 +msgid "Locale profile" +msgstr "" -#: views.py:257 templates/password_change_done.html:8 -msgid "Your password has been successfully changed." -msgstr "你的密码已经修改成功" +#: links.py:18 +msgid "Edit locale profile" +msgstr "" -#: views.py:303 -#, python-format -msgid "Error saving %s details." -msgstr "保存 %s 详细信息出错。" +#: links.py:20 +msgid "Logout" +msgstr "" -#: views.py:305 -msgid "Error saving details." -msgstr "保存详细信息出错" +#: models.py:28 models.py:31 +msgid "Anonymous user" +msgstr "匿名用户" -#: views.py:313 -#, python-format -msgid "%s details saved successfully." -msgstr "%s的详单成功保存" +#: models.py:35 +msgid "Account" +msgstr "" -#: views.py:315 -msgid "Details saved successfully." -msgstr "详单保存成功" +#: models.py:37 +msgid "Password hash" +msgstr "" -#: views.py:327 -#, python-format -msgid "Error creating new %s." -msgstr "创建新 %s的时候出错。" +#: models.py:40 +msgid "Auto admin properties" +msgstr "" -#: views.py:329 -msgid "Error creating object." -msgstr "创建对象的时候出错" +#: models.py:44 +msgid "File" +msgstr "" -#: views.py:336 -#, python-format -msgid "%s created successfully." -msgstr "创建%s成功" +#: models.py:45 +msgid "Filename" +msgstr "" -#: views.py:338 -msgid "New object created successfully." -msgstr "新对象创建成功" +#: models.py:46 +msgid "Date time" +msgstr "" -#: views.py:356 -#, python-format -msgid "Error deleting %s." -msgstr "删除%s时候出错。" +#: models.py:49 +msgid "Shared uploaded file" +msgstr "" -#: views.py:358 -msgid "Error deleting object." -msgstr "删除对象时候出错。" +#: models.py:50 +msgid "Shared uploaded files" +msgstr "" -#: views.py:363 -#, python-format -msgid "%s deleted successfully." -msgstr "删除%s成功。" +#: models.py:61 +msgid "User" +msgstr "" -#: views.py:365 -msgid "Object deleted successfully." -msgstr "对象删除成功" +#: models.py:63 +msgid "Timezone" +msgstr "" -#: widgets.py:58 -msgid "None" -msgstr "无" +#: models.py:64 +msgid "Language" +msgstr "" -#: conf/settings.py:16 +#: models.py:70 +msgid "User locale profile" +msgstr "" + +#: models.py:71 +msgid "User locale profiles" +msgstr "" + +#: settings.py:14 msgid "" "Temporary directory used site wide to store thumbnails, previews and " -"temporary files. If none is specified, one will be created using " +"temporary files. If none is specified, one will be created using tempfile." +"mkdtemp()" +msgstr "" +"站点范围的临时目录用于存储缩略图,预览和临时文件。如果没有设置,将缺省使用" "tempfile.mkdtemp()" -msgstr "站点范围的临时目录用于存储缩略图,预览和临时文件。如果没有设置,将缺省使用tempfile.mkdtemp()" -#: conf/settings.py:66 +#: settings.py:48 msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" msgstr "控制验证用户的机制。可选项有:username, email" -#: conf/settings.py:75 +#: settings.py:57 msgid "Allow non authenticated users, access to all views" msgstr "允许非授权用户访问所有的视图" -#: templates/403.html:5 templates/403.html.py:9 -msgid "Insufficient permissions" -msgstr "权限不足" +#: settings.py:66 +msgid "A storage backend that all workers can use to share files." +msgstr "" -#: templates/403.html:11 -msgid "You don't have enough permissions for this operation." -msgstr "你没有足够权限执行当前操作" +#: utils.py:114 +msgid "Function found" +msgstr "" -#: templates/404.html:5 templates/404.html.py:9 -msgid "Page not found" -msgstr "页不存在" +#: views.py:44 +msgid "No action selected." +msgstr "请选择一个操作" -#: templates/404.html:11 -msgid "Sorry, but the requested page could not be found." -msgstr "抱歉,请求页不存在。" +#: views.py:48 +msgid "Must select at least one item." +msgstr "至少需要选择一项" -#: templates/calculate_form_title.html:8 +#: views.py:100 #, python-format -msgid "Details for %(object_name)s: %(object)s" -msgstr "%(object_name)s的详细信息是:%(object)s" +msgid "Unable to remove %(selection)s." +msgstr "" -#: templates/calculate_form_title.html:10 +#: views.py:125 #, python-format -msgid "Details for: %(object)s" -msgstr "详细信息:%(object)s" +msgid "Unable to add %(selection)s." +msgstr "" -#: templates/calculate_form_title.html:15 +#: views.py:138 +msgid "Add" +msgstr "新增" + +#: views.py:149 +msgid "Remove" +msgstr "移除" + +#: views.py:172 +msgid "Current user details" +msgstr "" + +#: views.py:187 +msgid "Current user locale profile details" +msgstr "" + +#: views.py:204 +msgid "E-mail conflict, another user has that same email." +msgstr "电子邮箱冲突,另外用户已经使用此邮箱" + +#: views.py:207 +msgid "Current user's details updated." +msgstr "当前用户信息已经更新" + +#: views.py:216 +msgid "Edit current user details" +msgstr "" + +#: views.py:239 +msgid "Current user's locale profile details updated." +msgstr "" + +#: views.py:248 +msgid "Edit current user locale profile details" +msgstr "" + +#: views.py:288 +msgid "Current user password change" +msgstr "当前用户密码修改" + +#: views.py:303 +msgid "Your password has been successfully changed." +msgstr "你的密码已经修改成功" + +#: views.py:314 #, python-format -msgid "Edit %(object_name)s: %(object)s" -msgstr "编辑%(object_name)s的 %(object)s" +msgid "Error saving %s details." +msgstr "保存 %s 详细信息出错。" -#: templates/calculate_form_title.html:17 +#: views.py:316 +msgid "Error saving details." +msgstr "保存详细信息出错" + +#: views.py:324 #, python-format -msgid "Edit: %(object)s" -msgstr "编辑:%(object)s" +msgid "%s details saved successfully." +msgstr "%s的详单成功保存" -#: templates/calculate_form_title.html:21 +#: views.py:326 +msgid "Details saved successfully." +msgstr "详单保存成功" + +#: views.py:338 #, python-format -msgid "Create new %(object_name)s" -msgstr "创建新的%(object_name)s" +msgid "Error creating new %s." +msgstr "创建新 %s的时候出错。" -#: templates/calculate_form_title.html:23 -msgid "Create" -msgstr "创建" +#: views.py:340 +msgid "Error creating object." +msgstr "创建对象的时候出错" -#: templates/generic_assign_remove.html:5 +#: views.py:347 #, python-format -msgid "Assign %(title)s %(object)s" -msgstr "分配 %(title)s %(object)s" +msgid "%s created successfully." +msgstr "创建%s成功" -#: templates/generic_confirm.html:5 templates/generic_confirm.html.py:19 -msgid "Confirm" -msgstr "确认" +#: views.py:349 +msgid "New object created successfully." +msgstr "新对象创建成功" -#: templates/generic_confirm.html:17 -msgid "Confirm delete" -msgstr "确认删除" - -#: templates/generic_confirm.html:33 -msgid "form icon" -msgstr "表单图标" - -#: templates/generic_confirm.html:41 +#: views.py:367 #, python-format -msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" -msgstr "确定要删除%(object_name)s的%(object)s么?" +msgid "Error deleting %s." +msgstr "删除%s时候出错。" -#: templates/generic_confirm.html:43 +#: views.py:369 +msgid "Error deleting object." +msgstr "删除对象时候出错。" + +#: views.py:374 #, python-format -msgid "Are you sure you wish to delete: %(object)s?" -msgstr "确定要删除%(object)s么?" +msgid "%s deleted successfully." +msgstr "删除%s成功。" -#: templates/generic_confirm.html:51 -msgid "Yes" -msgstr "是" +#: views.py:376 +msgid "Object deleted successfully." +msgstr "对象删除成功" -#: templates/generic_confirm.html:55 -msgid "No" -msgstr "否" +#: widgets.py:60 +msgid "None" +msgstr "无" -#: templates/generic_form_instance.html:40 -#: templates/generic_form_subtemplate.html:59 -msgid "required" -msgstr "必填" +#~ msgid "%(selection)s added successfully added to %(right_list_title)s." +#~ msgstr "%(selection)s added successfully added to %(right_list_title)s." -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Save" -msgstr "保存" +#~ msgid "%(selection)s added successfully removed from %(right_list_title)s." +#~ msgstr "%(selection)s added successfully removed from %(right_list_title)s." -#: templates/generic_form_subtemplate.html:83 -#: templates/generic_form_subtemplate.html:85 -#: templates/generic_list_horizontal_subtemplate.html:50 -#: templates/generic_list_horizontal_subtemplate.html:88 -#: templates/generic_list_subtemplate.html:53 -#: templates/generic_list_subtemplate.html:173 -msgid "Submit" -msgstr "提交" +#~ msgid "A5" +#~ msgstr "A5" -#: templates/generic_form_subtemplate.html:90 -msgid "Cancel" -msgstr "取消" +#~ msgid "A4" +#~ msgstr "A4" -#: templates/generic_list.html:8 templates/generic_list_horizontal.html:8 -#, python-format -msgid "List of %(title)s" -msgstr "%(title)s列表" +#~ msgid "A3" +#~ msgstr "A3" -#: templates/generic_list_horizontal_subtemplate.html:24 -#: templates/generic_list_subtemplate.html:25 -#, python-format -msgid "" -"List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " -"%(page_number)s of %(total_pages)s)" -msgstr "%(title)s列表(%(start)s - %(end)s 总共 %(total)s) (第%(page_number)s页,总共%(total_pages)s)" +#~ msgid "B5" +#~ msgstr "B5" -#: templates/generic_list_horizontal_subtemplate.html:26 -#: templates/generic_list_subtemplate.html:27 -#, python-format -msgid "List of %(title)s (%(total)s)" -msgstr "%(title)s (%(total)s)列表" +#~ msgid "B4" +#~ msgstr "B4" -#: templates/generic_list_subtemplate.html:73 -msgid "Identifier" -msgstr "标识" +#~ msgid "Letter" +#~ msgstr "Letter" -#: templates/generic_list_subtemplate.html:147 -#, python-format -msgid "There are no %(title)s" -msgstr "无%(title)s" +#~ msgid "Legal" +#~ msgstr "Legal" -#: templates/login.html:7 -msgid "Login" -msgstr "登录" +#~ msgid "Ledger" +#~ msgstr "Ledger" -#: templates/password_change_done.html:5 templates/password_change_form.html:5 -#: templates/password_change_form.html:7 -msgid "Password change" -msgstr "密码改变" +#~ msgid "Portrait" +#~ msgstr "Portrait" + +#~ msgid "Landscape" +#~ msgstr "Landscape" + +#~ msgid "license" +#~ msgstr "license" + +#~ msgid "anonymous user" +#~ msgstr "anonymous user" + +#~ msgid "password" +#~ msgstr "password" + +#~ msgid "Insufficient permissions" +#~ msgstr "Insufficient permissions" + +#~ msgid "You don't have enough permissions for this operation." +#~ msgstr "You don't have enough permissions for this operation." + +#~ msgid "Page not found" +#~ msgstr "Page not found" + +#~ msgid "Sorry, but the requested page could not be found." +#~ msgstr "Sorry, but the requested page could not be found." + +#~ msgid "Details for %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Details for: %(object)s" +#~ msgstr "Details for: %(object)s" + +#~ msgid "Edit %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Edit: %(object)s" +#~ msgstr "Edit %(object_name)s:" + +#~ msgid "Create new %(object_name)s" +#~ msgstr "Create new %(object_name)s" + +#~ msgid "Create" +#~ msgstr "Create" + +#~ msgid "Assign %(title)s %(object)s" +#~ msgstr "Assign %(title)s %(object)s" + +#~ msgid "Confirm" +#~ msgstr "Confirm" + +#~ msgid "Confirm delete" +#~ msgstr "Confirm delete" + +#~ msgid "form icon" +#~ msgstr "form icon" + +#~ msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +#~ msgstr "Are you sure you wish to delete %(object_name)s: %(object)s?" + +#~ msgid "Are you sure you wish to delete: %(object)s?" +#~ msgstr "Are you sure you wish to delete: %(object)s?" + +#~ msgid "Yes" +#~ msgstr "Yes" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "required" +#~ msgstr "required" + +#~ msgid "Save" +#~ msgstr "Save" + +#~ msgid "Submit" +#~ msgstr "Submit" + +#~ msgid "Cancel" +#~ msgstr "Cancel" + +#~ msgid "List of %(title)s" +#~ msgstr "List of %(stripped_title)s" + +#~ msgid "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" +#~ msgstr "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" + +#~ msgid "List of %(title)s (%(total)s)" +#~ msgstr "List of %(title)s (%(total)s)" + +#~ msgid "Identifier" +#~ msgstr "Identifier" + +#~ msgid "There are no %(title)s" +#~ msgstr "There are no %(stripped_title)s" + +#~ msgid "Login" +#~ msgstr "Login" + +#~ msgid "Password change" +#~ msgstr "Password change" #~ msgid "lock field" #~ msgstr "lock field" diff --git a/mayan/apps/common/locale/zh_TW/LC_MESSAGES/django.mo b/mayan/apps/common/locale/zh_TW/LC_MESSAGES/django.mo new file mode 100644 index 0000000000..b02449ac66 Binary files /dev/null and b/mayan/apps/common/locale/zh_TW/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/zh_TW/LC_MESSAGES/django.po b/mayan/apps/common/locale/zh_TW/LC_MESSAGES/django.po new file mode 100644 index 0000000000..75d5ed4553 --- /dev/null +++ b/mayan/apps/common/locale/zh_TW/LC_MESSAGES/django.po @@ -0,0 +1,421 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Mayan EDMS\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-06 16:50-0400\n" +"PO-Revision-Date: 2015-01-17 07:03+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/mayan-" +"edms/language/zh_TW/)\n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: classes.py:40 +msgid "Available attributes: " +msgstr "" + +#: forms.py:98 +msgid "Selection" +msgstr "" + +#: forms.py:143 +msgid "Email" +msgstr "" + +#: forms.py:146 models.py:36 +msgid "Password" +msgstr "" + +#: forms.py:149 +msgid "" +"Please enter a correct email and password. Note that the password field is " +"case-sensitive." +msgstr "" + +#: forms.py:151 +msgid "This account is inactive." +msgstr "" + +#: links.py:10 +msgid "Change password" +msgstr "" + +#: links.py:11 +msgid "User details" +msgstr "" + +#: links.py:12 +msgid "Edit details" +msgstr "" + +#: links.py:14 +msgid "About" +msgstr "" + +#: links.py:15 views.py:279 +msgid "License" +msgstr "" + +#: links.py:17 +msgid "Locale profile" +msgstr "" + +#: links.py:18 +msgid "Edit locale profile" +msgstr "" + +#: links.py:20 +msgid "Logout" +msgstr "" + +#: models.py:28 models.py:31 +msgid "Anonymous user" +msgstr "" + +#: models.py:35 +msgid "Account" +msgstr "" + +#: models.py:37 +msgid "Password hash" +msgstr "" + +#: models.py:40 +msgid "Auto admin properties" +msgstr "" + +#: models.py:44 +msgid "File" +msgstr "" + +#: models.py:45 +msgid "Filename" +msgstr "" + +#: models.py:46 +msgid "Date time" +msgstr "" + +#: models.py:49 +msgid "Shared uploaded file" +msgstr "" + +#: models.py:50 +msgid "Shared uploaded files" +msgstr "" + +#: models.py:61 +msgid "User" +msgstr "" + +#: models.py:63 +msgid "Timezone" +msgstr "" + +#: models.py:64 +msgid "Language" +msgstr "" + +#: models.py:70 +msgid "User locale profile" +msgstr "" + +#: models.py:71 +msgid "User locale profiles" +msgstr "" + +#: settings.py:14 +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 "" + +#: settings.py:48 +msgid "" +"Controls the mechanism used to authenticated user. Options are: username, " +"email" +msgstr "" + +#: settings.py:57 +msgid "Allow non authenticated users, access to all views" +msgstr "" + +#: settings.py:66 +msgid "A storage backend that all workers can use to share files." +msgstr "" + +#: utils.py:114 +msgid "Function found" +msgstr "" + +#: views.py:44 +msgid "No action selected." +msgstr "" + +#: views.py:48 +msgid "Must select at least one item." +msgstr "" + +#: views.py:100 +#, python-format +msgid "Unable to remove %(selection)s." +msgstr "" + +#: views.py:125 +#, python-format +msgid "Unable to add %(selection)s." +msgstr "" + +#: views.py:138 +msgid "Add" +msgstr "" + +#: views.py:149 +msgid "Remove" +msgstr "" + +#: views.py:172 +msgid "Current user details" +msgstr "" + +#: views.py:187 +msgid "Current user locale profile details" +msgstr "" + +#: views.py:204 +msgid "E-mail conflict, another user has that same email." +msgstr "" + +#: views.py:207 +msgid "Current user's details updated." +msgstr "" + +#: views.py:216 +msgid "Edit current user details" +msgstr "" + +#: views.py:239 +msgid "Current user's locale profile details updated." +msgstr "" + +#: views.py:248 +msgid "Edit current user locale profile details" +msgstr "" + +#: views.py:288 +msgid "Current user password change" +msgstr "" + +#: views.py:303 +msgid "Your password has been successfully changed." +msgstr "" + +#: views.py:314 +#, python-format +msgid "Error saving %s details." +msgstr "" + +#: views.py:316 +msgid "Error saving details." +msgstr "" + +#: views.py:324 +#, python-format +msgid "%s details saved successfully." +msgstr "" + +#: views.py:326 +msgid "Details saved successfully." +msgstr "" + +#: views.py:338 +#, python-format +msgid "Error creating new %s." +msgstr "" + +#: views.py:340 +msgid "Error creating object." +msgstr "" + +#: views.py:347 +#, python-format +msgid "%s created successfully." +msgstr "" + +#: views.py:349 +msgid "New object created successfully." +msgstr "" + +#: views.py:367 +#, python-format +msgid "Error deleting %s." +msgstr "" + +#: views.py:369 +msgid "Error deleting object." +msgstr "" + +#: views.py:374 +#, python-format +msgid "%s deleted successfully." +msgstr "" + +#: views.py:376 +msgid "Object deleted successfully." +msgstr "" + +#: widgets.py:60 +msgid "None" +msgstr "" + +#~ msgid "%(selection)s added successfully added to %(right_list_title)s." +#~ msgstr "%(selection)s added successfully added to %(right_list_title)s." + +#~ msgid "%(selection)s added successfully removed from %(right_list_title)s." +#~ msgstr "%(selection)s added successfully removed from %(right_list_title)s." + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "Letter" +#~ msgstr "Letter" + +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Ledger" +#~ msgstr "Ledger" + +#~ msgid "Portrait" +#~ msgstr "Portrait" + +#~ msgid "Landscape" +#~ msgstr "Landscape" + +#~ msgid "license" +#~ msgstr "license" + +#~ msgid "anonymous user" +#~ msgstr "anonymous user" + +#~ msgid "password" +#~ msgstr "password" + +#~ msgid "Insufficient permissions" +#~ msgstr "Insufficient permissions" + +#~ msgid "You don't have enough permissions for this operation." +#~ msgstr "You don't have enough permissions for this operation." + +#~ msgid "Page not found" +#~ msgstr "Page not found" + +#~ msgid "Sorry, but the requested page could not be found." +#~ msgstr "Sorry, but the requested page could not be found." + +#~ msgid "Details for %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Details for: %(object)s" +#~ msgstr "Details for: %(object)s" + +#~ msgid "Edit %(object_name)s: %(object)s" +#~ msgstr "Details for %(object_name)s: %(object)s" + +#~ msgid "Edit: %(object)s" +#~ msgstr "Edit %(object_name)s:" + +#~ msgid "Create new %(object_name)s" +#~ msgstr "Create new %(object_name)s" + +#~ msgid "Create" +#~ msgstr "Create" + +#~ msgid "Assign %(title)s %(object)s" +#~ msgstr "Assign %(title)s %(object)s" + +#~ msgid "Confirm" +#~ msgstr "Confirm" + +#~ msgid "Confirm delete" +#~ msgstr "Confirm delete" + +#~ msgid "form icon" +#~ msgstr "form icon" + +#~ msgid "Are you sure you wish to delete %(object_name)s: %(object)s?" +#~ msgstr "Are you sure you wish to delete %(object_name)s: %(object)s?" + +#~ msgid "Are you sure you wish to delete: %(object)s?" +#~ msgstr "Are you sure you wish to delete: %(object)s?" + +#~ msgid "Yes" +#~ msgstr "Yes" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "required" +#~ msgstr "required" + +#~ msgid "Save" +#~ msgstr "Save" + +#~ msgid "Submit" +#~ msgstr "Submit" + +#~ msgid "Cancel" +#~ msgstr "Cancel" + +#~ msgid "List of %(title)s" +#~ msgstr "List of %(stripped_title)s" + +#~ msgid "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" +#~ msgstr "" +#~ "List of %(title)s (%(start)s - %(end)s out of %(total)s) (Page " +#~ "%(page_number)s of %(total_pages)s)" + +#~ msgid "List of %(title)s (%(total)s)" +#~ msgstr "List of %(title)s (%(total)s)" + +#~ msgid "Identifier" +#~ msgstr "Identifier" + +#~ msgid "There are no %(title)s" +#~ msgstr "There are no %(stripped_title)s" + +#~ msgid "Login" +#~ msgstr "Login" + +#~ msgid "Password change" +#~ msgstr "Password change" + +#~ msgid "lock field" +#~ msgstr "lock field" + +#~ msgid "Edit" +#~ msgstr "Edit" diff --git a/mayan/apps/common/managers.py b/mayan/apps/common/managers.py index 78ed156ea3..e3b637cd7e 100644 --- a/mayan/apps/common/managers.py +++ b/mayan/apps/common/managers.py @@ -1,3 +1,5 @@ +from __future__ import unicode_literals + from django.db import models from django.contrib.auth.models import AnonymousUser diff --git a/mayan/apps/common/middleware/ajax_redirect.py b/mayan/apps/common/middleware/ajax_redirect.py new file mode 100644 index 0000000000..5d8d8935a2 --- /dev/null +++ b/mayan/apps/common/middleware/ajax_redirect.py @@ -0,0 +1,12 @@ +from __future__ import unicode_literals + +from django.conf import settings +from django.http import HttpResponseRedirect + + +class AjaxRedirect(object): + def process_response(self, request, response): + if request.is_ajax(): + if type(response) == HttpResponseRedirect: + response.status_code = getattr(settings, 'AJAX_REDIRECT_CODE', 302) + return response diff --git a/mayan/apps/common/middleware/login_required_middleware.py b/mayan/apps/common/middleware/login_required_middleware.py index 94331d32aa..ea631fa96e 100644 --- a/mayan/apps/common/middleware/login_required_middleware.py +++ b/mayan/apps/common/middleware/login_required_middleware.py @@ -1,13 +1,14 @@ -from __future__ import absolute_import +from __future__ import unicode_literals import re from django.http import HttpResponseRedirect from django.conf import settings +from django.core.urlresolvers import reverse -from ..conf.settings import ALLOW_ANONYMOUS_ACCESS +from ..settings import ALLOW_ANONYMOUS_ACCESS -EXEMPT_URLS = [re.compile(settings.LOGIN_URL.lstrip('/'))] +EXEMPT_URLS = [re.compile(reverse(settings.LOGIN_URL).lstrip('/'))] if hasattr(settings, 'LOGIN_EXEMPT_URLS'): EXEMPT_URLS += [re.compile(expr) for expr in settings.LOGIN_EXEMPT_URLS] @@ -34,4 +35,4 @@ class LoginRequiredMiddleware: if not request.user.is_authenticated(): path = request.path_info.lstrip('/') if not any(m.match(path) for m in EXEMPT_URLS): - return HttpResponseRedirect(settings.LOGIN_URL) + return HttpResponseRedirect(reverse(settings.LOGIN_URL)) diff --git a/mayan/apps/common/middleware/strip_spaces_widdleware.py b/mayan/apps/common/middleware/strip_spaces_widdleware.py index ddfa4edf52..b6d4a0ba7a 100644 --- a/mayan/apps/common/middleware/strip_spaces_widdleware.py +++ b/mayan/apps/common/middleware/strip_spaces_widdleware.py @@ -1,3 +1,5 @@ +from __future__ import unicode_literals + from django.utils.html import strip_spaces_between_tags diff --git a/mayan/apps/common/middleware/timezone.py b/mayan/apps/common/middleware/timezone.py new file mode 100644 index 0000000000..9abb30698b --- /dev/null +++ b/mayan/apps/common/middleware/timezone.py @@ -0,0 +1,18 @@ +from __future__ import unicode_literals + +import pytz + +from django.utils import timezone + + +class TimezoneMiddleware(object): + def process_request(self, request): + if hasattr(request, 'session'): + tzname = request.session.get('django_timezone') + if tzname: + timezone.activate(pytz.timezone(tzname)) + else: + timezone.deactivate() + else: + # TODO: Cookie, browser based timezone + timezone.deactivate() diff --git a/mayan/apps/common/mixins.py b/mayan/apps/common/mixins.py new file mode 100644 index 0000000000..c3a8a06b3a --- /dev/null +++ b/mayan/apps/common/mixins.py @@ -0,0 +1,84 @@ +from __future__ import unicode_literals + +from django.core.exceptions import PermissionDenied +from django.core.urlresolvers import reverse + +from acls.models import AccessEntry +from permissions.models import Permission + + +class ExtraContextMixin(object): + extra_context = {} + + def get_extra_context(self): + return self.extra_context + + def get_context_data(self, **kwargs): + context = super(ExtraContextMixin, self).get_context_data(**kwargs) + context.update(self.get_extra_context()) + return context + + +class ObjectListPermissionFilterMixin(object): + object_permission = None + + def get_queryset(self): + queryset = super(ObjectListPermissionFilterMixin, self).get_queryset() + + if self.object_permission: + try: + # Check to see if the user has the permissions globally + Permission.objects.check_permissions(self.request.user, [self.object_permission]) + except PermissionDenied: + # No global permission, filter ther queryset per object + permission + return AccessEntry.objects.filter_objects_by_access(self.object_permission, self.request.user, queryset) + else: + # Has the permission globally, return all results + return queryset + else: + return queryset + + +class ObjectPermissionCheckMixin(object): + object_permission = None + + def dispatch(self, request, *args, **kwargs): + + if self.object_permission: + try: + Permission.objects.check_permissions(request.user, [self.object_permission]) + except PermissionDenied: + AccessEntry.objects.check_access(self.object_permission, request.user, self.get_object()) + + return super(ObjectPermissionCheckMixin, self).dispatch(request, *args, **kwargs) + + +class RedirectionMixin(object): + post_action_redirect = None + + def dispatch(self, request, *args, **kwargs): + self.next_url = self.request.POST.get('next', self.request.GET.get('next', self.post_action_redirect if self.post_action_redirect else self.request.META.get('HTTP_REFERER', reverse('main:home')))) + self.previous_url = self.request.POST.get('previous', self.request.GET.get('previous', self.request.META.get('HTTP_REFERER', reverse('main:home')))) + + return super(RedirectionMixin, self).dispatch(request, *args, **kwargs) + + def get_context_data(self, **kwargs): + context = super(RedirectionMixin, self).get_context_data(**kwargs) + context.update( + { + 'next': self.next_url, + 'previous': self.previous_url + } + ) + + return context + + +class ViewPermissionCheckMixin(object): + view_permission = None + + def dispatch(self, request, *args, **kwargs): + if self.view_permission: + Permission.objects.check_permissions(self.request.user, [self.view_permission]) + + return super(ViewPermissionCheckMixin, self).dispatch(request, *args, **kwargs) diff --git a/mayan/apps/common/models.py b/mayan/apps/common/models.py index b79c1d5117..58e74cbb48 100644 --- a/mayan/apps/common/models.py +++ b/mayan/apps/common/models.py @@ -1,13 +1,24 @@ -from __future__ import absolute_import +from __future__ import unicode_literals -from django.db import models -from django.utils.translation import ugettext_lazy as _ -from django.utils.translation import ugettext +from pytz import common_timezones + +from django.conf import settings from django.contrib.auth.models import User +from django.db import models +from django.utils.translation import ugettext +from django.utils.translation import ugettext_lazy as _ from solo.models import SingletonModel from .managers import AnonymousUserSingletonManager +from .runtime import shared_storage_backend + +SHARED_UPLOADED_FILE_PATH = 'shared_uploads' + + +def upload_to(instance, filename): + instance.filename = filename + return '/'.join([SHARED_UPLOADED_FILE_PATH, filename]) class AnonymousUserSingleton(SingletonModel): @@ -17,14 +28,44 @@ class AnonymousUserSingleton(SingletonModel): return ugettext('Anonymous user') class Meta: - verbose_name = _(u'anonymous user') - verbose_name_plural = _(u'anonymous user') + verbose_name = verbose_name_plural = _('Anonymous user') class AutoAdminSingleton(SingletonModel): - account = models.ForeignKey(User, null=True, blank=True, related_name='auto_admin_account', verbose_name=_(u'account')) - password = models.CharField(null=True, blank=True, verbose_name=_(u'password'), max_length=128) - password_hash = models.CharField(null=True, blank=True, verbose_name=_(u'password hash'), max_length=128) + account = models.ForeignKey(User, null=True, blank=True, related_name='auto_admin_account', verbose_name=_('Account')) + password = models.CharField(null=True, blank=True, verbose_name=_('Password'), max_length=128) + password_hash = models.CharField(null=True, blank=True, verbose_name=_('Password hash'), max_length=128) class Meta: - verbose_name = verbose_name_plural = _(u'auto admin properties') + verbose_name = verbose_name_plural = _('Auto admin properties') + + +class SharedUploadedFile(models.Model): + file = models.FileField(upload_to=upload_to, storage=shared_storage_backend, verbose_name=_('File')) + filename = models.CharField(max_length=255, verbose_name=_('Filename')) + datatime = models.DateTimeField(auto_now_add=True, verbose_name=_('Date time')) + + class Meta: + verbose_name = _('Shared uploaded file') + verbose_name_plural = _('Shared uploaded files') + + def __unicode__(self): + return self.filename + + def delete(self, *args, **kwargs): + self.file.storage.delete(self.file.path) + return super(SharedUploadedFile, self).delete(*args, **kwargs) + + +class UserLocaleProfile(models.Model): + user = models.OneToOneField(User, related_name='locale_profile', verbose_name=_('User')) + + timezone = models.CharField(choices=zip(common_timezones, common_timezones), max_length=48, verbose_name=_('Timezone')) + language = models.CharField(choices=settings.LANGUAGES, max_length=8, verbose_name=_('Language')) + + def __unicode__(self): + return unicode(self.user) + + class Meta: + verbose_name = _('User locale profile') + verbose_name_plural = _('User locale profiles') diff --git a/mayan/apps/common/runtime.py b/mayan/apps/common/runtime.py new file mode 100644 index 0000000000..44c2795f85 --- /dev/null +++ b/mayan/apps/common/runtime.py @@ -0,0 +1,5 @@ +from common.utils import load_backend + +from .settings import SHARED_STORAGE + +shared_storage_backend = load_backend(SHARED_STORAGE)() diff --git a/mayan/apps/common/serializers/better_yaml.py b/mayan/apps/common/serializers/better_yaml.py deleted file mode 100644 index 21a2ba56e9..0000000000 --- a/mayan/apps/common/serializers/better_yaml.py +++ /dev/null @@ -1,104 +0,0 @@ -# better_yaml.py - -""" -Customized YAML serializer, with more condensed and readable output. -Rather than producing a flat list of objects with the same three attributes: - - - fields: {...} - model: modelname - pk: 123 - -This serializer nests the data, grouping by model name, then indexing by -primary key. For example, instead of this output, as produced by the default -YAML serializer: - - - fields: {name: blue} - model: app.firstmodel - pk: 3 - - fields: {name: red} - model: app.firstmodel - pk: 1 - - fields: {name: green} - model: app.firstmodel - pk: 2 - - fields: {name: crumbly} - model: app.secondmodel - pk: 2 - - fields: {name: squishy} - model: app.secondmodel - pk: 1 - -You'll get this output: - - app.firstmodel: - 1: {name: red} - 2: {name: green} - 3: {name: blue} - app.secondmodel: - 1: {name: squishy} - 2: {name: crumbly} - -To use this customized serializer and deserializer, save this file -somewhere in your Django project, then add this to your settings.py: - - SERIALIZATION_MODULES = { - 'yaml': 'path.to.better_yaml', - } - -Note that this serializer is NOT compatible with the default Django -YAML serializer; this one uses nested dictionaries, while the default -one uses a flat list of object dicts. - -Requires PyYaml (http://pyyaml.org/), of course. -""" - -from StringIO import StringIO -import yaml - -from django.core.serializers.python import Deserializer as PythonDeserializer -from django.core.serializers.pyyaml import Serializer as YamlSerializer -from django.utils.encoding import smart_unicode - - -class Serializer (YamlSerializer): - """ - Serialize database objects as nested dicts, indexed first by - model name, then by primary key. - """ - def start_serialization(self): - self._current = None - self.objects = {} - - def end_object(self, obj): - model = smart_unicode(obj._meta) - pk = obj._get_pk_val() - - if model not in self.objects: - self.objects[model] = {} - - self.objects[model][pk] = self._current - self._current = None - - -def Deserializer(stream_or_string, **options): - """ - Deserialize a stream or string of YAML data, - as written by the Serializer above. - """ - if isinstance(stream_or_string, basestring): - stream = StringIO(stream_or_string) - else: - stream = stream_or_string - - # Reconstruct the flat object list as PythonDeserializer expects - # NOTE: This could choke on large data sets, since it - # constructs the flattened data list in memory - data = [] - for model, objects in yaml.load(stream).iteritems(): - # Add the model name back into each object dict - for pk, fields in objects.iteritems(): - data.append({'model': model, 'pk': pk, 'fields': fields}) - - # Deserialize the flattened data - for obj in PythonDeserializer(data, **options): - yield obj diff --git a/mayan/apps/common/settings.py b/mayan/apps/common/settings.py new file mode 100644 index 0000000000..111d831621 --- /dev/null +++ b/mayan/apps/common/settings.py @@ -0,0 +1,67 @@ +from __future__ import unicode_literals + +from django.contrib.auth.models import User +from django.utils.translation import ugettext_lazy as _ + +from smart_settings.api import register_setting + +TEMPORARY_DIRECTORY = register_setting( + namespace='common', + module='common.settings', + name='TEMPORARY_DIRECTORY', + global_name='COMMON_TEMPORARY_DIRECTORY', + default='/tmp', + description=_('Temporary directory used site wide to store thumbnails, previews and temporary files. If none is specified, one will be created using tempfile.mkdtemp()'), + exists=True +) + +register_setting( + namespace='common', + module='common.settings', + name='AUTO_CREATE_ADMIN', + global_name='COMMON_AUTO_CREATE_ADMIN', + default=True, +) + +register_setting( + namespace='common', + module='common.settings', + name='AUTO_ADMIN_USERNAME', + global_name='COMMON_AUTO_ADMIN_USERNAME', + default='admin', +) + +register_setting( + namespace='common', + module='common.settings', + name='AUTO_ADMIN_PASSWORD', + global_name='COMMON_AUTO_ADMIN_PASSWORD', + default=User.objects.make_random_password(), +) + +register_setting( + namespace='common', + module='common.settings', + name='LOGIN_METHOD', + global_name='COMMON_LOGIN_METHOD', + default='username', + description=_('Controls the mechanism used to authenticated user. Options are: username, email'), +) + +register_setting( + namespace='common', + module='common.settings', + name='ALLOW_ANONYMOUS_ACCESS', + global_name='COMMON_ALLOW_ANONYMOUS_ACCESS', + default=False, + description=_('Allow non authenticated users, access to all views'), +) + +register_setting( + namespace='common', + module='common.settings', + name='SHARED_STORAGE', + global_name='COMMON_SHARED_STORAGE', + default='storage.backends.filebasedstorage.FileBasedStorage', + description=_('A storage backend that all workers can use to share files.'), +) diff --git a/mayan/apps/common/migrations/0001_initial.py b/mayan/apps/common/south_migrations/0001_initial.py similarity index 100% rename from mayan/apps/common/migrations/0001_initial.py rename to mayan/apps/common/south_migrations/0001_initial.py diff --git a/mayan/apps/common/migrations/0002_auto__add_autoadminsingleton.py b/mayan/apps/common/south_migrations/0002_auto__add_autoadminsingleton.py similarity index 100% rename from mayan/apps/common/migrations/0002_auto__add_autoadminsingleton.py rename to mayan/apps/common/south_migrations/0002_auto__add_autoadminsingleton.py diff --git a/mayan/apps/common/migrations/0003_auto__del_field_autoadminsingleton_original_auto_admin_password__del_f.py b/mayan/apps/common/south_migrations/0003_auto__del_field_autoadminsingleton_original_auto_admin_password__del_f.py similarity index 100% rename from mayan/apps/common/migrations/0003_auto__del_field_autoadminsingleton_original_auto_admin_password__del_f.py rename to mayan/apps/common/south_migrations/0003_auto__del_field_autoadminsingleton_original_auto_admin_password__del_f.py diff --git a/mayan/apps/common/migrations/0004_auto__del_field_autoadminsingleton_auto_admin_password__del_field_auto.py b/mayan/apps/common/south_migrations/0004_auto__del_field_autoadminsingleton_auto_admin_password__del_field_auto.py similarity index 100% rename from mayan/apps/common/migrations/0004_auto__del_field_autoadminsingleton_auto_admin_password__del_field_auto.py rename to mayan/apps/common/south_migrations/0004_auto__del_field_autoadminsingleton_auto_admin_password__del_field_auto.py diff --git a/mayan/apps/common/migrations/0005_auto__del_field_autoadminsingleton_lock_id__del_field_anonymoususersin.py b/mayan/apps/common/south_migrations/0005_auto__del_field_autoadminsingleton_lock_id__del_field_anonymoususersin.py similarity index 100% rename from mayan/apps/common/migrations/0005_auto__del_field_autoadminsingleton_lock_id__del_field_anonymoususersin.py rename to mayan/apps/common/south_migrations/0005_auto__del_field_autoadminsingleton_lock_id__del_field_anonymoususersin.py diff --git a/mayan/apps/common/south_migrations/0006_auto__add_shareduploadedfile.py b/mayan/apps/common/south_migrations/0006_auto__add_shareduploadedfile.py new file mode 100644 index 0000000000..c0d64bcf26 --- /dev/null +++ b/mayan/apps/common/south_migrations/0006_auto__add_shareduploadedfile.py @@ -0,0 +1,76 @@ +# -*- coding: utf-8 -*- +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding model 'SharedUploadedFile' + db.create_table(u'common_shareduploadedfile', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('file', self.gf('django.db.models.fields.files.FileField')(max_length=100)), + )) + db.send_create_signal(u'common', ['SharedUploadedFile']) + + def backwards(self, orm): + # Deleting model 'SharedUploadedFile' + db.delete_table(u'common_shareduploadedfile') + + models = { + u'auth.group': { + 'Meta': {'object_name': 'Group'}, + u'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': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + u'auth.permission': { + 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + u'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', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), + u'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', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + u'common.anonymoususersingleton': { + 'Meta': {'object_name': 'AnonymousUserSingleton'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + u'common.autoadminsingleton': { + 'Meta': {'object_name': 'AutoAdminSingleton'}, + 'account': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'auto_admin_account'", 'null': 'True', 'to': u"orm['auth.User']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), + 'password_hash': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}) + }, + u'common.shareduploadedfile': { + 'Meta': {'object_name': 'SharedUploadedFile'}, + 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + u'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'}), + u'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'}) + } + } + + complete_apps = ['common'] diff --git a/mayan/apps/common/south_migrations/0007_auto__add_field_shareduploadedfile_filename.py b/mayan/apps/common/south_migrations/0007_auto__add_field_shareduploadedfile_filename.py new file mode 100644 index 0000000000..a835618ad5 --- /dev/null +++ b/mayan/apps/common/south_migrations/0007_auto__add_field_shareduploadedfile_filename.py @@ -0,0 +1,75 @@ +# -*- coding: utf-8 -*- +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'SharedUploadedFile.filename' + db.add_column(u'common_shareduploadedfile', 'filename', + self.gf('django.db.models.fields.CharField')(default='', max_length=255), + keep_default=False) + + def backwards(self, orm): + # Deleting field 'SharedUploadedFile.filename' + db.delete_column(u'common_shareduploadedfile', 'filename') + + models = { + u'auth.group': { + 'Meta': {'object_name': 'Group'}, + u'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': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + u'auth.permission': { + 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + u'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', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), + u'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', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + u'common.anonymoususersingleton': { + 'Meta': {'object_name': 'AnonymousUserSingleton'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + u'common.autoadminsingleton': { + 'Meta': {'object_name': 'AutoAdminSingleton'}, + 'account': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'auto_admin_account'", 'null': 'True', 'to': u"orm['auth.User']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), + 'password_hash': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}) + }, + u'common.shareduploadedfile': { + 'Meta': {'object_name': 'SharedUploadedFile'}, + 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + u'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'}), + u'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'}) + } + } + + complete_apps = ['common'] diff --git a/mayan/apps/common/south_migrations/0008_auto__add_field_shareduploadedfile_datatime.py b/mayan/apps/common/south_migrations/0008_auto__add_field_shareduploadedfile_datatime.py new file mode 100644 index 0000000000..8548c50407 --- /dev/null +++ b/mayan/apps/common/south_migrations/0008_auto__add_field_shareduploadedfile_datatime.py @@ -0,0 +1,77 @@ +# -*- coding: utf-8 -*- +from south.utils import datetime_utils as 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 'SharedUploadedFile.datatime' + db.add_column(u'common_shareduploadedfile', 'datatime', + self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, default=datetime.datetime(2014, 10, 29, 0, 0), blank=True), + keep_default=False) + + def backwards(self, orm): + # Deleting field 'SharedUploadedFile.datatime' + db.delete_column(u'common_shareduploadedfile', 'datatime') + + models = { + u'auth.group': { + 'Meta': {'object_name': 'Group'}, + u'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': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + u'auth.permission': { + 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + u'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', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), + u'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', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + u'common.anonymoususersingleton': { + 'Meta': {'object_name': 'AnonymousUserSingleton'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + u'common.autoadminsingleton': { + 'Meta': {'object_name': 'AutoAdminSingleton'}, + 'account': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'auto_admin_account'", 'null': 'True', 'to': u"orm['auth.User']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), + 'password_hash': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}) + }, + u'common.shareduploadedfile': { + 'Meta': {'object_name': 'SharedUploadedFile'}, + 'datatime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + u'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'}), + u'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'}) + } + } + + complete_apps = ['common'] diff --git a/mayan/apps/common/south_migrations/0009_auto__add_userlocaleprofile.py b/mayan/apps/common/south_migrations/0009_auto__add_userlocaleprofile.py new file mode 100644 index 0000000000..030b9e3395 --- /dev/null +++ b/mayan/apps/common/south_migrations/0009_auto__add_userlocaleprofile.py @@ -0,0 +1,87 @@ +# -*- coding: utf-8 -*- +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding model 'UserLocaleProfile' + db.create_table(u'common_userlocaleprofile', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('user', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['auth.User'], unique=True)), + ('timezone', self.gf('django.db.models.fields.CharField')(max_length=48)), + ('language', self.gf('django.db.models.fields.CharField')(max_length=8)), + )) + db.send_create_signal(u'common', ['UserLocaleProfile']) + + def backwards(self, orm): + # Deleting model 'UserLocaleProfile' + db.delete_table(u'common_userlocaleprofile') + + models = { + u'auth.group': { + 'Meta': {'object_name': 'Group'}, + u'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': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + u'auth.permission': { + 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + u'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', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), + u'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', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + u'common.anonymoususersingleton': { + 'Meta': {'object_name': 'AnonymousUserSingleton'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + u'common.autoadminsingleton': { + 'Meta': {'object_name': 'AutoAdminSingleton'}, + 'account': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'auto_admin_account'", 'null': 'True', 'to': u"orm['auth.User']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), + 'password_hash': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}) + }, + u'common.shareduploadedfile': { + 'Meta': {'object_name': 'SharedUploadedFile'}, + 'datatime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + u'common.userlocaleprofile': { + 'Meta': {'object_name': 'UserLocaleProfile'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'language': ('django.db.models.fields.CharField', [], {'max_length': '8'}), + 'timezone': ('django.db.models.fields.CharField', [], {'max_length': '48'}), + 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': u"orm['auth.User']", 'unique': 'True'}) + }, + u'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'}), + u'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'}) + } + } + + complete_apps = ['common'] diff --git a/mayan/apps/common/south_migrations/0010_create_locale_profiles.py b/mayan/apps/common/south_migrations/0010_create_locale_profiles.py new file mode 100644 index 0000000000..2c8099d470 --- /dev/null +++ b/mayan/apps/common/south_migrations/0010_create_locale_profiles.py @@ -0,0 +1,89 @@ +# -*- coding: utf-8 -*- +from south.db import db +from south.v2 import DataMigration +from django.db import models + + +class Migration(DataMigration): + + def forwards(self, orm): + "Write your forwards methods here." + # Note: Don't use "from appname.models import ModelName". + # Use orm.ModelName to refer to models in this application, + # and orm['appname.ModelName'] for models in other applications. + + for user in orm['auth.user'].objects.all(): + try: + orm.UserLocaleProfile.objects.create(user=user) + except Exception: + pass + + def backwards(self, orm): + "Write your backwards methods here." + + models = { + u'auth.group': { + 'Meta': {'object_name': 'Group'}, + u'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': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + u'auth.permission': { + 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + u'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', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), + u'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', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + u'common.anonymoususersingleton': { + 'Meta': {'object_name': 'AnonymousUserSingleton'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + u'common.autoadminsingleton': { + 'Meta': {'object_name': 'AutoAdminSingleton'}, + 'account': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'auto_admin_account'", 'null': 'True', 'to': u"orm['auth.User']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), + 'password_hash': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}) + }, + u'common.shareduploadedfile': { + 'Meta': {'object_name': 'SharedUploadedFile'}, + 'datatime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + u'common.userlocaleprofile': { + 'Meta': {'object_name': 'UserLocaleProfile'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'language': ('django.db.models.fields.CharField', [], {'max_length': '8'}), + 'timezone': ('django.db.models.fields.CharField', [], {'max_length': '48'}), + 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'locale_profile'", 'unique': 'True', 'to': u"orm['auth.User']"}) + }, + u'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'}), + u'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'}) + } + } + + complete_apps = ['common', 'auth', 'common'] + symmetrical = True diff --git a/mayan/apps/bootstrap/management/commands/__init__.py b/mayan/apps/common/south_migrations/__init__.py similarity index 100% rename from mayan/apps/bootstrap/management/commands/__init__.py rename to mayan/apps/common/south_migrations/__init__.py diff --git a/mayan/apps/common/static/common/packages/pure-release-0.5.0/HISTORY.md b/mayan/apps/common/static/common/packages/pure-release-0.5.0/HISTORY.md new file mode 100644 index 0000000000..445de01bc4 --- /dev/null +++ b/mayan/apps/common/static/common/packages/pure-release-0.5.0/HISTORY.md @@ -0,0 +1,413 @@ +Pure Change History +=================== + +0.5.0 (2014-05-27) +------------------ + +### Base + +* Added the `.pure-img` class name for make images scale with the viewport in + fluid layouts. + +### Grids + +* __[!]__ Removed `.pure-g-r` from core, in favor of a mobile-first responsive + grid system. ([#24][], [#267][]) + + To use the mobile-first grid system, you need to pull in `pure.css`, along + with `grids-responsive.css`. We also have `grids-responsive-old-ie.css` that + you can serve to IE < 9 users so that they can view a desktop-version of your + website: + + ```html + + + + + + + ``` + + Find out more about the new grid system at . + +### Tables + +* Switched cell padding in Tables from `px` to `em` units, and also increased + the amount of padding to `padding: 0.5em 1em`. + + +[#24]: https://github.com/yui/pure/issues/24 +[#267]: https://github.com/yui/pure/pull/267 + + +0.4.2 (2014-02-13) +------------------ + +* Added `main` to Pure's `bower.json` file to allow easier integration with + build processes and tooling. ([#286][] @stevenvachon) + +### Forms + +* Improved how `` elements look in Chrome by fixing + paddings. ([#283][] @jpetto) + +* Removed `font-size` rules from ``, ``, and `
` + elements within `.pure-form`. Font sizes are now inherited from the + application's CSS file. ([#265][]) + +* Invalid `` elements within a Pure Form no longer explicitly set a + `border-width`. ([#295][] @kwando) + + +[#265]: https://github.com/yui/pure/issues/265 +[#283]: https://github.com/yui/pure/issues/283 +[#286]: https://github.com/yui/pure/issues/286 +[#295]: https://github.com/yui/pure/issues/295 + + +0.4.1 (2014-02-06) +------------------ + +### Base + +* Elements that have Pure classnames which set a `display` declaration _and_ use + the `hidden` HTML attribute will now properly be hidden. With these changes, + the following button will be hidden from view: + + ```html + + ``` + + A new rule for the `[hidden]` selector has been added with the declaration: + `display: none !important;`. This is a time where it's appropriate for a + project like Pure to use `!important`. ([#177][]) + +### Buttons + +* Removed all the occurrences of `-ms-linear-gradient()` from Buttons since it + has never been in the final version of IE 10. ([#200][]: @AurelioDeRosa) + +* `` Buttons now have the same height as non-input buttons. + `font-family: inherit;` has been added to the `.pure-button` selector to + normalize the difference in height. ([#221][] @narcis-radu) + +* Buttons now have visually uniform default `padding` on all four sides. The + left/right padding is 2x the top/bottom padding. ([#191][] @achalv) + +### Forms + +* Added `vertical-align: top;` to ` - Write here a long text - - - - - - - -
- -
-

Messages

-
-
-
-

Error message

-
-
-

Warning message

-
-
-

Notice message

-
-
-
-
-
- -
- -
-

2 columns forms

-
-
-
-
-
- - -
-
- - -
-
-
-
- - -
-
- -
- -
-
- -
-
-
- -
- -
-
- -
-
-
-
- -
-
-
-
- -
- -
-

Lists

-
-
    -
  • -
    - avatar -
    -
    -

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

    -
    -
  • -
  • -
    - avatar -
    -
    -

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

    -
    -
  • -
  • -
    - avatar -
    -
    -

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

    -
    -
  • -
-
-
-
- - - - -
-

Web App Theme

-
-

Login Box

- -
- -
-

Sign up

-
-
-
-
- -
-
- - Ex: web-app-theme -
-
-
-
- -
-
- - Ex: test@example.com -
-
-
-
- -
-
- - Must contains the word 'yeah' -
-
- -
- - - Ex: a simple text -
-
- - - Ex: a simple text -
- -
-
-
-
- - - - diff --git a/mayan/apps/web_theme/static/web_theme_media/javascripts/jquery-1.3.min.js b/mayan/apps/web_theme/static/web_theme_media/javascripts/jquery-1.3.min.js deleted file mode 100644 index 396646c842..0000000000 --- a/mayan/apps/web_theme/static/web_theme_media/javascripts/jquery-1.3.min.js +++ /dev/null @@ -1,19 +0,0 @@ -/* - * jQuery JavaScript Library v1.3 - * http://jquery.com/ - * - * Copyright (c) 2009 John Resig - * Dual licensed under the MIT and GPL licenses. - * http://docs.jquery.com/License - * - * Date: 2009-01-13 12:50:31 -0500 (Tue, 13 Jan 2009) - * Revision: 6104 - */ -(function(){var l=this,g,x=l.jQuery,o=l.$,n=l.jQuery=l.$=function(D,E){return new n.fn.init(D,E)},C=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;n.fn=n.prototype={init:function(D,G){D=D||document;if(D.nodeType){this[0]=D;this.length=1;this.context=D;return this}if(typeof D==="string"){var F=C.exec(D);if(F&&(F[1]||!G)){if(F[1]){D=n.clean([F[1]],G)}else{var H=document.getElementById(F[3]);if(H){if(H.id!=F[3]){return n().find(D)}var E=n(H);E.context=document;E.selector=D;return E}D=[]}}else{return n(G).find(D)}}else{if(n.isFunction(D)){return n(document).ready(D)}}if(D.selector&&D.context){this.selector=D.selector;this.context=D.context}return this.setArray(n.makeArray(D))},selector:"",jquery:"1.3",size:function(){return this.length},get:function(D){return D===g?n.makeArray(this):this[D]},pushStack:function(E,G,D){var F=n(E);F.prevObject=this;F.context=this.context;if(G==="find"){F.selector=this.selector+(this.selector?" ":"")+D}else{if(G){F.selector=this.selector+"."+G+"("+D+")"}}return F},setArray:function(D){this.length=0;Array.prototype.push.apply(this,D);return this},each:function(E,D){return n.each(this,E,D)},index:function(D){return n.inArray(D&&D.jquery?D[0]:D,this)},attr:function(E,G,F){var D=E;if(typeof E==="string"){if(G===g){return this[0]&&n[F||"attr"](this[0],E)}else{D={};D[E]=G}}return this.each(function(H){for(E in D){n.attr(F?this.style:this,E,n.prop(this,D[E],F,H,E))}})},css:function(D,E){if((D=="width"||D=="height")&&parseFloat(E)<0){E=g}return this.attr(D,E,"curCSS")},text:function(E){if(typeof E!=="object"&&E!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(E))}var D="";n.each(E||this,function(){n.each(this.childNodes,function(){if(this.nodeType!=8){D+=this.nodeType!=1?this.nodeValue:n.fn.text([this])}})});return D},wrapAll:function(D){if(this[0]){var E=n(D,this[0].ownerDocument).clone();if(this[0].parentNode){E.insertBefore(this[0])}E.map(function(){var F=this;while(F.firstChild){F=F.firstChild}return F}).append(this)}return this},wrapInner:function(D){return this.each(function(){n(this).contents().wrapAll(D)})},wrap:function(D){return this.each(function(){n(this).wrapAll(D)})},append:function(){return this.domManip(arguments,true,function(D){if(this.nodeType==1){this.appendChild(D)}})},prepend:function(){return this.domManip(arguments,true,function(D){if(this.nodeType==1){this.insertBefore(D,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(D){this.parentNode.insertBefore(D,this)})},after:function(){return this.domManip(arguments,false,function(D){this.parentNode.insertBefore(D,this.nextSibling)})},end:function(){return this.prevObject||n([])},push:[].push,find:function(D){if(this.length===1&&!/,/.test(D)){var F=this.pushStack([],"find",D);F.length=0;n.find(D,this[0],F);return F}else{var E=n.map(this,function(G){return n.find(D,G)});return this.pushStack(/[^+>] [^+>]/.test(D)?n.unique(E):E,"find",D)}},clone:function(E){var D=this.map(function(){if(!n.support.noCloneEvent&&!n.isXMLDoc(this)){var H=this.cloneNode(true),G=document.createElement("div");G.appendChild(H);return n.clean([G.innerHTML])[0]}else{return this.cloneNode(true)}});var F=D.find("*").andSelf().each(function(){if(this[h]!==g){this[h]=null}});if(E===true){this.find("*").andSelf().each(function(H){if(this.nodeType==3){return}var G=n.data(this,"events");for(var J in G){for(var I in G[J]){n.event.add(F[H],J,G[J][I],G[J][I].data)}}})}return D},filter:function(D){return this.pushStack(n.isFunction(D)&&n.grep(this,function(F,E){return D.call(F,E)})||n.multiFilter(D,n.grep(this,function(E){return E.nodeType===1})),"filter",D)},closest:function(D){var E=n.expr.match.POS.test(D)?n(D):null;return this.map(function(){var F=this;while(F&&F.ownerDocument){if(E?E.index(F)>-1:n(F).is(D)){return F}F=F.parentNode}})},not:function(D){if(typeof D==="string"){if(f.test(D)){return this.pushStack(n.multiFilter(D,this,true),"not",D)}else{D=n.multiFilter(D,this)}}var E=D.length&&D[D.length-1]!==g&&!D.nodeType;return this.filter(function(){return E?n.inArray(this,D)<0:this!=D})},add:function(D){return this.pushStack(n.unique(n.merge(this.get(),typeof D==="string"?n(D):n.makeArray(D))))},is:function(D){return !!D&&n.multiFilter(D,this).length>0},hasClass:function(D){return !!D&&this.is("."+D)},val:function(J){if(J===g){var D=this[0];if(D){if(n.nodeName(D,"option")){return(D.attributes.value||{}).specified?D.value:D.text}if(n.nodeName(D,"select")){var H=D.selectedIndex,K=[],L=D.options,G=D.type=="select-one";if(H<0){return null}for(var E=G?H:0,I=G?H+1:L.length;E=0||n.inArray(this.name,J)>=0)}else{if(n.nodeName(this,"select")){var M=n.makeArray(J);n("option",this).each(function(){this.selected=(n.inArray(this.value,M)>=0||n.inArray(this.text,M)>=0)});if(!M.length){this.selectedIndex=-1}}else{this.value=J}}})},html:function(D){return D===g?(this[0]?this[0].innerHTML:null):this.empty().append(D)},replaceWith:function(D){return this.after(D).remove()},eq:function(D){return this.slice(D,+D+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(D){return this.pushStack(n.map(this,function(F,E){return D.call(F,E,F)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=n.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild,D=this.length>1?I.cloneNode(true):I;if(H){for(var G=0,E=this.length;G0?D.cloneNode(true):I)}}if(F){n.each(F,y)}}return this;function K(N,O){return M&&n.nodeName(N,"table")&&n.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};n.fn.init.prototype=n.fn;function y(D,E){if(E.src){n.ajax({url:E.src,async:false,dataType:"script"})}else{n.globalEval(E.text||E.textContent||E.innerHTML||"")}if(E.parentNode){E.parentNode.removeChild(E)}}function e(){return +new Date}n.extend=n.fn.extend=function(){var I=arguments[0]||{},G=1,H=arguments.length,D=false,F;if(typeof I==="boolean"){D=I;I=arguments[1]||{};G=2}if(typeof I!=="object"&&!n.isFunction(I)){I={}}if(H==G){I=this;--G}for(;G-1}},swap:function(G,F,H){var D={};for(var E in F){D[E]=G.style[E];G.style[E]=F[E]}H.call(G);for(var E in F){G.style[E]=D[E]}},css:function(F,D,H){if(D=="width"||D=="height"){var J,E={position:"absolute",visibility:"hidden",display:"block"},I=D=="width"?["Left","Right"]:["Top","Bottom"];function G(){J=D=="width"?F.offsetWidth:F.offsetHeight;var L=0,K=0;n.each(I,function(){L+=parseFloat(n.curCSS(F,"padding"+this,true))||0;K+=parseFloat(n.curCSS(F,"border"+this+"Width",true))||0});J-=Math.round(L+K)}if(n(F).is(":visible")){G()}else{n.swap(F,E,G)}return Math.max(0,J)}return n.curCSS(F,D,H)},curCSS:function(H,E,F){var K,D=H.style;if(E=="opacity"&&!n.support.opacity){K=n.attr(D,"opacity");return K==""?"1":K}if(E.match(/float/i)){E=v}if(!F&&D&&D[E]){K=D[E]}else{if(p.getComputedStyle){if(E.match(/float/i)){E="float"}E=E.replace(/([A-Z])/g,"-$1").toLowerCase();var L=p.getComputedStyle(H,null);if(L){K=L.getPropertyValue(E)}if(E=="opacity"&&K==""){K="1"}}else{if(H.currentStyle){var I=E.replace(/\-(\w)/g,function(M,N){return N.toUpperCase()});K=H.currentStyle[E]||H.currentStyle[I];if(!/^\d+(px)?$/i.test(K)&&/^\d/.test(K)){var G=D.left,J=H.runtimeStyle.left;H.runtimeStyle.left=H.currentStyle.left;D.left=K||0;K=D.pixelLeft+"px";D.left=G;H.runtimeStyle.left=J}}}}return K},clean:function(E,J,H){J=J||document;if(typeof J.createElement==="undefined"){J=J.ownerDocument||J[0]&&J[0].ownerDocument||document}if(!H&&E.length===1&&typeof E[0]==="string"){var G=/^<(\w+)\s*\/?>$/.exec(E[0]);if(G){return[J.createElement(G[1])]}}var F=[],D=[],K=J.createElement("div");n.each(E,function(O,Q){if(typeof Q==="number"){Q+=""}if(!Q){return}if(typeof Q==="string"){Q=Q.replace(/(<(\w+)[^>]*?)\/>/g,function(S,T,R){return R.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?S:T+">"});var N=n.trim(Q).toLowerCase();var P=!N.indexOf("",""]||!N.indexOf("","
"]||N.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
"]||!N.indexOf("",""]||(!N.indexOf("",""]||!N.indexOf("",""]||!n.support.htmlSerialize&&[1,"div
","
"]||[0,"",""];K.innerHTML=P[1]+Q+P[2];while(P[0]--){K=K.lastChild}if(!n.support.tbody){var M=!N.indexOf(""&&N.indexOf("=0;--L){if(n.nodeName(M[L],"tbody")&&!M[L].childNodes.length){M[L].parentNode.removeChild(M[L])}}}if(!n.support.leadingWhitespace&&/^\s/.test(Q)){K.insertBefore(J.createTextNode(Q.match(/^\s*/)[0]),K.firstChild)}Q=n.makeArray(K.childNodes)}if(Q.nodeType){F.push(Q)}else{F=n.merge(F,Q)}});if(H){for(var I=0;F[I];I++){if(n.nodeName(F[I],"script")&&(!F[I].type||F[I].type.toLowerCase()==="text/javascript")){D.push(F[I].parentNode?F[I].parentNode.removeChild(F[I]):F[I])}else{if(F[I].nodeType===1){F.splice.apply(F,[I+1,0].concat(n.makeArray(F[I].getElementsByTagName("script"))))}H.appendChild(F[I])}}return D}return F},attr:function(I,F,J){if(!I||I.nodeType==3||I.nodeType==8){return g}var G=!n.isXMLDoc(I),K=J!==g;F=G&&n.props[F]||F;if(I.tagName){var E=/href|src|style/.test(F);if(F=="selected"&&I.parentNode){I.parentNode.selectedIndex}if(F in I&&G&&!E){if(K){if(F=="type"&&n.nodeName(I,"input")&&I.parentNode){throw"type property can't be changed"}I[F]=J}if(n.nodeName(I,"form")&&I.getAttributeNode(F)){return I.getAttributeNode(F).nodeValue}if(F=="tabIndex"){var H=I.getAttributeNode("tabIndex");return H&&H.specified?H.value:I.nodeName.match(/^(a|area|button|input|object|select|textarea)$/i)?0:g}return I[F]}if(!n.support.style&&G&&F=="style"){return n.attr(I.style,"cssText",J)}if(K){I.setAttribute(F,""+J)}var D=!n.support.hrefNormalized&&G&&E?I.getAttribute(F,2):I.getAttribute(F);return D===null?g:D}if(!n.support.opacity&&F=="opacity"){if(K){I.zoom=1;I.filter=(I.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(J)+""=="NaN"?"":"alpha(opacity="+J*100+")")}return I.filter&&I.filter.indexOf("opacity=")>=0?(parseFloat(I.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}F=F.replace(/-([a-z])/ig,function(L,M){return M.toUpperCase()});if(K){I[F]=J}return I[F]},trim:function(D){return(D||"").replace(/^\s+|\s+$/g,"")},makeArray:function(F){var D=[];if(F!=null){var E=F.length;if(E==null||typeof F==="string"||n.isFunction(F)||F.setInterval){D[0]=F}else{while(E){D[--E]=F[E]}}}return D},inArray:function(F,G){for(var D=0,E=G.length;D*",this).remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(D,E){n.fn[D]=function(){return this.each(E,arguments)}});function j(D,E){return D[0]&&parseInt(n.curCSS(D[0],E,true),10)||0}var h="jQuery"+e(),u=0,z={};n.extend({cache:{},data:function(E,D,F){E=E==l?z:E;var G=E[h];if(!G){G=E[h]=++u}if(D&&!n.cache[G]){n.cache[G]={}}if(F!==g){n.cache[G][D]=F}return D?n.cache[G][D]:G},removeData:function(E,D){E=E==l?z:E;var G=E[h];if(D){if(n.cache[G]){delete n.cache[G][D];D="";for(D in n.cache[G]){break}if(!D){n.removeData(E)}}}else{try{delete E[h]}catch(F){if(E.removeAttribute){E.removeAttribute(h)}}delete n.cache[G]}},queue:function(E,D,G){if(E){D=(D||"fx")+"queue";var F=n.data(E,D);if(!F||n.isArray(G)){F=n.data(E,D,n.makeArray(G))}else{if(G){F.push(G)}}}return F},dequeue:function(G,F){var D=n.queue(G,F),E=D.shift();if(!F||F==="fx"){E=D[0]}if(E!==g){E.call(G)}}});n.fn.extend({data:function(D,F){var G=D.split(".");G[1]=G[1]?"."+G[1]:"";if(F===g){var E=this.triggerHandler("getData"+G[1]+"!",[G[0]]);if(E===g&&this.length){E=n.data(this[0],D)}return E===g&&G[1]?this.data(G[0]):E}else{return this.trigger("setData"+G[1]+"!",[G[0],F]).each(function(){n.data(this,D,F)})}},removeData:function(D){return this.each(function(){n.removeData(this,D)})},queue:function(D,E){if(typeof D!=="string"){E=D;D="fx"}if(E===g){return n.queue(this[0],D)}return this.each(function(){var F=n.queue(this,D,E);if(D=="fx"&&F.length==1){F[0].call(this)}})},dequeue:function(D){return this.each(function(){n.dequeue(this,D)})}}); -/* - * Sizzle CSS Selector Engine - v0.9.1 - * Copyright 2009, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * More information: http://sizzlejs.com/ - */ -(function(){var N=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|[^[\]]+)+\]|\\.|[^ >+~,(\[]+)+|[>+~])(\s*,\s*)?/g,I=0,F=Object.prototype.toString;var E=function(ae,S,aa,V){aa=aa||[];S=S||document;if(S.nodeType!==1&&S.nodeType!==9){return[]}if(!ae||typeof ae!=="string"){return aa}var ab=[],ac,Y,ah,ag,Z,R,Q=true;N.lastIndex=0;while((ac=N.exec(ae))!==null){ab.push(ac[1]);if(ac[2]){R=RegExp.rightContext;break}}if(ab.length>1&&G.match.POS.exec(ae)){if(ab.length===2&&G.relative[ab[0]]){var U="",X;while((X=G.match.POS.exec(ae))){U+=X[0];ae=ae.replace(G.match.POS,"")}Y=E.filter(U,E(/\s$/.test(ae)?ae+"*":ae,S))}else{Y=G.relative[ab[0]]?[S]:E(ab.shift(),S);while(ab.length){var P=[];ae=ab.shift();if(G.relative[ae]){ae+=ab.shift()}for(var af=0,ad=Y.length;af0){ah=D(Y)}else{Q=false}while(ab.length){var T=ab.pop(),W=T;if(!G.relative[T]){T=""}else{W=ab.pop()}if(W==null){W=S}G.relative[T](ah,W,M(S))}}if(!ah){ah=Y}if(!ah){throw"Syntax error, unrecognized expression: "+(T||ae)}if(F.call(ah)==="[object Array]"){if(!Q){aa.push.apply(aa,ah)}else{if(S.nodeType===1){for(var af=0;ah[af]!=null;af++){if(ah[af]&&(ah[af]===true||ah[af].nodeType===1&&H(S,ah[af]))){aa.push(Y[af])}}}else{for(var af=0;ah[af]!=null;af++){if(ah[af]&&ah[af].nodeType===1){aa.push(Y[af])}}}}}else{D(ah,aa)}if(R){E(R,S,aa,V)}return aa};E.matches=function(P,Q){return E(P,null,null,Q)};E.find=function(V,S){var W,Q;if(!V){return[]}for(var R=0,P=G.order.length;R":function(U,Q,V){if(typeof Q==="string"&&!/\W/.test(Q)){Q=V?Q:Q.toUpperCase();for(var R=0,P=U.length;R=0){if(!R){P.push(Q[T])}}else{if(R){Q[T]=false}}}return false},ID:function(P){return P[1].replace(/\\/g,"")},TAG:function(Q,P){for(var R=0;!P[R];R++){}return M(P[R])?Q[1]:Q[1].toUpperCase()},CHILD:function(P){if(P[1]=="nth"){var Q=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(P[2]=="even"&&"2n"||P[2]=="odd"&&"2n+1"||!/\D/.test(P[2])&&"0n+"+P[2]||P[2]);P[2]=(Q[1]+(Q[2]||1))-0;P[3]=Q[3]-0}P[0]="done"+(I++);return P},ATTR:function(Q){var P=Q[1];if(G.attrMap[P]){Q[1]=G.attrMap[P]}if(Q[2]==="~="){Q[4]=" "+Q[4]+" "}return Q},PSEUDO:function(T,Q,R,P,U){if(T[1]==="not"){if(T[3].match(N).length>1){T[3]=E(T[3],null,null,Q)}else{var S=E.filter(T[3],Q,R,true^U);if(!R){P.push.apply(P,S)}return false}}else{if(G.match.POS.test(T[0])){return true}}return T},POS:function(P){P.unshift(true);return P}},filters:{enabled:function(P){return P.disabled===false&&P.type!=="hidden"},disabled:function(P){return P.disabled===true},checked:function(P){return P.checked===true},selected:function(P){P.parentNode.selectedIndex;return P.selected===true},parent:function(P){return !!P.firstChild},empty:function(P){return !P.firstChild},has:function(R,Q,P){return !!E(P[3],R).length},header:function(P){return/h\d/i.test(P.nodeName)},text:function(P){return"text"===P.type},radio:function(P){return"radio"===P.type},checkbox:function(P){return"checkbox"===P.type},file:function(P){return"file"===P.type},password:function(P){return"password"===P.type},submit:function(P){return"submit"===P.type},image:function(P){return"image"===P.type},reset:function(P){return"reset"===P.type},button:function(P){return"button"===P.type||P.nodeName.toUpperCase()==="BUTTON"},input:function(P){return/input|select|textarea|button/i.test(P.nodeName)}},setFilters:{first:function(Q,P){return P===0},last:function(R,Q,P,S){return Q===S.length-1},even:function(Q,P){return P%2===0},odd:function(Q,P){return P%2===1},lt:function(R,Q,P){return QP[3]-0},nth:function(R,Q,P){return P[3]-0==Q},eq:function(R,Q,P){return P[3]-0==Q}},filter:{CHILD:function(P,S){var V=S[1],W=P.parentNode;var U="child"+W.childNodes.length;if(W&&(!W[U]||!P.nodeIndex)){var T=1;for(var Q=W.firstChild;Q;Q=Q.nextSibling){if(Q.nodeType==1){Q.nodeIndex=T++}}W[U]=T-1}if(V=="first"){return P.nodeIndex==1}else{if(V=="last"){return P.nodeIndex==W[U]}else{if(V=="only"){return W[U]==1}else{if(V=="nth"){var Y=false,R=S[2],X=S[3];if(R==1&&X==0){return true}if(R==0){if(P.nodeIndex==X){Y=true}}else{if((P.nodeIndex-X)%R==0&&(P.nodeIndex-X)/R>=0){Y=true}}return Y}}}}},PSEUDO:function(V,R,S,W){var Q=R[1],T=G.filters[Q];if(T){return T(V,S,R,W)}else{if(Q==="contains"){return(V.textContent||V.innerText||"").indexOf(R[3])>=0}else{if(Q==="not"){var U=R[3];for(var S=0,P=U.length;S=0:S==="~="?(" "+U+" ").indexOf(Q)>=0:!R[4]?P:S==="!="?U!=Q:S==="^="?U.indexOf(Q)===0:S==="$="?U.substr(U.length-Q.length)===Q:S==="|="?U===Q||U.substr(0,Q.length+1)===Q+"-":false},POS:function(T,Q,R,U){var P=Q[2],S=G.setFilters[P];if(S){return S(T,R,Q,U)}}}};for(var K in G.match){G.match[K]=RegExp(G.match[K].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var D=function(Q,P){Q=Array.prototype.slice.call(Q);if(P){P.push.apply(P,Q);return P}return Q};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(J){D=function(T,S){var Q=S||[];if(F.call(T)==="[object Array]"){Array.prototype.push.apply(Q,T)}else{if(typeof T.length==="number"){for(var R=0,P=T.length;R";var P=document.documentElement;P.insertBefore(Q,P.firstChild);if(!!document.getElementById(R)){G.find.ID=function(T,U){if(U.getElementById){var S=U.getElementById(T[1]);return S?S.id===T[1]||S.getAttributeNode&&S.getAttributeNode("id").nodeValue===T[1]?[S]:g:[]}};G.filter.ID=function(U,S){var T=U.getAttributeNode&&U.getAttributeNode("id");return U.nodeType===1&&T&&T.nodeValue===S}}P.removeChild(Q)})();(function(){var P=document.createElement("div");P.appendChild(document.createComment(""));if(P.getElementsByTagName("*").length>0){G.find.TAG=function(Q,U){var T=U.getElementsByTagName(Q[1]);if(Q[1]==="*"){var S=[];for(var R=0;T[R];R++){if(T[R].nodeType===1){S.push(T[R])}}T=S}return T}}P.innerHTML="";if(P.firstChild.getAttribute("href")!=="#"){G.attrHandle.href=function(Q){return Q.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var P=E;E=function(T,S,Q,R){S=S||document;if(!R&&S.nodeType===9){try{return D(S.querySelectorAll(T),Q)}catch(U){}}return P(T,S,Q,R)};E.find=P.find;E.filter=P.filter;E.selectors=P.selectors;E.matches=P.matches})()}if(document.documentElement.getElementsByClassName){G.order.splice(1,0,"CLASS");G.find.CLASS=function(P,Q){return Q.getElementsByClassName(P[1])}}function L(Q,W,V,Z,X,Y){for(var T=0,R=Z.length;T0){T=P;break}}}P=P[Q]}Y[S]=T}}}var H=document.compareDocumentPosition?function(Q,P){return Q.compareDocumentPosition(P)&16}:function(Q,P){return Q!==P&&(Q.contains?Q.contains(P):true)};var M=function(P){return P.documentElement&&!P.body||P.tagName&&P.ownerDocument&&!P.ownerDocument.body};n.find=E;n.filter=E.filter;n.expr=E.selectors;n.expr[":"]=n.expr.filters;E.selectors.filters.hidden=function(P){return"hidden"===P.type||n.css(P,"display")==="none"||n.css(P,"visibility")==="hidden"};E.selectors.filters.visible=function(P){return"hidden"!==P.type&&n.css(P,"display")!=="none"&&n.css(P,"visibility")!=="hidden"};E.selectors.filters.animated=function(P){return n.grep(n.timers,function(Q){return P===Q.elem}).length};n.multiFilter=function(R,P,Q){if(Q){R=":not("+R+")"}return E.matches(R,P)};n.dir=function(R,Q){var P=[],S=R[Q];while(S&&S!=document){if(S.nodeType==1){P.push(S)}S=S[Q]}return P};n.nth=function(T,P,R,S){P=P||1;var Q=0;for(;T;T=T[R]){if(T.nodeType==1&&++Q==P){break}}return T};n.sibling=function(R,Q){var P=[];for(;R;R=R.nextSibling){if(R.nodeType==1&&R!=Q){P.push(R)}}return P};return;l.Sizzle=E})();n.event={add:function(H,E,G,J){if(H.nodeType==3||H.nodeType==8){return}if(H.setInterval&&H!=l){H=l}if(!G.guid){G.guid=this.guid++}if(J!==g){var F=G;G=this.proxy(F);G.data=J}var D=n.data(H,"events")||n.data(H,"events",{}),I=n.data(H,"handle")||n.data(H,"handle",function(){return typeof n!=="undefined"&&!n.event.triggered?n.event.handle.apply(arguments.callee.elem,arguments):g});I.elem=H;n.each(E.split(/\s+/),function(L,M){var N=M.split(".");M=N.shift();G.type=N.slice().sort().join(".");var K=D[M];if(n.event.specialAll[M]){n.event.specialAll[M].setup.call(H,J,N)}if(!K){K=D[M]={};if(!n.event.special[M]||n.event.special[M].setup.call(H,J,N)===false){if(H.addEventListener){H.addEventListener(M,I,false)}else{if(H.attachEvent){H.attachEvent("on"+M,I)}}}}K[G.guid]=G;n.event.global[M]=true});H=null},guid:1,global:{},remove:function(J,G,I){if(J.nodeType==3||J.nodeType==8){return}var F=n.data(J,"events"),E,D;if(F){if(G===g||(typeof G==="string"&&G.charAt(0)==".")){for(var H in F){this.remove(J,H+(G||""))}}else{if(G.type){I=G.handler;G=G.type}n.each(G.split(/\s+/),function(L,N){var P=N.split(".");N=P.shift();var M=RegExp("(^|\\.)"+P.slice().sort().join(".*\\.")+"(\\.|$)");if(F[N]){if(I){delete F[N][I.guid]}else{for(var O in F[N]){if(M.test(F[N][O].type)){delete F[N][O]}}}if(n.event.specialAll[N]){n.event.specialAll[N].teardown.call(J,P)}for(E in F[N]){break}if(!E){if(!n.event.special[N]||n.event.special[N].teardown.call(J,P)===false){if(J.removeEventListener){J.removeEventListener(N,n.data(J,"handle"),false)}else{if(J.detachEvent){J.detachEvent("on"+N,n.data(J,"handle"))}}}E=null;delete F[N]}}})}for(E in F){break}if(!E){var K=n.data(J,"handle");if(K){K.elem=null}n.removeData(J,"events");n.removeData(J,"handle")}}},trigger:function(H,J,G,D){var F=H.type||H;if(!D){H=typeof H==="object"?H[h]?H:n.extend(n.Event(F),H):n.Event(F);if(F.indexOf("!")>=0){H.type=F=F.slice(0,-1);H.exclusive=true}if(!G){H.stopPropagation();if(this.global[F]){n.each(n.cache,function(){if(this.events&&this.events[F]){n.event.trigger(H,J,this.handle.elem)}})}}if(!G||G.nodeType==3||G.nodeType==8){return g}H.result=g;H.target=G;J=n.makeArray(J);J.unshift(H)}H.currentTarget=G;var I=n.data(G,"handle");if(I){I.apply(G,J)}if((!G[F]||(n.nodeName(G,"a")&&F=="click"))&&G["on"+F]&&G["on"+F].apply(G,J)===false){H.result=false}if(!D&&G[F]&&!H.isDefaultPrevented()&&!(n.nodeName(G,"a")&&F=="click")){this.triggered=true;try{G[F]()}catch(K){}}this.triggered=false;if(!H.isPropagationStopped()){var E=G.parentNode||G.ownerDocument;if(E){n.event.trigger(H,J,E,true)}}},handle:function(J){var I,D;J=arguments[0]=n.event.fix(J||l.event);var K=J.type.split(".");J.type=K.shift();I=!K.length&&!J.exclusive;var H=RegExp("(^|\\.)"+K.slice().sort().join(".*\\.")+"(\\.|$)");D=(n.data(this,"events")||{})[J.type];for(var F in D){var G=D[F];if(I||H.test(G.type)){J.handler=G;J.data=G.data;var E=G.apply(this,arguments);if(E!==g){J.result=E;if(E===false){J.preventDefault();J.stopPropagation()}}if(J.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(G){if(G[h]){return G}var E=G;G=n.Event(E);for(var F=this.props.length,I;F;){I=this.props[--F];G[I]=E[I]}if(!G.target){G.target=G.srcElement||document}if(G.target.nodeType==3){G.target=G.target.parentNode}if(!G.relatedTarget&&G.fromElement){G.relatedTarget=G.fromElement==G.target?G.toElement:G.fromElement}if(G.pageX==null&&G.clientX!=null){var H=document.documentElement,D=document.body;G.pageX=G.clientX+(H&&H.scrollLeft||D&&D.scrollLeft||0)-(H.clientLeft||0);G.pageY=G.clientY+(H&&H.scrollTop||D&&D.scrollTop||0)-(H.clientTop||0)}if(!G.which&&((G.charCode||G.charCode===0)?G.charCode:G.keyCode)){G.which=G.charCode||G.keyCode}if(!G.metaKey&&G.ctrlKey){G.metaKey=G.ctrlKey}if(!G.which&&G.button){G.which=(G.button&1?1:(G.button&2?3:(G.button&4?2:0)))}return G},proxy:function(E,D){D=D||function(){return E.apply(this,arguments)};D.guid=E.guid=E.guid||D.guid||this.guid++;return D},special:{ready:{setup:A,teardown:function(){}}},specialAll:{live:{setup:function(D,E){n.event.add(this,E[0],c)},teardown:function(F){if(F.length){var D=0,E=RegExp("(^|\\.)"+F[0]+"(\\.|$)");n.each((n.data(this,"events").live||{}),function(){if(E.test(this.type)){D++}});if(D<1){n.event.remove(this,F[0],c)}}}}}};n.Event=function(D){if(!this.preventDefault){return new n.Event(D)}if(D&&D.type){this.originalEvent=D;this.type=D.type;this.timeStamp=D.timeStamp}else{this.type=D}if(!this.timeStamp){this.timeStamp=e()}this[h]=true};function k(){return false}function t(){return true}n.Event.prototype={preventDefault:function(){this.isDefaultPrevented=t;var D=this.originalEvent;if(!D){return}if(D.preventDefault){D.preventDefault()}D.returnValue=false},stopPropagation:function(){this.isPropagationStopped=t;var D=this.originalEvent;if(!D){return}if(D.stopPropagation){D.stopPropagation()}D.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=t;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(E){var D=E.relatedTarget;while(D&&D!=this){try{D=D.parentNode}catch(F){D=this}}if(D!=this){E.type=E.data;n.event.handle.apply(this,arguments)}};n.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(E,D){n.event.special[D]={setup:function(){n.event.add(this,E,a,D)},teardown:function(){n.event.remove(this,E,a)}}});n.fn.extend({bind:function(E,F,D){return E=="unload"?this.one(E,F,D):this.each(function(){n.event.add(this,E,D||F,D&&F)})},one:function(F,G,E){var D=n.event.proxy(E||G,function(H){n(this).unbind(H,D);return(E||G).apply(this,arguments)});return this.each(function(){n.event.add(this,F,D,E&&G)})},unbind:function(E,D){return this.each(function(){n.event.remove(this,E,D)})},trigger:function(D,E){return this.each(function(){n.event.trigger(D,E,this)})},triggerHandler:function(D,F){if(this[0]){var E=n.Event(D);E.preventDefault();E.stopPropagation();n.event.trigger(E,F,this[0]);return E.result}},toggle:function(F){var D=arguments,E=1;while(E=0){var D=F.slice(H,F.length);F=F.slice(0,H)}var G="GET";if(I){if(n.isFunction(I)){J=I;I=null}else{if(typeof I==="object"){I=n.param(I);G="POST"}}}var E=this;n.ajax({url:F,type:G,dataType:"html",data:I,complete:function(L,K){if(K=="success"||K=="notmodified"){E.html(D?n("
").append(L.responseText.replace(//g,"")).find(D):L.responseText)}if(J){E.each(J,[L.responseText,K,L])}}});return this},serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?n.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type))}).map(function(D,E){var F=n(this).val();return F==null?null:n.isArray(F)?n.map(F,function(H,G){return{name:E.name,value:H}}):{name:E.name,value:F}}).get()}});n.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(D,E){n.fn[E]=function(F){return this.bind(E,F)}});var q=e();n.extend({get:function(D,F,G,E){if(n.isFunction(F)){G=F;F=null}return n.ajax({type:"GET",url:D,data:F,success:G,dataType:E})},getScript:function(D,E){return n.get(D,null,E,"script")},getJSON:function(D,E,F){return n.get(D,E,F,"json")},post:function(D,F,G,E){if(n.isFunction(F)){G=F;F={}}return n.ajax({type:"POST",url:D,data:F,success:G,dataType:E})},ajaxSetup:function(D){n.extend(n.ajaxSettings,D)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(L){L=n.extend(true,L,n.extend(true,{},n.ajaxSettings,L));var V,E=/=\?(&|$)/g,Q,U,F=L.type.toUpperCase();if(L.data&&L.processData&&typeof L.data!=="string"){L.data=n.param(L.data)}if(L.dataType=="jsonp"){if(F=="GET"){if(!L.url.match(E)){L.url+=(L.url.match(/\?/)?"&":"?")+(L.jsonp||"callback")+"=?"}}else{if(!L.data||!L.data.match(E)){L.data=(L.data?L.data+"&":"")+(L.jsonp||"callback")+"=?"}}L.dataType="json"}if(L.dataType=="json"&&(L.data&&L.data.match(E)||L.url.match(E))){V="jsonp"+q++;if(L.data){L.data=(L.data+"").replace(E,"="+V+"$1")}L.url=L.url.replace(E,"="+V+"$1");L.dataType="script";l[V]=function(W){U=W;H();K();l[V]=g;try{delete l[V]}catch(X){}if(G){G.removeChild(S)}}}if(L.dataType=="script"&&L.cache==null){L.cache=false}if(L.cache===false&&F=="GET"){var D=e();var T=L.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+D+"$2");L.url=T+((T==L.url)?(L.url.match(/\?/)?"&":"?")+"_="+D:"")}if(L.data&&F=="GET"){L.url+=(L.url.match(/\?/)?"&":"?")+L.data;L.data=null}if(L.global&&!n.active++){n.event.trigger("ajaxStart")}var P=/^(\w+:)?\/\/([^\/?#]+)/.exec(L.url);if(L.dataType=="script"&&F=="GET"&&P&&(P[1]&&P[1]!=location.protocol||P[2]!=location.host)){var G=document.getElementsByTagName("head")[0];var S=document.createElement("script");S.src=L.url;if(L.scriptCharset){S.charset=L.scriptCharset}if(!V){var N=false;S.onload=S.onreadystatechange=function(){if(!N&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){N=true;H();K();G.removeChild(S)}}}G.appendChild(S);return g}var J=false;var I=L.xhr();if(L.username){I.open(F,L.url,L.async,L.username,L.password)}else{I.open(F,L.url,L.async)}try{if(L.data){I.setRequestHeader("Content-Type",L.contentType)}if(L.ifModified){I.setRequestHeader("If-Modified-Since",n.lastModified[L.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}I.setRequestHeader("X-Requested-With","XMLHttpRequest");I.setRequestHeader("Accept",L.dataType&&L.accepts[L.dataType]?L.accepts[L.dataType]+", */*":L.accepts._default)}catch(R){}if(L.beforeSend&&L.beforeSend(I,L)===false){if(L.global&&!--n.active){n.event.trigger("ajaxStop")}I.abort();return false}if(L.global){n.event.trigger("ajaxSend",[I,L])}var M=function(W){if(I.readyState==0){if(O){clearInterval(O);O=null;if(L.global&&!--n.active){n.event.trigger("ajaxStop")}}}else{if(!J&&I&&(I.readyState==4||W=="timeout")){J=true;if(O){clearInterval(O);O=null}Q=W=="timeout"?"timeout":!n.httpSuccess(I)?"error":L.ifModified&&n.httpNotModified(I,L.url)?"notmodified":"success";if(Q=="success"){try{U=n.httpData(I,L.dataType,L)}catch(Y){Q="parsererror"}}if(Q=="success"){var X;try{X=I.getResponseHeader("Last-Modified")}catch(Y){}if(L.ifModified&&X){n.lastModified[L.url]=X}if(!V){H()}}else{n.handleError(L,I,Q)}K();if(L.async){I=null}}}};if(L.async){var O=setInterval(M,13);if(L.timeout>0){setTimeout(function(){if(I){if(!J){M("timeout")}if(I){I.abort()}}},L.timeout)}}try{I.send(L.data)}catch(R){n.handleError(L,I,null,R)}if(!L.async){M()}function H(){if(L.success){L.success(U,Q)}if(L.global){n.event.trigger("ajaxSuccess",[I,L])}}function K(){if(L.complete){L.complete(I,Q)}if(L.global){n.event.trigger("ajaxComplete",[I,L])}if(L.global&&!--n.active){n.event.trigger("ajaxStop")}}return I},handleError:function(E,G,D,F){if(E.error){E.error(G,D,F)}if(E.global){n.event.trigger("ajaxError",[G,E,F])}},active:0,httpSuccess:function(E){try{return !E.status&&location.protocol=="file:"||(E.status>=200&&E.status<300)||E.status==304||E.status==1223}catch(D){}return false},httpNotModified:function(F,D){try{var G=F.getResponseHeader("Last-Modified");return F.status==304||G==n.lastModified[D]}catch(E){}return false},httpData:function(I,G,F){var E=I.getResponseHeader("content-type"),D=G=="xml"||!G&&E&&E.indexOf("xml")>=0,H=D?I.responseXML:I.responseText;if(D&&H.documentElement.tagName=="parsererror"){throw"parsererror"}if(F&&F.dataFilter){H=F.dataFilter(H,G)}if(typeof H==="string"){if(G=="script"){n.globalEval(H)}if(G=="json"){H=l["eval"]("("+H+")")}}return H},param:function(D){var F=[];function G(H,I){F[F.length]=encodeURIComponent(H)+"="+encodeURIComponent(I)}if(n.isArray(D)||D.jquery){n.each(D,function(){G(this.name,this.value)})}else{for(var E in D){if(n.isArray(D[E])){n.each(D[E],function(){G(E,this)})}else{G(E,n.isFunction(D[E])?D[E]():D[E])}}}return F.join("&").replace(/%20/g,"+")}});var m={},d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function s(E,D){var F={};n.each(d.concat.apply([],d.slice(0,D)),function(){F[this]=E});return F}n.fn.extend({show:function(I,K){if(I){return this.animate(s("show",3),I,K)}else{for(var G=0,E=this.length;G").appendTo("body");J=H.css("display");if(J==="none"){J="block"}H.remove();m[F]=J}this[G].style.display=n.data(this[G],"olddisplay",J)}}return this}},hide:function(G,H){if(G){return this.animate(s("hide",3),G,H)}else{for(var F=0,E=this.length;F=0;G--){if(F[G].elem==this){if(D){F[G](true)}F.splice(G,1)}}});if(!D){this.dequeue()}return this}});n.each({slideDown:s("show",1),slideUp:s("hide",1),slideToggle:s("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(D,E){n.fn[D]=function(F,G){return this.animate(E,F,G)}});n.extend({speed:function(F,G,E){var D=typeof F==="object"?F:{complete:E||!E&&G||n.isFunction(F)&&F,duration:F,easing:E&&G||G&&!n.isFunction(G)&&G};D.duration=n.fx.off?0:typeof D.duration==="number"?D.duration:n.fx.speeds[D.duration]||n.fx.speeds._default;D.old=D.complete;D.complete=function(){if(D.queue!==false){n(this).dequeue()}if(n.isFunction(D.old)){D.old.call(this)}};return D},easing:{linear:function(F,G,D,E){return D+E*F},swing:function(F,G,D,E){return((-Math.cos(F*Math.PI)/2)+0.5)*E+D}},timers:[],timerId:null,fx:function(E,D,F){this.options=D;this.elem=E;this.prop=F;if(!D.orig){D.orig={}}}});n.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(n.fx.step[this.prop]||n.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(E){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var D=parseFloat(n.css(this.elem,this.prop,E));return D&&D>-10000?D:parseFloat(n.curCSS(this.elem,this.prop))||0},custom:function(H,G,F){this.startTime=e();this.start=H;this.end=G;this.unit=F||this.unit||"px";this.now=this.start;this.pos=this.state=0;var D=this;function E(I){return D.step(I)}E.elem=this.elem;n.timers.push(E);if(E()&&n.timerId==null){n.timerId=setInterval(function(){var J=n.timers;for(var I=0;I=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var D=true;for(var E in this.options.curAnim){if(this.options.curAnim[E]!==true){D=false}}if(D){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(n.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){n(this.elem).hide()}if(this.options.hide||this.options.show){for(var H in this.options.curAnim){n.attr(this.elem.style,H,this.options.orig[H])}}}if(D){this.options.complete.call(this.elem)}return false}else{var I=F-this.startTime;this.state=I/this.options.duration;this.pos=n.easing[this.options.easing||(n.easing.swing?"swing":"linear")](this.state,I,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};n.extend(n.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(D){n.attr(D.elem.style,"opacity",D.now)},_default:function(D){if(D.elem.style&&D.elem.style[D.prop]!=null){D.elem.style[D.prop]=D.now+D.unit}else{D.elem[D.prop]=D.now}}}});if(document.documentElement.getBoundingClientRect){n.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return n.offset.bodyOffset(this[0])}var F=this[0].getBoundingClientRect(),I=this[0].ownerDocument,E=I.body,D=I.documentElement,K=D.clientTop||E.clientTop||0,J=D.clientLeft||E.clientLeft||0,H=F.top+(self.pageYOffset||n.boxModel&&D.scrollTop||E.scrollTop)-K,G=F.left+(self.pageXOffset||n.boxModel&&D.scrollLeft||E.scrollLeft)-J;return{top:H,left:G}}}else{n.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return n.offset.bodyOffset(this[0])}n.offset.initialized||n.offset.initialize();var I=this[0],F=I.offsetParent,E=I,N=I.ownerDocument,L,G=N.documentElement,J=N.body,K=N.defaultView,D=K.getComputedStyle(I,null),M=I.offsetTop,H=I.offsetLeft;while((I=I.parentNode)&&I!==J&&I!==G){L=K.getComputedStyle(I,null);M-=I.scrollTop,H-=I.scrollLeft;if(I===F){M+=I.offsetTop,H+=I.offsetLeft;if(n.offset.doesNotAddBorder&&!(n.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(I.tagName))){M+=parseInt(L.borderTopWidth,10)||0,H+=parseInt(L.borderLeftWidth,10)||0}E=F,F=I.offsetParent}if(n.offset.subtractsBorderForOverflowNotVisible&&L.overflow!=="visible"){M+=parseInt(L.borderTopWidth,10)||0,H+=parseInt(L.borderLeftWidth,10)||0}D=L}if(D.position==="relative"||D.position==="static"){M+=J.offsetTop,H+=J.offsetLeft}if(D.position==="fixed"){M+=Math.max(G.scrollTop,J.scrollTop),H+=Math.max(G.scrollLeft,J.scrollLeft)}return{top:M,left:H}}}n.offset={initialize:function(){if(this.initialized){return}var K=document.body,E=document.createElement("div"),G,F,M,H,L,D,I=K.style.marginTop,J='
';L={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(D in L){E.style[D]=L[D]}E.innerHTML=J;K.insertBefore(E,K.firstChild);G=E.firstChild,F=G.firstChild,H=G.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(F.offsetTop!==5);this.doesAddBorderForTableAndCells=(H.offsetTop===5);G.style.overflow="hidden",G.style.position="relative";this.subtractsBorderForOverflowNotVisible=(F.offsetTop===-5);K.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(K.offsetTop===0);K.style.marginTop=I;K.removeChild(E);this.initialized=true},bodyOffset:function(D){n.offset.initialized||n.offset.initialize();var F=D.offsetTop,E=D.offsetLeft;if(n.offset.doesNotIncludeMarginInBodyOffset){F+=parseInt(n.curCSS(D,"marginTop",true),10)||0,E+=parseInt(n.curCSS(D,"marginLeft",true),10)||0}return{top:F,left:E}}};n.fn.extend({position:function(){var H=0,G=0,E;if(this[0]){var F=this.offsetParent(),I=this.offset(),D=/^body|html$/i.test(F[0].tagName)?{top:0,left:0}:F.offset();I.top-=j(this,"marginTop");I.left-=j(this,"marginLeft");D.top+=j(F,"borderTopWidth");D.left+=j(F,"borderLeftWidth");E={top:I.top-D.top,left:I.left-D.left}}return E},offsetParent:function(){var D=this[0].offsetParent||document.body;while(D&&(!/^body|html$/i.test(D.tagName)&&n.css(D,"position")=="static")){D=D.offsetParent}return n(D)}});n.each(["Left","Top"],function(E,D){var F="scroll"+D;n.fn[F]=function(G){if(!this[0]){return null}return G!==g?this.each(function(){this==l||this==document?l.scrollTo(!E?G:n(l).scrollLeft(),E?G:n(l).scrollTop()):this[F]=G}):this[0]==l||this[0]==document?self[E?"pageYOffset":"pageXOffset"]||n.boxModel&&document.documentElement[F]||document.body[F]:this[0][F]}});n.each(["Height","Width"],function(G,E){var D=G?"Left":"Top",F=G?"Right":"Bottom";n.fn["inner"+E]=function(){return this[E.toLowerCase()]()+j(this,"padding"+D)+j(this,"padding"+F)};n.fn["outer"+E]=function(I){return this["inner"+E]()+j(this,"border"+D+"Width")+j(this,"border"+F+"Width")+(I?j(this,"margin"+D)+j(this,"margin"+F):0)};var H=E.toLowerCase();n.fn[H]=function(I){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+E]||document.body["client"+E]:this[0]==document?Math.max(document.documentElement["client"+E],document.body["scroll"+E],document.documentElement["scroll"+E],document.body["offset"+E],document.documentElement["offset"+E]):I===g?(this.length?n.css(this[0],H):null):this.css(H,typeof I==="string"?I:I+"px")}})})(); \ No newline at end of file diff --git a/mayan/apps/web_theme/static/web_theme_media/javascripts/jquery-1.5.2.min.js b/mayan/apps/web_theme/static/web_theme_media/javascripts/jquery-1.5.2.min.js deleted file mode 100644 index f78f96a12f..0000000000 --- a/mayan/apps/web_theme/static/web_theme_media/javascripts/jquery-1.5.2.min.js +++ /dev/null @@ -1,16 +0,0 @@ -/*! - * jQuery JavaScript Library v1.5.2 - * http://jquery.com/ - * - * Copyright 2011, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Thu Mar 31 15:28:23 2011 -0400 - */ -(function(a,b){function ci(a){return d.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cf(a){if(!b_[a]){var b=d("<"+a+">").appendTo("body"),c=b.css("display");b.remove();if(c==="none"||c==="")c="block";b_[a]=c}return b_[a]}function ce(a,b){var c={};d.each(cd.concat.apply([],cd.slice(0,b)),function(){c[this]=a});return c}function b$(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function bZ(){try{return new a.XMLHttpRequest}catch(b){}}function bY(){d(a).unload(function(){for(var a in bW)bW[a](0,1)})}function bS(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var e=a.dataTypes,f={},g,h,i=e.length,j,k=e[0],l,m,n,o,p;for(g=1;g=0===c})}function P(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function H(a,b){return(a&&a!=="*"?a+".":"")+b.replace(t,"`").replace(u,"&")}function G(a){var b,c,e,f,g,h,i,j,k,l,m,n,o,p=[],q=[],s=d._data(this,"events");if(a.liveFired!==this&&s&&s.live&&!a.target.disabled&&(!a.button||a.type!=="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var t=s.live.slice(0);for(i=0;ic)break;a.currentTarget=f.elem,a.data=f.handleObj.data,a.handleObj=f.handleObj,o=f.handleObj.origHandler.apply(f.elem,arguments);if(o===!1||a.isPropagationStopped()){c=f.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function E(a,c,e){var f=d.extend({},e[0]);f.type=a,f.originalEvent={},f.liveFired=b,d.event.handle.call(c,f),f.isDefaultPrevented()&&e[0].preventDefault()}function y(){return!0}function x(){return!1}function i(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function h(a,c,e){if(e===b&&a.nodeType===1){e=a.getAttribute("data-"+c);if(typeof e==="string"){try{e=e==="true"?!0:e==="false"?!1:e==="null"?null:d.isNaN(e)?g.test(e)?d.parseJSON(e):e:parseFloat(e)}catch(f){}d.data(a,c,e)}else e=b}return e}var c=a.document,d=function(){function G(){if(!d.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(G,1);return}d.ready()}}var d=function(a,b){return new d.fn.init(a,b,g)},e=a.jQuery,f=a.$,g,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,i=/\S/,j=/^\s+/,k=/\s+$/,l=/\d/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=navigator.userAgent,w,x,y,z=Object.prototype.toString,A=Object.prototype.hasOwnProperty,B=Array.prototype.push,C=Array.prototype.slice,D=String.prototype.trim,E=Array.prototype.indexOf,F={};d.fn=d.prototype={constructor:d,init:function(a,e,f){var g,i,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!e&&c.body){this.context=c,this[0]=c.body,this.selector="body",this.length=1;return this}if(typeof a==="string"){g=h.exec(a);if(!g||!g[1]&&e)return!e||e.jquery?(e||f).find(a):this.constructor(e).find(a);if(g[1]){e=e instanceof d?e[0]:e,k=e?e.ownerDocument||e:c,j=m.exec(a),j?d.isPlainObject(e)?(a=[c.createElement(j[1])],d.fn.attr.call(a,e,!0)):a=[k.createElement(j[1])]:(j=d.buildFragment([g[1]],[k]),a=(j.cacheable?d.clone(j.fragment):j.fragment).childNodes);return d.merge(this,a)}i=c.getElementById(g[2]);if(i&&i.parentNode){if(i.id!==g[2])return f.find(a);this.length=1,this[0]=i}this.context=c,this.selector=a;return this}if(d.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)},selector:"",jquery:"1.5.2",length:0,size:function(){return this.length},toArray:function(){return C.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var e=this.constructor();d.isArray(a)?B.apply(e,a):d.merge(e,a),e.prevObject=this,e.context=this.context,b==="find"?e.selector=this.selector+(this.selector?" ":"")+c:b&&(e.selector=this.selector+"."+b+"("+c+")");return e},each:function(a,b){return d.each(this,a,b)},ready:function(a){d.bindReady(),x.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(C.apply(this,arguments),"slice",C.call(arguments).join(","))},map:function(a){return this.pushStack(d.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:B,sort:[].sort,splice:[].splice},d.fn.init.prototype=d.fn,d.extend=d.fn.extend=function(){var a,c,e,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i==="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!=="object"&&!d.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;x.resolveWith(c,[d]),d.fn.trigger&&d(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!x){x=d._Deferred();if(c.readyState==="complete")return setTimeout(d.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",y,!1),a.addEventListener("load",d.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",y),a.attachEvent("onload",d.ready);var b=!1;try{b=a.frameElement==null}catch(e){}c.documentElement.doScroll&&b&&G()}}},isFunction:function(a){return d.type(a)==="function"},isArray:Array.isArray||function(a){return d.type(a)==="array"},isWindow:function(a){return a&&typeof a==="object"&&"setInterval"in a},isNaN:function(a){return a==null||!l.test(a)||isNaN(a)},type:function(a){return a==null?String(a):F[z.call(a)]||"object"},isPlainObject:function(a){if(!a||d.type(a)!=="object"||a.nodeType||d.isWindow(a))return!1;if(a.constructor&&!A.call(a,"constructor")&&!A.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a){}return c===b||A.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!=="string"||!b)return null;b=d.trim(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return a.JSON&&a.JSON.parse?a.JSON.parse(b):(new Function("return "+b))();d.error("Invalid JSON: "+b)},parseXML:function(b,c,e){a.DOMParser?(e=new DOMParser,c=e.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),e=c.documentElement,(!e||!e.nodeName||e.nodeName==="parsererror")&&d.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(a){if(a&&i.test(a)){var b=c.head||c.getElementsByTagName("head")[0]||c.documentElement,e=c.createElement("script");d.support.scriptEval()?e.appendChild(c.createTextNode(a)):e.text=a,b.insertBefore(e,b.firstChild),b.removeChild(e)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,e){var f,g=0,h=a.length,i=h===b||d.isFunction(a);if(e){if(i){for(f in a)if(c.apply(a[f],e)===!1)break}else for(;g1?f.call(arguments,0):c,--g||h.resolveWith(h,f.call(b,0))}}var b=arguments,c=0,e=b.length,g=e,h=e<=1&&a&&d.isFunction(a.promise)?a:d.Deferred();if(e>1){for(;c
a";var e=b.getElementsByTagName("*"),f=b.getElementsByTagName("a")[0],g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=b.getElementsByTagName("input")[0];if(e&&e.length&&f){d.support={leadingWhitespace:b.firstChild.nodeType===3,tbody:!b.getElementsByTagName("tbody").length,htmlSerialize:!!b.getElementsByTagName("link").length,style:/red/.test(f.getAttribute("style")),hrefNormalized:f.getAttribute("href")==="/a",opacity:/^0.55$/.test(f.style.opacity),cssFloat:!!f.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,deleteExpando:!0,optDisabled:!1,checkClone:!1,noCloneEvent:!0,noCloneChecked:!0,boxModel:null,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableHiddenOffsets:!0,reliableMarginRight:!0},i.checked=!0,d.support.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,d.support.optDisabled=!h.disabled;var j=null;d.support.scriptEval=function(){if(j===null){var b=c.documentElement,e=c.createElement("script"),f="script"+d.now();try{e.appendChild(c.createTextNode("window."+f+"=1;"))}catch(g){}b.insertBefore(e,b.firstChild),a[f]?(j=!0,delete a[f]):j=!1,b.removeChild(e)}return j};try{delete b.test}catch(k){d.support.deleteExpando=!1}!b.addEventListener&&b.attachEvent&&b.fireEvent&&(b.attachEvent("onclick",function l(){d.support.noCloneEvent=!1,b.detachEvent("onclick",l)}),b.cloneNode(!0).fireEvent("onclick")),b=c.createElement("div"),b.innerHTML="";var m=c.createDocumentFragment();m.appendChild(b.firstChild),d.support.checkClone=m.cloneNode(!0).cloneNode(!0).lastChild.checked,d(function(){var a=c.createElement("div"),b=c.getElementsByTagName("body")[0];if(b){a.style.width=a.style.paddingLeft="1px",b.appendChild(a),d.boxModel=d.support.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,d.support.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
",d.support.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
t
";var e=a.getElementsByTagName("td");d.support.reliableHiddenOffsets=e[0].offsetHeight===0,e[0].style.display="",e[1].style.display="none",d.support.reliableHiddenOffsets=d.support.reliableHiddenOffsets&&e[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(a.style.width="1px",a.style.marginRight="0",d.support.reliableMarginRight=(parseInt(c.defaultView.getComputedStyle(a,null).marginRight,10)||0)===0),b.removeChild(a).style.display="none",a=e=null}});var n=function(a){var b=c.createElement("div");a="on"+a;if(!b.attachEvent)return!0;var d=a in b;d||(b.setAttribute(a,"return;"),d=typeof b[a]==="function");return d};d.support.submitBubbles=n("submit"),d.support.changeBubbles=n("change"),b=e=f=null}}();var g=/^(?:\{.*\}|\[.*\])$/;d.extend({cache:{},uuid:0,expando:"jQuery"+(d.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?d.cache[a[d.expando]]:a[d.expando];return!!a&&!i(a)},data:function(a,c,e,f){if(d.acceptData(a)){var g=d.expando,h=typeof c==="string",i,j=a.nodeType,k=j?d.cache:a,l=j?a[d.expando]:a[d.expando]&&d.expando;if((!l||f&&l&&!k[l][g])&&h&&e===b)return;l||(j?a[d.expando]=l=++d.uuid:l=d.expando),k[l]||(k[l]={},j||(k[l].toJSON=d.noop));if(typeof c==="object"||typeof c==="function")f?k[l][g]=d.extend(k[l][g],c):k[l]=d.extend(k[l],c);i=k[l],f&&(i[g]||(i[g]={}),i=i[g]),e!==b&&(i[c]=e);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[c]:i}},removeData:function(b,c,e){if(d.acceptData(b)){var f=d.expando,g=b.nodeType,h=g?d.cache:b,j=g?b[d.expando]:d.expando;if(!h[j])return;if(c){var k=e?h[j][f]:h[j];if(k){delete k[c];if(!i(k))return}}if(e){delete h[j][f];if(!i(h[j]))return}var l=h[j][f];d.support.deleteExpando||h!=a?delete h[j]:h[j]=null,l?(h[j]={},g||(h[j].toJSON=d.noop),h[j][f]=l):g&&(d.support.deleteExpando?delete b[d.expando]:b.removeAttribute?b.removeAttribute(d.expando):b[d.expando]=null)}},_data:function(a,b,c){return d.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=d.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),d.fn.extend({data:function(a,c){var e=null;if(typeof a==="undefined"){if(this.length){e=d.data(this[0]);if(this[0].nodeType===1){var f=this[0].attributes,g;for(var i=0,j=f.length;i-1)return!0;return!1},val:function(a){if(!arguments.length){var c=this[0];if(c){if(d.nodeName(c,"option")){var e=c.attributes.value;return!e||e.specified?c.value:c.text}if(d.nodeName(c,"select")){var f=c.selectedIndex,g=[],h=c.options,i=c.type==="select-one";if(f<0)return null;for(var j=i?f:0,k=i?f+1:h.length;j=0;else if(d.nodeName(this,"select")){var f=d.makeArray(e);d("option",this).each(function(){this.selected=d.inArray(d(this).val(),f)>=0}),f.length||(this.selectedIndex=-1)}else this.value=e}})}}),d.extend({attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,e,f){if(!a||a.nodeType===3||a.nodeType===8||a.nodeType===2)return b;if(f&&c in d.attrFn)return d(a)[c](e);var g=a.nodeType!==1||!d.isXMLDoc(a),h=e!==b;c=g&&d.props[c]||c;if(a.nodeType===1){var i=m.test(c);if(c==="selected"&&!d.support.optSelected){var j=a.parentNode;j&&(j.selectedIndex,j.parentNode&&j.parentNode.selectedIndex)}if((c in a||a[c]!==b)&&g&&!i){h&&(c==="type"&&n.test(a.nodeName)&&a.parentNode&&d.error("type property can't be changed"),e===null?a.nodeType===1&&a.removeAttribute(c):a[c]=e);if(d.nodeName(a,"form")&&a.getAttributeNode(c))return a.getAttributeNode(c).nodeValue;if(c==="tabIndex"){var k=a.getAttributeNode("tabIndex");return k&&k.specified?k.value:o.test(a.nodeName)||p.test(a.nodeName)&&a.href?0:b}return a[c]}if(!d.support.style&&g&&c==="style"){h&&(a.style.cssText=""+e);return a.style.cssText}h&&a.setAttribute(c,""+e);if(!a.attributes[c]&&(a.hasAttribute&&!a.hasAttribute(c)))return b;var l=!d.support.hrefNormalized&&g&&i?a.getAttribute(c,2):a.getAttribute(c);return l===null?b:l}h&&(a[c]=e);return a[c]}});var r=/\.(.*)$/,s=/^(?:textarea|input|select)$/i,t=/\./g,u=/ /g,v=/[^\w\s.|`]/g,w=function(a){return a.replace(v,"\\$&")};d.event={add:function(c,e,f,g){if(c.nodeType!==3&&c.nodeType!==8){try{d.isWindow(c)&&(c!==a&&!c.frameElement)&&(c=a)}catch(h){}if(f===!1)f=x;else if(!f)return;var i,j;f.handler&&(i=f,f=i.handler),f.guid||(f.guid=d.guid++);var k=d._data(c);if(!k)return;var l=k.events,m=k.handle;l||(k.events=l={}),m||(k.handle=m=function(a){return typeof d!=="undefined"&&d.event.triggered!==a.type?d.event.handle.apply(m.elem,arguments):b}),m.elem=c,e=e.split(" ");var n,o=0,p;while(n=e[o++]){j=i?d.extend({},i):{handler:f,data:g},n.indexOf(".")>-1?(p=n.split("."),n=p.shift(),j.namespace=p.slice(0).sort().join(".")):(p=[],j.namespace=""),j.type=n,j.guid||(j.guid=f.guid);var q=l[n],r=d.event.special[n]||{};if(!q){q=l[n]=[];if(!r.setup||r.setup.call(c,g,p,m)===!1)c.addEventListener?c.addEventListener(n,m,!1):c.attachEvent&&c.attachEvent("on"+n,m)}r.add&&(r.add.call(c,j),j.handler.guid||(j.handler.guid=f.guid)),q.push(j),d.event.global[n]=!0}c=null}},global:{},remove:function(a,c,e,f){if(a.nodeType!==3&&a.nodeType!==8){e===!1&&(e=x);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=d.hasData(a)&&d._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(e=c.handler,c=c.type);if(!c||typeof c==="string"&&c.charAt(0)==="."){c=c||"";for(h in t)d.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+d.map(m.slice(0).sort(),w).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!e){for(j=0;j=0&&(a.type=f=f.slice(0,-1),a.exclusive=!0),e||(a.stopPropagation(),d.event.global[f]&&d.each(d.cache,function(){var b=d.expando,e=this[b];e&&e.events&&e.events[f]&&d.event.trigger(a,c,e.handle.elem)}));if(!e||e.nodeType===3||e.nodeType===8)return b;a.result=b,a.target=e,c=d.makeArray(c),c.unshift(a)}a.currentTarget=e;var h=d._data(e,"handle");h&&h.apply(e,c);var i=e.parentNode||e.ownerDocument;try{e&&e.nodeName&&d.noData[e.nodeName.toLowerCase()]||e["on"+f]&&e["on"+f].apply(e,c)===!1&&(a.result=!1,a.preventDefault())}catch(j){}if(!a.isPropagationStopped()&&i)d.event.trigger(a,c,i,!0);else if(!a.isDefaultPrevented()){var k,l=a.target,m=f.replace(r,""),n=d.nodeName(l,"a")&&m==="click",o=d.event.special[m]||{};if((!o._default||o._default.call(e,a)===!1)&&!n&&!(l&&l.nodeName&&d.noData[l.nodeName.toLowerCase()])){try{l[m]&&(k=l["on"+m],k&&(l["on"+m]=null),d.event.triggered=a.type,l[m]())}catch(p){}k&&(l["on"+m]=k),d.event.triggered=b}}},handle:function(c){var e,f,g,h,i,j=[],k=d.makeArray(arguments);c=k[0]=d.event.fix(c||a.event),c.currentTarget=this,e=c.type.indexOf(".")<0&&!c.exclusive,e||(g=c.type.split("."),c.type=g.shift(),j=g.slice(0).sort(),h=new RegExp("(^|\\.)"+j.join("\\.(?:.*\\.)?")+"(\\.|$)")),c.namespace=c.namespace||j.join("."),i=d._data(this,"events"),f=(i||{})[c.type];if(i&&f){f=f.slice(0);for(var l=0,m=f.length;l-1?d.map(a.options,function(a){return a.selected}).join("-"):"":a.nodeName.toLowerCase()==="select"&&(c=a.selectedIndex);return c},D=function D(a){var c=a.target,e,f;if(s.test(c.nodeName)&&!c.readOnly){e=d._data(c,"_change_data"),f=C(c),(a.type!=="focusout"||c.type!=="radio")&&d._data(c,"_change_data",f);if(e===b||f===e)return;if(e!=null||f)a.type="change",a.liveFired=b,d.event.trigger(a,arguments[1],c)}};d.event.special.change={filters:{focusout:D,beforedeactivate:D,click:function(a){var b=a.target,c=b.type;(c==="radio"||c==="checkbox"||b.nodeName.toLowerCase()==="select")&&D.call(this,a)},keydown:function(a){var b=a.target,c=b.type;(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&D.call(this,a)},beforeactivate:function(a){var b=a.target;d._data(b,"_change_data",C(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in B)d.event.add(this,c+".specialChange",B[c]);return s.test(this.nodeName)},teardown:function(a){d.event.remove(this,".specialChange");return s.test(this.nodeName)}},B=d.event.special.change.filters,B.focus=B.beforeactivate}c.addEventListener&&d.each({focus:"focusin",blur:"focusout"},function(a,b){function f(a){var c=d.event.fix(a);c.type=b,c.originalEvent={},d.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var e=0;d.event.special[b]={setup:function(){e++===0&&c.addEventListener(a,f,!0)},teardown:function(){--e===0&&c.removeEventListener(a,f,!0)}}}),d.each(["bind","one"],function(a,c){d.fn[c]=function(a,e,f){if(typeof a==="object"){for(var g in a)this[c](g,e,a[g],f);return this}if(d.isFunction(e)||e===!1)f=e,e=b;var h=c==="one"?d.proxy(f,function(a){d(this).unbind(a,h);return f.apply(this,arguments)}):f;if(a==="unload"&&c!=="one")this.one(a,e,f);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},d.attrFn&&(d.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,e,g){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!=="string")return e;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(f.call(n)==="[object Array]")if(u)if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&e.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&e.push(j[t]);else e.push.apply(e,n);else p(n,e);o&&(k(o,h,e,g),k.uniqueSort(e));return e};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b==="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return"text"===c&&(b===c||b===null)},radio:function(a){return"radio"===a.type},checkbox:function(a){return"checkbox"===a.type},file:function(a){return"file"===a.type},password:function(a){return"password"===a.type},submit:function(a){return"submit"===a.type},image:function(a){return"image"===a.type},reset:function(a){return"reset"===a.type},button:function(a){return"button"===a.type||a.nodeName.toLowerCase()==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(f.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length==="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!=="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!=="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!=="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!=="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!=="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(var g=c;g0},closest:function(a,b){var c=[],e,f,g=this[0];if(d.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(e=0,f=a.length;e-1:d(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=N.test(a)?d(a,b||this.context):null;for(e=0,f=this.length;e-1:d.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b)break}}c=c.length>1?d.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a==="string")return d.inArray(this[0],a?d(a):this.parent().children());return d.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a==="string"?d(a,b):d.makeArray(a),e=d.merge(this.get(),c);return this.pushStack(P(c[0])||P(e[0])?e:d.unique(e))},andSelf:function(){return this.add(this.prevObject)}}),d.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return d.dir(a,"parentNode")},parentsUntil:function(a,b,c){return d.dir(a,"parentNode",c)},next:function(a){return d.nth(a,2,"nextSibling")},prev:function(a){return d.nth(a,2,"previousSibling")},nextAll:function(a){return d.dir(a,"nextSibling")},prevAll:function(a){return d.dir(a,"previousSibling")},nextUntil:function(a,b,c){return d.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return d.dir(a,"previousSibling",c)},siblings:function(a){return d.sibling(a.parentNode.firstChild,a)},children:function(a){return d.sibling(a.firstChild)},contents:function(a){return d.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:d.makeArray(a.childNodes)}},function(a,b){d.fn[a]=function(c,e){var f=d.map(this,b,c),g=M.call(arguments);I.test(a)||(e=c),e&&typeof e==="string"&&(f=d.filter(e,f)),f=this.length>1&&!O[a]?d.unique(f):f,(this.length>1||K.test(e))&&J.test(a)&&(f=f.reverse());return this.pushStack(f,a,g.join(","))}}),d.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?d.find.matchesSelector(b[0],a)?[b[0]]:[]:d.find.matches(a,b)},dir:function(a,c,e){var f=[],g=a[c];while(g&&g.nodeType!==9&&(e===b||g.nodeType!==1||!d(g).is(e)))g.nodeType===1&&f.push(g),g=g[c];return f},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var R=/ jQuery\d+="(?:\d+|null)"/g,S=/^\s+/,T=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,U=/<([\w:]+)/,V=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};Z.optgroup=Z.option,Z.tbody=Z.tfoot=Z.colgroup=Z.caption=Z.thead,Z.th=Z.td,d.support.htmlSerialize||(Z._default=[1,"div
","
"]),d.fn.extend({text:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.text(a.call(this,b,c.text()))});if(typeof a!=="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return d.text(this)},wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this,b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapInner(a.call(this,b))});return this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){d(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=d(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,d(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,e;(e=this[c])!=null;c++)if(!a||d.filter(a,[e]).length)!b&&e.nodeType===1&&(d.cleanData(e.getElementsByTagName("*")),d.cleanData([e])),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&d.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return d.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(R,""):null;if(typeof a!=="string"||X.test(a)||!d.support.leadingWhitespace&&S.test(a)||Z[(U.exec(a)||["",""])[1].toLowerCase()])d.isFunction(a)?this.each(function(b){var c=d(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);else{a=a.replace(T,"<$1>");try{for(var c=0,e=this.length;c1&&l0?this.clone(!0):this).get();d(f[h])[b](j),e=e.concat(j)}return this.pushStack(e,a,f.selector)}}),d.extend({clone:function(a,b,c){var e=a.cloneNode(!0),f,g,h;if((!d.support.noCloneEvent||!d.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!d.isXMLDoc(a)){ba(a,e),f=bb(a),g=bb(e);for(h=0;f[h];++h)ba(f[h],g[h])}if(b){_(a,e);if(c){f=bb(a),g=bb(e);for(h=0;f[h];++h)_(f[h],g[h])}}return e},clean:function(a,b,e,f){b=b||c,typeof b.createElement==="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var g=[];for(var h=0,i;(i=a[h])!=null;h++){typeof i==="number"&&(i+="");if(!i)continue;if(typeof i!=="string"||W.test(i)){if(typeof i==="string"){i=i.replace(T,"<$1>");var j=(U.exec(i)||["",""])[1].toLowerCase(),k=Z[j]||Z._default,l=k[0],m=b.createElement("div");m.innerHTML=k[1]+i+k[2];while(l--)m=m.lastChild;if(!d.support.tbody){var n=V.test(i),o=j==="table"&&!n?m.firstChild&&m.firstChild.childNodes:k[1]===""&&!n?m.childNodes:[];for(var p=o.length-1;p>=0;--p)d.nodeName(o[p],"tbody")&&!o[p].childNodes.length&&o[p].parentNode.removeChild(o[p])}!d.support.leadingWhitespace&&S.test(i)&&m.insertBefore(b.createTextNode(S.exec(i)[0]),m.firstChild),i=m.childNodes}}else i=b.createTextNode(i);i.nodeType?g.push(i):g=d.merge(g,i)}if(e)for(h=0;g[h];h++)!f||!d.nodeName(g[h],"script")||g[h].type&&g[h].type.toLowerCase()!=="text/javascript"?(g[h].nodeType===1&&g.splice.apply(g,[h+1,0].concat(d.makeArray(g[h].getElementsByTagName("script")))),e.appendChild(g[h])):f.push(g[h].parentNode?g[h].parentNode.removeChild(g[h]):g[h]);return g},cleanData:function(a){var b,c,e=d.cache,f=d.expando,g=d.event.special,h=d.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&d.noData[j.nodeName.toLowerCase()])continue;c=j[d.expando];if(c){b=e[c]&&e[c][f];if(b&&b.events){for(var k in b.events)g[k]?d.event.remove(j,k):d.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[d.expando]:j.removeAttribute&&j.removeAttribute(d.expando),delete e[c]}}}});var bd=/alpha\([^)]*\)/i,be=/opacity=([^)]*)/,bf=/-([a-z])/ig,bg=/([A-Z]|^ms)/g,bh=/^-?\d+(?:px)?$/i,bi=/^-?\d/,bj={position:"absolute",visibility:"hidden",display:"block"},bk=["Left","Right"],bl=["Top","Bottom"],bm,bn,bo,bp=function(a,b){return b.toUpperCase()};d.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return d.access(this,a,c,!0,function(a,c,e){return e!==b?d.style(a,c,e):d.css(a,c)})},d.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bm(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0},cssProps:{"float":d.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,e,f){if(a&&a.nodeType!==3&&a.nodeType!==8&&a.style){var g,h=d.camelCase(c),i=a.style,j=d.cssHooks[h];c=d.cssProps[h]||h;if(e===b){if(j&&"get"in j&&(g=j.get(a,!1,f))!==b)return g;return i[c]}if(typeof e==="number"&&isNaN(e)||e==null)return;typeof e==="number"&&!d.cssNumber[h]&&(e+="px");if(!j||!("set"in j)||(e=j.set(a,e))!==b)try{i[c]=e}catch(k){}}},css:function(a,c,e){var f,g=d.camelCase(c),h=d.cssHooks[g];c=d.cssProps[g]||g;if(h&&"get"in h&&(f=h.get(a,!0,e))!==b)return f;if(bm)return bm(a,c,g)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bf,bp)}}),d.curCSS=d.css,d.each(["height","width"],function(a,b){d.cssHooks[b]={get:function(a,c,e){var f;if(c){a.offsetWidth!==0?f=bq(a,b,e):d.swap(a,bj,function(){f=bq(a,b,e)});if(f<=0){f=bm(a,b,b),f==="0px"&&bo&&(f=bo(a,b,b));if(f!=null)return f===""||f==="auto"?"0px":f}if(f<0||f==null){f=a.style[b];return f===""||f==="auto"?"0px":f}return typeof f==="string"?f:f+"px"}},set:function(a,b){if(!bh.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),d.support.opacity||(d.cssHooks.opacity={get:function(a,b){return be.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style;c.zoom=1;var e=d.isNaN(b)?"":"alpha(opacity="+b*100+")",f=c.filter||"";c.filter=bd.test(f)?f.replace(bd,e):c.filter+" "+e}}),d(function(){d.support.reliableMarginRight||(d.cssHooks.marginRight={get:function(a,b){var c;d.swap(a,{display:"inline-block"},function(){b?c=bm(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bn=function(a,c,e){var f,g,h;e=e.replace(bg,"-$1").toLowerCase();if(!(g=a.ownerDocument.defaultView))return b;if(h=g.getComputedStyle(a,null))f=h.getPropertyValue(e),f===""&&!d.contains(a.ownerDocument.documentElement,a)&&(f=d.style(a,e));return f}),c.documentElement.currentStyle&&(bo=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bh.test(d)&&bi.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bm=bn||bo,d.expr&&d.expr.filters&&(d.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!d.support.reliableHiddenOffsets&&(a.style.display||d.css(a,"display"))==="none"},d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)});var br=/%20/g,bs=/\[\]$/,bt=/\r?\n/g,bu=/#.*$/,bv=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bw=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bx=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,by=/^(?:GET|HEAD)$/,bz=/^\/\//,bA=/\?/,bB=/)<[^<]*)*<\/script>/gi,bC=/^(?:select|textarea)/i,bD=/\s+/,bE=/([?&])_=[^&]*/,bF=/(^|\-)([a-z])/g,bG=function(a,b,c){return b+c.toUpperCase()},bH=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bI=d.fn.load,bJ={},bK={},bL,bM;try{bL=c.location.href}catch(bN){bL=c.createElement("a"),bL.href="",bL=bL.href}bM=bH.exec(bL.toLowerCase())||[],d.fn.extend({load:function(a,c,e){if(typeof a!=="string"&&bI)return bI.apply(this,arguments);if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var g=a.slice(f,a.length);a=a.slice(0,f)}var h="GET";c&&(d.isFunction(c)?(e=c,c=b):typeof c==="object"&&(c=d.param(c,d.ajaxSettings.traditional),h="POST"));var i=this;d.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?d("
").append(c.replace(bB,"")).find(g):c)),e&&i.each(e,[c,b,a])}});return this},serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?d.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bC.test(this.nodeName)||bw.test(this.type))}).map(function(a,b){var c=d(this).val();return c==null?null:d.isArray(c)?d.map(c,function(a,c){return{name:b.name,value:a.replace(bt,"\r\n")}}):{name:b.name,value:c.replace(bt,"\r\n")}}).get()}}),d.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){d.fn[b]=function(a){return this.bind(b,a)}}),d.each(["get","post"],function(a,c){d[c]=function(a,e,f,g){d.isFunction(e)&&(g=g||f,f=e,e=b);return d.ajax({type:c,url:a,data:e,success:f,dataType:g})}}),d.extend({getScript:function(a,c){return d.get(a,b,c,"script")},getJSON:function(a,b,c){return d.get(a,b,c,"json")},ajaxSetup:function(a,b){b?d.extend(!0,a,d.ajaxSettings,b):(b=a,a=d.extend(!0,d.ajaxSettings,b));for(var c in {context:1,url:1})c in b?a[c]=b[c]:c in d.ajaxSettings&&(a[c]=d.ajaxSettings[c]);return a},ajaxSettings:{url:bL,isLocal:bx.test(bM[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":d.parseJSON,"text xml":d.parseXML}},ajaxPrefilter:bO(bJ),ajaxTransport:bO(bK),ajax:function(a,c){function v(a,c,l,n){if(r!==2){r=2,p&&clearTimeout(p),o=b,m=n||"",u.readyState=a?4:0;var q,t,v,w=l?bR(e,u,l):b,x,y;if(a>=200&&a<300||a===304){if(e.ifModified){if(x=u.getResponseHeader("Last-Modified"))d.lastModified[k]=x;if(y=u.getResponseHeader("Etag"))d.etag[k]=y}if(a===304)c="notmodified",q=!0;else try{t=bS(e,w),c="success",q=!0}catch(z){c="parsererror",v=z}}else{v=c;if(!c||a)c="error",a<0&&(a=0)}u.status=a,u.statusText=c,q?h.resolveWith(f,[t,c,u]):h.rejectWith(f,[u,c,v]),u.statusCode(j),j=b,s&&g.trigger("ajax"+(q?"Success":"Error"),[u,e,q?t:v]),i.resolveWith(f,[u,c]),s&&(g.trigger("ajaxComplete",[u,e]),--d.active||d.event.trigger("ajaxStop"))}}typeof a==="object"&&(c=a,a=b),c=c||{};var e=d.ajaxSetup({},c),f=e.context||e,g=f!==e&&(f.nodeType||f instanceof d)?d(f):d.event,h=d.Deferred(),i=d._Deferred(),j=e.statusCode||{},k,l={},m,n,o,p,q,r=0,s,t,u={readyState:0,setRequestHeader:function(a,b){r||(l[a.toLowerCase().replace(bF,bG)]=b);return this},getAllResponseHeaders:function(){return r===2?m:null},getResponseHeader:function(a){var c;if(r===2){if(!n){n={};while(c=bv.exec(m))n[c[1].toLowerCase()]=c[2]}c=n[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){r||(e.mimeType=a);return this},abort:function(a){a=a||"abort",o&&o.abort(a),v(0,a);return this}};h.promise(u),u.success=u.done,u.error=u.fail,u.complete=i.done,u.statusCode=function(a){if(a){var b;if(r<2)for(b in a)j[b]=[j[b],a[b]];else b=a[u.status],u.then(b,b)}return this},e.url=((a||e.url)+"").replace(bu,"").replace(bz,bM[1]+"//"),e.dataTypes=d.trim(e.dataType||"*").toLowerCase().split(bD),e.crossDomain==null&&(q=bH.exec(e.url.toLowerCase()),e.crossDomain=q&&(q[1]!=bM[1]||q[2]!=bM[2]||(q[3]||(q[1]==="http:"?80:443))!=(bM[3]||(bM[1]==="http:"?80:443)))),e.data&&e.processData&&typeof e.data!=="string"&&(e.data=d.param(e.data,e.traditional)),bP(bJ,e,c,u);if(r===2)return!1;s=e.global,e.type=e.type.toUpperCase(),e.hasContent=!by.test(e.type),s&&d.active++===0&&d.event.trigger("ajaxStart");if(!e.hasContent){e.data&&(e.url+=(bA.test(e.url)?"&":"?")+e.data),k=e.url;if(e.cache===!1){var w=d.now(),x=e.url.replace(bE,"$1_="+w);e.url=x+(x===e.url?(bA.test(e.url)?"&":"?")+"_="+w:"")}}if(e.data&&e.hasContent&&e.contentType!==!1||c.contentType)l["Content-Type"]=e.contentType;e.ifModified&&(k=k||e.url,d.lastModified[k]&&(l["If-Modified-Since"]=d.lastModified[k]),d.etag[k]&&(l["If-None-Match"]=d.etag[k])),l.Accept=e.dataTypes[0]&&e.accepts[e.dataTypes[0]]?e.accepts[e.dataTypes[0]]+(e.dataTypes[0]!=="*"?", */*; q=0.01":""):e.accepts["*"];for(t in e.headers)u.setRequestHeader(t,e.headers[t]);if(e.beforeSend&&(e.beforeSend.call(f,u,e)===!1||r===2)){u.abort();return!1}for(t in {success:1,error:1,complete:1})u[t](e[t]);o=bP(bK,e,c,u);if(o){u.readyState=1,s&&g.trigger("ajaxSend",[u,e]),e.async&&e.timeout>0&&(p=setTimeout(function(){u.abort("timeout")},e.timeout));try{r=1,o.send(l,v)}catch(y){status<2?v(-1,y):d.error(y)}}else v(-1,"No Transport");return u},param:function(a,c){var e=[],f=function(a,b){b=d.isFunction(b)?b():b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery&&!d.isPlainObject(a))d.each(a,function(){f(this.name,this.value)});else for(var g in a)bQ(g,a[g],c,f);return e.join("&").replace(br,"+")}}),d.extend({active:0,lastModified:{},etag:{}});var bT=d.now(),bU=/(\=)\?(&|$)|\?\?/i;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return d.expando+"_"+bT++}}),d.ajaxPrefilter("json jsonp",function(b,c,e){var f=typeof b.data==="string";if(b.dataTypes[0]==="jsonp"||c.jsonpCallback||c.jsonp!=null||b.jsonp!==!1&&(bU.test(b.url)||f&&bU.test(b.data))){var g,h=b.jsonpCallback=d.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2",m=function(){a[h]=i,g&&d.isFunction(i)&&a[h](g[0])};b.jsonp!==!1&&(j=j.replace(bU,l),b.url===j&&(f&&(k=k.replace(bU,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},e.then(m,m),b.converters["script json"]=function(){g||d.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){d.globalEval(a);return a}}}),d.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),d.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var bV=d.now(),bW,bX;d.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&bZ()||b$()}:bZ,bX=d.ajaxSettings.xhr(),d.support.ajax=!!bX,d.support.cors=bX&&"withCredentials"in bX,bX=b,d.support.ajax&&d.ajaxTransport(function(a){if(!a.crossDomain||d.support.cors){var c;return{send:function(e,f){var g=a.xhr(),h,i;a.username?g.open(a.type,a.url,a.async,a.username,a.password):g.open(a.type,a.url,a.async);if(a.xhrFields)for(i in a.xhrFields)g[i]=a.xhrFields[i];a.mimeType&&g.overrideMimeType&&g.overrideMimeType(a.mimeType),!a.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(i in e)g.setRequestHeader(i,e[i])}catch(j){}g.send(a.hasContent&&a.data||null),c=function(e,i){var j,k,l,m,n;try{if(c&&(i||g.readyState===4)){c=b,h&&(g.onreadystatechange=d.noop,delete bW[h]);if(i)g.readyState!==4&&g.abort();else{j=g.status,l=g.getAllResponseHeaders(),m={},n=g.responseXML,n&&n.documentElement&&(m.xml=n),m.text=g.responseText;try{k=g.statusText}catch(o){k=""}j||!a.isLocal||a.crossDomain?j===1223&&(j=204):j=m.text?200:404}}}catch(p){i||f(-1,p)}m&&f(j,k,m,l)},a.async&&g.readyState!==4?(bW||(bW={},bY()),h=bV++,g.onreadystatechange=bW[h]=c):c()},abort:function(){c&&c(0,1)}}}});var b_={},ca=/^(?:toggle|show|hide)$/,cb=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cc,cd=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];d.fn.extend({show:function(a,b,c){var e,f;if(a||a===0)return this.animate(ce("show",3),a,b,c);for(var g=0,h=this.length;g=0;a--)c[a].elem===this&&(b&&c[a](!0),c.splice(a,1))}),b||this.dequeue();return this}}),d.each({slideDown:ce("show",1),slideUp:ce("hide",1),slideToggle:ce("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){d.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),d.extend({speed:function(a,b,c){var e=a&&typeof a==="object"?d.extend({},a):{complete:c||!c&&b||d.isFunction(a)&&a,duration:a,easing:c&&b||b&&!d.isFunction(b)&&b};e.duration=d.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in d.fx.speeds?d.fx.speeds[e.duration]:d.fx.speeds._default,e.old=e.complete,e.complete=function(){e.queue!==!1&&d(this).dequeue(),d.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig||(b.orig={})}}),d.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(d.fx.step[this.prop]||d.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=d.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return e.step(a)}var e=this,f=d.fx;this.startTime=d.now(),this.start=a,this.end=b,this.unit=c||this.unit||(d.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&d.timers.push(g)&&!cc&&(cc=setInterval(f.tick,f.interval))},show:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),d(this.elem).show()},hide:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=d.now(),c=!0;if(a||b>=this.options.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),this.options.curAnim[this.prop]=!0;for(var e in this.options.curAnim)this.options.curAnim[e]!==!0&&(c=!1);if(c){if(this.options.overflow!=null&&!d.support.shrinkWrapBlocks){var f=this.elem,g=this.options;d.each(["","X","Y"],function(a,b){f.style["overflow"+b]=g.overflow[a]})}this.options.hide&&d(this.elem).hide();if(this.options.hide||this.options.show)for(var h in this.options.curAnim)d.style(this.elem,h,this.options.orig[h]);this.options.complete.call(this.elem)}return!1}var i=b-this.startTime;this.state=i/this.options.duration;var j=this.options.specialEasing&&this.options.specialEasing[this.prop],k=this.options.easing||(d.easing.swing?"swing":"linear");this.pos=d.easing[j||k](this.state,i,0,1,this.options.duration),this.now=this.start+(this.end-this.start)*this.pos,this.update();return!0}},d.extend(d.fx,{tick:function(){var a=d.timers;for(var b=0;b
";d.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),e=b.firstChild,f=e.firstChild,h=e.nextSibling.firstChild.firstChild,this.doesNotAddBorder=f.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,f.style.position="fixed",f.style.top="20px",this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15,f.style.position=f.style.top="",e.style.overflow="hidden",e.style.position="relative",this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),d.offset.initialize=d.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;d.offset.initialize(),d.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(d.css(a,"marginTop"))||0,c+=parseFloat(d.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var e=d.css(a,"position");e==="static"&&(a.style.position="relative");var f=d(a),g=f.offset(),h=d.css(a,"top"),i=d.css(a,"left"),j=(e==="absolute"||e==="fixed")&&d.inArray("auto",[h,i])>-1,k={},l={},m,n;j&&(l=f.position()),m=j?l.top:parseInt(h,10)||0,n=j?l.left:parseInt(i,10)||0,d.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):f.css(k)}},d.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),e=ch.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(d.css(a,"marginTop"))||0,c.left-=parseFloat(d.css(a,"marginLeft"))||0,e.top+=parseFloat(d.css(b[0],"borderTopWidth"))||0,e.left+=parseFloat(d.css(b[0],"borderLeftWidth"))||0;return{top:c.top-e.top,left:c.left-e.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&(!ch.test(a.nodeName)&&d.css(a,"position")==="static"))a=a.offsetParent;return a})}}),d.each(["Left","Top"],function(a,c){var e="scroll"+c;d.fn[e]=function(c){var f=this[0],g;if(!f)return null;if(c!==b)return this.each(function(){g=ci(this),g?g.scrollTo(a?d(g).scrollLeft():c,a?c:d(g).scrollTop()):this[e]=c});g=ci(f);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:d.support.boxModel&&g.document.documentElement[e]||g.document.body[e]:f[e]}}),d.each(["Height","Width"],function(a,c){var e=c.toLowerCase();d.fn["inner"+c]=function(){return this[0]?parseFloat(d.css(this[0],e,"padding")):null},d.fn["outer"+c]=function(a){return this[0]?parseFloat(d.css(this[0],e,a?"margin":"border")):null},d.fn[e]=function(a){var f=this[0];if(!f)return a==null?null:this;if(d.isFunction(a))return this.each(function(b){var c=d(this);c[e](a.call(this,b,c[e]()))});if(d.isWindow(f)){var g=f.document.documentElement["client"+c];return f.document.compatMode==="CSS1Compat"&&g||f.document.body["client"+c]||g}if(f.nodeType===9)return Math.max(f.documentElement["client"+c],f.body["scroll"+c],f.documentElement["scroll"+c],f.body["offset"+c],f.documentElement["offset"+c]);if(a===b){var h=d.css(f,e),i=parseFloat(h);return d.isNaN(i)?h:i}return this.css(e,typeof a==="string"?a:a+"px")}}),a.jQuery=a.$=d})(window); \ No newline at end of file diff --git a/mayan/apps/web_theme/static/web_theme_media/javascripts/jquery-1.7.min.js b/mayan/apps/web_theme/static/web_theme_media/javascripts/jquery-1.7.min.js deleted file mode 100644 index 3ca5e0f5de..0000000000 --- a/mayan/apps/web_theme/static/web_theme_media/javascripts/jquery-1.7.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v1.7 jquery.com | jquery.org/license */ -(function(a,b){function cA(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cx(a){if(!cm[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cn||(cn=c.createElement("iframe"),cn.frameBorder=cn.width=cn.height=0),b.appendChild(cn);if(!co||!cn.createElement)co=(cn.contentWindow||cn.contentDocument).document,co.write((c.compatMode==="CSS1Compat"?"":"")+""),co.close();d=co.createElement(a),co.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cn)}cm[a]=e}return cm[a]}function cw(a,b){var c={};f.each(cs.concat.apply([],cs.slice(0,b)),function(){c[this]=a});return c}function cv(){ct=b}function cu(){setTimeout(cv,0);return ct=f.now()}function cl(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ck(){try{return new a.XMLHttpRequest}catch(b){}}function ce(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bB(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function br(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bi,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bq(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bp(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bp)}function bp(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bo(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bn(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bm(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d=0===c})}function V(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function N(){return!0}function M(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z]|[0-9])/ig,x=/^-ms-/,y=function(a,b){return(b+"").toUpperCase()},z=d.userAgent,A,B,C,D=Object.prototype.toString,E=Object.prototype.hasOwnProperty,F=Array.prototype.push,G=Array.prototype.slice,H=String.prototype.trim,I=Array.prototype.indexOf,J={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7",length:0,size:function(){return this.length},toArray:function(){return G.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?F.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),B.add(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(G.apply(this,arguments),"slice",G.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:F,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;B.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!B){B=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",C,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",C),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&K()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return a!=null&&m.test(a)&&!isNaN(a)},type:function(a){return a==null?String(a):J[D.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!E.call(a,"constructor")&&!E.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||E.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(x,"ms-").replace(w,y)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
a",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,unknownElems:!!a.getElementsByTagName("nav").length,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",enctype:!!c.createElement("form").enctype,submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.lastChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},m&&f.extend(p,{position:"absolute",left:"-999px",top:"-999px"});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
t
",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;f(function(){var a,b,d,e,g,h,i=1,j="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",l="visibility:hidden;border:0;",n="style='"+j+"border:5px solid #000;padding:0;'",p="
"+""+"
";m=c.getElementsByTagName("body")[0];!m||(a=c.createElement("div"),a.style.cssText=l+"width:0;height:0;position:static;top:0;margin-top:"+i+"px",m.insertBefore(a,m.firstChild),o=c.createElement("div"),o.style.cssText=j+l,o.innerHTML=p,a.appendChild(o),b=o.firstChild,d=b.firstChild,g=b.nextSibling.firstChild.firstChild,h={doesNotAddBorder:d.offsetTop!==5,doesAddBorderForTableAndCells:g.offsetTop===5},d.style.position="fixed",d.style.top="20px",h.fixedPosition=d.offsetTop===20||d.offsetTop===15,d.style.position=d.style.top="",b.style.overflow="hidden",b.style.position="relative",h.subtractsBorderForOverflowNotVisible=d.offsetTop===-5,h.doesNotIncludeMarginInBodyOffset=m.offsetTop!==i,m.removeChild(a),o=a=null,f.extend(k,h))}),o.innerHTML="",n.removeChild(o),o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[f.expando]:a[f.expando]&&f.expando,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[f.expando]=n=++f.uuid:n=f.expando),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[f.expando]:f.expando;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)?b=b:b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" "));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];if(!arguments.length){if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}return b}e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!a||j===3||j===8||j===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g},removeAttr:function(a,b){var c,d,e,g,h=0;if(a.nodeType===1){d=(b||"").split(p),g=d.length;for(;h=0}})});var z=/\.(.*)$/,A=/^(?:textarea|input|select)$/i,B=/\./g,C=/ /g,D=/[^\w\s.|`]/g,E=/^([^\.]*)?(?:\.(.+))?$/,F=/\bhover(\.\S+)?/,G=/^key/,H=/^(?:mouse|contextmenu)|click/,I=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,J=function(a){var b=I.exec(a);b&& -(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},K=function(a,b){return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||a.id===b[2])&&(!b[3]||b[3].test(a.className))},L=function(a){return f.event.special.hover?a:a.replace(F,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=L(c).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"",(g||!e)&&c.preventDefault();if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,n=null;for(m=e.parentNode;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l=0:t===b&&(t=o[s]=r.quick?K(m,r.quick):f(m).is(s)),t&&q.push(r);q.length&&j.push({elem:m,matches:q})}d.length>e&&j.push({elem:this,matches:d.slice(e)});for(k=0;k0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),G.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),H.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(V(c[0])||V(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=S.call(arguments);O.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!U[a]?f.unique(e):e,(this.length>1||Q.test(d))&&P.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var Y="abbr article aside audio canvas datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",Z=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,_=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,ba=/<([\w:]+)/,bb=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},bk=X(c);bj.optgroup=bj.option,bj.tbody=bj.tfoot=bj.colgroup=bj.caption=bj.thead,bj.th=bj.td,f.support.htmlSerialize||(bj._default=[1,"div
","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after" -,arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Z,""):null;if(typeof a=="string"&&!bd.test(a)&&(f.support.leadingWhitespace||!$.test(a))&&!bj[(ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(_,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bn(a,d),e=bo(a),g=bo(d);for(h=0;e[h];++h)g[h]&&bn(e[h],g[h])}if(b){bm(a,d);if(c){e=bo(a),g=bo(d);for(h=0;e[h];++h)bm(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!bc.test(k))k=b.createTextNode(k);else{k=k.replace(_,"<$1>");var l=(ba.exec(k)||["",""])[1].toLowerCase(),m=bj[l]||bj._default,n=m[0],o=b.createElement("div");b===c?bk.appendChild(o):X(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=bb.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&$.test(k)&&o.insertBefore(b.createTextNode($.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bt.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bs,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bs.test(g)?g.replace(bs,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bB(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bC=function(a,c){var d,e,g;c=c.replace(bu,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bD=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bv.test(f)&&bw.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bB=bC||bD,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bF=/%20/g,bG=/\[\]$/,bH=/\r?\n/g,bI=/#.*$/,bJ=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bK=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bL=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bM=/^(?:GET|HEAD)$/,bN=/^\/\//,bO=/\?/,bP=/)<[^<]*)*<\/script>/gi,bQ=/^(?:select|textarea)/i,bR=/\s+/,bS=/([?&])_=[^&]*/,bT=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bU=f.fn.load,bV={},bW={},bX,bY,bZ=["*/"]+["*"];try{bX=e.href}catch(b$){bX=c.createElement("a"),bX.href="",bX=bX.href}bY=bT.exec(bX.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bU)return bU.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bP,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bQ.test(this.nodeName)||bK.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bH,"\r\n")}}):{name:b.name,value:c.replace(bH,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?cb(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),cb(a,b);return a},ajaxSettings:{url:bX,isLocal:bL.test(bY[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bZ},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:b_(bV),ajaxTransport:b_(bW),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cd(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=ce(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bJ.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bI,"").replace(bN,bY[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bR),d.crossDomain==null&&(r=bT.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bY[1]&&r[2]==bY[2]&&(r[3]||(r[1]==="http:"?80:443))==(bY[3]||(bY[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),ca(bV,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bM.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bO.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bS,"$1_="+x);d.url=y+(y===d.url?(bO.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bZ+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=ca(bW,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){s<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)cc(g,a[g],c,e);return d.join("&").replace(bF,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cf=f.now(),cg=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cf++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cg.test(b.url)||e&&cg.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cg,l),b.url===j&&(e&&(k=k.replace(cg,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ch=a.ActiveXObject?function(){for(var a in cj)cj[a](0,1)}:!1,ci=0,cj;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ck()||cl()}:ck,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ch&&delete cj[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++ci,ch&&(cj||(cj={},f(a).unload(ch)),cj[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cm={},cn,co,cp=/^(?:toggle|show|hide)$/,cq=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cr,cs=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],ct;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cw("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cz.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cz.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cA(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cA(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window); \ No newline at end of file diff --git a/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/theme/templates/layout_admin.html.erb b/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/theme/templates/layout_admin.html.erb deleted file mode 100644 index 8f388e5f85..0000000000 --- a/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/theme/templates/layout_admin.html.erb +++ /dev/null @@ -1,46 +0,0 @@ - - - - <%= options.app_name %> - <%%= stylesheet_link_tag "web-app-theme/base", "web-app-theme/themes/<%= options.theme %>/style", "web-app-theme/override", :cache => true %> - <%%= javascript_include_tag :defaults, :cache => true %> - <%%= csrf_meta_tag %> - - -
- -
-
- <%% flash.each do |type, message| -%> -
-

<%%= message %>

-
- <%% end -%> -
-
- <%%= yield %> - -
- -
-
- - diff --git a/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/theme/templates/layout_sign.html.erb b/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/theme/templates/layout_sign.html.erb deleted file mode 100644 index 18cc3c781c..0000000000 --- a/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/theme/templates/layout_sign.html.erb +++ /dev/null @@ -1,15 +0,0 @@ - - - - <%= options.app_name %> - <%%= stylesheet_link_tag "web-app-theme/base", "web-app-theme/themes/<%= options.theme %>/style", "web-app-theme/override", :cache => true %> - <%%= csrf_meta_tag %> - - -
-
- <%%= yield %> -
-
- - diff --git a/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/theme/theme_generator.rb b/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/theme/theme_generator.rb deleted file mode 100644 index bd3acf0e91..0000000000 --- a/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/theme/theme_generator.rb +++ /dev/null @@ -1,61 +0,0 @@ -module WebAppTheme - class ThemeGenerator < Rails::Generators::Base - source_root File.expand_path('../templates', __FILE__) - - argument :layout_name, :type => :string, :default => 'application' - - class_option :theme, :type => :string, :default => :default, :desc => 'Specify the layout theme' - class_option :app_name, :type => :string, :default => 'Web App', :desc => 'Specify the application name' - class_option :engine, :type => :string, :default => 'erb', :desc => 'Specify the template engine' - class_option :no_layout, :type => :boolean, :default => false, :desc => 'Use this option if you want to generate only stylesheets' - class_option :layout_type, :type => :string, :default => 'admin', :desc => 'Layout type, admin or sign' - - def copy_layout - return if options.no_layout - admin_layout_name = options.layout_type == 'sign' ? "layout_sign.html.erb" : "layout_admin.html.erb" - case options.engine - when 'erb' - template admin_layout_name, "app/views/layouts/#{layout_name.underscore}.html.erb" - when 'haml' - generate_haml_layout(admin_layout_name) - end - end - - def copy_base_stylesheets - copy_file "#{stylesheets_path}/base.css", "public/stylesheets/web-app-theme/base.css" - copy_file "#{stylesheets_path}/override.css", "public/stylesheets/web-app-theme/override.css" - end - - def copy_theme_stylesheets - directory "#{stylesheets_path}/themes/#{options.theme}", "public/stylesheets/web-app-theme/themes/#{options.theme}" - end - - def copy_images - directory "#{images_path}", "public/images/web-app-theme" - end - - protected - - def stylesheets_path - "../../../../../stylesheets" - end - - def images_path - "../../../../../images" - end - - def generate_haml_layout(admin_layout_name) - require 'haml' - Dir.mktmpdir('web-app-theme-haml') do |haml_root| - tmp_html_path = "#{haml_root}/#{admin_layout_name}" - tmp_haml_path = "#{haml_root}/#{admin_layout_name}.haml" - template admin_layout_name, tmp_html_path, :verbose => false - `html2haml --erb --xhtml #{tmp_html_path} #{tmp_haml_path}` - copy_file tmp_haml_path, "app/views/layouts/#{layout_name.underscore}.html.haml" - end - rescue LoadError - say "HAML is not installed, or it is not specified in your Gemfile." - exit - end - end -end diff --git a/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/templates/view_edit.html.erb b/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/templates/view_edit.html.erb deleted file mode 100644 index 837d7b213c..0000000000 --- a/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/templates/view_edit.html.erb +++ /dev/null @@ -1,19 +0,0 @@ -
-
-
    -
  • <%%= link_to "#{t("web-app-theme.list", :default => "List")}", <%= controller_routing_path %>_path %>
  • -
  • <%%= link_to "#{t("web-app-theme.new", :default => "New")}", new_<%= singular_controller_routing_path %>_path %>
  • -
  • <%%= link_to "#{t("web-app-theme.edit", :default => "Edit")}", edit_<%= singular_controller_routing_path %>_path %>
  • -
-
-
-

<%%= t("web-app-theme.edit", :default => "Edit") %> <%= model_name %>

-
- <%%= form_for @<%= model_name.underscore %>, :url => <%= singular_controller_routing_path %>_path(@<%= resource_name %>), :html => { :class => :form } do |f| -%> - <%%= render :partial => "form", :locals => {:f => f} %> - <%% end -%> -
-
-
- -<%% content_for :sidebar, render(:partial => 'sidebar') -%> \ No newline at end of file diff --git a/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/templates/view_form.html.erb b/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/templates/view_form.html.erb deleted file mode 100644 index bdf964e708..0000000000 --- a/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/templates/view_form.html.erb +++ /dev/null @@ -1,14 +0,0 @@ -<% columns.each do |column| %> -
- <%%= f.label :<%= column.name %>, t("activerecord.attributes.<%= model_name.underscore %>.<%= column.name %>", :default => "<%= column.name.humanize %>"), :class => :label %> - <%%= f.<%= column.field_type %> :<%= column.name %>, :class => '<%= column.field_type %>' %> - Ex: a simple text -
-<%- end -%> - \ No newline at end of file diff --git a/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/templates/view_new.html.erb b/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/templates/view_new.html.erb deleted file mode 100644 index 949293ef31..0000000000 --- a/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/templates/view_new.html.erb +++ /dev/null @@ -1,18 +0,0 @@ -
-
-
    -
  • <%%= link_to "#{t("web-app-theme.list", :default => "List")}", <%= controller_routing_path %>_path %>
  • -
  • <%%= link_to "#{t("web-app-theme.new", :default => "New")}", new_<%= singular_controller_routing_path %>_path %>
  • -
-
-
-

<%%= t("web-app-theme.new", :default => "New")%> <%= model_name %>

-
- <%%= form_for :<%= model_name.underscore %>, :url => <%= controller_routing_path %>_path, :html => { :class => :form } do |f| -%> - <%%= render :partial => "form", :locals => {:f => f} %> - <%% end -%> -
-
-
- -<%% content_for :sidebar, render(:partial => 'sidebar') -%> \ No newline at end of file diff --git a/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/templates/view_show.html.erb b/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/templates/view_show.html.erb deleted file mode 100644 index 3d4a60acfb..0000000000 --- a/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/templates/view_show.html.erb +++ /dev/null @@ -1,25 +0,0 @@ -
-
-
    -
  • <%%= link_to "#{t("web-app-theme.list", :default => "List")}", <%= controller_routing_path %>_path %>
  • -
  • <%%= link_to "#{t("web-app-theme.new", :default => "New")}", new_<%= singular_controller_routing_path %>_path %>
  • -
  • <%%= link_to "#{t("web-app-theme.show", :default => "Show")}", <%= singular_controller_routing_path %>_path %>
  • -
-
-
-
- <% columns.each do |column| %> -

- <%%= t("activerecord.attributes.<%= singular_controller_routing_path %>.<%= column.name %>", :default => t("activerecord.labels.<%= column.name %>", :default => "<%= column.name.humanize %>")) %>: - <%%= @<%= resource_name %>.<%= column.name %> %> -

- <%- end -%> -
- <%%= link_to image_tag("web-app-theme/icons/application_edit.png", :alt => "#{t("web-app-theme.edit", :default=> "Edit")}") + " " + t("web-app-theme.edit", :default=> "Edit"), edit_<%= singular_controller_routing_path %>_path(@<%= resource_name %>), :class => "button" %> - <%%= link_to image_tag("web-app-theme/icons/cross.png", :alt => "#{t("web-app-theme.delete", :default=> "Delete")}") + " " + t("web-app-theme.delete", :default => "Delete"), <%= singular_controller_routing_path %>_path(@<%= resource_name %>), :method => "delete", :class => "button", :confirm => "#{t("web-app-theme.confirm", :default => "Are you sure?")}" %> -
-
-
-
- -<%% content_for :sidebar, render(:partial => 'sidebar') -%> \ No newline at end of file diff --git a/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/templates/view_sidebar.html.erb b/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/templates/view_sidebar.html.erb deleted file mode 100644 index 146573afa3..0000000000 --- a/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/templates/view_sidebar.html.erb +++ /dev/null @@ -1,13 +0,0 @@ -
-

Simple Block

-
-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

-
-
-
-

Links

- -
\ No newline at end of file diff --git a/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/templates/view_signin.html.erb b/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/templates/view_signin.html.erb deleted file mode 100644 index 8bacfdd259..0000000000 --- a/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/templates/view_signin.html.erb +++ /dev/null @@ -1,36 +0,0 @@ -

<%= options[:app_name] %>

-
-

Login Box

- -
\ No newline at end of file diff --git a/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/templates/view_signup.html.erb b/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/templates/view_signup.html.erb deleted file mode 100644 index a2b9d0b55a..0000000000 --- a/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/templates/view_signup.html.erb +++ /dev/null @@ -1,52 +0,0 @@ -

<%= options[:app_name] %>

-
-

Sign up

-
-
- <%% flash.each do |type, message| -%> -
-

<%%= message %>

-
- <%% end -%> -
- <%% form_for :<%= resource_name %>, :url => <%= controller_routing_path %>_path, :html => { :class => 'form' } do |f| -%> -
-
- -
-
- <%%= f.text_field :login, :class => 'text_field' %> -
-
-
-
- -
-
- <%%= f.text_field :email, :class => 'text_field' %> -
-
-
-
- -
-
- <%%= f.password_field :password, :class => 'text_field' %> -
-
- -
-
- -
-
- <%%= f.password_field :password_confirmation, :class => 'text_field' %> -
-
- - - <%% end -%> -
-
\ No newline at end of file diff --git a/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/templates/view_tables.html.erb b/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/templates/view_tables.html.erb deleted file mode 100644 index c8006e0567..0000000000 --- a/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/templates/view_tables.html.erb +++ /dev/null @@ -1,54 +0,0 @@ -
-
-
    -
  • <%%= link_to "#{t("web-app-theme.list", :default => "List")}", <%= controller_routing_path %>_path %>
  • -
  • <%%= link_to "#{t("web-app-theme.new", :default => "New")}", new_<%= singular_controller_routing_path %>_path %>
  • -
-
-
-

<%%= t("web-app-theme.all", :default => "All") %> <%= plural_model_name %>

-
-
- - - <% unless columns.empty? -%> - - <% end -%> - - - - <%% @<%= plural_resource_name %>.each do |<%= resource_name %>| -%> - "> - - <% unless columns.empty? -%> - - <% end -%> - - - - <%% end -%> -
ID - <%%= t("activerecord.attributes.<%= singular_controller_routing_path %>.<%= columns.first.name %>", :default => t("activerecord.labels.<%= columns.first.name %>", :default => "<%= columns.first.name.capitalize %>")) %> - <%%= t("web-app-theme.created_at", :default => "Created at") %> 
- <%%= <%= resource_name %>.id %> - - <%%= link_to <%= resource_name %>.<%= columns.first.name %>, <%= singular_controller_routing_path %>_path(<%= resource_name %>) %> - - <%%= <%= resource_name %>.created_at %> - - <%%= link_to "#{t("web-app-theme.show", :default => "Show")}", <%= singular_controller_routing_path %>_path(<%= resource_name %>) %> | - <%%= link_to "#{t("web-app-theme.edit", :default => "Edit")}", edit_<%= singular_controller_routing_path %>_path(<%= resource_name %>) %> | - <%%= link_to "#{t("web-app-theme.delete", :default => "Delete")}", <%= singular_controller_routing_path %>_path(<%= resource_name %>), :method => :delete, :confirm => "#{t("web-app-theme.confirm", :default => "Are you sure?")}" %> -
-
-
-
- <% if options.will_paginate %> - <%%= will_paginate @<%= plural_resource_name %> %> - <% end %> -
-
- - - -<%% content_for :sidebar, render(:partial => 'sidebar') -%> diff --git a/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/templates/view_text.html.erb b/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/templates/view_text.html.erb deleted file mode 100644 index a28f81b9c1..0000000000 --- a/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/templates/view_text.html.erb +++ /dev/null @@ -1,18 +0,0 @@ -
-
-

<%= resource_name.capitalize %>

-
-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. -

-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore

-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore

-
-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. -

-
-
-
- -<%% content_for :sidebar, render(:partial => 'sidebar') -%> \ No newline at end of file diff --git a/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/themed_generator.rb b/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/themed_generator.rb deleted file mode 100644 index 44d3a63108..0000000000 --- a/mayan/apps/web_theme/static/web_theme_media/lib/generators/web_app_theme/themed/themed_generator.rb +++ /dev/null @@ -1,137 +0,0 @@ -require 'rails/generators/generated_attribute' - -module WebAppTheme - class ThemedGenerator < Rails::Generators::Base - source_root File.expand_path('../templates', __FILE__) - - argument :controller_path, :type => :string - argument :model_name, :type => :string, :required => false - - class_option :layout, :type => :string, :desc => 'Specify the layout name' - class_option :engine, :type => :string, :default => 'erb', :desc => 'Specify the template engine' - class_option :will_paginate, :type => :boolean, :default => false, :desc => 'Specify if you use will_paginate' - class_option :themed_type, :type => :string, :default => 'crud', :desc => 'Specify the themed type, crud or text. Default is crud' - - def initialize(args, *options) - super(args, *options) - initialize_views_variables - end - - def copy_views - generate_views - unless options.layout.blank? - if options.engine =~ /erb/ - gsub_file(File.join('app/views/layouts', "#{options[:layout]}.html.#{options.engine}"), /\.*\<\/ul\>/mi) do |match| - match.gsub!(/\<\/ul\>/, "") - %|#{match}
  • #{plural_model_name}
  • | - end - elsif options.engine =~ /haml/ - gsub_file(File.join('app/views/layouts', "#{options[:layout]}.html.#{options.engine}"), /#main-navigation.*#wrapper.wat-cf/mi) do |match| - match.gsub!(/ #wrapper.wat-cf/, "") - %|#{match}| + - " "*6 + %|%li{:class => controller.controller_path == '#{@controller_file_path}' ? 'active' : '' }\n| + - " "*7 + %|%a{:href => #{controller_routing_path}_path} #{plural_model_name}\n| + - " "*3 + %|#wrapper.wat-cf| - end - end - end - end - - protected - - def initialize_views_variables - @base_name, @controller_class_path, @controller_file_path, @controller_class_nesting, @controller_class_nesting_depth = extract_modules(controller_path) - @controller_routing_path = @controller_file_path.gsub(/\//, '_') - @model_name = @base_name.singularize unless @model_name - @model_name = @model_name.camelize - end - - def controller_routing_path - @controller_routing_path - end - - def singular_controller_routing_path - @controller_routing_path.singularize - end - - def model_name - @model_name - end - - def plural_model_name - @model_name.pluralize - end - - def resource_name - @model_name.underscore - end - - def plural_resource_name - resource_name.pluralize - end - - ## - # Attempts to call #columns on the model's class - # If the (Active Record) #columns method does not exist, it attempts to - # perform the (Mongoid) #fields method instead - def columns - begin - excluded_column_names = %w[id created_at updated_at] - Kernel.const_get(@model_name).columns.reject{|c| excluded_column_names.include?(c.name) }.collect{|c| Rails::Generators::GeneratedAttribute.new(c.name, c.type)} - rescue NoMethodError - Kernel.const_get(@model_name).fields.collect{|c| c[1]}.reject{|c| excluded_column_names.include?(c.name) }.collect{|c| Rails::Generators::GeneratedAttribute.new(c.name, c.type.to_s)} - end - end - - def extract_modules(name) - modules = name.include?('/') ? name.split('/') : name.split('::') - name = modules.pop - path = modules.map { |m| m.underscore } - file_path = (path + [name.underscore]).join('/') - nesting = modules.map { |m| m.camelize }.join('::') - [name, path, file_path, nesting, modules.size] - end - - def generate_views - views = { - 'crud' => { - 'view_tables.html.erb' => File.join('app/views', @controller_file_path, "index.html.#{options.engine}"), - 'view_new.html.erb' => File.join('app/views', @controller_file_path, "new.html.#{options.engine}"), - 'view_edit.html.erb' => File.join('app/views', @controller_file_path, "edit.html.#{options.engine}"), - 'view_form.html.erb' => File.join('app/views', @controller_file_path, "_form.html.#{options.engine}"), - 'view_show.html.erb' => File.join('app/views', @controller_file_path, "show.html.#{options.engine}"), - 'view_sidebar.html.erb' => File.join('app/views', @controller_file_path, "_sidebar.html.#{options.engine}") - }, - 'text' => { - 'view_text.html.erb' => File.join('app/views', @controller_file_path, "show.html.#{options.engine}"), - 'view_sidebar.html.erb' => File.join('app/views', @controller_file_path, "_sidebar.html.#{options.engine}") - } - } - selected_views = views[options.themed_type] - options.engine == 'haml' ? generate_haml_views(selected_views) : generate_erb_views(selected_views) - end - - def generate_erb_views(views) - views.each do |template_name, output_path| - template template_name, output_path - end - end - - def generate_haml_views(views) - require 'haml' - Dir.mktmpdir('web-app-theme-haml') do |haml_root| - views.each do |template_name, output_path| - tmp_html_path = "#{haml_root}/#{template_name}" - tmp_haml_path = "#{haml_root}/#{template_name}.haml" - template template_name, tmp_html_path, :verbose => false - `html2haml --erb --xhtml #{tmp_html_path} #{tmp_haml_path}` - copy_file tmp_haml_path, output_path - end - end - - rescue LoadError - say "HAML is not installed, or it is not specified in your Gemfile." - exit - end - end -end diff --git a/mayan/apps/web_theme/static/web_theme_media/lib/web_app_theme.rb b/mayan/apps/web_theme/static/web_theme_media/lib/web_app_theme.rb deleted file mode 100644 index 8e3fe1c95d..0000000000 --- a/mayan/apps/web_theme/static/web_theme_media/lib/web_app_theme.rb +++ /dev/null @@ -1,2 +0,0 @@ -module WebAppTheme -end \ No newline at end of file diff --git a/mayan/apps/web_theme/static/web_theme_media/test/spec_helper.rb b/mayan/apps/web_theme/static/web_theme_media/test/spec_helper.rb deleted file mode 100644 index b30a52abff..0000000000 --- a/mayan/apps/web_theme/static/web_theme_media/test/spec_helper.rb +++ /dev/null @@ -1,5 +0,0 @@ -require "rubygems" -require "spec" -require "rails_generator" -require "rails_generator/scripts/generate" -require File.dirname(__FILE__) + "/../rails_generators/themed/themed_generator" \ No newline at end of file diff --git a/mayan/apps/web_theme/static/web_theme_media/test/themed_generator_spec.rb b/mayan/apps/web_theme/static/web_theme_media/test/themed_generator_spec.rb deleted file mode 100644 index 1cf2d8b3b2..0000000000 --- a/mayan/apps/web_theme/static/web_theme_media/test/themed_generator_spec.rb +++ /dev/null @@ -1,115 +0,0 @@ -require File.dirname(__FILE__) + "/spec_helper" - -describe ThemedGenerator, "with 'script/generate themed posts'" do - before do - Post = Class.new - Post.stub!(:columns).and_return([]) - options = {:destination => File.dirname(__FILE__), :quiet => true, :source => File.dirname(__FILE__)} - @generator = ThemedGenerator.new(["posts", "post"], options) - @generator.manifest - end - - after do - Object::send(:remove_const, :Post) - end - - it "should set the right controller_routing_path" do - @generator.instance_variable_get("@controller_routing_path").should == "posts" - end - - it "should set the right singular_controller_routing_path" do - @generator.instance_variable_get("@singular_controller_routing_path").should == "post" - end - - it "should set the right model_name" do - @generator.instance_variable_get("@model_name").should == "Post" - end - - it "should set the right plural_model_name" do - @generator.instance_variable_get("@plural_model_name").should == "Posts" - end - - it "should set the right resource_name" do - @generator.instance_variable_get("@resource_name").should == "post" - end - - it "should set the right plural_resource_name" do - @generator.instance_variable_get("@plural_resource_name").should == "posts" - end -end - -describe ThemedGenerator, "with 'script/generate themed admin/gallery_items'" do - before do - GalleryItem = Class.new - GalleryItem.stub!(:columns).and_return([]) - options = {:destination => File.dirname(__FILE__), :quiet => true, :source => File.dirname(__FILE__)} - @generator = ThemedGenerator.new(["admin/gallery_items"], options) - @generator.manifest - end - - after do - Object::send(:remove_const, :GalleryItem) - end - - it "should set the right controller_routing_path" do - @generator.instance_variable_get("@controller_routing_path").should == "admin_gallery_items" - end - - it "should set the right singular_controller_routing_path" do - @generator.instance_variable_get("@singular_controller_routing_path").should == "admin_gallery_item" - end - - it "should set the right model_name" do - @generator.instance_variable_get("@model_name").should == "GalleryItem" - end - - it "should set the right plural_model_name" do - @generator.instance_variable_get("@plural_model_name").should == "GalleryItems" - end - - it "should set the right resource_name" do - @generator.instance_variable_get("@resource_name").should == "gallery_item" - end - - it "should set the right plural_resource_name" do - @generator.instance_variable_get("@plural_resource_name").should == "gallery_items" - end -end - -describe ThemedGenerator, "with 'script/generate themed admin/gallery_items pictures'" do - before do - Picture = Class.new - Picture.stub!(:columns).and_return([]) - options = {:destination => File.dirname(__FILE__), :quiet => true, :source => File.dirname(__FILE__)} - @generator = ThemedGenerator.new(["admin/gallery_items", "picture"], options) - @generator.manifest - end - - after do - Object::send(:remove_const, :Picture) - end - - it "should set the right controller_routing_path" do - @generator.instance_variable_get("@controller_routing_path").should == "admin_gallery_items" - end - - it "should set the right singular_controller_routing_path" do - @generator.instance_variable_get("@singular_controller_routing_path").should == "admin_gallery_item" - end - - it "should set the right model_name" do - @generator.instance_variable_get("@model_name").should == "Picture" - end - - it "should set the right plural_model_name" do - @generator.instance_variable_get("@plural_model_name").should == "Pictures" - end - - it "should set the right resource_name" do - @generator.instance_variable_get("@resource_name").should == "picture" - end - - it "should set the right plural_resource_name" do - @generator.instance_variable_get("@plural_resource_name").should == "pictures" - end -end diff --git a/mayan/apps/web_theme/static/web_theme_media/web-app-theme.gemspec b/mayan/apps/web_theme/static/web_theme_media/web-app-theme.gemspec deleted file mode 100644 index 90fa3272ee..0000000000 --- a/mayan/apps/web_theme/static/web_theme_media/web-app-theme.gemspec +++ /dev/null @@ -1,117 +0,0 @@ -# Generated by jeweler -# DO NOT EDIT THIS FILE DIRECTLY -# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec' -# -*- encoding: utf-8 -*- - -Gem::Specification.new do |s| - s.name = %q{web-app-theme} - s.version = "0.7.0" - - s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= - s.authors = ["Andrea Franz"] - s.date = %q{2011-07-25} - s.description = %q{Web app theme generator for rails projects} - s.email = %q{andrea@gravityblast.com} - s.extra_rdoc_files = [ - "LICENSE", - "README.md" - ] - s.files = [ - "LICENSE", - "README.md", - "Rakefile", - "VERSION", - "config/locales/de_de.yml", - "config/locales/pt_br.yml", - "features/step_definitions/layout_steps.rb", - "features/step_definitions/themed_steps.rb", - "features/support/env.rb", - "features/theme_generator.feature", - "features/themed_generator.feature", - "images/avatar.png", - "images/icons/application_edit.png", - "images/icons/cross.png", - "images/icons/key.png", - "images/icons/tick.png", - "index.html", - "javascripts/jquery-1.3.min.js", - "javascripts/jquery.localscroll.js", - "javascripts/jquery.scrollTo.js", - "lib/generators/web_app_theme/theme/templates/layout_admin.html.erb", - "lib/generators/web_app_theme/theme/templates/layout_sign.html.erb", - "lib/generators/web_app_theme/theme/theme_generator.rb", - "lib/generators/web_app_theme/themed/templates/view_edit.html.erb", - "lib/generators/web_app_theme/themed/templates/view_form.html.erb", - "lib/generators/web_app_theme/themed/templates/view_new.html.erb", - "lib/generators/web_app_theme/themed/templates/view_show.html.erb", - "lib/generators/web_app_theme/themed/templates/view_sidebar.html.erb", - "lib/generators/web_app_theme/themed/templates/view_signin.html.erb", - "lib/generators/web_app_theme/themed/templates/view_signup.html.erb", - "lib/generators/web_app_theme/themed/templates/view_tables.html.erb", - "lib/generators/web_app_theme/themed/templates/view_text.html.erb", - "lib/generators/web_app_theme/themed/themed_generator.rb", - "lib/web_app_theme.rb", - "stylesheets/base.css", - "stylesheets/override.css", - "stylesheets/themes/activo/images/arrow.png", - "stylesheets/themes/activo/images/boxbar-background.png", - "stylesheets/themes/activo/images/button-background-active.png", - "stylesheets/themes/activo/images/button-background.png", - "stylesheets/themes/activo/images/menubar-background.png", - "stylesheets/themes/activo/style.css", - "stylesheets/themes/amro/style.css", - "stylesheets/themes/bec-green/style.css", - "stylesheets/themes/bec/style.css", - "stylesheets/themes/blue/style.css", - "stylesheets/themes/default/fonts/museo700-regular-webfont.eot", - "stylesheets/themes/default/fonts/museo700-regular-webfont.svg", - "stylesheets/themes/default/fonts/museo700-regular-webfont.ttf", - "stylesheets/themes/default/fonts/museo700-regular-webfont.woff", - "stylesheets/themes/default/fonts/museosans_500-webfont.eot", - "stylesheets/themes/default/fonts/museosans_500-webfont.svg", - "stylesheets/themes/default/fonts/museosans_500-webfont.ttf", - "stylesheets/themes/default/fonts/museosans_500-webfont.woff", - "stylesheets/themes/default/fonts/museosans_500_italic-webfont.eot", - "stylesheets/themes/default/fonts/museosans_500_italic-webfont.svg", - "stylesheets/themes/default/fonts/museosans_500_italic-webfont.ttf", - "stylesheets/themes/default/fonts/museosans_500_italic-webfont.woff", - "stylesheets/themes/default/images/arrow.png", - "stylesheets/themes/default/images/bgd.jpg", - "stylesheets/themes/default/images/boxbar-background.png", - "stylesheets/themes/default/images/button-background-active.png", - "stylesheets/themes/default/images/button-background.png", - "stylesheets/themes/default/images/messages/error.png", - "stylesheets/themes/default/images/messages/notice.png", - "stylesheets/themes/default/images/messages/warning.png", - "stylesheets/themes/default/style.css", - "stylesheets/themes/djime-cerulean/style.css", - "stylesheets/themes/drastic-dark/style.css", - "stylesheets/themes/kathleene/style.css", - "stylesheets/themes/olive/style.css", - "stylesheets/themes/orange/style.css", - "stylesheets/themes/red/style.css", - "stylesheets/themes/reidb-greenish/style.css", - "stylesheets/themes/warehouse/style.css", - "test/spec_helper.rb", - "test/themed_generator_spec.rb", - "web-app-theme.gemspec" - ] - s.homepage = %q{http://github.com/pilu/web-app-theme} - s.require_paths = ["lib"] - s.rubygems_version = %q{1.5.0} - s.summary = %q{Web app theme generator} - s.test_files = [ - "test/spec_helper.rb", - "test/themed_generator_spec.rb" - ] - - if s.respond_to? :specification_version then - s.specification_version = 3 - - if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then - else - end - else - end -end - diff --git a/mayan/apps/web_theme/templates/web_theme_base.html b/mayan/apps/web_theme/templates/web_theme_base.html deleted file mode 100644 index d7545803b3..0000000000 --- a/mayan/apps/web_theme/templates/web_theme_base.html +++ /dev/null @@ -1,142 +0,0 @@ -{% load i18n %} -{% load static %} - -{% load compress %} - -{% load theme_tags %} - -{% get_theme as web_theme %} - - - - - - {% block html_title %}{% endblock %} - - {% block web_theme_head %}{% endblock %} - - {% compress css %} - - - - - {% block web_theme_stylesheets %}{% endblock %} - {% endcompress %} - - -
    - {% if web_theme_view_type == 'plain' %} -
    - {% block content_plain %}{% endblock %} -
    - {% else %} - {% if not web_theme_hide_menus %} - - {% endif %} -
    -
    - {% if messages %} -
    -
    - {% for message in messages %} - - {% endfor %} -
    -
    - {% endif %} - {% block web_theme_messages %}{% endblock %} -
    - {#{% if not web_theme_hide_menus %}#} - {% block web_theme_secondary_navigation %}{% endblock %} - {#{% endif %}#} - {% block web_theme_content %}{% endblock %} -
    - {% block web_theme_footer %}{% endblock %} -
    - -
    - {% endif %} -
    - - {% compress js %} - - - {% if enable_scroll_js %} - - - {% endif %} - - {% block web_theme_javascript %}{% endblock %} - - - {% endcompress %} - - - diff --git a/mayan/apps/web_theme/templatetags/__init__.py b/mayan/apps/web_theme/templatetags/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/mayan/apps/web_theme/templatetags/theme_tags.py b/mayan/apps/web_theme/templatetags/theme_tags.py deleted file mode 100644 index 006a1cda1f..0000000000 --- a/mayan/apps/web_theme/templatetags/theme_tags.py +++ /dev/null @@ -1,80 +0,0 @@ -from __future__ import absolute_import - -import re - -from django.conf import settings -from django.template import Library, Node, TemplateSyntaxError -from django.utils.safestring import mark_safe - -from ..conf import settings as web_theme_settings - -register = Library() - - -class GetThemeNode(Node): - def __init__(self, var_name, *args): - self.var_name = var_name - - def render(self, context): - context['web_theme'] = web_theme_settings.THEME - context['enable_scroll_js'] = web_theme_settings.ENABLE_SCROLL_JS - return '' - - -@register.tag -def get_theme(parser, token): - try: - # Splitting by None == splitting by spaces. - tag_name, arg = token.contents.split(None, 1) - except ValueError: - raise TemplateSyntaxError('%r tag requires arguments' % token.contents.split()[0]) - - m = re.search(r'as (\w+)', arg) - if not m: - raise TemplateSyntaxError('%r tag had invalid arguments' % tag_name) - var_name = m.groups() - - return GetThemeNode(var_name) - - -class LoginRedirectNode(Node): - def render(self, context): - context['LOGIN_REDIRECT_URL'] = getattr(settings, 'LOGIN_REDIRECT_URL', '/') - return '' - - -@register.tag -def get_login_redirect_url(parser, token): - return LoginRedirectNode() - - -class SettingsNode(Node): - def __init__(self, format_string, var_name): - self.format_string = format_string - self.var_name = var_name - - def render(self, context): - context[self.var_name] = getattr(web_theme_settings, self.format_string, '') - return '' - - -@register.tag -def get_web_theme_setting(parser, token): - # This version uses a regular expression to parse tag contents. - try: - # Splitting by None == splitting by spaces. - tag_name, arg = token.contents.split(None, 1) - except ValueError: - raise TemplateSyntaxError('%r tag requires arguments' % token.contents.split()[0]) - m = re.search(r'(.*?) as (\w+)', arg) - if not m: - raise TemplateSyntaxError('%r tag had invalid arguments' % tag_name) - format_string, var_name = m.groups() - if not (format_string[0] == format_string[-1] and format_string[0] in ('"', "'")): - raise TemplateSyntaxError('%r tag\'s argument should be in quotes' % tag_name) - return SettingsNode(format_string[1:-1], var_name) - - -@register.filter -def highlight(text, word): - return mark_safe(unicode(text).replace(word, mark_safe('%s' % word))) diff --git a/mayan/apps/web_theme/views.py b/mayan/apps/web_theme/views.py deleted file mode 100644 index 60f00ef0ef..0000000000 --- a/mayan/apps/web_theme/views.py +++ /dev/null @@ -1 +0,0 @@ -# Create your views here. diff --git a/mayan/bin/mayan-edms.py b/mayan/bin/mayan-edms.py index 32d8e4f7c0..c8d9c5d18b 100755 --- a/mayan/bin/mayan-edms.py +++ b/mayan/bin/mayan-edms.py @@ -3,7 +3,7 @@ import os import sys if __name__ == "__main__": - os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mayan.settings.local") + os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mayan.settings") from django.core.management import execute_from_command_line diff --git a/mayan/celery.py b/mayan/celery.py new file mode 100644 index 0000000000..4c3995bc8b --- /dev/null +++ b/mayan/celery.py @@ -0,0 +1,13 @@ +from __future__ import absolute_import, unicode_literals + +import os + +from celery import Celery +from django.conf import settings + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mayan.settings.production') + +app = Celery('mayan') + +app.config_from_object('django.conf:settings') +app.autodiscover_tasks(lambda: settings.INSTALLED_APPS) diff --git a/mayan/settings/__init__.py b/mayan/settings/__init__.py index e13328181e..b937aad3fd 100644 --- a/mayan/settings/__init__.py +++ b/mayan/settings/__init__.py @@ -1,3 +1,4 @@ -from __future__ import absolute_import - -from .base import * +try: + from .local import * # NOQA +except ImportError: + from .base import * # NOQA diff --git a/mayan/settings/base.py b/mayan/settings/base.py index ee4cf817f1..009f9f6456 100644 --- a/mayan/settings/base.py +++ b/mayan/settings/base.py @@ -7,11 +7,14 @@ https://docs.djangoproject.com/en/1.6/topics/settings/ For the full list of settings and their values, see https://docs.djangoproject.com/en/1.6/ref/settings/ """ +from __future__ import unicode_literals # Build paths inside the project like this: os.path.join(BASE_DIR, ...) import os import sys +from django.utils.translation import ugettext_lazy as _ + _file_path = os.path.abspath(os.path.dirname(__file__)).split('/') BASE_DIR = '/'.join(_file_path[0:-2]) @@ -34,84 +37,90 @@ ALLOWED_HOSTS = [] # Application definition INSTALLED_APPS = ( - #Django - 'django.contrib.auth', - 'django.contrib.contenttypes', - 'django.contrib.sessions', - 'django.contrib.sites', - 'django.contrib.messages', + # 3rd party + 'suit', + # Django 'django.contrib.admin', 'django.contrib.admindocs', + 'django.contrib.auth', 'django.contrib.comments', + 'django.contrib.contenttypes', + 'django.contrib.messages', + 'django.contrib.sessions', + 'django.contrib.sites', 'django.contrib.staticfiles', # 3rd party - 'south', - 'rest_framework_swagger', - 'filetransfers', - 'taggit', - 'mptt', 'compressor', + 'corsheaders', + 'djcelery', + 'filetransfers', + 'mptt', 'rest_framework', 'rest_framework.authtoken', 'solo', + 'south', # Base generic + 'acls', + 'common', + 'converter', + 'django_gpg', + 'dynamic_search', + 'lock_manager', + 'mimetype', + 'navigation', 'permissions', 'project_setup', 'project_tools', 'smart_settings', - 'navigation', - 'lock_manager', - 'web_theme', - # pagination needs to go after web_theme so that the pagination template - # if found - 'pagination', - 'common', - 'django_gpg', - 'dynamic_search', - 'acls', - 'converter', 'user_management', - 'mimetype', - 'scheduler', - 'job_processor', - 'installation', # Mayan EDMS - 'storage', - 'app_registry', - 'folders', - 'tags', - 'document_comments', - 'metadata', - 'statistics', - 'documents', - 'linking', - 'document_indexing', - 'document_acls', - 'ocr', - 'sources', - 'history', - 'main', - 'rest_api', - 'document_signatures', 'checkouts', - 'bootstrap', + 'document_acls', + 'document_comments', + 'document_indexing', + 'document_signatures', + 'document_states', + 'documents', + 'events', + 'folders', + 'history', + 'installation', + 'linking', + 'mailer', + 'main', + 'metadata', + 'ocr', 'registration', - # Has to be last so the other apps can register it's signals - 'signaler' + 'rest_api', + 'sources', + 'statistics', + 'storage', + 'tags', + # Placed after rest_api to allow template overriding + 'rest_framework_swagger', + # Must be last on Django < 1.7 as per documentation + # https://django-activity-stream.readthedocs.org/en/latest/installation.html + 'actstream', + # Pagination app must go after the main app so that the main app can + # override the default pagination template + 'pagination', ) MIDDLEWARE_CLASSES = ( 'django.contrib.sessions.middleware.SessionMiddleware', + 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.locale.LocaleMiddleware', + 'common.middleware.timezone.TimezoneMiddleware', 'common.middleware.strip_spaces_widdleware.SpacelessMiddleware', 'common.middleware.login_required_middleware.LoginRequiredMiddleware', 'permissions.middleware.permission_denied_middleware.PermissionDeniedMiddleware', 'pagination.middleware.PaginationMiddleware', + 'common.middleware.ajax_redirect.AjaxRedirect', ) ROOT_URLCONF = 'mayan.urls' @@ -143,37 +152,33 @@ USE_TZ = True # Custom settings section -from django.core.urlresolvers import reverse_lazy - PROJECT_TITLE = 'Mayan EDMS' PROJECT_NAME = 'mayan' -ugettext = lambda s: s - LANGUAGES = ( - ('ar', ugettext('Arabic')), - ('bg', ugettext('Bulgarian')), - ('bs', ugettext('Bosnian (Bosnia and Herzegovina)')), - ('da', ugettext('Danish')), - ('de', ugettext('German (Germany)')), - ('en', ugettext('English')), - ('es', ugettext('Spanish')), - ('fa', ugettext('Persian')), - ('fr', ugettext('French')), - ('hu', ugettext('Hungarian')), - ('hr', ugettext('Croatian')), - ('id', ugettext('Indonesian')), - ('it', ugettext('Italian')), - ('nl', ugettext('Dutch (Nethherlands)')), - ('pl', ugettext('Polish')), - ('pt', ugettext('Portuguese')), - ('pt-br', ugettext('Portuguese (Brazil)')), - ('ro', ugettext('Romanian (Romania)')), - ('ru', ugettext('Russian')), - ('sl', ugettext('Slovenian')), - ('tr', ugettext('Turkish')), - ('vi', ugettext('Vietnamese (Viet Nam)')), - ('zh-cn', ugettext('Chinese (China)')), + ('ar', _('Arabic')), + ('bg', _('Bulgarian')), + ('bs', _('Bosnian (Bosnia and Herzegovina)')), + ('da', _('Danish')), + ('de', _('German (Germany)')), + ('en', _('English')), + ('es', _('Spanish')), + ('fa', _('Persian')), + ('fr', _('French')), + ('hu', _('Hungarian')), + ('hr', _('Croatian')), + ('id', _('Indonesian')), + ('it', _('Italian')), + ('nl', _('Dutch (Nethherlands)')), + ('pl', _('Polish')), + ('pt', _('Portuguese')), + ('pt-br', _('Portuguese (Brazil)')), + ('ro', _('Romanian (Romania)')), + ('ru', _('Russian')), + ('sl', _('Slovenian')), + ('tr', _('Turkish')), + ('vi', _('Vietnamese (Viet Nam)')), + ('zh-cn', _('Chinese (China)')), ) SITE_ID = 1 @@ -196,8 +201,8 @@ TEMPLATE_LOADERS = ( TEMPLATE_CONTEXT_PROCESSORS = ( 'django.contrib.auth.context_processors.auth', + 'django.core.context_processors.debug', 'django.core.context_processors.i18n', - 'django.core.context_processors.static', 'django.core.context_processors.request', 'django.contrib.messages.context_processors.messages', ) @@ -210,15 +215,17 @@ STATICFILES_FINDERS = ( # --------- Django compressor ------------- 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 # ---------- Django sendfile -------------- SENDFILE_BACKEND = 'sendfile.backends.simple' # --------- Web theme --------------- WEB_THEME_ENABLE_SCROLL_JS = False # --------- Django ------------------- -LOGIN_URL = reverse_lazy('login_view') -LOGIN_REDIRECT_URL = reverse_lazy('home') +LOGIN_URL = 'common:login_view' +LOGIN_REDIRECT_URL = 'main:home' +INTERNAL_IPS = ('127.0.0.1',) # -------- LoginRequiredMiddleware ---------- LOGIN_EXEMPT_URLS = ( r'^favicon\.ico$', @@ -244,14 +251,6 @@ LOGIN_EXEMPT_URLS = ( PAGINATION_INVALID_PAGE_RAISES_404 = True # ---------- Search ------------------ SEARCH_SHOW_OBJECT_TYPE = False - -SERIALIZATION_MODULES = { - 'better_yaml': 'common.serializers.better_yaml', -} -# --------- Taggit ------------ -SOUTH_MIGRATION_MODULES = { - 'taggit': 'taggit.south_migrations', -} # ---------- Django REST framework ----------- REST_FRAMEWORK = { 'PAGINATE_BY': 10, @@ -263,3 +262,19 @@ REST_FRAMEWORK = { 'rest_framework.authentication.SessionAuthentication', ) } +# ----------- Celery ---------- +CELERY_TIMEZONE = 'UTC' +CELERY_ENABLE_UTC = True +CELERY_ACCEPT_CONTENT = ['json'] +CELERY_ALWAYS_EAGER = True +CELERY_EAGER_PROPAGATES_EXCEPTIONS = True +CELERY_RESULT_SERIALIZER = 'json' +CELERY_TASK_SERIALIZER = 'json' +CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler' +TEST_RUNNER = 'djcelery.contrib.test_runner.CeleryTestSuiteRunner' +# ------------ CORS ------------ +CORS_ORIGIN_ALLOW_ALL = True +# ------ Django REST Swagger ----- +SWAGGER_SETTINGS = { + 'api_version': '0', # Specify your API's version +} diff --git a/mayan/settings/development.py b/mayan/settings/development.py index 2c052b9743..708ff92212 100644 --- a/mayan/settings/development.py +++ b/mayan/settings/development.py @@ -1,14 +1,12 @@ -from __future__ import absolute_import +from __future__ import absolute_import, unicode_literals -from .base import * +from . import * # NOQA DEBUG = True TEMPLATE_DEBUG = DEBUG ALLOWED_HOSTS = ['*'] -INTERNAL_IPS = ('127.0.0.1',) - TEMPLATE_LOADERS = ( 'django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader' @@ -19,7 +17,4 @@ INSTALLED_APPS += ( 'django_extensions', ) -# Stop debug toolbar patching! (see https://github.com/django-debug-toolbar/django-debug-toolbar/issues/524) -TEMPLATE_CONTEXT_PROCESSORS += ('django.core.context_processors.debug',) - WSGI_AUTO_RELOAD = True diff --git a/mayan/settings/development_ddt.py b/mayan/settings/development_ddt.py index 49804baca4..48e600bfbd 100644 --- a/mayan/settings/development_ddt.py +++ b/mayan/settings/development_ddt.py @@ -1,14 +1,12 @@ -from __future__ import absolute_import +from __future__ import absolute_import, unicode_literals -from .base import * +from . import * # NOQA DEBUG = True TEMPLATE_DEBUG = DEBUG ALLOWED_HOSTS = ['*'] -INTERNAL_IPS = ('127.0.0.1',) - TEMPLATE_LOADERS = ( 'django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader' @@ -20,11 +18,10 @@ INSTALLED_APPS += ( 'debug_toolbar' ) -# Stop debug toolbar patching! (see https://github.com/django-debug-toolbar/django-debug-toolbar/issues/524) +# Stop debug toolbar patching! +# see https://github.com/django-debug-toolbar/django-debug-toolbar/issues/524 DEBUG_TOOLBAR_PATCH_SETTINGS = False -TEMPLATE_CONTEXT_PROCESSORS += ('django.core.context_processors.debug',) - WSGI_AUTO_RELOAD = True MIDDLEWARE_CLASSES = ('debug_toolbar.middleware.DebugToolbarMiddleware',) + MIDDLEWARE_CLASSES diff --git a/mayan/settings/local.py b/mayan/settings/local.py deleted file mode 100644 index e13328181e..0000000000 --- a/mayan/settings/local.py +++ /dev/null @@ -1,3 +0,0 @@ -from __future__ import absolute_import - -from .base import * diff --git a/mayan/settings/production.py b/mayan/settings/production.py index b8b0de1a1f..fbb5cbf4cd 100644 --- a/mayan/settings/production.py +++ b/mayan/settings/production.py @@ -1,5 +1,9 @@ -from __future__ import absolute_import -from .local import * +from __future__ import absolute_import, unicode_literals + +from . import * # NOQA DEBUG = False -ALLOWED_HOSTS = ['*'] # Update this accordingly; https://docs.djangoproject.com/en/dev/ref/settings/#allowed-hosts + +# Update this accordingly; +# https://docs.djangoproject.com/en/dev/ref/settings/#allowed-hosts +ALLOWED_HOSTS = ['*'] diff --git a/mayan/apps/lock_manager/conf/__init__.py b/mayan/settings/travis/__init__.py similarity index 100% rename from mayan/apps/lock_manager/conf/__init__.py rename to mayan/settings/travis/__init__.py diff --git a/mayan/settings/travis/base.py b/mayan/settings/travis/base.py new file mode 100644 index 0000000000..aa39d38640 --- /dev/null +++ b/mayan/settings/travis/base.py @@ -0,0 +1,43 @@ +from __future__ import absolute_import, unicode_literals + +from .. import * + +LOGGING = { + 'version': 1, + 'disable_existing_loggers': False, + 'formatters': { + 'verbose': { + 'format': '%(levelname)s %(asctime)s %(name)s %(process)d %(thread)d %(message)s' + }, + 'intermediate': { + 'format': '%(name)s <%(process)d> [%(levelname)s] "%(funcName)s() %(message)s"' + }, + 'simple': { + 'format': '%(levelname)s %(message)s' + }, + }, + 'handlers': { + 'console':{ + 'level':'DEBUG', + 'class':'logging.StreamHandler', + 'formatter': 'intermediate' + } + }, + 'loggers': { + 'documents': { + 'handlers':['console'], + 'propagate': True, + 'level':'DEBUG', + }, + 'converter': { + 'handlers':['console'], + 'propagate': True, + 'level':'DEBUG', + }, + 'ocr': { + 'handlers':['console'], + 'propagate': True, + 'level':'DEBUG', + }, + } +} diff --git a/mayan/settings/travis/db_mysql.py b/mayan/settings/travis/db_mysql.py new file mode 100644 index 0000000000..4e7a48a743 --- /dev/null +++ b/mayan/settings/travis/db_mysql.py @@ -0,0 +1,11 @@ +from __future__ import unicode_literals + +from .base import * + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.mysql', + 'NAME': 'mayan_edms', + 'USER': 'travis', + } +} diff --git a/mayan/settings/travis/db_postgres.py b/mayan/settings/travis/db_postgres.py new file mode 100644 index 0000000000..70f10af28f --- /dev/null +++ b/mayan/settings/travis/db_postgres.py @@ -0,0 +1,11 @@ +from __future__ import unicode_literals + +from .base import * + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.postgresql_psycopg2', + 'NAME': 'mayan_edms', + 'USER': 'postgres', + } +} diff --git a/mayan/urls.py b/mayan/urls.py index 2b5753c28a..f11cf59f99 100644 --- a/mayan/urls.py +++ b/mayan/urls.py @@ -1,3 +1,5 @@ +from __future__ import unicode_literals + from django.conf import settings from django.conf.urls import include, patterns, url from django.contrib import admin @@ -5,40 +7,37 @@ from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', - (r'^admin/doc/', include('django.contrib.admindocs.urls')), - (r'^admin/', include(admin.site.urls)), - - (r'^', include('common.urls')), - (r'^', include('main.urls')), + url(r'^', include('main.urls', namespace='main')), + url(r'^accounts/', include('user_management.urls', namespace='user_management')), + url(r'^acls/', include('acls.urls', namespace='acls')), + url(r'^admin/', include(admin.site.urls)), + url(r'^api/', include('rest_api.urls')), + url(r'^checkouts/', include('checkouts.urls', namespace='checkouts')), + url(r'^comments/', include('document_comments.urls', namespace='comments')), + url(r'^common/', include('common.urls', namespace='common')), + url(r'^document/acls/', include('document_acls.urls', namespace='document_acls')), + url(r'^document/signatures/', include('document_signatures.urls', namespace='signatures')), + url(r'^document/states/', include('document_states.urls', namespace='document_states')), + url(r'^documents/', include('documents.urls', namespace='documents')), url(r'^docs/', include('rest_framework_swagger.urls')), - (r'^documents/', include('documents.urls')), - (r'^folders/', include('folders.urls')), - (r'^search/', include('dynamic_search.urls')), - (r'^ocr/', include('ocr.urls')), - (r'^permissions/', include('permissions.urls')), - (r'^tags/', include('tags.urls')), - (r'^comments/', include('document_comments.urls')), - (r'^user_management/', include('user_management.urls')), - (r'^settings/', include('smart_settings.urls')), - (r'^metadata/', include('metadata.urls')), - (r'^linking/', include('linking.urls')), - (r'^document_indexing/', include('document_indexing.urls')), - (r'^history/', include('history.urls')), - (r'^converter/', include('converter.urls')), - (r'^sources/', include('sources.urls')), - (r'^project_setup/', include('project_setup.urls')), - (r'^project_tools/', include('project_tools.urls')), - (r'^acls/', include('acls.urls')), - (r'^document_acls/', include('document_acls.urls')), - (r'^api/', include('rest_api.urls')), - (r'^gpg/', include('django_gpg.urls')), - (r'^documents/signatures/', include('document_signatures.urls')), - (r'^checkouts/', include('checkouts.urls')), - (r'^installation/', include('installation.urls')), - (r'^scheduler/', include('scheduler.urls')), - (r'^bootstrap/', include('bootstrap.urls')), - (r'^registration/', include('registration.urls')), - (r'^statistics/', include('statistics.urls', namespace='statistics')), + url(r'^events/', include('events.urls', namespace='events')), + url(r'^folders/', include('folders.urls', namespace='folders')), + url(r'^gpg/', include('django_gpg.urls', namespace='django_gpg')), + url(r'^indexing/', include('document_indexing.urls', namespace='indexing')), + url(r'^installation/', include('installation.urls', namespace='installation')), + url(r'^linking/', include('linking.urls', namespace='linking')), + url(r'^mailer/', include('mailer.urls', namespace='mailer')), + url(r'^metadata/', include('metadata.urls', namespace='metadata')), + url(r'^ocr/', include('ocr.urls', namespace='ocr')), + url(r'^permissions/', include('permissions.urls', namespace='permissions')), + url(r'^registration/', include('registration.urls', namespace='registration')), + url(r'^search/', include('dynamic_search.urls', namespace='search')), + url(r'^settings/', include('smart_settings.urls', namespace='settings')), + url(r'^setup/', include('project_setup.urls', namespace='project_setup')), + url(r'^sources/', include('sources.urls', namespace='sources')), + url(r'^statistics/', include('statistics.urls', namespace='statistics')), + url(r'^tags/', include('tags.urls', namespace='tags')), + url(r'^tools/', include('project_tools.urls', namespace='project_tools')), ) diff --git a/requirements/common.txt b/requirements/common.txt index 504b8a9017..8687f7c332 100644 --- a/requirements/common.txt +++ b/requirements/common.txt @@ -1,36 +1,39 @@ -APScheduler==2.1.2 - +celery==3.1.17 cssmin==0.2.0 -Django==1.6.5 +Django==1.6.8 +django-activity-stream==0.5.1 +django-celery==3.1.16 +django-compressor==1.4 +django-cors-headers==0.13 django-filetransfers==0.1.0 django-pagination==1.0.7 -django-compressor==1.4 -django-taggit==0.12 +django-model-utils==2.2 django-mptt==0.6.1 -django-rest-swagger==0.1.14 +django-rest-swagger==0.2.0 django-sendfile==0.3.6 -django-solo==1.0.5 -djangorestframework==2.3.14 +django-solo==1.1.0 +django-suit==0.2.12 +djangorestframework==2.4.4 GitPython==0.3.2.RC1 -ghostscript==0.4.1 -Pillow==2.5.0 -PyYAML==3.11 +Pillow==2.6.1 pdfminer==20110227 -psutil==2.1.1 +psutil==2.1.3 +pycountry==1.8 pytz==2014.4 -python-gnupg==0.3.6 +python-dateutil==2.4.0 +python-gnupg==0.3.7 python-hkp==0.1.3 python-magic==0.4.6 -requests==2.3.0 +requests==2.4.3 sh==1.09 slate==0.3 -South==1.0 +South==1.0.2 -unicode-slugify==0.1 +unicode-slugify==0.1.1 wsgiref==0.1.2 diff --git a/requirements/development.txt b/requirements/development.txt index 084871c086..8c4a0ff5c3 100644 --- a/requirements/development.txt +++ b/requirements/development.txt @@ -1,7 +1,7 @@ # requirements/development.txt -r common.txt Werkzeug==0.9.6 -django-extensions==1.3.8 +django-extensions==1.4.5 django-rosetta==0.7.4 transifex-client==0.10 django-debug-toolbar==1.2.1 diff --git a/setup.py b/setup.py index 9666fa72d6..e6c769aab3 100644 --- a/setup.py +++ b/setup.py @@ -53,33 +53,37 @@ def find_packages(directory): return packages install_requires = """ -APScheduler==2.1.2 +celery==3.1.17 cssmin==0.2.0 -Django==1.6.5 +Django==1.6.8 +django-activity-stream==0.5.1 +django-celery==3.1.16 +django-compressor==1.4 +django-cors-headers==0.13 django-filetransfers==0.1.0 django-pagination==1.0.7 -django-compressor==1.4 -django-taggit==0.12 +django-model-utils==2.2 django-mptt==0.6.1 -django-rest-swagger==0.1.14 +django-rest-swagger==0.2.0 django-sendfile==0.3.6 -django-solo==1.0.5 -djangorestframework==2.3.14 +django-solo==1.1.0 +django-suit==0.2.12 +djangorestframework==2.4.4 GitPython==0.3.2.RC1 -ghostscript==0.4.1 -Pillow==2.5.0 -PyYAML==3.11 +Pillow==2.6.1 pdfminer==20110227 -psutil==2.1.1 +psutil==2.1.3 +pycountry==1.8 pytz==2014.4 -python-gnupg==0.3.6 +python-dateutil==2.4.0 +python-gnupg==0.3.7 python-hkp==0.1.3 python-magic==0.4.6 -requests==2.3.0 +requests==2.4.3 sh==1.09 slate==0.3 -South==1.0 -unicode-slugify==0.1 +South==1.0.2 +unicode-slugify==0.1.1 wsgiref==0.1.2 """.split()