Merge branch 'master' into feature/sane_source

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
Roberto Rosario
2017-06-16 18:11:36 -04:00
parent 091bac591d
commit 14533da646
1709 changed files with 94590 additions and 36499 deletions

41
.gitignore vendored
View File

@@ -3,26 +3,27 @@
*.pyo
*.sqlite
*.sqlite3
settings_local.py
/celerybeat-schedule
document_storage/
/misc/mayan.geany
mayan/media/document_cache/
build/
_build/
gpg_home/
/mayan/media/static/
/whoosh_index/
/fabfile_install
/venv/
.coverage
/dist/
.idea/
static_collected/
*egg-info*
mayan/settings/local.py
.vagrant
.tox/
coverage.xml
.coverage
.coverage.tox*
.idea/
.tox/
.vagrant
_build/
build/
coverage.xml
document_storage/
gpg_home/
htmlcov/
mayan/media/
mayan/media/document_cache/
mayan/settings/local.py
settings_local.py
static_collected/
/celerybeat-schedule
/fabfile_install
/dist/
/misc/mayan.geany
/mayan/media/static/
/venv/
/whoosh_index/

View File

@@ -21,7 +21,7 @@ test:mysql:
- pip install mysql-python
- apt-get install -qq mysql-client
- mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD" -e "set global character_set_server=utf8mb4;"
- coverage run manage.py runtests --settings=mayan.settings.testing.gitlab-ci.db_mysql --nomigrations
- coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.gitlab-ci.db_mysql --nomigrations
- bash <(curl https://raw.githubusercontent.com/codecov/codecov-bash/master/codecov) -t $CODECOV_TOKEN
tags:
- mysql
@@ -30,12 +30,12 @@ test:postgres:
- apt-get install -qq libpq-dev
- pip install -r requirements/testing.txt
- pip install psycopg2
- coverage run manage.py runtests --settings=mayan.settings.testing.gitlab-ci.db_postgres --nomigrations
- coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.gitlab-ci.db_postgres --nomigrations
- bash <(curl https://raw.githubusercontent.com/codecov/codecov-bash/master/codecov) -t $CODECOV_TOKEN
tags:
- postgres
test:sqlite:
script:
- pip install -r requirements/testing.txt
- coverage run manage.py runtests --settings=mayan.settings.testing.gitlab-ci --nomigrations
- coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.gitlab-ci --nomigrations
- bash <(curl https://raw.githubusercontent.com/codecov/codecov-bash/master/codecov) -t $CODECOV_TOKEN

View File

@@ -1,3 +1,5 @@
dist: trusty
sudo: required
language: python
python:
- 2.7
@@ -8,7 +10,7 @@ env:
- DB=sqlite
before_install:
- sudo apt-get update -qq
- sudo apt-get install -qq python-dev gcc tesseract-ocr tesseract-ocr-deu unpaper ghostscript libjpeg-dev libpng-dev poppler-utils libreoffice
- sudo apt-get install -qq python-dev python-pip gcc tesseract-ocr tesseract-ocr-deu ghostscript libjpeg-dev libpng-dev libtiff-dev poppler-utils libreoffice
install:
- "pip install -r requirements/testing.txt"
- if [[ $DB == mysql ]]; then pip install -q mysql-python; fi
@@ -17,9 +19,9 @@ before_script:
- mysql -e 'create database mayan_edms;'
- psql -c 'create database mayan_edms;' -U postgres
script:
- if [[ $DB == mysql ]]; then coverage run manage.py runtests --settings=mayan.settings.testing.travis.db_mysql --nomigrations; fi
- if [[ $DB == postgres ]]; then coverage run manage.py runtests --settings=mayan.settings.testing.travis.db_postgres --nomigrations; fi
- if [[ $DB == sqlite ]]; then coverage run manage.py runtests --settings=mayan.settings.testing.base --nomigrations; fi
- if [[ $DB == mysql ]]; then coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.travis.db_mysql --nomigrations; fi
- if [[ $DB == postgres ]]; then coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.travis.db_postgres --nomigrations; fi
- if [[ $DB == sqlite ]]; then coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.base --nomigrations; fi
after_success:
- coveralls
branches:

View File

@@ -19,6 +19,12 @@ source_lang = en
source_file = mayan/apps/authentication/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.cabinets-2-0]
file_filter = mayan/apps/cabinets/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/cabinets/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.checkouts-2-0]
file_filter = mayan/apps/checkouts/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
@@ -91,12 +97,6 @@ source_lang = en
source_file = mayan/apps/folders/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.installation-2-0]
file_filter = mayan/apps/installation/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/installation/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.linking-2-0]
file_filter = mayan/apps/linking/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
@@ -127,12 +127,6 @@ source_lang = en
source_file = mayan/apps/mirroring/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.mirroring-2-0]
file_filter = mayan/apps/mirroring/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/mirroring/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.motd-2-0]
file_filter = mayan/apps/motd/locale/<lang>/LC_MESSAGES/django.po
source_lang = en

View File

@@ -17,7 +17,7 @@ same properties that can trigger the issue and upload that file instead.
- Add steps that trigger the issue in a **repeatable manner**.
- **Screenshots** go a long way in helping understand problems.
- The issue must be related to the code only, do not open issues for problems
with webservers, cloud providers, etc.
with deployments, webservers, cloud providers, etc.
- Do not open issues asking for **support or consulting**.
Code
@@ -40,7 +40,19 @@ following branches:
are unstable and should not be used in production.
1. Start making your changes in your own separate branch.
1. Write a test which shows that the bug was fixed or that the feature works as expected.
1. Write a test which shows that the bug was fixed or that the feature works as
expected.
1. Sign your work. Your signature certifies your submission according to the
articles of the [Developer Certificate of Origin](https://gitlab.com/mayan-edms/mayan-edms/blob/master/DCO).
The sign-off should be in the form:
````
Signed-off-by: John Doe <john.doe@example.com>
````
You must use your real name and email, pseudonyms or anonymous contributions
are not allowed. If you set your user.name and user.email git configs, you can
sign your commit automatically with git commit -s.
1. Submit a merge request for your changes.
Feature requests
@@ -64,8 +76,3 @@ Code style
----------
- Refer to the [Development](http://mayan.readthedocs.io/en/latest/topics/development.html)
chapter for information and examples of the code style.
License
-------
By contributing your code, you agree to license your contribution under the
terms of the project's license.

36
DCO Normal file
View File

@@ -0,0 +1,36 @@
Developer Certificate of Origin
Version 1.1
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
660 York Street, Suite 102,
San Francisco, CA 94110 USA
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.

View File

@@ -1,4 +1,25 @@
2.2 (2016-XX-XX)
XX (2017-XX-XX)
===============
- Add Django-mathfilters.
- Improve render of documents with no pages.
2.3 (2017-06-08)
================
- Allow for bigger indexing expression templates.
- Auto select checkbox when updating metadata values. GitLab issue #371.
- Added support for passing the options allow-other and allow-root to the
FUSE index mirror. GitLab issue #385
- Add support for check for the latest released version of Mayan from the
About menu.
- Support for rebuilding specific indexes. GitLab issue #372.
- Rewrite document indexing code to be faster and use less locking.
- Use a predefined file path for the file lock.
- Catch documents with not document version when displaying their thumbnails.
- Document page navigation fix when using Mayan as a sub URL app.
- Add support for indexing on workflow state changes.
- Add search model list API endpoint.
2.2 (2017-04-26)
================
- Remove the installation app (GitLab #301).
- Add support for document page search
@@ -8,13 +29,54 @@
- Improve upgrade instructions
- New image caching pipeline
- New drop down menus for the documents, folders and tags app as well as for
the user links
the user links.
- New Dashboard view
- Moved licenses to their own module in every app
- Update project to work with Django 1.10.4.
- Tags are alphabetically ordered by label (GitLab #342).
- Stop loading theme fonts from the web (GitLab #343).
- Add support for attaching multiple tags (GitLab #307).
- Integrate the Cabinets app.
2.1.11 (2017-03-14)
===================
- Added a quick rename serializer to the document type API serializer.
- Added per document type, workflow list API view.
- Mayan EDMS was adopted a version 1.1 of the Linux Foundation Developer Certificate of Origin.
- Added the detail url of a permission in the permission serializer.
- Added endpoints for the ACL app API.
- Implemented document workflows transition ACLs. GitLab issue #321.
- Add document comments API endpoints. GitHub issue #249.
- Add support for overriding the Celery class.
- Changed the document upload view in source app to not use the HTTP referer
URL blindly, but instead recompose the URL using known view name. Needed
when integrating Mayan EDMS into other app via using iframes.
- Addes size field to the document version serializer.
- Removed the serializer from the deleted document restore API endpoint.
- Added support for adding or editing document types to smart links via the
API.
2.1.10 (2017-02-13)
===================
- Update Makefile to use twine for releases.
- Add Makefile target to make test releases.
2.1.9 (2017-02-13)
==================
- Update make file to Workaround long standing pypa wheel bug #99
2.1.8 (2017-02-12)
==================
- Fixes in the trashed document API endpoints.
- Improved tags API PUT and PATCH endpoints.
- Bulk document adding when creating and editing tags.
- The version of django-mptt is preserved in case mayan-cabinets is installed.
- Add Django GPG API endpoints for singing keys.
- Add API endpoints for the document states (workflows) app.
- Add API endpoints for the messsage of the day (MOTD) app.
- Add Smart link API endpoints.
- Add writable versions of the Document and Document Type serializers (GitLab issues #348 and #349).
- Close GitLab issue #310 "Metadata's lookup with chinese messages when new document"
2.1.7 (2017-02-01)
==================
@@ -26,7 +88,7 @@ the user links
- Enable the parser and validation fields of the metadata serializer.
2.1.6 (2016-11-23)
=================
==================
- Fix variable name typo in the rotation transformation class.
- Update translations

View File

@@ -1,3 +1,3 @@
include README.rst LICENSE HISTORY.rst
recursive-include mayan *.txt *.html *.css *.ico *.png *.jpg *.js *.po *.mo *.ttf *.woff *.woff2 LICENSE
include README.md LICENSE HISTORY.rst mayan/LICENSE
recursive-include mayan/apps *.txt *.html *.css *.ico *.png *.jpg *.js *.po *.mo *.ttf *.woff *.woff2 *.gif *.eot *.svg *.doc *.pdf *.tiff *.sig *.asc *.gpg *.zip
global-exclude mayan/settings/local.py mayan/settings/travis/* mayan/media/*

View File

@@ -7,8 +7,8 @@ help:
@echo "clean-pyc - Remove Python artifacts."
@echo "clean - Remove Python and build artifacts."
@echo "test MODULE=<python module name> - Run tests for a single App, module or test class."
@echo "test-all - Run all tests."
@echo "test MODULE=<python module name> - Run tests for a single App, module or test class."
@echo "docs_serve - Run the livehtml documentation generator."
@echo "translations_make - Refresh all translation files."
@@ -23,11 +23,23 @@ help:
@echo "sdist - Build the source distribution package."
@echo "wheel - Build the wheel distribution package."
@echo "release - Package (sdist and wheel) and upload a release."
@echo "test_release - Package (sdist and wheel) and upload to the PyPI test server."
@echo "release_test_via_docker_ubuntu - Package (sdist and wheel) and upload to the PyPI test server using an Ubuntu Docker builder."
@echo "release_test_via_docker_alpine - Package (sdist and wheel) and upload to the PyPI test server using an Alpine Docker builder."
@echo "release_via_docker_ubuntu - Package (sdist and wheel) and upload to PyPI using an Ubuntu Docker builder."
@echo "release_via_docker_alpine - Package (sdist and wheel) and upload to PyPI using an Alpine Docker builder."
@echo "runserver - Run the development server."
@echo "runserver_plus - Run the Django extension's development server."
@echo "shell_plus - Run the shell_plus command."
@echo "docker_services_on - Launch and initialize production-like services using Docker (Postgres and Redis)."
@echo "docker_services_off - Stop and delete the Docker production-like services."
@echo "docker_services_frontend - Launch a front end instance that uses the production-like services."
@echo "docker_services_worker - Launch a worker instance that uses the production-like services."
@echo "docker_service_mysql_on - Launch and initialize a MySQL Docker container."
@echo "docker_service_mysql_off - Stop and delete the MySQL Docker container."
@echo "safety_check - Run a package safety check."
@@ -52,7 +64,7 @@ test:
./manage.py test $(MODULE) --settings=mayan.settings.testing --nomigrations
test-all:
./manage.py runtests --settings=mayan.settings.testing --nomigrations
./manage.py test --mayan-apps --settings=mayan.settings.testing --nomigrations
# Documentation
@@ -90,17 +102,33 @@ requirements_testing:
# Releases
release: clean
python setup.py sdist bdist_wheel upload
test_release: clean wheel
twine upload dist/* -r testpypi
@echo "Test with: pip install -i https://testpypi.python.org/pypi mayan-edms"
release: clean wheel
twine upload dist/* -r pypi
sdist: clean
python setup.py sdist
ls -l dist
wheel: clean
python setup.py bdist_wheel
wheel: clean sdist
pip wheel --no-index --no-deps --wheel-dir dist dist/*.tar.gz
ls -l dist
release_test_via_docker_ubuntu:
docker run --rm --name mayan_release -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source ubuntu:16.04 /bin/bash -c "cp -r /host_source/* . && apt-get update && apt-get install make python-pip -y && pip install -r requirements/build.txt && cp -r /host_home/.pypirc ~/.pypirc && make test_release"
release_via_docker_ubuntu:
docker run --rm --name mayan_release -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source ubuntu:16.04 /bin/bash -c "cp -r /host_source/* . && apt-get update && apt-get install make python-pip -y && pip install -r requirements/build.txt && cp -r /host_home/.pypirc ~/.pypirc && make release"
release_test_via_docker_alpine:
docker run --rm --name mayan_release -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source alpine /bin/busybox sh -c "cp -r /host_source/* . && apk update && apk add python2 py2-pip make && pip install -r requirements/build.txt && cp -r /host_home/.pypirc ~/.pypirc && make test_release"
release_via_docker_alpine:
docker run --rm --name mayan_release -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source alpine /bin/busybox sh -c "cp -r /host_source/* . && apk update && apk add python2 py2-pip make && pip install -r requirements/build.txt && cp -r /host_home/.pypirc ~/.pypirc && make release"
# Dev server
@@ -113,9 +141,33 @@ runserver_plus:
shell_plus:
./manage.py shell_plus --settings=mayan.settings.development
docker_services_on:
docker run -d --name redis -p 6379:6379 redis
docker run -d --name postgres -p 5432:5432 postgres
while ! nc -z 127.0.0.1 6379; do sleep 1; done
while ! nc -z 127.0.0.1 5432; do sleep 1; done
sleep 1
./manage.py initialsetup --settings=mayan.settings.testing.docker
docker_services_off:
docker stop postgres redis
docker rm postgres redis
docker_services_frontend:
./manage.py runserver --settings=mayan.settings.testing.docker
docker_services_worker:
./manage.py celery worker --settings=mayan.settings.testing.docker -B -l INFO -O fair
docker_service_mysql_on:
docker run -d --name mysql -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=True -e MYSQL_DATABASE=mayan_edms mysql
while ! nc -z 127.0.0.1 3306; do sleep 1; done
docker_service_mysql_off:
docker stop mysql
docker rm mysql
# Security
safety_check:
safety check

89
README.md Normal file
View File

@@ -0,0 +1,89 @@
[![pypi][pypi]][pypi-url]
[![builds][builds]][builds-url]
[![coverage][cover]][cover-url]
![python][python]
![license][license]
[pypi]: http://img.shields.io/pypi/v/mayan-edms.svg
[pypi-url]: http://badge.fury.io/py/mayan-edms
[builds]: https://gitlab.com/mayan-edms/mayan-edms/badges/master/build.svg
[builds-url]: https://gitlab.com/mayan-edms/mayan-edms/pipelines
[cover]: https://codecov.io/gitlab/mayan-edms/mayan-edms/coverage.svg?branch=master
[cover-url]: https://codecov.io/gitlab/mayan-edms/mayan-edms?branch=master
[python]: https://img.shields.io/pypi/pyversions/mayan-edms.svg
[python-url]: https://img.shields.io/pypi/l/mayan-edms.svg?style=flat
[license]: https://img.shields.io/pypi/l/mayan-edms.svg?style=flat
[license-url]: https://img.shields.io/pypi/l/mayan-edms.svg?style=flat
<div align="center">
<a href="http://www.mayan-edms.com">
<img width="200" heigth="200" src="https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/mayan_logo.png">
</a>
<br>
<br>
<p>
Mayan EDMS is a document management system. Its main purpose is to store,
introspect, and categorize files, with a strong emphasis on preserving the
contextual and business information of documents. It can also OCR, preview,
label, sign, send, and receive thoses files. Other features of interest
are its workflow system, role based access control, and REST API.
<p>
<p align="center">
<img src="https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/overview.gif">
</p>
</div>
<h2 align="center">Installation</h2>
The easiest way to use Mayan EDMS is by using the official
[Docker](https://www.docker.com/) image. Make sure Docker is properly installed
and working before attempting to install Mayan EDMS.
With Docker properly installed, proceed to download the Mayan EDMS image using
the command:
```bash
$ docker pull mayanedms/mayanedms:2.3
```
After the image finishes downloading, initialize a Mayan EDMS container.
```bash
$ docker run -d --name mayan-edms --restart=always -p 80:80 \
-v mayan_data:/var/lib/mayan mayanedms/mayanedms:2.3
```
Point your browser to the IP address 127.0.0.1 (or the alternate port chosen,
ie: 127.0.0.1:81) and use the automatically created admin account.
All files will be stored in the Docker volume ``mayan_data``
If another web server is running on port 80 use a different port in the ``-p``
option, ie: ``-p 81:80``.
For the complete set of installation, configuration, upgrade, and backup
instructions visit the Mayan EDMS Docker Hub page at:
https://hub.docker.com/r/mayanedms/mayanedms/
<h2 align="center">Important links</h2>
- [Homepage](http://www.mayan-edms.com)
- [Videos](https://www.youtube.com/channel/UCJOOXHP1MJ9lVA7d8ZTlHPw)
- [Documentation](http://mayan.readthedocs.io/en/stable/)
- [Paid support](http://www.mayan-edms.com/providers/)
- [Roadmap](https://gitlab.com/mayan-edms/mayan-edms/wikis/roadmap)
- [Contributing](https://gitlab.com/mayan-edms/mayan-edms/blob/master/CONTRIBUTING.md)
- [Community forum](https://groups.google.com/forum/#!forum/mayan-edms)
- [Community forum archive](http://mayan-edms.1003.x6.nabble.com/)
- [Source code, issues, bugs](https://gitlab.com/mayan-edms/mayan-edms)
- [Plug-ins, other related projects](https://gitlab.com/mayan-edms/)
- [Translations](https://www.transifex.com/rosarior/mayan-edms/)

View File

@@ -1,65 +1,75 @@
|PyPI badge| |Build Status| |Coverage badge| |Documentation| |License badge| |Python version|
|pypi| |builds| |coverage| |python| |license|
|Logo|
Description
-----------
.. image:: https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/mayan_logo.png
:align: center
:width: 200
:height: 200
Free Open Source Electronic Document Management System.
Mayan EDMS is a document management system. Its main purpose is to store,
introspect, and categorize files, with a strong emphasis on preserving the
contextual and business information of documents. It can also OCR, preview,
label, sign, send, and receive thoses files. Other features of interest
are its workflow system, role based access control, and REST API.
`Website`_
.. image:: https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/overview.gif
:align: center
`Video demostration`_
`Documentation`_
The easiest way to use Mayan EDMS is by using the official Docker_ image.
Make sure Docker is properly installed and working before attempting to install
Mayan EDMS.
`Translations`_
`Mailing list (via Google Groups)`_
|Animation|
License
-------
This project is open sourced under `Apache 2.0 License`_.
Installation
------------
To install Mayan EDMS, simply do:
With Docker properly installed, proceed to download the Mayan EDMS image using
the command:
.. code-block:: bash
$ virtualenv venv
$ source venv/bin/activate
(venv) $ pip install mayan-edms
(venv) $ mayan-edms.py initialsetup
(venv) $ mayan-edms.py runserver
$ docker pull mayanedms/mayanedms:2.3
Point your browser to 127.0.0.1:8000 and use the automatically created admin
account.
After the image finishes downloading, initialize a Mayan EDMS container.
.. code-block:: bash
$ docker run -d --name mayan-edms --restart=always -p 80:80 \
-v mayan_data:/var/lib/mayan mayanedms/mayanedms:2.3
Point your browser to the IP address 127.0.0.1 (or the alternate port chosen,
ie: 127.0.0.1:81) and use the automatically created admin account.
All files will be stored in the Docker volume ``mayan_data``
If another web server is running on port 80 use a different port in the ``-p``
option, ie: ``-p 81:80``.
For the complete set of installation, configuration, upgrade, and backup
instructions visit the Mayan EDMS Docker Hub page at:
https://hub.docker.com/r/mayanedms/mayanedms/
.. _Docker: https://www.docker.com/
.. _Website: http://www.mayan-edms.com
.. _Video demostration: http://bit.ly/pADNXv
.. _Documentation: http://readthedocs.org/docs/mayan/en/latest/
.. _Translations: https://www.transifex.com/projects/p/mayan-edms/
.. _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
Important links
.. |Build Status| image:: https://gitlab.com/mayan-edms/mayan-edms/badges/master/build.svg
:target: https://gitlab.com/mayan-edms/mayan-edms/commits/master
.. |Logo| image:: https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/mayan_logo.png
.. |Animation| image:: https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/overview.gif
.. |PyPI badge| image:: http://img.shields.io/pypi/v/mayan-edms.svg?style=flat
- `Homepage <http://www.mayan-edms.com>`__
- `Videos <https://www.youtube.com/channel/UCJOOXHP1MJ9lVA7d8ZTlHPw>`__
- `Documentation <http://mayan.readthedocs.io/en/stable/>`__
- `Paid support <http://www.mayan-edms.com/providers/>`__
- `Roadmap <https://gitlab.com/mayan-edms/mayan-edms/wikis/roadmap>`__
- `Contributing <https://gitlab.com/mayan-edms/mayan-edms/blob/master/CONTRIBUTING.md>`__
- `Community forum <https://groups.google.com/forum/#!forum/mayan-edms>`__
- `Community forum archive <http://mayan-edms.1003.x6.nabble.com/>`__
- `Source code, issues, bugs <https://gitlab.com/mayan-edms/mayan-edms>`__
- `Plug-ins, other related projects <https://gitlab.com/mayan-edms/>`__
- `Translations <https://www.transifex.com/rosarior/mayan-edms/>`__
.. |pypi| image:: http://img.shields.io/pypi/v/mayan-edms.svg
:target: http://badge.fury.io/py/mayan-edms
.. |License badge| image:: https://img.shields.io/pypi/l/mayan-edms.svg?style=flat
.. |Analytics| image:: https://ga-beacon.appspot.com/UA-52965619-2/mayan-edms/readme?pixel
.. |Coverage badge| image:: https://codecov.io/gitlab/mayan-edms/mayan-edms/coverage.svg?branch=master
.. |builds| image:: https://gitlab.com/mayan-edms/mayan-edms/badges/master/build.svg
:target: https://gitlab.com/mayan-edms/mayan-edms/pipelines
.. |coverage| image:: https://codecov.io/gitlab/mayan-edms/mayan-edms/coverage.svg?branch=master
:target: https://codecov.io/gitlab/mayan-edms/mayan-edms?branch=master
.. |Documentation| image:: https://readthedocs.org/projects/mayan/badge/?version=latest
:target: http://mayan.readthedocs.io/en/latest
.. |Python version| images:: https://img.shields.io/pypi/pyversions/mayan-edms.svg
|Analytics|
.. |python| image:: https://img.shields.io/pypi/pyversions/mayan-edms.svg
.. |license| image:: https://img.shields.io/pypi/l/mayan-edms.svg?style=flat

View File

@@ -5,10 +5,10 @@ import optparse
import sh
APP_LIST = (
'acls', 'appearance', 'authentication', 'checkouts', 'common',
'acls', 'appearance', 'authentication', 'cabinets', 'checkouts', 'common',
'converter', 'django_gpg', 'document_comments', 'document_indexing',
'document_signatures', 'document_states', 'documents', 'dynamic_search',
'events', 'folders', 'installation', 'linking', 'lock_manager', 'mailer',
'events', 'folders', 'linking', 'lock_manager', 'mailer',
'metadata', 'mirroring', 'motd', 'navigation', 'ocr', 'permissions',
'rest_api', 'smart_settings', 'sources', 'statistics', 'storage', 'tags',
'user_management'

75
docs/releases/2.1.10.rst Normal file
View File

@@ -0,0 +1,75 @@
================================
Mayan EDMS v2.1.10 release notes
================================
Released: February 13, 2017
What's new
==========
This is a micro release equal to the previews version from the user's point of view.
The version number was increase to workaround some issues with the Python
Package Index not allowing re-uploads.
Changes
-------------
- Update Makefile to use twine for releases.
- Add Makefile target to make test releases.
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
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
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* None
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

94
docs/releases/2.1.11.rst Normal file
View File

@@ -0,0 +1,94 @@
================================
Mayan EDMS v2.1.11 release notes
================================
Released: March 14, 2017
What's new
==========
This is a bug-fix release and all users are encouraged to upgrade. The focus
of this micro release was REST API improvement.
Changes
-------------
- Added a quick rename serializer to the document type API serializer.
- Added per document type, workflow list API view. The URL for this endpoint is
GET /api/document_states/document_type/{pk}/workflows/
- Added Developer Certificate of Origin. Mayan EDMS was adopted a version 1.1 of
the Linux Foundation Developer Certificate of Origin. All commits must be
signed (`git commit -s`) in order to be merged.
- Added the detail url of a permission in the permission serializer.
- Added endpoints for the ACL app API.
- Implemented document workflows transition ACLs. GitLab issue #321.
- Add document comments API endpoints. GitHub issue #249.
- Add support for overriding the Celery class. The setting is named
MAYAN_CELERY_CLASS and expects a dotted python path to the class to use.
- Changed the document upload view in source app to not use the HTTP referer
URL blindly, but instead recompose the URL using known view name. Needed
when integrating Mayan EDMS into other app via using iframes.
- Addes size field to the document version serializer.
- Removed the serializer from the deleted document restore API endpoint
it doesn't need a serializer being just an action POST endpoint.
- Added support for adding or editing document types to smart links via the
API.
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
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
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* `Github issue #249 <https://github.com/mayan-edms/mayan-edms/issues/249>`_ Add document comments API [$50 US]
* `GitLab issue #321 <https://gitlab.com/mayan-edms/mayan-edms/issues/321>`_ Transition ACLS
* `GitLab issue #357 <https://gitlab.com/mayan-edms/mayan-edms/issues/357>`_ It should be possible to retrieve all workflows for a given DocumentType from the API
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

83
docs/releases/2.1.8.rst Normal file
View File

@@ -0,0 +1,83 @@
===============================
Mayan EDMS v2.1.8 release notes
===============================
Released: February 12, 2017
What's new
==========
This is a bug-fix release and all users are encouraged to upgrade. The focus
of this micro release was REST API improvement.
Changes
-------------
- Fixes in the trashed document API endpoints.
- Improved tags API PUT and PATCH endpoints.
- Bulk document adding when creating and editing tags.
- The version of django-mptt is preserved in case mayan-cabinets is installed.
- Add Django GPG API endpoints for singing keys.
- Add API endpoints for the document states app.
- Add API endpoints for the messsage of the day (MOTD) app.
- Add Smart link API endpoints.
- Add writable versions of the Document and Document Type serializers (GitLab issues #348 and #349).
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
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
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* `GitLab issue #310 <https://gitlab.com/mayan-edms/mayan-edms/issues/310>`_ Metadata's lookup with chinese messages when new document
* `GitLab issue #348 <https://gitlab.com/mayan-edms/mayan-edms/issues/348>`_ REST API: Document version comments are not getting updated
* `GitLab issue #349 <https://gitlab.com/mayan-edms/mayan-edms/issues/349>`_ REST API: Document Label, Description are not able to update
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

74
docs/releases/2.1.9.rst Normal file
View File

@@ -0,0 +1,74 @@
===============================
Mayan EDMS v2.1.9 release notes
===============================
Released: February 13, 2017
What's new
==========
This is a micro release equal to the previews version from the user's point of view.
The version number was increase to workaround some issues with the Python
Package Index not allowing re-uploads.
Changes
-------------
- Update make file to Workaround long standing pypa wheel bug #99
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
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
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* None
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -2,32 +2,160 @@
Mayan EDMS v2.2 release notes
=============================
Released: XX, 2017
Released: April 26, 2017
What's new
==========
API changes
-----------
Refactor of the metadata API URLs to use the resource/sub resource paradigm.
Before:
/api/metadata/metadata_types/
/api/metadata/metadata_types/{pk}/
/api/metadata/document/metadata/{pk}/
/api/metadata/document/{pk}/metadata/
/api/metadata/document_type/{document_type_pk}/metadata_types/optional/
/api/metadata/document_type/{document_type_pk}/metadata_types/required/
After:
/api/metadata/metadata_types/
/api/metadata/metadata_types/{metadata_type_pk}/
/api/metadata/document_types/{document_type_pk}/metadata_types/
/api/metadata/document_types/{document_type_pk}/metadata_types/{metadata_type_pk}/
/api/metadata/documents/{document_pk}/metadata/
/api/metadata/documents/{document_pk}/metadata/{metadata_pk}/
Document API URLs updated to use the resource/sub resource paradigm.
Before:
/api/documents/document_version<pk>
/api/documents/document_pages<pk>
After:
/api/documents/<pk>/version/<version_pk>
/api/documents/<pk>/version/<version_pk>/pages/<page_pk>
Fields that reference a resource by URL now have the suffix '_url' to differentiate
then from fields include the resource.
Before:
'document': '/api/documents/10'
After:
'document_url': '/api/documents/10'
Removal of the document version revert API endpoint. To revert a document to a
previous version using the API, use the DELETE verb to delete the most recent
document version to be discarded.
Pages data is no longer included as part of the version data. Instead a link to
the document version's pages has been added by the name 'pages_url'. This
resolved to '/api/documents/<pk>/pages/<page_pk>/pages'.
- New API endpoints (initial work by @lokeshmanmode):
- API endpoint to change an user's groups subscription.
- API endpoint that list all available permissions types.
- API endpoint to view or change a role's groups.
- API endpoint to view or change a role's permissions.
Code cleanups
-------------
As with every release time was dedicated to improve the organization, size, and
readability of code. To this end the licenses of each app were moved to their
own module in every app, called licenses.py. As part of the code cleanup the
seldom used app called 'installation' which tracked runtime Python packages
installed alongside Mayan EDMS for debugging purposes has been removed. The
dependency on django-filetransfer has been removed by using
django-downloadviews which allows the creation of class based download views.
Performance
-----------
The document language list has been moved from the document model to the
document form. This change speeds up loading time, document properties views
and API documentation views. This version includes the new image caching
pipeline which stores transformed (rotated, scaled, etc) versions of the
document's images resulting in an overall display loading speed up. The fonts
used are now loaded from Mayan EDMS itself and not from the web. This change
also allow Mayan EDMS to work in a completely off-line manner.
Searching
---------
Support for searching pages as well as documents has been added. This
functionality has been exposed in the API too.
Security
--------
This release enables the password validation for the user password validation
support provided by Django. This change allows administrator to set password
policies limiting the minimum amount of characters needed for example. For
more information on how to configure the password validation feature refer
to Django's documentation at: https://docs.djangoproject.com/en/1.11/topics/auth/passwords/#enabling-password-validation
Sources
-------
To help test the interval sources (POP3 Email, IMAP Email, Watch folders) a
"Check now" button was added that allows users to trigger the source's
document fetching code instantly. Previously users had to wait until the next
scheduled interval to verify if their source's settings were correct.
Testing
-------
The testing process has been simplified by adding a new option '--mayan-apps'
to the test runner that automatically tests all Mayan EDMS apps that report to
include tests. The app flag that indicates when an app has test was changed
from 'test' to the more explicit 'has_test'. The packaging manifest now
includes test files, this means that tests can now be executed in production.
The total number of tests was raised to 359 and the total coverage increased
to 81%.
A custom test runner replacing the previous custom management command
called `runtests`. Testing for orphaned temporary files and orphaned file
handles is now optional and controlled by the COMMON_TEST_FILE_HANDLES and
COMMON_TEST_FILE_HANDLES settings.
User interface
--------------
To avoid warping on long full names or usernames, the user's full name or
username is no longer displayed in the main menu. Instead the word "Profile"
is displayed and the users's full name or username is displayed when the
"Profile" icon is clicked. Drop down menus support has been added and enabled
for several apps like documents, folders, and tags. This change make navigation
much faster and required less mouse travel.
Support was added for a dashboard widgets and several default widgets are
included and enabled.
A view to clone a document page transformation to other pages has been added.
A document page transformation navigation bug has been fixed. To aid visual
lookup, tags are now alphabetically ordered by label.
A new workflow view that lists documents currently executing a workflow and
documents by their specific current workflow state has been added to the
main menu.
Other changes
-------------
- Remove the installation app
- Add support for page search
- Remove recent searches feature
- Remove dependency on the django-filetransfer library
- Fix height calculation in resize transformation
- Improve upgrade instructions
- New image caching pipeline
- New drop down menus for the documents, folders and tags app as well as for
the user links
- Dashboard
- Moved licenses to their own module in every app
- Update project to work with Django 1.10.4
- Tags are alphabetically ordered by label
- Stop loading theme fonts from the web
- Cabinets app is now integrated as a core app.
- Now that the Cabinets app is included, the Folders app has been disabled
by default. To enable the Folders apps add the following line to your
settings/local.py file::
INSTALLED_APPS += ('folders',)
- Fix height calculation in resize transformation.
- Improve upgrade instructions.
- Update project to work with Django 1.10.
- Add support for attaching multiple tags to single or multiple documents.
- Refactor the workflow for removing tags from single and multiple documents.
- Move new version creation blocking from the documents app to the checkouts app.
- Sample documents moved to distribution to allow running all tests in production.
- DEBUG now defaults to False.
- Production settings don't override the DEBUG variable. DEBUG can be set to True
on production install to debug errors live.
@@ -38,20 +166,7 @@ Other changes
- Addition of a new OCR backend using PyOCR. This backend tries first to do OCR
using libtesseract. If libtesseract is not available the backend defaults to
calling the Tesseract executable.
- Language list moved from document model to document form.
- Enable password validation for the user password change view, user password change API endpoint, current user view and current user API endpoint.
- New API endpoints (initial work by @lokeshmanmode):
- API endpoint to change an user's groups subscription.
- API endpoint that list all available permissions types.
- API endpoint to view or change a role's groups.
- API endpoint to view or change a role's permissions.
- Make the lock_manager.backends.file_lock.FileLock the new default locking backend.
- Add view to clone a document page transformation to other pages.
- Document page transformation navigation bug fixed.
- Move test total to 359.
- Increase test coverage to 81%.
- New transformations added:
- Rotate 90 degrees
@@ -62,11 +177,15 @@ Other changes
- Gaussian blur
- Unsharp masking
- Add tool to launch all workflows. GitLab issue #355
Removals
--------
- Removal of the OCR_TESSERACT_PATH configuration setting.
- Removal of the Tesseract OCR backend. Replaced with a PyOCR backend.
- Remove usage of pytesseract Python library.
- Installation app.
- Recent searches feature.
Upgrading from a previous version
---------------------------------
@@ -95,13 +214,13 @@ Manually upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Remove deprecated requirements::
$ pip uninstall -y -r removals.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
@@ -134,5 +253,6 @@ Bugs fixed or issues closed
* `GitLab issue #328 <https://gitlab.com/mayan-edms/mayan-edms/issues/328>`_ Upgrade Warning/Error during performupgrade (v2.1.3 to v2.1.4)
* `GitLab issue #342 <https://gitlab.com/mayan-edms/mayan-edms/issues/342>`_ Tags should be of unordered / unsorted data type
* `GitLab issue #343 <https://gitlab.com/mayan-edms/mayan-edms/issues/343>`_ Bootstrap's dependency on fonts.googleapis.com causes Mayan EDMS web interface load slowly if public internet is unreachable
* `GitLab issue #355 <https://gitlab.com/mayan-edms/mayan-edms/issues/355>`_ Workflow changes only on new added documents
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

101
docs/releases/2.3.rst Normal file
View File

@@ -0,0 +1,101 @@
=============================
Mayan EDMS v2.3 release notes
=============================
Released: June 08, 2017
What's new
==========
This is a bug-fix and minor feature release and all users are encouraged to
upgrade.
Changes
-------------
- Index node expression template field changed from a 128 character field to an
unlimited size text field to allow for complex indexing expressions.
- When updating the metadata of a document, any input in the value form field
will select the adjacent checkbox.
- Support for passing the FUSE option `allow-other` and `allow-root` was added
to the index mirroring management command.
- Added support for checking for the latest released version of Mayan from the
About menu.
- Added support for rebuilding specific indexes instead of only being able to
rebuild all index. GitLab issue #372.
- Rewrite document indexing code to be faster and use less locking. Thanks to
Macrobb Simpson (@Macrobb) for the initial implementation.
- Use a predefined file path for the file lock.
- Catch documents with not document version when displaying their thumbnails.
- Add custom script_prefix aware resolve function and use it for the
document page navigation views. Fixes an issue when Mayan is installed
as a sub URL app. Thanks to Gustavo Teixeira(@gsteixei) for the issue and
investigation.
- Support was added to update document indexes after workflow state changes.
- An helper was added to access a documents workflow by name. To this end
a new field was added to the Workflow class called `Internal name`.
This new field makes it much easier to get a document's workflow instance.
If for example a document has a workflow called `Publish` with the internal
name `publish_workflow`, it will be accessible in the indexing template as
{{ document.workflow.publish_workflow }}. The latest state of the workflow
can be accessed using {{ document.workflow.publish_workflow.get_current_state }}.
- Added a new API endpoint to display a list of all the available search models.
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
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
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* `GitLab issue #371 <https://gitlab.com/mayan-edms/mayan-edms/issues/371>`_ Auto select checkbox when updating metadata
* `GitLab issue #372 <https://gitlab.com/mayan-edms/mayan-edms/issues/372>`_ (Feature request) Allow 'rebuild index' to rebuild only a selected index
* `GitLab issue #383 <https://gitlab.com/mayan-edms/mayan-edms/issues/383>`_ Page not found when deployed to sub-uri
* `GitLab issue #385 <https://gitlab.com/mayan-edms/mayan-edms/issues/385>`_ mountindex: how to specify FUSE mount option allow_other?
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -22,7 +22,12 @@ versions of the documentation contain the release notes for any later releases.
.. toctree::
:maxdepth: 1
2.3
2.2
2.1.11
2.1.10
2.1.9
2.1.8
2.1.7
2.1.6
2.1.5

View File

@@ -3,7 +3,8 @@ Advanced deployment
===================
Mayan EDMS should be deployed like any other Django_ project and
preferably using virtualenv_.
preferably using virtualenv_. Below are some ways to deploy and use Mayan EDMS.
Do not use more than one method.
Being a Django_ and a Python_ project, familiarity with these technologies is
recommended to better understand why Mayan EDMS does some of the things it
@@ -58,7 +59,7 @@ to /usr/bin/ with ...
sudo ln -s /opt/local/bin/tesseract /usr/bin/tesseract
... alternatively set the paths in the ``settings/locals.py``
Alternatively, set the paths in the ``settings/locals.py``
.. code-block:: python
@@ -76,9 +77,9 @@ With Homebrew installed run the command:
Set the Binary paths
********************
Mayan EDMS by default will look in /usr/bin/ for the binary files it needs
so either you can symlink the binaries installed via brew in /usr/local/bin/
to /usr/bin/ with ...
Mayan EDMS by default will look in /usr/bin/ for the binary files it needs.
You can symlink the binaries installed via brew in /usr/local/bin/
to /usr/bin/ with:
.. code-block:: bash
@@ -87,7 +88,7 @@ to /usr/bin/ with ...
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``
Alternatively, set the paths in the ``settings/locals.py``
.. code-block:: python
@@ -265,15 +266,18 @@ Make the installation directory readable and writable by the webserver user::
chown www-data:www-data /usr/share/mayan-edms -R
Restart the services::
Enable and restart the services [1_]::
systemctl enable supervisor
systemctl restart supervisor
systemctl restart nginx
[1]: https://bugs.launchpad.net/ubuntu/+source/supervisor/+bug/1594740
.. _Debian: http://www.debian.org/
.. _Django: http://www.djangoproject.com/
.. _Python: http://www.python.org/
.. _SQLite: https://www.sqlite.org/
.. _Ubuntu: http://www.ubuntu.com/
.. _virtualenv: http://www.virtualenv.org/en/latest/index.html
.. _1: https://bugs.launchpad.net/ubuntu/+source/supervisor/+bug/1594740

View File

@@ -16,8 +16,8 @@ request on GitLab_.
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.
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.
@@ -36,7 +36,7 @@ why things are the way they are in Mayan EDMS.
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
- 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: since indexing (document_indexing) only applies to documents, the
@@ -48,7 +48,7 @@ Coding conventions
Follow PEP8
~~~~~~~~~~~
Whenever possible, but don't obsess over things like line length.
Whenever possible, but don't obsess over things like line length:
.. code-block:: bash
@@ -103,9 +103,9 @@ Example:
)
from .models import Index, IndexInstanceNode, DocumentRenameCount
All local app module imports are in relative form, local app module name is to
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.
trick, restriction (e.g., Runtime modification of the module's attributes).
Incorrect:
@@ -128,7 +128,7 @@ 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
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.
@@ -423,3 +423,16 @@ Wheel package
$ pip install <path of the Git repository>/dist/mayan_edms-x.y.z-py2-none-any.whl
$ mayan-edms.py initialsetup
$ mayan-edms.py runserver
Version numbering
~~~~~~~~~~~~~~~~~
Mayan EDMS uses the Semantic Versioning (http://semver.org/) method to choose
version numbers along with Python's PEP-0440 (https://www.python.org/dev/peps/pep-0440/)
to format them.
X.YaN # Alpha release
X.YbN # Beta release
X.YrcN # Release Candidate
X.Y # Final release

View File

@@ -126,3 +126,10 @@ dependent support Python 3 then will the project move to fully support Python 3.
Make sure that the Celery BEAT scheduler is running correctly as it is the element
that triggers the periodics tasks.
**Q: How to do LDAP authentication**
A sample settings file called ldap_connection_settings.py is included in the
contrib/settings/ folder of the repository showing how to setup LDAP
authentication.

View File

@@ -30,7 +30,7 @@ Features
* Dynamic default values for metadata.
* Metadata fields can have an initial value, which can be static or determined
by an user provided template code snippet.
by a template code snippet provided by the user.
* Documents can be uploaded from different sources.
@@ -68,7 +68,7 @@ Features
* Multi page document support.
* Multiple page PDFs and TIFFs files are supported.
* Multiple page PDF and TIFF files are supported.
* Automatic OCR processing.

View File

@@ -2,7 +2,7 @@ Installation
============
The easiest way to use Mayan EDMS is by using the official Docker_ image.
Make sure Docker_ is properly installed and working before attempting to install
Make sure Docker is properly installed and working before attempting to install
Mayan EDMS.
With Docker properly installed, proceed to download the Mayan EDMS image using
@@ -10,102 +10,25 @@ the command:
.. code-block:: bash
docker pull mayanedms/mayanedms
$ docker pull mayanedms/mayanedms:2.3
After the image finishes downloading, initialize a Mayan EDMS container.
.. code-block:: bash
docker run --rm -v mayan_media:/var/lib/mayan \
-v mayan_settings:/etc/mayan mayanedms/mayanedms mayan:init
$ docker run -d --name mayan-edms --restart=always -p 80:80 \
-v mayan_data:/var/lib/mayan mayanedms/mayanedms:2.3
With initialization complete, launch the container. If another web server is
running on port 80 use a different port in the -p option, ie: -p 81:80.
Point your browser to the IP address 127.0.0.1 (or the alternate port chosen,
ie: 127.0.0.1:81) and use the automatically created admin account.
.. code-block:: bash
All files will be stored in the Docker volume ``mayan_data``
docker run -d --name mayan-edms --restart=always -p 80:80 \
-v mayan_media:/var/lib/mayan -v mayan_settings:/etc/mayan \
mayanedms/mayanedms
Point your browser to 127.0.0.1 (or the alternate port chosen, ie: 127.0.0.1:81)
and use the automatically created admin account.
All files will be stored in the following two volumes:
- mayan_media
- mayan_settings
Stopping and starting
---------------------
To stop the container use::
docker stop mayan-edms
To start the container again::
docker start mayan-edms
Configuring
-----------
To edit the settings file, check the physical location of the `mayan_settings`
volume using::
docker volume inspect mayan_settings
Which should produce an output similar to this one:
.. code-block:: bash
[
{
"Name": "mayan_settings",
"Driver": "local",
"Mountpoint": "/var/lib/docker/volumes/mayan_settings/_data",
"Labels": null,
"Scope": "local"
}
]
In this case the physical location of the `mayan_settings` volume is
`/var/lib/docker/volumes/mayan_settings/_data`. Edit the settings file with your
favorite editor::
sudo vi /var/lib/docker/volumes/mayan_settings/_data/local.py
Backups
-------
To backup the existing data, check the physical location of the `mayan_media`
volume using::
docker volume inspect mayan_media
Which should produce an output similar to this one:
.. code-block:: bash
[
{
"Name": "mayan_settings",
"Driver": "local",
"Mountpoint": "/var/lib/docker/volumes/mayan_media/_data",
"Labels": null,
"Scope": "local"
}
]
Only the `db.sqlite3` file and the `document_storage` folder need to be backed
up::
sudo tar -zcvf backup.tar.gz /var/lib/docker/volumes/mayan_media/_data/document_storage /var/lib/docker/volumes/mayan_media/_data/db.sqlite3
sudo chown `whoami` backup.tar.gz
Restore
-------
Uncompress the archive in the original docker volume using::
sudo tar -xvzf backup.tar.gz -C /
If another web server is running on port 80 use a different port in the ``-p``
option, ie: ``-p 81:80``.
For the complete set of installation, configuration, upgrade, and backup
instructions visit the Mayan EDMS Docker Hub page at:
https://hub.docker.com/r/mayanedms/mayanedms/
.. _Docker: https://www.docker.com/

View File

@@ -2,21 +2,20 @@
Transformations
===============
Transformation are persistent manipulations to the previews of the stored
documents. For example: a scanning equipment may only produce landscape PDFs.
In this case an useful transformation for that document source would be to
rotate all documents scanned by 270 degrees after being uploaded, this way
whenever a document is uploaded from that scanner it will appear in portrait
orientation. In this case add a this transformation to the Mayan EDMS source
that is connected to that device this way all pages scanned via that source
with inherit the transformation as they are created.
Transformations are persistent manipulations to the previews of the stored
documents. For example: a scanning equipment may only produce landscape PDFs.
In this case a useful transformation for that document source would be to rotate
all scanned documents by 270 degrees after being uploaded. By adding this
transformation to the Mayan EDMS source that is connected to the scanner, all
pages scanned via that source will inherit the transformation as they are
created. The result is that whenever a document is uploaded from that scanner,
it will appear in portrait orientation, instead of landscape orientation.
Transformations can also be added to existing documents, by clicking on a
document's page, then clicking on "transformations". In this view the Actions
menu will have a new option that reads "Create new transformation". At the
moment the rotation, zoom, crop, and resize transformations are available.
Once the document image has been corrected resubmit it for OCR for improved
results.
Transformations can also be added to existing documents by clicking on a
document's page and then clicking on "transformations". In this view the Actions
menu will have a new option that reads "Create new transformation". Currently,
the available transformations are: rotation, zoom, crop, and resize. Once the
document image has been corrected, resubmit it for OCR for improved results.
Transformations are not destructive and do not physically modify the document
Transformations are not destructive and do not physically modify the document
file, they just modify the document's graphical representation.

View File

@@ -1,8 +1,8 @@
from __future__ import unicode_literals
__title__ = 'Mayan EDMS'
__version__ = '2.1.7'
__build__ = 0x020107
__version__ = '2.3'
__build__ = 0x020300
__author__ = 'Roberto Rosario'
__author_email__ = 'roberto.rosario@mayan-edms.com'
__description__ = 'Free Open Source Electronic Document Management System'

View File

@@ -0,0 +1,250 @@
from __future__ import absolute_import, unicode_literals
from django.contrib.contenttypes.models import ContentType
from django.core.exceptions import PermissionDenied
from django.shortcuts import get_object_or_404
from rest_framework import generics
from permissions import Permission
from .models import AccessControlList
from .permissions import permission_acl_edit, permission_acl_view
from .serializers import (
AccessControlListPermissionSerializer, AccessControlListSerializer,
WritableAccessControlListPermissionSerializer,
WritableAccessControlListSerializer
)
class APIObjectACLListView(generics.ListCreateAPIView):
def get(self, *args, **kwargs):
"""
Returns a list of all the object's access control lists
"""
return super(APIObjectACLListView, self).get(*args, **kwargs)
def get_content_object(self):
content_type = get_object_or_404(
ContentType, app_label=self.kwargs['app_label'],
model=self.kwargs['model']
)
content_object = get_object_or_404(
content_type.model_class(), pk=self.kwargs['object_pk']
)
if self.request.method == 'GET':
permission_required = permission_acl_view
else:
permission_required = permission_acl_edit
try:
Permission.check_permissions(
self.request.user, permissions=(permission_required,)
)
except PermissionDenied:
AccessControlList.objects.check_access(
permission_required, self.request.user, content_object
)
return content_object
def get_queryset(self):
return self.get_content_object().acls.all()
def get_serializer_context(self):
"""
Extra context provided to the serializer class.
"""
return {
'content_object': self.get_content_object(),
'format': self.format_kwarg,
'request': self.request,
'view': self
}
def get_serializer_class(self):
if self.request.method == 'GET':
return AccessControlListSerializer
else:
return WritableAccessControlListSerializer
def post(self, *args, **kwargs):
"""
Create a new access control list for the selected object.
"""
return super(APIObjectACLListView, self).post(*args, **kwargs)
class APIObjectACLView(generics.RetrieveDestroyAPIView):
serializer_class = AccessControlListSerializer
def delete(self, *args, **kwargs):
"""
Delete the selected access control list.
"""
return super(APIObjectACLView, self).delete(*args, **kwargs)
def get(self, *args, **kwargs):
"""
Returns the details of the selected access control list.
"""
return super(APIObjectACLView, self).get(*args, **kwargs)
def get_content_object(self):
if self.request.method == 'GET':
permission_required = permission_acl_view
else:
permission_required = permission_acl_edit
content_type = get_object_or_404(
ContentType, app_label=self.kwargs['app_label'],
model=self.kwargs['model']
)
content_object = get_object_or_404(
content_type.model_class(), pk=self.kwargs['object_pk']
)
try:
Permission.check_permissions(
self.request.user, permissions=(permission_required,)
)
except PermissionDenied:
AccessControlList.objects.check_access(
permission_required, self.request.user, content_object
)
return content_object
def get_queryset(self):
return self.get_content_object().acls.all()
class APIObjectACLPermissionListView(generics.ListCreateAPIView):
def get(self, *args, **kwargs):
"""
Returns the access control list permission list.
"""
return super(
APIObjectACLPermissionListView, self
).get(*args, **kwargs)
def get_acl(self):
return get_object_or_404(
self.get_content_object().acls, pk=self.kwargs['pk']
)
def get_content_object(self):
content_type = get_object_or_404(
ContentType, app_label=self.kwargs['app_label'],
model=self.kwargs['model']
)
content_object = get_object_or_404(
content_type.model_class(), pk=self.kwargs['object_pk']
)
try:
Permission.check_permissions(
self.request.user, permissions=(permission_acl_view,)
)
except PermissionDenied:
AccessControlList.objects.check_access(
permission_acl_view, self.request.user, content_object
)
return content_object
def get_queryset(self):
return self.get_acl().permissions.all()
def get_serializer_class(self):
if self.request.method == 'GET':
return AccessControlListPermissionSerializer
else:
return WritableAccessControlListPermissionSerializer
def get_serializer_context(self):
return {
'acl': self.get_acl(),
'format': self.format_kwarg,
'request': self.request,
'view': self
}
def post(self, *args, **kwargs):
"""
Add a new permission to the selected access control list.
"""
return super(
APIObjectACLPermissionListView, self
).post(*args, **kwargs)
class APIObjectACLPermissionView(generics.RetrieveDestroyAPIView):
lookup_url_kwarg = 'permission_pk'
serializer_class = AccessControlListPermissionSerializer
def delete(self, *args, **kwargs):
"""
Remove the permission from the selected access control list.
"""
return super(
APIObjectACLPermissionView, self
).delete(*args, **kwargs)
def get(self, *args, **kwargs):
"""
Returns the details of the selected access control list permission.
"""
return super(
APIObjectACLPermissionView, self
).get(*args, **kwargs)
def get_acl(self):
return get_object_or_404(
self.get_content_object().acls, pk=self.kwargs['pk']
)
def get_content_object(self):
content_type = get_object_or_404(
ContentType, app_label=self.kwargs['app_label'],
model=self.kwargs['model']
)
content_object = get_object_or_404(
content_type.model_class(), pk=self.kwargs['object_pk']
)
try:
Permission.check_permissions(
self.request.user, permissions=(permission_acl_view,)
)
except PermissionDenied:
AccessControlList.objects.check_access(
permission_acl_view, self.request.user, content_object
)
return content_object
def get_queryset(self):
return self.get_acl().permissions.all()
def get_serializer_context(self):
return {
'acl': self.get_acl(),
'format': self.format_kwarg,
'request': self.request,
'view': self
}

View File

@@ -4,18 +4,21 @@ from django.utils.translation import ugettext_lazy as _
from common import MayanAppConfig, menu_object, menu_sidebar
from navigation import SourceColumn
from rest_api.classes import APIEndPoint
from .links import link_acl_create, link_acl_delete, link_acl_permissions
class ACLsApp(MayanAppConfig):
has_tests = True
name = 'acls'
test = True
verbose_name = _('ACLs')
def ready(self):
super(ACLsApp, self).ready()
APIEndPoint(app=self, version_string='1')
AccessControlList = self.get_model('AccessControlList')
SourceColumn(

View File

@@ -14,10 +14,18 @@ class ModelPermission(object):
@classmethod
def register(cls, model, permissions):
from django.contrib.contenttypes.fields import GenericRelation
cls._registry.setdefault(model, [])
for permission in permissions:
cls._registry[model].append(permission)
AccessControlList = apps.get_model(
app_label='acls', model_name='AccessControlList'
)
model.add_to_class('acls', GenericRelation(AccessControlList))
@classmethod
def get_for_instance(cls, instance):
StoredPermission = apps.get_model(
@@ -36,7 +44,9 @@ class ModelPermission(object):
if proxy:
permissions.extend(cls._registry.get(proxy))
pks = [permission.stored_permission.pk for permission in set(permissions)]
pks = [
permission.stored_permission.pk for permission in set(permissions)
]
return StoredPermission.objects.filter(pk__in=pks)
@classmethod

View File

@@ -1,64 +1,63 @@
# 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: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
"POT-Creation-Date: 2017-05-28 15:48-0400\n"
"PO-Revision-Date: 2017-04-21 16:25+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n"
"Language-Team: Arabic (http://www.transifex.com/rosarior/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"
"Language: ar\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"
"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"
#: apps.py:14 links.py:31
#: apps.py:15 links.py:35
msgid "ACLs"
msgstr "ACLs"
#: apps.py:22 links.py:40 models.py:36
#: apps.py:25 links.py:44 models.py:44
msgid "Permissions"
msgstr "الصلاحيات"
#: apps.py:26 models.py:38
#| msgid "Roles"
#: apps.py:29 models.py:46
msgid "Role"
msgstr ""
#: links.py:27
#: links.py:31
msgid "Delete"
msgstr ""
#: links.py:35
#| msgid "View ACLs"
#: links.py:39
msgid "New ACL"
msgstr ""
#: managers.py:85
#: managers.py:109
msgid "Insufficient access."
msgstr "Insufficient access."
#: models.py:44
#: models.py:52
msgid "Access entry"
msgstr ""
#: models.py:45
#: models.py:53
msgid "Access entries"
msgstr ""
#: models.py:48
#: models.py:57
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:64
#: models.py:74
msgid "None"
msgstr "لا شيء"
@@ -74,36 +73,65 @@ msgstr "Edit ACLs"
msgid "View ACLs"
msgstr "View ACLs"
#: views.py:78
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr ""
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr ""
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr ""
#: serializers.py:111 serializers.py:187
#, python-format
msgid "No such permission: %s"
msgstr ""
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr ""
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr ""
#: views.py:73
#, python-format
msgid "New access control lists for: %s"
msgstr ""
#: views.py:109
#: views.py:100
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr ""
#: views.py:151
#: views.py:138
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:162
#: views.py:150
msgid "Available permissions"
msgstr ""
#: views.py:163
#: views.py:151
msgid "Granted permissions"
msgstr ""
#: views.py:222
#: views.py:206
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#: views.py:242
#: views.py:226
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
@@ -198,8 +226,10 @@ msgstr ""
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ 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."
#~ 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."
#~ msgid "Add new holder for: %s"
#~ msgstr "add new holder for: %s"
@@ -222,8 +252,5 @@ msgstr ""
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"

View File

@@ -1,64 +1,62 @@
# 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: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
"POT-Creation-Date: 2017-05-28 15:48-0400\n"
"PO-Revision-Date: 2017-04-21 16:25+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n"
"Language-Team: Bulgarian (http://www.transifex.com/rosarior/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"
"Language: bg\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:14 links.py:31
#: apps.py:15 links.py:35
msgid "ACLs"
msgstr "ACLs"
#: apps.py:22 links.py:40 models.py:36
#: apps.py:25 links.py:44 models.py:44
msgid "Permissions"
msgstr "Разрешения"
#: apps.py:26 models.py:38
#| msgid "Roles"
#: apps.py:29 models.py:46
msgid "Role"
msgstr ""
#: links.py:27
#: links.py:31
msgid "Delete"
msgstr ""
#: links.py:35
#| msgid "View ACLs"
#: links.py:39
msgid "New ACL"
msgstr ""
#: managers.py:85
#: managers.py:109
msgid "Insufficient access."
msgstr "Недостатъчен достъп."
#: models.py:44
#: models.py:52
msgid "Access entry"
msgstr "достъп вписване"
#: models.py:45
#: models.py:53
msgid "Access entries"
msgstr "достъп вписвания"
#: models.py:48
#: models.py:57
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:64
#: models.py:74
msgid "None"
msgstr "Няма"
@@ -74,36 +72,65 @@ msgstr "Редактиране на контролни списъци за до
msgid "View ACLs"
msgstr "Преглед на контролни списъци за достъп"
#: views.py:78
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr ""
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr ""
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr ""
#: serializers.py:111 serializers.py:187
#, python-format
msgid "No such permission: %s"
msgstr ""
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr ""
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr ""
#: views.py:73
#, python-format
msgid "New access control lists for: %s"
msgstr ""
#: views.py:109
#: views.py:100
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr ""
#: views.py:151
#: views.py:138
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:162
#: views.py:150
msgid "Available permissions"
msgstr ""
#: views.py:163
#: views.py:151
msgid "Granted permissions"
msgstr ""
#: views.py:222
#: views.py:206
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#: views.py:242
#: views.py:226
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
@@ -198,8 +225,10 @@ msgstr ""
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ 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."
#~ 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."
#~ msgid "Add new holder for: %s"
#~ msgstr "add new holder for: %s"
@@ -222,8 +251,5 @@ msgstr ""
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"

View File

@@ -1,64 +1,63 @@
# 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: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
"POT-Creation-Date: 2017-05-28 15:48-0400\n"
"PO-Revision-Date: 2017-04-21 16:25+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n"
"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/"
"rosarior/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"
"Language: bs_BA\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#: apps.py:14 links.py:31
#: apps.py:15 links.py:35
msgid "ACLs"
msgstr "ACLs"
#: apps.py:22 links.py:40 models.py:36
#: apps.py:25 links.py:44 models.py:44
msgid "Permissions"
msgstr "Dozvole"
#: apps.py:26 models.py:38
#| msgid "Roles"
#: apps.py:29 models.py:46
msgid "Role"
msgstr ""
#: links.py:27
#: links.py:31
msgid "Delete"
msgstr ""
#: links.py:35
#| msgid "View ACLs"
#: links.py:39
msgid "New ACL"
msgstr ""
#: managers.py:85
#: managers.py:109
msgid "Insufficient access."
msgstr "Nedovoljne dozvole."
#: models.py:44
#: models.py:52
msgid "Access entry"
msgstr ""
#: models.py:45
#: models.py:53
msgid "Access entries"
msgstr ""
#: models.py:48
#: models.py:57
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:64
#: models.py:74
msgid "None"
msgstr "Nijedno"
@@ -74,36 +73,65 @@ msgstr "Izmjeniti ACLs"
msgid "View ACLs"
msgstr "Pregledati ACLs"
#: views.py:78
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr ""
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr ""
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr ""
#: serializers.py:111 serializers.py:187
#, python-format
msgid "No such permission: %s"
msgstr ""
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr ""
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr ""
#: views.py:73
#, python-format
msgid "New access control lists for: %s"
msgstr ""
#: views.py:109
#: views.py:100
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr ""
#: views.py:151
#: views.py:138
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:162
#: views.py:150
msgid "Available permissions"
msgstr ""
#: views.py:163
#: views.py:151
msgid "Granted permissions"
msgstr ""
#: views.py:222
#: views.py:206
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#: views.py:242
#: views.py:226
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
@@ -198,8 +226,10 @@ msgstr ""
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ 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."
#~ 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."
#~ msgid "Add new holder for: %s"
#~ msgstr "add new holder for: %s"
@@ -222,8 +252,5 @@ msgstr ""
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"

View File

@@ -1,64 +1,62 @@
# 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: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
"POT-Creation-Date: 2017-05-28 15:48-0400\n"
"PO-Revision-Date: 2017-04-21 16:25+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n"
"Language-Team: Danish (http://www.transifex.com/rosarior/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"
"Language: da\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:14 links.py:31
#: apps.py:15 links.py:35
msgid "ACLs"
msgstr "ACLs"
#: apps.py:22 links.py:40 models.py:36
#: apps.py:25 links.py:44 models.py:44
msgid "Permissions"
msgstr ""
#: apps.py:26 models.py:38
#| msgid "Roles"
#: apps.py:29 models.py:46
msgid "Role"
msgstr ""
#: links.py:27
#: links.py:31
msgid "Delete"
msgstr ""
#: links.py:35
#| msgid "View ACLs"
#: links.py:39
msgid "New ACL"
msgstr ""
#: managers.py:85
#: managers.py:109
msgid "Insufficient access."
msgstr ""
#: models.py:44
#: models.py:52
msgid "Access entry"
msgstr ""
#: models.py:45
#: models.py:53
msgid "Access entries"
msgstr ""
#: models.py:48
#: models.py:57
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:64
#: models.py:74
msgid "None"
msgstr "Ingen"
@@ -74,36 +72,65 @@ msgstr ""
msgid "View ACLs"
msgstr ""
#: views.py:78
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr ""
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr ""
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr ""
#: serializers.py:111 serializers.py:187
#, python-format
msgid "No such permission: %s"
msgstr ""
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr ""
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr ""
#: views.py:73
#, python-format
msgid "New access control lists for: %s"
msgstr ""
#: views.py:109
#: views.py:100
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr ""
#: views.py:151
#: views.py:138
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:162
#: views.py:150
msgid "Available permissions"
msgstr ""
#: views.py:163
#: views.py:151
msgid "Granted permissions"
msgstr ""
#: views.py:222
#: views.py:206
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#: views.py:242
#: views.py:226
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
@@ -198,8 +225,10 @@ msgstr ""
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ 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."
#~ 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."
#~ msgid "Add new holder for: %s"
#~ msgstr "add new holder for: %s"
@@ -222,8 +251,5 @@ msgstr ""
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"

View File

@@ -1,66 +1,66 @@
# 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:
# Berny <berny@bernhard-marx.de>, 2015
# Jesaja Everling <jeverling@gmail.com>, 2017
# Tobias Paepke <tobias.paepke@paepke.net>, 2016
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-31 18:56+0000\n"
"Last-Translator: Tobias Paepke <tobias.paepke@paepke.net>\n"
"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n"
"POT-Creation-Date: 2017-05-28 15:48-0400\n"
"PO-Revision-Date: 2017-04-24 23:10+0000\n"
"Last-Translator: Jesaja Everling <jeverling@gmail.com>\n"
"Language-Team: German (Germany) (http://www.transifex.com/rosarior/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"
"Language: de_DE\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:14 links.py:31
#: apps.py:15 links.py:35
msgid "ACLs"
msgstr "Zugriffsberechtigungen"
#: apps.py:22 links.py:40 models.py:36
#: apps.py:25 links.py:44 models.py:44
msgid "Permissions"
msgstr "Berechtigungen"
#: apps.py:26 models.py:38
#| msgid "Roles"
#: apps.py:29 models.py:46
msgid "Role"
msgstr "Rolle"
#: links.py:27
#: links.py:31
msgid "Delete"
msgstr "Löschen"
#: links.py:35
#| msgid "View ACLs"
#: links.py:39
msgid "New ACL"
msgstr "Neue Berechtigung"
#: managers.py:85
#: managers.py:109
msgid "Insufficient access."
msgstr "Fehlende Berechtigung"
#: models.py:44
#: models.py:52
msgid "Access entry"
msgstr "Berechtigungseintrag"
#: models.py:45
#: models.py:53
msgid "Access entries"
msgstr "Berechtigungseinträge"
#: models.py:48
#: models.py:57
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr "Berechtigungen \"%(permissions)s\" zur Rolle \"%(role)s\" für \"%(object)s\""
msgstr ""
"Berechtigungen \"%(permissions)s\" zur Rolle \"%(role)s\" für \"%(object)s\""
#: models.py:64
#: models.py:74
msgid "None"
msgstr "Keine"
@@ -76,38 +76,72 @@ msgstr "Zugriffsberechtigungen bearbeiten"
msgid "View ACLs"
msgstr "Zugriffsberechtigungen anzeigen"
#: views.py:78
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr "API URL für die Liste der Berechtigungen dieser ACL"
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr ""
"API URL für die Berechtigung in Relation zur ACL zu der sie zugeordnet ist. "
"Diese URL unterscheidet sich von der normalen Workflow URL."
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr "Primary key der zur ACL hinzuzufügenden Berechtigung."
#: serializers.py:111 serializers.py:187
#, python-format
msgid "No such permission: %s"
msgstr "Keine solche Berechtigung: %s"
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr ""
"Durch Komma getrennte Liste von Primary Keys der zu dieser ACL "
"hinzuzufügenden Berechtigungen."
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr "Primary Key der Rolle die dieser ACL zugeordnet ist."
#: views.py:73
#, python-format
msgid "New access control lists for: %s"
msgstr "Neue Zugriffsberechtigung für %s"
#: views.py:109
#: views.py:100
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr "ACL \"%s\" löschen"
#: views.py:151
#: views.py:138
#, python-format
msgid "Access control lists for: %s"
msgstr "Zugriffsberechtigungen für %s"
#: views.py:162
#: views.py:150
msgid "Available permissions"
msgstr "Verfügbare Berechtigungen"
#: views.py:163
#: views.py:151
msgid "Granted permissions"
msgstr "Erteilte Berechtigungen"
#: views.py:222
#: views.py:206
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr "Berechtigungen von Rolle \"%(role)s\" für \"%(object)s\""
#: views.py:242
#: views.py:226
msgid "Disabled permissions are inherited from a parent object."
msgstr "Deaktivierte Berechtigungen sind von einem übergeordneten Objekt vererbt."
msgstr ""
"Deaktivierte Berechtigungen sind von einem übergeordneten Objekt vererbt."
#~ msgid "New holder"
#~ msgstr "New holder"
@@ -200,8 +234,10 @@ msgstr "Deaktivierte Berechtigungen sind von einem übergeordneten Objekt vererb
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ 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."
#~ 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."
#~ msgid "Add new holder for: %s"
#~ msgstr "add new holder for: %s"
@@ -224,8 +260,5 @@ msgstr "Deaktivierte Berechtigungen sind von einem übergeordneten Objekt vererb
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"POT-Creation-Date: 2017-05-28 15:48-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,52 +18,52 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:14 links.py:31
#: apps.py:15 links.py:35
msgid "ACLs"
msgstr "ACLs"
#: apps.py:22 links.py:40 models.py:36
#: apps.py:25 links.py:44 models.py:44
#, fuzzy
msgid "Permissions"
msgstr "permissions"
#: apps.py:26 models.py:38
#: apps.py:29 models.py:46
#, fuzzy
#| msgid "Roles"
msgid "Role"
msgstr "Roles"
#: links.py:27
#: links.py:31
msgid "Delete"
msgstr ""
#: links.py:35
#: links.py:39
#, fuzzy
#| msgid "View ACLs"
msgid "New ACL"
msgstr "View ACLs"
#: managers.py:85
#: managers.py:109
msgid "Insufficient access."
msgstr "Insufficient access."
#: models.py:44
#: models.py:52
#, fuzzy
msgid "Access entry"
msgstr "access entry"
#: models.py:45
#: models.py:53
#, fuzzy
msgid "Access entries"
msgstr "access entries"
#: models.py:48
#: models.py:57
#, fuzzy, python-format
#| msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#: models.py:64
#: models.py:74
msgid "None"
msgstr ""
@@ -79,38 +79,69 @@ msgstr "Edit ACLs"
msgid "View ACLs"
msgstr "View ACLs"
#: views.py:78
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr ""
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr ""
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr ""
#: serializers.py:111 serializers.py:187
#, fuzzy, python-format
#| msgid "permission"
msgid "No such permission: %s"
msgstr "permission"
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr ""
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr ""
#: views.py:73
#, fuzzy, python-format
msgid "New access control lists for: %s"
msgstr "access control lists for: %s"
#: views.py:109
#: views.py:100
#, fuzzy, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr "Default ACLs"
#: views.py:151
#: views.py:138
#, fuzzy, python-format
msgid "Access control lists for: %s"
msgstr "access control lists for: %s"
#: views.py:162
#: views.py:150
#, fuzzy
msgid "Available permissions"
msgstr "has permission"
#: views.py:163
#: views.py:151
#, fuzzy
msgid "Granted permissions"
msgstr "has permission"
#: views.py:222
#: views.py:206
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#: views.py:242
#: views.py:226
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
@@ -247,8 +278,5 @@ msgstr ""
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"

View File

@@ -6,13 +6,13 @@
# Translators:
# jmcainzos <jmcainzos@vodafone.es>, 2015
# Roberto Rosario, 2015
# Roberto Rosario, 2015-2016
# Roberto Rosario, 2015-2017
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:38+0000\n"
"POT-Creation-Date: 2017-05-28 15:48-0400\n"
"PO-Revision-Date: 2017-05-28 19:52+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n"
"MIME-Version: 1.0\n"
@@ -21,47 +21,47 @@ msgstr ""
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:14 links.py:31
#: apps.py:15 links.py:35
msgid "ACLs"
msgstr "LCAs"
#: apps.py:22 links.py:40 models.py:36
#: apps.py:25 links.py:44 models.py:44
msgid "Permissions"
msgstr "Permisos"
#: apps.py:26 models.py:38
#: apps.py:29 models.py:46
#| msgid "Roles"
msgid "Role"
msgstr "Rol"
#: links.py:27
#: links.py:31
msgid "Delete"
msgstr "Borrar"
#: links.py:35
#: links.py:39
#| msgid "View ACLs"
msgid "New ACL"
msgstr "Nueva LCA"
#: managers.py:85
#: managers.py:109
msgid "Insufficient access."
msgstr "Acceso insuficiente."
#: models.py:44
#: models.py:52
msgid "Access entry"
msgstr "Entrada de acceso"
#: models.py:45
#: models.py:53
msgid "Access entries"
msgstr "Entradas de acceso"
#: models.py:48
#: models.py:57
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr "Permisos \"%(permissions)s\" para el rol \"%(role)s\" para \"%(object)s\""
#: models.py:64
#: models.py:74
msgid "None"
msgstr "Ninguno"
@@ -77,36 +77,67 @@ msgstr "Editar LCAs"
msgid "View ACLs"
msgstr "Ver LCAs"
#: views.py:78
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr "URL de la API que apunta a la lista de permisos para esta lista de control de acceso."
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr "URL de la API que apunta a un permiso en relación con la lista de control de acceso a la que está conectado. Esta URL es diferente de la URL canónica de flujo de trabajo."
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr "Llave primaria del nuevo permiso para conceder a la lista de control de acceso."
#: serializers.py:111 serializers.py:187
#, python-format
#| msgid "permission"
msgid "No such permission: %s"
msgstr "No existe el permiso: %s"
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr "Lista separada por comas de las llaves primarias de permisos para conceder a esta lista de control de acceso."
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr "Las llaves primarias de los roles a los que se vincula esta lista de control de acceso."
#: views.py:73
#, python-format
msgid "New access control lists for: %s"
msgstr "Nueva lista de control de acceso para: %s"
#: views.py:109
#: views.py:100
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr "Borrar LCA: %s"
#: views.py:151
#: views.py:138
#, python-format
msgid "Access control lists for: %s"
msgstr "Listas de control de acceso para: %s"
#: views.py:162
#: views.py:150
msgid "Available permissions"
msgstr "Permisos disponibles"
#: views.py:163
#: views.py:151
msgid "Granted permissions"
msgstr "Permisos otorgados"
#: views.py:222
#: views.py:206
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr "Permisos del rol \"%(role)s\" para \"%(object)s\""
#: views.py:242
#: views.py:226
msgid "Disabled permissions are inherited from a parent object."
msgstr "Los permisos inactivos se heredan de un objeto precedente."
@@ -225,8 +256,5 @@ msgstr "Los permisos inactivos se heredan de un objeto precedente."
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"

View File

@@ -1,64 +1,62 @@
# 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: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
"POT-Creation-Date: 2017-05-28 15:48-0400\n"
"PO-Revision-Date: 2017-04-21 16:25+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n"
"Language-Team: Persian (http://www.transifex.com/rosarior/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"
"Language: fa\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: apps.py:14 links.py:31
#: apps.py:15 links.py:35
msgid "ACLs"
msgstr "ACLs"
#: apps.py:22 links.py:40 models.py:36
#: apps.py:25 links.py:44 models.py:44
msgid "Permissions"
msgstr "مجوزها"
#: apps.py:26 models.py:38
#| msgid "Roles"
#: apps.py:29 models.py:46
msgid "Role"
msgstr "نقش"
#: links.py:27
#: links.py:31
msgid "Delete"
msgstr "حذف"
#: links.py:35
#| msgid "View ACLs"
#: links.py:39
msgid "New ACL"
msgstr ""
#: managers.py:85
#: managers.py:109
msgid "Insufficient access."
msgstr "دسترسی ناکافی"
#: models.py:44
#: models.py:52
msgid "Access entry"
msgstr "ورودی دسترسی"
#: models.py:45
#: models.py:53
msgid "Access entries"
msgstr "ورودیهای دسترسی"
#: models.py:48
#: models.py:57
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:64
#: models.py:74
msgid "None"
msgstr "هیچکدام."
@@ -74,36 +72,65 @@ msgstr "ویرایش دسترسی ها"
msgid "View ACLs"
msgstr "دیدن دسترسی ها"
#: views.py:78
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr ""
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr ""
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr ""
#: serializers.py:111 serializers.py:187
#, python-format
msgid "No such permission: %s"
msgstr ""
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr ""
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr ""
#: views.py:73
#, python-format
msgid "New access control lists for: %s"
msgstr ""
#: views.py:109
#: views.py:100
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr ""
#: views.py:151
#: views.py:138
#, python-format
msgid "Access control lists for: %s"
msgstr "لیست کنترل دسترسی ها برای : %s"
#: views.py:162
#: views.py:150
msgid "Available permissions"
msgstr ""
#: views.py:163
#: views.py:151
msgid "Granted permissions"
msgstr ""
#: views.py:222
#: views.py:206
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#: views.py:242
#: views.py:226
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
@@ -198,8 +225,10 @@ msgstr ""
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ 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."
#~ 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."
#~ msgid "Add new holder for: %s"
#~ msgstr "add new holder for: %s"
@@ -222,8 +251,5 @@ msgstr ""
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"

View File

@@ -1,65 +1,65 @@
# 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:
# Christophe CHAUVET <christophe.chauvet@gmail.com>, 2016
# Christophe CHAUVET <christophe.chauvet@gmail.com>, 2015
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
"POT-Creation-Date: 2017-05-28 15:48-0400\n"
"PO-Revision-Date: 2017-04-21 16:25+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n"
"Language-Team: French (http://www.transifex.com/rosarior/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"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: apps.py:14 links.py:31
#: apps.py:15 links.py:35
msgid "ACLs"
msgstr "Droits"
#: apps.py:22 links.py:40 models.py:36
#: apps.py:25 links.py:44 models.py:44
msgid "Permissions"
msgstr "Permissions"
#: apps.py:26 models.py:38
#| msgid "Roles"
#: apps.py:29 models.py:46
msgid "Role"
msgstr "Rôle"
#: links.py:27
#: links.py:31
msgid "Delete"
msgstr "Suppression"
#: links.py:35
#| msgid "View ACLs"
#: links.py:39
msgid "New ACL"
msgstr "Nouveau droit"
#: managers.py:85
#: managers.py:109
msgid "Insufficient access."
msgstr "droit d'accès insuffisant."
#: models.py:44
#: models.py:52
msgid "Access entry"
msgstr "Entrée d'accès"
#: models.py:45
#: models.py:53
msgid "Access entries"
msgstr "Entrées d'accès"
#: models.py:48
#: models.py:57
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
"Permissions \"%(permissions)s\" du rôle \"%(role)s\" pour \"%(object)s\""
#: models.py:64
#: models.py:74
msgid "None"
msgstr "Aucun"
@@ -75,36 +75,65 @@ msgstr "Editer les droits"
msgid "View ACLs"
msgstr "voir les droits d'accès"
#: views.py:78
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr ""
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr ""
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr ""
#: serializers.py:111 serializers.py:187
#, python-format
msgid "No such permission: %s"
msgstr ""
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr ""
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr ""
#: views.py:73
#, python-format
msgid "New access control lists for: %s"
msgstr "Nouvelle liste de contrôle d'accès pour: %s"
#: views.py:109
#: views.py:100
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr "Supprimer le droit: %s"
#: views.py:151
#: views.py:138
#, python-format
msgid "Access control lists for: %s"
msgstr "Liste des contrôle d'accès pour: %s"
#: views.py:162
#: views.py:150
msgid "Available permissions"
msgstr "Permissions disponibles"
#: views.py:163
#: views.py:151
msgid "Granted permissions"
msgstr "Permissions autorisées"
#: views.py:222
#: views.py:206
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr "Permission du rôle \"%(role)s\" pour \"%(object)s\"@"
#: views.py:242
#: views.py:226
msgid "Disabled permissions are inherited from a parent object."
msgstr "La désactivation de permission est hérité de l'objet parent"
@@ -199,8 +228,10 @@ msgstr "La désactivation de permission est hérité de l'objet parent"
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ 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."
#~ 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."
#~ msgid "Add new holder for: %s"
#~ msgstr "add new holder for: %s"
@@ -223,8 +254,5 @@ msgstr "La désactivation de permission est hérité de l'objet parent"
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"

View File

@@ -1,64 +1,62 @@
# 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: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
"POT-Creation-Date: 2017-05-28 15:48-0400\n"
"PO-Revision-Date: 2017-04-21 16:25+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n"
"Language-Team: Hungarian (http://www.transifex.com/rosarior/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"
"Language: hu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:14 links.py:31
#: apps.py:15 links.py:35
msgid "ACLs"
msgstr "ACL-ek"
#: apps.py:22 links.py:40 models.py:36
#: apps.py:25 links.py:44 models.py:44
msgid "Permissions"
msgstr ""
#: apps.py:26 models.py:38
#| msgid "Roles"
#: apps.py:29 models.py:46
msgid "Role"
msgstr ""
#: links.py:27
#: links.py:31
msgid "Delete"
msgstr ""
#: links.py:35
#| msgid "View ACLs"
#: links.py:39
msgid "New ACL"
msgstr ""
#: managers.py:85
#: managers.py:109
msgid "Insufficient access."
msgstr ""
#: models.py:44
#: models.py:52
msgid "Access entry"
msgstr ""
#: models.py:45
#: models.py:53
msgid "Access entries"
msgstr ""
#: models.py:48
#: models.py:57
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:64
#: models.py:74
msgid "None"
msgstr "Semmi"
@@ -74,36 +72,65 @@ msgstr ""
msgid "View ACLs"
msgstr ""
#: views.py:78
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr ""
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr ""
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr ""
#: serializers.py:111 serializers.py:187
#, python-format
msgid "No such permission: %s"
msgstr ""
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr ""
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr ""
#: views.py:73
#, python-format
msgid "New access control lists for: %s"
msgstr ""
#: views.py:109
#: views.py:100
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr ""
#: views.py:151
#: views.py:138
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:162
#: views.py:150
msgid "Available permissions"
msgstr ""
#: views.py:163
#: views.py:151
msgid "Granted permissions"
msgstr ""
#: views.py:222
#: views.py:206
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#: views.py:242
#: views.py:226
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
@@ -198,8 +225,10 @@ msgstr ""
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ 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."
#~ 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."
#~ msgid "Add new holder for: %s"
#~ msgstr "add new holder for: %s"
@@ -222,8 +251,5 @@ msgstr ""
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"

View File

@@ -1,64 +1,62 @@
# 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: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
"POT-Creation-Date: 2017-05-28 15:48-0400\n"
"PO-Revision-Date: 2017-04-21 16:25+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n"
"Language-Team: Indonesian (http://www.transifex.com/rosarior/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"
"Language: id\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: apps.py:14 links.py:31
#: apps.py:15 links.py:35
msgid "ACLs"
msgstr ""
#: apps.py:22 links.py:40 models.py:36
#: apps.py:25 links.py:44 models.py:44
msgid "Permissions"
msgstr ""
#: apps.py:26 models.py:38
#| msgid "Roles"
#: apps.py:29 models.py:46
msgid "Role"
msgstr ""
#: links.py:27
#: links.py:31
msgid "Delete"
msgstr ""
#: links.py:35
#| msgid "View ACLs"
#: links.py:39
msgid "New ACL"
msgstr ""
#: managers.py:85
#: managers.py:109
msgid "Insufficient access."
msgstr ""
#: models.py:44
#: models.py:52
msgid "Access entry"
msgstr ""
#: models.py:45
#: models.py:53
msgid "Access entries"
msgstr ""
#: models.py:48
#: models.py:57
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:64
#: models.py:74
msgid "None"
msgstr ""
@@ -74,36 +72,65 @@ msgstr ""
msgid "View ACLs"
msgstr ""
#: views.py:78
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr ""
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr ""
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr ""
#: serializers.py:111 serializers.py:187
#, python-format
msgid "No such permission: %s"
msgstr ""
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr ""
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr ""
#: views.py:73
#, python-format
msgid "New access control lists for: %s"
msgstr ""
#: views.py:109
#: views.py:100
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr ""
#: views.py:151
#: views.py:138
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:162
#: views.py:150
msgid "Available permissions"
msgstr ""
#: views.py:163
#: views.py:151
msgid "Granted permissions"
msgstr ""
#: views.py:222
#: views.py:206
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#: views.py:242
#: views.py:226
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
@@ -198,8 +225,10 @@ msgstr ""
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ 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."
#~ 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."
#~ msgid "Add new holder for: %s"
#~ msgstr "add new holder for: %s"
@@ -222,8 +251,5 @@ msgstr ""
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"

View File

@@ -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:
# Marco Camplese <marco.camplese.mc@gmail.com>, 2016
@@ -9,57 +9,55 @@ msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-30 21:18+0000\n"
"Last-Translator: Marco Camplese <marco.camplese.mc@gmail.com>\n"
"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n"
"POT-Creation-Date: 2017-05-28 15:48-0400\n"
"PO-Revision-Date: 2017-04-21 16:25+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Italian (http://www.transifex.com/rosarior/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"
"Language: it\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:14 links.py:31
#: apps.py:15 links.py:35
msgid "ACLs"
msgstr "ACLs"
#: apps.py:22 links.py:40 models.py:36
#: apps.py:25 links.py:44 models.py:44
msgid "Permissions"
msgstr "Permessi"
#: apps.py:26 models.py:38
#| msgid "Roles"
#: apps.py:29 models.py:46
msgid "Role"
msgstr "Ruolo"
#: links.py:27
#: links.py:31
msgid "Delete"
msgstr "Cancella"
#: links.py:35
#| msgid "View ACLs"
#: links.py:39
msgid "New ACL"
msgstr "Nuova ACL"
#: managers.py:85
#: managers.py:109
msgid "Insufficient access."
msgstr "Accesso insufficiente."
#: models.py:44
#: models.py:52
msgid "Access entry"
msgstr "Voce di accesso"
#: models.py:45
#: models.py:53
msgid "Access entries"
msgstr "Voci di accesso"
#: models.py:48
#: models.py:57
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr "Permessi \"%(permissions)s\" del ruolo \"%(role)s\" per \"%(object)s\""
#: models.py:64
#: models.py:74
msgid "None"
msgstr "Nessuna "
@@ -75,36 +73,65 @@ msgstr "Modifica ACL"
msgid "View ACLs"
msgstr "Visualizza ACL"
#: views.py:78
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr ""
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr ""
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr ""
#: serializers.py:111 serializers.py:187
#, python-format
msgid "No such permission: %s"
msgstr ""
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr ""
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr ""
#: views.py:73
#, python-format
msgid "New access control lists for: %s"
msgstr "Nuova lista di controllo accesso per: %s"
#: views.py:109
#: views.py:100
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr "Cancella ACL: %s"
#: views.py:151
#: views.py:138
#, python-format
msgid "Access control lists for: %s"
msgstr "Lista dei permessi d'accesso per: %s"
#: views.py:162
#: views.py:150
msgid "Available permissions"
msgstr "Autorizzazioni disponibili "
#: views.py:163
#: views.py:151
msgid "Granted permissions"
msgstr "Autorizzazioni concesse "
#: views.py:222
#: views.py:206
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr "Permessi del ruolo \"%(role)s\" per \"%(object)s\""
#: views.py:242
#: views.py:226
msgid "Disabled permissions are inherited from a parent object."
msgstr "Il permesso disabilita è ereditato dall'oggetto padre"
@@ -199,8 +226,10 @@ msgstr "Il permesso disabilita è ereditato dall'oggetto padre"
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ 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."
#~ 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."
#~ msgid "Add new holder for: %s"
#~ msgstr "add new holder for: %s"
@@ -223,8 +252,5 @@ msgstr "Il permesso disabilita è ereditato dall'oggetto padre"
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"

View File

@@ -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:
# Evelijn Saaltink <evelijnsaaltink@gmail.com>, 2016
@@ -10,57 +10,57 @@ msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 12:43+0000\n"
"Last-Translator: Evelijn Saaltink <evelijnsaaltink@gmail.com>\n"
"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n"
"POT-Creation-Date: 2017-05-28 15:48-0400\n"
"PO-Revision-Date: 2017-04-21 16:25+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/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"
"Language: nl_NL\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:14 links.py:31
#: apps.py:15 links.py:35
msgid "ACLs"
msgstr "Authorisatielijsten"
#: apps.py:22 links.py:40 models.py:36
#: apps.py:25 links.py:44 models.py:44
msgid "Permissions"
msgstr "Permissies"
#: apps.py:26 models.py:38
#| msgid "Roles"
#: apps.py:29 models.py:46
msgid "Role"
msgstr "Gebruikersrol"
#: links.py:27
#: links.py:31
msgid "Delete"
msgstr "Verwijder"
#: links.py:35
#| msgid "View ACLs"
#: links.py:39
msgid "New ACL"
msgstr "Nieuwe authorisatielijst"
#: managers.py:85
#: managers.py:109
msgid "Insufficient access."
msgstr "Permissie is ontoereikend"
#: models.py:44
#: models.py:52
msgid "Access entry"
msgstr "Authorisatie invoer"
#: models.py:45
#: models.py:53
msgid "Access entries"
msgstr "Authorisaties invoer"
#: models.py:48
#: models.py:57
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr "Permissies \"%(permissions)s\" voor gebruikersrol \"%(role)s\" voor \"%(object)s\""
msgstr ""
"Permissies \"%(permissions)s\" voor gebruikersrol \"%(role)s\" voor "
"\"%(object)s\""
#: models.py:64
#: models.py:74
msgid "None"
msgstr "Geen"
@@ -76,36 +76,65 @@ msgstr "Bewerk authorisatielijsten"
msgid "View ACLs"
msgstr "Bekijk authorisatielijsten"
#: views.py:78
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr ""
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr ""
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr ""
#: serializers.py:111 serializers.py:187
#, python-format
msgid "No such permission: %s"
msgstr ""
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr ""
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr ""
#: views.py:73
#, python-format
msgid "New access control lists for: %s"
msgstr "Nieuwe authorisatielijsten voor: %s"
#: views.py:109
#: views.py:100
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr "Verwijder authorisatielijst: %s"
#: views.py:151
#: views.py:138
#, python-format
msgid "Access control lists for: %s"
msgstr "Authorisatielijsten voor: %s"
#: views.py:162
#: views.py:150
msgid "Available permissions"
msgstr "Beschikbare permissies"
#: views.py:163
#: views.py:151
msgid "Granted permissions"
msgstr "Toegekende permissies"
#: views.py:222
#: views.py:206
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr "Rol \"%(role)s\" permissies voor \"%(object)s\""
#: views.py:242
#: views.py:226
msgid "Disabled permissions are inherited from a parent object."
msgstr "Uitgeschakelde permissies zijn geërfd van een parent object."
@@ -200,8 +229,10 @@ msgstr "Uitgeschakelde permissies zijn geërfd van een parent object."
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ 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."
#~ 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."
#~ msgid "Add new holder for: %s"
#~ msgstr "add new holder for: %s"
@@ -224,8 +255,5 @@ msgstr "Uitgeschakelde permissies zijn geërfd van een parent object."
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"

View File

@@ -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:
# Wojtek Warczakowski <w.warczakowski@gmail.com>, 2016
@@ -9,57 +9,57 @@ msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
"POT-Creation-Date: 2017-05-28 15:48-0400\n"
"PO-Revision-Date: 2017-04-21 16:25+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n"
"Language-Team: Polish (http://www.transifex.com/rosarior/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"
"Language: pl\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n"
"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n"
"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
#: apps.py:14 links.py:31
#: apps.py:15 links.py:35
msgid "ACLs"
msgstr "Listy ACL"
#: apps.py:22 links.py:40 models.py:36
#: apps.py:25 links.py:44 models.py:44
msgid "Permissions"
msgstr "Uprawnienia"
#: apps.py:26 models.py:38
#| msgid "Roles"
#: apps.py:29 models.py:46
msgid "Role"
msgstr "Rola"
#: links.py:27
#: links.py:31
msgid "Delete"
msgstr "Usuń"
#: links.py:35
#| msgid "View ACLs"
#: links.py:39
msgid "New ACL"
msgstr "Nowa lista ACL"
#: managers.py:85
#: managers.py:109
msgid "Insufficient access."
msgstr "Niewystarczający dostęp."
#: models.py:44
#: models.py:52
msgid "Access entry"
msgstr "Zgłoszenie dostępu"
#: models.py:45
#: models.py:53
msgid "Access entries"
msgstr "Zgłoszenia dostępu"
#: models.py:48
#: models.py:57
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:64
#: models.py:74
msgid "None"
msgstr "Brak"
@@ -75,36 +75,65 @@ msgstr "Edytuj listy ACL"
msgid "View ACLs"
msgstr "Przeglądaj listy ACL"
#: views.py:78
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr ""
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr ""
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr ""
#: serializers.py:111 serializers.py:187
#, python-format
msgid "No such permission: %s"
msgstr ""
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr ""
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr ""
#: views.py:73
#, python-format
msgid "New access control lists for: %s"
msgstr "Nowe listy ACL dla: %s"
#: views.py:109
#: views.py:100
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr "Usuń listę ACL: %s"
#: views.py:151
#: views.py:138
#, python-format
msgid "Access control lists for: %s"
msgstr "Listy ACL dla: %s"
#: views.py:162
#: views.py:150
msgid "Available permissions"
msgstr "Dostępne uprawnienia"
#: views.py:163
#: views.py:151
msgid "Granted permissions"
msgstr "Przyznane uprawnienia"
#: views.py:222
#: views.py:206
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr "Uprawnienia roli \"%(role)s\" dla obiektu \"%(object)s\""
#: views.py:242
#: views.py:226
msgid "Disabled permissions are inherited from a parent object."
msgstr "Domyślne uprawnienia są dziedziczone z obiektu nadrzędnego."
@@ -199,8 +228,10 @@ msgstr "Domyślne uprawnienia są dziedziczone z obiektu nadrzędnego."
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ 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."
#~ 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."
#~ msgid "Add new holder for: %s"
#~ msgstr "add new holder for: %s"
@@ -223,8 +254,5 @@ msgstr "Domyślne uprawnienia są dziedziczone z obiektu nadrzędnego."
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"

View File

@@ -1,64 +1,62 @@
# 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: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
"POT-Creation-Date: 2017-05-28 15:48-0400\n"
"PO-Revision-Date: 2017-04-21 16:25+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n"
"Language-Team: Portuguese (http://www.transifex.com/rosarior/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"
"Language: pt\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:14 links.py:31
#: apps.py:15 links.py:35
msgid "ACLs"
msgstr "ACL's"
#: apps.py:22 links.py:40 models.py:36
#: apps.py:25 links.py:44 models.py:44
msgid "Permissions"
msgstr "Permissões"
#: apps.py:26 models.py:38
#| msgid "Roles"
#: apps.py:29 models.py:46
msgid "Role"
msgstr ""
#: links.py:27
#: links.py:31
msgid "Delete"
msgstr "Eliminar"
#: links.py:35
#| msgid "View ACLs"
#: links.py:39
msgid "New ACL"
msgstr ""
#: managers.py:85
#: managers.py:109
msgid "Insufficient access."
msgstr "Acesso insuficiente."
#: models.py:44
#: models.py:52
msgid "Access entry"
msgstr ""
#: models.py:45
#: models.py:53
msgid "Access entries"
msgstr ""
#: models.py:48
#: models.py:57
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:64
#: models.py:74
msgid "None"
msgstr "Nenhum"
@@ -74,36 +72,65 @@ msgstr "Editar ACL's"
msgid "View ACLs"
msgstr "Ver ACL's"
#: views.py:78
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr ""
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr ""
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr ""
#: serializers.py:111 serializers.py:187
#, python-format
msgid "No such permission: %s"
msgstr ""
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr ""
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr ""
#: views.py:73
#, python-format
msgid "New access control lists for: %s"
msgstr ""
#: views.py:109
#: views.py:100
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr ""
#: views.py:151
#: views.py:138
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:162
#: views.py:150
msgid "Available permissions"
msgstr ""
#: views.py:163
#: views.py:151
msgid "Granted permissions"
msgstr ""
#: views.py:222
#: views.py:206
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#: views.py:242
#: views.py:226
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
@@ -198,8 +225,10 @@ msgstr ""
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ 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."
#~ 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."
#~ msgid "Add new holder for: %s"
#~ msgstr "add new holder for: %s"
@@ -222,8 +251,5 @@ msgstr ""
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"

View File

@@ -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:
# Aline Freitas <aline@alinefreitas.com.br>, 2016
@@ -9,57 +9,56 @@ msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-11-17 22:31+0000\n"
"Last-Translator: Aline Freitas <aline@alinefreitas.com.br>\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n"
"POT-Creation-Date: 2017-05-28 15:48-0400\n"
"PO-Revision-Date: 2017-04-21 16:25+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/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"
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: apps.py:14 links.py:31
#: apps.py:15 links.py:35
msgid "ACLs"
msgstr "ACLs"
#: apps.py:22 links.py:40 models.py:36
#: apps.py:25 links.py:44 models.py:44
msgid "Permissions"
msgstr "Permissões"
#: apps.py:26 models.py:38
#| msgid "Roles"
#: apps.py:29 models.py:46
msgid "Role"
msgstr "Regras"
#: links.py:27
#: links.py:31
msgid "Delete"
msgstr "Excluir"
#: links.py:35
#| msgid "View ACLs"
#: links.py:39
msgid "New ACL"
msgstr "Nova ACL"
#: managers.py:85
#: managers.py:109
msgid "Insufficient access."
msgstr "Acesso insuficiente."
#: models.py:44
#: models.py:52
msgid "Access entry"
msgstr "Acesso entrada"
#: models.py:45
#: models.py:53
msgid "Access entries"
msgstr "Entradas de acesso"
#: models.py:48
#: models.py:57
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr "Permissões \"%(permissions)s\" do papel \"%(role)s\" para \"%(object)s\""
msgstr ""
"Permissões \"%(permissions)s\" do papel \"%(role)s\" para \"%(object)s\""
#: models.py:64
#: models.py:74
msgid "None"
msgstr "Nenhum"
@@ -75,36 +74,65 @@ msgstr "Editar ACLs"
msgid "View ACLs"
msgstr "Visualizar ACLs"
#: views.py:78
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr ""
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr ""
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr ""
#: serializers.py:111 serializers.py:187
#, python-format
msgid "No such permission: %s"
msgstr ""
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr ""
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr ""
#: views.py:73
#, python-format
msgid "New access control lists for: %s"
msgstr "Nova lista de controle de acesso para: %s"
#: views.py:109
#: views.py:100
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr "Apagar ACL: %s"
#: views.py:151
#: views.py:138
#, python-format
msgid "Access control lists for: %s"
msgstr "listas de controle de acesso para: %s"
#: views.py:162
#: views.py:150
msgid "Available permissions"
msgstr "Permissões disponíveis"
#: views.py:163
#: views.py:151
msgid "Granted permissions"
msgstr "Permissões outorgadas"
#: views.py:222
#: views.py:206
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr "Permissões do papel \"%(role)s\" para \"%(object)s\""
#: views.py:242
#: views.py:226
msgid "Disabled permissions are inherited from a parent object."
msgstr "As permissões inativas foram herdadas de um objeto precedente."
@@ -199,8 +227,10 @@ msgstr "As permissões inativas foram herdadas de um objeto precedente."
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ 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."
#~ 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."
#~ msgid "Add new holder for: %s"
#~ msgstr "add new holder for: %s"
@@ -223,8 +253,5 @@ msgstr "As permissões inativas foram herdadas de um objeto precedente."
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"

View File

@@ -1,64 +1,63 @@
# 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: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
"POT-Creation-Date: 2017-05-28 15:48-0400\n"
"PO-Revision-Date: 2017-04-21 16:25+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n"
"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/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"
"Language: ro_RO\n"
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?"
"2:1));\n"
#: apps.py:14 links.py:31
#: apps.py:15 links.py:35
msgid "ACLs"
msgstr "ACL-uri"
#: apps.py:22 links.py:40 models.py:36
#: apps.py:25 links.py:44 models.py:44
msgid "Permissions"
msgstr "Permisiuni"
#: apps.py:26 models.py:38
#| msgid "Roles"
#: apps.py:29 models.py:46
msgid "Role"
msgstr ""
#: links.py:27
#: links.py:31
msgid "Delete"
msgstr "Șterge"
#: links.py:35
#| msgid "View ACLs"
#: links.py:39
msgid "New ACL"
msgstr ""
#: managers.py:85
#: managers.py:109
msgid "Insufficient access."
msgstr "Accesul insuficient."
#: models.py:44
#: models.py:52
msgid "Access entry"
msgstr ""
#: models.py:45
#: models.py:53
msgid "Access entries"
msgstr ""
#: models.py:48
#: models.py:57
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:64
#: models.py:74
msgid "None"
msgstr "Nici unul"
@@ -74,36 +73,65 @@ msgstr "Editați ACL-uri"
msgid "View ACLs"
msgstr "Vezi ACL-uri"
#: views.py:78
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr ""
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr ""
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr ""
#: serializers.py:111 serializers.py:187
#, python-format
msgid "No such permission: %s"
msgstr ""
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr ""
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr ""
#: views.py:73
#, python-format
msgid "New access control lists for: %s"
msgstr ""
#: views.py:109
#: views.py:100
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr ""
#: views.py:151
#: views.py:138
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:162
#: views.py:150
msgid "Available permissions"
msgstr ""
#: views.py:163
#: views.py:151
msgid "Granted permissions"
msgstr ""
#: views.py:222
#: views.py:206
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#: views.py:242
#: views.py:226
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
@@ -198,8 +226,10 @@ msgstr ""
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ 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."
#~ 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."
#~ msgid "Add new holder for: %s"
#~ msgstr "add new holder for: %s"
@@ -222,8 +252,5 @@ msgstr ""
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"

View File

@@ -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:
# lilo.panic, 2016
@@ -9,57 +9,57 @@ msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
"POT-Creation-Date: 2017-05-28 15:48-0400\n"
"PO-Revision-Date: 2017-04-21 16:25+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n"
"Language-Team: Russian (http://www.transifex.com/rosarior/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"
"Language: ru\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n"
"%100>=11 && n%100<=14)? 2 : 3);\n"
#: apps.py:14 links.py:31
#: apps.py:15 links.py:35
msgid "ACLs"
msgstr "СУДы"
#: apps.py:22 links.py:40 models.py:36
#: apps.py:25 links.py:44 models.py:44
msgid "Permissions"
msgstr "Разрешения"
#: apps.py:26 models.py:38
#| msgid "Roles"
#: apps.py:29 models.py:46
msgid "Role"
msgstr "Роль"
#: links.py:27
#: links.py:31
msgid "Delete"
msgstr "Удалить"
#: links.py:35
#| msgid "View ACLs"
#: links.py:39
msgid "New ACL"
msgstr "Создать СУД"
#: managers.py:85
#: managers.py:109
msgid "Insufficient access."
msgstr "Неполный доступ."
#: models.py:44
#: models.py:52
msgid "Access entry"
msgstr "Элемент доступа"
#: models.py:45
#: models.py:53
msgid "Access entries"
msgstr "Элементы доступа"
#: models.py:48
#: models.py:57
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:64
#: models.py:74
msgid "None"
msgstr "Пусто"
@@ -75,36 +75,65 @@ msgstr "Редактировать СУДы"
msgid "View ACLs"
msgstr "Просмотр СУДов"
#: views.py:78
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr ""
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr ""
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr ""
#: serializers.py:111 serializers.py:187
#, python-format
msgid "No such permission: %s"
msgstr ""
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr ""
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr ""
#: views.py:73
#, python-format
msgid "New access control lists for: %s"
msgstr "Новый СУД для: %s"
#: views.py:109
#: views.py:100
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr "Удалить СУД: %s"
#: views.py:151
#: views.py:138
#, python-format
msgid "Access control lists for: %s"
msgstr "СУДы для: %s"
#: views.py:162
#: views.py:150
msgid "Available permissions"
msgstr "Доступные разрешения"
#: views.py:163
#: views.py:151
msgid "Granted permissions"
msgstr "Предоставленные разрешения"
#: views.py:222
#: views.py:206
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr "Права роли \"%(role)s\" для \"%(object)s\""
#: views.py:242
#: views.py:226
msgid "Disabled permissions are inherited from a parent object."
msgstr "Отключенные права наследуются от родительского объекта."
@@ -199,8 +228,10 @@ msgstr "Отключенные права наследуются от родит
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ 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."
#~ 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."
#~ msgid "Add new holder for: %s"
#~ msgstr "add new holder for: %s"
@@ -223,8 +254,5 @@ msgstr "Отключенные права наследуются от родит
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"

View File

@@ -1,64 +1,63 @@
# 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: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-11-17 08:58+0000\n"
"POT-Creation-Date: 2017-05-28 15:48-0400\n"
"PO-Revision-Date: 2017-04-21 16:25+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n"
"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/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"
"Language: sl_SI\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
"%100==4 ? 2 : 3);\n"
#: apps.py:14 links.py:31
#: apps.py:15 links.py:35
msgid "ACLs"
msgstr "Pravice"
#: apps.py:22 links.py:40 models.py:36
#: apps.py:25 links.py:44 models.py:44
msgid "Permissions"
msgstr "Pravice"
#: apps.py:26 models.py:38
#| msgid "Roles"
#: apps.py:29 models.py:46
msgid "Role"
msgstr ""
#: links.py:27
#: links.py:31
msgid "Delete"
msgstr ""
#: links.py:35
#| msgid "View ACLs"
#: links.py:39
msgid "New ACL"
msgstr ""
#: managers.py:85
#: managers.py:109
msgid "Insufficient access."
msgstr "Nezadosten dostop"
#: models.py:44
#: models.py:52
msgid "Access entry"
msgstr "Vstopna točka"
#: models.py:45
#: models.py:53
msgid "Access entries"
msgstr "Vstopne točke"
#: models.py:48
#: models.py:57
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:64
#: models.py:74
msgid "None"
msgstr "Brez"
@@ -74,36 +73,65 @@ msgstr "Uredi dostopne pravice"
msgid "View ACLs"
msgstr "Preglej dostopne pravice"
#: views.py:78
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr ""
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr ""
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr ""
#: serializers.py:111 serializers.py:187
#, python-format
msgid "No such permission: %s"
msgstr ""
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr ""
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr ""
#: views.py:73
#, python-format
msgid "New access control lists for: %s"
msgstr ""
#: views.py:109
#: views.py:100
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr ""
#: views.py:151
#: views.py:138
#, python-format
msgid "Access control lists for: %s"
msgstr "Dostopne pravice za %s"
#: views.py:162
#: views.py:150
msgid "Available permissions"
msgstr ""
#: views.py:163
#: views.py:151
msgid "Granted permissions"
msgstr ""
#: views.py:222
#: views.py:206
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#: views.py:242
#: views.py:226
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
@@ -198,8 +226,10 @@ msgstr ""
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ 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."
#~ 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."
#~ msgid "Add new holder for: %s"
#~ msgstr "add new holder for: %s"
@@ -222,8 +252,5 @@ msgstr ""
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"

View File

@@ -1,64 +1,62 @@
# 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: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
"POT-Creation-Date: 2017-05-28 15:48-0400\n"
"PO-Revision-Date: 2017-04-21 16:25+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n"
"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/"
"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"
"Language: vi_VN\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: apps.py:14 links.py:31
#: apps.py:15 links.py:35
msgid "ACLs"
msgstr "ACLs"
#: apps.py:22 links.py:40 models.py:36
#: apps.py:25 links.py:44 models.py:44
msgid "Permissions"
msgstr ""
#: apps.py:26 models.py:38
#| msgid "Roles"
#: apps.py:29 models.py:46
msgid "Role"
msgstr ""
#: links.py:27
#: links.py:31
msgid "Delete"
msgstr ""
#: links.py:35
#| msgid "View ACLs"
#: links.py:39
msgid "New ACL"
msgstr ""
#: managers.py:85
#: managers.py:109
msgid "Insufficient access."
msgstr ""
#: models.py:44
#: models.py:52
msgid "Access entry"
msgstr ""
#: models.py:45
#: models.py:53
msgid "Access entries"
msgstr ""
#: models.py:48
#: models.py:57
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:64
#: models.py:74
msgid "None"
msgstr "None"
@@ -74,36 +72,65 @@ msgstr ""
msgid "View ACLs"
msgstr ""
#: views.py:78
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr ""
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr ""
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr ""
#: serializers.py:111 serializers.py:187
#, python-format
msgid "No such permission: %s"
msgstr ""
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr ""
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr ""
#: views.py:73
#, python-format
msgid "New access control lists for: %s"
msgstr ""
#: views.py:109
#: views.py:100
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr ""
#: views.py:151
#: views.py:138
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:162
#: views.py:150
msgid "Available permissions"
msgstr ""
#: views.py:163
#: views.py:151
msgid "Granted permissions"
msgstr ""
#: views.py:222
#: views.py:206
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#: views.py:242
#: views.py:226
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
@@ -198,8 +225,10 @@ msgstr ""
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ 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."
#~ 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."
#~ msgid "Add new holder for: %s"
#~ msgstr "add new holder for: %s"
@@ -222,8 +251,5 @@ msgstr ""
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"

View File

@@ -1,64 +1,62 @@
# 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: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
"POT-Creation-Date: 2017-05-28 15:48-0400\n"
"PO-Revision-Date: 2017-04-21 16:25+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n"
"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/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"
#: apps.py:14 links.py:31
#: apps.py:15 links.py:35
msgid "ACLs"
msgstr "访问控制列表"
#: apps.py:22 links.py:40 models.py:36
#: apps.py:25 links.py:44 models.py:44
msgid "Permissions"
msgstr "权限"
#: apps.py:26 models.py:38
#| msgid "Roles"
#: apps.py:29 models.py:46
msgid "Role"
msgstr ""
#: links.py:27
#: links.py:31
msgid "Delete"
msgstr ""
#: links.py:35
#| msgid "View ACLs"
#: links.py:39
msgid "New ACL"
msgstr ""
#: managers.py:85
#: managers.py:109
msgid "Insufficient access."
msgstr "权限不足"
#: models.py:44
#: models.py:52
msgid "Access entry"
msgstr "访问入口"
#: models.py:45
#: models.py:53
msgid "Access entries"
msgstr "多个访问入口"
#: models.py:48
#: models.py:57
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:64
#: models.py:74
msgid "None"
msgstr "无"
@@ -74,36 +72,65 @@ msgstr "编辑访问控制列表"
msgid "View ACLs"
msgstr "查看访问控制列表"
#: views.py:78
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr ""
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr ""
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr ""
#: serializers.py:111 serializers.py:187
#, python-format
msgid "No such permission: %s"
msgstr ""
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr ""
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr ""
#: views.py:73
#, python-format
msgid "New access control lists for: %s"
msgstr ""
#: views.py:109
#: views.py:100
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr ""
#: views.py:151
#: views.py:138
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:162
#: views.py:150
msgid "Available permissions"
msgstr ""
#: views.py:163
#: views.py:151
msgid "Granted permissions"
msgstr ""
#: views.py:222
#: views.py:206
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#: views.py:242
#: views.py:226
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
@@ -198,8 +225,10 @@ msgstr ""
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ 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."
#~ 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."
#~ msgid "Add new holder for: %s"
#~ msgstr "add new holder for: %s"
@@ -222,8 +251,5 @@ msgstr ""
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"

View File

@@ -49,6 +49,10 @@ class AccessControlListManager(models.Manager):
def check_access(self, permissions, user, obj, related=None):
if user.is_superuser or user.is_staff:
logger.debug(
'Permissions "%s" on "%s" granted to user "%s" as superuser or staff',
permissions, obj, user
)
return True
try:
@@ -89,15 +93,30 @@ class AccessControlListManager(models.Manager):
for group in user.groups.all():
for role in group.roles.all():
if set(stored_permissions).intersection(set(self.get_inherited_permissions(role=role, obj=obj))):
logger.debug(
'Permissions "%s" on "%s" granted to user "%s" through role "%s" via inherited ACL',
permissions, obj, user, role
)
return True
user_roles.append(role)
if not self.filter(content_type=ContentType.objects.get_for_model(obj), object_id=obj.pk, permissions__in=stored_permissions, role__in=user_roles).exists():
logger.debug(
'Permissions "%s" on "%s" denied for user "%s"',
permissions, obj, user
)
raise PermissionDenied(ugettext('Insufficient access.'))
logger.debug(
'Permissions "%s" on "%s" granted to user "%s" through roles "%s" by direct ACL',
permissions, obj, user, user_roles
)
def filter_by_access(self, permission, user, queryset):
if user.is_superuser or user.is_staff:
logger.debug('Unfiltered queryset returned to user "%s" as superuser or staff',
user)
return queryset
try:
@@ -145,6 +164,10 @@ class AccessControlListManager(models.Manager):
content_type=content_type, role__in=user_roles,
permissions=permission.stored_permission
).values_list('object_id', flat=True))
logger.debug(
'Filtered queryset returned to user "%s" based on roles "%s"',
user, user_roles
)
return queryset.filter(parent_acl_query | acl_query)
else:

View File

@@ -18,9 +18,17 @@ logger = logging.getLogger(__name__)
@python_2_unicode_compatible
class AccessControlList(models.Model):
"""
Model that hold the permission, object, actor relationship
ACL means Access Control List it is a more fine-grained method of
granting access to objects. In the case of ACLs, they grant access using
3 elements: actor, permission, object. In this case the actor is the role,
the permission is the Mayan permission and the object can be anything:
a document, a folder, an index, etc. This means = "Grant X permissions
to role Y for object Z". This model holds the permission, object, actor
relationship for one access control list.
Fields:
* Role - Custom role that is being granted a permission. Roles are created
in the Setup menu.
"""
content_type = models.ForeignKey(
ContentType,
related_name='object_content_type'
@@ -45,7 +53,9 @@ class AccessControlList(models.Model):
verbose_name_plural = _('Access entries')
def __str__(self):
return _('Permissions "%(permissions)s" to role "%(role)s" for "%(object)s"') % {
return _(
'Permissions "%(permissions)s" to role "%(role)s" for "%(object)s"'
) % {
'permissions': self.get_permission_titles(),
'object': self.content_object,
'role': self.role

View File

@@ -0,0 +1,204 @@
from __future__ import absolute_import, unicode_literals
from django.contrib.contenttypes.models import ContentType
from django.core.exceptions import ValidationError as DjangoValidationError
from django.utils.encoding import force_text
from django.utils.translation import ugettext_lazy as _
from rest_framework import serializers
from rest_framework.exceptions import ValidationError
from rest_framework.reverse import reverse
from common.serializers import ContentTypeSerializer
from permissions import Permission
from permissions.models import Role, StoredPermission
from permissions.serializers import PermissionSerializer, RoleSerializer
from .models import AccessControlList
class AccessControlListSerializer(serializers.ModelSerializer):
content_type = ContentTypeSerializer(read_only=True)
permissions_url = serializers.SerializerMethodField(
help_text=_(
'API URL pointing to the list of permissions for this access '
'control list.'
)
)
role = RoleSerializer(read_only=True)
url = serializers.SerializerMethodField()
class Meta:
fields = (
'content_type', 'id', 'object_id', 'permissions_url', 'role', 'url'
)
model = AccessControlList
def get_permissions_url(self, instance):
return reverse(
'rest_api:accesscontrollist-permission-list', args=(
instance.content_type.app_label, instance.content_type.model,
instance.object_id, instance.pk
), request=self.context['request'], format=self.context['format']
)
def get_url(self, instance):
return reverse(
'rest_api:accesscontrollist-detail', args=(
instance.content_type.app_label, instance.content_type.model,
instance.object_id, instance.pk
), request=self.context['request'], format=self.context['format']
)
class AccessControlListPermissionSerializer(PermissionSerializer):
acl_permission_url = serializers.SerializerMethodField(
help_text=_(
'API URL pointing to a permission in relation to the '
'access control list to which it is attached. This URL is '
'different than the canonical workflow URL.'
)
)
acl_url = serializers.SerializerMethodField()
def get_acl_permission_url(self, instance):
return reverse(
'rest_api:accesscontrollist-permission-detail', args=(
self.context['acl'].content_type.app_label,
self.context['acl'].content_type.model,
self.context['acl'].object_id, self.context['acl'].pk,
instance.stored_permission.pk
), request=self.context['request'], format=self.context['format']
)
def get_acl_url(self, instance):
return reverse(
'rest_api:accesscontrollist-detail', args=(
self.context['acl'].content_type.app_label,
self.context['acl'].content_type.model,
self.context['acl'].object_id, self.context['acl'].pk
), request=self.context['request'], format=self.context['format']
)
class WritableAccessControlListPermissionSerializer(AccessControlListPermissionSerializer):
permission_pk = serializers.CharField(
help_text=_(
'Primary key of the new permission to grant to the access control '
'list.'
), write_only=True
)
class Meta:
fields = ('namespace',)
read_only_fields = ('namespace',)
def create(self, validated_data):
for permission in validated_data['permissions']:
self.context['acl'].permissions.add(permission)
return validated_data['permissions'][0]
def validate(self, attrs):
permissions_pk_list = attrs.pop('permission_pk', None)
permissions_result = []
if permissions_pk_list:
for pk in permissions_pk_list.split(','):
try:
permission = Permission.get(pk=pk)
except KeyError:
raise ValidationError(_('No such permission: %s') % pk)
else:
# Accumulate valid stored permission pks
permissions_result.append(permission.pk)
attrs['permissions'] = StoredPermission.objects.filter(
pk__in=permissions_result
)
return attrs
class WritableAccessControlListSerializer(serializers.ModelSerializer):
content_type = ContentTypeSerializer(read_only=True)
permissions_pk_list = serializers.CharField(
help_text=_(
'Comma separated list of permission primary keys to grant to this '
'access control list.'
), required=False
)
permissions_url = serializers.SerializerMethodField(
help_text=_(
'API URL pointing to the list of permissions for this access '
'control list.'
), read_only=True
)
role_pk = serializers.IntegerField(
help_text=_(
'Primary keys of the role to which this access control list '
'binds to.'
), write_only=True
)
url = serializers.SerializerMethodField()
class Meta:
fields = (
'content_type', 'id', 'object_id', 'permissions_pk_list',
'permissions_url', 'role_pk', 'url'
)
model = AccessControlList
read_only_fields = ('content_type', 'object_id')
def get_permissions_url(self, instance):
return reverse(
'rest_api:accesscontrollist-permission-list', args=(
instance.content_type.app_label, instance.content_type.model,
instance.object_id, instance.pk
), request=self.context['request'], format=self.context['format']
)
def get_url(self, instance):
return reverse(
'rest_api:accesscontrollist-detail', args=(
instance.content_type.app_label, instance.content_type.model,
instance.object_id, instance.pk
), request=self.context['request'], format=self.context['format']
)
def validate(self, attrs):
attrs['content_type'] = ContentType.objects.get_for_model(
self.context['content_object']
)
attrs['object_id'] = self.context['content_object'].pk
try:
attrs['role'] = Role.objects.get(pk=attrs.pop('role_pk'))
except Role.DoesNotExist as exception:
raise ValidationError(force_text(exception))
permissions_pk_list = attrs.pop('permissions_pk_list', None)
permissions_result = []
if permissions_pk_list:
for pk in permissions_pk_list.split(','):
try:
permission = Permission.get(pk=pk)
except KeyError:
raise ValidationError(_('No such permission: %s') % pk)
else:
# Accumulate valid stored permission pks
permissions_result.append(permission.pk)
instance = AccessControlList(**attrs)
try:
instance.full_clean()
except DjangoValidationError as exception:
raise ValidationError(exception)
# Add a queryset of valid stored permissions so that they get added
# after the ACL gets created.
attrs['permissions'] = StoredPermission.objects.filter(
pk__in=permissions_result
)
return attrs

View File

@@ -0,0 +1,254 @@
from __future__ import absolute_import, unicode_literals
from django.contrib.auth import get_user_model
from django.contrib.contenttypes.models import ContentType
from django.core.urlresolvers import reverse
from django.test import override_settings
from rest_framework.test import APITestCase
from documents.models import DocumentType
from documents.permissions import permission_document_view
from documents.tests.literals import (
TEST_DOCUMENT_TYPE, TEST_SMALL_DOCUMENT_PATH
)
from permissions.classes import Permission
from permissions.models import Role
from permissions.tests.literals import TEST_ROLE_LABEL
from user_management.tests.literals import (
TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME
)
from ..models import AccessControlList
from ..permissions import permission_acl_view
@override_settings(OCR_AUTO_OCR=False)
class ACLAPITestCase(APITestCase):
def setUp(self):
self.admin_user = get_user_model().objects.create_superuser(
username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL,
password=TEST_ADMIN_PASSWORD
)
self.client.login(
username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD
)
self.document_type = DocumentType.objects.create(
label=TEST_DOCUMENT_TYPE
)
with open(TEST_SMALL_DOCUMENT_PATH) as file_object:
self.document = self.document_type.new_document(
file_object=file_object
)
self.role = Role.objects.create(label=TEST_ROLE_LABEL)
self.document_content_type = ContentType.objects.get_for_model(
self.document
)
Permission.invalidate_cache()
def tearDown(self):
if hasattr(self, 'document_type'):
self.document_type.delete()
def _create_acl(self):
self.acl = AccessControlList.objects.create(
content_object=self.document,
role=self.role
)
self.acl.permissions.add(permission_document_view.stored_permission)
def test_object_acl_list_view(self):
self._create_acl()
response = self.client.get(
reverse(
'rest_api:accesscontrollist-list',
args=(
self.document_content_type.app_label,
self.document_content_type.model,
self.document.pk
)
)
)
self.assertEqual(
response.data['results'][0]['content_type']['app_label'],
self.document_content_type.app_label
)
self.assertEqual(
response.data['results'][0]['role']['label'], TEST_ROLE_LABEL
)
def test_object_acl_delete_view(self):
self._create_acl()
response = self.client.delete(
reverse(
'rest_api:accesscontrollist-detail',
args=(
self.document_content_type.app_label,
self.document_content_type.model,
self.document.pk, self.acl.pk
)
)
)
self.assertEqual(response.status_code, 204)
self.assertEqual(AccessControlList.objects.count(), 0)
def test_object_acl_detail_view(self):
self._create_acl()
response = self.client.get(
reverse(
'rest_api:accesscontrollist-detail',
args=(
self.document_content_type.app_label,
self.document_content_type.model,
self.document.pk, self.acl.pk
)
)
)
self.assertEqual(
response.data['content_type']['app_label'],
self.document_content_type.app_label
)
self.assertEqual(
response.data['role']['label'], TEST_ROLE_LABEL
)
def test_object_acl_permission_delete_view(self):
self._create_acl()
permission = self.acl.permissions.first()
response = self.client.delete(
reverse(
'rest_api:accesscontrollist-permission-detail',
args=(
self.document_content_type.app_label,
self.document_content_type.model,
self.document.pk, self.acl.pk,
permission.pk
)
)
)
self.assertEqual(response.status_code, 204)
self.assertEqual(self.acl.permissions.count(), 0)
def test_object_acl_permission_detail_view(self):
self._create_acl()
permission = self.acl.permissions.first()
response = self.client.get(
reverse(
'rest_api:accesscontrollist-permission-detail',
args=(
self.document_content_type.app_label,
self.document_content_type.model,
self.document.pk, self.acl.pk,
permission.pk
)
)
)
self.assertEqual(
response.data['pk'], permission_document_view.pk
)
def test_object_acl_permission_list_view(self):
self._create_acl()
response = self.client.get(
reverse(
'rest_api:accesscontrollist-permission-list',
args=(
self.document_content_type.app_label,
self.document_content_type.model,
self.document.pk, self.acl.pk
)
)
)
self.assertEqual(
response.data['results'][0]['pk'],
permission_document_view.pk
)
def test_object_acl_permission_list_post_view(self):
self._create_acl()
response = self.client.post(
reverse(
'rest_api:accesscontrollist-permission-list',
args=(
self.document_content_type.app_label,
self.document_content_type.model,
self.document.pk, self.acl.pk
)
), data={'permission_pk': permission_acl_view.pk}
)
self.assertEqual(response.status_code, 201)
self.assertQuerysetEqual(
ordered=False, qs=self.acl.permissions.all(), values=(
repr(permission_document_view.stored_permission),
repr(permission_acl_view.stored_permission)
)
)
def test_object_acl_post_no_permissions_added_view(self):
response = self.client.post(
reverse(
'rest_api:accesscontrollist-list',
args=(
self.document_content_type.app_label,
self.document_content_type.model,
self.document.pk
)
), data={'role_pk': self.role.pk}
)
self.assertEqual(response.status_code, 201)
self.assertEqual(
self.document.acls.first().role, self.role
)
self.assertEqual(
self.document.acls.first().content_object, self.document
)
self.assertEqual(
self.document.acls.first().permissions.count(), 0
)
def test_object_acl_post_with_permissions_added_view(self):
response = self.client.post(
reverse(
'rest_api:accesscontrollist-list',
args=(
self.document_content_type.app_label,
self.document_content_type.model,
self.document.pk
)
), data={
'role_pk': self.role.pk,
'permissions_pk_list': permission_acl_view.pk
}
)
self.assertEqual(response.status_code, 201)
self.assertEqual(
self.document.acls.first().content_object, self.document
)
self.assertEqual(
self.document.acls.first().role, self.role
)
self.assertEqual(
self.document.acls.first().permissions.first(),
permission_acl_view.stored_permission
)

View File

@@ -2,6 +2,10 @@ from __future__ import unicode_literals
from django.conf.urls import url
from .api_views import (
APIObjectACLListView, APIObjectACLPermissionListView,
APIObjectACLPermissionView, APIObjectACLView
)
from .views import (
ACLCreateView, ACLDeleteView, ACLListView, ACLPermissionsView
)
@@ -21,3 +25,22 @@ urlpatterns = [
name='acl_permissions'
),
]
api_urls = [
url(
r'^object/(?P<app_label>[-\w]+)/(?P<model>[-\w]+)/(?P<object_pk>\d+)/acls/$',
APIObjectACLListView.as_view(), name='accesscontrollist-list'
),
url(
r'^object/(?P<app_label>[-\w]+)/(?P<model>[-\w]+)/(?P<object_pk>\d+)/acls/(?P<pk>\d+)/$',
APIObjectACLView.as_view(), name='accesscontrollist-detail'
),
url(
r'^object/(?P<app_label>[-\w]+)/(?P<model>[-\w]+)/(?P<object_pk>\d+)/acls/(?P<pk>\d+)/permissions/$',
APIObjectACLPermissionListView.as_view(), name='accesscontrollist-permission-list'
),
url(
r'^object/(?P<app_label>[-\w]+)/(?P<model>[-\w]+)/(?P<object_pk>\d+)/acls/(?P<pk>\d+)/permissions/(?P<permission_pk>\d+)/$',
APIObjectACLPermissionView.as_view(), name='accesscontrollist-permission-detail'
),
]

View File

@@ -140,7 +140,8 @@ class ACLListView(SingleObjectListView):
def get_queryset(self):
return AccessControlList.objects.filter(
content_type=self.object_content_type, object_id=self.content_object.pk
content_type=self.object_content_type,
object_id=self.content_object.pk
)

View File

@@ -1,27 +1,29 @@
# 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: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-03-21 21:06+0000\n"
"POT-Creation-Date: 2017-05-28 15:48-0400\n"
"PO-Revision-Date: 2017-04-21 16:25+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n"
"Language-Team: Arabic (http://www.transifex.com/rosarior/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"
"Language: ar\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"
"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"
#: apps.py:11
#: apps.py:12
msgid "Appearance"
msgstr ""
#: templates/403.html:5 templates/403.html.py:9
#: templates/403.html:5 templates/403.html:9
msgid "Insufficient permissions"
msgstr "صلاحيات غير كافية"
@@ -29,7 +31,7 @@ msgstr "صلاحيات غير كافية"
msgid "You don't have enough permissions for this operation."
msgstr "ليس لديك صلاحيات كافية لهذه العملية."
#: templates/404.html:5 templates/404.html.py:9
#: templates/404.html:5 templates/404.html:9
msgid "Page not found"
msgstr "لم يتم العثور على الصفحة"
@@ -37,14 +39,14 @@ msgstr "لم يتم العثور على الصفحة"
msgid "Sorry, but the requested page could not be found."
msgstr "عفواً، لا يمكن العثور على الصفحة المطلوبة."
#: templates/500.html:5 templates/500.html.py:9
#: templates/500.html:5 templates/500.html:9
msgid "Server error"
msgstr ""
#: templates/500.html:11
msgid ""
"There's been an error. It's been reported to the site administrators via "
"e-mail and should be fixed shortly. Thanks for your patience."
"There's been an error. It's been reported to the site administrators via e-"
"mail and should be fixed shortly. Thanks for your patience."
msgstr ""
#: templates/500.html:14
@@ -53,7 +55,7 @@ msgid ""
"identifier:"
msgstr ""
#: templates/appearance/about.html:8 templates/appearance/about.html.py:57
#: templates/appearance/about.html:8 templates/appearance/about.html:57
msgid "About"
msgstr ""
@@ -66,47 +68,47 @@ msgstr "الاصدار"
msgid "Build number: %(build_number)s"
msgstr ""
#: templates/appearance/about.html:88
#: templates/appearance/about.html:76
msgid "Released under the Apache 2.0 License"
msgstr ""
#: templates/appearance/about.html:100
#: templates/appearance/about.html:88
msgid "Copyright &copy; 2011-2015 Roberto Rosario."
msgstr ""
#: templates/appearance/base.html:43
#: templates/appearance/base.html:56
msgid "Toggle navigation"
msgstr ""
#: templates/appearance/base.html:72
#: templates/appearance/base.html:86
msgid "Profile"
msgstr ""
#: templates/appearance/base.html:92
msgid "Anonymous"
msgstr "مجهول"
#: templates/appearance/base.html:74
msgid "User details"
msgstr "تفاصيل المستخدم"
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Success"
msgstr ""
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Information"
msgstr ""
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Warning"
msgstr ""
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Error"
msgstr ""
#: templates/appearance/base.html:116
#: templates/appearance/base.html:155
msgid "Actions"
msgstr "الإجراءات"
#: templates/appearance/base.html:117
#: templates/appearance/base.html:157
msgid "Toggle Dropdown"
msgstr ""
@@ -124,6 +126,10 @@ msgstr ""
msgid "Create"
msgstr "انشاء"
#: templates/appearance/dashboard_widget.html:25
msgid "View details"
msgstr ""
#: templates/appearance/generic_confirm.html:6
#: templates/appearance/generic_confirm.html:13
msgid "Confirm"
@@ -138,39 +144,39 @@ msgstr "تأكيد حذف"
msgid "Delete: %(object)s?"
msgstr ""
#: templates/appearance/generic_confirm.html:47
#: templates/appearance/generic_confirm.html:48
msgid "Yes"
msgstr "نعم"
#: templates/appearance/generic_confirm.html:49
#: templates/appearance/generic_confirm.html:52
msgid "No"
msgstr "لا"
#: templates/appearance/generic_form_instance.html:39
#: templates/appearance/generic_form_instance.html:46
#: templates/appearance/generic_form_subtemplate.html:51
#: templates/appearance/generic_multiform_subtemplate.html:43
#: templates/appearance/generic_multiform_subtemplate.html:42
msgid "required"
msgstr "مطلوب"
#: templates/appearance/generic_form_subtemplate.html:71
#: templates/appearance/generic_multiform_subtemplate.html:65
#: templates/appearance/generic_multiform_subtemplate.html:64
msgid "Save"
msgstr "حفظ"
#: templates/appearance/generic_form_subtemplate.html:71
#: templates/appearance/generic_list_subtemplate.html:31
#: templates/appearance/generic_multiform_subtemplate.html:65
#: templates/appearance/generic_list_subtemplate.html:33
#: templates/appearance/generic_multiform_subtemplate.html:64
msgid "Submit"
msgstr "ارسال"
#: templates/appearance/generic_form_subtemplate.html:74
#: templates/appearance/generic_multiform_subtemplate.html:69
#: templates/appearance/generic_multiform_subtemplate.html:68
msgid "Cancel"
msgstr "إلغاء"
#: templates/appearance/generic_list_horizontal.html:21
#: templates/appearance/generic_list_subtemplate.html:108
#: templates/appearance/generic_list_subtemplate.html:112
msgid "No results"
msgstr ""
@@ -187,34 +193,38 @@ msgstr ""
msgid "Total: %(total)s"
msgstr ""
#: templates/appearance/generic_list_subtemplate.html:51
#: templates/appearance/generic_list_subtemplate.html:53
msgid "Identifier"
msgstr "معرف"
#: templates/appearance/home.html:8 templates/appearance/home.html.py:12
msgid "Home"
#: templates/appearance/home.html:9 templates/appearance/home.html:13
msgid "Dashboard"
msgstr ""
#: templates/appearance/home.html:21
#: templates/appearance/home.html:22
msgid "Getting started"
msgstr ""
#: templates/appearance/home.html:24
#: templates/appearance/home.html:25
msgid "Before you can fully use Mayan EDMS you need the following:"
msgstr ""
#: templates/appearance/home.html:57
msgid "Space separated terms"
#: templates/appearance/home.html:46
msgid "Search pages"
msgstr ""
#: templates/appearance/home.html:59
#: templates/appearance/home.html:48 templates/appearance/home.html:58
msgid "Search"
msgstr "البحث"
#: templates/appearance/home.html:60
#: templates/appearance/home.html:49 templates/appearance/home.html:59
msgid "Advanced"
msgstr ""
#: templates/appearance/home.html:56
msgid "Search documents"
msgstr ""
#: templates/appearance/login.html:10
msgid "Login"
msgstr "Login"
@@ -227,7 +237,9 @@ msgstr "First time login"
msgid ""
"You have just finished installing <strong>Mayan EDMS</strong>, "
"congratulations!"
msgstr "You have just finished installing <strong>Mayan EDMS</strong>, congratulations!"
msgstr ""
"You have just finished installing <strong>Mayan EDMS</strong>, "
"congratulations!"
#: templates/appearance/login.html:25
msgid "Login using the following credentials:"
@@ -252,9 +264,11 @@ msgstr "Password: <strong>%(password)s</strong>"
msgid ""
"Be sure to change the password to increase security and to disable this "
"message."
msgstr "Be sure to change the password to increase security and to disable this message."
msgstr ""
"Be sure to change the password to increase security and to disable this "
"message."
#: templates/appearance/login.html:45 templates/appearance/login.html.py:54
#: templates/appearance/login.html:45 templates/appearance/login.html:54
msgid "Sign in"
msgstr ""

View File

@@ -1,27 +1,28 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-03-21 21:06+0000\n"
"POT-Creation-Date: 2017-05-28 15:48-0400\n"
"PO-Revision-Date: 2017-04-21 16:25+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n"
"Language-Team: Bulgarian (http://www.transifex.com/rosarior/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"
"Language: bg\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:11
#: apps.py:12
msgid "Appearance"
msgstr ""
#: templates/403.html:5 templates/403.html.py:9
#: templates/403.html:5 templates/403.html:9
msgid "Insufficient permissions"
msgstr ""
@@ -29,7 +30,7 @@ msgstr ""
msgid "You don't have enough permissions for this operation."
msgstr ""
#: templates/404.html:5 templates/404.html.py:9
#: templates/404.html:5 templates/404.html:9
msgid "Page not found"
msgstr "Страницата не е намерена"
@@ -37,14 +38,14 @@ msgstr "Страницата не е намерена"
msgid "Sorry, but the requested page could not be found."
msgstr ""
#: templates/500.html:5 templates/500.html.py:9
#: templates/500.html:5 templates/500.html:9
msgid "Server error"
msgstr ""
#: templates/500.html:11
msgid ""
"There's been an error. It's been reported to the site administrators via "
"e-mail and should be fixed shortly. Thanks for your patience."
"There's been an error. It's been reported to the site administrators via e-"
"mail and should be fixed shortly. Thanks for your patience."
msgstr ""
#: templates/500.html:14
@@ -53,7 +54,7 @@ msgid ""
"identifier:"
msgstr ""
#: templates/appearance/about.html:8 templates/appearance/about.html.py:57
#: templates/appearance/about.html:8 templates/appearance/about.html:57
msgid "About"
msgstr ""
@@ -66,47 +67,47 @@ msgstr "Версия"
msgid "Build number: %(build_number)s"
msgstr ""
#: templates/appearance/about.html:88
#: templates/appearance/about.html:76
msgid "Released under the Apache 2.0 License"
msgstr ""
#: templates/appearance/about.html:100
#: templates/appearance/about.html:88
msgid "Copyright &copy; 2011-2015 Roberto Rosario."
msgstr ""
#: templates/appearance/base.html:43
#: templates/appearance/base.html:56
msgid "Toggle navigation"
msgstr ""
#: templates/appearance/base.html:72
#: templates/appearance/base.html:86
msgid "Profile"
msgstr ""
#: templates/appearance/base.html:92
msgid "Anonymous"
msgstr "Анонимен"
#: templates/appearance/base.html:74
msgid "User details"
msgstr "Данни за потребител"
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Success"
msgstr ""
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Information"
msgstr ""
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Warning"
msgstr ""
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Error"
msgstr ""
#: templates/appearance/base.html:116
#: templates/appearance/base.html:155
msgid "Actions"
msgstr "Действия"
#: templates/appearance/base.html:117
#: templates/appearance/base.html:157
msgid "Toggle Dropdown"
msgstr ""
@@ -124,6 +125,10 @@ msgstr ""
msgid "Create"
msgstr "Създаване"
#: templates/appearance/dashboard_widget.html:25
msgid "View details"
msgstr ""
#: templates/appearance/generic_confirm.html:6
#: templates/appearance/generic_confirm.html:13
msgid "Confirm"
@@ -138,39 +143,39 @@ msgstr "Потвърдете изтриване"
msgid "Delete: %(object)s?"
msgstr ""
#: templates/appearance/generic_confirm.html:47
#: templates/appearance/generic_confirm.html:48
msgid "Yes"
msgstr "Да"
#: templates/appearance/generic_confirm.html:49
#: templates/appearance/generic_confirm.html:52
msgid "No"
msgstr "Не"
#: templates/appearance/generic_form_instance.html:39
#: templates/appearance/generic_form_instance.html:46
#: templates/appearance/generic_form_subtemplate.html:51
#: templates/appearance/generic_multiform_subtemplate.html:43
#: templates/appearance/generic_multiform_subtemplate.html:42
msgid "required"
msgstr ""
#: templates/appearance/generic_form_subtemplate.html:71
#: templates/appearance/generic_multiform_subtemplate.html:65
#: templates/appearance/generic_multiform_subtemplate.html:64
msgid "Save"
msgstr "Запазване"
#: templates/appearance/generic_form_subtemplate.html:71
#: templates/appearance/generic_list_subtemplate.html:31
#: templates/appearance/generic_multiform_subtemplate.html:65
#: templates/appearance/generic_list_subtemplate.html:33
#: templates/appearance/generic_multiform_subtemplate.html:64
msgid "Submit"
msgstr "Подаване"
#: templates/appearance/generic_form_subtemplate.html:74
#: templates/appearance/generic_multiform_subtemplate.html:69
#: templates/appearance/generic_multiform_subtemplate.html:68
msgid "Cancel"
msgstr "Отказ"
#: templates/appearance/generic_list_horizontal.html:21
#: templates/appearance/generic_list_subtemplate.html:108
#: templates/appearance/generic_list_subtemplate.html:112
msgid "No results"
msgstr ""
@@ -187,34 +192,38 @@ msgstr ""
msgid "Total: %(total)s"
msgstr ""
#: templates/appearance/generic_list_subtemplate.html:51
#: templates/appearance/generic_list_subtemplate.html:53
msgid "Identifier"
msgstr "Идентификатор"
#: templates/appearance/home.html:8 templates/appearance/home.html.py:12
msgid "Home"
#: templates/appearance/home.html:9 templates/appearance/home.html:13
msgid "Dashboard"
msgstr ""
#: templates/appearance/home.html:21
#: templates/appearance/home.html:22
msgid "Getting started"
msgstr ""
#: templates/appearance/home.html:24
#: templates/appearance/home.html:25
msgid "Before you can fully use Mayan EDMS you need the following:"
msgstr ""
#: templates/appearance/home.html:57
msgid "Space separated terms"
#: templates/appearance/home.html:46
msgid "Search pages"
msgstr ""
#: templates/appearance/home.html:59
#: templates/appearance/home.html:48 templates/appearance/home.html:58
msgid "Search"
msgstr "Търсене"
#: templates/appearance/home.html:60
#: templates/appearance/home.html:49 templates/appearance/home.html:59
msgid "Advanced"
msgstr ""
#: templates/appearance/home.html:56
msgid "Search documents"
msgstr ""
#: templates/appearance/login.html:10
msgid "Login"
msgstr "Влез"
@@ -227,7 +236,8 @@ msgstr "Логване за първи път"
msgid ""
"You have just finished installing <strong>Mayan EDMS</strong>, "
"congratulations!"
msgstr "Вие приключихте инсталирането на <strong>Mayan EDMS</strong>, поздравления!"
msgstr ""
"Вие приключихте инсталирането на <strong>Mayan EDMS</strong>, поздравления!"
#: templates/appearance/login.html:25
msgid "Login using the following credentials:"
@@ -252,9 +262,11 @@ msgstr "Парола: <strong>%(password)s</strong>"
msgid ""
"Be sure to change the password to increase security and to disable this "
"message."
msgstr "Моля променете паролата, за да повишите нивото на сигурност и да деактивирате това съобщение."
msgstr ""
"Моля променете паролата, за да повишите нивото на сигурност и да "
"деактивирате това съобщение."
#: templates/appearance/login.html:45 templates/appearance/login.html.py:54
#: templates/appearance/login.html:45 templates/appearance/login.html:54
msgid "Sign in"
msgstr ""

View File

@@ -1,27 +1,29 @@
# 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: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-03-21 21:06+0000\n"
"POT-Creation-Date: 2017-05-28 15:48-0400\n"
"PO-Revision-Date: 2017-04-21 16:25+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n"
"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/"
"rosarior/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"
"Language: bs_BA\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#: apps.py:11
#: apps.py:12
msgid "Appearance"
msgstr ""
#: templates/403.html:5 templates/403.html.py:9
#: templates/403.html:5 templates/403.html:9
msgid "Insufficient permissions"
msgstr "Nedovoljno dozvola"
@@ -29,7 +31,7 @@ msgstr "Nedovoljno dozvola"
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
#: templates/404.html:5 templates/404.html:9
msgid "Page not found"
msgstr "Stranica nije pronađena"
@@ -37,14 +39,14 @@ msgstr "Stranica nije pronađena"
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/500.html:5 templates/500.html.py:9
#: templates/500.html:5 templates/500.html:9
msgid "Server error"
msgstr ""
#: templates/500.html:11
msgid ""
"There's been an error. It's been reported to the site administrators via "
"e-mail and should be fixed shortly. Thanks for your patience."
"There's been an error. It's been reported to the site administrators via e-"
"mail and should be fixed shortly. Thanks for your patience."
msgstr ""
#: templates/500.html:14
@@ -53,7 +55,7 @@ msgid ""
"identifier:"
msgstr ""
#: templates/appearance/about.html:8 templates/appearance/about.html.py:57
#: templates/appearance/about.html:8 templates/appearance/about.html:57
msgid "About"
msgstr ""
@@ -66,47 +68,47 @@ msgstr "Verzija"
msgid "Build number: %(build_number)s"
msgstr ""
#: templates/appearance/about.html:88
#: templates/appearance/about.html:76
msgid "Released under the Apache 2.0 License"
msgstr ""
#: templates/appearance/about.html:100
#: templates/appearance/about.html:88
msgid "Copyright &copy; 2011-2015 Roberto Rosario."
msgstr ""
#: templates/appearance/base.html:43
#: templates/appearance/base.html:56
msgid "Toggle navigation"
msgstr ""
#: templates/appearance/base.html:72
#: templates/appearance/base.html:86
msgid "Profile"
msgstr ""
#: templates/appearance/base.html:92
msgid "Anonymous"
msgstr "Anonimni"
#: templates/appearance/base.html:74
msgid "User details"
msgstr "Detalji o korisniku"
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Success"
msgstr ""
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Information"
msgstr ""
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Warning"
msgstr ""
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Error"
msgstr ""
#: templates/appearance/base.html:116
#: templates/appearance/base.html:155
msgid "Actions"
msgstr "Akcije"
#: templates/appearance/base.html:117
#: templates/appearance/base.html:157
msgid "Toggle Dropdown"
msgstr ""
@@ -124,6 +126,10 @@ msgstr ""
msgid "Create"
msgstr "Kreirati"
#: templates/appearance/dashboard_widget.html:25
msgid "View details"
msgstr ""
#: templates/appearance/generic_confirm.html:6
#: templates/appearance/generic_confirm.html:13
msgid "Confirm"
@@ -138,39 +144,39 @@ msgstr "Potvrditi brisanje"
msgid "Delete: %(object)s?"
msgstr ""
#: templates/appearance/generic_confirm.html:47
#: templates/appearance/generic_confirm.html:48
msgid "Yes"
msgstr "Da"
#: templates/appearance/generic_confirm.html:49
#: templates/appearance/generic_confirm.html:52
msgid "No"
msgstr "Ne"
#: templates/appearance/generic_form_instance.html:39
#: templates/appearance/generic_form_instance.html:46
#: templates/appearance/generic_form_subtemplate.html:51
#: templates/appearance/generic_multiform_subtemplate.html:43
#: templates/appearance/generic_multiform_subtemplate.html:42
msgid "required"
msgstr "potrebno"
#: templates/appearance/generic_form_subtemplate.html:71
#: templates/appearance/generic_multiform_subtemplate.html:65
#: templates/appearance/generic_multiform_subtemplate.html:64
msgid "Save"
msgstr "Sačuvati"
#: templates/appearance/generic_form_subtemplate.html:71
#: templates/appearance/generic_list_subtemplate.html:31
#: templates/appearance/generic_multiform_subtemplate.html:65
#: templates/appearance/generic_list_subtemplate.html:33
#: templates/appearance/generic_multiform_subtemplate.html:64
msgid "Submit"
msgstr "Podnijeti"
#: templates/appearance/generic_form_subtemplate.html:74
#: templates/appearance/generic_multiform_subtemplate.html:69
#: templates/appearance/generic_multiform_subtemplate.html:68
msgid "Cancel"
msgstr "Otkazati"
#: templates/appearance/generic_list_horizontal.html:21
#: templates/appearance/generic_list_subtemplate.html:108
#: templates/appearance/generic_list_subtemplate.html:112
msgid "No results"
msgstr ""
@@ -187,34 +193,38 @@ msgstr ""
msgid "Total: %(total)s"
msgstr ""
#: templates/appearance/generic_list_subtemplate.html:51
#: templates/appearance/generic_list_subtemplate.html:53
msgid "Identifier"
msgstr "Identifikator"
#: templates/appearance/home.html:8 templates/appearance/home.html.py:12
msgid "Home"
#: templates/appearance/home.html:9 templates/appearance/home.html:13
msgid "Dashboard"
msgstr ""
#: templates/appearance/home.html:21
#: templates/appearance/home.html:22
msgid "Getting started"
msgstr ""
#: templates/appearance/home.html:24
#: templates/appearance/home.html:25
msgid "Before you can fully use Mayan EDMS you need the following:"
msgstr ""
#: templates/appearance/home.html:57
msgid "Space separated terms"
#: templates/appearance/home.html:46
msgid "Search pages"
msgstr ""
#: templates/appearance/home.html:59
#: templates/appearance/home.html:48 templates/appearance/home.html:58
msgid "Search"
msgstr "Pretraga"
#: templates/appearance/home.html:60
#: templates/appearance/home.html:49 templates/appearance/home.html:59
msgid "Advanced"
msgstr ""
#: templates/appearance/home.html:56
msgid "Search documents"
msgstr ""
#: templates/appearance/login.html:10
msgid "Login"
msgstr "Prijava"
@@ -227,7 +237,8 @@ msgstr "Prijava - prvi put"
msgid ""
"You have just finished installing <strong>Mayan EDMS</strong>, "
"congratulations!"
msgstr "Upravo ste završili instalaciju <strong>Mayan EDMS</strong>, čestitamo!"
msgstr ""
"Upravo ste završili instalaciju <strong>Mayan EDMS</strong>, čestitamo!"
#: templates/appearance/login.html:25
msgid "Login using the following credentials:"
@@ -252,9 +263,11 @@ msgstr "Pasvord: <strong>%(password)s</strong>"
msgid ""
"Be sure to change the password to increase security and to disable this "
"message."
msgstr "Ne zaboravite promijeniti pasvord da pojačate sigurnost i onemogućite dalje prikazivanje ove poruke."
msgstr ""
"Ne zaboravite promijeniti pasvord da pojačate sigurnost i onemogućite dalje "
"prikazivanje ove poruke."
#: templates/appearance/login.html:45 templates/appearance/login.html.py:54
#: templates/appearance/login.html:45 templates/appearance/login.html:54
msgid "Sign in"
msgstr ""

View File

@@ -1,27 +1,28 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-03-21 21:06+0000\n"
"POT-Creation-Date: 2017-05-28 15:48-0400\n"
"PO-Revision-Date: 2017-04-21 16:25+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n"
"Language-Team: Danish (http://www.transifex.com/rosarior/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"
"Language: da\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:11
#: apps.py:12
msgid "Appearance"
msgstr ""
#: templates/403.html:5 templates/403.html.py:9
#: templates/403.html:5 templates/403.html:9
msgid "Insufficient permissions"
msgstr ""
@@ -29,7 +30,7 @@ msgstr ""
msgid "You don't have enough permissions for this operation."
msgstr ""
#: templates/404.html:5 templates/404.html.py:9
#: templates/404.html:5 templates/404.html:9
msgid "Page not found"
msgstr ""
@@ -37,14 +38,14 @@ msgstr ""
msgid "Sorry, but the requested page could not be found."
msgstr ""
#: templates/500.html:5 templates/500.html.py:9
#: templates/500.html:5 templates/500.html:9
msgid "Server error"
msgstr ""
#: templates/500.html:11
msgid ""
"There's been an error. It's been reported to the site administrators via "
"e-mail and should be fixed shortly. Thanks for your patience."
"There's been an error. It's been reported to the site administrators via e-"
"mail and should be fixed shortly. Thanks for your patience."
msgstr ""
#: templates/500.html:14
@@ -53,7 +54,7 @@ msgid ""
"identifier:"
msgstr ""
#: templates/appearance/about.html:8 templates/appearance/about.html.py:57
#: templates/appearance/about.html:8 templates/appearance/about.html:57
msgid "About"
msgstr ""
@@ -66,47 +67,47 @@ msgstr "Version"
msgid "Build number: %(build_number)s"
msgstr ""
#: templates/appearance/about.html:88
#: templates/appearance/about.html:76
msgid "Released under the Apache 2.0 License"
msgstr ""
#: templates/appearance/about.html:100
#: templates/appearance/about.html:88
msgid "Copyright &copy; 2011-2015 Roberto Rosario."
msgstr ""
#: templates/appearance/base.html:43
#: templates/appearance/base.html:56
msgid "Toggle navigation"
msgstr ""
#: templates/appearance/base.html:72
#: templates/appearance/base.html:86
msgid "Profile"
msgstr ""
#: templates/appearance/base.html:92
msgid "Anonymous"
msgstr "Anonym"
#: templates/appearance/base.html:74
msgid "User details"
msgstr "Bruger detaljer"
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Success"
msgstr ""
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Information"
msgstr ""
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Warning"
msgstr ""
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Error"
msgstr ""
#: templates/appearance/base.html:116
#: templates/appearance/base.html:155
msgid "Actions"
msgstr "Handlinger"
#: templates/appearance/base.html:117
#: templates/appearance/base.html:157
msgid "Toggle Dropdown"
msgstr ""
@@ -124,6 +125,10 @@ msgstr ""
msgid "Create"
msgstr ""
#: templates/appearance/dashboard_widget.html:25
msgid "View details"
msgstr ""
#: templates/appearance/generic_confirm.html:6
#: templates/appearance/generic_confirm.html:13
msgid "Confirm"
@@ -138,39 +143,39 @@ msgstr ""
msgid "Delete: %(object)s?"
msgstr ""
#: templates/appearance/generic_confirm.html:47
#: templates/appearance/generic_confirm.html:48
msgid "Yes"
msgstr ""
#: templates/appearance/generic_confirm.html:49
#: templates/appearance/generic_confirm.html:52
msgid "No"
msgstr ""
#: templates/appearance/generic_form_instance.html:39
#: templates/appearance/generic_form_instance.html:46
#: templates/appearance/generic_form_subtemplate.html:51
#: templates/appearance/generic_multiform_subtemplate.html:43
#: templates/appearance/generic_multiform_subtemplate.html:42
msgid "required"
msgstr ""
#: templates/appearance/generic_form_subtemplate.html:71
#: templates/appearance/generic_multiform_subtemplate.html:65
#: templates/appearance/generic_multiform_subtemplate.html:64
msgid "Save"
msgstr ""
#: templates/appearance/generic_form_subtemplate.html:71
#: templates/appearance/generic_list_subtemplate.html:31
#: templates/appearance/generic_multiform_subtemplate.html:65
#: templates/appearance/generic_list_subtemplate.html:33
#: templates/appearance/generic_multiform_subtemplate.html:64
msgid "Submit"
msgstr ""
#: templates/appearance/generic_form_subtemplate.html:74
#: templates/appearance/generic_multiform_subtemplate.html:69
#: templates/appearance/generic_multiform_subtemplate.html:68
msgid "Cancel"
msgstr ""
#: templates/appearance/generic_list_horizontal.html:21
#: templates/appearance/generic_list_subtemplate.html:108
#: templates/appearance/generic_list_subtemplate.html:112
msgid "No results"
msgstr ""
@@ -187,34 +192,38 @@ msgstr ""
msgid "Total: %(total)s"
msgstr ""
#: templates/appearance/generic_list_subtemplate.html:51
#: templates/appearance/generic_list_subtemplate.html:53
msgid "Identifier"
msgstr ""
#: templates/appearance/home.html:8 templates/appearance/home.html.py:12
msgid "Home"
#: templates/appearance/home.html:9 templates/appearance/home.html:13
msgid "Dashboard"
msgstr ""
#: templates/appearance/home.html:21
#: templates/appearance/home.html:22
msgid "Getting started"
msgstr ""
#: templates/appearance/home.html:24
#: templates/appearance/home.html:25
msgid "Before you can fully use Mayan EDMS you need the following:"
msgstr ""
#: templates/appearance/home.html:57
msgid "Space separated terms"
#: templates/appearance/home.html:46
msgid "Search pages"
msgstr ""
#: templates/appearance/home.html:59
#: templates/appearance/home.html:48 templates/appearance/home.html:58
msgid "Search"
msgstr ""
#: templates/appearance/home.html:60
#: templates/appearance/home.html:49 templates/appearance/home.html:59
msgid "Advanced"
msgstr ""
#: templates/appearance/home.html:56
msgid "Search documents"
msgstr ""
#: templates/appearance/login.html:10
msgid "Login"
msgstr "Log ind"
@@ -254,7 +263,7 @@ msgid ""
"message."
msgstr ""
#: templates/appearance/login.html:45 templates/appearance/login.html.py:54
#: templates/appearance/login.html:45 templates/appearance/login.html:54
msgid "Sign in"
msgstr ""

View File

@@ -1,28 +1,30 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# Berny <berny@bernhard-marx.de>, 2015
# Jesaja Everling <jeverling@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-03-21 21:06+0000\n"
"Last-Translator: Mathias Behrle <mathiasb@m9s.biz>\n"
"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n"
"POT-Creation-Date: 2017-05-28 15:49-0400\n"
"PO-Revision-Date: 2017-04-24 22:57+0000\n"
"Last-Translator: Jesaja Everling <jeverling@gmail.com>\n"
"Language-Team: German (Germany) (http://www.transifex.com/rosarior/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"
"Language: de_DE\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:11
#: apps.py:12
msgid "Appearance"
msgstr "Erscheinungsbild"
#: templates/403.html:5 templates/403.html.py:9
#: templates/403.html:5 templates/403.html:9
msgid "Insufficient permissions"
msgstr "Unzureichende Berechtigungen"
@@ -30,7 +32,7 @@ msgstr "Unzureichende Berechtigungen"
msgid "You don't have enough permissions for this operation."
msgstr "Sie haben unzureichende Berechtigungen für diesen Vorgang."
#: templates/404.html:5 templates/404.html.py:9
#: templates/404.html:5 templates/404.html:9
msgid "Page not found"
msgstr "Seite nicht gefunden"
@@ -38,23 +40,27 @@ msgstr "Seite nicht gefunden"
msgid "Sorry, but the requested page could not be found."
msgstr "Die angeforderte Seite konnte leider nicht gefunden werden"
#: templates/500.html:5 templates/500.html.py:9
#: templates/500.html:5 templates/500.html:9
msgid "Server error"
msgstr "Serverfehler"
#: templates/500.html:11
msgid ""
"There's been an error. It's been reported to the site administrators via "
"e-mail and should be fixed shortly. Thanks for your patience."
msgstr "Es kam zu einem Fehler. Der Fehler wurde per E-Mail and die Administratoren gemeldet und sollte bald behoben werden. Vielen Dank für Ihre Geduld."
"There's been an error. It's been reported to the site administrators via e-"
"mail and should be fixed shortly. Thanks for your patience."
msgstr ""
"Es kam zu einem Fehler. Der Fehler wurde per E-Mail and die Administratoren "
"gemeldet und sollte bald behoben werden. Vielen Dank für Ihre Geduld."
#: templates/500.html:14
msgid ""
"If you need assistance, you may reference this error via the following "
"identifier:"
msgstr "Wenn Sie Hilfe brauchen, können Sie den Fehler über folgende Kennung referenzieren: "
msgstr ""
"Wenn Sie Hilfe brauchen, können Sie den Fehler über folgende Kennung "
"referenzieren: "
#: templates/appearance/about.html:8 templates/appearance/about.html.py:57
#: templates/appearance/about.html:8 templates/appearance/about.html:57
msgid "About"
msgstr "Über"
@@ -67,47 +73,47 @@ msgstr "Version"
msgid "Build number: %(build_number)s"
msgstr "Build Nummer: %(build_number)s"
#: templates/appearance/about.html:88
#: templates/appearance/about.html:76
msgid "Released under the Apache 2.0 License"
msgstr "Veröffentlicht unter der Apache 2.0 Lizenz"
#: templates/appearance/about.html:100
#: templates/appearance/about.html:88
msgid "Copyright &copy; 2011-2015 Roberto Rosario."
msgstr "Copyright &copy; 2011-2015 Roberto Rosario."
#: templates/appearance/base.html:43
#: templates/appearance/base.html:56
msgid "Toggle navigation"
msgstr "Navigation ein-/ausschalten"
#: templates/appearance/base.html:72
#: templates/appearance/base.html:86
msgid "Profile"
msgstr "Profil"
#: templates/appearance/base.html:92
msgid "Anonymous"
msgstr "Anonymer Benutzer"
#: templates/appearance/base.html:74
msgid "User details"
msgstr "Benutzerdetails"
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Success"
msgstr "Erfolg"
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Information"
msgstr "Information"
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Warning"
msgstr "Warnung"
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Error"
msgstr "Fehler"
#: templates/appearance/base.html:116
#: templates/appearance/base.html:155
msgid "Actions"
msgstr "Aktionen"
#: templates/appearance/base.html:117
#: templates/appearance/base.html:157
msgid "Toggle Dropdown"
msgstr "Ausklappmenü ein-/ausschalten"
@@ -125,6 +131,10 @@ msgstr "%(object)s bearbeiten"
msgid "Create"
msgstr "Erstellen"
#: templates/appearance/dashboard_widget.html:25
msgid "View details"
msgstr ""
#: templates/appearance/generic_confirm.html:6
#: templates/appearance/generic_confirm.html:13
msgid "Confirm"
@@ -139,39 +149,39 @@ msgstr "Löschen bestätigen"
msgid "Delete: %(object)s?"
msgstr "%(object)s löschen?"
#: templates/appearance/generic_confirm.html:47
#: templates/appearance/generic_confirm.html:48
msgid "Yes"
msgstr "Ja"
#: templates/appearance/generic_confirm.html:49
#: templates/appearance/generic_confirm.html:52
msgid "No"
msgstr "Nein"
#: templates/appearance/generic_form_instance.html:39
#: templates/appearance/generic_form_instance.html:46
#: templates/appearance/generic_form_subtemplate.html:51
#: templates/appearance/generic_multiform_subtemplate.html:43
#: templates/appearance/generic_multiform_subtemplate.html:42
msgid "required"
msgstr "erforderlich"
#: templates/appearance/generic_form_subtemplate.html:71
#: templates/appearance/generic_multiform_subtemplate.html:65
#: templates/appearance/generic_multiform_subtemplate.html:64
msgid "Save"
msgstr "Speichern"
#: templates/appearance/generic_form_subtemplate.html:71
#: templates/appearance/generic_list_subtemplate.html:31
#: templates/appearance/generic_multiform_subtemplate.html:65
#: templates/appearance/generic_list_subtemplate.html:33
#: templates/appearance/generic_multiform_subtemplate.html:64
msgid "Submit"
msgstr "Absenden"
#: templates/appearance/generic_form_subtemplate.html:74
#: templates/appearance/generic_multiform_subtemplate.html:69
#: templates/appearance/generic_multiform_subtemplate.html:68
msgid "Cancel"
msgstr "Abbrechen"
#: templates/appearance/generic_list_horizontal.html:21
#: templates/appearance/generic_list_subtemplate.html:108
#: templates/appearance/generic_list_subtemplate.html:112
msgid "No results"
msgstr "Kein Ergebnis"
@@ -180,7 +190,9 @@ msgstr "Kein Ergebnis"
msgid ""
"Total (%(start)s - %(end)s out of %(total)s) (Page %(page_number)s of "
"%(total_pages)s)"
msgstr "Gesamt (%(start)s - %(end)s von %(total)s) (Seite %(page_number)s von %(total_pages)s)"
msgstr ""
"Gesamt (%(start)s - %(end)s von %(total)s) (Seite %(page_number)s von "
"%(total_pages)s)"
#: templates/appearance/generic_list_subtemplate.html:14
#: templates/appearance/generic_list_subtemplate.html:17
@@ -188,34 +200,38 @@ msgstr "Gesamt (%(start)s - %(end)s von %(total)s) (Seite %(page_number)s von %(
msgid "Total: %(total)s"
msgstr "Gesamt: %(total)s"
#: templates/appearance/generic_list_subtemplate.html:51
#: templates/appearance/generic_list_subtemplate.html:53
msgid "Identifier"
msgstr "Bezeichner"
#: templates/appearance/home.html:8 templates/appearance/home.html.py:12
msgid "Home"
msgstr "Start"
#: templates/appearance/home.html:9 templates/appearance/home.html:13
msgid "Dashboard"
msgstr ""
#: templates/appearance/home.html:21
#: templates/appearance/home.html:22
msgid "Getting started"
msgstr "Erste Schritte"
#: templates/appearance/home.html:24
#: templates/appearance/home.html:25
msgid "Before you can fully use Mayan EDMS you need the following:"
msgstr "Bevor Mayan EDMS voll genutzt werden kann, muss folgendes passieren:"
#: templates/appearance/home.html:57
msgid "Space separated terms"
msgstr "Begriffe durch Leerzeichen getrennt"
#: templates/appearance/home.html:46
msgid "Search pages"
msgstr ""
#: templates/appearance/home.html:59
#: templates/appearance/home.html:48 templates/appearance/home.html:58
msgid "Search"
msgstr "Suche"
#: templates/appearance/home.html:60
#: templates/appearance/home.html:49 templates/appearance/home.html:59
msgid "Advanced"
msgstr "Erweitert"
#: templates/appearance/home.html:56
msgid "Search documents"
msgstr ""
#: templates/appearance/login.html:10
msgid "Login"
msgstr "Login"
@@ -228,7 +244,9 @@ msgstr "Erstanmeldung"
msgid ""
"You have just finished installing <strong>Mayan EDMS</strong>, "
"congratulations!"
msgstr "Herzlichen Glückwunsch! Sie haben die Installation von <strong>Mayan EDMS</strong> erfolgreich abgeschlossen. "
msgstr ""
"Herzlichen Glückwunsch! Sie haben die Installation von <strong>Mayan EDMS</"
"strong> erfolgreich abgeschlossen. "
#: templates/appearance/login.html:25
msgid "Login using the following credentials:"
@@ -253,9 +271,11 @@ msgstr "Passwort: <strong>%(password)s</strong>"
msgid ""
"Be sure to change the password to increase security and to disable this "
"message."
msgstr "Bitte ändern Sie das Passwort, um die Sicherheit zu erhöhen und diese Nachricht zu deaktivieren."
msgstr ""
"Bitte ändern Sie das Passwort, um die Sicherheit zu erhöhen und diese "
"Nachricht zu deaktivieren."
#: templates/appearance/login.html:45 templates/appearance/login.html.py:54
#: templates/appearance/login.html:45 templates/appearance/login.html:54
msgid "Sign in"
msgstr "Anmelden"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"POT-Creation-Date: 2017-05-28 15:49-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,11 +17,11 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: apps.py:11
#: apps.py:12
msgid "Appearance"
msgstr ""
#: templates/403.html:5 templates/403.html.py:9
#: templates/403.html:5 templates/403.html:9
msgid "Insufficient permissions"
msgstr ""
@@ -29,7 +29,7 @@ msgstr ""
msgid "You don't have enough permissions for this operation."
msgstr ""
#: templates/404.html:5 templates/404.html.py:9
#: templates/404.html:5 templates/404.html:9
msgid "Page not found"
msgstr ""
@@ -37,7 +37,7 @@ msgstr ""
msgid "Sorry, but the requested page could not be found."
msgstr ""
#: templates/500.html:5 templates/500.html.py:9
#: templates/500.html:5 templates/500.html:9
msgid "Server error"
msgstr ""
@@ -53,7 +53,7 @@ msgid ""
"identifier:"
msgstr ""
#: templates/appearance/about.html:8 templates/appearance/about.html.py:57
#: templates/appearance/about.html:8 templates/appearance/about.html:57
msgid "About"
msgstr ""
@@ -66,47 +66,47 @@ msgstr ""
msgid "Build number: %(build_number)s"
msgstr ""
#: templates/appearance/about.html:88
#: templates/appearance/about.html:76
msgid "Released under the Apache 2.0 License"
msgstr ""
#: templates/appearance/about.html:100
#: templates/appearance/about.html:88
msgid "Copyright &copy; 2011-2015 Roberto Rosario."
msgstr ""
#: templates/appearance/base.html:43
#: templates/appearance/base.html:56
msgid "Toggle navigation"
msgstr ""
#: templates/appearance/base.html:72
#: templates/appearance/base.html:86
msgid "Profile"
msgstr ""
#: templates/appearance/base.html:92
msgid "Anonymous"
msgstr ""
#: templates/appearance/base.html:74
msgid "User details"
msgstr ""
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Success"
msgstr ""
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Information"
msgstr ""
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Warning"
msgstr ""
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Error"
msgstr ""
#: templates/appearance/base.html:116
#: templates/appearance/base.html:155
msgid "Actions"
msgstr ""
#: templates/appearance/base.html:117
#: templates/appearance/base.html:157
msgid "Toggle Dropdown"
msgstr ""
@@ -124,6 +124,10 @@ msgstr ""
msgid "Create"
msgstr ""
#: templates/appearance/dashboard_widget.html:25
msgid "View details"
msgstr ""
#: templates/appearance/generic_confirm.html:6
#: templates/appearance/generic_confirm.html:13
msgid "Confirm"
@@ -138,39 +142,39 @@ msgstr ""
msgid "Delete: %(object)s?"
msgstr ""
#: templates/appearance/generic_confirm.html:47
#: templates/appearance/generic_confirm.html:48
msgid "Yes"
msgstr ""
#: templates/appearance/generic_confirm.html:49
#: templates/appearance/generic_confirm.html:52
msgid "No"
msgstr ""
#: templates/appearance/generic_form_instance.html:39
#: templates/appearance/generic_form_instance.html:46
#: templates/appearance/generic_form_subtemplate.html:51
#: templates/appearance/generic_multiform_subtemplate.html:43
#: templates/appearance/generic_multiform_subtemplate.html:42
msgid "required"
msgstr ""
#: templates/appearance/generic_form_subtemplate.html:71
#: templates/appearance/generic_multiform_subtemplate.html:65
#: templates/appearance/generic_multiform_subtemplate.html:64
msgid "Save"
msgstr ""
#: templates/appearance/generic_form_subtemplate.html:71
#: templates/appearance/generic_list_subtemplate.html:31
#: templates/appearance/generic_multiform_subtemplate.html:65
#: templates/appearance/generic_list_subtemplate.html:33
#: templates/appearance/generic_multiform_subtemplate.html:64
msgid "Submit"
msgstr ""
#: templates/appearance/generic_form_subtemplate.html:74
#: templates/appearance/generic_multiform_subtemplate.html:69
#: templates/appearance/generic_multiform_subtemplate.html:68
msgid "Cancel"
msgstr ""
#: templates/appearance/generic_list_horizontal.html:21
#: templates/appearance/generic_list_subtemplate.html:108
#: templates/appearance/generic_list_subtemplate.html:112
msgid "No results"
msgstr ""
@@ -187,34 +191,38 @@ msgstr ""
msgid "Total: %(total)s"
msgstr ""
#: templates/appearance/generic_list_subtemplate.html:51
#: templates/appearance/generic_list_subtemplate.html:53
msgid "Identifier"
msgstr ""
#: templates/appearance/home.html:8 templates/appearance/home.html.py:12
msgid "Home"
#: templates/appearance/home.html:9 templates/appearance/home.html:13
msgid "Dashboard"
msgstr ""
#: templates/appearance/home.html:21
#: templates/appearance/home.html:22
msgid "Getting started"
msgstr ""
#: templates/appearance/home.html:24
#: templates/appearance/home.html:25
msgid "Before you can fully use Mayan EDMS you need the following:"
msgstr ""
#: templates/appearance/home.html:57
msgid "Space separated terms"
#: templates/appearance/home.html:46
msgid "Search pages"
msgstr ""
#: templates/appearance/home.html:59
#: templates/appearance/home.html:48 templates/appearance/home.html:58
msgid "Search"
msgstr ""
#: templates/appearance/home.html:60
#: templates/appearance/home.html:49 templates/appearance/home.html:59
msgid "Advanced"
msgstr ""
#: templates/appearance/home.html:56
msgid "Search documents"
msgstr ""
#: templates/appearance/login.html:10
msgid "Login"
msgstr ""
@@ -254,7 +262,7 @@ msgid ""
"message."
msgstr ""
#: templates/appearance/login.html:45 templates/appearance/login.html.py:54
#: templates/appearance/login.html:45 templates/appearance/login.html:54
msgid "Sign in"
msgstr ""

View File

@@ -3,13 +3,13 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Roberto Rosario, 2015-2016
# Roberto Rosario, 2015-2017
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:41+0000\n"
"POT-Creation-Date: 2017-05-28 15:49-0400\n"
"PO-Revision-Date: 2017-05-28 19:52+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n"
"MIME-Version: 1.0\n"
@@ -18,11 +18,11 @@ msgstr ""
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:11
#: apps.py:12
msgid "Appearance"
msgstr "Apariencia"
#: templates/403.html:5 templates/403.html.py:9
#: templates/403.html:5 templates/403.html:9
msgid "Insufficient permissions"
msgstr "Permisos insuficientes"
@@ -30,7 +30,7 @@ msgstr "Permisos insuficientes"
msgid "You don't have enough permissions for this operation."
msgstr "No tienes suficientes permisos para esta operación"
#: templates/404.html:5 templates/404.html.py:9
#: templates/404.html:5 templates/404.html:9
msgid "Page not found"
msgstr "Página no encontrada"
@@ -38,7 +38,7 @@ msgstr "Página no encontrada"
msgid "Sorry, but the requested page could not be found."
msgstr "Lo sentimos, la página solicitada no pudo ser encontrada"
#: templates/500.html:5 templates/500.html.py:9
#: templates/500.html:5 templates/500.html:9
msgid "Server error"
msgstr "Error de servidor"
@@ -52,9 +52,9 @@ msgstr "Ha habido un error. Se ha informado a los administradores del sitio vía
msgid ""
"If you need assistance, you may reference this error via the following "
"identifier:"
msgstr ""
msgstr "Si necesita ayuda, puede hacer referencia a este error mediante el siguiente identificador:"
#: templates/appearance/about.html:8 templates/appearance/about.html.py:57
#: templates/appearance/about.html:8 templates/appearance/about.html:57
msgid "About"
msgstr "Sobre"
@@ -67,47 +67,47 @@ msgstr "Versión"
msgid "Build number: %(build_number)s"
msgstr "Número de compilación: %(build_number)s"
#: templates/appearance/about.html:88
#: templates/appearance/about.html:76
msgid "Released under the Apache 2.0 License"
msgstr "Liberado bajo la licencia Apache 2.0 License"
#: templates/appearance/about.html:100
#: templates/appearance/about.html:88
msgid "Copyright &copy; 2011-2015 Roberto Rosario."
msgstr "Todos los derechos reservados &copy; 2011-2015 Roberto Rosario."
#: templates/appearance/base.html:43
#: templates/appearance/base.html:56
msgid "Toggle navigation"
msgstr "Activar/Desactivar navegación"
#: templates/appearance/base.html:72
#: templates/appearance/base.html:86
msgid "Profile"
msgstr "Perfil"
#: templates/appearance/base.html:92
msgid "Anonymous"
msgstr "Anónimo"
#: templates/appearance/base.html:74
msgid "User details"
msgstr "Detalles del usuario"
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Success"
msgstr "Exitoso"
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Information"
msgstr "Información"
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Warning"
msgstr "Advertencia"
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Error"
msgstr "Error"
#: templates/appearance/base.html:116
#: templates/appearance/base.html:155
msgid "Actions"
msgstr "Acciones"
#: templates/appearance/base.html:117
#: templates/appearance/base.html:157
msgid "Toggle Dropdown"
msgstr "Alternar desplegable"
@@ -125,6 +125,10 @@ msgstr "Editar: %(object)s"
msgid "Create"
msgstr "Crear"
#: templates/appearance/dashboard_widget.html:25
msgid "View details"
msgstr "Ver detalles"
#: templates/appearance/generic_confirm.html:6
#: templates/appearance/generic_confirm.html:13
msgid "Confirm"
@@ -139,39 +143,39 @@ msgstr "Confirmar eliminación"
msgid "Delete: %(object)s?"
msgstr "¿Borrar: %(object)s?"
#: templates/appearance/generic_confirm.html:47
#: templates/appearance/generic_confirm.html:48
msgid "Yes"
msgstr "Sí"
#: templates/appearance/generic_confirm.html:49
#: templates/appearance/generic_confirm.html:52
msgid "No"
msgstr "No"
#: templates/appearance/generic_form_instance.html:39
#: templates/appearance/generic_form_instance.html:46
#: templates/appearance/generic_form_subtemplate.html:51
#: templates/appearance/generic_multiform_subtemplate.html:43
#: templates/appearance/generic_multiform_subtemplate.html:42
msgid "required"
msgstr "requerido"
#: templates/appearance/generic_form_subtemplate.html:71
#: templates/appearance/generic_multiform_subtemplate.html:65
#: templates/appearance/generic_multiform_subtemplate.html:64
msgid "Save"
msgstr "Guardar"
#: templates/appearance/generic_form_subtemplate.html:71
#: templates/appearance/generic_list_subtemplate.html:31
#: templates/appearance/generic_multiform_subtemplate.html:65
#: templates/appearance/generic_list_subtemplate.html:33
#: templates/appearance/generic_multiform_subtemplate.html:64
msgid "Submit"
msgstr "Enviar"
#: templates/appearance/generic_form_subtemplate.html:74
#: templates/appearance/generic_multiform_subtemplate.html:69
#: templates/appearance/generic_multiform_subtemplate.html:68
msgid "Cancel"
msgstr "Cancelar"
#: templates/appearance/generic_list_horizontal.html:21
#: templates/appearance/generic_list_subtemplate.html:108
#: templates/appearance/generic_list_subtemplate.html:112
msgid "No results"
msgstr "Ningún resultado"
@@ -188,34 +192,38 @@ msgstr "Total (%(start)s - %(end)s de %(total)s) (Página %(page_number)s de %(t
msgid "Total: %(total)s"
msgstr "Total: %(total)s"
#: templates/appearance/generic_list_subtemplate.html:51
#: templates/appearance/generic_list_subtemplate.html:53
msgid "Identifier"
msgstr "Identificador"
#: templates/appearance/home.html:8 templates/appearance/home.html.py:12
msgid "Home"
msgstr "inicio"
#: templates/appearance/home.html:9 templates/appearance/home.html:13
msgid "Dashboard"
msgstr "Tablero"
#: templates/appearance/home.html:21
#: templates/appearance/home.html:22
msgid "Getting started"
msgstr "Iniciando"
#: templates/appearance/home.html:24
#: templates/appearance/home.html:25
msgid "Before you can fully use Mayan EDMS you need the following:"
msgstr "Antes de comenzar a utilizar Mayan EDMS usted necesita lo siguiente:"
#: templates/appearance/home.html:57
msgid "Space separated terms"
msgstr "Términos separados por espacios"
#: templates/appearance/home.html:46
msgid "Search pages"
msgstr "Buscar páginas "
#: templates/appearance/home.html:59
#: templates/appearance/home.html:48 templates/appearance/home.html:58
msgid "Search"
msgstr "Búsqueda"
#: templates/appearance/home.html:60
#: templates/appearance/home.html:49 templates/appearance/home.html:59
msgid "Advanced"
msgstr "Avanzada"
#: templates/appearance/home.html:56
msgid "Search documents"
msgstr "Buscar documentos"
#: templates/appearance/login.html:10
msgid "Login"
msgstr "Iniciar sesión"
@@ -255,7 +263,7 @@ msgid ""
"message."
msgstr "Asegúrese de cambiar su contraseña para aumentar la seguridad y para desactivar este mensaje"
#: templates/appearance/login.html:45 templates/appearance/login.html.py:54
#: templates/appearance/login.html:45 templates/appearance/login.html:54
msgid "Sign in"
msgstr "Entrar"

View File

@@ -1,27 +1,28 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-03-21 21:06+0000\n"
"POT-Creation-Date: 2017-05-28 15:49-0400\n"
"PO-Revision-Date: 2017-04-21 16:25+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n"
"Language-Team: Persian (http://www.transifex.com/rosarior/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"
"Language: fa\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: apps.py:11
#: apps.py:12
msgid "Appearance"
msgstr ""
#: templates/403.html:5 templates/403.html.py:9
#: templates/403.html:5 templates/403.html:9
msgid "Insufficient permissions"
msgstr "مجوز ناکافی"
@@ -29,7 +30,7 @@ msgstr "مجوز ناکافی"
msgid "You don't have enough permissions for this operation."
msgstr "مجوزهای لازم برای انجام این عملیات را ندارید."
#: templates/404.html:5 templates/404.html.py:9
#: templates/404.html:5 templates/404.html:9
msgid "Page not found"
msgstr "صفحه پیدا نشد."
@@ -37,14 +38,14 @@ msgstr "صفحه پیدا نشد."
msgid "Sorry, but the requested page could not be found."
msgstr "متاسفانه صفحه درخواستی پیدا نشد."
#: templates/500.html:5 templates/500.html.py:9
#: templates/500.html:5 templates/500.html:9
msgid "Server error"
msgstr ""
#: templates/500.html:11
msgid ""
"There's been an error. It's been reported to the site administrators via "
"e-mail and should be fixed shortly. Thanks for your patience."
"There's been an error. It's been reported to the site administrators via e-"
"mail and should be fixed shortly. Thanks for your patience."
msgstr ""
#: templates/500.html:14
@@ -53,7 +54,7 @@ msgid ""
"identifier:"
msgstr ""
#: templates/appearance/about.html:8 templates/appearance/about.html.py:57
#: templates/appearance/about.html:8 templates/appearance/about.html:57
msgid "About"
msgstr "درباره"
@@ -66,47 +67,47 @@ msgstr "نسخه"
msgid "Build number: %(build_number)s"
msgstr ""
#: templates/appearance/about.html:88
#: templates/appearance/about.html:76
msgid "Released under the Apache 2.0 License"
msgstr "تحت لیسانس Apache 2.0"
#: templates/appearance/about.html:100
#: templates/appearance/about.html:88
msgid "Copyright &copy; 2011-2015 Roberto Rosario."
msgstr "کپی رایت و کپی"
#: templates/appearance/base.html:43
#: templates/appearance/base.html:56
msgid "Toggle navigation"
msgstr ""
#: templates/appearance/base.html:72
#: templates/appearance/base.html:86
msgid "Profile"
msgstr ""
#: templates/appearance/base.html:92
msgid "Anonymous"
msgstr "ناشناس"
#: templates/appearance/base.html:74
msgid "User details"
msgstr "جزئیات کاربر"
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Success"
msgstr ""
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Information"
msgstr ""
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Warning"
msgstr ""
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Error"
msgstr ""
#: templates/appearance/base.html:116
#: templates/appearance/base.html:155
msgid "Actions"
msgstr "عملیات"
#: templates/appearance/base.html:117
#: templates/appearance/base.html:157
msgid "Toggle Dropdown"
msgstr ""
@@ -124,6 +125,10 @@ msgstr "ویرایش : %(object)s"
msgid "Create"
msgstr "ایجاد"
#: templates/appearance/dashboard_widget.html:25
msgid "View details"
msgstr ""
#: templates/appearance/generic_confirm.html:6
#: templates/appearance/generic_confirm.html:13
msgid "Confirm"
@@ -138,39 +143,39 @@ msgstr "تائید حذف"
msgid "Delete: %(object)s?"
msgstr ""
#: templates/appearance/generic_confirm.html:47
#: templates/appearance/generic_confirm.html:48
msgid "Yes"
msgstr "بلی"
#: templates/appearance/generic_confirm.html:49
#: templates/appearance/generic_confirm.html:52
msgid "No"
msgstr "خیر"
#: templates/appearance/generic_form_instance.html:39
#: templates/appearance/generic_form_instance.html:46
#: templates/appearance/generic_form_subtemplate.html:51
#: templates/appearance/generic_multiform_subtemplate.html:43
#: templates/appearance/generic_multiform_subtemplate.html:42
msgid "required"
msgstr "الزامی"
#: templates/appearance/generic_form_subtemplate.html:71
#: templates/appearance/generic_multiform_subtemplate.html:65
#: templates/appearance/generic_multiform_subtemplate.html:64
msgid "Save"
msgstr "ذخیره"
#: templates/appearance/generic_form_subtemplate.html:71
#: templates/appearance/generic_list_subtemplate.html:31
#: templates/appearance/generic_multiform_subtemplate.html:65
#: templates/appearance/generic_list_subtemplate.html:33
#: templates/appearance/generic_multiform_subtemplate.html:64
msgid "Submit"
msgstr "ارسال"
#: templates/appearance/generic_form_subtemplate.html:74
#: templates/appearance/generic_multiform_subtemplate.html:69
#: templates/appearance/generic_multiform_subtemplate.html:68
msgid "Cancel"
msgstr "لغو"
#: templates/appearance/generic_list_horizontal.html:21
#: templates/appearance/generic_list_subtemplate.html:108
#: templates/appearance/generic_list_subtemplate.html:112
msgid "No results"
msgstr "بی جواب و یا بی جواب"
@@ -187,34 +192,38 @@ msgstr ""
msgid "Total: %(total)s"
msgstr ""
#: templates/appearance/generic_list_subtemplate.html:51
#: templates/appearance/generic_list_subtemplate.html:53
msgid "Identifier"
msgstr "مشخصه Identifier"
#: templates/appearance/home.html:8 templates/appearance/home.html.py:12
msgid "Home"
msgstr "خانه"
#: templates/appearance/home.html:9 templates/appearance/home.html:13
msgid "Dashboard"
msgstr ""
#: templates/appearance/home.html:21
#: templates/appearance/home.html:22
msgid "Getting started"
msgstr ""
#: templates/appearance/home.html:24
#: templates/appearance/home.html:25
msgid "Before you can fully use Mayan EDMS you need the following:"
msgstr ""
#: templates/appearance/home.html:57
msgid "Space separated terms"
msgstr "عبارات جداکننده فضا"
#: templates/appearance/home.html:46
msgid "Search pages"
msgstr ""
#: templates/appearance/home.html:59
#: templates/appearance/home.html:48 templates/appearance/home.html:58
msgid "Search"
msgstr "جستجو"
#: templates/appearance/home.html:60
#: templates/appearance/home.html:49 templates/appearance/home.html:59
msgid "Advanced"
msgstr ""
#: templates/appearance/home.html:56
msgid "Search documents"
msgstr ""
#: templates/appearance/login.html:10
msgid "Login"
msgstr "لاگین"
@@ -227,7 +236,9 @@ msgstr "دفعه اول لاگین "
msgid ""
"You have just finished installing <strong>Mayan EDMS</strong>, "
"congratulations!"
msgstr "You have just finished installing <strong>Mayan EDMS</strong>, congratulations!"
msgstr ""
"You have just finished installing <strong>Mayan EDMS</strong>, "
"congratulations!"
#: templates/appearance/login.html:25
msgid "Login using the following credentials:"
@@ -254,7 +265,7 @@ msgid ""
"message."
msgstr "برای امنیت بیشتر پسورد خود را تغییر دهید"
#: templates/appearance/login.html:45 templates/appearance/login.html.py:54
#: templates/appearance/login.html:45 templates/appearance/login.html:54
msgid "Sign in"
msgstr ""

View File

@@ -1,28 +1,29 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# Thierry Schott <DarkDare@users.noreply.github.com>, 2016
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-03-21 21:06+0000\n"
"Last-Translator: Thierry Schott <DarkDare@users.noreply.github.com>\n"
"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n"
"POT-Creation-Date: 2017-05-28 15:49-0400\n"
"PO-Revision-Date: 2017-04-21 16:25+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: French (http://www.transifex.com/rosarior/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"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: apps.py:11
#: apps.py:12
msgid "Appearance"
msgstr "Apparence"
#: templates/403.html:5 templates/403.html.py:9
#: templates/403.html:5 templates/403.html:9
msgid "Insufficient permissions"
msgstr "Droits insuffisants"
@@ -30,7 +31,7 @@ msgstr "Droits insuffisants"
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
#: templates/404.html:5 templates/404.html:9
msgid "Page not found"
msgstr "Page non trouvée"
@@ -38,23 +39,28 @@ msgstr "Page non trouvée"
msgid "Sorry, but the requested page could not be found."
msgstr "Désolé, la page demandée n'a pu être trouvée."
#: templates/500.html:5 templates/500.html.py:9
#: templates/500.html:5 templates/500.html:9
msgid "Server error"
msgstr "Erreur du serveur"
#: templates/500.html:11
msgid ""
"There's been an error. It's been reported to the site administrators via "
"e-mail and should be fixed shortly. Thanks for your patience."
msgstr "Une erreur vient de se produire. Elle a été signalée aux administrateurs du site par courriel et devrait être résolue rapidement. Merci de votre patience."
"There's been an error. It's been reported to the site administrators via e-"
"mail and should be fixed shortly. Thanks for your patience."
msgstr ""
"Une erreur vient de se produire. Elle a été signalée aux administrateurs du "
"site par courriel et devrait être résolue rapidement. Merci de votre "
"patience."
#: templates/500.html:14
msgid ""
"If you need assistance, you may reference this error via the following "
"identifier:"
msgstr "Si vous avez besoin d'assistance, vous pouvez faire référence à cette erreur grâce à l'identifiant suivant :"
msgstr ""
"Si vous avez besoin d'assistance, vous pouvez faire référence à cette erreur "
"grâce à l'identifiant suivant :"
#: templates/appearance/about.html:8 templates/appearance/about.html.py:57
#: templates/appearance/about.html:8 templates/appearance/about.html:57
msgid "About"
msgstr "A propos"
@@ -67,47 +73,47 @@ msgstr "Version"
msgid "Build number: %(build_number)s"
msgstr "Numéro de build : %(build_number)s"
#: templates/appearance/about.html:88
#: templates/appearance/about.html:76
msgid "Released under the Apache 2.0 License"
msgstr "Publié sous licence Apache 2.0"
#: templates/appearance/about.html:100
#: templates/appearance/about.html:88
msgid "Copyright &copy; 2011-2015 Roberto Rosario."
msgstr "Copyright &copy; 2011-2015 Roberto Rosario."
#: templates/appearance/base.html:43
#: templates/appearance/base.html:56
msgid "Toggle navigation"
msgstr "Activer la navigation"
#: templates/appearance/base.html:72
#: templates/appearance/base.html:86
msgid "Profile"
msgstr ""
#: templates/appearance/base.html:92
msgid "Anonymous"
msgstr "Anonyme"
#: templates/appearance/base.html:74
msgid "User details"
msgstr "Détails de l'utilisateur"
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Success"
msgstr "Succès de l'opération"
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Information"
msgstr "Information"
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Warning"
msgstr "Alerte"
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Error"
msgstr "Erreur"
#: templates/appearance/base.html:116
#: templates/appearance/base.html:155
msgid "Actions"
msgstr "Actions"
#: templates/appearance/base.html:117
#: templates/appearance/base.html:157
msgid "Toggle Dropdown"
msgstr "Activer la liste déroulante"
@@ -125,6 +131,10 @@ msgstr "Modifie r: %(object)s"
msgid "Create"
msgstr "Créer"
#: templates/appearance/dashboard_widget.html:25
msgid "View details"
msgstr ""
#: templates/appearance/generic_confirm.html:6
#: templates/appearance/generic_confirm.html:13
msgid "Confirm"
@@ -139,39 +149,39 @@ msgstr "Confirmer la suppression"
msgid "Delete: %(object)s?"
msgstr "Supprimer : %(object)s?"
#: templates/appearance/generic_confirm.html:47
#: templates/appearance/generic_confirm.html:48
msgid "Yes"
msgstr "Oui"
#: templates/appearance/generic_confirm.html:49
#: templates/appearance/generic_confirm.html:52
msgid "No"
msgstr "Non"
#: templates/appearance/generic_form_instance.html:39
#: templates/appearance/generic_form_instance.html:46
#: templates/appearance/generic_form_subtemplate.html:51
#: templates/appearance/generic_multiform_subtemplate.html:43
#: templates/appearance/generic_multiform_subtemplate.html:42
msgid "required"
msgstr "Requis"
#: templates/appearance/generic_form_subtemplate.html:71
#: templates/appearance/generic_multiform_subtemplate.html:65
#: templates/appearance/generic_multiform_subtemplate.html:64
msgid "Save"
msgstr "Enregistrer"
#: templates/appearance/generic_form_subtemplate.html:71
#: templates/appearance/generic_list_subtemplate.html:31
#: templates/appearance/generic_multiform_subtemplate.html:65
#: templates/appearance/generic_list_subtemplate.html:33
#: templates/appearance/generic_multiform_subtemplate.html:64
msgid "Submit"
msgstr "Soumettre"
#: templates/appearance/generic_form_subtemplate.html:74
#: templates/appearance/generic_multiform_subtemplate.html:69
#: templates/appearance/generic_multiform_subtemplate.html:68
msgid "Cancel"
msgstr "Annuler"
#: templates/appearance/generic_list_horizontal.html:21
#: templates/appearance/generic_list_subtemplate.html:108
#: templates/appearance/generic_list_subtemplate.html:112
msgid "No results"
msgstr "Pas de résultats"
@@ -180,7 +190,9 @@ msgstr "Pas de résultats"
msgid ""
"Total (%(start)s - %(end)s out of %(total)s) (Page %(page_number)s of "
"%(total_pages)s)"
msgstr "Total (%(start)s - %(end)s surof %(total)s) (Page %(page_number)s sur %(total_pages)s)"
msgstr ""
"Total (%(start)s - %(end)s surof %(total)s) (Page %(page_number)s sur "
"%(total_pages)s)"
#: templates/appearance/generic_list_subtemplate.html:14
#: templates/appearance/generic_list_subtemplate.html:17
@@ -188,34 +200,40 @@ msgstr "Total (%(start)s - %(end)s surof %(total)s) (Page %(page_number)s sur %(
msgid "Total: %(total)s"
msgstr "Total : %(total)s"
#: templates/appearance/generic_list_subtemplate.html:51
#: templates/appearance/generic_list_subtemplate.html:53
msgid "Identifier"
msgstr "Identifiant"
#: templates/appearance/home.html:8 templates/appearance/home.html.py:12
msgid "Home"
msgstr "Accueil"
#: templates/appearance/home.html:9 templates/appearance/home.html:13
msgid "Dashboard"
msgstr ""
#: templates/appearance/home.html:21
#: templates/appearance/home.html:22
msgid "Getting started"
msgstr "Démarrage"
#: templates/appearance/home.html:24
#: templates/appearance/home.html:25
msgid "Before you can fully use Mayan EDMS you need the following:"
msgstr "Avant d'utiliser pleinement Mayan EDMS, les éléments suivants sont nécessaires :"
msgstr ""
"Avant d'utiliser pleinement Mayan EDMS, les éléments suivants sont "
"nécessaires :"
#: templates/appearance/home.html:57
msgid "Space separated terms"
msgstr "Termes séparés par des espaces"
#: templates/appearance/home.html:46
msgid "Search pages"
msgstr ""
#: templates/appearance/home.html:59
#: templates/appearance/home.html:48 templates/appearance/home.html:58
msgid "Search"
msgstr "Recherche"
#: templates/appearance/home.html:60
#: templates/appearance/home.html:49 templates/appearance/home.html:59
msgid "Advanced"
msgstr "Avancé"
#: templates/appearance/home.html:56
msgid "Search documents"
msgstr ""
#: templates/appearance/login.html:10
msgid "Login"
msgstr "Connexion"
@@ -228,11 +246,14 @@ msgstr "Première connexion"
msgid ""
"You have just finished installing <strong>Mayan EDMS</strong>, "
"congratulations!"
msgstr "Vous venez de finaliser l'installation de <strong>Mayan EDMS</strong>, félicitations!"
msgstr ""
"Vous venez de finaliser l'installation de <strong>Mayan EDMS</strong>, "
"félicitations!"
#: templates/appearance/login.html:25
msgid "Login using the following credentials:"
msgstr "Connectez-vous en utilisant les informations d'identification suivantes :"
msgstr ""
"Connectez-vous en utilisant les informations d'identification suivantes :"
#: templates/appearance/login.html:26
#, python-format
@@ -253,9 +274,11 @@ msgstr "Mot de passe : <strong>%(password)s</strong>"
msgid ""
"Be sure to change the password to increase security and to disable this "
"message."
msgstr "Assurez-vous de modifier votre mot de passe pour accroître la sécurité et pour ne plus avoir ce message."
msgstr ""
"Assurez-vous de modifier votre mot de passe pour accroître la sécurité et "
"pour ne plus avoir ce message."
#: templates/appearance/login.html:45 templates/appearance/login.html.py:54
#: templates/appearance/login.html:45 templates/appearance/login.html:54
msgid "Sign in"
msgstr "Connexion"

View File

@@ -1,27 +1,28 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-03-21 21:06+0000\n"
"POT-Creation-Date: 2017-05-28 15:49-0400\n"
"PO-Revision-Date: 2017-04-21 16:25+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n"
"Language-Team: Hungarian (http://www.transifex.com/rosarior/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"
"Language: hu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:11
#: apps.py:12
msgid "Appearance"
msgstr ""
#: templates/403.html:5 templates/403.html.py:9
#: templates/403.html:5 templates/403.html:9
msgid "Insufficient permissions"
msgstr ""
@@ -29,7 +30,7 @@ msgstr ""
msgid "You don't have enough permissions for this operation."
msgstr ""
#: templates/404.html:5 templates/404.html.py:9
#: templates/404.html:5 templates/404.html:9
msgid "Page not found"
msgstr ""
@@ -37,14 +38,14 @@ msgstr ""
msgid "Sorry, but the requested page could not be found."
msgstr ""
#: templates/500.html:5 templates/500.html.py:9
#: templates/500.html:5 templates/500.html:9
msgid "Server error"
msgstr ""
#: templates/500.html:11
msgid ""
"There's been an error. It's been reported to the site administrators via "
"e-mail and should be fixed shortly. Thanks for your patience."
"There's been an error. It's been reported to the site administrators via e-"
"mail and should be fixed shortly. Thanks for your patience."
msgstr ""
#: templates/500.html:14
@@ -53,7 +54,7 @@ msgid ""
"identifier:"
msgstr ""
#: templates/appearance/about.html:8 templates/appearance/about.html.py:57
#: templates/appearance/about.html:8 templates/appearance/about.html:57
msgid "About"
msgstr ""
@@ -66,47 +67,47 @@ msgstr "Verzió"
msgid "Build number: %(build_number)s"
msgstr ""
#: templates/appearance/about.html:88
#: templates/appearance/about.html:76
msgid "Released under the Apache 2.0 License"
msgstr ""
#: templates/appearance/about.html:100
#: templates/appearance/about.html:88
msgid "Copyright &copy; 2011-2015 Roberto Rosario."
msgstr ""
#: templates/appearance/base.html:43
#: templates/appearance/base.html:56
msgid "Toggle navigation"
msgstr ""
#: templates/appearance/base.html:72
#: templates/appearance/base.html:86
msgid "Profile"
msgstr ""
#: templates/appearance/base.html:92
msgid "Anonymous"
msgstr "névtelen felhasználó"
#: templates/appearance/base.html:74
msgid "User details"
msgstr "A felhasználó adatai"
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Success"
msgstr ""
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Information"
msgstr ""
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Warning"
msgstr ""
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Error"
msgstr ""
#: templates/appearance/base.html:116
#: templates/appearance/base.html:155
msgid "Actions"
msgstr "Műveletek"
#: templates/appearance/base.html:117
#: templates/appearance/base.html:157
msgid "Toggle Dropdown"
msgstr ""
@@ -124,6 +125,10 @@ msgstr ""
msgid "Create"
msgstr ""
#: templates/appearance/dashboard_widget.html:25
msgid "View details"
msgstr ""
#: templates/appearance/generic_confirm.html:6
#: templates/appearance/generic_confirm.html:13
msgid "Confirm"
@@ -138,39 +143,39 @@ msgstr ""
msgid "Delete: %(object)s?"
msgstr ""
#: templates/appearance/generic_confirm.html:47
#: templates/appearance/generic_confirm.html:48
msgid "Yes"
msgstr ""
#: templates/appearance/generic_confirm.html:49
#: templates/appearance/generic_confirm.html:52
msgid "No"
msgstr ""
#: templates/appearance/generic_form_instance.html:39
#: templates/appearance/generic_form_instance.html:46
#: templates/appearance/generic_form_subtemplate.html:51
#: templates/appearance/generic_multiform_subtemplate.html:43
#: templates/appearance/generic_multiform_subtemplate.html:42
msgid "required"
msgstr ""
#: templates/appearance/generic_form_subtemplate.html:71
#: templates/appearance/generic_multiform_subtemplate.html:65
#: templates/appearance/generic_multiform_subtemplate.html:64
msgid "Save"
msgstr ""
#: templates/appearance/generic_form_subtemplate.html:71
#: templates/appearance/generic_list_subtemplate.html:31
#: templates/appearance/generic_multiform_subtemplate.html:65
#: templates/appearance/generic_list_subtemplate.html:33
#: templates/appearance/generic_multiform_subtemplate.html:64
msgid "Submit"
msgstr ""
#: templates/appearance/generic_form_subtemplate.html:74
#: templates/appearance/generic_multiform_subtemplate.html:69
#: templates/appearance/generic_multiform_subtemplate.html:68
msgid "Cancel"
msgstr ""
#: templates/appearance/generic_list_horizontal.html:21
#: templates/appearance/generic_list_subtemplate.html:108
#: templates/appearance/generic_list_subtemplate.html:112
msgid "No results"
msgstr ""
@@ -187,34 +192,38 @@ msgstr ""
msgid "Total: %(total)s"
msgstr ""
#: templates/appearance/generic_list_subtemplate.html:51
#: templates/appearance/generic_list_subtemplate.html:53
msgid "Identifier"
msgstr ""
#: templates/appearance/home.html:8 templates/appearance/home.html.py:12
msgid "Home"
#: templates/appearance/home.html:9 templates/appearance/home.html:13
msgid "Dashboard"
msgstr ""
#: templates/appearance/home.html:21
#: templates/appearance/home.html:22
msgid "Getting started"
msgstr ""
#: templates/appearance/home.html:24
#: templates/appearance/home.html:25
msgid "Before you can fully use Mayan EDMS you need the following:"
msgstr ""
#: templates/appearance/home.html:57
msgid "Space separated terms"
#: templates/appearance/home.html:46
msgid "Search pages"
msgstr ""
#: templates/appearance/home.html:59
#: templates/appearance/home.html:48 templates/appearance/home.html:58
msgid "Search"
msgstr "Keresés"
#: templates/appearance/home.html:60
#: templates/appearance/home.html:49 templates/appearance/home.html:59
msgid "Advanced"
msgstr ""
#: templates/appearance/home.html:56
msgid "Search documents"
msgstr ""
#: templates/appearance/login.html:10
msgid "Login"
msgstr "Bejelentkezés"
@@ -254,7 +263,7 @@ msgid ""
"message."
msgstr ""
#: templates/appearance/login.html:45 templates/appearance/login.html.py:54
#: templates/appearance/login.html:45 templates/appearance/login.html:54
msgid "Sign in"
msgstr ""

View File

@@ -1,27 +1,28 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-03-21 21:06+0000\n"
"POT-Creation-Date: 2017-05-28 15:49-0400\n"
"PO-Revision-Date: 2017-04-21 16:25+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n"
"Language-Team: Indonesian (http://www.transifex.com/rosarior/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"
"Language: id\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: apps.py:11
#: apps.py:12
msgid "Appearance"
msgstr ""
#: templates/403.html:5 templates/403.html.py:9
#: templates/403.html:5 templates/403.html:9
msgid "Insufficient permissions"
msgstr ""
@@ -29,7 +30,7 @@ msgstr ""
msgid "You don't have enough permissions for this operation."
msgstr ""
#: templates/404.html:5 templates/404.html.py:9
#: templates/404.html:5 templates/404.html:9
msgid "Page not found"
msgstr ""
@@ -37,14 +38,14 @@ msgstr ""
msgid "Sorry, but the requested page could not be found."
msgstr ""
#: templates/500.html:5 templates/500.html.py:9
#: templates/500.html:5 templates/500.html:9
msgid "Server error"
msgstr ""
#: templates/500.html:11
msgid ""
"There's been an error. It's been reported to the site administrators via "
"e-mail and should be fixed shortly. Thanks for your patience."
"There's been an error. It's been reported to the site administrators via e-"
"mail and should be fixed shortly. Thanks for your patience."
msgstr ""
#: templates/500.html:14
@@ -53,7 +54,7 @@ msgid ""
"identifier:"
msgstr ""
#: templates/appearance/about.html:8 templates/appearance/about.html.py:57
#: templates/appearance/about.html:8 templates/appearance/about.html:57
msgid "About"
msgstr "Tentang"
@@ -66,47 +67,47 @@ msgstr ""
msgid "Build number: %(build_number)s"
msgstr ""
#: templates/appearance/about.html:88
#: templates/appearance/about.html:76
msgid "Released under the Apache 2.0 License"
msgstr ""
#: templates/appearance/about.html:100
#: templates/appearance/about.html:88
msgid "Copyright &copy; 2011-2015 Roberto Rosario."
msgstr ""
#: templates/appearance/base.html:43
#: templates/appearance/base.html:56
msgid "Toggle navigation"
msgstr ""
#: templates/appearance/base.html:72
#: templates/appearance/base.html:86
msgid "Profile"
msgstr ""
#: templates/appearance/base.html:92
msgid "Anonymous"
msgstr ""
#: templates/appearance/base.html:74
msgid "User details"
msgstr "Profil lengkap pengguna"
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Success"
msgstr ""
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Information"
msgstr ""
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Warning"
msgstr ""
#: templates/appearance/base.html:87
#: templates/appearance/base.html:126
msgid "Error"
msgstr ""
#: templates/appearance/base.html:116
#: templates/appearance/base.html:155
msgid "Actions"
msgstr ""
#: templates/appearance/base.html:117
#: templates/appearance/base.html:157
msgid "Toggle Dropdown"
msgstr ""
@@ -124,6 +125,10 @@ msgstr ""
msgid "Create"
msgstr ""
#: templates/appearance/dashboard_widget.html:25
msgid "View details"
msgstr ""
#: templates/appearance/generic_confirm.html:6
#: templates/appearance/generic_confirm.html:13
msgid "Confirm"
@@ -138,39 +143,39 @@ msgstr ""
msgid "Delete: %(object)s?"
msgstr ""
#: templates/appearance/generic_confirm.html:47
#: templates/appearance/generic_confirm.html:48
msgid "Yes"
msgstr ""
#: templates/appearance/generic_confirm.html:49
#: templates/appearance/generic_confirm.html:52
msgid "No"
msgstr ""
#: templates/appearance/generic_form_instance.html:39
#: templates/appearance/generic_form_instance.html:46
#: templates/appearance/generic_form_subtemplate.html:51
#: templates/appearance/generic_multiform_subtemplate.html:43
#: templates/appearance/generic_multiform_subtemplate.html:42
msgid "required"
msgstr ""
#: templates/appearance/generic_form_subtemplate.html:71
#: templates/appearance/generic_multiform_subtemplate.html:65
#: templates/appearance/generic_multiform_subtemplate.html:64
msgid "Save"
msgstr ""
#: templates/appearance/generic_form_subtemplate.html:71
#: templates/appearance/generic_list_subtemplate.html:31
#: templates/appearance/generic_multiform_subtemplate.html:65
#: templates/appearance/generic_list_subtemplate.html:33
#: templates/appearance/generic_multiform_subtemplate.html:64
msgid "Submit"
msgstr ""
#: templates/appearance/generic_form_subtemplate.html:74
#: templates/appearance/generic_multiform_subtemplate.html:69
#: templates/appearance/generic_multiform_subtemplate.html:68
msgid "Cancel"
msgstr ""
#: templates/appearance/generic_list_horizontal.html:21
#: templates/appearance/generic_list_subtemplate.html:108
#: templates/appearance/generic_list_subtemplate.html:112
msgid "No results"
msgstr ""
@@ -187,34 +192,38 @@ msgstr ""
msgid "Total: %(total)s"
msgstr ""
#: templates/appearance/generic_list_subtemplate.html:51
#: templates/appearance/generic_list_subtemplate.html:53
msgid "Identifier"
msgstr ""
#: templates/appearance/home.html:8 templates/appearance/home.html.py:12
msgid "Home"
#: templates/appearance/home.html:9 templates/appearance/home.html:13
msgid "Dashboard"
msgstr ""
#: templates/appearance/home.html:21
#: templates/appearance/home.html:22
msgid "Getting started"
msgstr ""
#: templates/appearance/home.html:24
#: templates/appearance/home.html:25
msgid "Before you can fully use Mayan EDMS you need the following:"
msgstr ""
#: templates/appearance/home.html:57
msgid "Space separated terms"
#: templates/appearance/home.html:46
msgid "Search pages"
msgstr ""
#: templates/appearance/home.html:59
#: templates/appearance/home.html:48 templates/appearance/home.html:58
msgid "Search"
msgstr ""
#: templates/appearance/home.html:60
#: templates/appearance/home.html:49 templates/appearance/home.html:59
msgid "Advanced"
msgstr ""
#: templates/appearance/home.html:56
msgid "Search documents"
msgstr ""
#: templates/appearance/login.html:10
msgid "Login"
msgstr ""
@@ -254,7 +263,7 @@ msgid ""
"message."
msgstr ""
#: templates/appearance/login.html:45 templates/appearance/login.html.py:54
#: templates/appearance/login.html:45 templates/appearance/login.html:54
msgid "Sign in"
msgstr ""

Some files were not shown because too many files have changed in this diff Show More