├── .gitignore ├── CHANGELOG.rst ├── CONTRIBUTORS ├── HACKING ├── MANIFEST.in ├── MIT-LICENSE.txt ├── README.rst ├── RELEASE.txt ├── TODO ├── docs ├── Makefile ├── make.bat └── source │ ├── _static │ └── django-frontend-notification.png │ ├── conf.py │ ├── developer-doc.rst │ ├── developer-doc │ ├── coding-structure.rst │ ├── pre-requisite.rst │ ├── testing.rst │ └── views.rst │ ├── includes │ └── introduction.txt │ ├── index.rst │ ├── installation-overview.rst │ └── introduction.rst ├── frontend_notification ├── __init__.py ├── constants.py ├── fixtures │ └── notification.json ├── forms.py ├── locale │ ├── de │ │ └── LC_MESSAGES │ │ │ ├── django.mo │ │ │ └── django.po │ ├── en │ │ └── LC_MESSAGES │ │ │ ├── django.mo │ │ │ └── django.po │ ├── es │ │ └── LC_MESSAGES │ │ │ ├── django.mo │ │ │ └── django.po │ ├── fr │ │ └── LC_MESSAGES │ │ │ ├── django.mo │ │ │ └── django.po │ ├── pt │ │ └── LC_MESSAGES │ │ │ ├── django.mo │ │ │ └── django.po │ └── ru │ │ └── LC_MESSAGES │ │ ├── django.mo │ │ └── django.po ├── templates │ └── frontend │ │ └── frontend_notification │ │ └── user_notification.html ├── templatetags │ ├── __init__.py │ └── frontend_notification_tags.py ├── tests.py ├── urls.py └── views.py ├── requirements.txt ├── setup.py └── update_version.sh /.gitignore: -------------------------------------------------------------------------------- 1 | *.py[cod] 2 | 3 | # C extensions 4 | *.so 5 | 6 | # Packages 7 | *.egg 8 | *.egg-info 9 | dist 10 | build 11 | eggs 12 | parts 13 | bin 14 | var 15 | sdist 16 | develop-eggs 17 | .installed.cfg 18 | lib 19 | lib64 20 | 21 | # Installer logs 22 | pip-log.txt 23 | 24 | # Unit test / coverage reports 25 | .coverage 26 | .tox 27 | nosetests.xml 28 | 29 | # Mr Developer 30 | .mr.developer.cfg 31 | .project 32 | .pydevproject 33 | -------------------------------------------------------------------------------- /CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | Changelog 2 | ========= 3 | 4 | 5 | 1.0.2 (2015-12-18) 6 | ------------------ 7 | 8 | * still problem with django-notifications-hq==0.8.0 (not compatible with Django1.9) 9 | 10 | 11 | 1.0.1 (2015-12-18) 12 | ------------------ 13 | 14 | * bump requirments django-notifications-hq==0.8.0 15 | 16 | 17 | 1.0.0 (2015-12-14) 18 | ------------------ 19 | 20 | * major update: django-frontend-notification is now based on django-notifications-hq 21 | 22 | 23 | 0.3.3 (2015-12-10) 24 | ------------------ 25 | 26 | * rollback previous change and use linaro-django-pagination 27 | 28 | 29 | 0.3.2 (2015-09-28) 30 | ------------------ 31 | 32 | * Fix dep linaro-django-pagination: removed from PyPI 33 | 34 | 35 | 0.2.0 (2014-02-06) 36 | ------------------ 37 | 38 | * update dependencies from common to django-lets-go 39 | 40 | 41 | 0.1.9 (2014-01-29) 42 | ------------------ 43 | 44 | * fix js code in template 45 | 46 | 47 | 0.1.8 (2013-12-19) 48 | ------------------ 49 | 50 | * Add filter select for notification type 51 | * Change default order to '-id' 52 | 53 | 54 | 0.1.7 (2013-11-26) 55 | ------------------ 56 | 57 | * support of bootstrap 3 58 | 59 | 60 | 0.1.6 (2013-03-07) 61 | ------------------ 62 | 63 | * simple template tag converted into assignment_tag 64 | 65 | 66 | 0.1.5 (2013-03-07) 67 | ------------------ 68 | 69 | * fix notice_count function 70 | * update templatetag 71 | * fix trans strings 72 | 73 | 74 | 0.1.4 (2013-02-19) 75 | ------------------ 76 | 77 | * Fix delete notifications 78 | 79 | 80 | 0.1.3 (2013-02-17) 81 | ------------------ 82 | 83 | * Add Translation file / MO 84 | 85 | 86 | 0.1.2 (2012-12-19) 87 | ------------------ 88 | 89 | * Fix requirement 90 | 91 | 92 | 0.1.1 (2012-12-03) 93 | ------------------ 94 | 95 | * Add requirements.txt into Manifest 96 | 97 | 98 | 0.1.0 (2012-12-03) 99 | ------------------ 100 | 101 | * Start first version 0.1.0 102 | -------------------------------------------------------------------------------- /CONTRIBUTORS: -------------------------------------------------------------------------------- 1 | areski (Areski Belaid) 2 | shrenik (Shrenik Patel) -------------------------------------------------------------------------------- /HACKING: -------------------------------------------------------------------------------- 1 | Nova Style Commandments 2 | ======================= 3 | 4 | Step 1: Read http://www.python.org/dev/peps/pep-0008/ 5 | Step 2: Read http://www.python.org/dev/peps/pep-0008/ again 6 | Step 3: Read on 7 | 8 | Imports 9 | ------- 10 | - thou shalt not import objects, only modules 11 | - thou shalt not import more than one module per line 12 | - thou shalt not make relative imports 13 | - thou shalt "from nova import vendor" before importing third party code 14 | - thou shalt organize your imports according to the following template 15 | 16 | :: 17 | # vim: tabstop=4 shiftwidth=4 softtabstop=4 18 | {{stdlib imports in human alphabetical order}} 19 | \n 20 | from nova import vendor 21 | {{vendor imports in human alphabetical order}} 22 | \n 23 | {{nova imports in human alphabetical order}} 24 | \n 25 | \n 26 | {{begin your code}} 27 | 28 | 29 | General 30 | ------- 31 | - thou shalt put two newlines twixt toplevel code (funcs, classes, etc) 32 | - thou shalt put one newline twixt methods in classes and anywhere else 33 | - thou shalt not write "except:", use "except Exception:" at the very least 34 | - thou shalt include your name with TODOs as in "TODO(termie)" 35 | - thou shalt not name anything the same name as a builtin or reserved word 36 | - thou shalt not violate causality in our time cone, or else 37 | 38 | 39 | Human Alphabetical Order Examples 40 | --------------------------------- 41 | :: 42 | import httplib 43 | import logging 44 | import random 45 | import StringIO 46 | import time 47 | import unittest 48 | 49 | 50 | 51 | Tool to make code PEP8 compliant 52 | -------------------------------- 53 | - Install : https://github.com/cburroughs/pep8 54 | - Usage in your project directory : pep8 --statistics --filename=*.py --show-source --show-pep8 . 55 | 56 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | global-exclude *.pyc 2 | include README.rst 3 | include MIT-LICENSE.txt 4 | include requirements.txt 5 | recursive-include frontend_notification * 6 | -------------------------------------------------------------------------------- /MIT-LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | django-frontend-notification 4 | 5 | Copyright (c) 2011-2014 Arezqui Belaid and other contributors 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining 8 | a copy of this software and associated documentation files (the 9 | "Software"), to deal in the Software without restriction, including 10 | without limitation the rights to use, copy, modify, merge, publish, 11 | distribute, sublicense, and/or sell copies of the Software, and to 12 | permit persons to whom the Software is furnished to do so, subject to 13 | the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be 16 | included in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 19 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 21 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 22 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 23 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 24 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25 | -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- 1 | Django-Frontend-Notification 2 | ============================ 3 | 4 | Django application to display on the frontend the list of notifications and run some basic actions such as "view all notifications", "delete notifications", it also provides helpers to display notifications. 5 | 6 | This works with twitter bootstrap (http://twitter.github.com/bootstrap/) but can easily be adapted with other front-end frameworks. 7 | 8 | 9 | .. image:: https://github.com/areski/django-frontend-notification/raw/master/docs/source/_static/django-frontend-notification.png 10 | 11 | 12 | Documentation 13 | ------------- 14 | 15 | Extensive documentation is available on 'Read the Docs': 16 | http://django-frontend-notification.readthedocs.org 17 | 18 | 19 | Contributing 20 | ------------ 21 | 22 | If you've found a bug, implemented a feature or customized the template and 23 | think it is useful then please consider contributing. Patches, pull requests 24 | and suggestions are welcome! 25 | 26 | Source code: http://github.com/areski/django-frontend-notification 27 | 28 | Bug tracker: https://github.com/areski/django-frontend-notification/issues 29 | 30 | 31 | License 32 | ------- 33 | 34 | Copyright (c) 2011-2014 Star2Billing S.L. 35 | 36 | django-frontend-notification is licensed under MIT, see `MIT-LICENSE.txt`. 37 | 38 | 39 | Credit 40 | ------ 41 | 42 | django-frontend-notification is a Star2Billing-Sponsored Community Project, for more information visit 43 | http://www.star2billing.com or email us at info@star2billing.com 44 | -------------------------------------------------------------------------------- /RELEASE.txt: -------------------------------------------------------------------------------- 1 | 2 | Release Process 3 | =============== 4 | 5 | 1. Update version info 6 | * README.rst 7 | * frontend_notification/__init__.py 8 | * docs/conf.py 9 | 10 | 2. git tag -a vX.Y.Z -m 'Version X.Y.Z' 11 | 12 | 3. python setup.py sdist upload 13 | -------------------------------------------------------------------------------- /TODO: -------------------------------------------------------------------------------- 1 | ==== 2 | TODO 3 | ==== 4 | 5 | * Explain how to integrate in a project 6 | * Improve documentation 7 | * Add Test into doc 8 | * Move to Pypi 9 | * Add Travis-CI 10 | -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | PAPER = 8 | BUILDDIR = build 9 | 10 | # Internal variables. 11 | PAPEROPT_a4 = -D latex_paper_size=a4 12 | PAPEROPT_letter = -D latex_paper_size=letter 13 | ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source 14 | 15 | .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest 16 | 17 | help: 18 | @echo "Please use \`make ' where is one of" 19 | @echo " html to make standalone HTML files" 20 | @echo " dirhtml to make HTML files named index.html in directories" 21 | @echo " singlehtml to make a single large HTML file" 22 | @echo " pickle to make pickle files" 23 | @echo " json to make JSON files" 24 | @echo " htmlhelp to make HTML files and a HTML help project" 25 | @echo " qthelp to make HTML files and a qthelp project" 26 | @echo " devhelp to make HTML files and a Devhelp project" 27 | @echo " epub to make an epub" 28 | @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" 29 | @echo " latexpdf to make LaTeX files and run them through pdflatex" 30 | @echo " text to make text files" 31 | @echo " man to make manual pages" 32 | @echo " changes to make an overview of all changed/added/deprecated items" 33 | @echo " linkcheck to check all external links for integrity" 34 | @echo " doctest to run all doctests embedded in the documentation (if enabled)" 35 | 36 | clean: 37 | -rm -rf $(BUILDDIR)/* 38 | 39 | html: 40 | $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html 41 | @echo 42 | @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." 43 | 44 | dirhtml: 45 | $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml 46 | @echo 47 | @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." 48 | 49 | singlehtml: 50 | $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml 51 | @echo 52 | @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." 53 | 54 | pickle: 55 | $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle 56 | @echo 57 | @echo "Build finished; now you can process the pickle files." 58 | 59 | json: 60 | $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json 61 | @echo 62 | @echo "Build finished; now you can process the JSON files." 63 | 64 | htmlhelp: 65 | $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp 66 | @echo 67 | @echo "Build finished; now you can run HTML Help Workshop with the" \ 68 | ".hhp project file in $(BUILDDIR)/htmlhelp." 69 | 70 | qthelp: 71 | $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp 72 | @echo 73 | @echo "Build finished; now you can run "qcollectiongenerator" with the" \ 74 | ".qhcp project file in $(BUILDDIR)/qthelp, like this:" 75 | @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/django-frontend-notification.qhcp" 76 | @echo "To view the help file:" 77 | @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/django-frontend-notification.qhc" 78 | 79 | devhelp: 80 | $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp 81 | @echo 82 | @echo "Build finished." 83 | @echo "To view the help file:" 84 | @echo "# mkdir -p $$HOME/.local/share/devhelp/django-frontend-notification" 85 | @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/django-frontend-notification" 86 | @echo "# devhelp" 87 | 88 | epub: 89 | $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub 90 | @echo 91 | @echo "Build finished. The epub file is in $(BUILDDIR)/epub." 92 | 93 | latex: 94 | $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex 95 | @echo 96 | @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." 97 | @echo "Run \`make' in that directory to run these through (pdf)latex" \ 98 | "(use \`make latexpdf' here to do that automatically)." 99 | 100 | latexpdf: 101 | $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex 102 | @echo "Running LaTeX files through pdflatex..." 103 | make -C $(BUILDDIR)/latex all-pdf 104 | @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." 105 | 106 | text: 107 | $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text 108 | @echo 109 | @echo "Build finished. The text files are in $(BUILDDIR)/text." 110 | 111 | man: 112 | $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man 113 | @echo 114 | @echo "Build finished. The manual pages are in $(BUILDDIR)/man." 115 | 116 | changes: 117 | $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes 118 | @echo 119 | @echo "The overview file is in $(BUILDDIR)/changes." 120 | 121 | linkcheck: 122 | $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck 123 | @echo 124 | @echo "Link check complete; look for any errors in the above output " \ 125 | "or in $(BUILDDIR)/linkcheck/output.txt." 126 | 127 | doctest: 128 | $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest 129 | @echo "Testing of doctests in the sources finished, look at the " \ 130 | "results in $(BUILDDIR)/doctest/output.txt." 131 | -------------------------------------------------------------------------------- /docs/make.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | 3 | REM Command file for Sphinx documentation 4 | 5 | if "%SPHINXBUILD%" == "" ( 6 | set SPHINXBUILD=sphinx-build 7 | ) 8 | set BUILDDIR=build 9 | set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source 10 | if NOT "%PAPER%" == "" ( 11 | set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% 12 | ) 13 | 14 | if "%1" == "" goto help 15 | 16 | if "%1" == "help" ( 17 | :help 18 | echo.Please use `make ^` where ^ is one of 19 | echo. html to make standalone HTML files 20 | echo. dirhtml to make HTML files named index.html in directories 21 | echo. singlehtml to make a single large HTML file 22 | echo. pickle to make pickle files 23 | echo. json to make JSON files 24 | echo. htmlhelp to make HTML files and a HTML help project 25 | echo. qthelp to make HTML files and a qthelp project 26 | echo. devhelp to make HTML files and a Devhelp project 27 | echo. epub to make an epub 28 | echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter 29 | echo. text to make text files 30 | echo. man to make manual pages 31 | echo. changes to make an overview over all changed/added/deprecated items 32 | echo. linkcheck to check all external links for integrity 33 | echo. doctest to run all doctests embedded in the documentation if enabled 34 | goto end 35 | ) 36 | 37 | if "%1" == "clean" ( 38 | for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i 39 | del /q /s %BUILDDIR%\* 40 | goto end 41 | ) 42 | 43 | if "%1" == "html" ( 44 | %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html 45 | if errorlevel 1 exit /b 1 46 | echo. 47 | echo.Build finished. The HTML pages are in %BUILDDIR%/html. 48 | goto end 49 | ) 50 | 51 | if "%1" == "dirhtml" ( 52 | %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml 53 | if errorlevel 1 exit /b 1 54 | echo. 55 | echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. 56 | goto end 57 | ) 58 | 59 | if "%1" == "singlehtml" ( 60 | %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml 61 | if errorlevel 1 exit /b 1 62 | echo. 63 | echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. 64 | goto end 65 | ) 66 | 67 | if "%1" == "pickle" ( 68 | %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle 69 | if errorlevel 1 exit /b 1 70 | echo. 71 | echo.Build finished; now you can process the pickle files. 72 | goto end 73 | ) 74 | 75 | if "%1" == "json" ( 76 | %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json 77 | if errorlevel 1 exit /b 1 78 | echo. 79 | echo.Build finished; now you can process the JSON files. 80 | goto end 81 | ) 82 | 83 | if "%1" == "htmlhelp" ( 84 | %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp 85 | if errorlevel 1 exit /b 1 86 | echo. 87 | echo.Build finished; now you can run HTML Help Workshop with the ^ 88 | .hhp project file in %BUILDDIR%/htmlhelp. 89 | goto end 90 | ) 91 | 92 | if "%1" == "qthelp" ( 93 | %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp 94 | if errorlevel 1 exit /b 1 95 | echo. 96 | echo.Build finished; now you can run "qcollectiongenerator" with the ^ 97 | .qhcp project file in %BUILDDIR%/qthelp, like this: 98 | echo.^> qcollectiongenerator %BUILDDIR%\qthelp\django-frontend-notification.qhcp 99 | echo.To view the help file: 100 | echo.^> assistant -collectionFile %BUILDDIR%\qthelp\django-frontend-notification.ghc 101 | goto end 102 | ) 103 | 104 | if "%1" == "devhelp" ( 105 | %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp 106 | if errorlevel 1 exit /b 1 107 | echo. 108 | echo.Build finished. 109 | goto end 110 | ) 111 | 112 | if "%1" == "epub" ( 113 | %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub 114 | if errorlevel 1 exit /b 1 115 | echo. 116 | echo.Build finished. The epub file is in %BUILDDIR%/epub. 117 | goto end 118 | ) 119 | 120 | if "%1" == "latex" ( 121 | %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex 122 | if errorlevel 1 exit /b 1 123 | echo. 124 | echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. 125 | goto end 126 | ) 127 | 128 | if "%1" == "text" ( 129 | %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text 130 | if errorlevel 1 exit /b 1 131 | echo. 132 | echo.Build finished. The text files are in %BUILDDIR%/text. 133 | goto end 134 | ) 135 | 136 | if "%1" == "man" ( 137 | %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man 138 | if errorlevel 1 exit /b 1 139 | echo. 140 | echo.Build finished. The manual pages are in %BUILDDIR%/man. 141 | goto end 142 | ) 143 | 144 | if "%1" == "changes" ( 145 | %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes 146 | if errorlevel 1 exit /b 1 147 | echo. 148 | echo.The overview file is in %BUILDDIR%/changes. 149 | goto end 150 | ) 151 | 152 | if "%1" == "linkcheck" ( 153 | %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck 154 | if errorlevel 1 exit /b 1 155 | echo. 156 | echo.Link check complete; look for any errors in the above output ^ 157 | or in %BUILDDIR%/linkcheck/output.txt. 158 | goto end 159 | ) 160 | 161 | if "%1" == "doctest" ( 162 | %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest 163 | if errorlevel 1 exit /b 1 164 | echo. 165 | echo.Testing of doctests in the sources finished, look at the ^ 166 | results in %BUILDDIR%/doctest/output.txt. 167 | goto end 168 | ) 169 | 170 | :end 171 | -------------------------------------------------------------------------------- /docs/source/_static/django-frontend-notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/areski/django-frontend-notification/e054f5b46aa589d5812244533e01157db8671c6b/docs/source/_static/django-frontend-notification.png -------------------------------------------------------------------------------- /docs/source/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # django-frontend-notification documentation build configuration file, created by 4 | # sphinx-quickstart on Thu Dec 8 12:55:34 2011. 5 | # 6 | # This file is execfile()d with the current directory set to its containing dir. 7 | # 8 | # Note that not all possible configuration values are present in this 9 | # autogenerated file. 10 | # 11 | # All configuration values have a default; values that are commented out 12 | # serve to show the default. 13 | 14 | import sys, os 15 | 16 | # If extensions (or modules to document with autodoc) are in another directory, 17 | # add these directories to sys.path here. If the directory is relative to the 18 | # documentation root, use os.path.abspath to make it absolute, like shown here. 19 | #sys.path.insert(0, os.path.abspath('.')) 20 | 21 | # -- General configuration ----------------------------------------------------- 22 | 23 | # If your documentation needs a minimal Sphinx version, state it here. 24 | #needs_sphinx = '1.0' 25 | 26 | # Add any Sphinx extension module names here, as strings. They can be extensions 27 | # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. 28 | extensions = ['sphinx.ext.autodoc', 'sphinx.ext.coverage'] 29 | 30 | # Add any paths that contain templates here, relative to this directory. 31 | templates_path = ['_templates'] 32 | 33 | # The suffix of source filenames. 34 | source_suffix = '.rst' 35 | 36 | # The encoding of source files. 37 | #source_encoding = 'utf-8-sig' 38 | 39 | # The master toctree document. 40 | master_doc = 'index' 41 | 42 | # General information about the project. 43 | project = u'django-frontend-notification' 44 | copyright = u'2011-2014, Arezqui Belaid (Star2Billing)' 45 | 46 | # The version info for the project you're documenting, acts as replacement for 47 | # |version| and |release|, also used in various other places throughout the 48 | # built documents. 49 | # 50 | # The short X.Y version. 51 | version = '0.2' 52 | # The full version, including alpha/beta/rc tags. 53 | release = '0.2.0' 54 | 55 | # The language for content autogenerated by Sphinx. Refer to documentation 56 | # for a list of supported languages. 57 | #language = None 58 | 59 | # There are two options for replacing |today|: either, you set today to some 60 | # non-false value, then it is used: 61 | #today = '' 62 | # Else, today_fmt is used as the format for a strftime call. 63 | #today_fmt = '%B %d, %Y' 64 | 65 | # List of patterns, relative to source directory, that match files and 66 | # directories to ignore when looking for source files. 67 | exclude_patterns = [] 68 | 69 | # The reST default role (used for this markup: `text`) to use for all documents. 70 | #default_role = None 71 | 72 | # If true, '()' will be appended to :func: etc. cross-reference text. 73 | #add_function_parentheses = True 74 | 75 | # If true, the current module name will be prepended to all description 76 | # unit titles (such as .. function::). 77 | #add_module_names = True 78 | 79 | # If true, sectionauthor and moduleauthor directives will be shown in the 80 | # output. They are ignored by default. 81 | #show_authors = False 82 | 83 | # The name of the Pygments (syntax highlighting) style to use. 84 | pygments_style = 'sphinx' 85 | 86 | # A list of ignored prefixes for module index sorting. 87 | #modindex_common_prefix = [] 88 | 89 | 90 | # -- Options for HTML output --------------------------------------------------- 91 | 92 | # The theme to use for HTML and HTML Help pages. See the documentation for 93 | # a list of builtin themes. 94 | html_theme = 'default' 95 | 96 | # Theme options are theme-specific and customize the look and feel of a theme 97 | # further. For a list of options available for each theme, see the 98 | # documentation. 99 | #html_theme_options = {} 100 | 101 | # Add any paths that contain custom themes here, relative to this directory. 102 | #html_theme_path = [] 103 | 104 | # The name for this set of Sphinx documents. If None, it defaults to 105 | # " v documentation". 106 | #html_title = None 107 | 108 | # A shorter title for the navigation bar. Default is the same as html_title. 109 | #html_short_title = None 110 | 111 | # The name of an image file (relative to this directory) to place at the top 112 | # of the sidebar. 113 | #html_logo = None 114 | 115 | # The name of an image file (within the static path) to use as favicon of the 116 | # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 117 | # pixels large. 118 | #html_favicon = None 119 | 120 | # Add any paths that contain custom static files (such as style sheets) here, 121 | # relative to this directory. They are copied after the builtin static files, 122 | # so a file named "default.css" will overwrite the builtin "default.css". 123 | html_static_path = ['_static'] 124 | 125 | # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, 126 | # using the given strftime format. 127 | #html_last_updated_fmt = '%b %d, %Y' 128 | 129 | # If true, SmartyPants will be used to convert quotes and dashes to 130 | # typographically correct entities. 131 | #html_use_smartypants = True 132 | 133 | # Custom sidebar templates, maps document names to template names. 134 | #html_sidebars = {} 135 | 136 | # Additional templates that should be rendered to pages, maps page names to 137 | # template names. 138 | #html_additional_pages = {} 139 | 140 | # If false, no module index is generated. 141 | #html_domain_indices = True 142 | 143 | # If false, no index is generated. 144 | #html_use_index = True 145 | 146 | # If true, the index is split into individual pages for each letter. 147 | #html_split_index = False 148 | 149 | # If true, links to the reST sources are added to the pages. 150 | #html_show_sourcelink = True 151 | 152 | # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. 153 | #html_show_sphinx = True 154 | 155 | # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. 156 | #html_show_copyright = True 157 | 158 | # If true, an OpenSearch description file will be output, and all pages will 159 | # contain a tag referring to it. The value of this option must be the 160 | # base URL from which the finished HTML is served. 161 | #html_use_opensearch = '' 162 | 163 | # This is the file name suffix for HTML files (e.g. ".xhtml"). 164 | #html_file_suffix = None 165 | 166 | # Output file base name for HTML help builder. 167 | htmlhelp_basename = 'django-frontend-notificationdoc' 168 | 169 | 170 | # -- Options for LaTeX output -------------------------------------------------- 171 | 172 | # The paper size ('letter' or 'a4'). 173 | #latex_paper_size = 'letter' 174 | 175 | # The font size ('10pt', '11pt' or '12pt'). 176 | #latex_font_size = '10pt' 177 | 178 | # Grouping the document tree into LaTeX files. List of tuples 179 | # (source start file, target name, title, author, documentclass [howto/manual]). 180 | latex_documents = [ 181 | ( 182 | 'index', 'django-frontend-notification.tex', u'Django-frontend-notification Documentation', 183 | u'Arezqui Belaid', 'manual' 184 | ), 185 | ] 186 | 187 | # The name of an image file (relative to this directory) to place at the top of 188 | # the title page. 189 | #latex_logo = None 190 | 191 | # For "manual" documents, if this is true, then toplevel headings are parts, 192 | # not chapters. 193 | #latex_use_parts = False 194 | 195 | # If true, show page references after internal links. 196 | #latex_show_pagerefs = False 197 | 198 | # If true, show URL addresses after external links. 199 | #latex_show_urls = False 200 | 201 | # Additional stuff for the LaTeX preamble. 202 | #latex_preamble = '' 203 | 204 | # Documents to append as an appendix to all manuals. 205 | #latex_appendices = [] 206 | 207 | # If false, no module index is generated. 208 | #latex_domain_indices = True 209 | 210 | 211 | # -- Options for manual page output -------------------------------------------- 212 | 213 | # One entry per manual page. List of tuples 214 | # (source start file, name, description, authors, manual section). 215 | man_pages = [ 216 | ('index', 'django-frontend-notification', u'Django-frontend-notification Documentation', 217 | [u'Arezqui Belaid'], 1) 218 | ] 219 | -------------------------------------------------------------------------------- /docs/source/developer-doc.rst: -------------------------------------------------------------------------------- 1 | .. _developer-doc: 2 | 3 | ======================= 4 | Developer Documentation 5 | ======================= 6 | 7 | Contents: 8 | 9 | .. toctree:: 10 | :maxdepth: 2 11 | 12 | ./developer-doc/pre-requisite 13 | ./developer-doc/coding-structure 14 | ./developer-doc/views 15 | ./developer-doc/testing 16 | -------------------------------------------------------------------------------- /docs/source/developer-doc/coding-structure.rst: -------------------------------------------------------------------------------- 1 | .. _coding-structure: 2 | 3 | 4 | Coding Style & Structure 5 | ======================== 6 | 7 | ----- 8 | Style 9 | ----- 10 | 11 | Coding follows the `PEP 8 Style Guide for Python Code `_. 12 | 13 | --------- 14 | Structure 15 | --------- 16 | 17 | The frontend_notification directory:: 18 | 19 | |-- templatetags - Templatetags 20 | |-- fixtures - 21 | `-- templates - This area is used to override templates 22 | `-- frontend_notification 23 | -------------------------------------------------------------------------------- /docs/source/developer-doc/pre-requisite.rst: -------------------------------------------------------------------------------- 1 | .. _prerequisites: 2 | 3 | Prerequisites 4 | ============= 5 | 6 | To fully understand this project, developers will need to have an advanced knowledge of: 7 | - Django : http://www.djangoproject.com/ 8 | - Python : http://www.python.org/ 9 | -------------------------------------------------------------------------------- /docs/source/developer-doc/testing.rst: -------------------------------------------------------------------------------- 1 | .. _testing: 2 | 3 | Test Case Descriptions 4 | ====================== 5 | 6 | 7 | --------------- 8 | How to run test 9 | --------------- 10 | 11 | **1. Run Full Test Suit**:: 12 | 13 | $ python manage.py test 14 | 15 | **2. Run Individual Test**:: 16 | 17 | $ python manage.py test frontend_notification 18 | 19 | -------------------------------------------------------------------------------- /docs/source/developer-doc/views.rst: -------------------------------------------------------------------------------- 1 | .. _views: 2 | 3 | Django-Frontend-Notification Views 4 | ================================== 5 | 6 | 7 | .. _user-notification-view: 8 | 9 | :class:`user_notification` 10 | -------------------------- 11 | 12 | User Detail change on Customer UI 13 | 14 | **Attributes**: 15 | 16 | * ``form`` - UserChangeDetailForm, UserChangeDetailExtendForm, 17 | PasswordChangeForm, CheckPhoneNumberForm 18 | * ``template`` - 'frontend/frontend_notification/user_notification.html' 19 | 20 | **Logic Description**: 21 | 22 | * User is able to change his/her detail. 23 | 24 | 25 | .. _notification-del-read-view: 26 | 27 | :class:`notification_del_read` 28 | ------------------------------ 29 | 30 | Delete notification for the logged in user 31 | 32 | **Attributes**: 33 | 34 | * ``object_id`` - Selected notification object 35 | * ``object_list`` - Selected notification objects 36 | 37 | **Logic Description**: 38 | 39 | * Delete/Mark as Read the selected notification 40 | 41 | 42 | .. _update-notification-view: 43 | 44 | :class:`update_notification` 45 | ---------------------------- 46 | 47 | Notification Status (e.g. read/unread) can be changed from 48 | customer interface 49 | 50 | 51 | .. _frontend_send_notification-view: 52 | 53 | :class:`frontend_send_notification` 54 | ----------------------------------- 55 | 56 | User Notification (e.g. start | stop | pause | abort | 57 | contact/campaign limit) needs to be saved. 58 | It is a common function for the admin and customer UI's 59 | 60 | **Attributes**: 61 | 62 | * ``pk`` - primary key of the campaign record 63 | * ``status`` - get label for notifications 64 | 65 | 66 | 67 | 68 | .. _frontend-notification-status-view: 69 | 70 | :class:`frontend_notification_status` 71 | ------------------------------------- 72 | 73 | Notification Status (e.g. read/unread) need to be change. 74 | It is a common function for admin and customer UI 75 | 76 | **Attributes**: 77 | 78 | * ``pk`` - primary key of notice record 79 | 80 | **Logic Description**: 81 | 82 | * Selected Notification's status need to be changed. 83 | Changed status can be read or unread. 84 | 85 | 86 | .. _notice-count: 87 | 88 | :class:`notice_count` 89 | --------------------- 90 | 91 | Get count of logged in user's notifications 92 | 93 | -------------------------------------------------------------------------------- /docs/source/includes/introduction.txt: -------------------------------------------------------------------------------- 1 | :Version: 0.1.0 2 | :Keywords: django, python, notification 3 | 4 | -- 5 | 6 | .. _django-frontend-notification-synopsis: 7 | 8 | Django-Frontend-Notification is an application written in Python, using the ``Django`` Framework. 9 | 10 | The license is MIT : http://opensource.org/licenses/MIT 11 | 12 | 13 | .. _overview: 14 | 15 | Overview 16 | ======== 17 | 18 | Django application to display on the frontend the list of notifications and run some basic actions such as "view all notifications", "delete notifications", etc... Django-Frontend-Notification also provides helpers to display new notifications. 19 | 20 | This works with twitter bootstrap (http://twitter.github.com/bootstrap/) but can easily be adapted with other front-end frameworks. 21 | 22 | .. image:: ./_static/django-frontend-notification.png 23 | :width: 792 24 | 25 | 26 | .. _documentation: 27 | 28 | Documentation 29 | ============= 30 | 31 | Extensive documentation is available on 'Read the Docs': 32 | http://django-frontend-notification.readthedocs.org 33 | 34 | 35 | .. _contributing: 36 | 37 | Contributing 38 | ============ 39 | 40 | If you've found a bug, implemented a feature or customized the template and 41 | think it is useful then please consider contributing. Patches, pull requests 42 | and suggestions are welcome! 43 | 44 | Source code: http://github.com/areski/django-frontend-notification 45 | 46 | 47 | If you don’t like Github and Git you’re welcome to send regular patches. 48 | 49 | Bug tracker: https://github.com/areski/django-frontend-notification/issues 50 | 51 | 52 | .. _license: 53 | 54 | License 55 | ======= 56 | 57 | Copyright (c) 2011-2012 Star2Billing S.L. 58 | 59 | django-frontend-notification is licensed under MIT, see `MIT-LICENSE.txt`. 60 | 61 | 62 | .. _credit: 63 | 64 | Credit 65 | ====== 66 | 67 | django-frontend-notification is a Star2Billing-Sponsored Community Project, for more information visit 68 | http://www.star2billing.com or email us at info@star2billing.com 69 | -------------------------------------------------------------------------------- /docs/source/index.rst: -------------------------------------------------------------------------------- 1 | .. django-frontend-notification documentation master file, created by 2 | sphinx-quickstart on Thu Dec 8 12:55:34 2011. 3 | You can adapt this file completely to your liking, but it should at least 4 | contain the root `toctree` directive. 5 | 6 | Welcome to django-frontend-notification's documentation! 7 | ======================================================== 8 | 9 | :Release: |version| 10 | :Date: |today| 11 | 12 | 13 | Contents: 14 | 15 | .. toctree:: 16 | :maxdepth: 2 17 | 18 | introduction 19 | installation-overview 20 | developer-doc 21 | 22 | 23 | Indices and tables 24 | ================== 25 | 26 | * :ref:`genindex` 27 | * :ref:`modindex` 28 | * :ref:`search` 29 | -------------------------------------------------------------------------------- /docs/source/installation-overview.rst: -------------------------------------------------------------------------------- 1 | .. _installation-overview: 2 | 3 | ===================== 4 | Installation overview 5 | ===================== 6 | 7 | .. _install-requirements: 8 | 9 | Install requirements 10 | ==================== 11 | 12 | A requirements file stores a list of dependencies to be installed for your project/application. 13 | 14 | To get started with django-frontend-notification you must have the following installed: 15 | 16 | - python >= 2.4 (programming language) 17 | - Apache / http server with WSGI modules 18 | - Django Framework >= 1.3 (Python based Web framework) 19 | 20 | 21 | The requirements are installed into a virtual environement so that the dependencies of the application do not interfere with other applications on the server. More information can be found about virtualenv at : http://pypi.python.org/pypi/virtualenv 22 | 23 | PIP is a tool for installing and managing Python packages, more information about PIP t : http://www.pip-installer.org/en/latest/index.html. 24 | 25 | With PIP you can easily install all the requirements:: 26 | 27 | $ pip install -r requirements.txt 28 | 29 | 30 | .. _configuration: 31 | 32 | Configuration 33 | ============= 34 | 35 | Add ``frontend-notification`` into INSTALLED_APPS in settings.py:: 36 | 37 | INSTALLED_APPS = ( 38 | ... 39 | 'frontend-notification', 40 | ... 41 | ) 42 | 43 | Add ``frontend_notification_tags`` into templates to use different template tags:: 44 | 45 | {% load frontend_notification_tags %} 46 | 47 | {% get_notice_count request %} 48 | 49 | To get count of notification in your django views, add ``notice_count``:: 50 | 51 | ... 52 | from frontend_notification.views import notice_count 53 | ... 54 | 55 | def sample_view(request): 56 | print notice_count(request) 57 | 58 | Download ``bootbox.js`` from bootboxjs.com_ and add into your media resource 59 | 60 | .. _bootboxjs.com: http://bootboxjs.com/#download -------------------------------------------------------------------------------- /docs/source/introduction.rst: -------------------------------------------------------------------------------- 1 | .. _intro: 2 | 3 | ============ 4 | Introduction 5 | ============ 6 | 7 | .. include:: ./includes/introduction.txt 8 | -------------------------------------------------------------------------------- /frontend_notification/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # :copyright: (c) 2011 - 2015 by Arezqui Belaid. 4 | # :license: MPL 2.0, see COPYING for more details. 5 | 6 | __version__ = '1.0.3' 7 | __author__ = "Arezqui Belaid" 8 | __contact__ = "info@star2billing.com" 9 | __homepage__ = "http://www.star2billing.org" 10 | __docformat__ = "restructuredtext" 11 | -------------------------------------------------------------------------------- /frontend_notification/constants.py: -------------------------------------------------------------------------------- 1 | from django.utils.translation import ugettext_lazy as _ 2 | from django_lets_go.utils import Choice 3 | 4 | 5 | class NOTICE_TYPE(Choice): 6 | READ = 0, _('Read') 7 | UNREAD = 1, _('Unread') 8 | ALL = 2, _('All') 9 | -------------------------------------------------------------------------------- /frontend_notification/fixtures/notification.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "pk":1, 4 | "model":"notification.notice", 5 | "fields":{ 6 | "archived":false, 7 | "added":"2012-08-17T01:27:05", 8 | "sender":1, 9 | "on_site":true, 10 | "notice_type":1, 11 | "unread":true, 12 | "message":"Campaign started", 13 | "recipient":1 14 | } 15 | }, 16 | { 17 | "pk":2, 18 | "model":"notification.notice", 19 | "fields":{ 20 | "archived":false, 21 | "added":"2012-08-17T01:27:05", 22 | "sender":1, 23 | "on_site":true, 24 | "notice_type":1, 25 | "unread":true, 26 | "message":"Campaign started", 27 | "recipient":1 28 | } 29 | } 30 | ] 31 | -------------------------------------------------------------------------------- /frontend_notification/forms.py: -------------------------------------------------------------------------------- 1 | from django import forms 2 | from frontend_notification.constants import NOTICE_TYPE 3 | 4 | 5 | class NotificationForm(forms.Form): 6 | """ 7 | Notification Form 8 | """ 9 | notification_list = forms.ChoiceField(required=True, choices=list(NOTICE_TYPE)) 10 | 11 | def __init__(self, *args, **kwargs): 12 | super(NotificationForm, self).__init__(*args, **kwargs) 13 | self.fields['notification_list'].widget.attrs['class'] = "form-control" 14 | self.fields['notification_list'].widget.attrs['onchange'] = 'this.form.submit();' 15 | -------------------------------------------------------------------------------- /frontend_notification/locale/de/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/areski/django-frontend-notification/e054f5b46aa589d5812244533e01157db8671c6b/frontend_notification/locale/de/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /frontend_notification/locale/de/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2013-02-16 15:54+0530\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=2; plural=(n != 1)\n" 20 | 21 | #: constants.py:6 22 | msgid "Message" 23 | msgstr "" 24 | 25 | #: constants.py:7 26 | msgid "Notice type" 27 | msgstr "" 28 | 29 | #: constants.py:8 30 | msgid "Sender" 31 | msgstr "" 32 | 33 | #: constants.py:9 34 | msgid "Date" 35 | msgstr "" 36 | 37 | #: views.py:122 38 | msgid "All notifications are marked as read." 39 | msgstr "" 40 | 41 | #: views.py:157 42 | #, python-format 43 | msgid "\"%(name)s\" is deleted." 44 | msgstr "" 45 | 46 | #: views.py:161 47 | #, python-format 48 | msgid "\"%(name)s\" is marked as read." 49 | msgstr "" 50 | 51 | #: views.py:175 52 | #, python-format 53 | msgid "%(count)s notification(s) are deleted." 54 | msgstr "" 55 | 56 | #: views.py:180 57 | #, python-format 58 | msgid "%(count)s notification(s) are marked as read." 59 | msgstr "" 60 | 61 | #: templates/frontend/frontend_notification/user_notification.html:21 62 | msgid "You must check at least one box!" 63 | msgstr "" 64 | 65 | #: templates/frontend/frontend_notification/user_notification.html:29 66 | msgid " notification(s) are going to be deleted?" 67 | msgstr "" 68 | 69 | #: templates/frontend/frontend_notification/user_notification.html:32 70 | msgid " notification(s) are going to be marked as read?" 71 | msgstr "" 72 | 73 | #: templates/frontend/frontend_notification/user_notification.html:51 74 | msgid "Notifications" 75 | msgstr "" 76 | 77 | #: templates/frontend/frontend_notification/user_notification.html:57 78 | msgid "Alert" 79 | msgstr "" 80 | 81 | #: templates/frontend/frontend_notification/user_notification.html:63 82 | #: templates/frontend/frontend_notification/user_notification.html:89 83 | msgid "Action" 84 | msgstr "" 85 | 86 | #: templates/frontend/frontend_notification/user_notification.html:68 87 | msgid "Mark as read" 88 | msgstr "" 89 | 90 | #: templates/frontend/frontend_notification/user_notification.html:69 91 | msgid "Delete notifications" 92 | msgstr "" 93 | 94 | #: templates/frontend/frontend_notification/user_notification.html:72 95 | msgid "Mark all as read" 96 | msgstr "" 97 | 98 | #: templates/frontend/frontend_notification/user_notification.html:111 99 | msgid "no records found" 100 | msgstr "" 101 | 102 | #: templatetags/frontend_notification_tags.py:24 103 | msgid "New" 104 | msgstr "" 105 | 106 | #: templatetags/frontend_notification_tags.py:26 107 | msgid "Read" 108 | msgstr "" 109 | -------------------------------------------------------------------------------- /frontend_notification/locale/en/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/areski/django-frontend-notification/e054f5b46aa589d5812244533e01157db8671c6b/frontend_notification/locale/en/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /frontend_notification/locale/en/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # CDR-Stats - PO File 2 | # Copyright (C) 2010 - Star2Billing S.L. 3 | # This file is distributed under the same license as the CDR-Stats application. 4 | # Areski Belaid , 2010. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: CDR-Stats 1.0\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2013-02-16 15:55+0530\n" 11 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 12 | "Last-Translator: Areski Belaid \n" 13 | "Language-Team: Areski Belaid \n" 14 | "Language: \n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | 19 | #: constants.py:6 20 | msgid "Message" 21 | msgstr "" 22 | 23 | #: constants.py:7 24 | msgid "Notice type" 25 | msgstr "" 26 | 27 | #: constants.py:8 28 | msgid "Sender" 29 | msgstr "" 30 | 31 | #: constants.py:9 32 | msgid "Date" 33 | msgstr "" 34 | 35 | #: views.py:122 36 | msgid "All notifications are marked as read." 37 | msgstr "" 38 | 39 | #: views.py:157 40 | #, python-format 41 | msgid "\"%(name)s\" is deleted." 42 | msgstr "" 43 | 44 | #: views.py:161 45 | #, python-format 46 | msgid "\"%(name)s\" is marked as read." 47 | msgstr "" 48 | 49 | #: views.py:175 50 | #, python-format 51 | msgid "%(count)s notification(s) are deleted." 52 | msgstr "" 53 | 54 | #: views.py:180 55 | #, python-format 56 | msgid "%(count)s notification(s) are marked as read." 57 | msgstr "" 58 | 59 | #: templates/frontend/frontend_notification/user_notification.html:21 60 | msgid "You must check at least one box!" 61 | msgstr "" 62 | 63 | #: templates/frontend/frontend_notification/user_notification.html:29 64 | msgid " notification(s) are going to be deleted?" 65 | msgstr "" 66 | 67 | #: templates/frontend/frontend_notification/user_notification.html:32 68 | msgid " notification(s) are going to be marked as read?" 69 | msgstr "" 70 | 71 | #: templates/frontend/frontend_notification/user_notification.html:51 72 | msgid "Notifications" 73 | msgstr "" 74 | 75 | #: templates/frontend/frontend_notification/user_notification.html:57 76 | msgid "Alert" 77 | msgstr "" 78 | 79 | #: templates/frontend/frontend_notification/user_notification.html:63 80 | #: templates/frontend/frontend_notification/user_notification.html:89 81 | msgid "Action" 82 | msgstr "" 83 | 84 | #: templates/frontend/frontend_notification/user_notification.html:68 85 | msgid "Mark as read" 86 | msgstr "" 87 | 88 | #: templates/frontend/frontend_notification/user_notification.html:69 89 | msgid "Delete notifications" 90 | msgstr "" 91 | 92 | #: templates/frontend/frontend_notification/user_notification.html:72 93 | msgid "Mark all as read" 94 | msgstr "" 95 | 96 | #: templates/frontend/frontend_notification/user_notification.html:111 97 | msgid "no records found" 98 | msgstr "" 99 | 100 | #: templatetags/frontend_notification_tags.py:24 101 | msgid "New" 102 | msgstr "" 103 | 104 | #: templatetags/frontend_notification_tags.py:26 105 | msgid "Read" 106 | msgstr "" 107 | -------------------------------------------------------------------------------- /frontend_notification/locale/es/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/areski/django-frontend-notification/e054f5b46aa589d5812244533e01157db8671c6b/frontend_notification/locale/es/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /frontend_notification/locale/es/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # CDR-Stats - PO File 2 | # Copyright (C) 2010 - Star2Billing S.L. 3 | # This file is distributed under the same license as the CDR-Stats application. 4 | # Areski Belaid , 2010. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: CDR-Stats 1.0\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2013-02-16 15:55+0530\n" 11 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 12 | "Last-Translator: Areski Belaid \n" 13 | "Language-Team: Areski Belaid \n" 14 | "Language: \n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 19 | 20 | #: constants.py:6 21 | msgid "Message" 22 | msgstr "" 23 | 24 | #: constants.py:7 25 | msgid "Notice type" 26 | msgstr "" 27 | 28 | #: constants.py:8 29 | msgid "Sender" 30 | msgstr "" 31 | 32 | #: constants.py:9 33 | msgid "Date" 34 | msgstr "Fecha" 35 | 36 | #: views.py:122 37 | msgid "All notifications are marked as read." 38 | msgstr "" 39 | 40 | #: views.py:157 41 | #, python-format 42 | msgid "\"%(name)s\" is deleted." 43 | msgstr "" 44 | 45 | #: views.py:161 46 | #, python-format 47 | msgid "\"%(name)s\" is marked as read." 48 | msgstr "" 49 | 50 | #: views.py:175 51 | #, python-format 52 | msgid "%(count)s notification(s) are deleted." 53 | msgstr "" 54 | 55 | #: views.py:180 56 | #, python-format 57 | msgid "%(count)s notification(s) are marked as read." 58 | msgstr "" 59 | 60 | #: templates/frontend/frontend_notification/user_notification.html:21 61 | msgid "You must check at least one box!" 62 | msgstr "" 63 | 64 | #: templates/frontend/frontend_notification/user_notification.html:29 65 | msgid " notification(s) are going to be deleted?" 66 | msgstr "" 67 | 68 | #: templates/frontend/frontend_notification/user_notification.html:32 69 | msgid " notification(s) are going to be marked as read?" 70 | msgstr "" 71 | 72 | #: templates/frontend/frontend_notification/user_notification.html:51 73 | msgid "Notifications" 74 | msgstr "" 75 | 76 | #: templates/frontend/frontend_notification/user_notification.html:57 77 | msgid "Alert" 78 | msgstr "Alerta" 79 | 80 | #: templates/frontend/frontend_notification/user_notification.html:63 81 | #: templates/frontend/frontend_notification/user_notification.html:89 82 | msgid "Action" 83 | msgstr "" 84 | 85 | #: templates/frontend/frontend_notification/user_notification.html:68 86 | msgid "Mark as read" 87 | msgstr "" 88 | 89 | #: templates/frontend/frontend_notification/user_notification.html:69 90 | msgid "Delete notifications" 91 | msgstr "" 92 | 93 | #: templates/frontend/frontend_notification/user_notification.html:72 94 | msgid "Mark all as read" 95 | msgstr "" 96 | 97 | #: templates/frontend/frontend_notification/user_notification.html:111 98 | msgid "no records found" 99 | msgstr "" 100 | 101 | #: templatetags/frontend_notification_tags.py:24 102 | #, fuzzy 103 | msgid "New" 104 | msgstr "Noticias" 105 | 106 | #: templatetags/frontend_notification_tags.py:26 107 | msgid "Read" 108 | msgstr "" 109 | 110 | #~ msgid "English" 111 | #~ msgstr "Inglés" 112 | 113 | #~ msgid "French" 114 | #~ msgstr "Francés" 115 | 116 | #~ msgid "Spanish" 117 | #~ msgstr "Español" 118 | 119 | #~ msgid "Equals" 120 | #~ msgstr "Igual a" 121 | 122 | #, fuzzy 123 | #~ msgid "Begins" 124 | #~ msgstr "Comienza con" 125 | 126 | #~ msgid "Contains" 127 | #~ msgstr "Contiene" 128 | 129 | #, fuzzy 130 | #~ msgid "Ends" 131 | #~ msgstr "Termina con" 132 | 133 | #, fuzzy 134 | #~ msgid "Call-date" 135 | #~ msgstr "Fecha de Llamada" 136 | 137 | #~ msgid "Destination" 138 | #~ msgstr "Destino" 139 | 140 | #~ msgid "Duration" 141 | #~ msgstr "Duración" 142 | 143 | #, fuzzy 144 | #~ msgid "Account" 145 | #~ msgstr "Cuenta desactivada" 146 | 147 | #, fuzzy 148 | #~ msgid "Caller ID" 149 | #~ msgstr "Fecha de Llamada" 150 | 151 | #, fuzzy 152 | #~ msgid "Duration (Secs)" 153 | #~ msgstr "Duración :" 154 | 155 | #~ msgid "From" 156 | #~ msgstr "De" 157 | 158 | #~ msgid "To" 159 | #~ msgstr "Para" 160 | 161 | #, fuzzy 162 | #~ msgid "Direction" 163 | #~ msgstr "Duración" 164 | 165 | #~ msgid "Result" 166 | #~ msgstr "Resultados" 167 | 168 | #~ msgid "Minutes" 169 | #~ msgstr "Minutos" 170 | 171 | #~ msgid "Seconds" 172 | #~ msgstr "Segundos" 173 | 174 | #~ msgid "Select date" 175 | #~ msgstr "Seleccione la fecha" 176 | 177 | #~ msgid "Graph" 178 | #~ msgstr "Gráfico" 179 | 180 | #~ msgid "Calls per Hour" 181 | #~ msgstr "Llamada por hora" 182 | 183 | #~ msgid "Minutes per Hour" 184 | #~ msgstr "Minutos por hora" 185 | 186 | #, fuzzy 187 | #~ msgid "Email to send the report" 188 | #~ msgstr "Detalles de Llamadas por día" 189 | 190 | #, fuzzy 191 | #~ msgid "Upload CSV File " 192 | #~ msgstr "Exportar en un archivo CSV" 193 | 194 | #, fuzzy 195 | #~ msgid "Browse CSV file" 196 | #~ msgstr "Exportar en un archivo CSV" 197 | 198 | #, fuzzy 199 | #~ msgid "Select switch" 200 | #~ msgstr "Seleccione la fecha" 201 | 202 | #, fuzzy 203 | #~ msgid "destination_number" 204 | #~ msgstr "Destino" 205 | 206 | #, fuzzy 207 | #~ msgid "duration" 208 | #~ msgstr "Duración" 209 | 210 | #, fuzzy 211 | #~ msgid "mduration" 212 | #~ msgstr "Duración" 213 | 214 | #, fuzzy 215 | #~ msgid "Internal Calls" 216 | #~ msgstr "Total Llamadas" 217 | 218 | #~ msgid "ANSWER" 219 | #~ msgstr "ANSWER" 220 | 221 | #~ msgid "BUSY" 222 | #~ msgstr "BUSY" 223 | 224 | #~ msgid "NOANSWER" 225 | #~ msgstr "NOANSWER" 226 | 227 | #~ msgid "CANCEL" 228 | #~ msgstr "CANCEL" 229 | 230 | #~ msgid "CONGESTION" 231 | #~ msgstr "CONGESTION" 232 | 233 | #~ msgid "CHANUNAVAIL" 234 | #~ msgstr "CHANUNAVAIL" 235 | 236 | #~ msgid "DONTCALL" 237 | #~ msgstr "DONTCALL" 238 | 239 | #~ msgid "TORTURE" 240 | #~ msgstr "TORTURE" 241 | 242 | #~ msgid "INVALIDARGS" 243 | #~ msgstr "INVALIDARGS" 244 | 245 | #, fuzzy 246 | #~ msgid "Enumeration" 247 | #~ msgstr "Duración" 248 | 249 | #, fuzzy 250 | #~ msgid "Description" 251 | #~ msgstr "Destino" 252 | 253 | #~ msgid "Day" 254 | #~ msgstr "día" 255 | 256 | #, fuzzy 257 | #~ msgid "Month" 258 | #~ msgstr "mes" 259 | 260 | #, fuzzy 261 | #~ msgid "Condition" 262 | #~ msgstr "Disposición" 263 | 264 | #, fuzzy 265 | #~ msgid "Select Alarm" 266 | #~ msgstr "Seleccione la fecha" 267 | 268 | #, fuzzy 269 | #~ msgid "Select Country" 270 | #~ msgstr "Seleccione la fecha" 271 | 272 | #, fuzzy 273 | #~ msgid "Change password" 274 | #~ msgstr "Pontraseña" 275 | 276 | #, fuzzy 277 | #~ msgid "Password:" 278 | #~ msgstr "Pontraseña" 279 | 280 | #~ msgid "Disabled Account" 281 | #~ msgstr "Cuenta desactivada" 282 | 283 | #~ msgid "Invalid Login." 284 | #~ msgstr "Nombre de usuario invalid." 285 | 286 | #, fuzzy 287 | #~ msgid "Contact(s) imported" 288 | #~ msgstr "Contacte con nosotros en" 289 | 290 | #, fuzzy 291 | #~ msgid "Select country" 292 | #~ msgstr "Seleccione la fecha" 293 | 294 | #, fuzzy 295 | #~ msgid "Select all prefixes" 296 | #~ msgstr "Seleccione la fecha" 297 | 298 | #, fuzzy 299 | #~ msgid "CDR Alert" 300 | #~ msgstr "Alerta" 301 | 302 | #~ msgid "Change" 303 | #~ msgstr "Cambio" 304 | 305 | #~ msgid "Search" 306 | #~ msgstr "Búsqueda" 307 | 308 | #, fuzzy 309 | #~ msgid "Analytics" 310 | #~ msgstr "Analizar CDR" 311 | 312 | #, fuzzy 313 | #~ msgid "Report" 314 | #~ msgstr "Apoyo" 315 | 316 | #, fuzzy 317 | #~ msgid "calls by country" 318 | #~ msgstr "Seleccione la fecha" 319 | 320 | #~ msgid "Total" 321 | #~ msgstr "Total" 322 | 323 | #, fuzzy 324 | #~ msgid "Duration by Country" 325 | #~ msgstr "Duración :" 326 | 327 | #, fuzzy 328 | #~ msgid "minutes" 329 | #~ msgstr "Minutos" 330 | 331 | #, fuzzy 332 | #~ msgid "call totals report" 333 | #~ msgstr "Detalles de Llamadas por día" 334 | 335 | #~ msgid "Total Calls" 336 | #~ msgstr "Total Llamadas" 337 | 338 | #~ msgid "Average Calls Per Hour" 339 | #~ msgstr "Llamada por hora" 340 | 341 | #, fuzzy 342 | #~ msgid "Total Duration" 343 | #~ msgstr "Duración" 344 | 345 | #, fuzzy 346 | #~ msgid "Average Call Duration" 347 | #~ msgstr "Llamada por hora" 348 | 349 | #, fuzzy 350 | #~ msgid "channel_data" 351 | #~ msgstr "Channel" 352 | 353 | #, fuzzy 354 | #~ msgid "CDR Mail Report" 355 | #~ msgstr "Detalles de Llamadas por día" 356 | 357 | #~ msgid "May" 358 | #~ msgstr "Mayo" 359 | 360 | #~ msgid "March" 361 | #~ msgstr "Búsqueda" 362 | 363 | #~ msgid "Hour" 364 | #~ msgstr "Hora" 365 | 366 | #~ msgid "Load by Hour" 367 | #~ msgstr "Carga por hora" 368 | 369 | #, fuzzy 370 | #~ msgid "Load by Day" 371 | #~ msgstr "Carga por hora" 372 | 373 | #, fuzzy 374 | #~ msgid "Load by Month" 375 | #~ msgstr "Carga por hora" 376 | 377 | #~ msgid "days" 378 | #~ msgstr "días" 379 | 380 | #, fuzzy 381 | #~ msgid "calls detail records" 382 | #~ msgstr "Detalles de las llamadas " 383 | 384 | #, fuzzy 385 | #~ msgid "Bill Seconds" 386 | #~ msgstr "Segundos" 387 | 388 | #, fuzzy 389 | #~ msgid "Show details" 390 | #~ msgstr "para más detalles." 391 | 392 | #, fuzzy 393 | #~ msgid "Call Details" 394 | #~ msgstr "Detalles de las llamadas " 395 | 396 | #, fuzzy 397 | #~ msgid "total calls" 398 | #~ msgstr "Total Llamadas" 399 | 400 | #~ msgid "Export CSV file" 401 | #~ msgstr "Exportar en un archivo CSV" 402 | 403 | #~ msgid "Graphic" 404 | #~ msgstr "Gráfico" 405 | 406 | #~ msgid "Average Connection Time" 407 | #~ msgstr "Promedio del Tiempo de Conexión" 408 | 409 | #~ msgid "ACT" 410 | #~ msgstr "PTC" 411 | 412 | #~ msgid "" 413 | #~ "is an application that allows you to browse and analyse CDR (Call Detail " 414 | #~ "Records)." 415 | #~ msgstr "" 416 | #~ "es una aplicación de código abierto que le permite navegar y analizar los " 417 | #~ "CDRs (Detalles de Llamadas)." 418 | 419 | #~ msgid "Different reporting tools are provided :" 420 | #~ msgstr "Diferentes herramientas par ver los resultados:" 421 | 422 | #~ msgid "Support" 423 | #~ msgstr "Apoyo" 424 | 425 | #, fuzzy 426 | #~ msgid "" 427 | #~ "Star2Billing S.L. offers consultancy including installation, training and " 428 | #~ "customisation on CDR-Stats." 429 | #~ msgstr "" 430 | #~ "Star2Billing SL ofrece servicios de consultoría que incluyen la " 431 | #~ "instalación, formación y personalización en todos sus productos, y el CDR " 432 | #~ "Stats-no tambiem." 433 | 434 | #~ msgid "Contact us at" 435 | #~ msgstr "Contacte con nosotros en" 436 | 437 | #~ msgid "for more information" 438 | #~ msgstr "para más información" 439 | 440 | #, fuzzy 441 | #~ msgid "Get Support" 442 | #~ msgstr "Apoyo" 443 | 444 | #~ msgid "Licensing" 445 | #~ msgstr "Licencias" 446 | 447 | #~ msgid "CDR-Stats is licensed under" 448 | #~ msgstr "CDR-Stats está licenciado bajo" 449 | 450 | #~ msgid "Login" 451 | #~ msgstr "Login" 452 | 453 | #~ msgid "Clid" 454 | #~ msgstr "CLID" 455 | 456 | #, fuzzy 457 | #~ msgid "Calls Status" 458 | #~ msgstr "Fecha de Llamada" 459 | 460 | #~ msgid "Please login by clicking on login button" 461 | #~ msgstr "Por favor, identifíquese haciendo clic en el botón Login" 462 | 463 | #, fuzzy 464 | #~ msgid "country calls detail" 465 | #~ msgstr "Detalles de las llamadas " 466 | 467 | #, fuzzy 468 | #~ msgid "Password reset" 469 | #~ msgstr "Pontraseña" 470 | 471 | #, fuzzy 472 | #~ msgid "Change detail" 473 | #~ msgstr "para más detalles." 474 | 475 | #~ msgid "Password" 476 | #~ msgstr "Pontraseña" 477 | 478 | #, fuzzy 479 | #~ msgid "Select language" 480 | #~ msgstr "Seleccione la fecha" 481 | 482 | #, fuzzy 483 | #~ msgid "Danish" 484 | #~ msgstr "Español" 485 | 486 | #, fuzzy 487 | #~ msgid "Gujarati" 488 | #~ msgstr "Duración" 489 | 490 | #, fuzzy 491 | #~ msgid "Polish" 492 | #~ msgstr "Inglés" 493 | 494 | #, fuzzy 495 | #~ msgid "Can view CDR detail" 496 | #~ msgstr "para más detalles." 497 | 498 | #, fuzzy 499 | #~ msgid "Can view CDR mail report" 500 | #~ msgstr "Detalles de Llamadas por día" 501 | -------------------------------------------------------------------------------- /frontend_notification/locale/fr/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/areski/django-frontend-notification/e054f5b46aa589d5812244533e01157db8671c6b/frontend_notification/locale/fr/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /frontend_notification/locale/fr/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # CDR-Stats - PO File 2 | # Copyright (C) 2010-2012 - Star2Billing S.L. 3 | # This file is distributed under the same license as the CDR-Stats application. 4 | # Areski Belaid , 2010-2012. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: CDR-Stats 1.0\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2013-02-16 15:55+0530\n" 11 | "PO-Revision-Date: 2012-05-17 15:27+0100\n" 12 | "Last-Translator: Sylvain Gomez \n" 13 | "Language-Team: Areski Belaid \n" 14 | "Language: \n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=n>1;\n" 19 | 20 | #: constants.py:6 21 | msgid "Message" 22 | msgstr "Message" 23 | 24 | #: constants.py:7 25 | msgid "Notice type" 26 | msgstr "Type de Notice" 27 | 28 | #: constants.py:8 29 | msgid "Sender" 30 | msgstr "Envoyeux" 31 | 32 | #: constants.py:9 33 | msgid "Date" 34 | msgstr "Date" 35 | 36 | #: views.py:122 37 | msgid "All notifications are marked as read." 38 | msgstr "Toutes les notifications sont marqués comme lus." 39 | 40 | #: views.py:157 41 | #, python-format 42 | msgid "\"%(name)s\" is deleted." 43 | msgstr "\"%(name)s\" est supprimé." 44 | 45 | #: views.py:161 46 | #, python-format 47 | msgid "\"%(name)s\" is marked as read." 48 | msgstr "\"%(name)s\" est marqué comme lu." 49 | 50 | #: views.py:175 51 | #, python-format 52 | msgid "%(count)s notification(s) are deleted." 53 | msgstr "%(count)s notification (s) sont supprimés." 54 | 55 | #: views.py:180 56 | #, python-format 57 | msgid "%(count)s notification(s) are marked as read." 58 | msgstr "%(count)s de notification (s) sont marqués comme lus." 59 | 60 | #: templates/frontend/frontend_notification/user_notification.html:21 61 | msgid "You must check at least one box!" 62 | msgstr "Vous devez cocher au moins une case!" 63 | 64 | #: templates/frontend/frontend_notification/user_notification.html:29 65 | msgid " notification(s) are going to be deleted?" 66 | msgstr "notification (s) vont être supprimés?" 67 | 68 | #: templates/frontend/frontend_notification/user_notification.html:32 69 | msgid " notification(s) are going to be marked as read?" 70 | msgstr "notification (s) vont être marqué comme lu?" 71 | 72 | #: templates/frontend/frontend_notification/user_notification.html:51 73 | msgid "Notifications" 74 | msgstr "Notifications" 75 | 76 | #: templates/frontend/frontend_notification/user_notification.html:57 77 | msgid "Alert" 78 | msgstr "Alerte" 79 | 80 | #: templates/frontend/frontend_notification/user_notification.html:63 81 | #: templates/frontend/frontend_notification/user_notification.html:89 82 | msgid "Action" 83 | msgstr "Actions" 84 | 85 | #: templates/frontend/frontend_notification/user_notification.html:68 86 | msgid "Mark as read" 87 | msgstr "Marquer comme lu" 88 | 89 | #: templates/frontend/frontend_notification/user_notification.html:69 90 | msgid "Delete notifications" 91 | msgstr "Notifications de suppression" 92 | 93 | #: templates/frontend/frontend_notification/user_notification.html:72 94 | msgid "Mark all as read" 95 | msgstr "Tout marquer comme lu" 96 | 97 | #: templates/frontend/frontend_notification/user_notification.html:111 98 | msgid "no records found" 99 | msgstr "aucun enregistrement trouvé" 100 | 101 | #: templatetags/frontend_notification_tags.py:24 102 | msgid "New" 103 | msgstr "Nouveau" 104 | 105 | #: templatetags/frontend_notification_tags.py:26 106 | msgid "Read" 107 | msgstr "Lire" 108 | 109 | #~ msgid "English" 110 | #~ msgstr "Anglais" 111 | 112 | #~ msgid "French" 113 | #~ msgstr "Français" 114 | 115 | #~ msgid "Spanish" 116 | #~ msgstr "Espagnol" 117 | 118 | #~ msgid "Portuguese" 119 | #~ msgstr "Portugais" 120 | 121 | #~ msgid "German" 122 | #~ msgstr "Allemand" 123 | 124 | #~ msgid "Russian" 125 | #~ msgstr "Russe" 126 | 127 | #~ msgid "CDR already exists !!" 128 | #~ msgstr "Le CDR existe déjà !!!" 129 | 130 | #~ msgid "" 131 | #~ "%(cdr_record_count)s Cdr(s) are uploaded, out of %(total_rows)s row(s) !!" 132 | #~ msgstr "" 133 | #~ "%(cdr_record_count)s Cdr(s) sont chargés, sur %(total_rows)s rangée(s)!" 134 | 135 | #~ msgid "Error : invalid value for import" 136 | #~ msgstr "Erreur : valeur invalide pour l'import." 137 | 138 | #~ msgid "Error : importing several times the same column" 139 | #~ msgstr "Erreur : Vous avez essayé d'importer plusieurs fois la même colonne" 140 | 141 | #~ msgid "Import CDR" 142 | #~ msgstr "Importer des CDR" 143 | 144 | #~ msgid "Equals" 145 | #~ msgstr "Egale" 146 | 147 | #, fuzzy 148 | #~ msgid "Begins" 149 | #~ msgstr "Commence par" 150 | 151 | #~ msgid "Contains" 152 | #~ msgstr "Contient" 153 | 154 | #, fuzzy 155 | #~ msgid "Ends" 156 | #~ msgstr "Fini par" 157 | 158 | #~ msgid "Call-date" 159 | #~ msgstr "Date d'appel" 160 | 161 | #~ msgid "CLID" 162 | #~ msgstr "CLID" 163 | 164 | #~ msgid "Destination" 165 | #~ msgstr "Destination" 166 | 167 | #~ msgid "Duration" 168 | #~ msgstr "Durée" 169 | 170 | #~ msgid "Bill" 171 | #~ msgstr "Facture" 172 | 173 | #~ msgid "Hangup cause" 174 | #~ msgstr "Raccrocher la cause" 175 | 176 | #~ msgid "Account" 177 | #~ msgstr "Compte" 178 | 179 | #~ msgid "All Switches" 180 | #~ msgstr "Tous les Switches" 181 | 182 | #~ msgid "All" 183 | #~ msgstr "Tous" 184 | 185 | #~ msgid "Caller ID" 186 | #~ msgstr "Numéro de l'appelant" 187 | 188 | #~ msgid "Account Code" 189 | #~ msgstr "Numéro de compte" 190 | 191 | #, fuzzy 192 | #~ msgid "Duration (Secs)" 193 | #~ msgstr "Durée" 194 | 195 | #~ msgid "Switch" 196 | #~ msgstr "Switch" 197 | 198 | #~ msgid "Country" 199 | #~ msgstr "Pays" 200 | 201 | #~ msgid "From" 202 | #~ msgstr "De" 203 | 204 | #~ msgid "To" 205 | #~ msgstr "A" 206 | 207 | #~ msgid "Direction" 208 | #~ msgstr "Direction" 209 | 210 | #~ msgid "Inbound" 211 | #~ msgstr "Entrant" 212 | 213 | #~ msgid "Outbound" 214 | #~ msgstr "Sortant" 215 | 216 | #, fuzzy 217 | #~ msgid "Unknown" 218 | #~ msgstr "Unknow" 219 | 220 | #~ msgid "Result" 221 | #~ msgstr "Résultat" 222 | 223 | #~ msgid "Minutes" 224 | #~ msgstr "Minutes" 225 | 226 | #~ msgid "Seconds" 227 | #~ msgstr "Secondes" 228 | 229 | #~ msgid "CDR per page" 230 | #~ msgstr "CDR par pages" 231 | 232 | #~ msgid "Select date" 233 | #~ msgstr "Choisissez la date" 234 | 235 | #~ msgid "Graph" 236 | #~ msgstr "Graphique" 237 | 238 | #~ msgid "Calls per Hour" 239 | #~ msgstr "Appels par heure" 240 | 241 | #~ msgid "Minutes per Hour" 242 | #~ msgstr "Minutes par Heure" 243 | 244 | #~ msgid "Check with" 245 | #~ msgstr "Vérifiez avec" 246 | 247 | #~ msgid "Previous days" 248 | #~ msgstr "Jours précédent" 249 | 250 | #~ msgid "Same day of the week" 251 | #~ msgstr "Même jour de la semaine" 252 | 253 | #~ msgid "Email to send the report" 254 | #~ msgstr "Email à qui le rapport" 255 | 256 | #~ msgid "Upload CSV File " 257 | #~ msgstr "Envoyer un fichier CSV" 258 | 259 | #~ msgid "Browse CSV file" 260 | #~ msgstr "Naviguer le fichier CSV" 261 | 262 | #~ msgid "Document types accepted: %s" 263 | #~ msgstr "Les types de documents acceptés: %s" 264 | 265 | #~ msgid "Select switch" 266 | #~ msgstr "Sélectioner un switch" 267 | 268 | #~ msgid "Account code" 269 | #~ msgstr "Code affaire" 270 | 271 | #~ msgid "caller_id_number" 272 | #~ msgstr "caller_id_number" 273 | 274 | #~ msgid "caller_id_name" 275 | #~ msgstr "caller_id_name" 276 | 277 | #~ msgid "destination_number" 278 | #~ msgstr "destination_numero" 279 | 280 | #~ msgid "duration" 281 | #~ msgstr "Durée" 282 | 283 | #~ msgid "billsec" 284 | #~ msgstr "billsec" 285 | 286 | #~ msgid "hangup_cause_id" 287 | #~ msgstr "hangup_cause_id" 288 | 289 | #~ msgid "direction" 290 | #~ msgstr "direction" 291 | 292 | #~ msgid "uuid" 293 | #~ msgstr "uuid" 294 | 295 | #~ msgid "remote_media_ip" 296 | #~ msgstr "remote_media_ip" 297 | 298 | #~ msgid "start_uepoch" 299 | #~ msgstr "start_uepoch" 300 | 301 | #~ msgid "answer_uepoch" 302 | #~ msgstr "answer_uepoch" 303 | 304 | #~ msgid "end_uepoch" 305 | #~ msgstr "end_uepoch" 306 | 307 | #~ msgid "mduration" 308 | #~ msgstr "MicroDurée" 309 | 310 | #~ msgid "billmsec" 311 | #~ msgstr "billmsec" 312 | 313 | #~ msgid "read_codec" 314 | #~ msgstr "read_codec" 315 | 316 | #~ msgid "write_codec" 317 | #~ msgstr "write_codec" 318 | 319 | #~ msgid "accountcode" 320 | #~ msgstr "Code Compte" 321 | 322 | #, fuzzy 323 | #~ msgid "Internal Calls" 324 | #~ msgstr "Appel Interne" 325 | 326 | #~ msgid "ANSWER" 327 | #~ msgstr "ANSWER" 328 | 329 | #~ msgid "BUSY" 330 | #~ msgstr "BUSY" 331 | 332 | #~ msgid "NOANSWER" 333 | #~ msgstr "NOANSWER" 334 | 335 | #~ msgid "CANCEL" 336 | #~ msgstr "CANCEL" 337 | 338 | #~ msgid "CONGESTION" 339 | #~ msgstr "CONGESTION" 340 | 341 | #~ msgid "CHANUNAVAIL" 342 | #~ msgstr "CHANUNAVAIL" 343 | 344 | #~ msgid "DONTCALL" 345 | #~ msgstr "DONTCALL" 346 | 347 | #~ msgid "TORTURE" 348 | #~ msgstr "TORTURE" 349 | 350 | #~ msgid "INVALIDARGS" 351 | #~ msgstr "INVALIDARGS" 352 | 353 | #~ msgid "FreeSWITCH" 354 | #~ msgstr "FreeSWITCH" 355 | 356 | #~ msgid "Asterisk" 357 | #~ msgstr "Asterisk" 358 | 359 | #~ msgid "Switches" 360 | #~ msgstr "Switches" 361 | 362 | #~ msgid "Code" 363 | #~ msgstr "Code" 364 | 365 | #~ msgid "ITU-T Q.850 Code" 366 | #~ msgstr "Code ITU-T Q.850" 367 | 368 | #~ msgid "Enumeration" 369 | #~ msgstr "Enumération" 370 | 371 | #~ msgid "Cause" 372 | #~ msgstr "Raison" 373 | 374 | #~ msgid "Description" 375 | #~ msgstr "Description" 376 | 377 | #~ msgid "Hangupcause" 378 | #~ msgstr "Hangupcause" 379 | 380 | #~ msgid "Hangupcauses" 381 | #~ msgstr "Hangupcauses" 382 | 383 | #~ msgid "Mongodb Database connection is closed!" 384 | #~ msgstr "La connexion à la base de données Mongodb est fermée !" 385 | 386 | #~ msgid "Mongodb Database is locked!" 387 | #~ msgstr "La base de données Mongodb est verrouillée !" 388 | 389 | #~ msgid "Account code is not assigned!" 390 | #~ msgstr "Code de compte n'est pas affecté!" 391 | 392 | #~ msgid "Email ids are saved successfully." 393 | #~ msgstr "Identifiants de messagerie sont sauvegardés avec succès." 394 | 395 | #~ msgid "Successfully added prefix into blacklist" 396 | #~ msgstr "Ajout du préfixe dans la liste noire réussie" 397 | 398 | #~ msgid "Blacklist by country" 399 | #~ msgstr "Liste noire par pays" 400 | 401 | #~ msgid "cdr_alert" 402 | #~ msgstr "cdr_alert" 403 | 404 | #~ msgid "Successfully added prefix into whitelist" 405 | #~ msgstr "Ajout du préfixe dans la liste blanche réussie" 406 | 407 | #~ msgid "Whitelist by country" 408 | #~ msgstr "Liste blanche par pays" 409 | 410 | #~ msgid "Day" 411 | #~ msgstr "Jour" 412 | 413 | #~ msgid "Week" 414 | #~ msgstr "Semaine" 415 | 416 | #~ msgid "Month" 417 | #~ msgstr "Mois" 418 | 419 | #~ msgid "Active" 420 | #~ msgstr "Actif" 421 | 422 | #~ msgid "Inactive" 423 | #~ msgstr "Inactif" 424 | 425 | #~ msgid "ALOC (Average Length of Call)" 426 | #~ msgstr "DMA (Durée Moyenne d'un Appel)" 427 | 428 | #~ msgid "ASR (Answer Seize Ratio)" 429 | #~ msgstr "ASR (Réponse Seize Ratio)" 430 | 431 | #~ msgid "Is less than" 432 | #~ msgstr "Est plus petit que" 433 | 434 | #~ msgid "Is greater than" 435 | #~ msgstr "Est plus grand que" 436 | 437 | #~ msgid "Decrease by more than" 438 | #~ msgstr "Diminuer de plus de" 439 | 440 | #~ msgid "Increase by more than" 441 | #~ msgstr "Augmenter de plus de" 442 | 443 | #~ msgid "Percentage decrease by more than" 444 | #~ msgstr "Pourcentage de baisse de plus de" 445 | 446 | #~ msgid "Percentage increase by more than" 447 | #~ msgstr "Pourcentage d'augmentation de plus de" 448 | 449 | #~ msgid "Same day" 450 | #~ msgstr "Même jour" 451 | 452 | #~ msgid "Same day in the previous week" 453 | #~ msgstr "Même jour la semaine précédente" 454 | 455 | #~ msgid "No alarm sent" 456 | #~ msgstr "Aucune alarme envoyée" 457 | 458 | #~ msgid "Alarm Sent" 459 | #~ msgstr "Alarme envoyée" 460 | 461 | #~ msgid "Label" 462 | #~ msgstr "Label" 463 | 464 | #~ msgid "Prefix" 465 | #~ msgstr "Préfixe" 466 | 467 | #~ msgid "Alert Remove Prefix" 468 | #~ msgstr "Alerte Retirer Préfixe" 469 | 470 | #~ msgid "Alert Remove Prefixes" 471 | #~ msgstr "Alerte Retirer préfixes" 472 | 473 | #~ msgid "Name" 474 | #~ msgstr "Nom" 475 | 476 | #~ msgid "Period" 477 | #~ msgstr "Période" 478 | 479 | #~ msgid "Interval to apply alarm" 480 | #~ msgstr "Intervale sur lequel appliquer l'alarme" 481 | 482 | #~ msgid "Type" 483 | #~ msgstr "Type" 484 | 485 | #~ msgid "" 486 | #~ "ALOC (average length of call) ; ASR (answer seize ratio) ; CIC " 487 | #~ "(Consecutive Incomplete Calls) " 488 | #~ msgstr "" 489 | #~ "ALOC (durée moyenne d'appel); ASR (répondre saisir ratio); CIC " 490 | #~ "(consécutifs appels incomplets)" 491 | 492 | #~ msgid "Condition" 493 | #~ msgstr "Condition" 494 | 495 | #~ msgid "Value" 496 | #~ msgstr "Valeur" 497 | 498 | #~ msgid "Input the value for the alert" 499 | #~ msgstr "Entrez la valeur pour l'alerte" 500 | 501 | #~ msgid "Status" 502 | #~ msgstr "Statut" 503 | 504 | #~ msgid "Email to send alarm" 505 | #~ msgstr "Email à qui envoyer l'alarme" 506 | 507 | #~ msgid "Alarm" 508 | #~ msgstr "Alarme" 509 | 510 | #~ msgid "Alarms" 511 | #~ msgstr "Alarmes" 512 | 513 | #~ msgid "Select Alarm" 514 | #~ msgstr "Choisissez une alarme" 515 | 516 | #~ msgid "Calculated value" 517 | #~ msgstr "Valeur calculée" 518 | 519 | #~ msgid "Alarm Report" 520 | #~ msgstr "Rapport d'alarme" 521 | 522 | #~ msgid "Alarms Report" 523 | #~ msgstr "Rapport d'alarmes" 524 | 525 | #~ msgid "Select Country" 526 | #~ msgstr "Choisissez un pays" 527 | 528 | #~ msgid "Blacklist" 529 | #~ msgstr "Liste noire" 530 | 531 | #~ msgid "Whitelist" 532 | #~ msgstr "Liste blanche" 533 | 534 | #~ msgid "Alert Message \"%(user)s\" - \"%(user_id)s\"" 535 | #~ msgstr "Message d'alerte \"%(user)s\" - \"%(user_id)s\"" 536 | 537 | #~ msgid "CDR Report" 538 | #~ msgstr "Rapport CDR" 539 | 540 | #~ msgid "Task Manager" 541 | #~ msgstr "Gestionnaire des tâches" 542 | 543 | #~ msgid "Dashboard Stats" 544 | #~ msgstr "Statistiques du tableau de bord" 545 | 546 | #~ msgid "Recent Actions" 547 | #~ msgstr "Actions récentes" 548 | 549 | #~ msgid "CDR Voip" 550 | #~ msgstr "CDR VoIP" 551 | 552 | #~ msgid "Country Dialcode" 553 | #~ msgstr "Code d'appel du pays" 554 | 555 | #~ msgid "Quick links" 556 | #~ msgstr "Liens rapides" 557 | 558 | #~ msgid "Go to CDR-Stats.org" 559 | #~ msgstr "Aller à CDR-Stats.org" 560 | 561 | #~ msgid "Change password" 562 | #~ msgstr "Modifier le mot de passe" 563 | 564 | #~ msgid "Log out" 565 | #~ msgstr "Se déconnecter" 566 | 567 | #~ msgid "Latest CDR-Stats News" 568 | #~ msgstr "Dernières nouvelles CDR-Stats" 569 | 570 | #~ msgid "CDR-Stats" 571 | #~ msgstr "CDR-Stats" 572 | 573 | #~ msgid "Applications" 574 | #~ msgstr "Applications" 575 | 576 | #~ msgid "Administration" 577 | #~ msgstr "Administration" 578 | 579 | #~ msgid "API Explorer" 580 | #~ msgstr "API Explorer" 581 | 582 | #~ msgid "Customer Panel" 583 | #~ msgstr "Panneau utilisateur" 584 | 585 | #~ msgid "Username:" 586 | #~ msgstr "Nom d'utilisateur:" 587 | 588 | #~ msgid "Password:" 589 | #~ msgstr "Mot de passe:" 590 | 591 | #~ msgid "Disabled Account" 592 | #~ msgstr "Compte désactivé" 593 | 594 | #~ msgid "Invalid Login." 595 | #~ msgstr "Nom d'utilisateur incorrect." 596 | 597 | #~ msgid "Enter Valid User Credentials." 598 | #~ msgstr "Saisissez informations d'identification utilisateur valides." 599 | 600 | #~ msgid "CDR-Stats : API Documentation" 601 | #~ msgstr "CDR-Stats : Documentation API " 602 | 603 | #~ msgid "Accepted methods" 604 | #~ msgstr "Méthodes acceptées" 605 | 606 | #~ msgid "CDR-Stats Admin" 607 | #~ msgstr "Admin CDR-Stats" 608 | 609 | #~ msgid " By %(filter_title)s " 610 | #~ msgstr "Par %(filter_title)s " 611 | 612 | #~ msgid "Home" 613 | #~ msgstr "Home" 614 | 615 | #~ msgid "Sample File" 616 | #~ msgstr "Fichier exemple" 617 | 618 | #~ msgid "Mandatory fields to import" 619 | #~ msgstr "Champs obligatoires à importer" 620 | 621 | #~ msgid "Extra fields to import" 622 | #~ msgstr "Champs supplémentaires à importer" 623 | 624 | #~ msgid "Submit" 625 | #~ msgstr "Soumettre" 626 | 627 | #~ msgid "Reset" 628 | #~ msgstr "Réinitialiser" 629 | 630 | #~ msgid "Contact(s) imported" 631 | #~ msgstr "Contact(s) impotés" 632 | 633 | #~ msgid "Contact(s) not imported" 634 | #~ msgstr "Contact(s) non importé(s)" 635 | 636 | #~ msgid "Type mismatch" 637 | #~ msgstr "Incompatibilité de type" 638 | 639 | #~ msgid "Select country" 640 | #~ msgstr "Choisissez le pays" 641 | 642 | #~ msgid "Select all prefixes" 643 | #~ msgstr "Sélectionnez tous les préfixes" 644 | 645 | #~ msgid "Blacklist the selected prefixes" 646 | #~ msgstr "Blacklister les préfixes sélectionnés" 647 | 648 | #~ msgid "Blacklist the selected country" 649 | #~ msgstr "Blacklister le pays sélectionné" 650 | 651 | #~ msgid "Add %(name)s" 652 | #~ msgstr "Ajouter %(name)s" 653 | 654 | #, fuzzy 655 | #~ msgid "Please correct the error below." 656 | #~ msgid_plural "Please correct the errors below." 657 | #~ msgstr[0] "Filtre" 658 | #~ msgstr[1] "Filtre" 659 | 660 | #~ msgid "CDR Alert" 661 | #~ msgstr "Alerte CDR" 662 | 663 | #~ msgid "Add" 664 | #~ msgstr "Ajouter" 665 | 666 | #~ msgid "Change" 667 | #~ msgstr "Changer" 668 | 669 | #~ msgid "API Browser" 670 | #~ msgstr "Navigateur API" 671 | 672 | #~ msgid "Dashboard" 673 | #~ msgstr "Tableau de bord" 674 | 675 | #~ msgid "Search" 676 | #~ msgstr "Recherche" 677 | 678 | #~ msgid "Analytics" 679 | #~ msgstr "Analyses" 680 | 681 | #~ msgid "Compare" 682 | #~ msgstr "Comparer" 683 | 684 | #~ msgid "Realtime" 685 | #~ msgstr "Temps réel" 686 | 687 | #~ msgid "Concurrent" 688 | #~ msgstr "Simultané" 689 | 690 | #~ msgid "Report" 691 | #~ msgstr "Rapport" 692 | 693 | #~ msgid "Country Report" 694 | #~ msgstr "Rapport par pays" 695 | 696 | #~ msgid "World Map Report" 697 | #~ msgstr "Rapport mondial" 698 | 699 | #~ msgid "Mail Report" 700 | #~ msgstr "Rapport par mail" 701 | 702 | #~ msgid "Account settings" 703 | #~ msgstr "Paramètres du compte" 704 | 705 | #~ msgid "Change Language" 706 | #~ msgstr "Changer de langue" 707 | 708 | #~ msgid "advanced search" 709 | #~ msgstr "Recherche avancée" 710 | 711 | #~ msgid "secs" 712 | #~ msgstr "secs" 713 | 714 | #~ msgid "Calls" 715 | #~ msgstr "Appels" 716 | 717 | #~ msgid "country call statistics" 718 | #~ msgstr "Statistiques d'appels par pays" 719 | 720 | #~ msgid "calls by country" 721 | #~ msgstr "Appels par pays" 722 | 723 | #~ msgid "top" 724 | #~ msgstr "haut" 725 | 726 | #~ msgid "World" 727 | #~ msgstr "Monde" 728 | 729 | #~ msgid "world" 730 | #~ msgstr "monde" 731 | 732 | #~ msgid "Total" 733 | #~ msgstr "Total" 734 | 735 | #~ msgid "Duration by Country" 736 | #~ msgstr "Durée par pays" 737 | 738 | #~ msgid "duration by country" 739 | #~ msgstr "Durée par pays" 740 | 741 | #~ msgid "minutes" 742 | #~ msgstr "minutes" 743 | 744 | #~ msgid "Call Statistics" 745 | #~ msgstr "Statistiques d'appel" 746 | 747 | #~ msgid "call totals report" 748 | #~ msgstr "rapport des appels" 749 | 750 | #~ msgid "Total Calls" 751 | #~ msgstr "Total des Appels" 752 | 753 | #~ msgid "Average Calls Per Hour" 754 | #~ msgstr "Appels Par Heure (Moyenne)" 755 | 756 | #~ msgid "Total Duration" 757 | #~ msgstr "Durée Totale" 758 | 759 | #~ msgid "Average Call Duration" 760 | #~ msgstr "Durée moyenne d'appel" 761 | 762 | #~ msgid "countries report" 763 | #~ msgstr "rapport par pays" 764 | 765 | #~ msgid "5 most called countries" 766 | #~ msgstr "5 pays les plus appelés" 767 | 768 | #~ msgid "No record found" 769 | #~ msgstr "Aucun enregistrement trouvé" 770 | 771 | #~ msgid "FreeSWITCH CDR" 772 | #~ msgstr "FreeSWITCH CDR" 773 | 774 | #~ msgid "channel_data" 775 | #~ msgstr "CHANNEL_DATA" 776 | 777 | #~ msgid "callflow" 778 | #~ msgstr "callflow" 779 | 780 | #~ msgid "app_log" 781 | #~ msgstr "app_log" 782 | 783 | #~ msgid "variables" 784 | #~ msgstr "variables" 785 | 786 | #~ msgid "concurrent calls" 787 | #~ msgstr "appels simultanés" 788 | 789 | #~ msgid "Concurrent Calls" 790 | #~ msgstr "Appels simultanés" 791 | 792 | #~ msgid "CDR Mail Report" 793 | #~ msgstr "CDR Rapport via Email" 794 | 795 | #~ msgid "Save" 796 | #~ msgstr "Sauvegarder" 797 | 798 | #~ msgid "Preview of the mail report" 799 | #~ msgstr "Aperçu de la communication par courrier électronique" 800 | 801 | #~ msgid "Jan" 802 | #~ msgstr "Jan" 803 | 804 | #~ msgid "Feb" 805 | #~ msgstr "Fév" 806 | 807 | #~ msgid "Mar" 808 | #~ msgstr "Mar" 809 | 810 | #~ msgid "Apr" 811 | #~ msgstr "Avr" 812 | 813 | #~ msgid "May" 814 | #~ msgstr "Mai" 815 | 816 | #~ msgid "Jun" 817 | #~ msgstr "Juin" 818 | 819 | #~ msgid "Jul" 820 | #~ msgstr "Juil" 821 | 822 | #~ msgid "Aug" 823 | #~ msgstr "Aoû" 824 | 825 | #~ msgid "Sep" 826 | #~ msgstr "Sep" 827 | 828 | #~ msgid "Oct" 829 | #~ msgstr "Oct" 830 | 831 | #~ msgid "Nov" 832 | #~ msgstr "Nov" 833 | 834 | #~ msgid "Dec" 835 | #~ msgstr "Déc" 836 | 837 | #~ msgid "January" 838 | #~ msgstr "Janvier" 839 | 840 | #~ msgid "February" 841 | #~ msgstr "Février" 842 | 843 | #~ msgid "March" 844 | #~ msgstr "Mars" 845 | 846 | #~ msgid "April" 847 | #~ msgstr "Avril" 848 | 849 | #~ msgid "June" 850 | #~ msgstr "Juin" 851 | 852 | #~ msgid "July" 853 | #~ msgstr "Juillet" 854 | 855 | #~ msgid "August" 856 | #~ msgstr "Août" 857 | 858 | #~ msgid "September" 859 | #~ msgstr "Septembre" 860 | 861 | #~ msgid "October" 862 | #~ msgstr "Octobre" 863 | 864 | #~ msgid "November" 865 | #~ msgstr "Novembre" 866 | 867 | #~ msgid "December" 868 | #~ msgstr "Décembre" 869 | 870 | #~ msgid "Hour" 871 | #~ msgstr "Heure" 872 | 873 | #~ msgid "Load by Hour" 874 | #~ msgstr "Charge par heure" 875 | 876 | #~ msgid "Load by Day" 877 | #~ msgstr "Charge par jour" 878 | 879 | #~ msgid "Load by Month" 880 | #~ msgstr "Charge par mois" 881 | 882 | #~ msgid "Points Off" 883 | #~ msgstr "Enlever les Points" 884 | 885 | #~ msgid "Points On" 886 | #~ msgstr "Afficher les Points" 887 | 888 | #~ msgid "Count" 889 | #~ msgstr "Quantité" 890 | 891 | #~ msgid "to" 892 | #~ msgstr "à" 893 | 894 | #~ msgid "with previous" 895 | #~ msgstr "avec les précédents" 896 | 897 | #~ msgid "days" 898 | #~ msgstr "jours" 899 | 900 | #~ msgid "CDR View" 901 | #~ msgstr "Voir le CDR" 902 | 903 | #~ msgid "calls detail records" 904 | #~ msgstr "enregistrements détaillés des appels" 905 | 906 | #~ msgid "report by day" 907 | #~ msgstr "rapport par jour" 908 | 909 | #~ msgid "Bill Seconds" 910 | #~ msgstr "Le projet de loi secondes" 911 | 912 | #~ msgid "Authorized call" 913 | #~ msgstr "Appel autorisé" 914 | 915 | #~ msgid "Unauthorized call" 916 | #~ msgstr "Appel non autorisé" 917 | 918 | #~ msgid "call" 919 | #~ msgstr "appel" 920 | 921 | #~ msgid "Show details" 922 | #~ msgstr "Montrer les détails" 923 | 924 | #~ msgid "Call Details" 925 | #~ msgstr "Détail des appels" 926 | 927 | #~ msgid "Close" 928 | #~ msgstr "Fermer" 929 | 930 | #~ msgid "show rows" 931 | #~ msgstr "Affichage de ligne" 932 | 933 | #~ msgid "total calls" 934 | #~ msgstr "Appels total" 935 | 936 | #~ msgid "Export CSV file" 937 | #~ msgstr "Exporter en fichier CSV" 938 | 939 | #~ msgid "daily report" 940 | #~ msgstr "Rapport journalier" 941 | 942 | #~ msgid "Graphic" 943 | #~ msgstr "Graphique" 944 | 945 | #~ msgid "Average Connection Time" 946 | #~ msgstr "Moyenne du Temps d'Appel" 947 | 948 | #~ msgid "ACT" 949 | #~ msgstr "MTA" 950 | 951 | #~ msgid "Confirm deletion?" 952 | #~ msgstr "Confirmer la suppression ?" 953 | 954 | #~ msgid "" 955 | #~ "No data can be found in your collections, please make sure the import of " 956 | #~ "data is working correctly." 957 | #~ msgstr "" 958 | #~ "Aucune donnée ne peut être trouvée dans vos collections, s'il vous " 959 | #~ "plaît assurez-vous que l'importation de données fonctionne " 960 | #~ "correctement." 961 | 962 | #~ msgid "" 963 | #~ "is an application that allows you to browse and analyse CDR (Call Detail " 964 | #~ "Records)." 965 | #~ msgstr "" 966 | #~ "est une application open source qui vous permet de parcourir et " 967 | #~ "d'analyser vos CDR (Call Details Record)." 968 | 969 | #~ msgid "Different reporting tools are provided :" 970 | #~ msgstr "Différents outils de reporting sont fournis :" 971 | 972 | #~ msgid "Search CDR: Search, filter, display and export CDR." 973 | #~ msgstr "Recherche CDR : Recherche, filtrage, affichage et export des CDR." 974 | 975 | #~ msgid "" 976 | #~ "Monthly Report: Summarise and compare call traffic history month on month." 977 | #~ msgstr "" 978 | #~ "Rapport mensuel : Résumer et comparer l'historique du trafic des appels " 979 | #~ "mois par mois." 980 | 981 | #~ msgid "" 982 | #~ "Analyse CDR : Analyse and compare call volumes with the previous day’s " 983 | #~ "traffic." 984 | #~ msgstr "" 985 | #~ "Analyser les CDR : Analyser et comparer le trafic d'appel avec les jours " 986 | #~ "précédents." 987 | 988 | #~ msgid "" 989 | #~ "Daily Traffic : Graph and filter traffic loads by hour during the day." 990 | #~ msgstr "" 991 | #~ "Trafic quotidien : Graphes et filtres sur la charge de trafic par heure " 992 | #~ "durant la journée." 993 | 994 | #~ msgid "Learn more" 995 | #~ msgstr "En savoir plus" 996 | 997 | #~ msgid "Support" 998 | #~ msgstr "Support" 999 | 1000 | #~ msgid "" 1001 | #~ "Star2Billing S.L. offers consultancy including installation, training and " 1002 | #~ "customisation on CDR-Stats." 1003 | #~ msgstr "" 1004 | #~ "Star2Billing S.L. offre des services de consultances y compris " 1005 | #~ "l'installation, la formation et la personnalisation de CDR-Stats" 1006 | 1007 | #~ msgid "Contact us at" 1008 | #~ msgstr "Contactez-nous à" 1009 | 1010 | #~ msgid "for more information" 1011 | #~ msgstr "pour plus d'informations" 1012 | 1013 | #~ msgid "Get Support" 1014 | #~ msgstr "Obtenir du support" 1015 | 1016 | #~ msgid "Licensing" 1017 | #~ msgstr "Licence" 1018 | 1019 | #~ msgid "CDR-Stats is licensed under" 1020 | #~ msgstr "CDR-Stats est sous licence" 1021 | 1022 | #~ msgid "" 1023 | #~ "however an alternative license can be purchased if the MPL V2 license is " 1024 | #~ "not suitable for your requirements." 1025 | #~ msgstr "" 1026 | #~ "Cependant une licence de remplacement peut être achetée si la licence MPL " 1027 | #~ "v2 n'est pas adaptée à vos besoins. Voir " 1028 | 1029 | #~ msgid "View Licensing details" 1030 | #~ msgstr "Voir les détails de licence" 1031 | 1032 | #~ msgid "Logout" 1033 | #~ msgstr "Déconnexion" 1034 | 1035 | #~ msgid "Login" 1036 | #~ msgstr "Login" 1037 | 1038 | #~ msgid "CDR-Stats report of " 1039 | #~ msgstr "CDR-Stats rapport de" 1040 | 1041 | #~ msgid "Last 10 Calls" 1042 | #~ msgstr "10 derniers appels" 1043 | 1044 | #~ msgid "Clid" 1045 | #~ msgstr "ID appelant" 1046 | 1047 | #~ msgid "Bill sec" 1048 | #~ msgstr "Bill sec" 1049 | 1050 | #~ msgid "Calls Status" 1051 | #~ msgstr "Statut des appels" 1052 | 1053 | #~ msgid "Customer Interface" 1054 | #~ msgstr "Interface client" 1055 | 1056 | #~ msgid "Hide search" 1057 | #~ msgstr "Masquer la recherche" 1058 | 1059 | #~ msgid "Please login by clicking on login button" 1060 | #~ msgstr "Veuillez vous enregistrer en cliquant sur le bouton login" 1061 | 1062 | #~ msgid "Forgot password?" 1063 | #~ msgstr "Mot de passe oublié ?" 1064 | 1065 | #~ msgid "Display language" 1066 | #~ msgstr "La langue d'affichage" 1067 | 1068 | #~ msgid "country calls detail" 1069 | #~ msgstr "Statistiques d'appels par pays" 1070 | 1071 | #~ msgid "country list" 1072 | #~ msgstr "list des pays" 1073 | 1074 | #~ msgid "World map Report" 1075 | #~ msgstr "Rapport - Carte du monde" 1076 | 1077 | #~ msgid "CDR-Stats APIs" 1078 | #~ msgstr "CDR-Stats APIs" 1079 | 1080 | #~ msgid "Browser playground" 1081 | #~ msgstr "Terrain de jeux pour APIs" 1082 | 1083 | #~ msgid "No" 1084 | #~ msgstr "Non" 1085 | 1086 | #~ msgid "Password reset complete" 1087 | #~ msgstr "Réinitialisation de mot complet" 1088 | 1089 | #~ msgid "Your password has been set. You may go ahead and log in now." 1090 | #~ msgstr "" 1091 | #~ "Votre mot de passe a été défini. Vous pouvez aller de l'avant et " 1092 | #~ "ouvrir une session maintenant." 1093 | 1094 | #~ msgid "Log in" 1095 | #~ msgstr "Identifiez-vous" 1096 | 1097 | #~ msgid "Password reset" 1098 | #~ msgstr "Réinitialiser le mot de passe" 1099 | 1100 | #~ msgid "Enter new password" 1101 | #~ msgstr "Entrez le nouveau mot de passe" 1102 | 1103 | #~ msgid "Please enter your new password twice for verification." 1104 | #~ msgstr "Veuillez entrer votre nouveau mot de passe 2 fois pour vérification" 1105 | 1106 | #~ msgid "Change my password" 1107 | #~ msgstr "Changer mon mot de passe" 1108 | 1109 | #~ msgid "Password reset unsuccessful" 1110 | #~ msgstr "Changement du mot de passe échoué" 1111 | 1112 | #~ msgid "" 1113 | #~ "The password reset link was invalid, possibly because it has already been " 1114 | #~ "used. Please request a new password reset." 1115 | #~ msgstr "" 1116 | #~ "Le lien de réinitialisation de mot n'était pas valide, peut-être " 1117 | #~ "parce qu'il a déjà été utilisé. S'il vous plaît demander un " 1118 | #~ "nouveau mot de passe réinitialisé." 1119 | 1120 | #~ msgid "Password reset successful" 1121 | #~ msgstr "Changement du mot de passe réussi" 1122 | 1123 | #~ msgid "" 1124 | #~ "We've e-mailed you instructions for setting your password to the e-mail " 1125 | #~ "address you submitted. You should be receiving it shortly." 1126 | #~ msgstr "" 1127 | #~ "Nous avons envoyé par courrier électronique des instructions sur la " 1128 | #~ "configuration de votre mot de passe à l'adresse e-mail que vous avez " 1129 | #~ "soumis. Vous devriez le recevoir sous peu." 1130 | 1131 | #~ msgid "" 1132 | #~ "You're receiving this e-mail because you requested a password reset for " 1133 | #~ "your user account at %(site_name)s." 1134 | #~ msgstr "" 1135 | #~ "Vous recevez cet e-mail parce que vous avez demandé un nouveau mot de " 1136 | #~ "passe pour votre compte d'utilisateur à %(site_name)s." 1137 | 1138 | #~ msgid "Please go to the following page and choose a new password:" 1139 | #~ msgstr "" 1140 | #~ "S'il vous plaît aller à la page suivante et choisir un nouveau mot de " 1141 | #~ "passe:" 1142 | 1143 | #~ msgid "Your username, in case you've forgotten:" 1144 | #~ msgstr "Votre nom d'utilisateur, au cas où vous auriez oublié:" 1145 | 1146 | #~ msgid "The %(site_name)s team" 1147 | #~ msgstr "L' %(site_name)s d'équipe" 1148 | 1149 | #~ msgid "Forgotten your password?" 1150 | #~ msgstr "Vous avez oublié votre mot de passe?" 1151 | 1152 | #~ msgid "" 1153 | #~ "Enter your e-mail address below, and we'll e-mail instructions for " 1154 | #~ "setting a new one." 1155 | #~ msgstr "" 1156 | #~ "Entrez votre adresse e-mail ci-dessous et nous vous enverrons un e-mail " 1157 | #~ "les instructions pour créer un nouveau." 1158 | 1159 | #~ msgid "Reset my password" 1160 | #~ msgstr "Réinitialiser mon mot de passe" 1161 | 1162 | #~ msgid "Change detail" 1163 | #~ msgstr "Changer les détails" 1164 | 1165 | #~ msgid "Settings" 1166 | #~ msgstr "Paramètres" 1167 | 1168 | #~ msgid "User detail, Password and notifications" 1169 | #~ msgstr "Détail d'utilisateur, mot de passe et notifications" 1170 | 1171 | #~ msgid "Password" 1172 | #~ msgstr "Mot de passe" 1173 | 1174 | #~ msgid "Change language " 1175 | #~ msgstr "Changer de langue" 1176 | 1177 | #~ msgid "Select language" 1178 | #~ msgstr "Choisissez une langue" 1179 | 1180 | #~ msgid "Previous" 1181 | #~ msgstr "Précédent" 1182 | 1183 | #~ msgid "Next" 1184 | #~ msgstr "Suivant" 1185 | 1186 | #~ msgid "Thank you for using CDR-Stats." 1187 | #~ msgstr "Merci d'utiliser CDR-Stats." 1188 | 1189 | #~ msgid "Log in again" 1190 | #~ msgstr "Connectez-vous à nouveau" 1191 | 1192 | #~ msgid "Personal info" 1193 | #~ msgstr "Infos personnelles" 1194 | 1195 | #~ msgid "Permission" 1196 | #~ msgstr "Permission" 1197 | 1198 | #~ msgid "Important dates" 1199 | #~ msgstr "Dates importantes" 1200 | 1201 | #~ msgid "Notifications are successfully marked as read." 1202 | #~ msgstr "Les notifications sont correctement marqués comme lus." 1203 | 1204 | #~ msgid "Notifications are not marked as read." 1205 | #~ msgstr "Notifications ne sont pas marqués comme lus." 1206 | 1207 | #~ msgid "Mark notification as seen" 1208 | #~ msgstr "Marquer comme on le voit notification" 1209 | 1210 | #~ msgid "average length of call" 1211 | #~ msgstr "durée moyenne d'appel" 1212 | 1213 | #~ msgid "answer seize ratio" 1214 | #~ msgstr "taux de réponse" 1215 | 1216 | #~ msgid "blacklist prefix" 1217 | #~ msgstr "préfix liste noire" 1218 | 1219 | #~ msgid "whitelist prefix" 1220 | #~ msgstr "préfix liste blanche" 1221 | 1222 | #~ msgid "Afar" 1223 | #~ msgstr "Au loin" 1224 | 1225 | #~ msgid "Abkhazian" 1226 | #~ msgstr "Abkhazie" 1227 | 1228 | #~ msgid "Afrikaans" 1229 | #~ msgstr "Afrikaans" 1230 | 1231 | #~ msgid "Akan" 1232 | #~ msgstr "Akan" 1233 | 1234 | #~ msgid "Albanian" 1235 | #~ msgstr "Albanais" 1236 | 1237 | #~ msgid "Amharic" 1238 | #~ msgstr "Amharique" 1239 | 1240 | #~ msgid "Arabic" 1241 | #~ msgstr "Arabe" 1242 | 1243 | #~ msgid "Aragonese" 1244 | #~ msgstr "Aragon" 1245 | 1246 | #~ msgid "Armenian" 1247 | #~ msgstr "Arménien" 1248 | 1249 | #~ msgid "Assamese" 1250 | #~ msgstr "Assamais" 1251 | 1252 | #~ msgid "Avaric" 1253 | #~ msgstr "Avar" 1254 | 1255 | #~ msgid "Avestan" 1256 | #~ msgstr "Avestique" 1257 | 1258 | #~ msgid "Aymara" 1259 | #~ msgstr "Aymara" 1260 | 1261 | #~ msgid "Azerbaijani" 1262 | #~ msgstr "Azerbaïdjanais" 1263 | 1264 | #~ msgid "Bashkir" 1265 | #~ msgstr "Bashkir" 1266 | 1267 | #~ msgid "Bambara" 1268 | #~ msgstr "Bambara" 1269 | 1270 | #~ msgid "Basque" 1271 | #~ msgstr "Basque" 1272 | 1273 | #~ msgid "Belarusian" 1274 | #~ msgstr "Biélorusse" 1275 | 1276 | #~ msgid "Bengali" 1277 | #~ msgstr "Bengali" 1278 | 1279 | #~ msgid "Bihari languages" 1280 | #~ msgstr "Langues Bihari" 1281 | 1282 | #~ msgid "Bislama" 1283 | #~ msgstr "Bichlamar" 1284 | 1285 | #~ msgid "Tibetan" 1286 | #~ msgstr "Tibet" 1287 | 1288 | #~ msgid "Bosnian" 1289 | #~ msgstr "Bosniaque" 1290 | 1291 | #~ msgid "Breton" 1292 | #~ msgstr "Breton" 1293 | 1294 | #~ msgid "Bulgarian" 1295 | #~ msgstr "Bulgare" 1296 | 1297 | #~ msgid "Burmese" 1298 | #~ msgstr "Birman" 1299 | 1300 | #~ msgid "Catalan; Valencian" 1301 | #~ msgstr "Catalan, valencien" 1302 | 1303 | #~ msgid "Czech" 1304 | #~ msgstr "Tchèque" 1305 | 1306 | #~ msgid "Chamorro" 1307 | #~ msgstr "Chamorro" 1308 | 1309 | #~ msgid "Chechen" 1310 | #~ msgstr "Tchétchène" 1311 | 1312 | #~ msgid "Chinese" 1313 | #~ msgstr "Chinois" 1314 | 1315 | #~ msgid "" 1316 | #~ "Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church " 1317 | #~ "Slavonic" 1318 | #~ msgstr "Eglise slave; vieux slave; slavon; vieux bulgare, vieux slave" 1319 | 1320 | #~ msgid "Chuvash" 1321 | #~ msgstr "Chuvash" 1322 | 1323 | #~ msgid "Cornish" 1324 | #~ msgstr "Cornouaillais" 1325 | 1326 | #~ msgid "Corsican" 1327 | #~ msgstr "Corse" 1328 | 1329 | #~ msgid "Cree" 1330 | #~ msgstr "Cris" 1331 | 1332 | #~ msgid "Welsh" 1333 | #~ msgstr "Gallois" 1334 | 1335 | #~ msgid "Danish" 1336 | #~ msgstr "Danois" 1337 | 1338 | #~ msgid "Divehi; Dhivehi; Maldivian" 1339 | #~ msgstr "Divehi; Dhivehi, Maldives" 1340 | 1341 | #~ msgid "Dutch; Flemish" 1342 | #~ msgstr "Néerlandais; flamand" 1343 | 1344 | #~ msgid "Dzongkha" 1345 | #~ msgstr "Dzongkha" 1346 | 1347 | #~ msgid "Greek, Modern (1453-)" 1348 | #~ msgstr "Greek, Modern (1453 -)" 1349 | 1350 | #~ msgid "Esperanto" 1351 | #~ msgstr "Espéranto" 1352 | 1353 | #~ msgid "Estonian" 1354 | #~ msgstr "Estonien" 1355 | 1356 | #~ msgid "Ewe" 1357 | #~ msgstr "Agnelle" 1358 | 1359 | #~ msgid "Faroese" 1360 | #~ msgstr "Îles Féroé" 1361 | 1362 | #~ msgid "Persian" 1363 | #~ msgstr "Persan" 1364 | 1365 | #~ msgid "Fijian" 1366 | #~ msgstr "Fidjien" 1367 | 1368 | #~ msgid "Finnish" 1369 | #~ msgstr "Finlandais" 1370 | 1371 | #~ msgid "Western Frisian" 1372 | #~ msgstr "Frison" 1373 | 1374 | #~ msgid "Fulah" 1375 | #~ msgstr "Fulah" 1376 | 1377 | #~ msgid "Georgian" 1378 | #~ msgstr "Géorgien" 1379 | 1380 | #~ msgid "Gaelic; Scottish Gaelic" 1381 | #~ msgstr "Gaélique écossais gaélique" 1382 | 1383 | #~ msgid "Irish" 1384 | #~ msgstr "Irlandais" 1385 | 1386 | #~ msgid "Galician" 1387 | #~ msgstr "Galicien" 1388 | 1389 | #~ msgid "Manx" 1390 | #~ msgstr "Manx" 1391 | 1392 | #~ msgid "Guarani" 1393 | #~ msgstr "Guarani" 1394 | 1395 | #~ msgid "Gujarati" 1396 | #~ msgstr "Gujarati" 1397 | 1398 | #~ msgid "Haitian; Haitian Creole" 1399 | #~ msgstr "Haïtienne, le créole haïtien" 1400 | 1401 | #~ msgid "Hausa" 1402 | #~ msgstr "Haoussa" 1403 | 1404 | #~ msgid "Hebrew" 1405 | #~ msgstr "Hébreu" 1406 | 1407 | #~ msgid "Herero" 1408 | #~ msgstr "Herero" 1409 | 1410 | #~ msgid "Hindi" 1411 | #~ msgstr "Hindi" 1412 | 1413 | #~ msgid "Hiri Motu" 1414 | #~ msgstr "Hiri Motu" 1415 | 1416 | #~ msgid "Croatian" 1417 | #~ msgstr "Croate" 1418 | 1419 | #~ msgid "Hungarian" 1420 | #~ msgstr "Hongrois" 1421 | 1422 | #~ msgid "Igbo" 1423 | #~ msgstr "Igbo" 1424 | 1425 | #~ msgid "Icelandic" 1426 | #~ msgstr "Islandais" 1427 | 1428 | #~ msgid "Ido" 1429 | #~ msgstr "Ido" 1430 | 1431 | #~ msgid "Sichuan Yi; Nuosu" 1432 | #~ msgstr "Sichuan Yi; Nuosu" 1433 | 1434 | #~ msgid "Inuktitut" 1435 | #~ msgstr "L'inuktitut" 1436 | 1437 | #~ msgid "Interlingue; Occidental" 1438 | #~ msgstr "Interlingue; Occidental" 1439 | 1440 | #~ msgid "Interlingua (International Auxiliary Language Association)" 1441 | #~ msgstr "Interlingua (International Auxiliary Language Association)" 1442 | 1443 | #~ msgid "Indonesian" 1444 | #~ msgstr "Indonésien" 1445 | 1446 | #~ msgid "Inupiaq" 1447 | #~ msgstr "Inupiaq" 1448 | 1449 | #~ msgid "Italian" 1450 | #~ msgstr "Italien" 1451 | 1452 | #~ msgid "Javanese" 1453 | #~ msgstr "Javanais" 1454 | 1455 | #~ msgid "Japanese" 1456 | #~ msgstr "Japonais" 1457 | 1458 | #~ msgid "Kalaallisut; Greenlandic" 1459 | #~ msgstr "Kalaallisut; groenlandais" 1460 | 1461 | #~ msgid "Kannada" 1462 | #~ msgstr "Kannada" 1463 | 1464 | #~ msgid "Kashmiri" 1465 | #~ msgstr "Cachemire" 1466 | 1467 | #~ msgid "Kanuri" 1468 | #~ msgstr "Kanuri" 1469 | 1470 | #~ msgid "Kazakh" 1471 | #~ msgstr "Kazakh" 1472 | 1473 | #~ msgid "Central Khmer" 1474 | #~ msgstr "Central Khmer" 1475 | 1476 | #~ msgid "Kikuyu; Gikuyu" 1477 | #~ msgstr "Kikuyu; Gikuyu" 1478 | 1479 | #~ msgid "Kinyarwanda" 1480 | #~ msgstr "Kinyarwanda" 1481 | 1482 | #~ msgid "Kirghiz; Kyrgyz" 1483 | #~ msgstr "Kirghiz; kirghize" 1484 | 1485 | #~ msgid "Komi" 1486 | #~ msgstr "Komi" 1487 | 1488 | #~ msgid "Kongo" 1489 | #~ msgstr "Kongo" 1490 | 1491 | #~ msgid "Korean" 1492 | #~ msgstr "Coréen" 1493 | 1494 | #~ msgid "Kuanyama; Kwanyama" 1495 | #~ msgstr "Kuanyama; Kwanyama" 1496 | 1497 | #~ msgid "Kurdish" 1498 | #~ msgstr "Kurde" 1499 | 1500 | #~ msgid "Lao" 1501 | #~ msgstr "Lao" 1502 | 1503 | #~ msgid "Latin" 1504 | #~ msgstr "Latin" 1505 | 1506 | #~ msgid "Latvian" 1507 | #~ msgstr "Letton" 1508 | 1509 | #~ msgid "Limburgan; Limburger; Limburgish" 1510 | #~ msgstr "Limburgan; Limburger; limbourgeois" 1511 | 1512 | #~ msgid "Lingala" 1513 | #~ msgstr "Lingala" 1514 | 1515 | #~ msgid "Lithuanian" 1516 | #~ msgstr "Lituanien" 1517 | 1518 | #~ msgid "Luxembourgish; Letzeburgesch" 1519 | #~ msgstr "Luxembourgeoise; luxembourgeois" 1520 | 1521 | #~ msgid "Luba-Katanga" 1522 | #~ msgstr "Luba-Katanga" 1523 | 1524 | #~ msgid "Ganda" 1525 | #~ msgstr "Ganda" 1526 | 1527 | #~ msgid "Macedonian" 1528 | #~ msgstr "Macédonienne" 1529 | 1530 | #~ msgid "Marshallese" 1531 | #~ msgstr "Marshall" 1532 | 1533 | #~ msgid "Malayalam" 1534 | #~ msgstr "Malayalam" 1535 | 1536 | #~ msgid "Maori" 1537 | #~ msgstr "Maori" 1538 | 1539 | #~ msgid "Marathi" 1540 | #~ msgstr "Marathi" 1541 | 1542 | #~ msgid "Malay" 1543 | #~ msgstr "Malais" 1544 | 1545 | #~ msgid "Malagasy" 1546 | #~ msgstr "Malgache" 1547 | 1548 | #~ msgid "Maltese" 1549 | #~ msgstr "Maltais" 1550 | 1551 | #~ msgid "Mongolian" 1552 | #~ msgstr "Mongol" 1553 | 1554 | #~ msgid "Nauru" 1555 | #~ msgstr "Nauru" 1556 | 1557 | #~ msgid "Navajo; Navaho" 1558 | #~ msgstr "Navajo; Navaho" 1559 | 1560 | #~ msgid "Ndebele, South; South Ndebele" 1561 | #~ msgstr "Ndebele du Sud; South Ndebele" 1562 | 1563 | #~ msgid "Ndebele, North; North Ndebele" 1564 | #~ msgstr "Ndebele du Nord; Ndebele du Nord" 1565 | 1566 | #~ msgid "Ndonga" 1567 | #~ msgstr "Ndonga" 1568 | 1569 | #~ msgid "Nepali" 1570 | #~ msgstr "Népalais" 1571 | 1572 | #~ msgid "Norwegian Nynorsk; Nynorsk, Norwegian" 1573 | #~ msgstr "Norvégien nynorsk; nynorsk, norvégien" 1574 | 1575 | #~ msgid "Bokmal, Norwegian; Norwegian Bokmal" 1576 | #~ msgstr "Bokmal, norvégien, norvégien bokmål" 1577 | 1578 | #~ msgid "Norwegian" 1579 | #~ msgstr "Norvégien" 1580 | 1581 | #~ msgid "Chichewa; Chewa; Nyanja" 1582 | #~ msgstr "Chichewa; Chewa; Nyanja" 1583 | 1584 | #~ msgid "Occitan (post 1500)" 1585 | #~ msgstr "Occitan (post 1500)" 1586 | 1587 | #~ msgid "Ojibwa" 1588 | #~ msgstr "Ojibwa" 1589 | 1590 | #~ msgid "Oriya" 1591 | #~ msgstr "Oriya" 1592 | 1593 | #~ msgid "Oromo" 1594 | #~ msgstr "Oromo" 1595 | 1596 | #~ msgid "Ossetian; Ossetic" 1597 | #~ msgstr "Ossète; ossète" 1598 | 1599 | #~ msgid "Panjabi; Punjabi" 1600 | #~ msgstr "Panjabi; Punjabi" 1601 | 1602 | #~ msgid "Pali" 1603 | #~ msgstr "Pali" 1604 | 1605 | #~ msgid "Polish" 1606 | #~ msgstr "Polonais" 1607 | 1608 | #~ msgid "Pushto; Pashto" 1609 | #~ msgstr "Pachto; Pashto" 1610 | 1611 | #~ msgid "Quechua" 1612 | #~ msgstr "Quechua" 1613 | 1614 | #~ msgid "Romansh" 1615 | #~ msgstr "Romanche" 1616 | 1617 | #~ msgid "Romanian; Moldavian; Moldovan" 1618 | #~ msgstr "Roumain; moldave; moldave" 1619 | 1620 | #~ msgid "Rundi" 1621 | #~ msgstr "Rundi" 1622 | 1623 | #~ msgid "Sango" 1624 | #~ msgstr "Sango" 1625 | 1626 | #~ msgid "Sanskrit" 1627 | #~ msgstr "Sanskrit" 1628 | 1629 | #~ msgid "Sinhala; Sinhalese" 1630 | #~ msgstr "Cinghalais; Cinghalais" 1631 | 1632 | #~ msgid "Slovak" 1633 | #~ msgstr "Slovaque" 1634 | 1635 | #~ msgid "Slovenian" 1636 | #~ msgstr "Slovène" 1637 | 1638 | #~ msgid "Northern Sami" 1639 | #~ msgstr "Sami du Nord" 1640 | 1641 | #~ msgid "Samoan" 1642 | #~ msgstr "Samoa" 1643 | 1644 | #~ msgid "Shona" 1645 | #~ msgstr "Shona" 1646 | 1647 | #~ msgid "Sindhi" 1648 | #~ msgstr "Sindhi" 1649 | 1650 | #~ msgid "Somali" 1651 | #~ msgstr "Somali" 1652 | 1653 | #~ msgid "Sotho, Southern" 1654 | #~ msgstr "Sotho du Sud" 1655 | 1656 | #~ msgid "Spanish; Castilian" 1657 | #~ msgstr "Espagnol; castillan" 1658 | 1659 | #~ msgid "Sardinian" 1660 | #~ msgstr "Sardaigne" 1661 | 1662 | #~ msgid "Serbian" 1663 | #~ msgstr "Serbe" 1664 | 1665 | #~ msgid "Swati" 1666 | #~ msgstr "Swati" 1667 | 1668 | #~ msgid "Sundanese" 1669 | #~ msgstr "Sundanais" 1670 | 1671 | #~ msgid "Swahili" 1672 | #~ msgstr "Swahili" 1673 | 1674 | #~ msgid "Swedish" 1675 | #~ msgstr "Suédois" 1676 | 1677 | #~ msgid "Tahitian" 1678 | #~ msgstr "Tahiti" 1679 | 1680 | #~ msgid "Tamil" 1681 | #~ msgstr "Tamil" 1682 | 1683 | #~ msgid "Tatar" 1684 | #~ msgstr "Tatar" 1685 | 1686 | #~ msgid "Telugu" 1687 | #~ msgstr "Telugu" 1688 | 1689 | #~ msgid "Tajik" 1690 | #~ msgstr "Tadjik" 1691 | 1692 | #~ msgid "Tagalog" 1693 | #~ msgstr "Tagalog" 1694 | 1695 | #~ msgid "Thai" 1696 | #~ msgstr "Thaï" 1697 | 1698 | #~ msgid "Tigrinya" 1699 | #~ msgstr "Tigrinya" 1700 | 1701 | #~ msgid "Tonga (Tonga Islands)" 1702 | #~ msgstr "Tonga (Tonga)" 1703 | 1704 | #~ msgid "Tswana" 1705 | #~ msgstr "Tswana" 1706 | 1707 | #~ msgid "Tsonga" 1708 | #~ msgstr "Tsonga" 1709 | 1710 | #~ msgid "Turkmen" 1711 | #~ msgstr "Turkmène" 1712 | 1713 | #~ msgid "Turkish" 1714 | #~ msgstr "Turc" 1715 | 1716 | #~ msgid "Twi" 1717 | #~ msgstr "Twi" 1718 | 1719 | #~ msgid "Uighur; Uyghur" 1720 | #~ msgstr "Ouïghoure; Uyghur" 1721 | 1722 | #~ msgid "Ukrainian" 1723 | #~ msgstr "Ukrainien" 1724 | 1725 | #~ msgid "Urdu" 1726 | #~ msgstr "Ourdou" 1727 | 1728 | #~ msgid "Uzbek" 1729 | #~ msgstr "Ouzbek" 1730 | 1731 | #~ msgid "Venda" 1732 | #~ msgstr "Venda" 1733 | 1734 | #~ msgid "Vietnamese" 1735 | #~ msgstr "Vietnamien" 1736 | 1737 | #~ msgid "Volapuk" 1738 | #~ msgstr "Volapuk" 1739 | 1740 | #~ msgid "Walloon" 1741 | #~ msgstr "Wallonne" 1742 | 1743 | #~ msgid "Wolof" 1744 | #~ msgstr "Wolof" 1745 | 1746 | #~ msgid "Xhosa" 1747 | #~ msgstr "Xhosa" 1748 | 1749 | #~ msgid "Yiddish" 1750 | #~ msgstr "Yiddish" 1751 | 1752 | #~ msgid "Yoruba" 1753 | #~ msgstr "Yoruba" 1754 | 1755 | #~ msgid "Zhuang; Chuang" 1756 | #~ msgstr "Zhuang, Chuang" 1757 | 1758 | #~ msgid "Zulu" 1759 | #~ msgstr "Zoulou" 1760 | 1761 | #~ msgid "Stores language codes" 1762 | #~ msgstr "Codes de langue Magasins" 1763 | 1764 | #~ msgid "Email address" 1765 | #~ msgstr "Email" 1766 | 1767 | #~ msgid "Average Length of Call" 1768 | #~ msgstr "Durée moyenne des appels" 1769 | 1770 | #~ msgid "Answer Seize Ratio" 1771 | #~ msgstr "Réponse Seize Ratio" 1772 | 1773 | #~ msgid "Blacklist Prefix" 1774 | #~ msgstr "Blacklist Préfixe" 1775 | 1776 | #~ msgid "Whitelist Prefix" 1777 | #~ msgstr "Préfixe liste blanche" 1778 | 1779 | #~ msgid "Address" 1780 | #~ msgstr "Adresse" 1781 | 1782 | #~ msgid "City" 1783 | #~ msgstr "Ville" 1784 | 1785 | #~ msgid "State" 1786 | #~ msgstr "Etat" 1787 | 1788 | #~ msgid "Zip code" 1789 | #~ msgstr "Code postal" 1790 | 1791 | #~ msgid "Phone number" 1792 | #~ msgstr "Numéro de téléphone" 1793 | 1794 | #~ msgid "Fax Number" 1795 | #~ msgstr "Numéro de FAX" 1796 | 1797 | #~ msgid "Company name" 1798 | #~ msgstr "Nom de l'entreprise" 1799 | 1800 | #~ msgid "Company website" 1801 | #~ msgstr "Site web de l'entreprise" 1802 | 1803 | #~ msgid "Language" 1804 | #~ msgstr "Langue" 1805 | 1806 | #~ msgid "Note" 1807 | #~ msgstr "Note" 1808 | 1809 | #~ msgid "Report mail list" 1810 | #~ msgstr "Signaler liste de diffusion" 1811 | 1812 | #~ msgid "Enter a valid e-mail address separated by commas." 1813 | #~ msgstr "Entrez une adresse e-mail séparées par des virgules." 1814 | 1815 | #, fuzzy 1816 | #~ msgid "Can view API-Explorer" 1817 | #~ msgstr "Peut voir API-Explorer" 1818 | 1819 | #, fuzzy 1820 | #~ msgid "Can view CDR detail" 1821 | #~ msgstr "Changer les détails" 1822 | 1823 | #, fuzzy 1824 | #~ msgid "Can view CDR concurrent calls" 1825 | #~ msgstr "appels simultanés" 1826 | 1827 | #, fuzzy 1828 | #~ msgid "Can view CDR mail report" 1829 | #~ msgstr "Aperçu de la communication par courrier électronique" 1830 | 1831 | #, fuzzy 1832 | #~ msgid "Can view CDR country report" 1833 | #~ msgstr "Rapport par pays" 1834 | 1835 | #~ msgid "User Profile" 1836 | #~ msgstr "Profil utilisateur" 1837 | 1838 | #~ msgid "Customer" 1839 | #~ msgstr "Client" 1840 | 1841 | #~ msgid "Customers" 1842 | #~ msgstr "Clients" 1843 | 1844 | #~ msgid "Admin" 1845 | #~ msgstr "Admin" 1846 | 1847 | #~ msgid "Admins" 1848 | #~ msgstr "Admins" 1849 | 1850 | #~ msgid "Detail has been changed." 1851 | #~ msgstr "Détail a été modifiée." 1852 | 1853 | #~ msgid "Please correct the errors below." 1854 | #~ msgstr "S'il vous plaît corriger les erreurs ci-dessous." 1855 | 1856 | #~ msgid "Your password has been changed." 1857 | #~ msgstr "Votre mot de passe a été modifié." 1858 | -------------------------------------------------------------------------------- /frontend_notification/locale/pt/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/areski/django-frontend-notification/e054f5b46aa589d5812244533e01157db8671c6b/frontend_notification/locale/pt/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /frontend_notification/locale/pt/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # CDR-Stats - PO File 2 | # Copyright (C) 2010 - Star2Billing S.L. 3 | # This file is distributed under the same license as the CDR-Stats application. 4 | # Areski Belaid , 2010. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: CDR-Stats 1.0\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2013-02-16 15:55+0530\n" 11 | "PO-Revision-Date: 2012-05-04 13:44-0300\n" 12 | "Last-Translator: Emerson Reis \n" 13 | "Language-Team: Areski Belaid \n" 14 | "Language: \n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 19 | 20 | #: constants.py:6 21 | msgid "Message" 22 | msgstr "" 23 | 24 | #: constants.py:7 25 | msgid "Notice type" 26 | msgstr "" 27 | 28 | #: constants.py:8 29 | msgid "Sender" 30 | msgstr "" 31 | 32 | #: constants.py:9 33 | msgid "Date" 34 | msgstr "Data" 35 | 36 | #: views.py:122 37 | msgid "All notifications are marked as read." 38 | msgstr "Todas as notificações são marcadas como lidas." 39 | 40 | #: views.py:157 41 | #, python-format 42 | msgid "\"%(name)s\" is deleted." 43 | msgstr "\"%(name)s\" é excluído." 44 | 45 | #: views.py:161 46 | #, python-format 47 | msgid "\"%(name)s\" is marked as read." 48 | msgstr "\"%(name)s\" está marcada como lida." 49 | 50 | #: views.py:175 51 | #, python-format 52 | msgid "%(count)s notification(s) are deleted." 53 | msgstr "%(count)s de notificação (s) são excluídos." 54 | 55 | #: views.py:180 56 | #, fuzzy, python-format 57 | msgid "%(count)s notification(s) are marked as read." 58 | msgstr "Todas as notificações são marcadas como lidas." 59 | 60 | #: templates/frontend/frontend_notification/user_notification.html:21 61 | msgid "You must check at least one box!" 62 | msgstr "Você deve verificar pelo menos uma caixa!" 63 | 64 | #: templates/frontend/frontend_notification/user_notification.html:29 65 | msgid " notification(s) are going to be deleted?" 66 | msgstr "notificação (s) vão ser excluídos?" 67 | 68 | #: templates/frontend/frontend_notification/user_notification.html:32 69 | msgid " notification(s) are going to be marked as read?" 70 | msgstr "notificação (s) vai ser marcada como lida?" 71 | 72 | #: templates/frontend/frontend_notification/user_notification.html:51 73 | msgid "Notifications" 74 | msgstr "Notificações" 75 | 76 | #: templates/frontend/frontend_notification/user_notification.html:57 77 | msgid "Alert" 78 | msgstr "Alerta" 79 | 80 | #: templates/frontend/frontend_notification/user_notification.html:63 81 | #: templates/frontend/frontend_notification/user_notification.html:89 82 | msgid "Action" 83 | msgstr "Ação" 84 | 85 | #: templates/frontend/frontend_notification/user_notification.html:68 86 | msgid "Mark as read" 87 | msgstr "Marcar como lido" 88 | 89 | #: templates/frontend/frontend_notification/user_notification.html:69 90 | msgid "Delete notifications" 91 | msgstr "Excluir notificações" 92 | 93 | #: templates/frontend/frontend_notification/user_notification.html:72 94 | msgid "Mark all as read" 95 | msgstr "Marcar tudo como lido" 96 | 97 | #: templates/frontend/frontend_notification/user_notification.html:111 98 | msgid "no records found" 99 | msgstr "Não encontramos nenhuma" 100 | 101 | #: templatetags/frontend_notification_tags.py:24 102 | msgid "New" 103 | msgstr "Noticia" 104 | 105 | #: templatetags/frontend_notification_tags.py:26 106 | msgid "Read" 107 | msgstr "Ler" 108 | 109 | #~ msgid "English" 110 | #~ msgstr "Inglês" 111 | 112 | #~ msgid "French" 113 | #~ msgstr "Francês" 114 | 115 | #~ msgid "Spanish" 116 | #~ msgstr "Espanhol" 117 | 118 | #~ msgid "Portuguese" 119 | #~ msgstr "Português" 120 | 121 | #~ msgid "German" 122 | #~ msgstr "Alemão" 123 | 124 | #~ msgid "Russian" 125 | #~ msgstr "Russo" 126 | 127 | #~ msgid "CDR already exists !!" 128 | #~ msgstr "CDR já existe!" 129 | 130 | #~ msgid "" 131 | #~ "%(cdr_record_count)s Cdr(s) are uploaded, out of %(total_rows)s row(s) !!" 132 | #~ msgstr "" 133 | #~ "%(cdr_record_count)s CDR (s) foi(ram) carregado(s), fora de " 134 | #~ "%(total_rows)s linha(s)!" 135 | 136 | #, fuzzy 137 | #~ msgid "Error : invalid value for import" 138 | #~ msgstr "" 139 | #~ "Erro: valor inválido para importação! Confira exemplo de importação." 140 | 141 | #~ msgid "Import CDR" 142 | #~ msgstr "Importar CDR" 143 | 144 | #~ msgid "Equals" 145 | #~ msgstr "Igual a" 146 | 147 | #, fuzzy 148 | #~ msgid "Begins" 149 | #~ msgstr "Começa com" 150 | 151 | #~ msgid "Contains" 152 | #~ msgstr "Contém" 153 | 154 | #, fuzzy 155 | #~ msgid "Ends" 156 | #~ msgstr "Termina com" 157 | 158 | #~ msgid "Call-date" 159 | #~ msgstr "Data da Ligação" 160 | 161 | #~ msgid "CLID" 162 | #~ msgstr "CLID" 163 | 164 | #~ msgid "Destination" 165 | #~ msgstr "Destino" 166 | 167 | #~ msgid "Duration" 168 | #~ msgstr "Duração" 169 | 170 | #~ msgid "Bill" 171 | #~ msgstr "Projeto de lei" 172 | 173 | #~ msgid "Hangup cause" 174 | #~ msgstr "Motivo do desligamento" 175 | 176 | #~ msgid "Account" 177 | #~ msgstr "Conta" 178 | 179 | #~ msgid "All Switches" 180 | #~ msgstr "Todos os Switches" 181 | 182 | #~ msgid "All" 183 | #~ msgstr "Todos" 184 | 185 | #~ msgid "Caller ID" 186 | #~ msgstr "Caller ID" 187 | 188 | #~ msgid "Account Code" 189 | #~ msgstr "Código de conta" 190 | 191 | #, fuzzy 192 | #~ msgid "Duration (Secs)" 193 | #~ msgstr "Duração" 194 | 195 | #~ msgid "Switch" 196 | #~ msgstr "Servidor" 197 | 198 | #~ msgid "Country" 199 | #~ msgstr "País" 200 | 201 | #~ msgid "From" 202 | #~ msgstr "De" 203 | 204 | #~ msgid "To" 205 | #~ msgstr "Para" 206 | 207 | #~ msgid "Direction" 208 | #~ msgstr "Direção" 209 | 210 | #~ msgid "Inbound" 211 | #~ msgstr "Entrada" 212 | 213 | #~ msgid "Outbound" 214 | #~ msgstr "Saída" 215 | 216 | #~ msgid "Result" 217 | #~ msgstr "Resultado" 218 | 219 | #~ msgid "Minutes" 220 | #~ msgstr "Minutos" 221 | 222 | #~ msgid "Seconds" 223 | #~ msgstr "Segundos" 224 | 225 | #~ msgid "CDR per page" 226 | #~ msgstr "CDR por página" 227 | 228 | #~ msgid "Select date" 229 | #~ msgstr "Selecione a data" 230 | 231 | #~ msgid "Graph" 232 | #~ msgstr "Gráfico" 233 | 234 | #~ msgid "Calls per Hour" 235 | #~ msgstr "Ligações por hora" 236 | 237 | #~ msgid "Minutes per Hour" 238 | #~ msgstr "Minutos por hora" 239 | 240 | #~ msgid "Check with" 241 | #~ msgstr "Verifique com" 242 | 243 | #~ msgid "Previous days" 244 | #~ msgstr "Dias anteriores" 245 | 246 | #~ msgid "Same day of the week" 247 | #~ msgstr "Mesmo dia da semana" 248 | 249 | #, fuzzy 250 | #~ msgid "Email to send the report" 251 | #~ msgstr "Enviar e-mail para enviar alarme" 252 | 253 | #~ msgid "Upload CSV File " 254 | #~ msgstr "Enviar arquivo CSV" 255 | 256 | #~ msgid "Browse CSV file" 257 | #~ msgstr "Procurar arquivo CSV" 258 | 259 | #~ msgid "Document types accepted: %s" 260 | #~ msgstr "Tipos de documentos aceitos: %s" 261 | 262 | #~ msgid "Select switch" 263 | #~ msgstr "Selecionar switch" 264 | 265 | #~ msgid "Account code" 266 | #~ msgstr "Código da conta" 267 | 268 | #, fuzzy 269 | #~ msgid "caller_id_name" 270 | #~ msgstr "data da ligação" 271 | 272 | #, fuzzy 273 | #~ msgid "destination_number" 274 | #~ msgstr "Canal de destino" 275 | 276 | #, fuzzy 277 | #~ msgid "duration" 278 | #~ msgstr "Duração" 279 | 280 | #, fuzzy 281 | #~ msgid "hangup_cause_id" 282 | #~ msgstr "Hangupcause" 283 | 284 | #, fuzzy 285 | #~ msgid "direction" 286 | #~ msgstr "Direção" 287 | 288 | #, fuzzy 289 | #~ msgid "mduration" 290 | #~ msgstr "Duração" 291 | 292 | #, fuzzy 293 | #~ msgid "accountcode" 294 | #~ msgstr "Código de conta" 295 | 296 | #, fuzzy 297 | #~ msgid "Internal Calls" 298 | #~ msgstr "Total Chamadas" 299 | 300 | #~ msgid "ANSWER" 301 | #~ msgstr "ATENDIDA" 302 | 303 | #~ msgid "BUSY" 304 | #~ msgstr "OCUPADA" 305 | 306 | #~ msgid "NOANSWER" 307 | #~ msgstr "NÃO ATENDIDA" 308 | 309 | #~ msgid "CANCEL" 310 | #~ msgstr "CANCELADA" 311 | 312 | #~ msgid "CONGESTION" 313 | #~ msgstr "CONGESTIONADA" 314 | 315 | #~ msgid "CHANUNAVAIL" 316 | #~ msgstr "CANAL NÃO DISPONÍVEL" 317 | 318 | #~ msgid "DONTCALL" 319 | #~ msgstr "NÃO LIGA" 320 | 321 | #~ msgid "TORTURE" 322 | #~ msgstr "TORTURA" 323 | 324 | #~ msgid "INVALIDARGS" 325 | #~ msgstr "ARGUMENTOS INVÁLIDOS" 326 | 327 | #, fuzzy 328 | #~ msgid "Asterisk" 329 | #~ msgstr "Asterisk_CDR" 330 | 331 | #~ msgid "Switches" 332 | #~ msgstr "Switches" 333 | 334 | #~ msgid "Code" 335 | #~ msgstr "Código" 336 | 337 | #~ msgid "ITU-T Q.850 Code" 338 | #~ msgstr "ITU-T Q.850 Código" 339 | 340 | #~ msgid "Enumeration" 341 | #~ msgstr "Enumeração" 342 | 343 | #~ msgid "Cause" 344 | #~ msgstr "Causa" 345 | 346 | #~ msgid "Description" 347 | #~ msgstr "Descrição" 348 | 349 | #~ msgid "Hangupcause" 350 | #~ msgstr "Hangupcause" 351 | 352 | #~ msgid "Hangupcauses" 353 | #~ msgstr "Hangupcauses" 354 | 355 | #~ msgid "Mongodb Database connection is closed!" 356 | #~ msgstr "A conexão com o banco de dados Mongodb foi fechada!" 357 | 358 | #~ msgid "Mongodb Database is locked!" 359 | #~ msgstr "Banco de dados MongoDB esta bloqueado!" 360 | 361 | #~ msgid "Account code is not assigned!" 362 | #~ msgstr "Código de conta não esta atribuído!" 363 | 364 | #~ msgid "Email ids are saved successfully." 365 | #~ msgstr "Ids e-mail foram salvos com sucesso." 366 | 367 | #~ msgid "Successfully added prefix into blacklist" 368 | #~ msgstr "Prefixo adicionado com sucesso na lista negra" 369 | 370 | #~ msgid "Blacklist by country" 371 | #~ msgstr "Lista negra por país" 372 | 373 | #~ msgid "cdr_alert" 374 | #~ msgstr "cdr_alert" 375 | 376 | #~ msgid "Successfully added prefix into whitelist" 377 | #~ msgstr "Prefixo adicionado com sucesso na lista branca" 378 | 379 | #~ msgid "Whitelist by country" 380 | #~ msgstr "LIsta branca por país" 381 | 382 | #~ msgid "Day" 383 | #~ msgstr "dia" 384 | 385 | #~ msgid "Week" 386 | #~ msgstr "Semana" 387 | 388 | #~ msgid "Month" 389 | #~ msgstr "Mês" 390 | 391 | #~ msgid "Active" 392 | #~ msgstr "Ativo" 393 | 394 | #~ msgid "Inactive" 395 | #~ msgstr "Inativo" 396 | 397 | #~ msgid "ALOC (Average Length of Call)" 398 | #~ msgstr "Aloc (Duração médioa da chamada)" 399 | 400 | #~ msgid "ASR (Answer Seize Ratio)" 401 | #~ msgstr "ASR (Media de ligações atendidas)" 402 | 403 | #~ msgid "Is less than" 404 | #~ msgstr "É menor do que" 405 | 406 | #~ msgid "Is greater than" 407 | #~ msgstr "É maior do que" 408 | 409 | #~ msgid "Decrease by more than" 410 | #~ msgstr "Diminuir mais do que" 411 | 412 | #~ msgid "Increase by more than" 413 | #~ msgstr "Aumentar em mais de" 414 | 415 | #, fuzzy 416 | #~ msgid "Percentage decrease by more than" 417 | #~ msgstr "% diminuir mais do que" 418 | 419 | #, fuzzy 420 | #~ msgid "Percentage increase by more than" 421 | #~ msgstr "% aumentar mais do que" 422 | 423 | #~ msgid "Same day" 424 | #~ msgstr "Mesmo dia" 425 | 426 | #~ msgid "Same day in the previous week" 427 | #~ msgstr "Mesmo dia na semana anterior" 428 | 429 | #~ msgid "No alarm sent" 430 | #~ msgstr "Sem alarme enviado" 431 | 432 | #~ msgid "Alarm Sent" 433 | #~ msgstr "Alarme enviado" 434 | 435 | #~ msgid "Label" 436 | #~ msgstr "legenda" 437 | 438 | #~ msgid "Prefix" 439 | #~ msgstr "Prefixo" 440 | 441 | #~ msgid "Alert Remove Prefix" 442 | #~ msgstr "Alertar Remover Prefixo" 443 | 444 | #~ msgid "Alert Remove Prefixes" 445 | #~ msgstr "Alertar remover prefixos" 446 | 447 | #~ msgid "Name" 448 | #~ msgstr "Nome" 449 | 450 | #~ msgid "Period" 451 | #~ msgstr "Período" 452 | 453 | #~ msgid "Interval to apply alarm" 454 | #~ msgstr "Intervalo para aplicar alarme" 455 | 456 | #~ msgid "Type" 457 | #~ msgstr "Tipo" 458 | 459 | #~ msgid "" 460 | #~ "ALOC (average length of call) ; ASR (answer seize ratio) ; CIC " 461 | #~ "(Consecutive Incomplete Calls) " 462 | #~ msgstr "" 463 | #~ "Aloc (duração média de chamada); ASR (resposta aproveitar ratio); CIC " 464 | #~ "(consecutivos Convida incompletos)" 465 | 466 | #~ msgid "Condition" 467 | #~ msgstr "Condição" 468 | 469 | #~ msgid "Value" 470 | #~ msgstr "Valor" 471 | 472 | #~ msgid "Input the value for the alert" 473 | #~ msgstr "O valor de entrada para o alerta do" 474 | 475 | #~ msgid "Status" 476 | #~ msgstr "Estado" 477 | 478 | #~ msgid "Email to send alarm" 479 | #~ msgstr "Enviar e-mail para enviar alarme" 480 | 481 | #~ msgid "Alarm" 482 | #~ msgstr "Alarme" 483 | 484 | #~ msgid "Alarms" 485 | #~ msgstr "Alarmes" 486 | 487 | #~ msgid "Select Alarm" 488 | #~ msgstr "Selecionar alarme" 489 | 490 | #~ msgid "Calculated value" 491 | #~ msgstr "Valor calculado" 492 | 493 | #~ msgid "Alarm Report" 494 | #~ msgstr "Relatório do alarme" 495 | 496 | #~ msgid "Alarms Report" 497 | #~ msgstr "Relatórios dos alarmes" 498 | 499 | #~ msgid "Select Country" 500 | #~ msgstr "Selecionar país" 501 | 502 | #~ msgid "Blacklist" 503 | #~ msgstr "Lista negra" 504 | 505 | #~ msgid "Whitelist" 506 | #~ msgstr "Whitelist" 507 | 508 | #~ msgid "Alert Message \"%(user)s\" - \"%(user_id)s\"" 509 | #~ msgstr "Alerta de Mensagem \"%(user)s\" - \"%(user_id)s\"" 510 | 511 | #~ msgid "CDR Report" 512 | #~ msgstr "Relatório do CDR" 513 | 514 | #~ msgid "Task Manager" 515 | #~ msgstr "Gerenciador de Tarefas" 516 | 517 | #~ msgid "Dashboard Stats" 518 | #~ msgstr "Estatísticas do Dashboard" 519 | 520 | #~ msgid "Recent Actions" 521 | #~ msgstr "Ações recentes" 522 | 523 | #~ msgid "CDR Voip" 524 | #~ msgstr "CDR Voip" 525 | 526 | #~ msgid "Country Dialcode" 527 | #~ msgstr "Dialcode País" 528 | 529 | #~ msgid "Quick links" 530 | #~ msgstr "Links rápidos" 531 | 532 | #~ msgid "Go to CDR-Stats.org" 533 | #~ msgstr "Ir para CDR-Stats.org" 534 | 535 | #~ msgid "Change password" 536 | #~ msgstr "Alterar senha" 537 | 538 | #~ msgid "Log out" 539 | #~ msgstr "Sair" 540 | 541 | #~ msgid "Latest CDR-Stats News" 542 | #~ msgstr "Últimas Notícias CDR-Stats" 543 | 544 | #~ msgid "CDR-Stats" 545 | #~ msgstr "CDR-Stats" 546 | 547 | #~ msgid "Applications" 548 | #~ msgstr "Aplicações" 549 | 550 | #~ msgid "Administration" 551 | #~ msgstr "Administração" 552 | 553 | #~ msgid "Customer Panel" 554 | #~ msgstr "Painel do Cliente" 555 | 556 | #, fuzzy 557 | #~ msgid "Password:" 558 | #~ msgstr "senha" 559 | 560 | #~ msgid "Disabled Account" 561 | #~ msgstr "Conta desativada" 562 | 563 | #~ msgid "Invalid Login." 564 | #~ msgstr "Usuário inválido." 565 | 566 | #~ msgid "CDR-Stats : API Documentation" 567 | #~ msgstr "CDR-Stats: Documentação da API" 568 | 569 | #~ msgid "Accepted methods" 570 | #~ msgstr "Métodos aceitos" 571 | 572 | #~ msgid "CDR-Stats Admin" 573 | #~ msgstr "CDR-Stat Administração" 574 | 575 | #~ msgid " By %(filter_title)s " 576 | #~ msgstr "Por %(filter_title)s " 577 | 578 | #~ msgid "Home" 579 | #~ msgstr "Home" 580 | 581 | #~ msgid "Sample File" 582 | #~ msgstr "Arquivo de Amostra" 583 | 584 | #~ msgid "Submit" 585 | #~ msgstr "Submeter" 586 | 587 | #~ msgid "Reset" 588 | #~ msgstr "Redefinir" 589 | 590 | #~ msgid "Contact(s) imported" 591 | #~ msgstr "contato(s) importado(s)" 592 | 593 | #~ msgid "Contact(s) not imported" 594 | #~ msgstr "Contato (s) não importados" 595 | 596 | #~ msgid "Type mismatch" 597 | #~ msgstr "Incompatibilidade de tipo" 598 | 599 | #~ msgid "Select country" 600 | #~ msgstr "Selecione o país" 601 | 602 | #~ msgid "Select all prefixes" 603 | #~ msgstr "Selecione o prefixo" 604 | 605 | #~ msgid "Blacklist the selected prefixes" 606 | #~ msgstr "Lista negra dos prefixos selecionados" 607 | 608 | #~ msgid "Blacklist the selected country" 609 | #~ msgstr "Lista negra do país selecionado" 610 | 611 | #~ msgid "Add %(name)s" 612 | #~ msgstr "Adicionar %(name)s" 613 | 614 | #, fuzzy 615 | #~ msgid "Please correct the error below." 616 | #~ msgid_plural "Please correct the errors below." 617 | #~ msgstr[0] "Por favor, corrija o erro abaixo." 618 | #~ msgstr[1] "Por favor, corrija o erro abaixo." 619 | 620 | #~ msgid "CDR Alert" 621 | #~ msgstr "Alerta de CDR" 622 | 623 | #~ msgid "Add" 624 | #~ msgstr "Adicionar" 625 | 626 | #~ msgid "Change" 627 | #~ msgstr "Canal" 628 | 629 | #~ msgid "Dashboard" 630 | #~ msgstr "Dashboard" 631 | 632 | #~ msgid "Search" 633 | #~ msgstr "Pesquisar" 634 | 635 | #~ msgid "Analytics" 636 | #~ msgstr "Analizar CDR" 637 | 638 | #~ msgid "Compare" 639 | #~ msgstr "Comparar" 640 | 641 | #~ msgid "Realtime" 642 | #~ msgstr "Em tempo real" 643 | 644 | #~ msgid "Concurrent" 645 | #~ msgstr "Concorrente" 646 | 647 | #~ msgid "Report" 648 | #~ msgstr "Relatório" 649 | 650 | #~ msgid "Country Report" 651 | #~ msgstr "Relatório do País" 652 | 653 | #, fuzzy 654 | #~ msgid "World Map Report" 655 | #~ msgstr "Relatório email" 656 | 657 | #~ msgid "Mail Report" 658 | #~ msgstr "Relatório email" 659 | 660 | #~ msgid "Account settings" 661 | #~ msgstr "Configurações da Conta" 662 | 663 | #~ msgid "Change Language" 664 | #~ msgstr "Alterar Idioma" 665 | 666 | #~ msgid "advanced search" 667 | #~ msgstr "pesquisa avançada" 668 | 669 | #~ msgid "secs" 670 | #~ msgstr "segs" 671 | 672 | #~ msgid "Calls" 673 | #~ msgstr "Chamadas" 674 | 675 | #, fuzzy 676 | #~ msgid "country call statistics" 677 | #~ msgstr "Estatísticas de chamadas por país" 678 | 679 | #, fuzzy 680 | #~ msgid "calls by country" 681 | #~ msgstr "Lista negra por país" 682 | 683 | #, fuzzy 684 | #~ msgid "top" 685 | #~ msgstr "para" 686 | 687 | #~ msgid "World" 688 | #~ msgstr "Mundo" 689 | 690 | #, fuzzy 691 | #~ msgid "world" 692 | #~ msgstr "Mundo" 693 | 694 | #~ msgid "Total" 695 | #~ msgstr "Total" 696 | 697 | #, fuzzy 698 | #~ msgid "Duration by Country" 699 | #~ msgstr "Duração" 700 | 701 | #, fuzzy 702 | #~ msgid "duration by country" 703 | #~ msgstr "Lista negra por país" 704 | 705 | #~ msgid "minutes" 706 | #~ msgstr "Minutos" 707 | 708 | #~ msgid "Call Statistics" 709 | #~ msgstr "Estatísticas de chamadas" 710 | 711 | #~ msgid "call totals report" 712 | #~ msgstr "Relatório total das ligações" 713 | 714 | #~ msgid "Total Calls" 715 | #~ msgstr "Total Chamadas" 716 | 717 | #~ msgid "Average Calls Per Hour" 718 | #~ msgstr "Chamadas por hora" 719 | 720 | #~ msgid "Total Duration" 721 | #~ msgstr "Duração Total" 722 | 723 | #, fuzzy 724 | #~ msgid "Average Call Duration" 725 | #~ msgstr "Tempo de duração media em minutos" 726 | 727 | #~ msgid "countries report" 728 | #~ msgstr "relatório de países" 729 | 730 | #~ msgid "5 most called countries" 731 | #~ msgstr "Os 5 países mais chamados" 732 | 733 | #~ msgid "No record found" 734 | #~ msgstr "Nenhum registro encontrado" 735 | 736 | #~ msgid "channel_data" 737 | #~ msgstr "Canal_dados" 738 | 739 | #~ msgid "callflow" 740 | #~ msgstr "callflow" 741 | 742 | #~ msgid "app_log" 743 | #~ msgstr "app_log" 744 | 745 | #~ msgid "variables" 746 | #~ msgstr "variáveis" 747 | 748 | #~ msgid "concurrent calls" 749 | #~ msgstr "chamadas simultâneas" 750 | 751 | #~ msgid "Concurrent Calls" 752 | #~ msgstr "Chamadas simultâneas" 753 | 754 | #~ msgid "CDR Mail Report" 755 | #~ msgstr "Relatório do CDR por email" 756 | 757 | #~ msgid "Save" 758 | #~ msgstr "Salvar" 759 | 760 | #~ msgid "Preview of the mail report" 761 | #~ msgstr "Pré-visualização do relatório e-mail" 762 | 763 | #~ msgid "Jan" 764 | #~ msgstr "Jan" 765 | 766 | #~ msgid "Feb" 767 | #~ msgstr "Fevereiro" 768 | 769 | #~ msgid "Mar" 770 | #~ msgstr "Estragar" 771 | 772 | #~ msgid "Apr" 773 | #~ msgstr "Abril" 774 | 775 | #~ msgid "May" 776 | #~ msgstr "Maio" 777 | 778 | #~ msgid "Jun" 779 | #~ msgstr "Junho" 780 | 781 | #~ msgid "Jul" 782 | #~ msgstr "Julho" 783 | 784 | #~ msgid "Aug" 785 | #~ msgstr "Agosto" 786 | 787 | #~ msgid "Sep" 788 | #~ msgstr "Setembro" 789 | 790 | #~ msgid "Oct" 791 | #~ msgstr "Outubro" 792 | 793 | #~ msgid "Nov" 794 | #~ msgstr "Novembro" 795 | 796 | #~ msgid "Dec" 797 | #~ msgstr "Dezembro" 798 | 799 | #~ msgid "January" 800 | #~ msgstr "Janeiro" 801 | 802 | #~ msgid "February" 803 | #~ msgstr "Fevereiro" 804 | 805 | #~ msgid "March" 806 | #~ msgstr "Março" 807 | 808 | #~ msgid "April" 809 | #~ msgstr "Abril" 810 | 811 | #~ msgid "June" 812 | #~ msgstr "Junho" 813 | 814 | #~ msgid "July" 815 | #~ msgstr "Julho" 816 | 817 | #~ msgid "August" 818 | #~ msgstr "Agosto" 819 | 820 | #~ msgid "September" 821 | #~ msgstr "Setembro" 822 | 823 | #~ msgid "October" 824 | #~ msgstr "Outubro" 825 | 826 | #~ msgid "November" 827 | #~ msgstr "Novembro" 828 | 829 | #~ msgid "December" 830 | #~ msgstr "Dezembro" 831 | 832 | #~ msgid "Hour" 833 | #~ msgstr "Origem" 834 | 835 | #~ msgid "Load by Hour" 836 | #~ msgstr "Carga por hora" 837 | 838 | #~ msgid "Load by Day" 839 | #~ msgstr "Carga por dia" 840 | 841 | #~ msgid "Load by Month" 842 | #~ msgstr "Carga por mês" 843 | 844 | #~ msgid "Points Off" 845 | #~ msgstr "Pontos Off" 846 | 847 | #~ msgid "Points On" 848 | #~ msgstr "Pontos em" 849 | 850 | #~ msgid "Count" 851 | #~ msgstr "Contar" 852 | 853 | #~ msgid "to" 854 | #~ msgstr "para" 855 | 856 | #~ msgid "with previous" 857 | #~ msgstr "com anterior" 858 | 859 | #~ msgid "days" 860 | #~ msgstr "dias" 861 | 862 | #~ msgid "CDR View" 863 | #~ msgstr "Ver CDR" 864 | 865 | #~ msgid "calls detail records" 866 | #~ msgstr "Registro de ligação detalhada" 867 | 868 | #~ msgid "report by day" 869 | #~ msgstr "relatório por dia" 870 | 871 | #~ msgid "Bill Seconds" 872 | #~ msgstr "Bilhetagem por segundo" 873 | 874 | #~ msgid "Authorized call" 875 | #~ msgstr "Chamada Autorizado" 876 | 877 | #~ msgid "Unauthorized call" 878 | #~ msgstr "Chamada não autorizada" 879 | 880 | #~ msgid "call" 881 | #~ msgstr "chamar" 882 | 883 | #~ msgid "Show details" 884 | #~ msgstr "Exibir detalhes" 885 | 886 | #~ msgid "Call Details" 887 | #~ msgstr "Detalhes das ligações" 888 | 889 | #~ msgid "Close" 890 | #~ msgstr "Fechar" 891 | 892 | #~ msgid "show rows" 893 | #~ msgstr "mostrar linhas" 894 | 895 | #~ msgid "total calls" 896 | #~ msgstr "Total de Chamadas" 897 | 898 | #~ msgid "Export CSV file" 899 | #~ msgstr "Exportar para um arquivo CSV" 900 | 901 | #~ msgid "daily report" 902 | #~ msgstr "Relatório diário" 903 | 904 | #~ msgid "Graphic" 905 | #~ msgstr "Gráfico" 906 | 907 | #~ msgid "Average Connection Time" 908 | #~ msgstr "Tempo médio de conexão" 909 | 910 | #~ msgid "ACT" 911 | #~ msgstr "ACT" 912 | 913 | #~ msgid "Confirm deletion?" 914 | #~ msgstr "Confirme a exclusão?" 915 | 916 | #~ msgid "" 917 | #~ "No data can be found in your collections, please make sure the import of " 918 | #~ "data is working correctly." 919 | #~ msgstr "" 920 | #~ "Não há dados podem ser encontrados em suas coleções, certifique-se a " 921 | #~ "importação de dados está funcionando corretamente." 922 | 923 | #~ msgid "" 924 | #~ "is an application that allows you to browse and analyse CDR (Call Detail " 925 | #~ "Records)." 926 | #~ msgstr "" 927 | #~ "é uma aplicação que permite que você navegue e analisar CDR (Call Detail " 928 | #~ "Records)." 929 | 930 | #~ msgid "Different reporting tools are provided :" 931 | #~ msgstr "Diferentes ferramentas de relatórios disponíveis:" 932 | 933 | #~ msgid "Search CDR: Search, filter, display and export CDR." 934 | #~ msgstr "Pesquisa CDR: Pesquise, filtro, visualizar e exportar CDR." 935 | 936 | #~ msgid "" 937 | #~ "Monthly Report: Summarise and compare call traffic history month on month." 938 | #~ msgstr "" 939 | #~ "Relatório Mensal: Resumir e compare chamada mês da história tráfego no " 940 | #~ "mês." 941 | 942 | #~ msgid "" 943 | #~ "Analyse CDR : Analyse and compare call volumes with the previous day’s " 944 | #~ "traffic." 945 | #~ msgstr "" 946 | #~ "Analisar CDR: Analisar e comparar os volumes de chamadas com o tráfego do " 947 | #~ "dia anterior." 948 | 949 | #~ msgid "" 950 | #~ "Daily Traffic : Graph and filter traffic loads by hour during the day." 951 | #~ msgstr "" 952 | #~ "Tráfego diário: Gráfico e cargas de tráfego filtro por hora durante o dia." 953 | 954 | #~ msgid "Learn more" 955 | #~ msgstr "Saiba mais" 956 | 957 | #~ msgid "Support" 958 | #~ msgstr "Suporte" 959 | 960 | #, fuzzy 961 | #~ msgid "" 962 | #~ "Star2Billing S.L. offers consultancy including installation, training and " 963 | #~ "customisation on CDR-Stats." 964 | #~ msgstr "" 965 | #~ "Star2Billing SL oferece consultoria, incluindo instalação, treinamento e " 966 | #~ "personalização em todos os seus produtos, e o CDR-Stas não é exceção." 967 | 968 | #~ msgid "Contact us at" 969 | #~ msgstr "Fale conosco" 970 | 971 | #~ msgid "for more information" 972 | #~ msgstr "para mais informacões" 973 | 974 | #~ msgid "Get Support" 975 | #~ msgstr "Solicitar suporte" 976 | 977 | #~ msgid "Licensing" 978 | #~ msgstr "Licensas" 979 | 980 | #~ msgid "CDR-Stats is licensed under" 981 | #~ msgstr "CDR-Stats está licenciado sobre" 982 | 983 | #~ msgid "" 984 | #~ "however an alternative license can be purchased if the MPL V2 license is " 985 | #~ "not suitable for your requirements." 986 | #~ msgstr "" 987 | #~ "no entanto uma licença alternativa pode ser comprada se a licença AGPL " 988 | #~ "não for adequada para suas necessidades." 989 | 990 | #~ msgid "View Licensing details" 991 | #~ msgstr "Ver detalhes de Licenciamento" 992 | 993 | #~ msgid "Logout" 994 | #~ msgstr "Sair" 995 | 996 | #~ msgid "Login" 997 | #~ msgstr "Logar" 998 | 999 | #~ msgid "CDR-Stats report of " 1000 | #~ msgstr "CDR-Stats relatório de" 1001 | 1002 | #~ msgid "Last 10 Calls" 1003 | #~ msgstr "10 últimas chamadas" 1004 | 1005 | #~ msgid "Clid" 1006 | #~ msgstr "CLID" 1007 | 1008 | #~ msgid "Bill sec" 1009 | #~ msgstr "Bill seg" 1010 | 1011 | #~ msgid "Calls Status" 1012 | #~ msgstr "Estatísticas das ligações" 1013 | 1014 | #~ msgid "Customer Interface" 1015 | #~ msgstr "Interface do Cliente" 1016 | 1017 | #~ msgid "Hide search" 1018 | #~ msgstr "Ocultar pesquisa" 1019 | 1020 | #~ msgid "Please login by clicking on login button" 1021 | #~ msgstr "Por favor, autentique-se clicando no botão Login" 1022 | 1023 | #~ msgid "Forgot password?" 1024 | #~ msgstr "Esqueceu a senha?" 1025 | 1026 | #~ msgid "Display language" 1027 | #~ msgstr "Mostrar linguagem" 1028 | 1029 | #, fuzzy 1030 | #~ msgid "country calls detail" 1031 | #~ msgstr "Estatísticas de chamadas por país" 1032 | 1033 | #, fuzzy 1034 | #~ msgid "country list" 1035 | #~ msgstr "Estatísticas de chamadas por país" 1036 | 1037 | #, fuzzy 1038 | #~ msgid "World map Report" 1039 | #~ msgstr "Relatório do alarme" 1040 | 1041 | #, fuzzy 1042 | #~ msgid "CDR-Stats APIs" 1043 | #~ msgstr "CDR-Stats" 1044 | 1045 | #, fuzzy 1046 | #~ msgid "No" 1047 | #~ msgstr "Novembro" 1048 | 1049 | #~ msgid "Password reset complete" 1050 | #~ msgstr "Redefinição de senha completa" 1051 | 1052 | #~ msgid "Your password has been set. You may go ahead and log in now." 1053 | #~ msgstr "" 1054 | #~ "Sua senha foi definida. Você pode ir em frente e faça o login agora." 1055 | 1056 | #~ msgid "Log in" 1057 | #~ msgstr "Entrar" 1058 | 1059 | #~ msgid "Password reset" 1060 | #~ msgstr "Reiniciar senha" 1061 | 1062 | #~ msgid "Enter new password" 1063 | #~ msgstr "Digite a nova senha" 1064 | 1065 | #~ msgid "Please enter your new password twice for verification." 1066 | #~ msgstr "Por favor, digite a nova senha duas vezes para verificação." 1067 | 1068 | #~ msgid "Change my password" 1069 | #~ msgstr "Alterar minha senha" 1070 | 1071 | #~ msgid "Password reset unsuccessful" 1072 | #~ msgstr "Redefinição de senha vencida" 1073 | 1074 | #~ msgid "" 1075 | #~ "The password reset link was invalid, possibly because it has already been " 1076 | #~ "used. Please request a new password reset." 1077 | #~ msgstr "" 1078 | #~ "O link de redefinição de senha era inválido, possivelmente porque ele já " 1079 | #~ "foi usado. Por favor, solicitar uma nova senha nova." 1080 | 1081 | #~ msgid "Password reset successful" 1082 | #~ msgstr "Redefinição de senha bem-sucedido" 1083 | 1084 | #~ msgid "" 1085 | #~ "We've e-mailed you instructions for setting your password to the e-mail " 1086 | #~ "address you submitted. You should be receiving it shortly." 1087 | #~ msgstr "" 1088 | #~ "Nós e-mail instruções para configurar a senha para o endereço de e-mail " 1089 | #~ "que você enviou. Você deve estar recebendo-lo em breve." 1090 | 1091 | #~ msgid "" 1092 | #~ "You're receiving this e-mail because you requested a password reset for " 1093 | #~ "your user account at %(site_name)s." 1094 | #~ msgstr "" 1095 | #~ "Você está recebendo este e-mail porque você pediu uma redefinição de " 1096 | #~ "senha para sua conta de usuário em %(site_name)s." 1097 | 1098 | #~ msgid "Please go to the following page and choose a new password:" 1099 | #~ msgstr "Por favor, vá para a página seguinte e escolher uma nova senha:" 1100 | 1101 | #~ msgid "Your username, in case you've forgotten:" 1102 | #~ msgstr "Seu nome de usuário, caso você tenha esquecido:" 1103 | 1104 | #~ msgid "The %(site_name)s team" 1105 | #~ msgstr "O %(site_name)s, a equipe de" 1106 | 1107 | #~ msgid "Forgotten your password?" 1108 | #~ msgstr "Esqueceu sua senha?" 1109 | 1110 | #~ msgid "" 1111 | #~ "Enter your e-mail address below, and we'll e-mail instructions for " 1112 | #~ "setting a new one." 1113 | #~ msgstr "" 1114 | #~ "Digite seu endereço de e-mail, e nós vamos e-mail instruções para " 1115 | #~ "configurar um novo." 1116 | 1117 | #~ msgid "Reset my password" 1118 | #~ msgstr "Redefinir minha senha" 1119 | 1120 | #, fuzzy 1121 | #~ msgid "Change detail" 1122 | #~ msgstr "Exibir detalhes" 1123 | 1124 | #~ msgid "Settings" 1125 | #~ msgstr "Configurações" 1126 | 1127 | #~ msgid "User detail, Password and notifications" 1128 | #~ msgstr "Detalhe usuário, senha e notificações" 1129 | 1130 | #~ msgid "Password" 1131 | #~ msgstr "senha" 1132 | 1133 | #~ msgid "Change language " 1134 | #~ msgstr "Alterar idioma" 1135 | 1136 | #~ msgid "Select language" 1137 | #~ msgstr "Selecionar idioma" 1138 | 1139 | #~ msgid "Previous" 1140 | #~ msgstr "Anterior" 1141 | 1142 | #~ msgid "Next" 1143 | #~ msgstr "Próximo" 1144 | 1145 | #~ msgid "Thank you for using CDR-Stats." 1146 | #~ msgstr "Obrigado por utilizar o CDR-Stats." 1147 | 1148 | #~ msgid "Log in again" 1149 | #~ msgstr "Login novamente" 1150 | 1151 | #~ msgid "Personal info" 1152 | #~ msgstr "Informações pessoais" 1153 | 1154 | #~ msgid "Permission" 1155 | #~ msgstr "Permissão" 1156 | 1157 | #~ msgid "Important dates" 1158 | #~ msgstr "Datas importantes" 1159 | 1160 | #~ msgid "Notifications are successfully marked as read." 1161 | #~ msgstr "As notificações são sucesso marcada como lida." 1162 | 1163 | #~ msgid "Notifications are not marked as read." 1164 | #~ msgstr "As notificações não são marcadas como lidas." 1165 | 1166 | #~ msgid "Mark notification as seen" 1167 | #~ msgstr "Marcar notificação como visto" 1168 | 1169 | #, fuzzy 1170 | #~ msgid "average length of call" 1171 | #~ msgstr "Duração média da chamada" 1172 | 1173 | #, fuzzy 1174 | #~ msgid "answer seize ratio" 1175 | #~ msgstr "Resposta Aproveite Relação" 1176 | 1177 | #, fuzzy 1178 | #~ msgid "blacklist prefix" 1179 | #~ msgstr "Lista negra Prefixo" 1180 | 1181 | #, fuzzy 1182 | #~ msgid "whitelist prefix" 1183 | #~ msgstr "Prefixo Whitelist" 1184 | 1185 | #~ msgid "Afar" 1186 | #~ msgstr "Longe" 1187 | 1188 | #~ msgid "Abkhazian" 1189 | #~ msgstr "Abcásia" 1190 | 1191 | #~ msgid "Afrikaans" 1192 | #~ msgstr "Afrikaans" 1193 | 1194 | #~ msgid "Akan" 1195 | #~ msgstr "Akan" 1196 | 1197 | #~ msgid "Albanian" 1198 | #~ msgstr "Albanês" 1199 | 1200 | #~ msgid "Amharic" 1201 | #~ msgstr "Amárico" 1202 | 1203 | #~ msgid "Arabic" 1204 | #~ msgstr "Árabe" 1205 | 1206 | #~ msgid "Aragonese" 1207 | #~ msgstr "Aragonês" 1208 | 1209 | #~ msgid "Armenian" 1210 | #~ msgstr "Armênio" 1211 | 1212 | #~ msgid "Assamese" 1213 | #~ msgstr "Assamese" 1214 | 1215 | #~ msgid "Avaric" 1216 | #~ msgstr "Avaric" 1217 | 1218 | #~ msgid "Avestan" 1219 | #~ msgstr "Avestan" 1220 | 1221 | #~ msgid "Aymara" 1222 | #~ msgstr "Aymara" 1223 | 1224 | #~ msgid "Azerbaijani" 1225 | #~ msgstr "Azerbaijano" 1226 | 1227 | #~ msgid "Bashkir" 1228 | #~ msgstr "Bashkir" 1229 | 1230 | #~ msgid "Bambara" 1231 | #~ msgstr "Bambara" 1232 | 1233 | #~ msgid "Basque" 1234 | #~ msgstr "Basco" 1235 | 1236 | #~ msgid "Belarusian" 1237 | #~ msgstr "Bielorrusso" 1238 | 1239 | #~ msgid "Bengali" 1240 | #~ msgstr "Bengali" 1241 | 1242 | #~ msgid "Bihari languages" 1243 | #~ msgstr "Línguas Bihari" 1244 | 1245 | #~ msgid "Bislama" 1246 | #~ msgstr "Bislama" 1247 | 1248 | #~ msgid "Tibetan" 1249 | #~ msgstr "Tibetano" 1250 | 1251 | #~ msgid "Bosnian" 1252 | #~ msgstr "Bósnio" 1253 | 1254 | #~ msgid "Breton" 1255 | #~ msgstr "Breton" 1256 | 1257 | #~ msgid "Bulgarian" 1258 | #~ msgstr "Búlgaro" 1259 | 1260 | #~ msgid "Burmese" 1261 | #~ msgstr "Birmanês" 1262 | 1263 | #~ msgid "Catalan; Valencian" 1264 | #~ msgstr "Catalão; Valenciana" 1265 | 1266 | #~ msgid "Czech" 1267 | #~ msgstr "Tcheco" 1268 | 1269 | #~ msgid "Chamorro" 1270 | #~ msgstr "Chamorro" 1271 | 1272 | #~ msgid "Chechen" 1273 | #~ msgstr "Checheno" 1274 | 1275 | #~ msgid "Chinese" 1276 | #~ msgstr "Chinês" 1277 | 1278 | #~ msgid "" 1279 | #~ "Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church " 1280 | #~ "Slavonic" 1281 | #~ msgstr "" 1282 | #~ "Igreja eslava; eslavo; Igreja eslava; Antigo búlgaro; Igreja Velha eslava" 1283 | 1284 | #~ msgid "Chuvash" 1285 | #~ msgstr "Chuvash" 1286 | 1287 | #~ msgid "Cornish" 1288 | #~ msgstr "Cornish" 1289 | 1290 | #~ msgid "Corsican" 1291 | #~ msgstr "Corso" 1292 | 1293 | #~ msgid "Cree" 1294 | #~ msgstr "Cree" 1295 | 1296 | #~ msgid "Welsh" 1297 | #~ msgstr "Galês" 1298 | 1299 | #~ msgid "Danish" 1300 | #~ msgstr "Dinamarquês" 1301 | 1302 | #~ msgid "Divehi; Dhivehi; Maldivian" 1303 | #~ msgstr "Divehi; Dhivehi; Maldivian" 1304 | 1305 | #~ msgid "Dutch; Flemish" 1306 | #~ msgstr "Holandês; Flamengo" 1307 | 1308 | #~ msgid "Dzongkha" 1309 | #~ msgstr "Dzongkha" 1310 | 1311 | #~ msgid "Greek, Modern (1453-)" 1312 | #~ msgstr "Grego, Moderno (1453 -)" 1313 | 1314 | #~ msgid "Esperanto" 1315 | #~ msgstr "Esperanto" 1316 | 1317 | #~ msgid "Estonian" 1318 | #~ msgstr "Estoniano" 1319 | 1320 | #~ msgid "Ewe" 1321 | #~ msgstr "Ovelha" 1322 | 1323 | #~ msgid "Faroese" 1324 | #~ msgstr "Das Ilhas Faroé" 1325 | 1326 | #~ msgid "Persian" 1327 | #~ msgstr "Persa" 1328 | 1329 | #~ msgid "Fijian" 1330 | #~ msgstr "Fiji" 1331 | 1332 | #~ msgid "Finnish" 1333 | #~ msgstr "Finlandês" 1334 | 1335 | #~ msgid "Western Frisian" 1336 | #~ msgstr "Ocidental Frisian" 1337 | 1338 | #~ msgid "Fulah" 1339 | #~ msgstr "Fulah" 1340 | 1341 | #~ msgid "Georgian" 1342 | #~ msgstr "Georgiano" 1343 | 1344 | #~ msgid "Gaelic; Scottish Gaelic" 1345 | #~ msgstr "Gaélico; gaélico escocês" 1346 | 1347 | #~ msgid "Irish" 1348 | #~ msgstr "Irlandês" 1349 | 1350 | #~ msgid "Galician" 1351 | #~ msgstr "Galego" 1352 | 1353 | #~ msgid "Manx" 1354 | #~ msgstr "Manx" 1355 | 1356 | #~ msgid "Guarani" 1357 | #~ msgstr "Guarani" 1358 | 1359 | #~ msgid "Gujarati" 1360 | #~ msgstr "Guzerate" 1361 | 1362 | #~ msgid "Haitian; Haitian Creole" 1363 | #~ msgstr "Haiti; crioulo haitiano" 1364 | 1365 | #~ msgid "Hausa" 1366 | #~ msgstr "Hausa" 1367 | 1368 | #~ msgid "Hebrew" 1369 | #~ msgstr "Hebraico" 1370 | 1371 | #~ msgid "Herero" 1372 | #~ msgstr "Herero" 1373 | 1374 | #~ msgid "Hindi" 1375 | #~ msgstr "Hindi" 1376 | 1377 | #~ msgid "Hiri Motu" 1378 | #~ msgstr "Hiri Motu" 1379 | 1380 | #~ msgid "Croatian" 1381 | #~ msgstr "Croata" 1382 | 1383 | #~ msgid "Hungarian" 1384 | #~ msgstr "Húngaro" 1385 | 1386 | #~ msgid "Igbo" 1387 | #~ msgstr "Ibo" 1388 | 1389 | #~ msgid "Icelandic" 1390 | #~ msgstr "Islandês" 1391 | 1392 | #~ msgid "Ido" 1393 | #~ msgstr "Ido" 1394 | 1395 | #~ msgid "Sichuan Yi; Nuosu" 1396 | #~ msgstr "Sichuan Yi; Nuosu" 1397 | 1398 | #~ msgid "Inuktitut" 1399 | #~ msgstr "Inuktitut" 1400 | 1401 | #~ msgid "Interlingue; Occidental" 1402 | #~ msgstr "Interlingue; Occidental" 1403 | 1404 | #~ msgid "Interlingua (International Auxiliary Language Association)" 1405 | #~ msgstr "Interlíngua (International Auxiliary Language Association)" 1406 | 1407 | #~ msgid "Indonesian" 1408 | #~ msgstr "Indonésio" 1409 | 1410 | #~ msgid "Inupiaq" 1411 | #~ msgstr "Inupiaq" 1412 | 1413 | #~ msgid "Italian" 1414 | #~ msgstr "Italiano" 1415 | 1416 | #~ msgid "Javanese" 1417 | #~ msgstr "Javanês" 1418 | 1419 | #~ msgid "Japanese" 1420 | #~ msgstr "Japonês" 1421 | 1422 | #~ msgid "Kalaallisut; Greenlandic" 1423 | #~ msgstr "Kalaallisut; da Gronelândia" 1424 | 1425 | #~ msgid "Kannada" 1426 | #~ msgstr "Canará" 1427 | 1428 | #~ msgid "Kashmiri" 1429 | #~ msgstr "Kashmiri" 1430 | 1431 | #~ msgid "Kanuri" 1432 | #~ msgstr "Kanuri" 1433 | 1434 | #~ msgid "Kazakh" 1435 | #~ msgstr "Cazaque" 1436 | 1437 | #~ msgid "Central Khmer" 1438 | #~ msgstr "Central Khmer" 1439 | 1440 | #~ msgid "Kikuyu; Gikuyu" 1441 | #~ msgstr "Kikuyu; Gikuyu" 1442 | 1443 | #~ msgid "Kinyarwanda" 1444 | #~ msgstr "Kinyarwanda" 1445 | 1446 | #~ msgid "Kirghiz; Kyrgyz" 1447 | #~ msgstr "Kirghiz; do Quirguistão" 1448 | 1449 | #~ msgid "Komi" 1450 | #~ msgstr "Komi" 1451 | 1452 | #~ msgid "Kongo" 1453 | #~ msgstr "Kongo" 1454 | 1455 | #~ msgid "Korean" 1456 | #~ msgstr "Coreano" 1457 | 1458 | #~ msgid "Kuanyama; Kwanyama" 1459 | #~ msgstr "Kuanyama; Kwanyama" 1460 | 1461 | #~ msgid "Kurdish" 1462 | #~ msgstr "Curdo" 1463 | 1464 | #~ msgid "Lao" 1465 | #~ msgstr "Lao" 1466 | 1467 | #~ msgid "Latin" 1468 | #~ msgstr "Latino" 1469 | 1470 | #~ msgid "Latvian" 1471 | #~ msgstr "Letão" 1472 | 1473 | #~ msgid "Limburgan; Limburger; Limburgish" 1474 | #~ msgstr "Limburgan; Limburger; Limburguês" 1475 | 1476 | #~ msgid "Lingala" 1477 | #~ msgstr "Lingala" 1478 | 1479 | #~ msgid "Lithuanian" 1480 | #~ msgstr "Lituano" 1481 | 1482 | #~ msgid "Luxembourgish; Letzeburgesch" 1483 | #~ msgstr "Luxemburguesa; luxemburguês" 1484 | 1485 | #~ msgid "Luba-Katanga" 1486 | #~ msgstr "Luba-Katanga" 1487 | 1488 | #~ msgid "Ganda" 1489 | #~ msgstr "Ganda" 1490 | 1491 | #~ msgid "Macedonian" 1492 | #~ msgstr "Macedônio" 1493 | 1494 | #~ msgid "Marshallese" 1495 | #~ msgstr "Marshallese" 1496 | 1497 | #~ msgid "Malayalam" 1498 | #~ msgstr "Malayalam" 1499 | 1500 | #~ msgid "Maori" 1501 | #~ msgstr "Maori" 1502 | 1503 | #~ msgid "Marathi" 1504 | #~ msgstr "Marathi" 1505 | 1506 | #~ msgid "Malay" 1507 | #~ msgstr "Malaio" 1508 | 1509 | #~ msgid "Malagasy" 1510 | #~ msgstr "Malgaxe" 1511 | 1512 | #~ msgid "Maltese" 1513 | #~ msgstr "Maltês" 1514 | 1515 | #~ msgid "Mongolian" 1516 | #~ msgstr "Mongol" 1517 | 1518 | #~ msgid "Nauru" 1519 | #~ msgstr "Nauru" 1520 | 1521 | #~ msgid "Navajo; Navaho" 1522 | #~ msgstr "Navajo; Navaho" 1523 | 1524 | #~ msgid "Ndebele, South; South Ndebele" 1525 | #~ msgstr "Ndebele, Sul, Sul Ndebele" 1526 | 1527 | #~ msgid "Ndebele, North; North Ndebele" 1528 | #~ msgstr "Ndebele, Norte, Norte Ndebele" 1529 | 1530 | #~ msgid "Ndonga" 1531 | #~ msgstr "Ndonga" 1532 | 1533 | #~ msgid "Nepali" 1534 | #~ msgstr "Nepali" 1535 | 1536 | #~ msgid "Norwegian Nynorsk; Nynorsk, Norwegian" 1537 | #~ msgstr "Norwegian Nynorsk, Nynorsk, norueguês" 1538 | 1539 | #~ msgid "Bokmal, Norwegian; Norwegian Bokmal" 1540 | #~ msgstr "Bokmal, norueguês, norueguês Bokmal" 1541 | 1542 | #~ msgid "Norwegian" 1543 | #~ msgstr "Norueguês" 1544 | 1545 | #~ msgid "Chichewa; Chewa; Nyanja" 1546 | #~ msgstr "Chichewa; Chewa; Nyanja" 1547 | 1548 | #~ msgid "Occitan (post 1500)" 1549 | #~ msgstr "Occitano (pós 1500)" 1550 | 1551 | #~ msgid "Ojibwa" 1552 | #~ msgstr "Ojibwa" 1553 | 1554 | #~ msgid "Oriya" 1555 | #~ msgstr "Oriya" 1556 | 1557 | #~ msgid "Oromo" 1558 | #~ msgstr "Oromo" 1559 | 1560 | #~ msgid "Ossetian; Ossetic" 1561 | #~ msgstr "Ossétia; osseto" 1562 | 1563 | #~ msgid "Panjabi; Punjabi" 1564 | #~ msgstr "Panjabi; Punjabi" 1565 | 1566 | #~ msgid "Pali" 1567 | #~ msgstr "Páli" 1568 | 1569 | #~ msgid "Polish" 1570 | #~ msgstr "Polonês" 1571 | 1572 | #~ msgid "Pushto; Pashto" 1573 | #~ msgstr "Pushto; Pashto" 1574 | 1575 | #~ msgid "Quechua" 1576 | #~ msgstr "Quechua" 1577 | 1578 | #~ msgid "Romansh" 1579 | #~ msgstr "Romanche" 1580 | 1581 | #~ msgid "Romanian; Moldavian; Moldovan" 1582 | #~ msgstr "Romeno; moldava; moldavo" 1583 | 1584 | #~ msgid "Rundi" 1585 | #~ msgstr "Rundi" 1586 | 1587 | #~ msgid "Sango" 1588 | #~ msgstr "Sango" 1589 | 1590 | #~ msgid "Sanskrit" 1591 | #~ msgstr "Sânscrito" 1592 | 1593 | #~ msgid "Sinhala; Sinhalese" 1594 | #~ msgstr "Sinhala; cingalês" 1595 | 1596 | #~ msgid "Slovak" 1597 | #~ msgstr "Eslovaco" 1598 | 1599 | #~ msgid "Slovenian" 1600 | #~ msgstr "Esloveno" 1601 | 1602 | #~ msgid "Northern Sami" 1603 | #~ msgstr "Sami do Norte" 1604 | 1605 | #~ msgid "Samoan" 1606 | #~ msgstr "Samoan" 1607 | 1608 | #~ msgid "Shona" 1609 | #~ msgstr "Shona" 1610 | 1611 | #~ msgid "Sindhi" 1612 | #~ msgstr "Sindhi" 1613 | 1614 | #~ msgid "Somali" 1615 | #~ msgstr "Somália" 1616 | 1617 | #~ msgid "Sotho, Southern" 1618 | #~ msgstr "Sotho, Southern" 1619 | 1620 | #~ msgid "Spanish; Castilian" 1621 | #~ msgstr "Espanhol; castelhano" 1622 | 1623 | #~ msgid "Sardinian" 1624 | #~ msgstr "Sardo" 1625 | 1626 | #~ msgid "Serbian" 1627 | #~ msgstr "Sérvio" 1628 | 1629 | #~ msgid "Swati" 1630 | #~ msgstr "Swati" 1631 | 1632 | #~ msgid "Sundanese" 1633 | #~ msgstr "Sundanese" 1634 | 1635 | #~ msgid "Swahili" 1636 | #~ msgstr "Suaíli" 1637 | 1638 | #~ msgid "Swedish" 1639 | #~ msgstr "Sueco" 1640 | 1641 | #~ msgid "Tahitian" 1642 | #~ msgstr "Tahitian" 1643 | 1644 | #~ msgid "Tamil" 1645 | #~ msgstr "Tâmil" 1646 | 1647 | #~ msgid "Tatar" 1648 | #~ msgstr "Tatar" 1649 | 1650 | #~ msgid "Telugu" 1651 | #~ msgstr "Telugu" 1652 | 1653 | #~ msgid "Tajik" 1654 | #~ msgstr "Tajik" 1655 | 1656 | #~ msgid "Tagalog" 1657 | #~ msgstr "Tagalog" 1658 | 1659 | #~ msgid "Thai" 1660 | #~ msgstr "Tailandês" 1661 | 1662 | #~ msgid "Tigrinya" 1663 | #~ msgstr "Tigrinya" 1664 | 1665 | #~ msgid "Tonga (Tonga Islands)" 1666 | #~ msgstr "Tonga (Tonga Islands)" 1667 | 1668 | #~ msgid "Tswana" 1669 | #~ msgstr "Tswana" 1670 | 1671 | #~ msgid "Tsonga" 1672 | #~ msgstr "Tsonga" 1673 | 1674 | #~ msgid "Turkmen" 1675 | #~ msgstr "Turkmen" 1676 | 1677 | #~ msgid "Turkish" 1678 | #~ msgstr "Turco" 1679 | 1680 | #~ msgid "Twi" 1681 | #~ msgstr "Twi" 1682 | 1683 | #~ msgid "Uighur; Uyghur" 1684 | #~ msgstr "Uigur; Uyghur" 1685 | 1686 | #~ msgid "Ukrainian" 1687 | #~ msgstr "Ucraniano" 1688 | 1689 | #~ msgid "Urdu" 1690 | #~ msgstr "Urdu" 1691 | 1692 | #~ msgid "Uzbek" 1693 | #~ msgstr "Usbeque" 1694 | 1695 | #~ msgid "Venda" 1696 | #~ msgstr "Venda" 1697 | 1698 | #~ msgid "Vietnamese" 1699 | #~ msgstr "Vietnamita" 1700 | 1701 | #~ msgid "Volapuk" 1702 | #~ msgstr "Volapuk" 1703 | 1704 | #~ msgid "Walloon" 1705 | #~ msgstr "Valão" 1706 | 1707 | #~ msgid "Wolof" 1708 | #~ msgstr "Wolof" 1709 | 1710 | #~ msgid "Xhosa" 1711 | #~ msgstr "Xhosa" 1712 | 1713 | #~ msgid "Yiddish" 1714 | #~ msgstr "Ídiche" 1715 | 1716 | #~ msgid "Yoruba" 1717 | #~ msgstr "Iorubá" 1718 | 1719 | #~ msgid "Zhuang; Chuang" 1720 | #~ msgstr "Zhuang; Chuang" 1721 | 1722 | #~ msgid "Zulu" 1723 | #~ msgstr "Zulu" 1724 | 1725 | #~ msgid "Stores language codes" 1726 | #~ msgstr "Linguagem códigos lojas" 1727 | 1728 | #~ msgid "Email address" 1729 | #~ msgstr "Endereço de email" 1730 | 1731 | #~ msgid "Average Length of Call" 1732 | #~ msgstr "Duração média da chamada" 1733 | 1734 | #~ msgid "Answer Seize Ratio" 1735 | #~ msgstr "Resposta Aproveite Relação" 1736 | 1737 | #~ msgid "Blacklist Prefix" 1738 | #~ msgstr "Lista negra Prefixo" 1739 | 1740 | #~ msgid "Whitelist Prefix" 1741 | #~ msgstr "Prefixo Whitelist" 1742 | 1743 | #~ msgid "Address" 1744 | #~ msgstr "Endereço" 1745 | 1746 | #~ msgid "City" 1747 | #~ msgstr "Cidade" 1748 | 1749 | #~ msgid "State" 1750 | #~ msgstr "Estado" 1751 | 1752 | #~ msgid "Zip code" 1753 | #~ msgstr "CEP" 1754 | 1755 | #~ msgid "Phone number" 1756 | #~ msgstr "Número de telefone" 1757 | 1758 | #~ msgid "Fax Number" 1759 | #~ msgstr "Fax" 1760 | 1761 | #~ msgid "Company name" 1762 | #~ msgstr "Nome da empresa" 1763 | 1764 | #~ msgid "Company website" 1765 | #~ msgstr "Site da empresa" 1766 | 1767 | #~ msgid "Language" 1768 | #~ msgstr "Linguagem" 1769 | 1770 | #~ msgid "Note" 1771 | #~ msgstr "Nota" 1772 | 1773 | #~ msgid "Report mail list" 1774 | #~ msgstr "Relatório lista de e-mail" 1775 | 1776 | #~ msgid "Enter a valid e-mail address separated by commas." 1777 | #~ msgstr "Insira um endereço de e-mail válido separados por vírgulas." 1778 | 1779 | #, fuzzy 1780 | #~ msgid "Can view CDR detail" 1781 | #~ msgstr "Exibir detalhes" 1782 | 1783 | #, fuzzy 1784 | #~ msgid "Can view CDR concurrent calls" 1785 | #~ msgstr "chamadas simultâneas" 1786 | 1787 | #, fuzzy 1788 | #~ msgid "Can view CDR mail report" 1789 | #~ msgstr "Pré-visualização do relatório e-mail" 1790 | 1791 | #, fuzzy 1792 | #~ msgid "Can view CDR country report" 1793 | #~ msgstr "Relatório do País" 1794 | 1795 | #~ msgid "User Profile" 1796 | #~ msgstr "Perfil de Usuário" 1797 | 1798 | #~ msgid "Customer" 1799 | #~ msgstr "Cliente" 1800 | 1801 | #~ msgid "Customers" 1802 | #~ msgstr "Os clientes" 1803 | 1804 | #~ msgid "Admin" 1805 | #~ msgstr "Administrador" 1806 | 1807 | #~ msgid "Admins" 1808 | #~ msgstr "Admins" 1809 | 1810 | #~ msgid "Detail has been changed." 1811 | #~ msgstr "Detalhe foi alterado." 1812 | 1813 | #~ msgid "Please correct the errors below." 1814 | #~ msgstr "Por favor, corrija os erros abaixo." 1815 | 1816 | #~ msgid "Your password has been changed." 1817 | #~ msgstr "Sua senha foi alterada." 1818 | -------------------------------------------------------------------------------- /frontend_notification/locale/ru/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/areski/django-frontend-notification/e054f5b46aa589d5812244533e01157db8671c6b/frontend_notification/locale/ru/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /frontend_notification/locale/ru/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # CDR-Stats - PO File 2 | # Copyright (C) 2010 - Star2Billing S.L. 3 | # This file is distributed under the same license as the CDR-Stats application. 4 | # Areski Belaid , 2010. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: CDR-Stats 1.0\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2013-02-16 15:55+0530\n" 11 | "PO-Revision-Date: 2012-06-17 01:05+0400\n" 12 | "Last-Translator: Ilya Shchepetkin \n" 13 | "Language-Team: Areski Belaid \n" 14 | "Language: \n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" 19 | "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" 20 | 21 | #: constants.py:6 22 | msgid "Message" 23 | msgstr "" 24 | 25 | #: constants.py:7 26 | msgid "Notice type" 27 | msgstr "" 28 | 29 | #: constants.py:8 30 | msgid "Sender" 31 | msgstr "" 32 | 33 | #: constants.py:9 34 | msgid "Date" 35 | msgstr "Дата" 36 | 37 | #: views.py:122 38 | msgid "All notifications are marked as read." 39 | msgstr "Все уведомления, отмечены как прочитанные." 40 | 41 | #: views.py:157 42 | #, python-format 43 | msgid "\"%(name)s\" is deleted." 44 | msgstr "\"%(name)s\" удалён" 45 | 46 | #: views.py:161 47 | #, python-format 48 | msgid "\"%(name)s\" is marked as read." 49 | msgstr "\"%(name)s\" помечен как прочитанные." 50 | 51 | #: views.py:175 52 | #, python-format 53 | msgid "%(count)s notification(s) are deleted." 54 | msgstr "%(count)s уведомлением(ы) будут удалены." 55 | 56 | #: views.py:180 57 | #, python-format 58 | msgid "%(count)s notification(s) are marked as read." 59 | msgstr "%(count)s уведомлением(ы) отмечены как прочитанные." 60 | 61 | #: templates/frontend/frontend_notification/user_notification.html:21 62 | msgid "You must check at least one box!" 63 | msgstr "Вы должны проверить, по крайней мере одной коробке!" 64 | 65 | #: templates/frontend/frontend_notification/user_notification.html:29 66 | msgid " notification(s) are going to be deleted?" 67 | msgstr "Уведомление (ы) будут удалены?" 68 | 69 | #: templates/frontend/frontend_notification/user_notification.html:32 70 | msgid " notification(s) are going to be marked as read?" 71 | msgstr "Уведомление (ы) будут отмечены как прочитанные?" 72 | 73 | #: templates/frontend/frontend_notification/user_notification.html:51 74 | msgid "Notifications" 75 | msgstr "Уведомления" 76 | 77 | #: templates/frontend/frontend_notification/user_notification.html:57 78 | msgid "Alert" 79 | msgstr "Оповещение" 80 | 81 | #: templates/frontend/frontend_notification/user_notification.html:63 82 | #: templates/frontend/frontend_notification/user_notification.html:89 83 | msgid "Action" 84 | msgstr "Действие" 85 | 86 | #: templates/frontend/frontend_notification/user_notification.html:68 87 | msgid "Mark as read" 88 | msgstr "Отметить как прочитано" 89 | 90 | #: templates/frontend/frontend_notification/user_notification.html:69 91 | msgid "Delete notifications" 92 | msgstr "Удаление уведомлений" 93 | 94 | #: templates/frontend/frontend_notification/user_notification.html:72 95 | msgid "Mark all as read" 96 | msgstr "Отметить всё как прочитано" 97 | 98 | #: templates/frontend/frontend_notification/user_notification.html:111 99 | msgid "no records found" 100 | msgstr "не найдены записи" 101 | 102 | #: templatetags/frontend_notification_tags.py:24 103 | msgid "New" 104 | msgstr "Новое" 105 | 106 | #: templatetags/frontend_notification_tags.py:26 107 | msgid "Read" 108 | msgstr "Читать" 109 | 110 | #~ msgid "English" 111 | #~ msgstr "Английский" 112 | 113 | #~ msgid "French" 114 | #~ msgstr "Французкий" 115 | 116 | #~ msgid "Spanish" 117 | #~ msgstr "Испанский" 118 | 119 | #~ msgid "Portuguese" 120 | #~ msgstr "Португальский" 121 | 122 | #~ msgid "German" 123 | #~ msgstr "Немецкий" 124 | 125 | #~ msgid "Russian" 126 | #~ msgstr "Русский" 127 | 128 | #~ msgid "CDR already exists !!" 129 | #~ msgstr "CDR уже существует!!!" 130 | 131 | #~ msgid "" 132 | #~ "%(cdr_record_count)s Cdr(s) are uploaded, out of %(total_rows)s row(s) !!" 133 | #~ msgstr "%(cdr_record_count)s Ком(ы) загружены, из %(total_rows)s строку(и)!" 134 | 135 | #~ msgid "Import CDR" 136 | #~ msgstr "Импортировать CDR" 137 | 138 | #~ msgid "Equals" 139 | #~ msgstr "Равно" 140 | 141 | #, fuzzy 142 | #~ msgid "Begins" 143 | #~ msgstr "Начинается с" 144 | 145 | #~ msgid "Contains" 146 | #~ msgstr "Содержит" 147 | 148 | #, fuzzy 149 | #~ msgid "Ends" 150 | #~ msgstr "И заканчивается с" 151 | 152 | #~ msgid "Call-date" 153 | #~ msgstr "Call Дата" 154 | 155 | #~ msgid "CLID" 156 | #~ msgstr "CLID" 157 | 158 | #~ msgid "Destination" 159 | #~ msgstr "Назначение" 160 | 161 | #~ msgid "Duration" 162 | #~ msgstr "Продолжительность" 163 | 164 | #~ msgid "Bill" 165 | #~ msgstr "Билл" 166 | 167 | #~ msgid "Hangup cause" 168 | #~ msgstr "Отбой причины" 169 | 170 | #~ msgid "Account" 171 | #~ msgstr "Счет" 172 | 173 | #~ msgid "All Switches" 174 | #~ msgstr "Все коммутаторы" 175 | 176 | #~ msgid "All" 177 | #~ msgstr "Всё" 178 | 179 | #~ msgid "Caller ID" 180 | #~ msgstr "Caller ID" 181 | 182 | #~ msgid "Account Code" 183 | #~ msgstr "Номер счета" 184 | 185 | #, fuzzy 186 | #~ msgid "Duration (Secs)" 187 | #~ msgstr "Продолжительность" 188 | 189 | #~ msgid "Switch" 190 | #~ msgstr "Переключение" 191 | 192 | #~ msgid "Country" 193 | #~ msgstr "Страна" 194 | 195 | #~ msgid "From" 196 | #~ msgstr "От" 197 | 198 | #~ msgid "To" 199 | #~ msgstr "К" 200 | 201 | #~ msgid "Direction" 202 | #~ msgstr "Направление" 203 | 204 | #~ msgid "Inbound" 205 | #~ msgstr "Входящий" 206 | 207 | #~ msgid "Outbound" 208 | #~ msgstr "Исходящий" 209 | 210 | #, fuzzy 211 | #~ msgid "Unknown" 212 | #~ msgstr "Unknow" 213 | 214 | #~ msgid "Result" 215 | #~ msgstr "Результат" 216 | 217 | #~ msgid "Minutes" 218 | #~ msgstr "Минуты" 219 | 220 | #~ msgid "Seconds" 221 | #~ msgstr "Секунды" 222 | 223 | #~ msgid "CDR per page" 224 | #~ msgstr "CDR на страницу" 225 | 226 | #~ msgid "Select date" 227 | #~ msgstr "Выберите дату" 228 | 229 | #~ msgid "Graph" 230 | #~ msgstr "График" 231 | 232 | #~ msgid "Calls per Hour" 233 | #~ msgstr "Звонков в час" 234 | 235 | #~ msgid "Minutes per Hour" 236 | #~ msgstr "Минут в час" 237 | 238 | #~ msgid "Check with" 239 | #~ msgstr "Проконсультируйтесь с" 240 | 241 | #~ msgid "Previous days" 242 | #~ msgstr "Предыдущий день" 243 | 244 | #~ msgid "Same day of the week" 245 | #~ msgstr "В тот же день недели" 246 | 247 | #~ msgid "Upload CSV File " 248 | #~ msgstr "Загрузить CSV файл" 249 | 250 | #~ msgid "Browse CSV file" 251 | #~ msgstr "Просмотреть CSV файл" 252 | 253 | #~ msgid "Document types accepted: %s" 254 | #~ msgstr "Типы документов принимаются: %s" 255 | 256 | #~ msgid "Select switch" 257 | #~ msgstr "Выберите переключатель" 258 | 259 | #~ msgid "Account code" 260 | #~ msgstr "Код счета" 261 | 262 | #~ msgid "caller_id_number" 263 | #~ msgstr "caller_id_number" 264 | 265 | #~ msgid "caller_id_name" 266 | #~ msgstr "caller_id_name" 267 | 268 | #~ msgid "destination_number" 269 | #~ msgstr "destination_number" 270 | 271 | #~ msgid "duration" 272 | #~ msgstr "Продолжительность" 273 | 274 | #~ msgid "billsec" 275 | #~ msgstr "billsec" 276 | 277 | #~ msgid "hangup_cause_id" 278 | #~ msgstr "hangup_cause_id" 279 | 280 | #~ msgid "direction" 281 | #~ msgstr "направление" 282 | 283 | #~ msgid "uuid" 284 | #~ msgstr "UUID" 285 | 286 | #~ msgid "remote_media_ip" 287 | #~ msgstr "remote_media_ip" 288 | 289 | #~ msgid "start_uepoch" 290 | #~ msgstr "start_uepoch" 291 | 292 | #~ msgid "answer_uepoch" 293 | #~ msgstr "answer_uepoch" 294 | 295 | #~ msgid "end_uepoch" 296 | #~ msgstr "end_uepoch" 297 | 298 | #~ msgid "mduration" 299 | #~ msgstr "MDURATION" 300 | 301 | #~ msgid "billmsec" 302 | #~ msgstr "billmsec" 303 | 304 | #~ msgid "read_codec" 305 | #~ msgstr "read_codec" 306 | 307 | #~ msgid "write_codec" 308 | #~ msgstr "write_codec" 309 | 310 | #~ msgid "accountcode" 311 | #~ msgstr "accountcode" 312 | 313 | #, fuzzy 314 | #~ msgid "Internal Calls" 315 | #~ msgstr "Всего звонков" 316 | 317 | #~ msgid "ANSWER" 318 | #~ msgstr "Ответили" 319 | 320 | #~ msgid "BUSY" 321 | #~ msgstr "Занято" 322 | 323 | #~ msgid "NOANSWER" 324 | #~ msgstr "Не ответили" 325 | 326 | #~ msgid "CANCEL" 327 | #~ msgstr "CANCEL" 328 | 329 | #~ msgid "CONGESTION" 330 | #~ msgstr "ПЕРЕГРУЖЕННОСТИ" 331 | 332 | #~ msgid "CHANUNAVAIL" 333 | #~ msgstr "CHANUNAVAIL" 334 | 335 | #~ msgid "DONTCALL" 336 | #~ msgstr "DONTCALL" 337 | 338 | #~ msgid "TORTURE" 339 | #~ msgstr "TORTURE" 340 | 341 | #~ msgid "INVALIDARGS" 342 | #~ msgstr "INVALIDARGS" 343 | 344 | #~ msgid "FreeSWITCH" 345 | #~ msgstr "FreeSWITCH" 346 | 347 | #~ msgid "Asterisk" 348 | #~ msgstr "Звездочка" 349 | 350 | #~ msgid "Switches" 351 | #~ msgstr "Коммутаторы" 352 | 353 | #~ msgid "Code" 354 | #~ msgstr "Код" 355 | 356 | #~ msgid "ITU-T Q.850 Code" 357 | #~ msgstr "ITU-T Q.850 код" 358 | 359 | #~ msgid "Enumeration" 360 | #~ msgstr "Перечисление" 361 | 362 | #~ msgid "Cause" 363 | #~ msgstr "Вызывать" 364 | 365 | #~ msgid "Description" 366 | #~ msgstr "Описание" 367 | 368 | #~ msgid "Hangupcause" 369 | #~ msgstr "Hangupcause" 370 | 371 | #~ msgid "Hangupcauses" 372 | #~ msgstr "Hangupcauses" 373 | 374 | #~ msgid "Mongodb Database connection is closed!" 375 | #~ msgstr "Соединение с базой Mongodb закрыто!" 376 | 377 | #~ msgid "Mongodb Database is locked!" 378 | #~ msgstr "База Mongodb заблокирована!" 379 | 380 | #~ msgid "Account code is not assigned!" 381 | #~ msgstr "Account code не назначен!" 382 | 383 | #~ msgid "Email ids are saved successfully." 384 | #~ msgstr "Email идентификаторы успешно сохранены." 385 | 386 | #~ msgid "Successfully added prefix into blacklist" 387 | #~ msgstr "Префикс успешно добавлен в \"чёрный список\"" 388 | 389 | #~ msgid "Blacklist by country" 390 | #~ msgstr "Чёрный список по стране" 391 | 392 | #~ msgid "cdr_alert" 393 | #~ msgstr "cdr_alert" 394 | 395 | #~ msgid "Successfully added prefix into whitelist" 396 | #~ msgstr "Префикс успешно добавлен в \"белый список\"" 397 | 398 | #~ msgid "Whitelist by country" 399 | #~ msgstr "Белый список по стране" 400 | 401 | #~ msgid "Day" 402 | #~ msgstr "День" 403 | 404 | #~ msgid "Week" 405 | #~ msgstr "Неделя" 406 | 407 | #~ msgid "Month" 408 | #~ msgstr "Месяц" 409 | 410 | #~ msgid "Active" 411 | #~ msgstr "Активный" 412 | 413 | #~ msgid "Inactive" 414 | #~ msgstr "Неактивный" 415 | 416 | #~ msgid "ALOC (Average Length of Call)" 417 | #~ msgstr "ALOC (средняя продолжительность звонка)" 418 | 419 | #~ msgid "ASR (Answer Seize Ratio)" 420 | #~ msgstr "ASR" 421 | 422 | #~ msgid "Is less than" 423 | #~ msgstr "Меньше чем" 424 | 425 | #~ msgid "Is greater than" 426 | #~ msgstr "Больше чем" 427 | 428 | #~ msgid "Decrease by more than" 429 | #~ msgstr "Снижение более чем на" 430 | 431 | #~ msgid "Increase by more than" 432 | #~ msgstr "Увеличение более чем на" 433 | 434 | #~ msgid "Percentage decrease by more than" 435 | #~ msgstr "Percentage yвеличится более чем на" 436 | 437 | #~ msgid "Percentage increase by more than" 438 | #~ msgstr "Percentage yвеличится более чем на" 439 | 440 | #~ msgid "Same day" 441 | #~ msgstr "Тот же день" 442 | 443 | #~ msgid "Same day in the previous week" 444 | #~ msgstr "Тот же день на предыдущей неделе" 445 | 446 | #~ msgid "No alarm sent" 447 | #~ msgstr "Нет оповещений для отправки" 448 | 449 | #~ msgid "Alarm Sent" 450 | #~ msgstr "Оповещение отправлено" 451 | 452 | #~ msgid "Label" 453 | #~ msgstr "Этикетка" 454 | 455 | #~ msgid "Prefix" 456 | #~ msgstr "Префикс" 457 | 458 | #~ msgid "Alert Remove Prefix" 459 | #~ msgstr "Оповещение Удалить префикс" 460 | 461 | #~ msgid "Alert Remove Prefixes" 462 | #~ msgstr "Оповещение удалить префиксы" 463 | 464 | #~ msgid "Name" 465 | #~ msgstr "Имя" 466 | 467 | #~ msgid "Period" 468 | #~ msgstr "Период" 469 | 470 | #~ msgid "Interval to apply alarm" 471 | #~ msgstr "Интервал применять сигнализации" 472 | 473 | #~ msgid "Type" 474 | #~ msgstr "Тип" 475 | 476 | #~ msgid "" 477 | #~ "ALOC (average length of call) ; ASR (answer seize ratio) ; CIC " 478 | #~ "(Consecutive Incomplete Calls) " 479 | #~ msgstr "" 480 | #~ "ALOC (средняя продолжительность разговора), ASR (ответить захватить " 481 | #~ "отношения); CIC (последовательный Неполное звонки)" 482 | 483 | #~ msgid "Condition" 484 | #~ msgstr "Состояние" 485 | 486 | #~ msgid "Value" 487 | #~ msgstr "Значение" 488 | 489 | #~ msgid "Input the value for the alert" 490 | #~ msgstr "Введите значение для предупреждения" 491 | 492 | #~ msgid "Status" 493 | #~ msgstr "Статус" 494 | 495 | #~ msgid "Email to send alarm" 496 | #~ msgstr "Электронной почты для отправки тревоги" 497 | 498 | #~ msgid "Alarm" 499 | #~ msgstr "Сигнализация" 500 | 501 | #~ msgid "Alarms" 502 | #~ msgstr "Сигнализация" 503 | 504 | #~ msgid "Select Alarm" 505 | #~ msgstr "Выбор сигнализации" 506 | 507 | #~ msgid "Calculated value" 508 | #~ msgstr "Подсчитанные значения" 509 | 510 | #~ msgid "Alarm Report" 511 | #~ msgstr "Сигнализация отчет" 512 | 513 | #~ msgid "Alarms Report" 514 | #~ msgstr "Сигнализация Сообщить" 515 | 516 | #~ msgid "Select Country" 517 | #~ msgstr "Выбрать страну" 518 | 519 | #~ msgid "Blacklist" 520 | #~ msgstr "Чёрный список" 521 | 522 | #~ msgid "Whitelist" 523 | #~ msgstr "Белый список" 524 | 525 | #~ msgid "Alert Message \"%(user)s\" - \"%(user_id)s\"" 526 | #~ msgstr "Предупреждающее сообщение \"%(user)s\" - \"%(user_id)s\"" 527 | 528 | #~ msgid "CDR Report" 529 | #~ msgstr "CDR отчетов" 530 | 531 | #~ msgid "Task Manager" 532 | #~ msgstr "Менеджер задач" 533 | 534 | #~ msgid "Dashboard Stats" 535 | #~ msgstr "Панель статистики" 536 | 537 | #~ msgid "Recent Actions" 538 | #~ msgstr "Последние действия" 539 | 540 | #~ msgid "CDR Voip" 541 | #~ msgstr "CDR Voip" 542 | 543 | #~ msgid "Country Dialcode" 544 | #~ msgstr "Страна Dialcode" 545 | 546 | #~ msgid "Quick links" 547 | #~ msgstr "Быстрые ссылки" 548 | 549 | #~ msgid "Go to CDR-Stats.org" 550 | #~ msgstr "Перейти на CDR-Stats.org" 551 | 552 | #~ msgid "Change password" 553 | #~ msgstr "Смена пароля" 554 | 555 | #~ msgid "Log out" 556 | #~ msgstr "Выход" 557 | 558 | #~ msgid "Latest CDR-Stats News" 559 | #~ msgstr "Последние новости CDR-Stats" 560 | 561 | #~ msgid "CDR-Stats" 562 | #~ msgstr "CDR-Stats" 563 | 564 | #~ msgid "Applications" 565 | #~ msgstr "Приложения" 566 | 567 | #~ msgid "Administration" 568 | #~ msgstr "Управление" 569 | 570 | #~ msgid "API Explorer" 571 | #~ msgstr "API Обозреватель" 572 | 573 | #~ msgid "Customer Panel" 574 | #~ msgstr "Клиент группы" 575 | 576 | #~ msgid "Username:" 577 | #~ msgstr "Имя пользователя:" 578 | 579 | #~ msgid "Password:" 580 | #~ msgstr "Пароль:" 581 | 582 | #~ msgid "Disabled Account" 583 | #~ msgstr "Счет для инвалидов" 584 | 585 | #~ msgid "Invalid Login." 586 | #~ msgstr "Неверный Войти." 587 | 588 | #~ msgid "Enter Valid User Credentials." 589 | #~ msgstr "Введите действительные учетные данные пользователя." 590 | 591 | #~ msgid "CDR-Stats : API Documentation" 592 | #~ msgstr "CDR-Stats : API документация" 593 | 594 | #~ msgid "Accepted methods" 595 | #~ msgstr "Принятые методы" 596 | 597 | #~ msgid "CDR-Stats Admin" 598 | #~ msgstr "CDR-Статистика Админ" 599 | 600 | #~ msgid " By %(filter_title)s " 601 | #~ msgstr "К %(filter_title)s " 602 | 603 | #~ msgid "Home" 604 | #~ msgstr "Дома" 605 | 606 | #~ msgid "Sample File" 607 | #~ msgstr "Пример файла" 608 | 609 | #~ msgid "Mandatory fields to import" 610 | #~ msgstr "Обязательные поля для импорта" 611 | 612 | #~ msgid "Extra fields to import" 613 | #~ msgstr "Дополнительные поля для импорта" 614 | 615 | #~ msgid "Submit" 616 | #~ msgstr "Представлять" 617 | 618 | #~ msgid "Reset" 619 | #~ msgstr "Сброс" 620 | 621 | #~ msgid "Contact(s) imported" 622 | #~ msgstr "Контакт (ы), ввозимые" 623 | 624 | #~ msgid "Contact(s) not imported" 625 | #~ msgstr "Контакт (ы) не импортируется" 626 | 627 | #~ msgid "Type mismatch" 628 | #~ msgstr "Несоответствие типа" 629 | 630 | #~ msgid "Select country" 631 | #~ msgstr "Выберите страну" 632 | 633 | #~ msgid "Select all prefixes" 634 | #~ msgstr "Выбрать все префиксы" 635 | 636 | #~ msgid "Blacklist the selected prefixes" 637 | #~ msgstr "Черный список выбранных префиксы" 638 | 639 | #~ msgid "Blacklist the selected country" 640 | #~ msgstr "Черный список выбранной страны" 641 | 642 | #~ msgid "Add %(name)s" 643 | #~ msgstr "Добавить %(name)s" 644 | 645 | #, fuzzy 646 | #~ msgid "Please correct the error below." 647 | #~ msgid_plural "Please correct the errors below." 648 | #~ msgstr[0] "Фильтр" 649 | #~ msgstr[1] "Фильтр" 650 | #~ msgstr[2] "Фильтр" 651 | 652 | #~ msgid "CDR Alert" 653 | #~ msgstr "CDR отчетов" 654 | 655 | #~ msgid "Add" 656 | #~ msgstr "Добавлять" 657 | 658 | #~ msgid "Change" 659 | #~ msgstr "Изменение" 660 | 661 | #~ msgid "API Browser" 662 | #~ msgstr "API браузера" 663 | 664 | #~ msgid "Dashboard" 665 | #~ msgstr "Приборная панель" 666 | 667 | #~ msgid "Search" 668 | #~ msgstr "Поиск" 669 | 670 | #~ msgid "Analytics" 671 | #~ msgstr "Анализ" 672 | 673 | #~ msgid "Compare" 674 | #~ msgstr "Сравнение" 675 | 676 | #~ msgid "Realtime" 677 | #~ msgstr "Реальном времени" 678 | 679 | #~ msgid "Concurrent" 680 | #~ msgstr "Одновременных вызовов" 681 | 682 | #~ msgid "Report" 683 | #~ msgstr "CDR отчетов" 684 | 685 | #~ msgid "Country Report" 686 | #~ msgstr "Отчёт по стране" 687 | 688 | #~ msgid "World Map Report" 689 | #~ msgstr "Отчёт на карте мира" 690 | 691 | #~ msgid "Mail Report" 692 | #~ msgstr "Отчёт на почту" 693 | 694 | #~ msgid "Account settings" 695 | #~ msgstr "Настройки аккаунта" 696 | 697 | #~ msgid "Change Language" 698 | #~ msgstr "Сменить язык" 699 | 700 | #~ msgid "advanced search" 701 | #~ msgstr "расширенный поиск" 702 | 703 | #~ msgid "secs" 704 | #~ msgstr "сек" 705 | 706 | #~ msgid "Calls" 707 | #~ msgstr "Звонки" 708 | 709 | #~ msgid "country call statistics" 710 | #~ msgstr "Статистика стране вызова" 711 | 712 | #~ msgid "calls by country" 713 | #~ msgstr "Звонков в час" 714 | 715 | #~ msgid "top" 716 | #~ msgstr "топ" 717 | 718 | #~ msgid "World" 719 | #~ msgstr "Мир" 720 | 721 | #~ msgid "world" 722 | #~ msgstr "Мир" 723 | 724 | #~ msgid "Total" 725 | #~ msgstr "Общий" 726 | 727 | #~ msgid "Duration by Country" 728 | #~ msgstr "Продолжительность по странам" 729 | 730 | #~ msgid "duration by country" 731 | #~ msgstr "Продолжительность по стране" 732 | 733 | #~ msgid "minutes" 734 | #~ msgstr "минуты" 735 | 736 | #~ msgid "Call Statistics" 737 | #~ msgstr "Статистика звонков" 738 | 739 | #~ msgid "call totals report" 740 | #~ msgstr "Отчет вызова итоги" 741 | 742 | #~ msgid "Total Calls" 743 | #~ msgstr "Всего звонков" 744 | 745 | #~ msgid "Average Calls Per Hour" 746 | #~ msgstr "Средняя звонков в час" 747 | 748 | #~ msgid "Total Duration" 749 | #~ msgstr "Продолжительность всего" 750 | 751 | #~ msgid "countries report" 752 | #~ msgstr "страны сообщают" 753 | 754 | #~ msgid "5 most called countries" 755 | #~ msgstr "5 самых называемые страны" 756 | 757 | #~ msgid "No record found" 758 | #~ msgstr "Не найдены записи" 759 | 760 | #~ msgid "FreeSWITCH CDR" 761 | #~ msgstr "FreeSWITCH CDR" 762 | 763 | #~ msgid "channel_data" 764 | #~ msgstr "channel_data" 765 | 766 | #~ msgid "callflow" 767 | #~ msgstr "callflow" 768 | 769 | #~ msgid "app_log" 770 | #~ msgstr "app_log" 771 | 772 | #~ msgid "variables" 773 | #~ msgstr "переменные" 774 | 775 | #~ msgid "concurrent calls" 776 | #~ msgstr "одновременных вызовов" 777 | 778 | #~ msgid "Concurrent Calls" 779 | #~ msgstr "Одновременных вызовов" 780 | 781 | #~ msgid "CDR Mail Report" 782 | #~ msgstr "CDR письмо с отчетом" 783 | 784 | #~ msgid "Save" 785 | #~ msgstr "Сохранить" 786 | 787 | #~ msgid "Preview of the mail report" 788 | #~ msgstr "Предварительный просмотр почты отчет" 789 | 790 | #~ msgid "Jan" 791 | #~ msgstr "Январь" 792 | 793 | #~ msgid "Feb" 794 | #~ msgstr "Февраль" 795 | 796 | #~ msgid "Mar" 797 | #~ msgstr "Март" 798 | 799 | #~ msgid "Apr" 800 | #~ msgstr "Апрель" 801 | 802 | #~ msgid "May" 803 | #~ msgstr "Может" 804 | 805 | #~ msgid "Jun" 806 | #~ msgstr "Июнь" 807 | 808 | #~ msgid "Jul" 809 | #~ msgstr "Июль" 810 | 811 | #~ msgid "Aug" 812 | #~ msgstr "Август" 813 | 814 | #~ msgid "Sep" 815 | #~ msgstr "Сентябрь" 816 | 817 | #~ msgid "Oct" 818 | #~ msgstr "Октябрь" 819 | 820 | #~ msgid "Nov" 821 | #~ msgstr "Ноябрь" 822 | 823 | #~ msgid "Dec" 824 | #~ msgstr "Декабрь" 825 | 826 | #~ msgid "January" 827 | #~ msgstr "Январь" 828 | 829 | #~ msgid "February" 830 | #~ msgstr "Февраль" 831 | 832 | #~ msgid "March" 833 | #~ msgstr "Марш" 834 | 835 | #~ msgid "April" 836 | #~ msgstr "Апрель" 837 | 838 | #~ msgid "June" 839 | #~ msgstr "Июнь" 840 | 841 | #~ msgid "July" 842 | #~ msgstr "Июль" 843 | 844 | #~ msgid "August" 845 | #~ msgstr "Август" 846 | 847 | #~ msgid "September" 848 | #~ msgstr "Сентябрь" 849 | 850 | #~ msgid "October" 851 | #~ msgstr "Октябрь" 852 | 853 | #~ msgid "November" 854 | #~ msgstr "Ноябрь" 855 | 856 | #~ msgid "December" 857 | #~ msgstr "Декабрь" 858 | 859 | #~ msgid "Hour" 860 | #~ msgstr "Час" 861 | 862 | #~ msgid "Load by Hour" 863 | #~ msgstr "Нагрузка за час" 864 | 865 | #~ msgid "Load by Day" 866 | #~ msgstr "Нагрузка за день" 867 | 868 | #~ msgid "Load by Month" 869 | #~ msgstr "Нагрузка за месяц" 870 | 871 | #~ msgid "Points Off" 872 | #~ msgstr "Точки выключены" 873 | 874 | #~ msgid "Points On" 875 | #~ msgstr "Точки включены" 876 | 877 | #~ msgid "Count" 878 | #~ msgstr "Считать" 879 | 880 | #~ msgid "to" 881 | #~ msgstr "к" 882 | 883 | #~ msgid "with previous" 884 | #~ msgstr "с предыдущим" 885 | 886 | #~ msgid "days" 887 | #~ msgstr "дней" 888 | 889 | #~ msgid "CDR View" 890 | #~ msgstr "Просмотр CDR" 891 | 892 | #~ msgid "calls detail records" 893 | #~ msgstr "призывает подробные записи" 894 | 895 | #~ msgid "report by day" 896 | #~ msgstr "Отчёт за день" 897 | 898 | #~ msgid "Bill Seconds" 899 | #~ msgstr "Билл секунд" 900 | 901 | #~ msgid "Authorized call" 902 | #~ msgstr "Авторизованый звонок" 903 | 904 | #~ msgid "Unauthorized call" 905 | #~ msgstr "Неавтоизованый звонок" 906 | 907 | #~ msgid "call" 908 | #~ msgstr "называть" 909 | 910 | #~ msgid "Show details" 911 | #~ msgstr "Показать детали" 912 | 913 | #~ msgid "Call Details" 914 | #~ msgstr "Детали звонка" 915 | 916 | #~ msgid "Close" 917 | #~ msgstr "Закрыть" 918 | 919 | #~ msgid "show rows" 920 | #~ msgstr "показать строк" 921 | 922 | #~ msgid "total calls" 923 | #~ msgstr "всего звонков" 924 | 925 | #~ msgid "Export CSV file" 926 | #~ msgstr "Экспорт CSV файл" 927 | 928 | #~ msgid "daily report" 929 | #~ msgstr "ежедневный отчёт" 930 | 931 | #~ msgid "Graphic" 932 | #~ msgstr "Графический" 933 | 934 | #~ msgid "Average Connection Time" 935 | #~ msgstr "Средняя Время связи" 936 | 937 | #~ msgid "ACT" 938 | #~ msgstr "ACT" 939 | 940 | #~ msgid "Confirm deletion?" 941 | #~ msgstr "Подтвердите удаление?" 942 | 943 | #~ msgid "" 944 | #~ "No data can be found in your collections, please make sure the import of " 945 | #~ "data is working correctly." 946 | #~ msgstr "" 947 | #~ "Нет данных можно найти в вашей коллекции, пожалуйста, убедитесь, что " 948 | #~ "импорт данных работает правильно." 949 | 950 | #~ msgid "" 951 | #~ "is an application that allows you to browse and analyse CDR (Call Detail " 952 | #~ "Records)." 953 | #~ msgstr "" 954 | #~ "это приложение, которое позволяет вам просматривать и анализировать CDR " 955 | #~ "(Call Detail Records)." 956 | 957 | #~ msgid "Different reporting tools are provided :" 958 | #~ msgstr "Различные инструменты отчетности, если:" 959 | 960 | #~ msgid "Search CDR: Search, filter, display and export CDR." 961 | #~ msgstr "Поиск CDR: поиск, фильтрация, отображение и экспорт CDR." 962 | 963 | #~ msgid "" 964 | #~ "Monthly Report: Summarise and compare call traffic history month on month." 965 | #~ msgstr "" 966 | #~ "Ежемесячный доклад: Подведение итогов и сравнить голосового трафика " 967 | #~ "истории месяц на месяц." 968 | 969 | #~ msgid "" 970 | #~ "Analyse CDR : Analyse and compare call volumes with the previous day’s " 971 | #~ "traffic." 972 | #~ msgstr "" 973 | #~ "Анализ CDR: Анализ и сравнение объема звонков с оборота за предыдущий " 974 | #~ "день." 975 | 976 | #~ msgid "" 977 | #~ "Daily Traffic : Graph and filter traffic loads by hour during the day." 978 | #~ msgstr "" 979 | #~ "Ежедневный трафик: График нагрузки и фильтрации трафика на час в течение " 980 | #~ "дня." 981 | 982 | #~ msgid "Learn more" 983 | #~ msgstr "Узнать больше" 984 | 985 | #~ msgid "Support" 986 | #~ msgstr "Поддержка" 987 | 988 | #~ msgid "" 989 | #~ "Star2Billing S.L. offers consultancy including installation, training and " 990 | #~ "customisation on CDR-Stats." 991 | #~ msgstr "" 992 | #~ "Star2Billing SL предлагает консультации, включая установку, настройку и " 993 | #~ "обучение по CDR-Stats" 994 | 995 | #~ msgid "Contact us at" 996 | #~ msgstr "Свяжитесь с нами по" 997 | 998 | #~ msgid "for more information" 999 | #~ msgstr "для получения дополнительной информации" 1000 | 1001 | #~ msgid "Get Support" 1002 | #~ msgstr "Получить поддержку" 1003 | 1004 | #~ msgid "Licensing" 1005 | #~ msgstr "Лицензирование" 1006 | 1007 | #~ msgid "CDR-Stats is licensed under" 1008 | #~ msgstr "CDR-Stats под лицензией" 1009 | 1010 | #~ msgid "" 1011 | #~ "however an alternative license can be purchased if the MPL V2 license is " 1012 | #~ "not suitable for your requirements." 1013 | #~ msgstr "" 1014 | #~ "Однако альтернативные лицензии могут быть приобретены при наличии " 1015 | #~ "лицензии MPL V2 не подходит для ваших требований." 1016 | 1017 | #~ msgid "View Licensing details" 1018 | #~ msgstr "Посмотреть подробности лицензирования" 1019 | 1020 | #~ msgid "Logout" 1021 | #~ msgstr "Выйти" 1022 | 1023 | #~ msgid "Login" 1024 | #~ msgstr "Войти" 1025 | 1026 | #~ msgid "CDR-Stats report of " 1027 | #~ msgstr "CDR-статистика доклад" 1028 | 1029 | #~ msgid "Last 10 Calls" 1030 | #~ msgstr "Последние 10 звонков" 1031 | 1032 | #~ msgid "Clid" 1033 | #~ msgstr "CLID" 1034 | 1035 | #~ msgid "Bill sec" 1036 | #~ msgstr "Билл сек" 1037 | 1038 | #~ msgid "Calls Status" 1039 | #~ msgstr "Call Статистика" 1040 | 1041 | #~ msgid "Customer Interface" 1042 | #~ msgstr "Интерфейс пользователя" 1043 | 1044 | #~ msgid "Hide search" 1045 | #~ msgstr "Скрыть поиск" 1046 | 1047 | #~ msgid "Please login by clicking on login button" 1048 | #~ msgstr "Пожалуйста, войдите, нажав на кнопку Войти" 1049 | 1050 | #~ msgid "Forgot password?" 1051 | #~ msgstr "Забыли пароль?" 1052 | 1053 | #~ msgid "Display language" 1054 | #~ msgstr "Показать язык" 1055 | 1056 | #~ msgid "country calls detail" 1057 | #~ msgstr "Страна Dialcode" 1058 | 1059 | #~ msgid "country list" 1060 | #~ msgstr "список стран" 1061 | 1062 | #~ msgid "World map Report" 1063 | #~ msgstr "Глобальный доклад" 1064 | 1065 | #~ msgid "CDR-Stats APIs" 1066 | #~ msgstr "CDR-Stats APIs" 1067 | 1068 | #~ msgid "Browser playground" 1069 | #~ msgstr "Браузер площадка" 1070 | 1071 | #~ msgid "Password reset complete" 1072 | #~ msgstr "Пароль сброшен успешно" 1073 | 1074 | #~ msgid "Your password has been set. You may go ahead and log in now." 1075 | #~ msgstr "" 1076 | #~ "Ваш пароль был установлен. Вы можете пойти дальше и войти в систему." 1077 | 1078 | #~ msgid "Log in" 1079 | #~ msgstr "Войти" 1080 | 1081 | #~ msgid "Password reset" 1082 | #~ msgstr "Сброс пароля" 1083 | 1084 | #~ msgid "Enter new password" 1085 | #~ msgstr "Введите новый пароль" 1086 | 1087 | #~ msgid "Please enter your new password twice for verification." 1088 | #~ msgstr "Пожалуйста, введите новый пароль дважды для проверки." 1089 | 1090 | #~ msgid "Change my password" 1091 | #~ msgstr "Сменить мой пароль" 1092 | 1093 | #~ msgid "Password reset unsuccessful" 1094 | #~ msgstr "Пароль не сброшен" 1095 | 1096 | #~ msgid "" 1097 | #~ "The password reset link was invalid, possibly because it has already been " 1098 | #~ "used. Please request a new password reset." 1099 | #~ msgstr "" 1100 | #~ "Линк для сброса пароля неправильный, т.к. уже использован. Пожалуйста, " 1101 | #~ "выполните сброс ещё раз." 1102 | 1103 | #~ msgid "Password reset successful" 1104 | #~ msgstr "Пароль сброшен успешно" 1105 | 1106 | #~ msgid "" 1107 | #~ "We've e-mailed you instructions for setting your password to the e-mail " 1108 | #~ "address you submitted. You should be receiving it shortly." 1109 | #~ msgstr "" 1110 | #~ "Мы по электронной почте инструкции по установке пароля на адрес " 1111 | #~ "электронной почты, который Вы представили. Вы должны получить его в " 1112 | #~ "ближайшее время." 1113 | 1114 | #~ msgid "" 1115 | #~ "You're receiving this e-mail because you requested a password reset for " 1116 | #~ "your user account at %(site_name)s." 1117 | #~ msgstr "" 1118 | #~ "Вы получили это письмо, потому что вы просили сброса пароля для учетной " 1119 | #~ "записи пользователя %(site_name)s." 1120 | 1121 | #~ msgid "Please go to the following page and choose a new password:" 1122 | #~ msgstr "Пожалуйста, перейдите на следующую страницу и выбрать новый пароль:" 1123 | 1124 | #~ msgid "Your username, in case you've forgotten:" 1125 | #~ msgstr "Ваше имя пользователя, в случае, если вы забыли:" 1126 | 1127 | #~ msgid "The %(site_name)s team" 1128 | #~ msgstr "%(site_name)s команда" 1129 | 1130 | #~ msgid "Forgotten your password?" 1131 | #~ msgstr "Забыли пароль?" 1132 | 1133 | #~ msgid "" 1134 | #~ "Enter your e-mail address below, and we'll e-mail instructions for " 1135 | #~ "setting a new one." 1136 | #~ msgstr "" 1137 | #~ "Введите адрес электронной почты ниже, и мы будем по электронной почте " 1138 | #~ "инструкции по установке нового." 1139 | 1140 | #~ msgid "Reset my password" 1141 | #~ msgstr "Сброс пароля" 1142 | 1143 | #~ msgid "Settings" 1144 | #~ msgstr "Настройки" 1145 | 1146 | #~ msgid "User detail, Password and notifications" 1147 | #~ msgstr "Пользователь подробно, паролей и уведомлений" 1148 | 1149 | #~ msgid "Password" 1150 | #~ msgstr "Пароль" 1151 | 1152 | #~ msgid "Change language " 1153 | #~ msgstr "Сменить язык" 1154 | 1155 | #~ msgid "Select language" 1156 | #~ msgstr "Выбор языка" 1157 | 1158 | #~ msgid "Previous" 1159 | #~ msgstr "Предыдущий" 1160 | 1161 | #~ msgid "Next" 1162 | #~ msgstr "Далее" 1163 | 1164 | #~ msgid "Thank you for using CDR-Stats." 1165 | #~ msgstr "Спасибо за использование CDR-Stats." 1166 | 1167 | #~ msgid "Log in again" 1168 | #~ msgstr "Войти снова" 1169 | 1170 | #~ msgid "Personal info" 1171 | #~ msgstr "Персональная информация" 1172 | 1173 | #~ msgid "Permission" 1174 | #~ msgstr "Разрешение" 1175 | 1176 | #~ msgid "Important dates" 1177 | #~ msgstr "Важные даты" 1178 | 1179 | #~ msgid "Notifications are successfully marked as read." 1180 | #~ msgstr "Уведомления успешно отмечены как прочитанные." 1181 | 1182 | #~ msgid "Notifications are not marked as read." 1183 | #~ msgstr "Уведомления не отмечены как прочитанные." 1184 | 1185 | #~ msgid "Mark notification as seen" 1186 | #~ msgstr "Отметить уведомление, как видно" 1187 | 1188 | #~ msgid "Afar" 1189 | #~ msgstr "Издалека" 1190 | 1191 | #~ msgid "Abkhazian" 1192 | #~ msgstr "Абхазский" 1193 | 1194 | #~ msgid "Afrikaans" 1195 | #~ msgstr "Африкаанс" 1196 | 1197 | #~ msgid "Akan" 1198 | #~ msgstr "Акан" 1199 | 1200 | #~ msgid "Albanian" 1201 | #~ msgstr "Албанский" 1202 | 1203 | #~ msgid "Amharic" 1204 | #~ msgstr "Амхарский" 1205 | 1206 | #~ msgid "Arabic" 1207 | #~ msgstr "Арабский" 1208 | 1209 | #~ msgid "Aragonese" 1210 | #~ msgstr "Арагонский" 1211 | 1212 | #~ msgid "Armenian" 1213 | #~ msgstr "Армянский" 1214 | 1215 | #~ msgid "Assamese" 1216 | #~ msgstr "Ассамский" 1217 | 1218 | #~ msgid "Avaric" 1219 | #~ msgstr "Avaric" 1220 | 1221 | #~ msgid "Avestan" 1222 | #~ msgstr "Авестийская" 1223 | 1224 | #~ msgid "Aymara" 1225 | #~ msgstr "Аймара" 1226 | 1227 | #~ msgid "Azerbaijani" 1228 | #~ msgstr "Азербайджанский" 1229 | 1230 | #~ msgid "Bashkir" 1231 | #~ msgstr "Башкирский" 1232 | 1233 | #~ msgid "Bambara" 1234 | #~ msgstr "Бамбара" 1235 | 1236 | #~ msgid "Basque" 1237 | #~ msgstr "Баскский" 1238 | 1239 | #~ msgid "Belarusian" 1240 | #~ msgstr "Белорусской" 1241 | 1242 | #~ msgid "Bengali" 1243 | #~ msgstr "Бенгальский" 1244 | 1245 | #~ msgid "Bihari languages" 1246 | #~ msgstr "Бихари языках" 1247 | 1248 | #~ msgid "Bislama" 1249 | #~ msgstr "Бислама" 1250 | 1251 | #~ msgid "Tibetan" 1252 | #~ msgstr "Тибетский" 1253 | 1254 | #~ msgid "Bosnian" 1255 | #~ msgstr "Боснийский" 1256 | 1257 | #~ msgid "Breton" 1258 | #~ msgstr "Бретонец" 1259 | 1260 | #~ msgid "Bulgarian" 1261 | #~ msgstr "Болгарский" 1262 | 1263 | #~ msgid "Burmese" 1264 | #~ msgstr "Бирманский" 1265 | 1266 | #~ msgid "Catalan; Valencian" 1267 | #~ msgstr "Каталонский, Валенсия" 1268 | 1269 | #~ msgid "Czech" 1270 | #~ msgstr "Чешский" 1271 | 1272 | #~ msgid "Chamorro" 1273 | #~ msgstr "Чаморро" 1274 | 1275 | #~ msgid "Chechen" 1276 | #~ msgstr "Чеченский" 1277 | 1278 | #~ msgid "Chinese" 1279 | #~ msgstr "Китайский" 1280 | 1281 | #~ msgid "" 1282 | #~ "Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church " 1283 | #~ "Slavonic" 1284 | #~ msgstr "" 1285 | #~ "Церковнославянский, старославянский, церковнославянский, старый " 1286 | #~ "болгарский, старославянский" 1287 | 1288 | #~ msgid "Chuvash" 1289 | #~ msgstr "Чувашский" 1290 | 1291 | #~ msgid "Cornish" 1292 | #~ msgstr "Корниш" 1293 | 1294 | #~ msgid "Corsican" 1295 | #~ msgstr "Корсиканский" 1296 | 1297 | #~ msgid "Cree" 1298 | #~ msgstr "Cree" 1299 | 1300 | #~ msgid "Welsh" 1301 | #~ msgstr "Валлийский" 1302 | 1303 | #~ msgid "Danish" 1304 | #~ msgstr "Датский" 1305 | 1306 | #~ msgid "Divehi; Dhivehi; Maldivian" 1307 | #~ msgstr "Divehi; дивехи; мальдивских" 1308 | 1309 | #~ msgid "Dutch; Flemish" 1310 | #~ msgstr "Голландский, фламандский" 1311 | 1312 | #~ msgid "Dzongkha" 1313 | #~ msgstr "Dzongkha" 1314 | 1315 | #~ msgid "Greek, Modern (1453-)" 1316 | #~ msgstr "Греческий, Modern (1453 -)" 1317 | 1318 | #~ msgid "Esperanto" 1319 | #~ msgstr "Эсперанто" 1320 | 1321 | #~ msgid "Estonian" 1322 | #~ msgstr "Эстонский" 1323 | 1324 | #~ msgid "Ewe" 1325 | #~ msgstr "Овца" 1326 | 1327 | #~ msgid "Faroese" 1328 | #~ msgstr "Фарерский" 1329 | 1330 | #~ msgid "Persian" 1331 | #~ msgstr "Персидский" 1332 | 1333 | #~ msgid "Fijian" 1334 | #~ msgstr "Фиджийских" 1335 | 1336 | #~ msgid "Finnish" 1337 | #~ msgstr "Финский" 1338 | 1339 | #~ msgid "Western Frisian" 1340 | #~ msgstr "Западные Фризские" 1341 | 1342 | #~ msgid "Fulah" 1343 | #~ msgstr "Фулах" 1344 | 1345 | #~ msgid "Georgian" 1346 | #~ msgstr "Грузинский" 1347 | 1348 | #~ msgid "Gaelic; Scottish Gaelic" 1349 | #~ msgstr "Гэльский, шотландский гэльский" 1350 | 1351 | #~ msgid "Irish" 1352 | #~ msgstr "Ирландский" 1353 | 1354 | #~ msgid "Galician" 1355 | #~ msgstr "Галицко" 1356 | 1357 | #~ msgid "Manx" 1358 | #~ msgstr "Manx" 1359 | 1360 | #~ msgid "Guarani" 1361 | #~ msgstr "Гуарани" 1362 | 1363 | #~ msgid "Gujarati" 1364 | #~ msgstr "Продолжительность" 1365 | 1366 | #~ msgid "Haitian; Haitian Creole" 1367 | #~ msgstr "Гаитянский, гаитянский креольский" 1368 | 1369 | #~ msgid "Hausa" 1370 | #~ msgstr "Хауса" 1371 | 1372 | #~ msgid "Hebrew" 1373 | #~ msgstr "Иврит" 1374 | 1375 | #~ msgid "Herero" 1376 | #~ msgstr "Гереро" 1377 | 1378 | #~ msgid "Hindi" 1379 | #~ msgstr "Хинди" 1380 | 1381 | #~ msgid "Hiri Motu" 1382 | #~ msgstr "Хири Моту" 1383 | 1384 | #~ msgid "Croatian" 1385 | #~ msgstr "Хорватский" 1386 | 1387 | #~ msgid "Hungarian" 1388 | #~ msgstr "Венгерский" 1389 | 1390 | #~ msgid "Igbo" 1391 | #~ msgstr "Игбо" 1392 | 1393 | #~ msgid "Icelandic" 1394 | #~ msgstr "Исландский" 1395 | 1396 | #~ msgid "Ido" 1397 | #~ msgstr "Идо" 1398 | 1399 | #~ msgid "Sichuan Yi; Nuosu" 1400 | #~ msgstr "Сычуань Yi; Nuosu" 1401 | 1402 | #~ msgid "Inuktitut" 1403 | #~ msgstr "Инуктитут" 1404 | 1405 | #~ msgid "Interlingue; Occidental" 1406 | #~ msgstr "Интерлингве, Occidental" 1407 | 1408 | #~ msgid "Interlingua (International Auxiliary Language Association)" 1409 | #~ msgstr "Интерлингва (Международная ассоциация вспомогательного языка)" 1410 | 1411 | #~ msgid "Indonesian" 1412 | #~ msgstr "Индонезийский" 1413 | 1414 | #~ msgid "Inupiaq" 1415 | #~ msgstr "Инупиак" 1416 | 1417 | #~ msgid "Italian" 1418 | #~ msgstr "Итальянский" 1419 | 1420 | #~ msgid "Javanese" 1421 | #~ msgstr "Яванский" 1422 | 1423 | #~ msgid "Japanese" 1424 | #~ msgstr "Японский" 1425 | 1426 | #~ msgid "Kalaallisut; Greenlandic" 1427 | #~ msgstr "Гренландский, гренландский" 1428 | 1429 | #~ msgid "Kannada" 1430 | #~ msgstr "Каннада" 1431 | 1432 | #~ msgid "Kashmiri" 1433 | #~ msgstr "Кашмири" 1434 | 1435 | #~ msgid "Kanuri" 1436 | #~ msgstr "Канури" 1437 | 1438 | #~ msgid "Kazakh" 1439 | #~ msgstr "Казахский" 1440 | 1441 | #~ msgid "Central Khmer" 1442 | #~ msgstr "Центральный кхмерский" 1443 | 1444 | #~ msgid "Kikuyu; Gikuyu" 1445 | #~ msgstr "Кикуйю, Gikuyu" 1446 | 1447 | #~ msgid "Kinyarwanda" 1448 | #~ msgstr "Киньяруанда" 1449 | 1450 | #~ msgid "Kirghiz; Kyrgyz" 1451 | #~ msgstr "Киргизский, киргиз" 1452 | 1453 | #~ msgid "Komi" 1454 | #~ msgstr "Коми" 1455 | 1456 | #~ msgid "Kongo" 1457 | #~ msgstr "Конго" 1458 | 1459 | #~ msgid "Korean" 1460 | #~ msgstr "Корейский" 1461 | 1462 | #~ msgid "Kuanyama; Kwanyama" 1463 | #~ msgstr "Kuanyama; Kwanyama" 1464 | 1465 | #~ msgid "Kurdish" 1466 | #~ msgstr "Курдский" 1467 | 1468 | #~ msgid "Lao" 1469 | #~ msgstr "Лаосская" 1470 | 1471 | #~ msgid "Latin" 1472 | #~ msgstr "Латинский" 1473 | 1474 | #~ msgid "Latvian" 1475 | #~ msgstr "Латышский" 1476 | 1477 | #~ msgid "Limburgan; Limburger; Limburgish" 1478 | #~ msgstr "Limburgan; Limburger; лимбургский" 1479 | 1480 | #~ msgid "Lingala" 1481 | #~ msgstr "Лингала" 1482 | 1483 | #~ msgid "Lithuanian" 1484 | #~ msgstr "Литовский" 1485 | 1486 | #~ msgid "Luxembourgish; Letzeburgesch" 1487 | #~ msgstr "Люксембургский; Люксембургский" 1488 | 1489 | #~ msgid "Luba-Katanga" 1490 | #~ msgstr "Люба-Катанга" 1491 | 1492 | #~ msgid "Ganda" 1493 | #~ msgstr "Ганда" 1494 | 1495 | #~ msgid "Macedonian" 1496 | #~ msgstr "Македонский" 1497 | 1498 | #~ msgid "Marshallese" 1499 | #~ msgstr "Маршалловых Островов" 1500 | 1501 | #~ msgid "Malayalam" 1502 | #~ msgstr "Малаялам" 1503 | 1504 | #~ msgid "Maori" 1505 | #~ msgstr "Маори" 1506 | 1507 | #~ msgid "Marathi" 1508 | #~ msgstr "Маратхи" 1509 | 1510 | #~ msgid "Malay" 1511 | #~ msgstr "Малайский" 1512 | 1513 | #~ msgid "Malagasy" 1514 | #~ msgstr "Малагасийский" 1515 | 1516 | #~ msgid "Maltese" 1517 | #~ msgstr "Мальтийский" 1518 | 1519 | #~ msgid "Mongolian" 1520 | #~ msgstr "Монгольский" 1521 | 1522 | #~ msgid "Nauru" 1523 | #~ msgstr "Науру" 1524 | 1525 | #~ msgid "Navajo; Navaho" 1526 | #~ msgstr "Навахо, навахо" 1527 | 1528 | #~ msgid "Ndebele, South; South Ndebele" 1529 | #~ msgstr "Ндебеле, Южная, Юго-ндебеле" 1530 | 1531 | #~ msgid "Ndebele, North; North Ndebele" 1532 | #~ msgstr "Ндебеле, Северная, Северная ндебеле" 1533 | 1534 | #~ msgid "Ndonga" 1535 | #~ msgstr "Ndonga" 1536 | 1537 | #~ msgid "Nepali" 1538 | #~ msgstr "Непальский" 1539 | 1540 | #~ msgid "Norwegian Nynorsk; Nynorsk, Norwegian" 1541 | #~ msgstr "Норвежский нюнорск; нюнорск, Норвежский" 1542 | 1543 | #~ msgid "Bokmal, Norwegian; Norwegian Bokmal" 1544 | #~ msgstr "Букмол, норвежский, норвежский букмол" 1545 | 1546 | #~ msgid "Norwegian" 1547 | #~ msgstr "Норвежский" 1548 | 1549 | #~ msgid "Chichewa; Chewa; Nyanja" 1550 | #~ msgstr "Чичева; Chewa; ньянджа" 1551 | 1552 | #~ msgid "Occitan (post 1500)" 1553 | #~ msgstr "Окситанский (после 1500)" 1554 | 1555 | #~ msgid "Ojibwa" 1556 | #~ msgstr "Оджибва" 1557 | 1558 | #~ msgid "Oriya" 1559 | #~ msgstr "Ория" 1560 | 1561 | #~ msgid "Oromo" 1562 | #~ msgstr "Оромо" 1563 | 1564 | #~ msgid "Ossetian; Ossetic" 1565 | #~ msgstr "Осетинский, осетинский" 1566 | 1567 | #~ msgid "Panjabi; Punjabi" 1568 | #~ msgstr "Panjabi; панджаби" 1569 | 1570 | #~ msgid "Pali" 1571 | #~ msgstr "Пали" 1572 | 1573 | #~ msgid "Polish" 1574 | #~ msgstr "Польский" 1575 | 1576 | #~ msgid "Pushto; Pashto" 1577 | #~ msgstr "Пушту, пушту" 1578 | 1579 | #~ msgid "Quechua" 1580 | #~ msgstr "Кечуа" 1581 | 1582 | #~ msgid "Romansh" 1583 | #~ msgstr "Ретороманский" 1584 | 1585 | #~ msgid "Romanian; Moldavian; Moldovan" 1586 | #~ msgstr "Румынский, молдавский, молдавские" 1587 | 1588 | #~ msgid "Rundi" 1589 | #~ msgstr "Рунди" 1590 | 1591 | #~ msgid "Sango" 1592 | #~ msgstr "Санго" 1593 | 1594 | #~ msgid "Sanskrit" 1595 | #~ msgstr "Санскрит" 1596 | 1597 | #~ msgid "Sinhala; Sinhalese" 1598 | #~ msgstr "Сингальского; сингальского" 1599 | 1600 | #~ msgid "Slovak" 1601 | #~ msgstr "Словацкий" 1602 | 1603 | #~ msgid "Slovenian" 1604 | #~ msgstr "Словенский" 1605 | 1606 | #~ msgid "Northern Sami" 1607 | #~ msgstr "Северный саамский" 1608 | 1609 | #~ msgid "Samoan" 1610 | #~ msgstr "Самоа" 1611 | 1612 | #~ msgid "Shona" 1613 | #~ msgstr "Шона" 1614 | 1615 | #~ msgid "Sindhi" 1616 | #~ msgstr "Синдхи" 1617 | 1618 | #~ msgid "Somali" 1619 | #~ msgstr "Сомалийский" 1620 | 1621 | #~ msgid "Sotho, Southern" 1622 | #~ msgstr "Сото, Южный" 1623 | 1624 | #~ msgid "Spanish; Castilian" 1625 | #~ msgstr "Испанский, кастильский" 1626 | 1627 | #~ msgid "Sardinian" 1628 | #~ msgstr "Сардинский" 1629 | 1630 | #~ msgid "Serbian" 1631 | #~ msgstr "Сербский" 1632 | 1633 | #~ msgid "Swati" 1634 | #~ msgstr "Свати" 1635 | 1636 | #~ msgid "Sundanese" 1637 | #~ msgstr "Суданский" 1638 | 1639 | #~ msgid "Swahili" 1640 | #~ msgstr "Суахили" 1641 | 1642 | #~ msgid "Swedish" 1643 | #~ msgstr "Шведский" 1644 | 1645 | #~ msgid "Tahitian" 1646 | #~ msgstr "Tahitian" 1647 | 1648 | #~ msgid "Tamil" 1649 | #~ msgstr "Тамильский" 1650 | 1651 | #~ msgid "Tatar" 1652 | #~ msgstr "Татарский" 1653 | 1654 | #~ msgid "Telugu" 1655 | #~ msgstr "Телугу" 1656 | 1657 | #~ msgid "Tajik" 1658 | #~ msgstr "Таджикский" 1659 | 1660 | #~ msgid "Tagalog" 1661 | #~ msgstr "Тагальский" 1662 | 1663 | #~ msgid "Thai" 1664 | #~ msgstr "Тайский" 1665 | 1666 | #~ msgid "Tigrinya" 1667 | #~ msgstr "Тигринья" 1668 | 1669 | #~ msgid "Tonga (Tonga Islands)" 1670 | #~ msgstr "Тонга (Тонга)" 1671 | 1672 | #~ msgid "Tswana" 1673 | #~ msgstr "Тсвана" 1674 | 1675 | #~ msgid "Tsonga" 1676 | #~ msgstr "Тсонга" 1677 | 1678 | #~ msgid "Turkmen" 1679 | #~ msgstr "Туркменский" 1680 | 1681 | #~ msgid "Turkish" 1682 | #~ msgstr "Турецкий" 1683 | 1684 | #~ msgid "Twi" 1685 | #~ msgstr "Тви" 1686 | 1687 | #~ msgid "Uighur; Uyghur" 1688 | #~ msgstr "Уйгурский, уйгурские" 1689 | 1690 | #~ msgid "Ukrainian" 1691 | #~ msgstr "Украинский" 1692 | 1693 | #~ msgid "Urdu" 1694 | #~ msgstr "Язык урду" 1695 | 1696 | #~ msgid "Uzbek" 1697 | #~ msgstr "Узбекский" 1698 | 1699 | #~ msgid "Venda" 1700 | #~ msgstr "Венда" 1701 | 1702 | #~ msgid "Vietnamese" 1703 | #~ msgstr "Вьетнамский" 1704 | 1705 | #~ msgid "Volapuk" 1706 | #~ msgstr "Волапюк" 1707 | 1708 | #~ msgid "Walloon" 1709 | #~ msgstr "Валлонский" 1710 | 1711 | #~ msgid "Wolof" 1712 | #~ msgstr "Волоф" 1713 | 1714 | #~ msgid "Xhosa" 1715 | #~ msgstr "Коса" 1716 | 1717 | #~ msgid "Yiddish" 1718 | #~ msgstr "Идиш" 1719 | 1720 | #~ msgid "Yoruba" 1721 | #~ msgstr "Йоруба" 1722 | 1723 | #~ msgid "Zhuang; Chuang" 1724 | #~ msgstr "Чжуан, Чжуан-" 1725 | 1726 | #~ msgid "Zulu" 1727 | #~ msgstr "Зулусский" 1728 | 1729 | #~ msgid "Stores language codes" 1730 | #~ msgstr "Коды магазины язык" 1731 | 1732 | #~ msgid "Email address" 1733 | #~ msgstr "Адрес электронной почты" 1734 | 1735 | #~ msgid "Average Length of Call" 1736 | #~ msgstr "Средняя продолжительность вызова" 1737 | 1738 | #~ msgid "Answer Seize Ratio" 1739 | #~ msgstr "Ответ Лови соотношение" 1740 | 1741 | #~ msgid "Blacklist Prefix" 1742 | #~ msgstr "Черный список префиксов" 1743 | 1744 | #~ msgid "Whitelist Prefix" 1745 | #~ msgstr "Белый список префиксов" 1746 | 1747 | #~ msgid "Address" 1748 | #~ msgstr "Адрес" 1749 | 1750 | #~ msgid "City" 1751 | #~ msgstr "Сити" 1752 | 1753 | #~ msgid "State" 1754 | #~ msgstr "Состояние" 1755 | 1756 | #~ msgid "Zip code" 1757 | #~ msgstr "Почтовый индекс" 1758 | 1759 | #~ msgid "Phone number" 1760 | #~ msgstr "Телефонный номер" 1761 | 1762 | #~ msgid "Fax Number" 1763 | #~ msgstr "Номер факса" 1764 | 1765 | #~ msgid "Company name" 1766 | #~ msgstr "Название фирмы" 1767 | 1768 | #~ msgid "Company website" 1769 | #~ msgstr "Веб-сайт компании" 1770 | 1771 | #~ msgid "Language" 1772 | #~ msgstr "Язык" 1773 | 1774 | #~ msgid "Note" 1775 | #~ msgstr "Внимание" 1776 | 1777 | #~ msgid "Report mail list" 1778 | #~ msgstr "Доклад рассылку" 1779 | 1780 | #~ msgid "Enter a valid e-mail address separated by commas." 1781 | #~ msgstr "" 1782 | #~ "Введите действительный адрес электронной почты, разделенных запятыми." 1783 | 1784 | #, fuzzy 1785 | #~ msgid "Can view API-Explorer" 1786 | #~ msgstr "Можно видеть, API-Explorer" 1787 | 1788 | #, fuzzy 1789 | #~ msgid "Can view CDR concurrent calls" 1790 | #~ msgstr "одновременных вызовов" 1791 | 1792 | #, fuzzy 1793 | #~ msgid "Can view CDR mail report" 1794 | #~ msgstr "Предварительный просмотр почты отчет" 1795 | 1796 | #, fuzzy 1797 | #~ msgid "Can view CDR country report" 1798 | #~ msgstr "Отчёт по стране" 1799 | 1800 | #~ msgid "User Profile" 1801 | #~ msgstr "Профиль пользователя" 1802 | 1803 | #~ msgid "Customer" 1804 | #~ msgstr "Клиент" 1805 | 1806 | #~ msgid "Customers" 1807 | #~ msgstr "Клиенты" 1808 | 1809 | #~ msgid "Admin" 1810 | #~ msgstr "Администратор" 1811 | 1812 | #~ msgid "Admins" 1813 | #~ msgstr "Администраторы" 1814 | 1815 | #~ msgid "Detail has been changed." 1816 | #~ msgstr "Деталь была изменена." 1817 | 1818 | #~ msgid "Please correct the errors below." 1819 | #~ msgstr "Пожалуйста, исправьте ошибки ниже." 1820 | 1821 | #~ msgid "Your password has been changed." 1822 | #~ msgstr "Ваш пароль был изменен." 1823 | -------------------------------------------------------------------------------- /frontend_notification/templates/frontend/frontend_notification/user_notification.html: -------------------------------------------------------------------------------- 1 | {% extends "frontend/master.html" %} 2 | {% load i18n pagination_tags common_tags frontend_notification_tags %} 3 | 4 | {% block extra_header %} 5 | 41 | {% endblock %} 42 | 43 | {% block content_header %} 44 |

{% trans "notifications"|capfirst %}

45 | {% endblock %} 46 | 47 | {% block content %} 48 | {% if msg_note %} 49 |
50 | {% trans "alert"|title %} : {{ msg_note|capfirst }} 51 |
52 | {% endif %} 53 | 54 | 55 |
56 |
57 |
58 | 61 | 65 |
66 | {% trans "mark all as read"|capfirst %} 67 |
68 |
69 |
70 | {% csrf_token %} 71 | {{ form.notification_list }} 72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 | {% csrf_token %} 80 |
81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | {% if all_user_notification %} 93 | {% autopaginate all_user_notification 10 %} 94 | {% for row in user_notification %} 95 | 96 | 97 | 98 | 99 | 100 | 101 | 106 | 107 | {% endfor %} 108 | {% else %} 109 | 110 | 113 | 114 | {% endif %} 115 |
{% sort_link coltitle.description col_name_with_order.description %}{% sort_link coltitle.verb col_name_with_order.verb %}{% sort_link coltitle.level col_name_with_order.level %}{% sort_link coltitle.timestamp col_name_with_order.timestamp %}{% trans "action"|capfirst %}
{{ row.description }}{{ row.verb }}{{ row.level }}{{ row.timestamp }} 102 | 105 |
111 | {% trans "no records found"|title %} 112 |
116 |
117 | {% if all_user_notification %} 118 | {% paginate %} 119 | {% endif %} 120 |
121 | {% trans "total"|capfirst %} : {{ user_notification_count }} 122 |
123 |
124 |
125 |
126 | 127 | 158 | 159 | {% endblock %} 160 | -------------------------------------------------------------------------------- /frontend_notification/templatetags/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/areski/django-frontend-notification/e054f5b46aa589d5812244533e01157db8671c6b/frontend_notification/templatetags/__init__.py -------------------------------------------------------------------------------- /frontend_notification/templatetags/frontend_notification_tags.py: -------------------------------------------------------------------------------- 1 | from django.template.defaultfilters import register 2 | from django.utils.translation import ugettext_lazy as _ 3 | 4 | 5 | @register.filter(name='notification_style') 6 | def notification_style(val): 7 | """ 8 | >>> notification_style(1) 9 | 'label-inverse' 10 | 11 | >>> notification_style('') 12 | 'label-success' 13 | """ 14 | if val: 15 | return 'label-inverse' 16 | else: 17 | return 'label-success' 18 | 19 | 20 | @register.filter(name='notification_status') 21 | def notification_status(val): 22 | if val: 23 | return _('unread').title() 24 | else: 25 | return _('read').title() 26 | -------------------------------------------------------------------------------- /frontend_notification/tests.py: -------------------------------------------------------------------------------- 1 | from django_lets_go.utils import BaseAuthenticatedClient 2 | from frontend_notification.views import user_notification,\ 3 | notification_del_read, update_notification 4 | 5 | 6 | class NotificationCustomerView(BaseAuthenticatedClient): 7 | """Test Function to check Notification pages""" 8 | 9 | fixtures = ['auth_user.json', 'notification.json'] 10 | 11 | def test_user_notification(self): 12 | """Test Function to check User settings""" 13 | response = self.client.get( 14 | '/user_notification/?notification=mark_read_all', {}) 15 | self.assertEqual(response.status_code, 200) 16 | self.assertTemplateUsed( 17 | response, 18 | 'frontend/frontend_notification/user_notification.html') 19 | request = self.factory.get('/user_notification/') 20 | request.user = self.user 21 | request.session = {} 22 | response = user_notification(request) 23 | self.assertEqual(response.status_code, 200) 24 | 25 | def test_notification_del_read(self): 26 | """Test Function to check delete notification""" 27 | request = self.factory.post( 28 | '/user_notification/del/1/', 29 | {'mark_read': 'false'}) 30 | request.user = self.user 31 | request.session = {} 32 | response = notification_del_read(request, 1) 33 | self.assertEqual(response.status_code, 302) 34 | 35 | request = self.factory.post( 36 | '/user_notification/del/2/', 37 | {'select': '1,2'}) 38 | request.user = self.user 39 | request.session = {} 40 | response = notification_del_read(request, 2) 41 | self.assertEqual(response.status_code, 302) 42 | 43 | request = self.factory.post( 44 | '/user_notification/del/', 45 | {'select': '1', 'mark_read': 'true'}) 46 | request.user = self.user 47 | request.session = {} 48 | response = notification_del_read(request, 0) 49 | self.assertEqual(response.status_code, 302) 50 | 51 | def test_update_notification(self): 52 | """Test Function to check update notice status""" 53 | request = self.factory.post( 54 | '/user_notification/1/', 55 | {'select': '1'}) 56 | request.user = self.user 57 | request.session = {} 58 | response = update_notification(1) 59 | self.assertEqual(response.status_code, 302) 60 | -------------------------------------------------------------------------------- /frontend_notification/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls import patterns, include 2 | 3 | 4 | urlpatterns = patterns('frontend_notification.views', 5 | # User notification for Customer UI 6 | (r'^user_notification/', 'notification_list'), 7 | (r'^user_notification/', include('notifications.urls')), 8 | (r'^notification_del_read/(.+)/$', 'notification_del_read'), 9 | # Notification Status (read/unread) for customer UI 10 | (r'^update_notification/(\d*)/$', 'update_notification'), 11 | ) 12 | -------------------------------------------------------------------------------- /frontend_notification/views.py: -------------------------------------------------------------------------------- 1 | from django.contrib.auth.models import User 2 | from django.contrib.auth.decorators import login_required 3 | from django.shortcuts import render_to_response 4 | from django.http import HttpResponseRedirect 5 | from django.template.context import RequestContext 6 | from django.utils.translation import ugettext_lazy as _ 7 | from frontend_notification.constants import NOTICE_TYPE 8 | from frontend_notification.forms import NotificationForm 9 | from django_lets_go.common_functions import get_pagination_vars 10 | # from notification import models as notification 11 | from notifications.signals import notify 12 | from notifications.models import Notification 13 | 14 | 15 | def frontend_notification_status(id): 16 | """Notification Status (e.g. read/unread) need to be change. 17 | It is a common function for admin and customer UI 18 | 19 | **Attributes**: 20 | 21 | * ``pk`` - primary key of notice record 22 | 23 | **Logic Description**: 24 | 25 | * Selected Notification's status need to be changed. 26 | Changed status can be read or unread. 27 | """ 28 | notice = Notification.objects.get(pk=id) 29 | if notice.unread: 30 | notice.unread = False 31 | else: 32 | notice.unread = True 33 | notice.save() 34 | return True 35 | 36 | 37 | def frontend_send_notification(request, verb, recipient=None, label=None): 38 | """User Notification (e.g. start | stop | pause | abort | 39 | contact/campaign limit) needs to be saved. 40 | It is a common function for the admin and customer UI's 41 | 42 | **Attributes**: 43 | 44 | * ``pk`` - primary key of the campaign record 45 | * ``verb`` - get verb for notifications 46 | * ``label`` - description of the notification 47 | """ 48 | if not recipient: 49 | recipient = request.user 50 | sender = User.objects.get(username=recipient) 51 | else: 52 | if request.user.is_anonymous(): 53 | sender = User.objects.get(is_superuser=1, username=recipient) 54 | else: 55 | sender = request.user 56 | 57 | notify.send(sender, description=label, recipient=recipient, verb=verb) 58 | return True 59 | 60 | 61 | @login_required 62 | def notification_list(request): 63 | """User Detail change on Customer UI 64 | 65 | **Attributes**: 66 | 67 | * ``form`` - UserChangeDetailForm, UserChangeDetailExtendForm, 68 | PasswordChangeForm, CheckPhoneNumberForm 69 | * ``template`` - 'frontend/frontend_notification/user_notification.html' 70 | 71 | **Logic Description**: 72 | 73 | * User is able to change his/her detail. 74 | """ 75 | sort_col_field_list = ['description', 'verb', 'level', 'timestamp'] 76 | coltitle = { 77 | 'description': _("Description"), 78 | 'verb': _("Verb"), 79 | 'level': _("Level"), 80 | 'timestamp': _("Date"), 81 | } 82 | pag_vars = get_pagination_vars(request, sort_col_field_list, default_sort_field='id') 83 | form = NotificationForm(request.POST or None, initial={'notification_list': NOTICE_TYPE.ALL}) 84 | 85 | # TODO: rename notification_list to type_filter 86 | notification_list = NOTICE_TYPE.ALL 87 | post_var_with_page = 0 88 | if form.is_valid(): 89 | request.session['session_notification_list'] = '' 90 | post_var_with_page = 1 91 | 92 | if request.POST.get('notification_list'): 93 | notification_list = request.POST.get('notification_list') 94 | request.session['session_notification_list'] = notification_list 95 | 96 | if request.GET.get('page') or request.GET.get('sort_by'): 97 | post_var_with_page = 1 98 | notification_list = request.session.get('session_notification_list') 99 | form = NotificationForm(initial={'notification_list': notification_list}) 100 | 101 | notification_list = int(notification_list) 102 | 103 | if post_var_with_page == 0: 104 | # unset session var 105 | request.session['session_notification_list'] = '' 106 | 107 | kwargs = {} 108 | # kwargs['sender'] = request.user 109 | if notification_list == NOTICE_TYPE.UNREAD: 110 | kwargs['unread'] = True 111 | 112 | if notification_list == NOTICE_TYPE.READ: 113 | kwargs['unread'] = False 114 | 115 | user_notification = Notification.objects.filter(recipient=request.user) 116 | if kwargs: 117 | user_notification = user_notification.filter(**kwargs) 118 | 119 | all_user_notification = user_notification.order_by(pag_vars['sort_order']) 120 | user_notification = all_user_notification[pag_vars['start_page']:pag_vars['end_page']] 121 | user_notification_count = all_user_notification.count() 122 | 123 | msg_note = '' 124 | if request.GET.get('msg_note') == 'true': 125 | msg_note = request.session['msg_note'] 126 | 127 | # Mark all notification as read 128 | if request.GET.get('notification') == 'mark_read_all': 129 | notification_list = Notification.objects.filter(unread=True, recipient=request.user) 130 | notification_list.update(unread=False) 131 | msg_note = _('all notifications are marked as read.') 132 | 133 | data = { 134 | 'coltitle': coltitle, 135 | 'form': form, 136 | 'msg_note': msg_note, 137 | 'all_user_notification': all_user_notification, 138 | 'user_notification': user_notification, 139 | 'user_notification_count': user_notification_count, 140 | 'col_name_with_order': pag_vars['col_name_with_order'], 141 | } 142 | return render_to_response( 143 | 'frontend/frontend_notification/user_notification.html', data, context_instance=RequestContext(request)) 144 | 145 | 146 | @login_required 147 | def notification_del_read(request, object_id): 148 | """Delete notification for the logged in user 149 | 150 | **Attributes**: 151 | 152 | * ``object_id`` - Selected notification object 153 | * ``object_list`` - Selected notification objects 154 | 155 | **Logic Description**: 156 | 157 | * Delete/Mark as Read the selected notification 158 | """ 159 | try: 160 | # When object_id is not 0 161 | notification_obj = Notification.objects.get(pk=object_id) 162 | # Delete/Read notification 163 | if object_id: 164 | if request.POST.get('mark_read') == 'false': 165 | request.session["msg_note"] = _('"%(name)s" is deleted.') % {'name': notification_obj.notice_type} 166 | notification_obj.delete() 167 | else: 168 | request.session["msg_note"] = _('"%(name)s" is marked as read.') % \ 169 | {'name': notification_obj.notice_type} 170 | notification_obj.update(unread=False) 171 | 172 | return HttpResponseRedirect('/user_notification/?msg_note=true') 173 | except: 174 | # When object_id is 0 (Multiple records delete/mark as read) 175 | values = request.POST.getlist('select') 176 | values = ", ".join(["%s" % el for el in values]) 177 | notification_list = Notification.objects.extra(where=['id IN (%s)' % values]) 178 | if request.POST.get('mark_read') == 'false': 179 | request.session["msg_note"] = _('%(count)s notification(s) are deleted.') % \ 180 | {'count': notification_list.count()} 181 | notification_list.delete() 182 | else: 183 | request.session["msg_note"] = _('%(count)s notification(s) are marked as read.') % \ 184 | {'count': notification_list.count()} 185 | notification_list.update(unread=False) 186 | return HttpResponseRedirect('/user_notification/?msg_note=true') 187 | 188 | 189 | @login_required 190 | def update_notification(request, id): 191 | """Notification Status (e.g. read/unread) can be changed from 192 | customer interface""" 193 | frontend_notification_status(id) 194 | return HttpResponseRedirect('/user_notification/') 195 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | django-lets-go>=2.8.5 2 | #linaro-django-pagination>=2.0.3 #linaro not compatible with Django 1.9 3 | -e git+git://github.com/areski/django-pagination.git@17e120899efc18a888b0038f8ae40b7448bf62c2#egg=django-pagination 4 | #django-notifications-hq==0.8.0 #django-notifications-hq not compatible with Django 1.9 5 | -e git+git://github.com/areski/django-notifications.git@7634dff2905a755690bd2eb04b0dec6be8f8936b#egg=django-notifications -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup, find_packages 2 | import frontend_notification 3 | import os 4 | import re 5 | 6 | 7 | def read(fname): 8 | return open(os.path.join(os.path.dirname(__file__), fname)).read() 9 | 10 | README = read('README.rst') 11 | 12 | 13 | def parse_requirements(file_name): 14 | requirements = [] 15 | for line in open(file_name, 'r').read().split('\n'): 16 | if re.match(r'(\s*#)|(\s*$)', line): 17 | continue 18 | if re.match(r'\s*-e\s+', line): 19 | requirements.append(re.sub(r'\s*-e\s+.*#egg=(.*)$', r'\1', line)) 20 | elif re.match(r'(\s*git)|(\s*hg)', line): 21 | pass 22 | else: 23 | requirements.append(line) 24 | return requirements 25 | 26 | 27 | def parse_dependency_links(file_name): 28 | dependency_links = [] 29 | for line in open(file_name, 'r').read().split('\n'): 30 | if re.match(r'\s*-[ef]\s+', line): 31 | dependency_links.append(re.sub(r'\s*-[ef]\s+', '', line)) 32 | 33 | return dependency_links 34 | 35 | 36 | setup( 37 | name='django-frontend-notification', 38 | version=frontend_notification.__version__, 39 | description='django application to display list of notifications, run basic actions such as view all notifications and delete notifications', 40 | long_description=README, 41 | url='http://github.com/areski/django-frontend-notification', 42 | author='Belaid Arezqui', 43 | author_email='areski@gmail.com', 44 | license='MIT License', 45 | zip_safe=False, 46 | packages=find_packages(), 47 | include_package_data=True, 48 | package_data={}, 49 | install_requires=parse_requirements('requirements.txt'), 50 | dependency_links=parse_dependency_links('requirements.txt'), 51 | classifiers=[ 52 | 'Development Status :: 5 - Production/Stable', 53 | 'Environment :: Web Environment', 54 | 'Framework :: Django', 55 | 'Intended Audience :: Developers', 56 | 'License :: OSI Approved :: MIT License', 57 | 'Operating System :: OS Independent', 58 | 'Programming Language :: Python', 59 | 'Topic :: Software Development :: Libraries :: Python Modules' 60 | ], 61 | ) 62 | -------------------------------------------------------------------------------- /update_version.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Usage: 3 | # ./update_version.sh 0.3.2 4 | # 5 | 6 | git flow release start v$1 7 | sed -i -e "s/__version__ = '.*'/__version__ = '$1'/g" frontend_notification/__init__.py 8 | 9 | #rm -rf docs/html 10 | #python setup.py develop 11 | #make docs 12 | #git commit docs nvd3/__init__.py -m "Update to version v$1" 13 | git commit -a -m "Update to version v$1" 14 | git flow release finish v$1 15 | python setup.py sdist upload -r pypi 16 | 17 | git push origin develop; git push origin master; git push --tags 18 | --------------------------------------------------------------------------------