Compare commits
2 Commits
84ea0b4d08
...
666b5e909a
Author | SHA1 | Date | |
---|---|---|---|
![]() |
666b5e909a | ||
![]() |
f31119ce27 |
application
doc/graduate-thesis
Appendices
Bibliography.bibChapters
Thesis.auxThesis.clsThesis.lofThesis.logThesis.lotThesis.outThesis.pdfThesis.synctex.gzThesis.texThesis.toclstpatch.styvector.stymysite
thesisenv/lib/python3.6/site-packages/django/contrib/postgres
__init__.py
aggregates
apps.pyfields
forms
functions.pyindexes.pyjinja2/postgres/widgets
locale
ar/LC_MESSAGES
be/LC_MESSAGES
bg/LC_MESSAGES
ca/LC_MESSAGES
cs/LC_MESSAGES
da/LC_MESSAGES
de/LC_MESSAGES
dsb/LC_MESSAGES
el/LC_MESSAGES
en/LC_MESSAGES
eo/LC_MESSAGES
es/LC_MESSAGES
es_AR/LC_MESSAGES
es_CO/LC_MESSAGES
es_MX/LC_MESSAGES
et/LC_MESSAGES
eu/LC_MESSAGES
fa/LC_MESSAGES
fi/LC_MESSAGES
fr/LC_MESSAGES
gd/LC_MESSAGES
gl/LC_MESSAGES
he/LC_MESSAGES
hr/LC_MESSAGES
hsb/LC_MESSAGES
hu/LC_MESSAGES
ia/LC_MESSAGES
id/LC_MESSAGES
is/LC_MESSAGES
it/LC_MESSAGES
ja/LC_MESSAGES
@ -1,5 +1,6 @@
|
||||
from django.db import models
|
||||
from django.utils import timezone
|
||||
from taggit.managers import TaggableManager
|
||||
|
||||
|
||||
class Post(models.Model):
|
||||
@ -10,6 +11,7 @@ class Post(models.Model):
|
||||
default=timezone.now)
|
||||
published_date = models.DateTimeField(
|
||||
blank=True, null=True)
|
||||
tags = TaggableManager()
|
||||
|
||||
def publish(self):
|
||||
self.published_date = timezone.now()
|
||||
|
@ -33,7 +33,6 @@
|
||||
</li>
|
||||
{% endif %} {% if user.is_staff %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{% url 'studis:index' %}">Stammdaten von</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
|
@ -1,10 +1,15 @@
|
||||
{% extends "base.html" %} {% block content %} {% if form.errors %}
|
||||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
{% if form.errors %}
|
||||
<p>Your username and password didn't match. Please try again.</p>
|
||||
{% endif %} {% if next %} {% if user.is_authenticated %}
|
||||
{% endif %}
|
||||
{% if next %}
|
||||
{% if user.is_authenticated %}
|
||||
<p>Your account doesn't have access to this page. To proceed, please login with an account that has access.</p>
|
||||
{% else %}
|
||||
<p>Please login to see this page.</p>
|
||||
{% endif %} {% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
<form method="post" action="{% url 'login' %}">
|
||||
{% csrf_token %}
|
||||
|
11
doc/graduate-thesis/Appendices/AppendixA.tex
Normal file
11
doc/graduate-thesis/Appendices/AppendixA.tex
Normal file
@ -0,0 +1,11 @@
|
||||
\chapter{An Appendix}
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus at pulvinar nisi. Phasellus hendrerit, diam placerat interdum iaculis, mauris justo cursus risus, in viverra purus eros at ligula. Ut metus justo, consequat a tristique posuere, laoreet nec nibh. Etiam et scelerisque mauris. Phasellus vel massa magna. Ut non neque id tortor pharetra bibendum vitae sit amet nisi. Duis nec quam quam, sed euismod justo. Pellentesque eu tellus vitae ante tempus malesuada. Nunc accumsan, quam in congue consequat, lectus lectus dapibus erat, id aliquet urna neque at massa. Nulla facilisi. Morbi ullamcorper eleifend posuere. Donec libero leo, faucibus nec bibendum at, mattis et urna. Proin consectetur, nunc ut imperdiet lobortis, magna neque tincidunt lectus, id iaculis nisi justo id nibh. Pellentesque vel sem in erat vulputate faucibus molestie ut lorem.
|
||||
|
||||
Quisque tristique urna in lorem laoreet at laoreet quam congue. Donec dolor turpis, blandit non imperdiet aliquet, blandit et felis. In lorem nisi, pretium sit amet vestibulum sed, tempus et sem. Proin non ante turpis. Nulla imperdiet fringilla convallis. Vivamus vel bibendum nisl. Pellentesque justo lectus, molestie vel luctus sed, lobortis in libero. Nulla facilisi. Aliquam erat volutpat. Suspendisse vitae nunc nunc. Sed aliquet est suscipit sapien rhoncus non adipiscing nibh consequat. Aliquam metus urna, faucibus eu vulputate non, luctus eu justo.
|
||||
|
||||
Donec urna leo, vulputate vitae porta eu, vehicula blandit libero. Phasellus eget massa et leo condimentum mollis. Nullam molestie, justo at pellentesque vulputate, sapien velit ornare diam, nec gravida lacus augue non diam. Integer mattis lacus id libero ultrices sit amet mollis neque molestie. Integer ut leo eget mi volutpat congue. Vivamus sodales, turpis id venenatis placerat, tellus purus adipiscing magna, eu aliquam nibh dolor id nibh. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed cursus convallis quam nec vehicula. Sed vulputate neque eget odio fringilla ac sodales urna feugiat.
|
||||
|
||||
Phasellus nisi quam, volutpat non ullamcorper eget, congue fringilla leo. Cras et erat et nibh placerat commodo id ornare est. Nulla facilisi. Aenean pulvinar scelerisque eros eget interdum. Nunc pulvinar magna ut felis varius in hendrerit dolor accumsan. Nunc pellentesque magna quis magna bibendum non laoreet erat tincidunt. Nulla facilisi.
|
||||
|
||||
Duis eget massa sem, gravida interdum ipsum. Nulla nunc nisl, hendrerit sit amet commodo vel, varius id tellus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ac dolor est. Suspendisse ultrices tincidunt metus eget accumsan. Nullam facilisis, justo vitae convallis sollicitudin, eros augue malesuada metus, nec sagittis diam nibh ut sapien. Duis blandit lectus vitae lorem aliquam nec euismod nisi volutpat. Vestibulum ornare dictum tortor, at faucibus justo tempor non. Nulla facilisi. Cras non massa nunc, eget euismod purus. Nunc metus ipsum, euismod a consectetur vel, hendrerit nec nunc.
|
40
doc/graduate-thesis/Bibliography.bib
Normal file
40
doc/graduate-thesis/Bibliography.bib
Normal file
@ -0,0 +1,40 @@
|
||||
@article{Reference1,
|
||||
Abstract = {We have developed an enhanced Littrow configuration extended cavity diode laser (ECDL) that can be tuned without changing the direction of the output beam. The output of a conventional Littrow ECDL is reflected from a plane mirror fixed parallel to the tuning diffraction grating. Using a free-space Michelson wavemeter to measure the laser wavelength, we can tune the laser over a range greater than 10 nm without any alteration of alignment.},
|
||||
Author = {C. J. Hawthorn and K. P. Weber and R. E. Scholten},
|
||||
Journal = {Review of Scientific Instruments},
|
||||
Month = {December},
|
||||
Number = {12},
|
||||
Numpages = {3},
|
||||
Pages = {4477--4479},
|
||||
Title = {Littrow Configuration Tunable External Cavity Diode Laser with Fixed Direction Output Beam},
|
||||
Volume = {72},
|
||||
Url = {http://link.aip.org/link/?RSI/72/4477/1},
|
||||
Year = {2001}}
|
||||
|
||||
@article{Reference3,
|
||||
Abstract = {Operating a laser diode in an extended cavity which provides frequency-selective feedback is a very effective method of reducing the laser's linewidth and improving its tunability. We have developed an extremely simple laser of this type, built from inexpensive commercial components with only a few minor modifications. A 780~nm laser built to this design has an output power of 80~mW, a linewidth of 350~kHz, and it has been continuously locked to a Doppler-free rubidium transition for several days.},
|
||||
Author = {A. S. Arnold and J. S. Wilson and M. G. Boshier},
|
||||
Journal = {Review of Scientific Instruments},
|
||||
Month = {March},
|
||||
Number = {3},
|
||||
Numpages = {4},
|
||||
Pages = {1236--1239},
|
||||
Title = {A Simple Extended-Cavity Diode Laser},
|
||||
Volume = {69},
|
||||
Url = {http://link.aip.org/link/?RSI/69/1236/1},
|
||||
Year = {1998}}
|
||||
|
||||
@article{Reference2,
|
||||
Abstract = {We present a review of the use of diode lasers in atomic physics with an extensive list of references. We discuss the relevant characteristics of diode lasers and explain how to purchase and use them. We also review the various techniques that have been used to control and narrow the spectral outputs of diode lasers. Finally we present a number of examples illustrating the use of diode lasers in atomic physics experiments. Review of Scientific Instruments is copyrighted by The American Institute of Physics.},
|
||||
Author = {Carl E. Wieman and Leo Hollberg},
|
||||
Journal = {Review of Scientific Instruments},
|
||||
Keywords = {Diode Laser},
|
||||
Month = {January},
|
||||
Number = {1},
|
||||
Numpages = {20},
|
||||
Pages = {1--20},
|
||||
Title = {Using Diode Lasers for Atomic Physics},
|
||||
Volume = {62},
|
||||
Url = {http://link.aip.org/link/?RSI/62/1/1},
|
||||
Year = {1991}}
|
||||
|
17
doc/graduate-thesis/Chapters/Chapter1.tex
Normal file
17
doc/graduate-thesis/Chapters/Chapter1.tex
Normal file
@ -0,0 +1,17 @@
|
||||
\chapter{Introduction}
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus at pulvinar nisi. Phasellus hendrerit, diam placerat interdum iaculis, mauris justo cursus risus, in viverra purus eros at ligula. Ut metus justo, consequat a tristique posuere, laoreet nec nibh. Etiam et scelerisque mauris. Phasellus vel massa magna. Ut non neque id tortor pharetra bibendum vitae sit amet nisi. Duis nec quam quam, sed euismod justo. Pellentesque eu tellus vitae ante tempus malesuada. Nunc accumsan, quam in congue consequat, lectus lectus dapibus erat, id aliquet urna neque at massa. Nulla facilisi. Morbi ullamcorper eleifend posuere. Donec libero leo, faucibus nec bibendum at, mattis et urna. Proin consectetur, nunc ut imperdiet lobortis, magna neque tincidunt lectus, id iaculis nisi justo id nibh. Pellentesque vel sem in erat vulputate faucibus molestie ut lorem.
|
||||
|
||||
\section{A Section}
|
||||
|
||||
Quisque tristique urna in lorem laoreet at laoreet quam congue. Donec dolor turpis, blandit non imperdiet aliquet, blandit et felis. In lorem nisi, pretium sit amet vestibulum sed, tempus et sem. Proin non ante turpis. Nulla imperdiet fringilla convallis. Vivamus vel bibendum nisl. Pellentesque justo lectus, molestie vel luctus sed, lobortis in libero. Nulla facilisi. Aliquam erat volutpat. Suspendisse vitae nunc nunc. Sed aliquet est suscipit sapien rhoncus non adipiscing nibh consequat. Aliquam metus urna, faucibus eu vulputate non, luctus eu justo.
|
||||
|
||||
\subsection{A Subsection}
|
||||
|
||||
Donec urna leo, vulputate vitae porta eu, vehicula blandit libero. Phasellus eget massa et leo condimentum mollis. Nullam molestie, justo at pellentesque vulputate, sapien velit ornare diam, nec gravida lacus augue non diam. Integer mattis lacus id libero ultrices sit amet mollis neque molestie. Integer ut leo eget mi volutpat congue. Vivamus sodales, turpis id venenatis placerat, tellus purus adipiscing magna, eu aliquam nibh dolor id nibh. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed cursus convallis quam nec vehicula. Sed vulputate neque eget odio fringilla ac sodales urna feugiat.
|
||||
|
||||
\section{Another Section}
|
||||
|
||||
Phasellus nisi quam, volutpat non ullamcorper eget, congue fringilla leo. Cras et erat et nibh placerat commodo id ornare est. Nulla facilisi. Aenean pulvinar scelerisque eros eget interdum. Nunc pulvinar magna ut felis varius in hendrerit dolor accumsan. Nunc pellentesque magna quis magna bibendum non laoreet erat tincidunt. Nulla facilisi.
|
||||
|
||||
Duis eget massa sem, gravida interdum ipsum. Nulla nunc nisl, hendrerit sit amet commodo vel, varius id tellus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ac dolor est. Suspendisse ultrices tincidunt metus eget accumsan. Nullam facilisis, justo vitae convallis sollicitudin, eros augue malesuada metus, nec sagittis diam nibh ut sapien. Duis blandit lectus vitae lorem aliquam nec euismod nisi volutpat. Vestibulum ornare dictum tortor, at faucibus justo tempor non. Nulla facilisi. Cras non massa nunc, eget euismod purus. Nunc metus ipsum, euismod a consectetur vel, hendrerit nec nunc.
|
55
doc/graduate-thesis/Thesis.aux
Normal file
55
doc/graduate-thesis/Thesis.aux
Normal file
@ -0,0 +1,55 @@
|
||||
\relax
|
||||
\providecommand\hyper@newdestlabel[2]{}
|
||||
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
|
||||
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
|
||||
\global\let\oldcontentsline\contentsline
|
||||
\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
|
||||
\global\let\oldnewlabel\newlabel
|
||||
\gdef\newlabel#1#2{\newlabelxx{#1}#2}
|
||||
\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
|
||||
\AtEndDocument{\ifx\hyper@anchor\@undefined
|
||||
\let\contentsline\oldcontentsline
|
||||
\let\newlabel\oldnewlabel
|
||||
\fi}
|
||||
\fi}
|
||||
\global\let\hyper@last\relax
|
||||
\gdef\HyperFirstAtBeginDocument#1{#1}
|
||||
\providecommand\HyField@AuxAddToFields[1]{}
|
||||
\providecommand\HyField@AuxAddToCoFields[2]{}
|
||||
\@writefile{toc}{\contentsline {chapter}{Declaration of Authorship}{i}{dummy.1}}
|
||||
\@writefile{toc}{\vspace {1em}}
|
||||
\@writefile{toc}{\contentsline {chapter}{Abstract}{iii}{dummy.2}}
|
||||
\@writefile{toc}{\vspace {1em}}
|
||||
\@writefile{toc}{\contentsline {chapter}{Acknowledgements}{iv}{dummy.3}}
|
||||
\@writefile{toc}{\vspace {1em}}
|
||||
\@writefile{toc}{\contentsline {chapter}{List of Figures}{vi}{dummy.5}}
|
||||
\@writefile{toc}{\contentsline {chapter}{List of Tables}{vii}{dummy.7}}
|
||||
\gdef \LT@i {\LT@entry
|
||||
{1}{38.94902pt}\LT@entry
|
||||
{1}{130.6858pt}}
|
||||
\@writefile{toc}{\contentsline {chapter}{Abbreviations}{viii}{dummy.9}}
|
||||
\gdef \LT@ii {\LT@entry
|
||||
{1}{81.80634pt}\LT@entry
|
||||
{1}{16.7387pt}\LT@entry
|
||||
{1}{20.5167pt}\LT@entry
|
||||
{1}{166.63719pt}}
|
||||
\@writefile{toc}{\contentsline {chapter}{Physical Constants}{ix}{dummy.12}}
|
||||
\gdef \LT@iii {\LT@entry
|
||||
{1}{20.5509pt}\LT@entry
|
||||
{1}{97.53178pt}\LT@entry
|
||||
{1}{56.72841pt}}
|
||||
\@writefile{toc}{\contentsline {chapter}{Symbols}{x}{dummy.15}}
|
||||
\@writefile{toc}{\vspace {2em}}
|
||||
\@writefile{toc}{\contentsline {chapter}{\numberline {1}Introduction}{1}{chapter.18}}
|
||||
\@writefile{lof}{\addvspace {10\p@ }}
|
||||
\@writefile{lot}{\addvspace {10\p@ }}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {1.1}A Section}{1}{section.19}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {1.1.1}A Subsection}{1}{subsection.20}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {1.2}Another Section}{2}{section.21}}
|
||||
\@writefile{toc}{\vspace {2em}}
|
||||
\@writefile{toc}{\contentsline {chapter}{\numberline {A}An Appendix}{3}{appendix.22}}
|
||||
\@writefile{lof}{\addvspace {10\p@ }}
|
||||
\@writefile{lot}{\addvspace {10\p@ }}
|
||||
\@writefile{toc}{\vspace {2em}}
|
||||
\bibstyle{unsrtnat}
|
||||
\bibdata{Bibliography}
|
380
doc/graduate-thesis/Thesis.cls
Normal file
380
doc/graduate-thesis/Thesis.cls
Normal file
@ -0,0 +1,380 @@
|
||||
%%
|
||||
%% This is file `Thesis.cls', based on 'ECSthesis.cls', by Steve R. Gunn
|
||||
%% generated with the docstrip utility.
|
||||
%%
|
||||
%% Created by Steve R. Gunn, modified by Sunil Patel: www.sunilpatel.co.uk
|
||||
|
||||
\NeedsTeXFormat{LaTeX2e}[1996/12/01]
|
||||
\ProvidesClass{Thesis}
|
||||
[2007/22/02 v1.0
|
||||
LaTeX document class]
|
||||
\def\baseclass{book}
|
||||
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\baseclass}}
|
||||
\def\@checkoptions#1#2{
|
||||
\edef\@curroptions{\@ptionlist{\@currname.\@currext}}
|
||||
\@tempswafalse
|
||||
\@tfor\@this:=#2\do{
|
||||
\@expandtwoargs\in@{,\@this,}{,\@curroptions,}
|
||||
\ifin@ \@tempswatrue \@break@tfor \fi}
|
||||
\let\@this\@empty
|
||||
\if@tempswa \else \PassOptionsToClass{#1}{\baseclass}\fi
|
||||
}
|
||||
\@checkoptions{11pt}{{10pt}{11pt}{12pt}}
|
||||
\PassOptionsToClass{a4paper}{\baseclass}
|
||||
\ProcessOptions\relax
|
||||
\LoadClass{\baseclass}
|
||||
\newcommand\bhrule{\typeout{------------------------------------------------------------------------------}}
|
||||
|
||||
\newcommand\Declaration[1]{
|
||||
\btypeout{Declaration of Authorship}
|
||||
\addtotoc{Declaration of Authorship}
|
||||
\thispagestyle{plain}
|
||||
\null\vfil
|
||||
%\vskip 60\p@
|
||||
\begin{center}{\huge\bf Declaration of Authorship\par}\end{center}
|
||||
%\vskip 60\p@
|
||||
{\normalsize #1}
|
||||
\vfil\vfil\null
|
||||
%\cleardoublepage
|
||||
}
|
||||
|
||||
\newcommand\btypeout[1]{\bhrule\typeout{\space #1}\bhrule}
|
||||
\def\today{\ifcase\month\or
|
||||
January\or February\or March\or April\or May\or June\or
|
||||
July\or August\or September\or October\or November\or December\fi
|
||||
\space \number\year}
|
||||
\usepackage{setspace}
|
||||
\onehalfspacing
|
||||
\setlength{\parindent}{0pt}
|
||||
\setlength{\parskip}{2.0ex plus0.5ex minus0.2ex}
|
||||
\usepackage{vmargin}
|
||||
\setmarginsrb { 1.5in} % left margin
|
||||
{ 0.6in} % top margin
|
||||
{ 1.0in} % right margin
|
||||
{ 0.8in} % bottom margin
|
||||
{ 20pt} % head height
|
||||
{0.25in} % head sep
|
||||
{ 9pt} % foot height
|
||||
{ 0.3in} % foot sep
|
||||
\raggedbottom
|
||||
\setlength{\topskip}{1\topskip \@plus 5\p@}
|
||||
\doublehyphendemerits=10000 % No consecutive line hyphens.
|
||||
\brokenpenalty=10000 % No broken words across columns/pages.
|
||||
\widowpenalty=9999 % Almost no widows at bottom of page.
|
||||
\clubpenalty=9999 % Almost no orphans at top of page.
|
||||
\interfootnotelinepenalty=9999 % Almost never break footnotes.
|
||||
\usepackage{fancyhdr}
|
||||
\lhead[\rm\thepage]{\fancyplain{}{\sl{\rightmark}}}
|
||||
\rhead[\fancyplain{}{\sl{\leftmark}}]{\rm\thepage}
|
||||
\chead{}\lfoot{}\rfoot{}\cfoot{}
|
||||
\pagestyle{fancy}
|
||||
\renewcommand{\chaptermark}[1]{\btypeout{\thechapter\space #1}\markboth{\@chapapp\ \thechapter\ #1}{\@chapapp\ \thechapter\ #1}}
|
||||
\renewcommand{\sectionmark}[1]{}
|
||||
\renewcommand{\subsectionmark}[1]{}
|
||||
\def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else
|
||||
\hbox{}
|
||||
\thispagestyle{empty}
|
||||
\newpage
|
||||
\if@twocolumn\hbox{}\newpage\fi\fi\fi}
|
||||
\usepackage{amsmath,amsfonts,amssymb,amscd,amsthm,xspace}
|
||||
\theoremstyle{plain}
|
||||
\newtheorem{example}{Example}[chapter]
|
||||
\newtheorem{theorem}{Theorem}[chapter]
|
||||
\newtheorem{corollary}[theorem]{Corollary}
|
||||
\newtheorem{lemma}[theorem]{Lemma}
|
||||
\newtheorem{proposition}[theorem]{Proposition}
|
||||
\newtheorem{axiom}[theorem]{Axiom}
|
||||
\theoremstyle{definition}
|
||||
\newtheorem{definition}[theorem]{Definition}
|
||||
\theoremstyle{remark}
|
||||
\newtheorem{remark}[theorem]{Remark}
|
||||
\usepackage[centerlast,small,sc]{caption}
|
||||
\setlength{\captionmargin}{20pt}
|
||||
\newcommand{\fref}[1]{Figure~\ref{#1}}
|
||||
\newcommand{\tref}[1]{Table~\ref{#1}}
|
||||
\newcommand{\eref}[1]{Equation~\ref{#1}}
|
||||
\newcommand{\cref}[1]{Chapter~\ref{#1}}
|
||||
\newcommand{\sref}[1]{Section~\ref{#1}}
|
||||
\newcommand{\aref}[1]{Appendix~\ref{#1}}
|
||||
\renewcommand{\topfraction}{0.85}
|
||||
\renewcommand{\bottomfraction}{.85}
|
||||
\renewcommand{\textfraction}{0.1}
|
||||
\renewcommand{\dbltopfraction}{.85}
|
||||
\renewcommand{\floatpagefraction}{0.75}
|
||||
\renewcommand{\dblfloatpagefraction}{.75}
|
||||
\setcounter{topnumber}{9}
|
||||
\setcounter{bottomnumber}{9}
|
||||
\setcounter{totalnumber}{20}
|
||||
\setcounter{dbltopnumber}{9}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{epstopdf}
|
||||
\usepackage[scriptsize]{subfigure}
|
||||
\usepackage{booktabs}
|
||||
\usepackage{rotating}
|
||||
\usepackage{listings}
|
||||
\usepackage{lstpatch}
|
||||
\lstset{captionpos=b,
|
||||
frame=tb,
|
||||
basicstyle=\scriptsize\ttfamily,
|
||||
showstringspaces=false,
|
||||
keepspaces=true}
|
||||
\lstdefinestyle{matlab} {
|
||||
language=Matlab,
|
||||
keywordstyle=\color{blue},
|
||||
commentstyle=\color[rgb]{0.13,0.55,0.13}\em,
|
||||
stringstyle=\color[rgb]{0.7,0,0} }
|
||||
\usepackage[pdfpagemode={UseOutlines},bookmarks=true,bookmarksopen=true,
|
||||
bookmarksopenlevel=0,bookmarksnumbered=true,hypertexnames=false,
|
||||
colorlinks,linkcolor={blue},citecolor={blue},urlcolor={red},
|
||||
pdfstartview={FitV},unicode,breaklinks=true]{hyperref}
|
||||
\pdfstringdefDisableCommands{
|
||||
\let\\\space
|
||||
}
|
||||
\newcommand*{\supervisor}[1]{\def\supname{#1}}
|
||||
\newcommand*{\examiner}[1]{\def\examname{#1}}
|
||||
\newcommand*{\degree}[1]{\def\degreename{#1}}
|
||||
\newcommand*{\authors}[1]{\def\authornames{#1}}
|
||||
\newcommand*{\addresses}[1]{\def\addressnames{#1}}
|
||||
\newcommand*{\university}[1]{\def\univname{#1}}
|
||||
\newcommand*{\UNIVERSITY}[1]{\def\UNIVNAME{#1}}
|
||||
\newcommand*{\department}[1]{\def\deptname{#1}}
|
||||
\newcommand*{\DEPARTMENT}[1]{\def\DEPTNAME{#1}}
|
||||
\newcommand*{\group}[1]{\def\groupname{#1}}
|
||||
\newcommand*{\GROUP}[1]{\def\GROUPNAME{#1}}
|
||||
\newcommand*{\faculty}[1]{\def\facname{#1}}
|
||||
\newcommand*{\FACULTY}[1]{\def\FACNAME{#1}}
|
||||
\newcommand*{\subject}[1]{\def\subjectname{#1}}
|
||||
\newcommand*{\keywords}[1]{\def\keywordnames{#1}}
|
||||
\supervisor {}
|
||||
\examiner {}
|
||||
\degree {}
|
||||
\authors {}
|
||||
\university {\texorpdfstring{\href{University Web Site URL Here (include http://)}
|
||||
{University Name}}
|
||||
{University Name}}
|
||||
\UNIVERSITY {\texorpdfstring{\href{University Web Site URL Here (include http://)}
|
||||
{UNIVERSITY NAME (IN BLOCK CAPITALS)}}
|
||||
{UNIVERSITY NAME (IN BLOCK CAPITALS)}}
|
||||
\department {\texorpdfstring{\href{Department or School Web Site URL Here (include http://)}
|
||||
{Department or School Name}}
|
||||
{Department or School Name}}
|
||||
\DEPARTMENT {\texorpdfstring{\href{Department or School Web Site URL Here (include http://)}
|
||||
{DEPARTMENT OR SCHOOL NAME (IN BLOCK CAPITALS)}}
|
||||
{DEPARTMENT OR SCHOOL NAME (IN BLOCK CAPITALS)}}
|
||||
\group {\texorpdfstring{\href{Research Group Web Site URL Here (include http://)}
|
||||
{Research Group Name}}
|
||||
{Research Group Name}}
|
||||
\GROUP {\texorpdfstring{\href{Research Group Web Site URL Here (include http://)}
|
||||
{RESEARCH GROUP NAME (IN BLOCK CAPITALS)}}
|
||||
{RESEARCH GROUP NAME (IN BLOCK CAPITALS)}}
|
||||
\faculty {\texorpdfstring{\href{Faculty Web Site URL Here (include http://)}
|
||||
{Faculty Name}}
|
||||
{Faculty Name}}
|
||||
\FACULTY {\texorpdfstring{\href{Faculty Web Site URL Here (include http://)}
|
||||
{FACULTY NAME (IN BLOCK CAPITALS)}}
|
||||
{FACULTY NAME (IN BLOCK CAPITALS)}}
|
||||
\addresses {}
|
||||
\subject {}
|
||||
\keywords {}
|
||||
\renewcommand\maketitle{
|
||||
\btypeout{Title Page}
|
||||
\hypersetup{pdftitle={\@title}}
|
||||
\hypersetup{pdfsubject=\subjectname}
|
||||
\hypersetup{pdfauthor=\authornames}
|
||||
\hypersetup{pdfkeywords=\keywordnames}
|
||||
\thispagestyle{empty}
|
||||
\begin{titlepage}
|
||||
\let\footnotesize\small
|
||||
\let\footnoterule\relax
|
||||
\let \footnote \thanks
|
||||
\setcounter{footnote}{0}
|
||||
\null\vfil
|
||||
\vskip 60\p@
|
||||
\begin{center}
|
||||
\setlength{\parskip}{0pt}
|
||||
{\large\textbf{\UNIVNAME}\par}
|
||||
\vfill
|
||||
{\huge \bf \@title \par}
|
||||
\vfill
|
||||
{\LARGE by \par}
|
||||
\smallskip
|
||||
{\LARGE \authornames \par}
|
||||
\vfill
|
||||
{\large A thesis submitted in partial fulfillment for the \par}
|
||||
{\large degree of Doctor of Philosophy \par}
|
||||
\bigskip
|
||||
\bigskip
|
||||
{\large in the \par}
|
||||
{\large \facname \par}
|
||||
{\large \deptname \par}
|
||||
\bigskip
|
||||
\bigskip
|
||||
\bigskip
|
||||
{\Large \@date \par}
|
||||
\bigskip
|
||||
\end{center}
|
||||
\par
|
||||
\@thanks
|
||||
\vfil\null
|
||||
\end{titlepage}
|
||||
\setcounter{footnote}{0}%
|
||||
\global\let\thanks\relax
|
||||
\global\let\maketitle\relax
|
||||
\global\let\@thanks\@empty
|
||||
\global\let\@author\@empty
|
||||
\global\let\@date\@empty
|
||||
\global\let\@title\@empty
|
||||
\global\let\title\relax
|
||||
\global\let\author\relax
|
||||
\global\let\date\relax
|
||||
\global\let\and\relax
|
||||
\cleardoublepage
|
||||
}
|
||||
\newenvironment{abstract}
|
||||
{
|
||||
\btypeout{Abstract Page}
|
||||
\thispagestyle{empty}
|
||||
\null\vfil
|
||||
\begin{center}
|
||||
\setlength{\parskip}{0pt}
|
||||
{\normalsize \UNIVNAME \par}
|
||||
\bigskip
|
||||
{\huge{\textit{Abstract}} \par}
|
||||
\bigskip
|
||||
{\normalsize \facname \par}
|
||||
{\normalsize \deptname \par}
|
||||
\bigskip
|
||||
{\normalsize Doctor of Philosophy\par}
|
||||
\bigskip
|
||||
{\normalsize\bf \@title \par}
|
||||
\medskip
|
||||
{\normalsize by \authornames \par}
|
||||
\bigskip
|
||||
\end{center}
|
||||
}
|
||||
{
|
||||
\vfil\vfil\vfil\null
|
||||
\cleardoublepage
|
||||
}
|
||||
\addtocounter{secnumdepth}{1}
|
||||
\setcounter{tocdepth}{6}
|
||||
\newcounter{dummy}
|
||||
\newcommand\addtotoc[1]{
|
||||
\refstepcounter{dummy}
|
||||
\addcontentsline{toc}{chapter}{#1}}
|
||||
\renewcommand\tableofcontents{
|
||||
\btypeout{Table of Contents}
|
||||
\begin{spacing}{1}{
|
||||
\setlength{\parskip}{1pt}
|
||||
\if@twocolumn
|
||||
\@restonecoltrue\onecolumn
|
||||
\else
|
||||
\@restonecolfalse
|
||||
\fi
|
||||
\chapter*{\contentsname
|
||||
\@mkboth{
|
||||
\MakeUppercase\contentsname}{\MakeUppercase\contentsname}}
|
||||
\@starttoc{toc}
|
||||
\if@restonecol\twocolumn\fi
|
||||
\cleardoublepage
|
||||
}\end{spacing}
|
||||
}
|
||||
\renewcommand\listoffigures{
|
||||
\btypeout{List of Figures}
|
||||
\addtotoc{List of Figures}
|
||||
\begin{spacing}{1}{
|
||||
\setlength{\parskip}{1pt}
|
||||
\if@twocolumn
|
||||
\@restonecoltrue\onecolumn
|
||||
\else
|
||||
\@restonecolfalse
|
||||
\fi
|
||||
\chapter*{\listfigurename
|
||||
\@mkboth{\MakeUppercase\listfigurename}
|
||||
{\MakeUppercase\listfigurename}}
|
||||
\@starttoc{lof}
|
||||
\if@restonecol\twocolumn\fi
|
||||
\cleardoublepage
|
||||
}\end{spacing}
|
||||
}
|
||||
\renewcommand\listoftables{
|
||||
\btypeout{List of Tables}
|
||||
\addtotoc{List of Tables}
|
||||
\begin{spacing}{1}{
|
||||
\setlength{\parskip}{1pt}
|
||||
\if@twocolumn
|
||||
\@restonecoltrue\onecolumn
|
||||
\else
|
||||
\@restonecolfalse
|
||||
\fi
|
||||
\chapter*{\listtablename
|
||||
\@mkboth{
|
||||
\MakeUppercase\listtablename}{\MakeUppercase\listtablename}}
|
||||
\@starttoc{lot}
|
||||
\if@restonecol\twocolumn\fi
|
||||
\cleardoublepage
|
||||
}\end{spacing}
|
||||
}
|
||||
\newcommand\listsymbolname{Abbreviations}
|
||||
\usepackage{longtable}
|
||||
\newcommand\listofsymbols[2]{
|
||||
\btypeout{\listsymbolname}
|
||||
\addtotoc{\listsymbolname}
|
||||
\chapter*{\listsymbolname
|
||||
\@mkboth{
|
||||
\MakeUppercase\listsymbolname}{\MakeUppercase\listsymbolname}}
|
||||
\begin{longtable}[c]{#1}#2\end{longtable}\par
|
||||
\cleardoublepage
|
||||
}
|
||||
\newcommand\listconstants{Physical Constants}
|
||||
\usepackage{longtable}
|
||||
\newcommand\listofconstants[2]{
|
||||
\btypeout{\listconstants}
|
||||
\addtotoc{\listconstants}
|
||||
\chapter*{\listconstants
|
||||
\@mkboth{
|
||||
\MakeUppercase\listconstants}{\MakeUppercase\listconstants}}
|
||||
\begin{longtable}[c]{#1}#2\end{longtable}\par
|
||||
\cleardoublepage
|
||||
}
|
||||
\newcommand\listnomenclature{Symbols}
|
||||
\usepackage{longtable}
|
||||
\newcommand\listofnomenclature[2]{
|
||||
\btypeout{\listnomenclature}
|
||||
\addtotoc{\listnomenclature}
|
||||
\chapter*{\listnomenclature
|
||||
\@mkboth{
|
||||
\MakeUppercase\listnomenclature}{\MakeUppercase\listnomenclature}}
|
||||
\begin{longtable}[c]{#1}#2\end{longtable}\par
|
||||
\cleardoublepage
|
||||
}
|
||||
\newcommand\acknowledgements[1]{
|
||||
\btypeout{Acknowledgements}
|
||||
\addtotoc{Acknowledgements}
|
||||
\thispagestyle{plain}
|
||||
\begin{center}{\huge{\textit{Acknowledgements}} \par}\end{center}
|
||||
{\normalsize #1}
|
||||
\vfil\vfil\null
|
||||
|
||||
}
|
||||
\newcommand\dedicatory[1]{
|
||||
\btypeout{Dedicatory}
|
||||
\thispagestyle{plain}
|
||||
\null\vfil
|
||||
\vskip 60\p@
|
||||
\begin{center}{\Large \sl #1}\end{center}
|
||||
\vfil\null
|
||||
\cleardoublepage
|
||||
}
|
||||
\renewcommand\backmatter{
|
||||
\if@openright
|
||||
\cleardoublepage
|
||||
\else
|
||||
\clearpage
|
||||
\fi
|
||||
\addtotoc{\bibname}
|
||||
\btypeout{\bibname}
|
||||
\@mainmatterfalse}
|
||||
\endinput
|
||||
%%
|
||||
%% End of file `Thesis.cls'.
|
2
doc/graduate-thesis/Thesis.lof
Normal file
2
doc/graduate-thesis/Thesis.lof
Normal file
@ -0,0 +1,2 @@
|
||||
\addvspace {10\p@ }
|
||||
\addvspace {10\p@ }
|
710
doc/graduate-thesis/Thesis.log
Normal file
710
doc/graduate-thesis/Thesis.log
Normal file
@ -0,0 +1,710 @@
|
||||
This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018) (preloaded format=pdflatex 2018.6.7) 7 JUL 2018 14:38
|
||||
entering extended mode
|
||||
restricted \write18 enabled.
|
||||
file:line:error style messages enabled.
|
||||
%&-line parsing enabled.
|
||||
**Thesis.tex
|
||||
(./Thesis.tex
|
||||
LaTeX2e <2018-04-01> patch level 2
|
||||
Babel <3.18> and hyphenation patterns for 84 language(s) loaded.
|
||||
(./Thesis.cls
|
||||
Document Class: Thesis 2007/22/02 v1.0 LaTeX document class
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/base/book.cls
|
||||
Document Class: book 2014/09/29 v1.4h Standard LaTeX document class
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/base/bk11.clo
|
||||
File: bk11.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
|
||||
)
|
||||
\c@part=\count80
|
||||
\c@chapter=\count81
|
||||
\c@section=\count82
|
||||
\c@subsection=\count83
|
||||
\c@subsubsection=\count84
|
||||
\c@paragraph=\count85
|
||||
\c@subparagraph=\count86
|
||||
\c@figure=\count87
|
||||
\c@table=\count88
|
||||
\abovecaptionskip=\skip41
|
||||
\belowcaptionskip=\skip42
|
||||
\bibindent=\dimen102
|
||||
)
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/setspace/setspace.sty
|
||||
Package: setspace 2011/12/19 v6.7a set line spacing
|
||||
)
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/vmargin/vmargin.sty
|
||||
Package: vmargin 2004/07/15 V2.5 set document margins (VK)
|
||||
|
||||
Package: vmargin 2004/07/15 V2.5 set document margins (VK)
|
||||
\PaperWidth=\dimen103
|
||||
\PaperHeight=\dimen104
|
||||
) (/usr/local/texlive/2018/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty
|
||||
Package: fancyhdr 2017/06/30 v3.9a Extensive control of page headers and footer
|
||||
s
|
||||
\f@nch@headwidth=\skip43
|
||||
\f@nch@O@elh=\skip44
|
||||
\f@nch@O@erh=\skip45
|
||||
\f@nch@O@olh=\skip46
|
||||
\f@nch@O@orh=\skip47
|
||||
\f@nch@O@elf=\skip48
|
||||
\f@nch@O@erf=\skip49
|
||||
\f@nch@O@olf=\skip50
|
||||
\f@nch@O@orf=\skip51
|
||||
)
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsmath.sty
|
||||
Package: amsmath 2017/09/02 v2.17a AMS math features
|
||||
\@mathmargin=\skip52
|
||||
|
||||
For additional information on amsmath, use the `?' option.
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amstext.sty
|
||||
Package: amstext 2000/06/29 v2.01 AMS text
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsgen.sty
|
||||
File: amsgen.sty 1999/11/30 v2.0 generic functions
|
||||
\@emptytoks=\toks14
|
||||
\ex@=\dimen105
|
||||
))
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsbsy.sty
|
||||
Package: amsbsy 1999/11/29 v1.2d Bold Symbols
|
||||
\pmbraise@=\dimen106
|
||||
)
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsopn.sty
|
||||
Package: amsopn 2016/03/08 v2.02 operator names
|
||||
)
|
||||
\inf@bad=\count89
|
||||
LaTeX Info: Redefining \frac on input line 213.
|
||||
\uproot@=\count90
|
||||
\leftroot@=\count91
|
||||
LaTeX Info: Redefining \overline on input line 375.
|
||||
\classnum@=\count92
|
||||
\DOTSCASE@=\count93
|
||||
LaTeX Info: Redefining \ldots on input line 472.
|
||||
LaTeX Info: Redefining \dots on input line 475.
|
||||
LaTeX Info: Redefining \cdots on input line 596.
|
||||
\Mathstrutbox@=\box26
|
||||
\strutbox@=\box27
|
||||
\big@size=\dimen107
|
||||
LaTeX Font Info: Redeclaring font encoding OML on input line 712.
|
||||
LaTeX Font Info: Redeclaring font encoding OMS on input line 713.
|
||||
\macc@depth=\count94
|
||||
\c@MaxMatrixCols=\count95
|
||||
\dotsspace@=\muskip10
|
||||
\c@parentequation=\count96
|
||||
\dspbrk@lvl=\count97
|
||||
\tag@help=\toks15
|
||||
\row@=\count98
|
||||
\column@=\count99
|
||||
\maxfields@=\count100
|
||||
\andhelp@=\toks16
|
||||
\eqnshift@=\dimen108
|
||||
\alignsep@=\dimen109
|
||||
\tagshift@=\dimen110
|
||||
\tagwidth@=\dimen111
|
||||
\totwidth@=\dimen112
|
||||
\lineht@=\dimen113
|
||||
\@envbody=\toks17
|
||||
\multlinegap=\skip53
|
||||
\multlinetaggap=\skip54
|
||||
\mathdisplay@stack=\toks18
|
||||
LaTeX Info: Redefining \[ on input line 2817.
|
||||
LaTeX Info: Redefining \] on input line 2818.
|
||||
)
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/amsfonts.sty
|
||||
Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support
|
||||
\symAMSa=\mathgroup4
|
||||
\symAMSb=\mathgroup5
|
||||
LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold'
|
||||
(Font) U/euf/m/n --> U/euf/b/n on input line 106.
|
||||
)
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/amssymb.sty
|
||||
Package: amssymb 2013/01/14 v3.01 AMS font symbols
|
||||
)
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amscd.sty
|
||||
Package: amscd 2017/04/14 v2.1 AMS Commutative Diagrams
|
||||
\athelp@=\toks19
|
||||
\minaw@=\dimen114
|
||||
\bigaw@=\dimen115
|
||||
\minCDarrowwidth=\dimen116
|
||||
)
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/amscls/amsthm.sty
|
||||
Package: amsthm 2017/10/31 v2.20.4
|
||||
\thm@style=\toks20
|
||||
\thm@bodyfont=\toks21
|
||||
\thm@headfont=\toks22
|
||||
\thm@notefont=\toks23
|
||||
\thm@headpunct=\toks24
|
||||
\thm@preskip=\skip55
|
||||
\thm@postskip=\skip56
|
||||
\thm@headsep=\skip57
|
||||
\dth@everypar=\toks25
|
||||
)
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/tools/xspace.sty
|
||||
Package: xspace 2014/10/28 v1.13 Space after command names (DPC,MH)
|
||||
)
|
||||
\c@example=\count101
|
||||
\c@theorem=\count102
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/caption/caption.sty
|
||||
Package: caption 2016/02/21 v3.3-144 Customizing captions (AR)
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/caption/caption3.sty
|
||||
Package: caption3 2016/05/22 v1.7-166 caption3 kernel (AR)
|
||||
Package caption3 Info: TeX engine: e-TeX on input line 67.
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/keyval.sty
|
||||
Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
|
||||
\KV@toks@=\toks26
|
||||
)
|
||||
\captionmargin=\dimen117
|
||||
\captionmargin@=\dimen118
|
||||
\captionwidth=\dimen119
|
||||
\caption@tempdima=\dimen120
|
||||
\caption@indent=\dimen121
|
||||
\caption@parindent=\dimen122
|
||||
\caption@hangindent=\dimen123
|
||||
)
|
||||
\c@ContinuedFloat=\count103
|
||||
)
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/graphicx.sty
|
||||
Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR)
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/graphics.sty
|
||||
Package: graphics 2017/06/25 v1.2c Standard LaTeX Graphics (DPC,SPQR)
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/trig.sty
|
||||
Package: trig 2016/01/03 v1.10 sin cos tan (DPC)
|
||||
)
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
|
||||
File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration
|
||||
)
|
||||
Package graphics Info: Driver file: pdftex.def on input line 99.
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics-def/pdftex.def
|
||||
File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex
|
||||
))
|
||||
\Gin@req@height=\dimen124
|
||||
\Gin@req@width=\dimen125
|
||||
)
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/epstopdf.sty
|
||||
Package: epstopdf 2016/05/15 v2.6 Conversion with epstopdf on the fly (HO)
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty
|
||||
Package: epstopdf-base 2016/05/15 v2.6 Base part for package epstopdf
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/infwarerr.sty
|
||||
Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO)
|
||||
)
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/grfext.sty
|
||||
Package: grfext 2016/05/16 v1.2 Manage graphics extensions (HO)
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty
|
||||
Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO)
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
|
||||
Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO)
|
||||
)))
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/kvoptions.sty
|
||||
Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO)
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty
|
||||
Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO)
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/etexcmds.sty
|
||||
Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/ifluatex.sty
|
||||
Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO)
|
||||
Package ifluatex Info: LuaTeX not detected.
|
||||
)
|
||||
Package etexcmds Info: Could not find \expanded.
|
||||
(etexcmds) That can mean that you are not using pdfTeX 1.50 or
|
||||
(etexcmds) that some package has redefined \expanded.
|
||||
(etexcmds) In the latter case, load this package earlier.
|
||||
)))
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty
|
||||
Package: pdftexcmds 2018/01/30 v0.27 Utility functions of pdfTeX for LuaTeX (HO
|
||||
)
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/ifpdf.sty
|
||||
Package: ifpdf 2017/03/15 v3.2 Provides the ifpdf switch
|
||||
)
|
||||
Package pdftexcmds Info: LuaTeX not detected.
|
||||
Package pdftexcmds Info: \pdf@primitive is available.
|
||||
Package pdftexcmds Info: \pdf@ifprimitive is available.
|
||||
Package pdftexcmds Info: \pdfdraftmode found.
|
||||
)
|
||||
Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4
|
||||
38.
|
||||
Package grfext Info: Graphics extension search list:
|
||||
(grfext) [.pdf,.png,.jpg,.mps,.jpeg,.jbig2,.jb2,.PDF,.PNG,.JPG,.JPE
|
||||
G,.JBIG2,.JB2,.eps]
|
||||
(grfext) \AppendGraphicsExtensions on input line 456.
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
|
||||
File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv
|
||||
e
|
||||
)))
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/subfigure/subfigure.sty
|
||||
Package: subfigure 2002/03/15 v2.1.5 subfigure package
|
||||
\subfigtopskip=\skip58
|
||||
\subfigcapskip=\skip59
|
||||
\subfigcaptopadj=\dimen126
|
||||
\subfigbottomskip=\skip60
|
||||
\subfigcapmargin=\dimen127
|
||||
\subfiglabelskip=\skip61
|
||||
\c@subfigure=\count104
|
||||
\c@lofdepth=\count105
|
||||
\c@subtable=\count106
|
||||
\c@lotdepth=\count107
|
||||
|
||||
****************************************
|
||||
* Local config file subfigure.cfg used *
|
||||
****************************************
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/subfigure/subfigure.cfg)
|
||||
\subfig@top=\skip62
|
||||
\subfig@bottom=\skip63
|
||||
)
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/booktabs/booktabs.sty
|
||||
Package: booktabs 2016/04/27 v1.618033 publication quality tables
|
||||
\heavyrulewidth=\dimen128
|
||||
\lightrulewidth=\dimen129
|
||||
\cmidrulewidth=\dimen130
|
||||
\belowrulesep=\dimen131
|
||||
\belowbottomsep=\dimen132
|
||||
\aboverulesep=\dimen133
|
||||
\abovetopsep=\dimen134
|
||||
\cmidrulesep=\dimen135
|
||||
\cmidrulekern=\dimen136
|
||||
\defaultaddspace=\dimen137
|
||||
\@cmidla=\count108
|
||||
\@cmidlb=\count109
|
||||
\@aboverulesep=\dimen138
|
||||
\@belowrulesep=\dimen139
|
||||
\@thisruleclass=\count110
|
||||
\@lastruleclass=\count111
|
||||
\@thisrulewidth=\dimen140
|
||||
)
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/rotating.sty
|
||||
Package: rotating 2016/08/11 v2.16d rotated objects in LaTeX
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/base/ifthen.sty
|
||||
Package: ifthen 2014/09/29 v1.1c Standard LaTeX ifthen package (DPC)
|
||||
)
|
||||
\c@r@tfl@t=\count112
|
||||
\rotFPtop=\skip64
|
||||
\rotFPbot=\skip65
|
||||
\rot@float@box=\box28
|
||||
\rot@mess@toks=\toks27
|
||||
)
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/listings/listings.sty
|
||||
\lst@mode=\count113
|
||||
\lst@gtempboxa=\box29
|
||||
\lst@token=\toks28
|
||||
\lst@length=\count114
|
||||
\lst@currlwidth=\dimen141
|
||||
\lst@column=\count115
|
||||
\lst@pos=\count116
|
||||
\lst@lostspace=\dimen142
|
||||
\lst@width=\dimen143
|
||||
\lst@newlines=\count117
|
||||
\lst@lineno=\count118
|
||||
\lst@maxwidth=\dimen144
|
||||
|
||||
(./lstpatch.sty)
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/listings/lstmisc.sty
|
||||
File: lstmisc.sty 2015/06/04 1.6 (Carsten Heinz)
|
||||
\c@lstnumber=\count119
|
||||
\lst@skipnumbers=\count120
|
||||
\lst@framebox=\box30
|
||||
)
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/listings/listings.cfg
|
||||
File: listings.cfg 2015/06/04 1.6 listings configuration
|
||||
))
|
||||
Package: listings 2015/06/04 1.6 (Carsten Heinz)
|
||||
|
||||
(./lstpatch.sty)
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/hyperref.sty
|
||||
Package: hyperref 2018/02/06 v6.86b Hypertext links for LaTeX
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
|
||||
Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO)
|
||||
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty
|
||||
Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO)
|
||||
Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO)
|
||||
Package hobsub Info: Skipping package `infwarerr' (already loaded).
|
||||
Package hobsub Info: Skipping package `ltxcmds' (already loaded).
|
||||
Package hobsub Info: Skipping package `ifluatex' (already loaded).
|
||||
Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO)
|
||||
Package ifvtex Info: VTeX not detected.
|
||||
Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO)
|
||||
Package hobsub Info: Skipping package `ifpdf' (already loaded).
|
||||
Package hobsub Info: Skipping package `etexcmds' (already loaded).
|
||||
Package hobsub Info: Skipping package `kvsetkeys' (already loaded).
|
||||
Package hobsub Info: Skipping package `kvdefinekeys' (already loaded).
|
||||
Package hobsub Info: Skipping package `pdftexcmds' (already loaded).
|
||||
Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO)
|
||||
Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO
|
||||
)
|
||||
Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO)
|
||||
Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO)
|
||||
)
|
||||
Package hobsub Info: Skipping package `hobsub' (already loaded).
|
||||
Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO)
|
||||
Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO)
|
||||
Package: xcolor-patch 2016/05/16 xcolor patch
|
||||
Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO)
|
||||
Package atveryend Info: \enddocument detected (standard20110627).
|
||||
Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO)
|
||||
Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO)
|
||||
Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO)
|
||||
)
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/generic/ifxetex/ifxetex.sty
|
||||
Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional
|
||||
)
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/auxhook.sty
|
||||
Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO)
|
||||
)
|
||||
\@linkdim=\dimen145
|
||||
\Hy@linkcounter=\count121
|
||||
\Hy@pagecounter=\count122
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/pd1enc.def
|
||||
File: pd1enc.def 2018/02/06 v6.86b Hyperref: PDFDocEncoding definition (HO)
|
||||
Now handling font encoding PD1 ...
|
||||
... no UTF-8 mapping file for font encoding PD1
|
||||
)
|
||||
\Hy@SavedSpaceFactor=\count123
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/latexconfig/hyperref.cfg
|
||||
File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive
|
||||
)
|
||||
Package hyperref Info: Option `bookmarks' set `true' on input line 4383.
|
||||
Package hyperref Info: Option `bookmarksopen' set `true' on input line 4383.
|
||||
Package hyperref Info: Option `bookmarksnumbered' set `true' on input line 4383
|
||||
.
|
||||
Package hyperref Info: Option `hypertexnames' set `false' on input line 4383.
|
||||
Package hyperref Info: Option `colorlinks' set `true' on input line 4383.
|
||||
Package hyperref Info: Option `unicode' set `true' on input line 4383.
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/puenc.def
|
||||
File: puenc.def 2018/02/06 v6.86b Hyperref: PDF Unicode definition (HO)
|
||||
Now handling font encoding PU ...
|
||||
... no UTF-8 mapping file for font encoding PU
|
||||
)
|
||||
Package hyperref Info: Option `breaklinks' set `true' on input line 4383.
|
||||
Package hyperref Info: Hyper figures OFF on input line 4509.
|
||||
Package hyperref Info: Link nesting OFF on input line 4514.
|
||||
Package hyperref Info: Hyper index ON on input line 4517.
|
||||
Package hyperref Info: Plain pages OFF on input line 4524.
|
||||
Package hyperref Info: Backreferencing OFF on input line 4529.
|
||||
Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
|
||||
Package hyperref Info: Bookmarks ON on input line 4762.
|
||||
\c@Hy@tempcnt=\count124
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/url/url.sty
|
||||
\Urlmuskip=\muskip11
|
||||
Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
|
||||
)
|
||||
LaTeX Info: Redefining \url on input line 5115.
|
||||
\XeTeXLinkMargin=\dimen146
|
||||
\Fld@menulength=\count125
|
||||
\Field@Width=\dimen147
|
||||
\Fld@charsize=\dimen148
|
||||
Package hyperref Info: Hyper figures OFF on input line 6369.
|
||||
Package hyperref Info: Link nesting OFF on input line 6374.
|
||||
Package hyperref Info: Hyper index ON on input line 6377.
|
||||
Package hyperref Info: backreferencing OFF on input line 6384.
|
||||
Package hyperref Info: Link coloring ON on input line 6387.
|
||||
Package hyperref Info: Link coloring with OCG OFF on input line 6394.
|
||||
Package hyperref Info: PDF/A mode OFF on input line 6399.
|
||||
LaTeX Info: Redefining \ref on input line 6439.
|
||||
LaTeX Info: Redefining \pageref on input line 6443.
|
||||
\Hy@abspage=\count126
|
||||
\c@Item=\count127
|
||||
\c@Hfootnote=\count128
|
||||
)
|
||||
Package hyperref Info: Driver (autodetected): hpdftex.
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/hpdftex.def
|
||||
File: hpdftex.def 2018/02/06 v6.86b Hyperref driver for pdfTeX
|
||||
\Fld@listcount=\count129
|
||||
\c@bookmark@seq@number=\count130
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty
|
||||
Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO)
|
||||
Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
|
||||
82.
|
||||
)
|
||||
\Hy@SectionHShift=\skip66
|
||||
)
|
||||
\c@dummy=\count131
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/tools/longtable.sty
|
||||
Package: longtable 2014/10/28 v4.11 Multi-page Table package (DPC)
|
||||
\LTleft=\skip67
|
||||
\LTright=\skip68
|
||||
\LTpre=\skip69
|
||||
\LTpost=\skip70
|
||||
\LTchunksize=\count132
|
||||
\LTcapwidth=\dimen149
|
||||
\LT@head=\box31
|
||||
\LT@firsthead=\box32
|
||||
\LT@foot=\box33
|
||||
\LT@lastfoot=\box34
|
||||
\LT@cols=\count133
|
||||
\LT@rows=\count134
|
||||
\c@LT@tables=\count135
|
||||
\c@LT@chunks=\count136
|
||||
\LT@p@ftn=\toks29
|
||||
))
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/natbib/natbib.sty
|
||||
Package: natbib 2010/09/13 8.31b (PWD, AO)
|
||||
\bibhang=\skip71
|
||||
\bibsep=\skip72
|
||||
LaTeX Info: Redefining \cite on input line 694.
|
||||
\c@NAT@ctr=\count137
|
||||
)
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/tools/verbatim.sty
|
||||
Package: verbatim 2014/10/28 v1.5q LaTeX2e package for verbatim enhancements
|
||||
\every@verbatim=\toks30
|
||||
\verbatim@line=\toks31
|
||||
\verbatim@in@stream=\read1
|
||||
) (./vector.sty)
|
||||
Package hyperref Info: Option `colorlinks' set `true' on input line 13.
|
||||
|
||||
No file Thesis.aux.
|
||||
\openout1 = `Thesis.aux'.
|
||||
|
||||
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 16.
|
||||
LaTeX Font Info: ... okay on input line 16.
|
||||
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 16.
|
||||
LaTeX Font Info: ... okay on input line 16.
|
||||
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 16.
|
||||
LaTeX Font Info: ... okay on input line 16.
|
||||
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 16.
|
||||
LaTeX Font Info: ... okay on input line 16.
|
||||
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 16.
|
||||
LaTeX Font Info: ... okay on input line 16.
|
||||
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 16.
|
||||
LaTeX Font Info: ... okay on input line 16.
|
||||
LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 16.
|
||||
LaTeX Font Info: ... okay on input line 16.
|
||||
LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 16.
|
||||
LaTeX Font Info: ... okay on input line 16.
|
||||
Package caption Info: Begin \AtBeginDocument code.
|
||||
Package caption Info: hyperref package is loaded.
|
||||
Package caption Info: listings package is loaded.
|
||||
Package caption Info: longtable package is loaded.
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/caption/ltcaption.sty
|
||||
Package: ltcaption 2013/06/09 v1.4-94 longtable captions (AR)
|
||||
)
|
||||
Package caption Info: rotating package is loaded.
|
||||
Package caption Info: subfigure package is loaded.
|
||||
Package caption Info: End \AtBeginDocument code.
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
|
||||
[Loading MPS to PDF converter (version 2006.09.02).]
|
||||
\scratchcounter=\count138
|
||||
\scratchdimen=\dimen150
|
||||
\scratchbox=\box35
|
||||
\nofMPsegments=\count139
|
||||
\nofMParguments=\count140
|
||||
\everyMPshowfont=\toks32
|
||||
\MPscratchCnt=\count141
|
||||
\MPscratchDim=\dimen151
|
||||
\MPnumerator=\count142
|
||||
\makeMPintoPDFobject=\count143
|
||||
\everyMPtoPDFconversion=\toks33
|
||||
)
|
||||
\c@lstlisting=\count144
|
||||
\AtBeginShipoutBox=\box36
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/color.sty
|
||||
Package: color 2016/07/10 v1.1e Standard LaTeX Color (DPC)
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics-cfg/color.cfg
|
||||
File: color.cfg 2016/01/02 v1.6 sample color configuration
|
||||
)
|
||||
Package color Info: Driver file: pdftex.def on input line 147.
|
||||
)
|
||||
Package hyperref Info: Link coloring ON on input line 16.
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/nameref.sty
|
||||
Package: nameref 2016/05/21 v2.44 Cross-referencing by name of section
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/gettitlestring.sty
|
||||
Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO)
|
||||
)
|
||||
\c@section@level=\count145
|
||||
)
|
||||
LaTeX Info: Redefining \ref on input line 16.
|
||||
LaTeX Info: Redefining \pageref on input line 16.
|
||||
LaTeX Info: Redefining \nameref on input line 16.
|
||||
\@outlinefile=\write3
|
||||
\openout3 = `Thesis.out'.
|
||||
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
Title Page
|
||||
------------------------------------------------------------------------------
|
||||
[1
|
||||
|
||||
|
||||
|
||||
{/usr/local/texlive/2018/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
|
||||
------------------------------------------------------------------------------
|
||||
Declaration of Authorship
|
||||
------------------------------------------------------------------------------
|
||||
LaTeX Font Info: Try loading font information for U+msa on input line 71.
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/umsa.fd
|
||||
File: umsa.fd 2013/01/14 v3.01 AMS symbols A
|
||||
)
|
||||
LaTeX Font Info: Try loading font information for U+msb on input line 71.
|
||||
|
||||
(/usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/umsb.fd
|
||||
File: umsb.fd 2013/01/14 v3.01 AMS symbols B
|
||||
)
|
||||
Underfull \hbox (badness 10000) in paragraph at lines 71--71
|
||||
|
||||
[]
|
||||
|
||||
[1
|
||||
|
||||
] [2
|
||||
|
||||
]
|
||||
------------------------------------------------------------------------------
|
||||
Abstract Page
|
||||
------------------------------------------------------------------------------
|
||||
[3
|
||||
|
||||
]
|
||||
------------------------------------------------------------------------------
|
||||
Acknowledgements
|
||||
------------------------------------------------------------------------------
|
||||
[4
|
||||
|
||||
]
|
||||
------------------------------------------------------------------------------
|
||||
Table of Contents
|
||||
------------------------------------------------------------------------------
|
||||
\tf@toc=\write4
|
||||
\openout4 = `Thesis.toc'.
|
||||
|
||||
[5
|
||||
|
||||
|
||||
]
|
||||
------------------------------------------------------------------------------
|
||||
List of Figures
|
||||
------------------------------------------------------------------------------
|
||||
\tf@lof=\write5
|
||||
\openout5 = `Thesis.lof'.
|
||||
|
||||
[6
|
||||
|
||||
|
||||
]
|
||||
------------------------------------------------------------------------------
|
||||
List of Tables
|
||||
------------------------------------------------------------------------------
|
||||
\tf@lot=\write6
|
||||
\openout6 = `Thesis.lot'.
|
||||
|
||||
[7
|
||||
|
||||
|
||||
]
|
||||
------------------------------------------------------------------------------
|
||||
Abbreviations
|
||||
------------------------------------------------------------------------------
|
||||
[8
|
||||
|
||||
|
||||
|
||||
]
|
||||
------------------------------------------------------------------------------
|
||||
Physical Constants
|
||||
------------------------------------------------------------------------------
|
||||
[9
|
||||
|
||||
|
||||
|
||||
]
|
||||
------------------------------------------------------------------------------
|
||||
Symbols
|
||||
------------------------------------------------------------------------------
|
||||
[10
|
||||
|
||||
|
||||
|
||||
]
|
||||
------------------------------------------------------------------------------
|
||||
Dedicatory
|
||||
------------------------------------------------------------------------------
|
||||
[11
|
||||
|
||||
] (./Chapters/Chapter1.tex
|
||||
Chapter 1.
|
||||
------------------------------------------------------------------------------
|
||||
1 Introduction
|
||||
------------------------------------------------------------------------------
|
||||
[1
|
||||
|
||||
|
||||
|
||||
]) (./Appendices/AppendixA.tex [2]
|
||||
Appendix A.
|
||||
------------------------------------------------------------------------------
|
||||
A An Appendix
|
||||
------------------------------------------------------------------------------
|
||||
[3
|
||||
|
||||
]) [4]
|
||||
------------------------------------------------------------------------------
|
||||
Bibliography
|
||||
------------------------------------------------------------------------------
|
||||
No file Thesis.bbl.
|
||||
Package atveryend Info: Empty hook `BeforeClearDocument' on input line 216.
|
||||
Package atveryend Info: Empty hook `AfterLastShipout' on input line 216.
|
||||
(./Thesis.aux)
|
||||
Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 216.
|
||||
Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 216.
|
||||
|
||||
|
||||
Package rerunfilecheck Warning: File `Thesis.out' has changed.
|
||||
(rerunfilecheck) Rerun to get outlines right
|
||||
(rerunfilecheck) or use package `bookmark'.
|
||||
|
||||
Package rerunfilecheck Info: Checksums for `Thesis.out':
|
||||
(rerunfilecheck) Before: <no file>
|
||||
(rerunfilecheck) After: B9539B05B8669BC08A570F5791EBA46A;1601.
|
||||
Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 216.
|
||||
)
|
||||
Here is how much of TeX's memory you used:
|
||||
12894 strings out of 492649
|
||||
182286 string characters out of 6129623
|
||||
256367 words of memory out of 5000000
|
||||
16576 multiletter control sequences out of 15000+600000
|
||||
13007 words of font info for 48 fonts, out of 8000000 for 9000
|
||||
1141 hyphenation exceptions out of 8191
|
||||
49i,11n,45p,13210b,389s stack positions out of 5000i,500n,10000p,200000b,80000s
|
||||
</usr/local/texlive/2018/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb
|
||||
></usr/local/texlive/2018/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb>
|
||||
</usr/local/texlive/2018/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb><
|
||||
/usr/local/texlive/2018/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></u
|
||||
sr/local/texlive/2018/texmf-dist/fonts/type1/public/amsfonts/cm/cmr12.pfb></usr
|
||||
/local/texlive/2018/texmf-dist/fonts/type1/public/amsfonts/cm/cmr17.pfb></usr/l
|
||||
ocal/texlive/2018/texmf-dist/fonts/type1/public/amsfonts/cm/cmr8.pfb></usr/loca
|
||||
l/texlive/2018/texmf-dist/fonts/type1/public/amsfonts/cm/cmsl12.pfb></usr/local
|
||||
/texlive/2018/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/local/
|
||||
texlive/2018/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy8.pfb></usr/local/te
|
||||
xlive/2018/texmf-dist/fonts/type1/public/amsfonts/cm/cmti10.pfb></usr/local/tex
|
||||
live/2018/texmf-dist/fonts/type1/public/amsfonts/cm/cmti12.pfb></usr/local/texl
|
||||
ive/2018/texmf-dist/fonts/type1/public/amsfonts/symbols/msam7.pfb>
|
||||
Output written on Thesis.pdf (16 pages, 151352 bytes).
|
||||
PDF statistics:
|
||||
168 PDF objects out of 1000 (max. 8388607)
|
||||
135 compressed objects within 2 object streams
|
||||
39 named destinations out of 1000 (max. 500000)
|
||||
1 words of extra memory for PDF output out of 10000 (max. 10000000)
|
||||
|
2
doc/graduate-thesis/Thesis.lot
Normal file
2
doc/graduate-thesis/Thesis.lot
Normal file
@ -0,0 +1,2 @@
|
||||
\addvspace {10\p@ }
|
||||
\addvspace {10\p@ }
|
13
doc/graduate-thesis/Thesis.out
Normal file
13
doc/graduate-thesis/Thesis.out
Normal file
@ -0,0 +1,13 @@
|
||||
\BOOKMARK [0][-]{dummy.1}{\376\377\000D\000e\000c\000l\000a\000r\000a\000t\000i\000o\000n\000\040\000o\000f\000\040\000A\000u\000t\000h\000o\000r\000s\000h\000i\000p}{}% 1
|
||||
\BOOKMARK [0][-]{dummy.2}{\376\377\000A\000b\000s\000t\000r\000a\000c\000t}{}% 2
|
||||
\BOOKMARK [0][-]{dummy.3}{\376\377\000A\000c\000k\000n\000o\000w\000l\000e\000d\000g\000e\000m\000e\000n\000t\000s}{}% 3
|
||||
\BOOKMARK [0][-]{dummy.5}{\376\377\000L\000i\000s\000t\000\040\000o\000f\000\040\000F\000i\000g\000u\000r\000e\000s}{}% 4
|
||||
\BOOKMARK [0][-]{dummy.7}{\376\377\000L\000i\000s\000t\000\040\000o\000f\000\040\000T\000a\000b\000l\000e\000s}{}% 5
|
||||
\BOOKMARK [0][-]{dummy.9}{\376\377\000A\000b\000b\000r\000e\000v\000i\000a\000t\000i\000o\000n\000s}{}% 6
|
||||
\BOOKMARK [0][-]{dummy.12}{\376\377\000P\000h\000y\000s\000i\000c\000a\000l\000\040\000C\000o\000n\000s\000t\000a\000n\000t\000s}{}% 7
|
||||
\BOOKMARK [0][-]{dummy.15}{\376\377\000S\000y\000m\000b\000o\000l\000s}{}% 8
|
||||
\BOOKMARK [0][-]{chapter.18}{\376\377\0001\000\040\000I\000n\000t\000r\000o\000d\000u\000c\000t\000i\000o\000n}{}% 9
|
||||
\BOOKMARK [1][-]{section.19}{\376\377\0001\000.\0001\000\040\000A\000\040\000S\000e\000c\000t\000i\000o\000n}{chapter.18}% 10
|
||||
\BOOKMARK [2][-]{subsection.20}{\376\377\0001\000.\0001\000.\0001\000\040\000A\000\040\000S\000u\000b\000s\000e\000c\000t\000i\000o\000n}{section.19}% 11
|
||||
\BOOKMARK [1][-]{section.21}{\376\377\0001\000.\0002\000\040\000A\000n\000o\000t\000h\000e\000r\000\040\000S\000e\000c\000t\000i\000o\000n}{chapter.18}% 12
|
||||
\BOOKMARK [0][-]{appendix.22}{\376\377\000A\000\040\000A\000n\000\040\000A\000p\000p\000e\000n\000d\000i\000x}{}% 13
|
BIN
doc/graduate-thesis/Thesis.pdf
Normal file
BIN
doc/graduate-thesis/Thesis.pdf
Normal file
Binary file not shown.
BIN
doc/graduate-thesis/Thesis.synctex.gz
Normal file
BIN
doc/graduate-thesis/Thesis.synctex.gz
Normal file
Binary file not shown.
217
doc/graduate-thesis/Thesis.tex
Normal file
217
doc/graduate-thesis/Thesis.tex
Normal file
@ -0,0 +1,217 @@
|
||||
%% ----------------------------------------------------------------
|
||||
%% Thesis.tex -- MAIN FILE (the one that you compile with LaTeX)
|
||||
%% ----------------------------------------------------------------
|
||||
|
||||
% Set up the document
|
||||
\documentclass[a4paper, 11pt, oneside]{Thesis} % Use the "Thesis" style, based on the ECS Thesis style by Steve Gunn
|
||||
\graphicspath{Figures/} % Location of the graphics files (set up for graphics to be in PDF format)
|
||||
|
||||
% Include any extra LaTeX packages required
|
||||
\usepackage[square, numbers, comma, sort&compress]{natbib} % Use the "Natbib" style for the references in the Bibliography
|
||||
\usepackage{verbatim} % Needed for the "comment" environment to make LaTeX comments
|
||||
\usepackage{vector} % Allows "\bvec{}" and "\buvec{}" for "blackboard" style bold vectors in maths
|
||||
\hypersetup{urlcolor=blue, colorlinks=true} % Colours hyperlinks in blue, but this can be distracting if there are many links.
|
||||
|
||||
%% ----------------------------------------------------------------
|
||||
\begin{document}
|
||||
\frontmatter % Begin Roman style (i, ii, iii, iv...) page numbering
|
||||
|
||||
% Set up the Title Page
|
||||
\title {Thesis Title}
|
||||
\authors {\texorpdfstring
|
||||
{\href{your web site or email address}{Author Name}}
|
||||
{Author Name}
|
||||
}
|
||||
\addresses {\groupname\\\deptname\\\univname} % Do not change this here, instead these must be set in the "Thesis.cls" file, please look through it instead
|
||||
\date {\today}
|
||||
\subject {}
|
||||
\keywords {}
|
||||
|
||||
\maketitle
|
||||
%% ----------------------------------------------------------------
|
||||
|
||||
\setstretch{1.3} % It is better to have smaller font and larger line spacing than the other way round
|
||||
|
||||
% Define the page headers using the FancyHdr package and set up for one-sided printing
|
||||
\fancyhead{} % Clears all page headers and footers
|
||||
\rhead{\thepage} % Sets the right side header to show the page number
|
||||
\lhead{} % Clears the left side page header
|
||||
|
||||
\pagestyle{fancy} % Finally, use the "fancy" page style to implement the FancyHdr headers
|
||||
|
||||
%% ----------------------------------------------------------------
|
||||
% Declaration Page required for the Thesis, your institution may give you a different text to place here
|
||||
\Declaration{
|
||||
|
||||
\addtocontents{toc}{\vspace{1em}} % Add a gap in the Contents, for aesthetics
|
||||
|
||||
I, AUTHOR NAME, declare that this thesis titled, `THESIS TITLE' and the work presented in it are my own. I confirm that:
|
||||
|
||||
\begin{itemize}
|
||||
\item[\tiny{$\blacksquare$}] This work was done wholly or mainly while in candidature for a research degree at this University.
|
||||
|
||||
\item[\tiny{$\blacksquare$}] Where any part of this thesis has previously been submitted for a degree or any other qualification at this University or any other institution, this has been clearly stated.
|
||||
|
||||
\item[\tiny{$\blacksquare$}] Where I have consulted the published work of others, this is always clearly attributed.
|
||||
|
||||
\item[\tiny{$\blacksquare$}] Where I have quoted from the work of others, the source is always given. With the exception of such quotations, this thesis is entirely my own work.
|
||||
|
||||
\item[\tiny{$\blacksquare$}] I have acknowledged all main sources of help.
|
||||
|
||||
\item[\tiny{$\blacksquare$}] Where the thesis is based on work done by myself jointly with others, I have made clear exactly what was done by others and what I have contributed myself.
|
||||
\\
|
||||
\end{itemize}
|
||||
|
||||
|
||||
Signed:\\
|
||||
\rule[1em]{25em}{0.5pt} % This prints a line for the signature
|
||||
|
||||
Date:\\
|
||||
\rule[1em]{25em}{0.5pt} % This prints a line to write the date
|
||||
}
|
||||
\clearpage % Declaration ended, now start a new page
|
||||
|
||||
%% ----------------------------------------------------------------
|
||||
% The "Funny Quote Page"
|
||||
\pagestyle{empty} % No headers or footers for the following pages
|
||||
|
||||
\null\vfill
|
||||
% Now comes the "Funny Quote", written in italics
|
||||
\textit{``Write a funny quote here.''}
|
||||
|
||||
\begin{flushright}
|
||||
If the quote is taken from someone, their name goes here
|
||||
\end{flushright}
|
||||
|
||||
\vfill\vfill\vfill\vfill\vfill\vfill\null
|
||||
\clearpage % Funny Quote page ended, start a new page
|
||||
%% ----------------------------------------------------------------
|
||||
|
||||
% The Abstract Page
|
||||
\addtotoc{Abstract} % Add the "Abstract" page entry to the Contents
|
||||
\abstract{
|
||||
\addtocontents{toc}{\vspace{1em}} % Add a gap in the Contents, for aesthetics
|
||||
|
||||
The Thesis Abstract is written here (and usually kept to just this page). The page is kept centered vertically so can expand into the blank space above the title too\ldots
|
||||
|
||||
}
|
||||
|
||||
\clearpage % Abstract ended, start a new page
|
||||
%% ----------------------------------------------------------------
|
||||
|
||||
\setstretch{1.3} % Reset the line-spacing to 1.3 for body text (if it has changed)
|
||||
|
||||
% The Acknowledgements page, for thanking everyone
|
||||
\acknowledgements{
|
||||
\addtocontents{toc}{\vspace{1em}} % Add a gap in the Contents, for aesthetics
|
||||
|
||||
The acknowledgements and the people to thank go here, don't forget to include your project advisor\ldots
|
||||
|
||||
}
|
||||
\clearpage % End of the Acknowledgements
|
||||
%% ----------------------------------------------------------------
|
||||
|
||||
\pagestyle{fancy} %The page style headers have been "empty" all this time, now use the "fancy" headers as defined before to bring them back
|
||||
|
||||
|
||||
%% ----------------------------------------------------------------
|
||||
\lhead{\emph{Contents}} % Set the left side page header to "Contents"
|
||||
\tableofcontents % Write out the Table of Contents
|
||||
|
||||
%% ----------------------------------------------------------------
|
||||
\lhead{\emph{List of Figures}} % Set the left side page header to "List if Figures"
|
||||
\listoffigures % Write out the List of Figures
|
||||
|
||||
%% ----------------------------------------------------------------
|
||||
\lhead{\emph{List of Tables}} % Set the left side page header to "List of Tables"
|
||||
\listoftables % Write out the List of Tables
|
||||
|
||||
%% ----------------------------------------------------------------
|
||||
\setstretch{1.5} % Set the line spacing to 1.5, this makes the following tables easier to read
|
||||
\clearpage % Start a new page
|
||||
\lhead{\emph{Abbreviations}} % Set the left side page header to "Abbreviations"
|
||||
\listofsymbols{ll} % Include a list of Abbreviations (a table of two columns)
|
||||
{
|
||||
% \textbf{Acronym} & \textbf{W}hat (it) \textbf{S}tands \textbf{F}or \\
|
||||
\textbf{LAH} & \textbf{L}ist \textbf{A}bbreviations \textbf{H}ere \\
|
||||
|
||||
}
|
||||
|
||||
%% ----------------------------------------------------------------
|
||||
\clearpage % Start a new page
|
||||
\lhead{\emph{Physical Constants}} % Set the left side page header to "Physical Constants"
|
||||
\listofconstants{lrcl} % Include a list of Physical Constants (a four column table)
|
||||
{
|
||||
% Constant Name & Symbol & = & Constant Value (with units) \\
|
||||
Speed of Light & $c$ & $=$ & $2.997\ 924\ 58\times10^{8}\ \mbox{ms}^{-\mbox{s}}$ (exact)\\
|
||||
|
||||
}
|
||||
|
||||
%% ----------------------------------------------------------------
|
||||
\clearpage %Start a new page
|
||||
\lhead{\emph{Symbols}} % Set the left side page header to "Symbols"
|
||||
\listofnomenclature{lll} % Include a list of Symbols (a three column table)
|
||||
{
|
||||
% symbol & name & unit \\
|
||||
$a$ & distance & m \\
|
||||
$P$ & power & W (Js$^{-1}$) \\
|
||||
& & \\ % Gap to separate the Roman symbols from the Greek
|
||||
$\omega$ & angular frequency & rads$^{-1}$ \\
|
||||
}
|
||||
%% ----------------------------------------------------------------
|
||||
% End of the pre-able, contents and lists of things
|
||||
% Begin the Dedication page
|
||||
|
||||
\setstretch{1.3} % Return the line spacing back to 1.3
|
||||
|
||||
\pagestyle{empty} % Page style needs to be empty for this page
|
||||
\dedicatory{For/Dedicated to/To my\ldots}
|
||||
|
||||
\addtocontents{toc}{\vspace{2em}} % Add a gap in the Contents, for aesthetics
|
||||
|
||||
|
||||
%% ----------------------------------------------------------------
|
||||
\mainmatter % Begin normal, numeric (1,2,3...) page numbering
|
||||
\pagestyle{fancy} % Return the page headers back to the "fancy" style
|
||||
|
||||
% Include the chapters of the thesis, as separate files
|
||||
% Just uncomment the lines as you write the chapters
|
||||
|
||||
\input{Chapters/Chapter1} % Introduction
|
||||
|
||||
%\input{Chapters/Chapter2} % Background Theory
|
||||
|
||||
%\input{Chapters/Chapter3} % Experimental Setup
|
||||
|
||||
%\input{Chapters/Chapter4} % Experiment 1
|
||||
|
||||
%\input{Chapters/Chapter5} % Experiment 2
|
||||
|
||||
%\input{Chapters/Chapter6} % Results and Discussion
|
||||
|
||||
%\input{Chapters/Chapter7} % Conclusion
|
||||
|
||||
%% ----------------------------------------------------------------
|
||||
% Now begin the Appendices, including them as separate files
|
||||
|
||||
\addtocontents{toc}{\vspace{2em}} % Add a gap in the Contents, for aesthetics
|
||||
|
||||
\appendix % Cue to tell LaTeX that the following 'chapters' are Appendices
|
||||
|
||||
\input{Appendices/AppendixA} % Appendix Title
|
||||
|
||||
%\input{Appendices/AppendixB} % Appendix Title
|
||||
|
||||
%\input{Appendices/AppendixC} % Appendix Title
|
||||
|
||||
\addtocontents{toc}{\vspace{2em}} % Add a gap in the Contents, for aesthetics
|
||||
\backmatter
|
||||
|
||||
%% ----------------------------------------------------------------
|
||||
\label{Bibliography}
|
||||
\lhead{\emph{Bibliography}} % Change the left side page header to "Bibliography"
|
||||
\bibliographystyle{unsrtnat} % Use the "unsrtnat" BibTeX style for formatting the Bibliography
|
||||
\bibliography{Bibliography} % The references (bibliography) information are stored in the file named "Bibliography.bib"
|
||||
|
||||
\end{document} % The End
|
||||
%% ----------------------------------------------------------------
|
19
doc/graduate-thesis/Thesis.toc
Normal file
19
doc/graduate-thesis/Thesis.toc
Normal file
@ -0,0 +1,19 @@
|
||||
\contentsline {chapter}{Declaration of Authorship}{i}{dummy.1}
|
||||
\vspace {1em}
|
||||
\contentsline {chapter}{Abstract}{iii}{dummy.2}
|
||||
\vspace {1em}
|
||||
\contentsline {chapter}{Acknowledgements}{iv}{dummy.3}
|
||||
\vspace {1em}
|
||||
\contentsline {chapter}{List of Figures}{vi}{dummy.5}
|
||||
\contentsline {chapter}{List of Tables}{vii}{dummy.7}
|
||||
\contentsline {chapter}{Abbreviations}{viii}{dummy.9}
|
||||
\contentsline {chapter}{Physical Constants}{ix}{dummy.12}
|
||||
\contentsline {chapter}{Symbols}{x}{dummy.15}
|
||||
\vspace {2em}
|
||||
\contentsline {chapter}{\numberline {1}Introduction}{1}{chapter.18}
|
||||
\contentsline {section}{\numberline {1.1}A Section}{1}{section.19}
|
||||
\contentsline {subsection}{\numberline {1.1.1}A Subsection}{1}{subsection.20}
|
||||
\contentsline {section}{\numberline {1.2}Another Section}{2}{section.21}
|
||||
\vspace {2em}
|
||||
\contentsline {chapter}{\numberline {A}An Appendix}{3}{appendix.22}
|
||||
\vspace {2em}
|
1
doc/graduate-thesis/lstpatch.sty
Normal file
1
doc/graduate-thesis/lstpatch.sty
Normal file
File diff suppressed because one or more lines are too long
1
doc/graduate-thesis/vector.sty
Normal file
1
doc/graduate-thesis/vector.sty
Normal file
@ -0,0 +1 @@
|
||||
%%%% This is file `vector.sty',%% generated with the docstrip utility.%%%% The original source files were:%%%% vector.dtx (with options: `package')%% %% Copyright (C) 1994 by Nick Efford%% %% This file is distributed in the hope that it will be useful,%% but WITHOUT ANY WARRANTY; without even the implied warranty of%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.%% \NeedsTeXFormat{LaTeX2e}\ProvidesPackage{vector}[1994/09/16 v1.0 vector macros for LaTeX2e (nde)]\RequirePackage{ifthen}\RequirePackage{calc}\newboolean{@wavy}\DeclareOption{wavy}{\setboolean{@wavy}{true}}\ProcessOptions\newcommand{\bvec}[1]{\ensuremath{\mathbf{#1}}}\newcommand{\buvec}[1]{\ensuremath{\mathbf{\hat{#1}}}}\newcommand{\svec}[1]{\ensuremath{\mathsf{#1}}}\newcommand{\suvec}[1]{\ensuremath{\mathsf{\hat{#1}}}}\ifthenelse{\boolean{@wavy}}{% \PackageInfo{vector}{wavy underlining selected} \newcommand{\undertilde}[1]{\mathord{\vtop{\ialign{##\crcr $\hfil\displaystyle{#1}\hfil$\crcr\noalign{\kern1.5pt\nointerlineskip} $\hfil\tilde{}\hfil$\crcr\noalign{\kern1.5pt}}}}} \newcommand{\uvec}[1]{\ensuremath{\undertilde{#1}}} \newcommand{\uuvec}[1]{\ensuremath{\hat{\undertilde{#1}}}}}{% \newcommand{\uvec}[1]{\ensuremath{\underline{#1}}} \newcommand{\uuvec}[1]{\ensuremath{\hat{\underline{#1}}}}}\def\first@element{1}\newcommand{\firstelement}[1]{\def\first@element{#1}}\newcommand{\irvec}[2][n]{\ensuremath{{#2}_{\first@element},\ldots,{#2}_{#1}}}\newcommand{\icvec}[2][n]{% \begin{array}{c} {#2}_{\first@element}\\ \vdots\\ {#2}_{#1} \end{array}}\newcounter{vec@elem}\newcommand{\rvec}[3]{% \ensuremath{% \ifthenelse{#3 > #2}{% \setcounter{vec@elem}{#2} \whiledo{\value{vec@elem} < #3}% {{#1}_{\thevec@elem}, \stepcounter{vec@elem}}% {#1}_{#3}}{{#1}_{#2}}}}\newcommand{\cvec}[3]{% \ifthenelse{#3 > #2}{% \setcounter{vec@elem}{#2} \begin{array}{c} \whiledo{\value{vec@elem} < #3}% {{#1}_{\thevec@elem} \\ \stepcounter{vec@elem}}% {#1}_{#3} \end{array}}{{#1}_{#2}}}\endinput%%%% End of file `vector.sty'.
|
@ -43,6 +43,7 @@ INSTALLED_APPS = [
|
||||
'django.contrib.sessions',
|
||||
'django.contrib.messages',
|
||||
'django.contrib.staticfiles',
|
||||
'taggit',
|
||||
'application',
|
||||
]
|
||||
|
||||
|
@ -1 +0,0 @@
|
||||
default_app_config = 'django.contrib.postgres.apps.PostgresConfig'
|
@ -1,2 +0,0 @@
|
||||
from .general import * # NOQA
|
||||
from .statistics import * # NOQA
|
@ -1,59 +0,0 @@
|
||||
from django.contrib.postgres.fields import JSONField
|
||||
from django.db.models.aggregates import Aggregate
|
||||
|
||||
__all__ = [
|
||||
'ArrayAgg', 'BitAnd', 'BitOr', 'BoolAnd', 'BoolOr', 'JSONBAgg', 'StringAgg',
|
||||
]
|
||||
|
||||
|
||||
class ArrayAgg(Aggregate):
|
||||
function = 'ARRAY_AGG'
|
||||
template = '%(function)s(%(distinct)s%(expressions)s)'
|
||||
|
||||
def __init__(self, expression, distinct=False, **extra):
|
||||
super().__init__(expression, distinct='DISTINCT ' if distinct else '', **extra)
|
||||
|
||||
def convert_value(self, value, expression, connection):
|
||||
if not value:
|
||||
return []
|
||||
return value
|
||||
|
||||
|
||||
class BitAnd(Aggregate):
|
||||
function = 'BIT_AND'
|
||||
|
||||
|
||||
class BitOr(Aggregate):
|
||||
function = 'BIT_OR'
|
||||
|
||||
|
||||
class BoolAnd(Aggregate):
|
||||
function = 'BOOL_AND'
|
||||
|
||||
|
||||
class BoolOr(Aggregate):
|
||||
function = 'BOOL_OR'
|
||||
|
||||
|
||||
class JSONBAgg(Aggregate):
|
||||
function = 'JSONB_AGG'
|
||||
output_field = JSONField()
|
||||
|
||||
def convert_value(self, value, expression, connection):
|
||||
if not value:
|
||||
return []
|
||||
return value
|
||||
|
||||
|
||||
class StringAgg(Aggregate):
|
||||
function = 'STRING_AGG'
|
||||
template = "%(function)s(%(distinct)s%(expressions)s, '%(delimiter)s')"
|
||||
|
||||
def __init__(self, expression, delimiter, distinct=False, **extra):
|
||||
distinct = 'DISTINCT ' if distinct else ''
|
||||
super().__init__(expression, delimiter=delimiter, distinct=distinct, **extra)
|
||||
|
||||
def convert_value(self, value, expression, connection):
|
||||
if not value:
|
||||
return ''
|
||||
return value
|
@ -1,69 +0,0 @@
|
||||
from django.db.models import FloatField, IntegerField
|
||||
from django.db.models.aggregates import Aggregate
|
||||
|
||||
__all__ = [
|
||||
'CovarPop', 'Corr', 'RegrAvgX', 'RegrAvgY', 'RegrCount', 'RegrIntercept',
|
||||
'RegrR2', 'RegrSlope', 'RegrSXX', 'RegrSXY', 'RegrSYY', 'StatAggregate',
|
||||
]
|
||||
|
||||
|
||||
class StatAggregate(Aggregate):
|
||||
output_field = FloatField()
|
||||
|
||||
def __init__(self, y, x, output_field=None, filter=None):
|
||||
if not x or not y:
|
||||
raise ValueError('Both y and x must be provided.')
|
||||
super().__init__(y, x, output_field=output_field, filter=filter)
|
||||
|
||||
def resolve_expression(self, query=None, allow_joins=True, reuse=None, summarize=False, for_save=False):
|
||||
return super().resolve_expression(query, allow_joins, reuse, summarize)
|
||||
|
||||
|
||||
class Corr(StatAggregate):
|
||||
function = 'CORR'
|
||||
|
||||
|
||||
class CovarPop(StatAggregate):
|
||||
def __init__(self, y, x, sample=False, filter=None):
|
||||
self.function = 'COVAR_SAMP' if sample else 'COVAR_POP'
|
||||
super().__init__(y, x, filter=filter)
|
||||
|
||||
|
||||
class RegrAvgX(StatAggregate):
|
||||
function = 'REGR_AVGX'
|
||||
|
||||
|
||||
class RegrAvgY(StatAggregate):
|
||||
function = 'REGR_AVGY'
|
||||
|
||||
|
||||
class RegrCount(StatAggregate):
|
||||
function = 'REGR_COUNT'
|
||||
output_field = IntegerField()
|
||||
|
||||
def convert_value(self, value, expression, connection):
|
||||
return 0 if value is None else value
|
||||
|
||||
|
||||
class RegrIntercept(StatAggregate):
|
||||
function = 'REGR_INTERCEPT'
|
||||
|
||||
|
||||
class RegrR2(StatAggregate):
|
||||
function = 'REGR_R2'
|
||||
|
||||
|
||||
class RegrSlope(StatAggregate):
|
||||
function = 'REGR_SLOPE'
|
||||
|
||||
|
||||
class RegrSXX(StatAggregate):
|
||||
function = 'REGR_SXX'
|
||||
|
||||
|
||||
class RegrSXY(StatAggregate):
|
||||
function = 'REGR_SXY'
|
||||
|
||||
|
||||
class RegrSYY(StatAggregate):
|
||||
function = 'REGR_SYY'
|
@ -1,35 +0,0 @@
|
||||
from django.apps import AppConfig
|
||||
from django.db import connections
|
||||
from django.db.backends.signals import connection_created
|
||||
from django.db.models import CharField, TextField
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from .lookups import SearchLookup, TrigramSimilar, Unaccent
|
||||
from .signals import register_type_handlers
|
||||
|
||||
|
||||
class PostgresConfig(AppConfig):
|
||||
name = 'django.contrib.postgres'
|
||||
verbose_name = _('PostgreSQL extensions')
|
||||
|
||||
def ready(self):
|
||||
# Connections may already exist before we are called.
|
||||
for conn in connections.all():
|
||||
if conn.vendor == 'postgresql':
|
||||
conn.introspection.data_types_reverse.update({
|
||||
3802: 'django.contrib.postgres.fields.JSONField',
|
||||
3904: 'django.contrib.postgres.fields.IntegerRangeField',
|
||||
3906: 'django.contrib.postgres.fields.FloatRangeField',
|
||||
3910: 'django.contrib.postgres.fields.DateTimeRangeField',
|
||||
3912: 'django.contrib.postgres.fields.DateRangeField',
|
||||
3926: 'django.contrib.postgres.fields.BigIntegerRangeField',
|
||||
})
|
||||
if conn.connection is not None:
|
||||
register_type_handlers(conn)
|
||||
connection_created.connect(register_type_handlers)
|
||||
CharField.register_lookup(Unaccent)
|
||||
TextField.register_lookup(Unaccent)
|
||||
CharField.register_lookup(SearchLookup)
|
||||
TextField.register_lookup(SearchLookup)
|
||||
CharField.register_lookup(TrigramSimilar)
|
||||
TextField.register_lookup(TrigramSimilar)
|
@ -1,5 +0,0 @@
|
||||
from .array import * # NOQA
|
||||
from .citext import * # NOQA
|
||||
from .hstore import * # NOQA
|
||||
from .jsonb import * # NOQA
|
||||
from .ranges import * # NOQA
|
@ -1,302 +0,0 @@
|
||||
import json
|
||||
|
||||
from django.contrib.postgres import lookups
|
||||
from django.contrib.postgres.forms import SimpleArrayField
|
||||
from django.contrib.postgres.validators import ArrayMaxLengthValidator
|
||||
from django.core import checks, exceptions
|
||||
from django.db.models import Field, IntegerField, Transform
|
||||
from django.db.models.lookups import Exact, In
|
||||
from django.utils.inspect import func_supports_parameter
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from ..utils import prefix_validation_error
|
||||
from .utils import AttributeSetter
|
||||
|
||||
__all__ = ['ArrayField']
|
||||
|
||||
|
||||
class ArrayField(Field):
|
||||
empty_strings_allowed = False
|
||||
default_error_messages = {
|
||||
'item_invalid': _('Item %(nth)s in the array did not validate: '),
|
||||
'nested_array_mismatch': _('Nested arrays must have the same length.'),
|
||||
}
|
||||
|
||||
def __init__(self, base_field, size=None, **kwargs):
|
||||
self.base_field = base_field
|
||||
self.size = size
|
||||
if self.size:
|
||||
self.default_validators = self.default_validators[:]
|
||||
self.default_validators.append(ArrayMaxLengthValidator(self.size))
|
||||
# For performance, only add a from_db_value() method if the base field
|
||||
# implements it.
|
||||
if hasattr(self.base_field, 'from_db_value'):
|
||||
self.from_db_value = self._from_db_value
|
||||
super().__init__(**kwargs)
|
||||
|
||||
@property
|
||||
def model(self):
|
||||
try:
|
||||
return self.__dict__['model']
|
||||
except KeyError:
|
||||
raise AttributeError("'%s' object has no attribute 'model'" % self.__class__.__name__)
|
||||
|
||||
@model.setter
|
||||
def model(self, model):
|
||||
self.__dict__['model'] = model
|
||||
self.base_field.model = model
|
||||
|
||||
def check(self, **kwargs):
|
||||
errors = super().check(**kwargs)
|
||||
if self.base_field.remote_field:
|
||||
errors.append(
|
||||
checks.Error(
|
||||
'Base field for array cannot be a related field.',
|
||||
obj=self,
|
||||
id='postgres.E002'
|
||||
)
|
||||
)
|
||||
else:
|
||||
# Remove the field name checks as they are not needed here.
|
||||
base_errors = self.base_field.check()
|
||||
if base_errors:
|
||||
messages = '\n '.join('%s (%s)' % (error.msg, error.id) for error in base_errors)
|
||||
errors.append(
|
||||
checks.Error(
|
||||
'Base field for array has errors:\n %s' % messages,
|
||||
obj=self,
|
||||
id='postgres.E001'
|
||||
)
|
||||
)
|
||||
return errors
|
||||
|
||||
def set_attributes_from_name(self, name):
|
||||
super().set_attributes_from_name(name)
|
||||
self.base_field.set_attributes_from_name(name)
|
||||
|
||||
@property
|
||||
def description(self):
|
||||
return 'Array of %s' % self.base_field.description
|
||||
|
||||
def db_type(self, connection):
|
||||
size = self.size or ''
|
||||
return '%s[%s]' % (self.base_field.db_type(connection), size)
|
||||
|
||||
def get_db_prep_value(self, value, connection, prepared=False):
|
||||
if isinstance(value, (list, tuple)):
|
||||
return [self.base_field.get_db_prep_value(i, connection, prepared=False) for i in value]
|
||||
return value
|
||||
|
||||
def deconstruct(self):
|
||||
name, path, args, kwargs = super().deconstruct()
|
||||
if path == 'django.contrib.postgres.fields.array.ArrayField':
|
||||
path = 'django.contrib.postgres.fields.ArrayField'
|
||||
kwargs.update({
|
||||
'base_field': self.base_field.clone(),
|
||||
'size': self.size,
|
||||
})
|
||||
return name, path, args, kwargs
|
||||
|
||||
def to_python(self, value):
|
||||
if isinstance(value, str):
|
||||
# Assume we're deserializing
|
||||
vals = json.loads(value)
|
||||
value = [self.base_field.to_python(val) for val in vals]
|
||||
return value
|
||||
|
||||
def _from_db_value(self, value, expression, connection):
|
||||
if value is None:
|
||||
return value
|
||||
return [
|
||||
self.base_field.from_db_value(item, expression, connection, {})
|
||||
if func_supports_parameter(self.base_field.from_db_value, 'context') # RemovedInDjango30Warning
|
||||
else self.base_field.from_db_value(item, expression, connection)
|
||||
for item in value
|
||||
]
|
||||
|
||||
def value_to_string(self, obj):
|
||||
values = []
|
||||
vals = self.value_from_object(obj)
|
||||
base_field = self.base_field
|
||||
|
||||
for val in vals:
|
||||
if val is None:
|
||||
values.append(None)
|
||||
else:
|
||||
obj = AttributeSetter(base_field.attname, val)
|
||||
values.append(base_field.value_to_string(obj))
|
||||
return json.dumps(values)
|
||||
|
||||
def get_transform(self, name):
|
||||
transform = super().get_transform(name)
|
||||
if transform:
|
||||
return transform
|
||||
if '_' not in name:
|
||||
try:
|
||||
index = int(name)
|
||||
except ValueError:
|
||||
pass
|
||||
else:
|
||||
index += 1 # postgres uses 1-indexing
|
||||
return IndexTransformFactory(index, self.base_field)
|
||||
try:
|
||||
start, end = name.split('_')
|
||||
start = int(start) + 1
|
||||
end = int(end) # don't add one here because postgres slices are weird
|
||||
except ValueError:
|
||||
pass
|
||||
else:
|
||||
return SliceTransformFactory(start, end)
|
||||
|
||||
def validate(self, value, model_instance):
|
||||
super().validate(value, model_instance)
|
||||
for index, part in enumerate(value):
|
||||
try:
|
||||
self.base_field.validate(part, model_instance)
|
||||
except exceptions.ValidationError as error:
|
||||
raise prefix_validation_error(
|
||||
error,
|
||||
prefix=self.error_messages['item_invalid'],
|
||||
code='item_invalid',
|
||||
params={'nth': index},
|
||||
)
|
||||
if isinstance(self.base_field, ArrayField):
|
||||
if len({len(i) for i in value}) > 1:
|
||||
raise exceptions.ValidationError(
|
||||
self.error_messages['nested_array_mismatch'],
|
||||
code='nested_array_mismatch',
|
||||
)
|
||||
|
||||
def run_validators(self, value):
|
||||
super().run_validators(value)
|
||||
for index, part in enumerate(value):
|
||||
try:
|
||||
self.base_field.run_validators(part)
|
||||
except exceptions.ValidationError as error:
|
||||
raise prefix_validation_error(
|
||||
error,
|
||||
prefix=self.error_messages['item_invalid'],
|
||||
code='item_invalid',
|
||||
params={'nth': index},
|
||||
)
|
||||
|
||||
def formfield(self, **kwargs):
|
||||
defaults = {
|
||||
'form_class': SimpleArrayField,
|
||||
'base_field': self.base_field.formfield(),
|
||||
'max_length': self.size,
|
||||
}
|
||||
defaults.update(kwargs)
|
||||
return super().formfield(**defaults)
|
||||
|
||||
|
||||
@ArrayField.register_lookup
|
||||
class ArrayContains(lookups.DataContains):
|
||||
def as_sql(self, qn, connection):
|
||||
sql, params = super().as_sql(qn, connection)
|
||||
sql = '%s::%s' % (sql, self.lhs.output_field.db_type(connection))
|
||||
return sql, params
|
||||
|
||||
|
||||
@ArrayField.register_lookup
|
||||
class ArrayContainedBy(lookups.ContainedBy):
|
||||
def as_sql(self, qn, connection):
|
||||
sql, params = super().as_sql(qn, connection)
|
||||
sql = '%s::%s' % (sql, self.lhs.output_field.db_type(connection))
|
||||
return sql, params
|
||||
|
||||
|
||||
@ArrayField.register_lookup
|
||||
class ArrayExact(Exact):
|
||||
def as_sql(self, qn, connection):
|
||||
sql, params = super().as_sql(qn, connection)
|
||||
sql = '%s::%s' % (sql, self.lhs.output_field.db_type(connection))
|
||||
return sql, params
|
||||
|
||||
|
||||
@ArrayField.register_lookup
|
||||
class ArrayOverlap(lookups.Overlap):
|
||||
def as_sql(self, qn, connection):
|
||||
sql, params = super().as_sql(qn, connection)
|
||||
sql = '%s::%s' % (sql, self.lhs.output_field.db_type(connection))
|
||||
return sql, params
|
||||
|
||||
|
||||
@ArrayField.register_lookup
|
||||
class ArrayLenTransform(Transform):
|
||||
lookup_name = 'len'
|
||||
output_field = IntegerField()
|
||||
|
||||
def as_sql(self, compiler, connection):
|
||||
lhs, params = compiler.compile(self.lhs)
|
||||
# Distinguish NULL and empty arrays
|
||||
return (
|
||||
'CASE WHEN %(lhs)s IS NULL THEN NULL ELSE '
|
||||
'coalesce(array_length(%(lhs)s, 1), 0) END'
|
||||
) % {'lhs': lhs}, params
|
||||
|
||||
|
||||
@ArrayField.register_lookup
|
||||
class ArrayInLookup(In):
|
||||
def get_prep_lookup(self):
|
||||
values = super().get_prep_lookup()
|
||||
if hasattr(self.rhs, '_prepare'):
|
||||
# Subqueries don't need further preparation.
|
||||
return values
|
||||
# In.process_rhs() expects values to be hashable, so convert lists
|
||||
# to tuples.
|
||||
prepared_values = []
|
||||
for value in values:
|
||||
if hasattr(value, 'resolve_expression'):
|
||||
prepared_values.append(value)
|
||||
else:
|
||||
prepared_values.append(tuple(value))
|
||||
return prepared_values
|
||||
|
||||
|
||||
class IndexTransform(Transform):
|
||||
|
||||
def __init__(self, index, base_field, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
self.index = index
|
||||
self.base_field = base_field
|
||||
|
||||
def as_sql(self, compiler, connection):
|
||||
lhs, params = compiler.compile(self.lhs)
|
||||
return '%s[%s]' % (lhs, self.index), params
|
||||
|
||||
@property
|
||||
def output_field(self):
|
||||
return self.base_field
|
||||
|
||||
|
||||
class IndexTransformFactory:
|
||||
|
||||
def __init__(self, index, base_field):
|
||||
self.index = index
|
||||
self.base_field = base_field
|
||||
|
||||
def __call__(self, *args, **kwargs):
|
||||
return IndexTransform(self.index, self.base_field, *args, **kwargs)
|
||||
|
||||
|
||||
class SliceTransform(Transform):
|
||||
|
||||
def __init__(self, start, end, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
self.start = start
|
||||
self.end = end
|
||||
|
||||
def as_sql(self, compiler, connection):
|
||||
lhs, params = compiler.compile(self.lhs)
|
||||
return '%s[%s:%s]' % (lhs, self.start, self.end), params
|
||||
|
||||
|
||||
class SliceTransformFactory:
|
||||
|
||||
def __init__(self, start, end):
|
||||
self.start = start
|
||||
self.end = end
|
||||
|
||||
def __call__(self, *args, **kwargs):
|
||||
return SliceTransform(self.start, self.end, *args, **kwargs)
|
@ -1,24 +0,0 @@
|
||||
from django.db.models import CharField, EmailField, TextField
|
||||
|
||||
__all__ = ['CICharField', 'CIEmailField', 'CIText', 'CITextField']
|
||||
|
||||
|
||||
class CIText:
|
||||
|
||||
def get_internal_type(self):
|
||||
return 'CI' + super().get_internal_type()
|
||||
|
||||
def db_type(self, connection):
|
||||
return 'citext'
|
||||
|
||||
|
||||
class CICharField(CIText, CharField):
|
||||
pass
|
||||
|
||||
|
||||
class CIEmailField(CIText, EmailField):
|
||||
pass
|
||||
|
||||
|
||||
class CITextField(CIText, TextField):
|
||||
pass
|
@ -1,110 +0,0 @@
|
||||
import json
|
||||
|
||||
from django.contrib.postgres import forms, lookups
|
||||
from django.contrib.postgres.fields.array import ArrayField
|
||||
from django.core import exceptions
|
||||
from django.db.models import Field, TextField, Transform
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
__all__ = ['HStoreField']
|
||||
|
||||
|
||||
class HStoreField(Field):
|
||||
empty_strings_allowed = False
|
||||
description = _('Map of strings to strings/nulls')
|
||||
default_error_messages = {
|
||||
'not_a_string': _('The value of "%(key)s" is not a string or null.'),
|
||||
}
|
||||
|
||||
def db_type(self, connection):
|
||||
return 'hstore'
|
||||
|
||||
def get_transform(self, name):
|
||||
transform = super().get_transform(name)
|
||||
if transform:
|
||||
return transform
|
||||
return KeyTransformFactory(name)
|
||||
|
||||
def validate(self, value, model_instance):
|
||||
super().validate(value, model_instance)
|
||||
for key, val in value.items():
|
||||
if not isinstance(val, str) and val is not None:
|
||||
raise exceptions.ValidationError(
|
||||
self.error_messages['not_a_string'],
|
||||
code='not_a_string',
|
||||
params={'key': key},
|
||||
)
|
||||
|
||||
def to_python(self, value):
|
||||
if isinstance(value, str):
|
||||
value = json.loads(value)
|
||||
return value
|
||||
|
||||
def value_to_string(self, obj):
|
||||
return json.dumps(self.value_from_object(obj))
|
||||
|
||||
def formfield(self, **kwargs):
|
||||
defaults = {
|
||||
'form_class': forms.HStoreField,
|
||||
}
|
||||
defaults.update(kwargs)
|
||||
return super().formfield(**defaults)
|
||||
|
||||
def get_prep_value(self, value):
|
||||
value = super().get_prep_value(value)
|
||||
|
||||
if isinstance(value, dict):
|
||||
prep_value = {}
|
||||
for key, val in value.items():
|
||||
key = str(key)
|
||||
if val is not None:
|
||||
val = str(val)
|
||||
prep_value[key] = val
|
||||
value = prep_value
|
||||
|
||||
if isinstance(value, list):
|
||||
value = [str(item) for item in value]
|
||||
|
||||
return value
|
||||
|
||||
|
||||
HStoreField.register_lookup(lookups.DataContains)
|
||||
HStoreField.register_lookup(lookups.ContainedBy)
|
||||
HStoreField.register_lookup(lookups.HasKey)
|
||||
HStoreField.register_lookup(lookups.HasKeys)
|
||||
HStoreField.register_lookup(lookups.HasAnyKeys)
|
||||
|
||||
|
||||
class KeyTransform(Transform):
|
||||
output_field = TextField()
|
||||
|
||||
def __init__(self, key_name, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
self.key_name = key_name
|
||||
|
||||
def as_sql(self, compiler, connection):
|
||||
lhs, params = compiler.compile(self.lhs)
|
||||
return "(%s -> '%s')" % (lhs, self.key_name), params
|
||||
|
||||
|
||||
class KeyTransformFactory:
|
||||
|
||||
def __init__(self, key_name):
|
||||
self.key_name = key_name
|
||||
|
||||
def __call__(self, *args, **kwargs):
|
||||
return KeyTransform(self.key_name, *args, **kwargs)
|
||||
|
||||
|
||||
@HStoreField.register_lookup
|
||||
class KeysTransform(Transform):
|
||||
lookup_name = 'keys'
|
||||
function = 'akeys'
|
||||
output_field = ArrayField(TextField())
|
||||
|
||||
|
||||
@HStoreField.register_lookup
|
||||
class ValuesTransform(Transform):
|
||||
lookup_name = 'values'
|
||||
function = 'avals'
|
||||
output_field = ArrayField(TextField())
|
@ -1,183 +0,0 @@
|
||||
import json
|
||||
|
||||
from psycopg2.extras import Json
|
||||
|
||||
from django.contrib.postgres import forms, lookups
|
||||
from django.core import exceptions
|
||||
from django.db.models import (
|
||||
Field, TextField, Transform, lookups as builtin_lookups,
|
||||
)
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
__all__ = ['JSONField']
|
||||
|
||||
|
||||
class JsonAdapter(Json):
|
||||
"""
|
||||
Customized psycopg2.extras.Json to allow for a custom encoder.
|
||||
"""
|
||||
def __init__(self, adapted, dumps=None, encoder=None):
|
||||
self.encoder = encoder
|
||||
super().__init__(adapted, dumps=dumps)
|
||||
|
||||
def dumps(self, obj):
|
||||
options = {'cls': self.encoder} if self.encoder else {}
|
||||
return json.dumps(obj, **options)
|
||||
|
||||
|
||||
class JSONField(Field):
|
||||
empty_strings_allowed = False
|
||||
description = _('A JSON object')
|
||||
default_error_messages = {
|
||||
'invalid': _("Value must be valid JSON."),
|
||||
}
|
||||
|
||||
def __init__(self, verbose_name=None, name=None, encoder=None, **kwargs):
|
||||
if encoder and not callable(encoder):
|
||||
raise ValueError("The encoder parameter must be a callable object.")
|
||||
self.encoder = encoder
|
||||
super().__init__(verbose_name, name, **kwargs)
|
||||
|
||||
def db_type(self, connection):
|
||||
return 'jsonb'
|
||||
|
||||
def deconstruct(self):
|
||||
name, path, args, kwargs = super().deconstruct()
|
||||
if self.encoder is not None:
|
||||
kwargs['encoder'] = self.encoder
|
||||
return name, path, args, kwargs
|
||||
|
||||
def get_transform(self, name):
|
||||
transform = super().get_transform(name)
|
||||
if transform:
|
||||
return transform
|
||||
return KeyTransformFactory(name)
|
||||
|
||||
def get_prep_value(self, value):
|
||||
if value is not None:
|
||||
return JsonAdapter(value, encoder=self.encoder)
|
||||
return value
|
||||
|
||||
def validate(self, value, model_instance):
|
||||
super().validate(value, model_instance)
|
||||
options = {'cls': self.encoder} if self.encoder else {}
|
||||
try:
|
||||
json.dumps(value, **options)
|
||||
except TypeError:
|
||||
raise exceptions.ValidationError(
|
||||
self.error_messages['invalid'],
|
||||
code='invalid',
|
||||
params={'value': value},
|
||||
)
|
||||
|
||||
def value_to_string(self, obj):
|
||||
return self.value_from_object(obj)
|
||||
|
||||
def formfield(self, **kwargs):
|
||||
defaults = {'form_class': forms.JSONField}
|
||||
defaults.update(kwargs)
|
||||
return super().formfield(**defaults)
|
||||
|
||||
|
||||
JSONField.register_lookup(lookups.DataContains)
|
||||
JSONField.register_lookup(lookups.ContainedBy)
|
||||
JSONField.register_lookup(lookups.HasKey)
|
||||
JSONField.register_lookup(lookups.HasKeys)
|
||||
JSONField.register_lookup(lookups.HasAnyKeys)
|
||||
|
||||
|
||||
class KeyTransform(Transform):
|
||||
operator = '->'
|
||||
nested_operator = '#>'
|
||||
|
||||
def __init__(self, key_name, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
self.key_name = key_name
|
||||
|
||||
def as_sql(self, compiler, connection):
|
||||
key_transforms = [self.key_name]
|
||||
previous = self.lhs
|
||||
while isinstance(previous, KeyTransform):
|
||||
key_transforms.insert(0, previous.key_name)
|
||||
previous = previous.lhs
|
||||
lhs, params = compiler.compile(previous)
|
||||
if len(key_transforms) > 1:
|
||||
return "(%s %s %%s)" % (lhs, self.nested_operator), [key_transforms] + params
|
||||
try:
|
||||
int(self.key_name)
|
||||
except ValueError:
|
||||
lookup = "'%s'" % self.key_name
|
||||
else:
|
||||
lookup = "%s" % self.key_name
|
||||
return "(%s %s %s)" % (lhs, self.operator, lookup), params
|
||||
|
||||
|
||||
class KeyTextTransform(KeyTransform):
|
||||
operator = '->>'
|
||||
nested_operator = '#>>'
|
||||
output_field = TextField()
|
||||
|
||||
|
||||
class KeyTransformTextLookupMixin:
|
||||
"""
|
||||
Mixin for combining with a lookup expecting a text lhs from a JSONField
|
||||
key lookup. Make use of the ->> operator instead of casting key values to
|
||||
text and performing the lookup on the resulting representation.
|
||||
"""
|
||||
def __init__(self, key_transform, *args, **kwargs):
|
||||
assert isinstance(key_transform, KeyTransform)
|
||||
key_text_transform = KeyTextTransform(
|
||||
key_transform.key_name, *key_transform.source_expressions, **key_transform.extra
|
||||
)
|
||||
super().__init__(key_text_transform, *args, **kwargs)
|
||||
|
||||
|
||||
class KeyTransformIExact(KeyTransformTextLookupMixin, builtin_lookups.IExact):
|
||||
pass
|
||||
|
||||
|
||||
class KeyTransformIContains(KeyTransformTextLookupMixin, builtin_lookups.IContains):
|
||||
pass
|
||||
|
||||
|
||||
class KeyTransformStartsWith(KeyTransformTextLookupMixin, builtin_lookups.StartsWith):
|
||||
pass
|
||||
|
||||
|
||||
class KeyTransformIStartsWith(KeyTransformTextLookupMixin, builtin_lookups.IStartsWith):
|
||||
pass
|
||||
|
||||
|
||||
class KeyTransformEndsWith(KeyTransformTextLookupMixin, builtin_lookups.EndsWith):
|
||||
pass
|
||||
|
||||
|
||||
class KeyTransformIEndsWith(KeyTransformTextLookupMixin, builtin_lookups.IEndsWith):
|
||||
pass
|
||||
|
||||
|
||||
class KeyTransformRegex(KeyTransformTextLookupMixin, builtin_lookups.Regex):
|
||||
pass
|
||||
|
||||
|
||||
class KeyTransformIRegex(KeyTransformTextLookupMixin, builtin_lookups.IRegex):
|
||||
pass
|
||||
|
||||
|
||||
KeyTransform.register_lookup(KeyTransformIExact)
|
||||
KeyTransform.register_lookup(KeyTransformIContains)
|
||||
KeyTransform.register_lookup(KeyTransformStartsWith)
|
||||
KeyTransform.register_lookup(KeyTransformIStartsWith)
|
||||
KeyTransform.register_lookup(KeyTransformEndsWith)
|
||||
KeyTransform.register_lookup(KeyTransformIEndsWith)
|
||||
KeyTransform.register_lookup(KeyTransformRegex)
|
||||
KeyTransform.register_lookup(KeyTransformIRegex)
|
||||
|
||||
|
||||
class KeyTransformFactory:
|
||||
|
||||
def __init__(self, key_name):
|
||||
self.key_name = key_name
|
||||
|
||||
def __call__(self, *args, **kwargs):
|
||||
return KeyTransform(self.key_name, *args, **kwargs)
|
@ -1,252 +0,0 @@
|
||||
import datetime
|
||||
import json
|
||||
|
||||
from psycopg2.extras import DateRange, DateTimeTZRange, NumericRange, Range
|
||||
|
||||
from django.contrib.postgres import forms, lookups
|
||||
from django.db import models
|
||||
|
||||
from .utils import AttributeSetter
|
||||
|
||||
__all__ = [
|
||||
'RangeField', 'IntegerRangeField', 'BigIntegerRangeField',
|
||||
'FloatRangeField', 'DateTimeRangeField', 'DateRangeField',
|
||||
]
|
||||
|
||||
|
||||
class RangeField(models.Field):
|
||||
empty_strings_allowed = False
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
# Initializing base_field here ensures that its model matches the model for self.
|
||||
if hasattr(self, 'base_field'):
|
||||
self.base_field = self.base_field()
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
@property
|
||||
def model(self):
|
||||
try:
|
||||
return self.__dict__['model']
|
||||
except KeyError:
|
||||
raise AttributeError("'%s' object has no attribute 'model'" % self.__class__.__name__)
|
||||
|
||||
@model.setter
|
||||
def model(self, model):
|
||||
self.__dict__['model'] = model
|
||||
self.base_field.model = model
|
||||
|
||||
def get_prep_value(self, value):
|
||||
if value is None:
|
||||
return None
|
||||
elif isinstance(value, Range):
|
||||
return value
|
||||
elif isinstance(value, (list, tuple)):
|
||||
return self.range_type(value[0], value[1])
|
||||
return value
|
||||
|
||||
def to_python(self, value):
|
||||
if isinstance(value, str):
|
||||
# Assume we're deserializing
|
||||
vals = json.loads(value)
|
||||
for end in ('lower', 'upper'):
|
||||
if end in vals:
|
||||
vals[end] = self.base_field.to_python(vals[end])
|
||||
value = self.range_type(**vals)
|
||||
elif isinstance(value, (list, tuple)):
|
||||
value = self.range_type(value[0], value[1])
|
||||
return value
|
||||
|
||||
def set_attributes_from_name(self, name):
|
||||
super().set_attributes_from_name(name)
|
||||
self.base_field.set_attributes_from_name(name)
|
||||
|
||||
def value_to_string(self, obj):
|
||||
value = self.value_from_object(obj)
|
||||
if value is None:
|
||||
return None
|
||||
if value.isempty:
|
||||
return json.dumps({"empty": True})
|
||||
base_field = self.base_field
|
||||
result = {"bounds": value._bounds}
|
||||
for end in ('lower', 'upper'):
|
||||
val = getattr(value, end)
|
||||
if val is None:
|
||||
result[end] = None
|
||||
else:
|
||||
obj = AttributeSetter(base_field.attname, val)
|
||||
result[end] = base_field.value_to_string(obj)
|
||||
return json.dumps(result)
|
||||
|
||||
def formfield(self, **kwargs):
|
||||
kwargs.setdefault('form_class', self.form_field)
|
||||
return super().formfield(**kwargs)
|
||||
|
||||
|
||||
class IntegerRangeField(RangeField):
|
||||
base_field = models.IntegerField
|
||||
range_type = NumericRange
|
||||
form_field = forms.IntegerRangeField
|
||||
|
||||
def db_type(self, connection):
|
||||
return 'int4range'
|
||||
|
||||
|
||||
class BigIntegerRangeField(RangeField):
|
||||
base_field = models.BigIntegerField
|
||||
range_type = NumericRange
|
||||
form_field = forms.IntegerRangeField
|
||||
|
||||
def db_type(self, connection):
|
||||
return 'int8range'
|
||||
|
||||
|
||||
class FloatRangeField(RangeField):
|
||||
base_field = models.FloatField
|
||||
range_type = NumericRange
|
||||
form_field = forms.FloatRangeField
|
||||
|
||||
def db_type(self, connection):
|
||||
return 'numrange'
|
||||
|
||||
|
||||
class DateTimeRangeField(RangeField):
|
||||
base_field = models.DateTimeField
|
||||
range_type = DateTimeTZRange
|
||||
form_field = forms.DateTimeRangeField
|
||||
|
||||
def db_type(self, connection):
|
||||
return 'tstzrange'
|
||||
|
||||
|
||||
class DateRangeField(RangeField):
|
||||
base_field = models.DateField
|
||||
range_type = DateRange
|
||||
form_field = forms.DateRangeField
|
||||
|
||||
def db_type(self, connection):
|
||||
return 'daterange'
|
||||
|
||||
|
||||
RangeField.register_lookup(lookups.DataContains)
|
||||
RangeField.register_lookup(lookups.ContainedBy)
|
||||
RangeField.register_lookup(lookups.Overlap)
|
||||
|
||||
|
||||
class DateTimeRangeContains(models.Lookup):
|
||||
"""
|
||||
Lookup for Date/DateTimeRange containment to cast the rhs to the correct
|
||||
type.
|
||||
"""
|
||||
lookup_name = 'contains'
|
||||
|
||||
def process_rhs(self, compiler, connection):
|
||||
# Transform rhs value for db lookup.
|
||||
if isinstance(self.rhs, datetime.date):
|
||||
output_field = models.DateTimeField() if isinstance(self.rhs, datetime.datetime) else models.DateField()
|
||||
value = models.Value(self.rhs, output_field=output_field)
|
||||
self.rhs = value.resolve_expression(compiler.query)
|
||||
return super().process_rhs(compiler, connection)
|
||||
|
||||
def as_sql(self, compiler, connection):
|
||||
lhs, lhs_params = self.process_lhs(compiler, connection)
|
||||
rhs, rhs_params = self.process_rhs(compiler, connection)
|
||||
params = lhs_params + rhs_params
|
||||
# Cast the rhs if needed.
|
||||
cast_sql = ''
|
||||
if isinstance(self.rhs, models.Expression) and self.rhs._output_field_or_none:
|
||||
cast_internal_type = self.lhs.output_field.base_field.get_internal_type()
|
||||
cast_sql = '::{}'.format(connection.data_types.get(cast_internal_type))
|
||||
return '%s @> %s%s' % (lhs, rhs, cast_sql), params
|
||||
|
||||
|
||||
DateRangeField.register_lookup(DateTimeRangeContains)
|
||||
DateTimeRangeField.register_lookup(DateTimeRangeContains)
|
||||
|
||||
|
||||
class RangeContainedBy(models.Lookup):
|
||||
lookup_name = 'contained_by'
|
||||
type_mapping = {
|
||||
'integer': 'int4range',
|
||||
'bigint': 'int8range',
|
||||
'double precision': 'numrange',
|
||||
'date': 'daterange',
|
||||
'timestamp with time zone': 'tstzrange',
|
||||
}
|
||||
|
||||
def as_sql(self, qn, connection):
|
||||
field = self.lhs.output_field
|
||||
if isinstance(field, models.FloatField):
|
||||
sql = '%s::numeric <@ %s::{}'.format(self.type_mapping[field.db_type(connection)])
|
||||
else:
|
||||
sql = '%s <@ %s::{}'.format(self.type_mapping[field.db_type(connection)])
|
||||
lhs, lhs_params = self.process_lhs(qn, connection)
|
||||
rhs, rhs_params = self.process_rhs(qn, connection)
|
||||
params = lhs_params + rhs_params
|
||||
return sql % (lhs, rhs), params
|
||||
|
||||
def get_prep_lookup(self):
|
||||
return RangeField().get_prep_value(self.rhs)
|
||||
|
||||
|
||||
models.DateField.register_lookup(RangeContainedBy)
|
||||
models.DateTimeField.register_lookup(RangeContainedBy)
|
||||
models.IntegerField.register_lookup(RangeContainedBy)
|
||||
models.BigIntegerField.register_lookup(RangeContainedBy)
|
||||
models.FloatField.register_lookup(RangeContainedBy)
|
||||
|
||||
|
||||
@RangeField.register_lookup
|
||||
class FullyLessThan(lookups.PostgresSimpleLookup):
|
||||
lookup_name = 'fully_lt'
|
||||
operator = '<<'
|
||||
|
||||
|
||||
@RangeField.register_lookup
|
||||
class FullGreaterThan(lookups.PostgresSimpleLookup):
|
||||
lookup_name = 'fully_gt'
|
||||
operator = '>>'
|
||||
|
||||
|
||||
@RangeField.register_lookup
|
||||
class NotLessThan(lookups.PostgresSimpleLookup):
|
||||
lookup_name = 'not_lt'
|
||||
operator = '&>'
|
||||
|
||||
|
||||
@RangeField.register_lookup
|
||||
class NotGreaterThan(lookups.PostgresSimpleLookup):
|
||||
lookup_name = 'not_gt'
|
||||
operator = '&<'
|
||||
|
||||
|
||||
@RangeField.register_lookup
|
||||
class AdjacentToLookup(lookups.PostgresSimpleLookup):
|
||||
lookup_name = 'adjacent_to'
|
||||
operator = '-|-'
|
||||
|
||||
|
||||
@RangeField.register_lookup
|
||||
class RangeStartsWith(models.Transform):
|
||||
lookup_name = 'startswith'
|
||||
function = 'lower'
|
||||
|
||||
@property
|
||||
def output_field(self):
|
||||
return self.lhs.output_field.base_field
|
||||
|
||||
|
||||
@RangeField.register_lookup
|
||||
class RangeEndsWith(models.Transform):
|
||||
lookup_name = 'endswith'
|
||||
function = 'upper'
|
||||
|
||||
@property
|
||||
def output_field(self):
|
||||
return self.lhs.output_field.base_field
|
||||
|
||||
|
||||
@RangeField.register_lookup
|
||||
class IsEmpty(models.Transform):
|
||||
lookup_name = 'isempty'
|
||||
function = 'isempty'
|
||||
output_field = models.BooleanField()
|
@ -1,3 +0,0 @@
|
||||
class AttributeSetter:
|
||||
def __init__(self, name, value):
|
||||
setattr(self, name, value)
|
@ -1,4 +0,0 @@
|
||||
from .array import * # NOQA
|
||||
from .hstore import * # NOQA
|
||||
from .jsonb import * # NOQA
|
||||
from .ranges import * # NOQA
|
@ -1,204 +0,0 @@
|
||||
import copy
|
||||
from itertools import chain
|
||||
|
||||
from django import forms
|
||||
from django.contrib.postgres.validators import (
|
||||
ArrayMaxLengthValidator, ArrayMinLengthValidator,
|
||||
)
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from ..utils import prefix_validation_error
|
||||
|
||||
|
||||
class SimpleArrayField(forms.CharField):
|
||||
default_error_messages = {
|
||||
'item_invalid': _('Item %(nth)s in the array did not validate: '),
|
||||
}
|
||||
|
||||
def __init__(self, base_field, *, delimiter=',', max_length=None, min_length=None, **kwargs):
|
||||
self.base_field = base_field
|
||||
self.delimiter = delimiter
|
||||
super().__init__(**kwargs)
|
||||
if min_length is not None:
|
||||
self.min_length = min_length
|
||||
self.validators.append(ArrayMinLengthValidator(int(min_length)))
|
||||
if max_length is not None:
|
||||
self.max_length = max_length
|
||||
self.validators.append(ArrayMaxLengthValidator(int(max_length)))
|
||||
|
||||
def clean(self, value):
|
||||
value = super().clean(value)
|
||||
return [self.base_field.clean(val) for val in value]
|
||||
|
||||
def prepare_value(self, value):
|
||||
if isinstance(value, list):
|
||||
return self.delimiter.join(str(self.base_field.prepare_value(v)) for v in value)
|
||||
return value
|
||||
|
||||
def to_python(self, value):
|
||||
if isinstance(value, list):
|
||||
items = value
|
||||
elif value:
|
||||
items = value.split(self.delimiter)
|
||||
else:
|
||||
items = []
|
||||
errors = []
|
||||
values = []
|
||||
for index, item in enumerate(items):
|
||||
try:
|
||||
values.append(self.base_field.to_python(item))
|
||||
except ValidationError as error:
|
||||
errors.append(prefix_validation_error(
|
||||
error,
|
||||
prefix=self.error_messages['item_invalid'],
|
||||
code='item_invalid',
|
||||
params={'nth': index},
|
||||
))
|
||||
if errors:
|
||||
raise ValidationError(errors)
|
||||
return values
|
||||
|
||||
def validate(self, value):
|
||||
super().validate(value)
|
||||
errors = []
|
||||
for index, item in enumerate(value):
|
||||
try:
|
||||
self.base_field.validate(item)
|
||||
except ValidationError as error:
|
||||
errors.append(prefix_validation_error(
|
||||
error,
|
||||
prefix=self.error_messages['item_invalid'],
|
||||
code='item_invalid',
|
||||
params={'nth': index},
|
||||
))
|
||||
if errors:
|
||||
raise ValidationError(errors)
|
||||
|
||||
def run_validators(self, value):
|
||||
super().run_validators(value)
|
||||
errors = []
|
||||
for index, item in enumerate(value):
|
||||
try:
|
||||
self.base_field.run_validators(item)
|
||||
except ValidationError as error:
|
||||
errors.append(prefix_validation_error(
|
||||
error,
|
||||
prefix=self.error_messages['item_invalid'],
|
||||
code='item_invalid',
|
||||
params={'nth': index},
|
||||
))
|
||||
if errors:
|
||||
raise ValidationError(errors)
|
||||
|
||||
|
||||
class SplitArrayWidget(forms.Widget):
|
||||
template_name = 'postgres/widgets/split_array.html'
|
||||
|
||||
def __init__(self, widget, size, **kwargs):
|
||||
self.widget = widget() if isinstance(widget, type) else widget
|
||||
self.size = size
|
||||
super().__init__(**kwargs)
|
||||
|
||||
@property
|
||||
def is_hidden(self):
|
||||
return self.widget.is_hidden
|
||||
|
||||
def value_from_datadict(self, data, files, name):
|
||||
return [self.widget.value_from_datadict(data, files, '%s_%s' % (name, index))
|
||||
for index in range(self.size)]
|
||||
|
||||
def value_omitted_from_data(self, data, files, name):
|
||||
return all(
|
||||
self.widget.value_omitted_from_data(data, files, '%s_%s' % (name, index))
|
||||
for index in range(self.size)
|
||||
)
|
||||
|
||||
def id_for_label(self, id_):
|
||||
# See the comment for RadioSelect.id_for_label()
|
||||
if id_:
|
||||
id_ += '_0'
|
||||
return id_
|
||||
|
||||
def get_context(self, name, value, attrs=None):
|
||||
attrs = {} if attrs is None else attrs
|
||||
context = super().get_context(name, value, attrs)
|
||||
if self.is_localized:
|
||||
self.widget.is_localized = self.is_localized
|
||||
value = value or []
|
||||
context['widget']['subwidgets'] = []
|
||||
final_attrs = self.build_attrs(attrs)
|
||||
id_ = final_attrs.get('id')
|
||||
for i in range(max(len(value), self.size)):
|
||||
try:
|
||||
widget_value = value[i]
|
||||
except IndexError:
|
||||
widget_value = None
|
||||
if id_:
|
||||
final_attrs = dict(final_attrs, id='%s_%s' % (id_, i))
|
||||
context['widget']['subwidgets'].append(
|
||||
self.widget.get_context(name + '_%s' % i, widget_value, final_attrs)['widget']
|
||||
)
|
||||
return context
|
||||
|
||||
@property
|
||||
def media(self):
|
||||
return self.widget.media
|
||||
|
||||
def __deepcopy__(self, memo):
|
||||
obj = super().__deepcopy__(memo)
|
||||
obj.widget = copy.deepcopy(self.widget)
|
||||
return obj
|
||||
|
||||
@property
|
||||
def needs_multipart_form(self):
|
||||
return self.widget.needs_multipart_form
|
||||
|
||||
|
||||
class SplitArrayField(forms.Field):
|
||||
default_error_messages = {
|
||||
'item_invalid': _('Item %(nth)s in the array did not validate: '),
|
||||
}
|
||||
|
||||
def __init__(self, base_field, size, *, remove_trailing_nulls=False, **kwargs):
|
||||
self.base_field = base_field
|
||||
self.size = size
|
||||
self.remove_trailing_nulls = remove_trailing_nulls
|
||||
widget = SplitArrayWidget(widget=base_field.widget, size=size)
|
||||
kwargs.setdefault('widget', widget)
|
||||
super().__init__(**kwargs)
|
||||
|
||||
def clean(self, value):
|
||||
cleaned_data = []
|
||||
errors = []
|
||||
if not any(value) and self.required:
|
||||
raise ValidationError(self.error_messages['required'])
|
||||
max_size = max(self.size, len(value))
|
||||
for index in range(max_size):
|
||||
item = value[index]
|
||||
try:
|
||||
cleaned_data.append(self.base_field.clean(item))
|
||||
except ValidationError as error:
|
||||
errors.append(prefix_validation_error(
|
||||
error,
|
||||
self.error_messages['item_invalid'],
|
||||
code='item_invalid',
|
||||
params={'nth': index},
|
||||
))
|
||||
cleaned_data.append(None)
|
||||
else:
|
||||
errors.append(None)
|
||||
if self.remove_trailing_nulls:
|
||||
null_index = None
|
||||
for i, value in reversed(list(enumerate(cleaned_data))):
|
||||
if value in self.base_field.empty_values:
|
||||
null_index = i
|
||||
else:
|
||||
break
|
||||
if null_index is not None:
|
||||
cleaned_data = cleaned_data[:null_index]
|
||||
errors = errors[:null_index]
|
||||
errors = list(filter(None, errors))
|
||||
if errors:
|
||||
raise ValidationError(list(chain.from_iterable(errors)))
|
||||
return cleaned_data
|
@ -1,58 +0,0 @@
|
||||
import json
|
||||
|
||||
from django import forms
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
__all__ = ['HStoreField']
|
||||
|
||||
|
||||
class HStoreField(forms.CharField):
|
||||
"""
|
||||
A field for HStore data which accepts dictionary JSON input.
|
||||
"""
|
||||
widget = forms.Textarea
|
||||
default_error_messages = {
|
||||
'invalid_json': _('Could not load JSON data.'),
|
||||
'invalid_format': _('Input must be a JSON dictionary.'),
|
||||
}
|
||||
|
||||
def prepare_value(self, value):
|
||||
if isinstance(value, dict):
|
||||
return json.dumps(value)
|
||||
return value
|
||||
|
||||
def to_python(self, value):
|
||||
if not value:
|
||||
return {}
|
||||
if not isinstance(value, dict):
|
||||
try:
|
||||
value = json.loads(value)
|
||||
except ValueError:
|
||||
raise ValidationError(
|
||||
self.error_messages['invalid_json'],
|
||||
code='invalid_json',
|
||||
)
|
||||
|
||||
if not isinstance(value, dict):
|
||||
raise ValidationError(
|
||||
self.error_messages['invalid_format'],
|
||||
code='invalid_format',
|
||||
)
|
||||
|
||||
# Cast everything to strings for ease.
|
||||
for key, val in value.items():
|
||||
if val is not None:
|
||||
val = str(val)
|
||||
value[key] = val
|
||||
return value
|
||||
|
||||
def has_changed(self, initial, data):
|
||||
"""
|
||||
Return True if data differs from initial.
|
||||
"""
|
||||
# For purposes of seeing whether something has changed, None is
|
||||
# the same as an empty dict, if the data or initial value we get
|
||||
# is None, replace it w/ {}.
|
||||
initial_value = self.to_python(initial)
|
||||
return super().has_changed(initial_value, data)
|
@ -1,54 +0,0 @@
|
||||
import json
|
||||
|
||||
from django import forms
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
__all__ = ['JSONField']
|
||||
|
||||
|
||||
class InvalidJSONInput(str):
|
||||
pass
|
||||
|
||||
|
||||
class JSONString(str):
|
||||
pass
|
||||
|
||||
|
||||
class JSONField(forms.CharField):
|
||||
default_error_messages = {
|
||||
'invalid': _("'%(value)s' value must be valid JSON."),
|
||||
}
|
||||
widget = forms.Textarea
|
||||
|
||||
def to_python(self, value):
|
||||
if self.disabled:
|
||||
return value
|
||||
if value in self.empty_values:
|
||||
return None
|
||||
elif isinstance(value, (list, dict, int, float, JSONString)):
|
||||
return value
|
||||
try:
|
||||
converted = json.loads(value)
|
||||
except ValueError:
|
||||
raise forms.ValidationError(
|
||||
self.error_messages['invalid'],
|
||||
code='invalid',
|
||||
params={'value': value},
|
||||
)
|
||||
if isinstance(converted, str):
|
||||
return JSONString(converted)
|
||||
else:
|
||||
return converted
|
||||
|
||||
def bound_data(self, data, initial):
|
||||
if self.disabled:
|
||||
return initial
|
||||
try:
|
||||
return json.loads(data)
|
||||
except ValueError:
|
||||
return InvalidJSONInput(data)
|
||||
|
||||
def prepare_value(self, value):
|
||||
if isinstance(value, InvalidJSONInput):
|
||||
return value
|
||||
return json.dumps(value)
|
@ -1,95 +0,0 @@
|
||||
from psycopg2.extras import DateRange, DateTimeTZRange, NumericRange
|
||||
|
||||
from django import forms
|
||||
from django.core import exceptions
|
||||
from django.forms.widgets import MultiWidget
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
__all__ = [
|
||||
'BaseRangeField', 'IntegerRangeField', 'FloatRangeField',
|
||||
'DateTimeRangeField', 'DateRangeField', 'RangeWidget',
|
||||
]
|
||||
|
||||
|
||||
class BaseRangeField(forms.MultiValueField):
|
||||
default_error_messages = {
|
||||
'invalid': _('Enter two valid values.'),
|
||||
'bound_ordering': _('The start of the range must not exceed the end of the range.'),
|
||||
}
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
if 'widget' not in kwargs:
|
||||
kwargs['widget'] = RangeWidget(self.base_field.widget)
|
||||
if 'fields' not in kwargs:
|
||||
kwargs['fields'] = [self.base_field(required=False), self.base_field(required=False)]
|
||||
kwargs.setdefault('required', False)
|
||||
kwargs.setdefault('require_all_fields', False)
|
||||
super().__init__(**kwargs)
|
||||
|
||||
def prepare_value(self, value):
|
||||
lower_base, upper_base = self.fields
|
||||
if isinstance(value, self.range_type):
|
||||
return [
|
||||
lower_base.prepare_value(value.lower),
|
||||
upper_base.prepare_value(value.upper),
|
||||
]
|
||||
if value is None:
|
||||
return [
|
||||
lower_base.prepare_value(None),
|
||||
upper_base.prepare_value(None),
|
||||
]
|
||||
return value
|
||||
|
||||
def compress(self, values):
|
||||
if not values:
|
||||
return None
|
||||
lower, upper = values
|
||||
if lower is not None and upper is not None and lower > upper:
|
||||
raise exceptions.ValidationError(
|
||||
self.error_messages['bound_ordering'],
|
||||
code='bound_ordering',
|
||||
)
|
||||
try:
|
||||
range_value = self.range_type(lower, upper)
|
||||
except TypeError:
|
||||
raise exceptions.ValidationError(
|
||||
self.error_messages['invalid'],
|
||||
code='invalid',
|
||||
)
|
||||
else:
|
||||
return range_value
|
||||
|
||||
|
||||
class IntegerRangeField(BaseRangeField):
|
||||
default_error_messages = {'invalid': _('Enter two whole numbers.')}
|
||||
base_field = forms.IntegerField
|
||||
range_type = NumericRange
|
||||
|
||||
|
||||
class FloatRangeField(BaseRangeField):
|
||||
default_error_messages = {'invalid': _('Enter two numbers.')}
|
||||
base_field = forms.FloatField
|
||||
range_type = NumericRange
|
||||
|
||||
|
||||
class DateTimeRangeField(BaseRangeField):
|
||||
default_error_messages = {'invalid': _('Enter two valid date/times.')}
|
||||
base_field = forms.DateTimeField
|
||||
range_type = DateTimeTZRange
|
||||
|
||||
|
||||
class DateRangeField(BaseRangeField):
|
||||
default_error_messages = {'invalid': _('Enter two valid dates.')}
|
||||
base_field = forms.DateField
|
||||
range_type = DateRange
|
||||
|
||||
|
||||
class RangeWidget(MultiWidget):
|
||||
def __init__(self, base_widget, attrs=None):
|
||||
widgets = (base_widget, base_widget)
|
||||
super().__init__(widgets, attrs)
|
||||
|
||||
def decompress(self, value):
|
||||
if value:
|
||||
return (value.lower, value.upper)
|
||||
return (None, None)
|
@ -1,11 +0,0 @@
|
||||
from django.db.models import DateTimeField, Func, UUIDField
|
||||
|
||||
|
||||
class RandomUUID(Func):
|
||||
template = 'GEN_RANDOM_UUID()'
|
||||
output_field = UUIDField()
|
||||
|
||||
|
||||
class TransactionNow(Func):
|
||||
template = 'CURRENT_TIMESTAMP'
|
||||
output_field = DateTimeField()
|
@ -1,91 +0,0 @@
|
||||
from django.db.models import Index
|
||||
|
||||
__all__ = ['BrinIndex', 'GinIndex', 'GistIndex']
|
||||
|
||||
|
||||
class MaxLengthMixin:
|
||||
# Allow an index name longer than 30 characters since the suffix is 4
|
||||
# characters (usual limit is 3). Since this index can only be used on
|
||||
# PostgreSQL, the 30 character limit for cross-database compatibility isn't
|
||||
# applicable.
|
||||
max_name_length = 31
|
||||
|
||||
|
||||
class BrinIndex(MaxLengthMixin, Index):
|
||||
suffix = 'brin'
|
||||
|
||||
def __init__(self, *, pages_per_range=None, **kwargs):
|
||||
if pages_per_range is not None and pages_per_range <= 0:
|
||||
raise ValueError('pages_per_range must be None or a positive integer')
|
||||
self.pages_per_range = pages_per_range
|
||||
super().__init__(**kwargs)
|
||||
|
||||
def deconstruct(self):
|
||||
path, args, kwargs = super().deconstruct()
|
||||
if self.pages_per_range is not None:
|
||||
kwargs['pages_per_range'] = self.pages_per_range
|
||||
return path, args, kwargs
|
||||
|
||||
def create_sql(self, model, schema_editor, using=''):
|
||||
statement = super().create_sql(model, schema_editor, using=' USING brin')
|
||||
if self.pages_per_range is not None:
|
||||
statement.parts['extra'] = ' WITH (pages_per_range={})'.format(
|
||||
schema_editor.quote_value(self.pages_per_range)
|
||||
) + statement.parts['extra']
|
||||
return statement
|
||||
|
||||
|
||||
class GinIndex(Index):
|
||||
suffix = 'gin'
|
||||
|
||||
def __init__(self, *, fastupdate=None, gin_pending_list_limit=None, **kwargs):
|
||||
self.fastupdate = fastupdate
|
||||
self.gin_pending_list_limit = gin_pending_list_limit
|
||||
super().__init__(**kwargs)
|
||||
|
||||
def deconstruct(self):
|
||||
path, args, kwargs = super().deconstruct()
|
||||
if self.fastupdate is not None:
|
||||
kwargs['fastupdate'] = self.fastupdate
|
||||
if self.gin_pending_list_limit is not None:
|
||||
kwargs['gin_pending_list_limit'] = self.gin_pending_list_limit
|
||||
return path, args, kwargs
|
||||
|
||||
def create_sql(self, model, schema_editor, using=''):
|
||||
statement = super().create_sql(model, schema_editor, using=' USING gin')
|
||||
with_params = []
|
||||
if self.gin_pending_list_limit is not None:
|
||||
with_params.append('gin_pending_list_limit = %d' % self.gin_pending_list_limit)
|
||||
if self.fastupdate is not None:
|
||||
with_params.append('fastupdate = {}'.format('on' if self.fastupdate else 'off'))
|
||||
if with_params:
|
||||
statement.parts['extra'] = 'WITH ({}) {}'.format(', '.join(with_params), statement.parts['extra'])
|
||||
return statement
|
||||
|
||||
|
||||
class GistIndex(MaxLengthMixin, Index):
|
||||
suffix = 'gist'
|
||||
|
||||
def __init__(self, *, buffering=None, fillfactor=None, **kwargs):
|
||||
self.buffering = buffering
|
||||
self.fillfactor = fillfactor
|
||||
super().__init__(**kwargs)
|
||||
|
||||
def deconstruct(self):
|
||||
path, args, kwargs = super().deconstruct()
|
||||
if self.buffering is not None:
|
||||
kwargs['buffering'] = self.buffering
|
||||
if self.fillfactor is not None:
|
||||
kwargs['fillfactor'] = self.fillfactor
|
||||
return path, args, kwargs
|
||||
|
||||
def create_sql(self, model, schema_editor):
|
||||
statement = super().create_sql(model, schema_editor, using=' USING gist')
|
||||
with_params = []
|
||||
if self.buffering is not None:
|
||||
with_params.append('buffering = {}'.format('on' if self.buffering else 'off'))
|
||||
if self.fillfactor is not None:
|
||||
with_params.append('fillfactor = %s' % self.fillfactor)
|
||||
if with_params:
|
||||
statement.parts['extra'] = 'WITH ({}) {}'.format(', '.join(with_params), statement.parts['extra'])
|
||||
return statement
|
@ -1 +0,0 @@
|
||||
{% include 'django/forms/widgets/multiwidget.html' %}
|
Binary file not shown.
@ -1,140 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Bashar Al-Abdulhadi, 2015-2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2017-09-21 22:44+0000\n"
|
||||
"Last-Translator: Jannis Leidel <jannis@leidel.info>\n"
|
||||
"Language-Team: Arabic (http://www.transifex.com/django/django/language/ar/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ar\n"
|
||||
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
|
||||
"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
|
||||
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr "ملحقات PostgreSQL"
|
||||
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr "العنصر %(nth)s في المجموعة لم يتم التحقق منه: "
|
||||
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr "يجب أن تكون المجموعات المتداخلة بنفس الطول."
|
||||
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr ""
|
||||
|
||||
msgid "A JSON object"
|
||||
msgstr "كائن JSON"
|
||||
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "يجب أن تكون قيمة JSON صالحة."
|
||||
|
||||
msgid "Could not load JSON data."
|
||||
msgstr "لا يمكن عرض بيانات JSON."
|
||||
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr "المُدخل يجب أن يكون بصيغة بصيغة قاموس JSON."
|
||||
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr "القيمة '%(value)s' يجب أن تكون قيمة JSON صالحة."
|
||||
|
||||
msgid "Enter two valid values."
|
||||
msgstr "إدخال قيمتين صالحتين."
|
||||
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr "بداية المدى يجب ألا تتجاوز نهاية المدى."
|
||||
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr "أدخل رقمين كاملين."
|
||||
|
||||
msgid "Enter two numbers."
|
||||
msgstr "أدخل رقمين."
|
||||
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr "أدخل تاريخين/وقتين صحيحين."
|
||||
|
||||
msgid "Enter two valid dates."
|
||||
msgstr "أدخل تاريخين صحيحين."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"القائمة تحتوي على %(show_value)d عنصر, يجب أن لا تحتوي على أكثر من "
|
||||
"%(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"القائمة تحتوي على %(show_value)d عنصر, يجب أن لا تحتوي على أكثر من "
|
||||
"%(limit_value)d."
|
||||
msgstr[2] ""
|
||||
"القائمة تحتوي على %(show_value)d عنصرين, يجب أن لا تحتوي على أكثر من "
|
||||
"%(limit_value)d."
|
||||
msgstr[3] ""
|
||||
"القائمة تحتوي على %(show_value)d عناصر, يجب أن لا تحتوي على أكثر من "
|
||||
"%(limit_value)d."
|
||||
msgstr[4] ""
|
||||
"القائمة تحتوي على %(show_value)d عنصر, يجب أن لا تحتوي على أكثر من "
|
||||
"%(limit_value)d."
|
||||
msgstr[5] ""
|
||||
"القائمة تحتوي على %(show_value)d عنصر, يجب أن لا تحتوي على أكثر من "
|
||||
"%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"القائمة تحتوي على %(show_value)d عنصر, يجب أن لا تحتوي على أقل من "
|
||||
"%(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"القائمة تحتوي على %(show_value)d عنصر, يجب أن لا تحتوي على أقل من "
|
||||
"%(limit_value)d."
|
||||
msgstr[2] ""
|
||||
"القائمة تحتوي على %(show_value)d عنصرين, يجب أن لا تحتوي على أقل من "
|
||||
"%(limit_value)d."
|
||||
msgstr[3] ""
|
||||
"القائمة تحتوي على %(show_value)d عناصر, يجب أن لا تحتوي على أقل من "
|
||||
"%(limit_value)d."
|
||||
msgstr[4] ""
|
||||
"القائمة تحتوي على %(show_value)d عنصر, يجب أن لا تحتوي على أقل من "
|
||||
"%(limit_value)d."
|
||||
msgstr[5] ""
|
||||
"القائمة تحتوي على %(show_value)d عنصر, يجب أن لا تحتوي على أقل من "
|
||||
"%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr "بعض المفاتيح مفقودة: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr "بعض المفاتيح المزوّدة غير معرّفه: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr "تأكد من أن هذا المدى أقل من أو يساوي %(limit_value)s."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr "تأكد من أن هذا المدى أكثر من أو يساوي %(limit_value)s."
|
Binary file not shown.
@ -1,132 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Viktar Palstsiuk <vipals@gmail.com>, 2015
|
||||
# znotdead <zhirafchik@gmail.com>, 2016-2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2017-09-21 22:44+0000\n"
|
||||
"Last-Translator: znotdead <zhirafchik@gmail.com>\n"
|
||||
"Language-Team: Belarusian (http://www.transifex.com/django/django/language/"
|
||||
"be/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: be\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||
"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n"
|
||||
"%100>=11 && n%100<=14)? 2 : 3);\n"
|
||||
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr "Пашырэнні PostgreSQL"
|
||||
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr "Элемент масіву нумар %(nth)s не прайшоў праверкі:"
|
||||
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr "Укладзенныя масівы павінны мець аднолькавую даўжыню."
|
||||
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr "Адпаведнасць радкоў у радкі/нулі"
|
||||
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr "Значэнне \"%(key)s\" не з'яўляецца радком ці нулём."
|
||||
|
||||
msgid "A JSON object"
|
||||
msgstr "JSON аб’ект"
|
||||
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Значэнне павінна быць сапраўдным JSON."
|
||||
|
||||
msgid "Could not load JSON data."
|
||||
msgstr "Не атрымалася загрузіць дадзеныя JSON."
|
||||
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr "Значэнне павінна быць JSON слоўнікам. "
|
||||
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr "'%(value)s' значэнне павінна быць сапраўдным JSON."
|
||||
|
||||
msgid "Enter two valid values."
|
||||
msgstr "Увядзіце два сапраўдных значэнні."
|
||||
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr "Пачатак дыяпазону не павінен перавышаць канец дыяпазону."
|
||||
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr "Увядзіце два цэлых лікі."
|
||||
|
||||
msgid "Enter two numbers."
|
||||
msgstr "Увядзіце два лікі."
|
||||
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr "Увядзіце дзве/два сапраўдных даты/часу."
|
||||
|
||||
msgid "Enter two valid dates."
|
||||
msgstr "Увядзіце дзве сапраўдных даты."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"Спіс мае %(show_value)d элемент, ён павінен мець не болей чым "
|
||||
"%(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"Спіс мае %(show_value)d элемента, ён павінен мець не болей чым "
|
||||
"%(limit_value)d."
|
||||
msgstr[2] ""
|
||||
"Спіс мае %(show_value)d элементаў, ён павінен мець не болей чым "
|
||||
"%(limit_value)d."
|
||||
msgstr[3] ""
|
||||
"Спіс мае %(show_value)d элементаў, ён павінен мець не болей чым "
|
||||
"%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"Спіс мае %(show_value)d элемент, ён павінен мець не менш чым %(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"Спіс мае %(show_value)d элемента, ён павінен мець не менш чым "
|
||||
"%(limit_value)d."
|
||||
msgstr[2] ""
|
||||
"Спіс мае %(show_value)d элементаў, ён павінен мець не менш чым "
|
||||
"%(limit_value)d."
|
||||
msgstr[3] ""
|
||||
"Спіс мае %(show_value)d элементаў, ён павінен мець не менш чым "
|
||||
"%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr "Не хапае нейкіх ключоў: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr "Дадзены нейкія невядомыя ключы: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr ""
|
||||
"Упэўніцеся, что ўсе элементы гэтага інтэрвалу менш ці раўны %(limit_value)s."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr ""
|
||||
"Упэўніцеся, что ўсе элементы гэтага інтэрвалу больш ці раўны %(limit_value)s."
|
Binary file not shown.
@ -1,119 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Todor Lubenov <tgl.sysdev@gmail.com>, 2015
|
||||
# Venelin Stoykov <vkstoykov@gmail.com>, 2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2017-09-21 22:44+0000\n"
|
||||
"Last-Translator: Jannis Leidel <jannis@leidel.info>\n"
|
||||
"Language-Team: Bulgarian (http://www.transifex.com/django/django/language/"
|
||||
"bg/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: bg\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr "PostgreSQL разширения"
|
||||
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr "Стойност %(nth)s в масива не валидират:"
|
||||
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr "Вложените масиви, трябва да имат същата дължина."
|
||||
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr ""
|
||||
|
||||
msgid "A JSON object"
|
||||
msgstr "JSON обект"
|
||||
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Стойността трябва да е валиден JSON"
|
||||
|
||||
msgid "Could not load JSON data."
|
||||
msgstr "Не можа да зареди JSON данни ."
|
||||
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr "'%(value)s' стойност трябва да е JSON."
|
||||
|
||||
msgid "Enter two valid values."
|
||||
msgstr "Въведете две валидни стойности."
|
||||
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr "Началото на обхвата не трябва да превишава края му."
|
||||
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr "Въведете две цели числа"
|
||||
|
||||
msgid "Enter two numbers."
|
||||
msgstr "Въведете две числа."
|
||||
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr "Въведете две валидни дати/времена."
|
||||
|
||||
msgid "Enter two valid dates."
|
||||
msgstr "Въведете две коректни дати."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"Списъкът съдържа %(show_value)d елемент, а трябва да има не повече от "
|
||||
"%(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"Списъкът съдържа %(show_value)d елемента, а трябва да има не повече от "
|
||||
"%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"Списъкът съдържа %(show_value)d елемент, а трябва да има поне "
|
||||
"%(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"Списъкът съдържа %(show_value)d елемента, а трябва да има поне "
|
||||
"%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr "Някои ключове липсват: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr "Бяха предоставени някои неизвестни ключове: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr ""
|
||||
"Уверете се, че този обхват е изцяло по-малък от или равен на %(limit_value)s."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr ""
|
||||
"Уверете се че интервала е изцяло по-голям от или равен на %(limit_value)s."
|
Binary file not shown.
@ -1,120 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Antoni Aloy <aaloy@apsl.net>, 2015,2017
|
||||
# duub qnnp, 2015
|
||||
# Roger Pons <rogerpons@gmail.com>, 2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2017-09-21 22:44+0000\n"
|
||||
"Last-Translator: Antoni Aloy <aaloy@apsl.net>\n"
|
||||
"Language-Team: Catalan (http://www.transifex.com/django/django/language/"
|
||||
"ca/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ca\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr "Extensions de PostgreSQL"
|
||||
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr "L'element %(nth)s de la matriu no valida:"
|
||||
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr "Les matrius niades han de tenir la mateixa longitud."
|
||||
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr "Mapa de cadenes a cadenes/nuls"
|
||||
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr "El valor de \"%(key)s no és ni una cadena ni un nul."
|
||||
|
||||
msgid "A JSON object"
|
||||
msgstr "Un objecte JSON"
|
||||
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "El valor ha de ser JSON vàlid."
|
||||
|
||||
msgid "Could not load JSON data."
|
||||
msgstr "No es poden carregar les dades JSON"
|
||||
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr "L'entrada ha de ser un diccionari JSON"
|
||||
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr "El valor '%(value)s' ha de ser JSON vàlid."
|
||||
|
||||
msgid "Enter two valid values."
|
||||
msgstr "Introdueixi dos valors vàlids."
|
||||
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr "L'inici del rang no pot excedir el seu final."
|
||||
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr "Introduïu dos números enters positius."
|
||||
|
||||
msgid "Enter two numbers."
|
||||
msgstr "Introduïu dos números."
|
||||
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr "Introduïu dues data/hora vàlides."
|
||||
|
||||
msgid "Enter two valid dates."
|
||||
msgstr "Introduïu dos dates vàlides."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"La llista conté %(show_value)d element, no n'hauria de tenir més de "
|
||||
"%(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"La llista conté %(show_value)d elements, no n'hauria de tenir més de "
|
||||
"%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"La llista conté %(show_value)d element, no n'hauria de contenir menys de "
|
||||
"%(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"La llista conté %(show_value)d elements, no n'hauria de contenir menys de "
|
||||
"%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr "Algunes claus no hi són: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr "S'han facilitat claus desconegudes: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr ""
|
||||
"Asseguri's que aquest rang és completament menor o igual a %(limit_value)s."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr ""
|
||||
"Asseguri's que aquest rang és completament major o igual a %(limit_value)s."
|
Binary file not shown.
@ -1,122 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Tomáš Ehrlich <tomas.ehrlich@gmail.com>, 2015
|
||||
# Vláďa Macek <macek@sandbox.cz>, 2015-2018
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2018-02-14 11:44+0000\n"
|
||||
"Last-Translator: Vláďa Macek <macek@sandbox.cz>\n"
|
||||
"Language-Team: Czech (http://www.transifex.com/django/django/language/cs/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: cs\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr "Rozšíření pro PostgreSQL"
|
||||
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr "Položka s indexem %(nth)s v seznamu je neplatná: "
|
||||
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr "Vnořená pole musejí mít stejnou délku."
|
||||
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr "Mapování řetězců na řetězce či hodnoty NULL"
|
||||
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr "Hodnota s klíčem \"%(key)s\" není řetězec ani NULL."
|
||||
|
||||
msgid "A JSON object"
|
||||
msgstr "Objekt typu JSON"
|
||||
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Musí být v platném formátu JSON."
|
||||
|
||||
msgid "Could not load JSON data."
|
||||
msgstr "Data typu JSON nelze načíst."
|
||||
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr "Vstup musí být slovník formátu JSON."
|
||||
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr "Hodnota '%(value)s' musí být v platném formátu JSON."
|
||||
|
||||
msgid "Enter two valid values."
|
||||
msgstr "Zadejte dvě platné hodnoty."
|
||||
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr "Počáteční hodnota rozsahu nemůže být vyšší než koncová hodnota."
|
||||
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr "Zadejte dvě celá čísla."
|
||||
|
||||
msgid "Enter two numbers."
|
||||
msgstr "Zadejte dvě čísla."
|
||||
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr "Zadejte dvě platné hodnoty data nebo času."
|
||||
|
||||
msgid "Enter two valid dates."
|
||||
msgstr "Zadejte dvě platná data."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"Seznam obsahuje %(show_value)d položku, ale neměl by obsahovat více než "
|
||||
"%(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"Seznam obsahuje %(show_value)d položky, ale neměl by obsahovat více než "
|
||||
"%(limit_value)d."
|
||||
msgstr[2] ""
|
||||
"Seznam obsahuje %(show_value)d položek, ale neměl by obsahovat více než "
|
||||
"%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"Seznam obsahuje %(show_value)d položku, ale neměl by obsahovat méně než "
|
||||
"%(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"Seznam obsahuje %(show_value)d položky, ale neměl by obsahovat méně než "
|
||||
"%(limit_value)d."
|
||||
msgstr[2] ""
|
||||
"Seznam obsahuje %(show_value)d položek, ale neměl by obsahovat méně než "
|
||||
"%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr "Některé klíče chybí: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr "Byly zadány neznámé klíče: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr "Nejvyšší hodnota rozsahu musí být menší nebo rovna %(limit_value)s."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr "Nejnižší hodnota rozsahu musí být větší nebo rovna %(limit_value)s."
|
Binary file not shown.
@ -1,120 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Erik Wognsen <r4mses@gmail.com>, 2015-2017
|
||||
# valberg <valberg@orn.li>, 2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2017-09-24 16:43+0000\n"
|
||||
"Last-Translator: Erik Wognsen <r4mses@gmail.com>\n"
|
||||
"Language-Team: Danish (http://www.transifex.com/django/django/language/da/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: da\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr "PostgreSQL udvidelser"
|
||||
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr "Element %(nth)s i array'et blev ikke valideret."
|
||||
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr "Indlejrede arrays skal have den samme længde."
|
||||
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr "Afbildning fra strenge til strenge/nulls"
|
||||
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr "Værdien af \"%(key)s\" er ikke en streng eller null."
|
||||
|
||||
msgid "A JSON object"
|
||||
msgstr "Et JSON-objekt."
|
||||
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Værdien skal være gyldig JSON."
|
||||
|
||||
msgid "Could not load JSON data."
|
||||
msgstr "Kunne ikke indlæse JSON-data."
|
||||
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr "Input skal være et JSON-dictionary."
|
||||
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr "'%(value)s'-værdien skal være gyldig JSON."
|
||||
|
||||
msgid "Enter two valid values."
|
||||
msgstr "Indtast to gyldige værdier."
|
||||
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr "Starten af intervallet kan ikke overstige slutningen af intervallet."
|
||||
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr "Indtast to heltal."
|
||||
|
||||
msgid "Enter two numbers."
|
||||
msgstr "Indtast to tal."
|
||||
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr "Indtast to gyldige dato/tider."
|
||||
|
||||
msgid "Enter two valid dates."
|
||||
msgstr "Indtast to gyldige datoer."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"Listen indeholder %(show_value)d element, en bør ikke indeholde mere end "
|
||||
"%(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"Listen indeholder %(show_value)d elementer, den bør ikke indeholde mere end "
|
||||
"%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"Listen indeholder %(show_value)d element, den bør ikke indeholde mindre end "
|
||||
"%(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"Listen indeholder %(show_value)d elementer, den bør ikke indeholde mindre "
|
||||
"end %(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr "Nøgler mangler: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr "Ukendte nøgler angivet: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr ""
|
||||
"Sørg for at dette interval er fuldstændigt mindre end eller lig med "
|
||||
"%(limit_value)s."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr ""
|
||||
"Sørg for at dette interval er fuldstændigt større end eller lig med "
|
||||
"%(limit_value)s."
|
Binary file not shown.
@ -1,117 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Jannis Leidel <jannis@leidel.info>, 2015-2017
|
||||
# Jens Neuhaus <kontakt@jensneuhaus.de>, 2016
|
||||
# Markus Holtermann <inyoka@markusholtermann.eu>, 2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2017-09-23 20:42+0000\n"
|
||||
"Last-Translator: Markus Holtermann <inyoka@markusholtermann.eu>\n"
|
||||
"Language-Team: German (http://www.transifex.com/django/django/language/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: de\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr "PostgreSQL-Erweiterungen"
|
||||
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr "Element %(nth)s des Arrays ist ungültig:"
|
||||
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr "Verschachtelte Arrays müssen die gleiche Länge haben."
|
||||
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr "Zuordnung von Zeichenketten zu Zeichenketten/NULLs"
|
||||
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr "Der Wert für „%(key)s“ ist keine Zeichenkette oder NULL."
|
||||
|
||||
msgid "A JSON object"
|
||||
msgstr "Ein JSON-Objekt"
|
||||
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Wert muss gültiges JSON sein."
|
||||
|
||||
msgid "Could not load JSON data."
|
||||
msgstr "Konnte JSON-Daten nicht laden."
|
||||
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr "Eingabe muss ein JSON-Dictionary sein."
|
||||
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr "„%(value)s“ Wert muss gültiges JSON sein."
|
||||
|
||||
msgid "Enter two valid values."
|
||||
msgstr "Bitte zwei gültige Werte eingeben."
|
||||
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr "Der Anfang des Wertbereichs darf nicht das Ende überschreiten."
|
||||
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr "Bitte zwei ganze Zahlen eingeben."
|
||||
|
||||
msgid "Enter two numbers."
|
||||
msgstr "Bitte zwei Zahlen eingeben."
|
||||
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr "Bitte zwei gültige Datum/Uhrzeit-Werte eingeben."
|
||||
|
||||
msgid "Enter two valid dates."
|
||||
msgstr "Bitte zwei gültige Kalenderdaten eingeben."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"Liste enthält %(show_value)d Element, es sollte aber nicht mehr als "
|
||||
"%(limit_value)d enthalten."
|
||||
msgstr[1] ""
|
||||
"Liste enthält %(show_value)d Elemente, es sollte aber nicht mehr als "
|
||||
"%(limit_value)d enthalten."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"Liste enthält %(show_value)d Element, es sollte aber nicht weniger als "
|
||||
"%(limit_value)d enthalten."
|
||||
msgstr[1] ""
|
||||
"Liste enthält %(show_value)d Elemente, es sollte aber nicht weniger als "
|
||||
"%(limit_value)d enthalten."
|
||||
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr "Einige Werte fehlen: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr "Einige unbekannte Werte wurden eingegeben: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr "Der Wertebereich muss kleiner oder gleich zu %(limit_value)s sein."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr "Der Wertebereich muss größer oder gleich zu %(limit_value)s sein."
|
Binary file not shown.
@ -1,131 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Michael Wolf <milupo@sorbzilla.de>, 2016-2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2017-09-23 00:02+0000\n"
|
||||
"Last-Translator: Michael Wolf <milupo@sorbzilla.de>\n"
|
||||
"Language-Team: Lower Sorbian (http://www.transifex.com/django/django/"
|
||||
"language/dsb/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: dsb\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
|
||||
"%100==4 ? 2 : 3);\n"
|
||||
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr "Rozšyrjenja PostgreSQL"
|
||||
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr "Element %(nth)s w pólnej wariabli njejo se wobkšuśił:"
|
||||
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr "Zakašćikowane pólne wariable muse tu samsku dłujkosć měś."
|
||||
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr "Konwertěrowanje znamuškowych rjeśazkow do znamuškowych rjeśazkow/nulow"
|
||||
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr "Gódnota \" %(key)s\" njejo znamuškowy rjeśazk abo null."
|
||||
|
||||
msgid "A JSON object"
|
||||
msgstr "JSON-objekt"
|
||||
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Gódnota musy płaśiwy JSON byś."
|
||||
|
||||
msgid "Could not load JSON data."
|
||||
msgstr "JSON-daty njejsu se zacytowaś dali."
|
||||
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr "Zapódaśe musy JSON-słownik byś."
|
||||
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr "Gódnota '%(value)s' musy płaśiwy JSON byś."
|
||||
|
||||
msgid "Enter two valid values."
|
||||
msgstr "Zapódajśo dwě płaśiwej gódnośe."
|
||||
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr "Zachopjeńk wobcerka njesmějo kóńc wobcerka pśekšocyś."
|
||||
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr "Zapódajśo dwě cełej licbje."
|
||||
|
||||
msgid "Enter two numbers."
|
||||
msgstr "Zapódajśo dwě licbje."
|
||||
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr "Zapódajśo dwě płaśiwej datowej/casowej pódaśi."
|
||||
|
||||
msgid "Enter two valid dates."
|
||||
msgstr "Zapódajśo dwě płaśiwej datowej pódaśi."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"Lisćina wopśimujo %(show_value)d element, wóna njeby dejała wěcej ako "
|
||||
"%(limit_value)d wopśimowaś."
|
||||
msgstr[1] ""
|
||||
"Lisćina wopśimujo %(show_value)d elementa, wóna njeby dejała wěcej ako "
|
||||
"%(limit_value)d wopśimowaś."
|
||||
msgstr[2] ""
|
||||
"Lisćina wopśimujo %(show_value)d elementy, wóna njeby dejała wěcej ako "
|
||||
"%(limit_value)d wopśimowaś."
|
||||
msgstr[3] ""
|
||||
"Lisćina wopśimujo %(show_value)d elementow, wóna njeby dejała wěcej ako "
|
||||
"%(limit_value)d wopśimowaś."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"Lisćina wopśimujo %(show_value)d element, wóna njeby dejała mjenjej ako "
|
||||
"%(limit_value)d wopśimowaś."
|
||||
msgstr[1] ""
|
||||
"Lisćina wopśimujo %(show_value)d elementa, wóna njeby dejała mjenjej ako "
|
||||
"%(limit_value)d wopśimowaś."
|
||||
msgstr[2] ""
|
||||
"Lisćina wopśimujo %(show_value)d elementy, wóna njeby dejała mjenjej ako "
|
||||
"%(limit_value)d wopśimowaś."
|
||||
msgstr[3] ""
|
||||
"Lisćina wopśimujo %(show_value)d elementow, wóna njeby dejała mjenjej ako "
|
||||
"%(limit_value)d wopśimowaś."
|
||||
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr "Někotare kluce feluju: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr "Někotare njeznate kluce su se pódali: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr ""
|
||||
"Zawěsććo, až toś ten wobcerk jo mjeńšy ako %(limit_value)s abo se rowna."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr ""
|
||||
"Zawěsććo, až toś ten wobcerk jo wětšy ako %(limit_value)s abo se rowna."
|
Binary file not shown.
@ -1,120 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Giannis Meletakis <meletakis@gmail.com>, 2015
|
||||
# Nick Mavrakis <mavrakis.n@gmail.com>, 2017
|
||||
# Nick Mavrakis <mavrakis.n@gmail.com>, 2016
|
||||
# Pãnoș <panos.laganakos@gmail.com>, 2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2017-09-23 20:42+0000\n"
|
||||
"Last-Translator: Nick Mavrakis <mavrakis.n@gmail.com>\n"
|
||||
"Language-Team: Greek (http://www.transifex.com/django/django/language/el/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: el\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr "Επεκτάσεις της PostgreSQL"
|
||||
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr "To στοιχείο %(nth)s στον πίνακα δεν είναι έγκυρο:"
|
||||
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr "Οι ένθετοι πίνακες πρέπει να έχουν το ίδιο μήκος."
|
||||
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr "Αντιστοίχιση strings σε strings/nulls"
|
||||
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr "Η τιμή του \"%(key)s\" δεν είναι string ή null."
|
||||
|
||||
msgid "A JSON object"
|
||||
msgstr "Ένα αντικείμενο JSON"
|
||||
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Η τιμή πρέπει να είναι έγκυρο JSON."
|
||||
|
||||
msgid "Could not load JSON data."
|
||||
msgstr "Αδύνατη η φόρτωση των δεδομένων JSON."
|
||||
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr "Το input πρέπει να είναι ένα έγκυρο JSON dictionary."
|
||||
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr "Η τιμή '%(value)s' πρέπει να είναι έγκυρο JSON."
|
||||
|
||||
msgid "Enter two valid values."
|
||||
msgstr "Εισάγετε δύο έγκυρες τιμές."
|
||||
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr "Η αρχή του range δεν πρέπει να ξεπερνά το τέλος του range."
|
||||
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr "Εισάγετε δυο ολόκληρους αριθμούς."
|
||||
|
||||
msgid "Enter two numbers."
|
||||
msgstr "Εισάγετε δυο αριθμούς."
|
||||
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr "Εισάγετε δύο έγκυρες ημερομηνίες/ώρες."
|
||||
|
||||
msgid "Enter two valid dates."
|
||||
msgstr "Εισάγετε δυο έγκυρες ημερομηνίες."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"Η λίστα περιέχει %(show_value)d στοιχείο και δεν πρέπει να περιέχει πάνω από "
|
||||
"%(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"Η λίστα περιέχει %(show_value)d στοιχεία και δεν πρέπει να περιέχει λιγότερα "
|
||||
"από %(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"Η λίστα περιέχει %(show_value)d στοιχεία και δεν πρέπει να περιέχει λιγότερα "
|
||||
"από %(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr "Έλειπαν μερικά κλειδιά: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr "Δόθηκαν μέρικά άγνωστα κλειδιά: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr ""
|
||||
"Βεβαιωθείτε ότι το range είναι αυστηρά μικρότερο ή ίσο από %(limit_value)s."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr ""
|
||||
"Βεβαιωθείτε ότι το range είναι αυστηρά μεγαλύτερο ή ίσο από %(limit_value)s."
|
Binary file not shown.
@ -1,128 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2015-01-18 20:56+0100\n"
|
||||
"Last-Translator: Django team\n"
|
||||
"Language-Team: English <en@li.org>\n"
|
||||
"Language: en\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: contrib/postgres/apps.py:12
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/postgres/fields/array.py:19 contrib/postgres/forms/array.py:15
|
||||
#: contrib/postgres/forms/array.py:145
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr ""
|
||||
|
||||
#: contrib/postgres/fields/array.py:20
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/postgres/fields/hstore.py:16
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/postgres/fields/hstore.py:17
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/postgres/fields/jsonb.py:15
|
||||
msgid "A JSON object"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/postgres/fields/jsonb.py:17
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/postgres/forms/hstore.py:15
|
||||
msgid "Could not load JSON data."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/postgres/forms/hstore.py:18
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/postgres/forms/jsonb.py:16
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/postgres/forms/ranges.py:13
|
||||
msgid "Enter two valid values."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/postgres/forms/ranges.py:14
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/postgres/forms/ranges.py:59
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/postgres/forms/ranges.py:65
|
||||
msgid "Enter two numbers."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/postgres/forms/ranges.py:71
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/postgres/forms/ranges.py:77
|
||||
msgid "Enter two valid dates."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/postgres/validators.py:14
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: contrib/postgres/validators.py:21
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: contrib/postgres/validators.py:31
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/postgres/validators.py:32
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/postgres/validators.py:73
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/postgres/validators.py:78
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr ""
|
Binary file not shown.
@ -1,119 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Baptiste Darthenay <baptiste+transifex@darthenay.fr>, 2015-2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2017-09-21 22:44+0000\n"
|
||||
"Last-Translator: Baptiste Darthenay <baptiste+transifex@darthenay.fr>\n"
|
||||
"Language-Team: Esperanto (http://www.transifex.com/django/django/language/"
|
||||
"eo/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: eo\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr "PostgreSQL kromaĵoj"
|
||||
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr "Ero %(nth)s en la tabelo ne validiĝis:"
|
||||
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr "Ingitaj tabeloj devas havi la saman grandon."
|
||||
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr "Kongruo de signoĉenoj al signoĉenoj/nulvaloroj"
|
||||
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr "La valoro de \"%(key)s\" ne estas signoĉeno nek nulvaloro."
|
||||
|
||||
msgid "A JSON object"
|
||||
msgstr "JSON objekto"
|
||||
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Valoro devas esti valida JSON."
|
||||
|
||||
msgid "Could not load JSON data."
|
||||
msgstr "Malsukcesis ŝarĝi la JSON datumojn."
|
||||
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr "La enigo devas esti JSON vortaro."
|
||||
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr "'%(value)s' devas esti valida JSON."
|
||||
|
||||
msgid "Enter two valid values."
|
||||
msgstr "Enigu du validajn valorojn."
|
||||
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr "La komenco de la intervalo ne devas superi la finon de la intervalo."
|
||||
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr "Enigu du entjeroj."
|
||||
|
||||
msgid "Enter two numbers."
|
||||
msgstr "Enigu du nombroj."
|
||||
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr "Enigu du validajn dato/horojn."
|
||||
|
||||
msgid "Enter two valid dates."
|
||||
msgstr "Enigu du validajn datojn."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"La listo enhavas %(show_value)d eron, kaj ne devas enhavi pli ol "
|
||||
"%(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"La listo enhavas %(show_value)d erojn, kaj ne devas enhavi pli ol "
|
||||
"%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"La listo enhavas %(show_value)d erojn, kaj devas enhavi pli ol "
|
||||
"%(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"La listo enhavas %(show_value)d erojn, kaj devas enhavi pli ol "
|
||||
"%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr "Kelkaj ŝlosiloj mankas: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr "Kelkaj nekonataj ŝlosiloj estis provizitaj: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr ""
|
||||
"Bv kontroli, ke la tuta intervalo estas malpli alta aŭ egala al "
|
||||
"%(limit_value)s."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr ""
|
||||
"Bv kontroli, ke la tuta intervalo estas pli alta aŭ egala al %(limit_value)s."
|
Binary file not shown.
@ -1,122 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Antoni Aloy <aaloy@apsl.net>, 2015,2017
|
||||
# Ernesto Avilés Vázquez <whippiii@gmail.com>, 2015
|
||||
# Igor Támara <igor@tamarapatino.org>, 2015
|
||||
# Pablo, 2015
|
||||
# Veronicabh <vero.blazher@gmail.com>, 2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2017-09-23 20:42+0000\n"
|
||||
"Last-Translator: Antoni Aloy <aaloy@apsl.net>\n"
|
||||
"Language-Team: Spanish (http://www.transifex.com/django/django/language/"
|
||||
"es/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr "Extensiones de PostgreSQL"
|
||||
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr "El elemento %(nth)s del arreglo no se pudo validar:"
|
||||
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr "Los arreglos anidados deben tener la misma longitud."
|
||||
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr "Mapa de cadenas a cadenas/nulos"
|
||||
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr "El valor de \"%(key)s\" no es ni una cadena ni un nulo"
|
||||
|
||||
msgid "A JSON object"
|
||||
msgstr "Un objeto JSON"
|
||||
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "El valor debe ser un JSON válido."
|
||||
|
||||
msgid "Could not load JSON data."
|
||||
msgstr "No se pududieron cargar los datos JSON."
|
||||
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr "La entrada debe ser un diccionario JSON"
|
||||
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr "El valor \"%(value)s\" debe ser un JSON válido."
|
||||
|
||||
msgid "Enter two valid values."
|
||||
msgstr "Introduzca dos valores válidos."
|
||||
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr "El comienzo del rango no puede exceder su final."
|
||||
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr "Ingrese dos números enteros."
|
||||
|
||||
msgid "Enter two numbers."
|
||||
msgstr "Ingrese dos números."
|
||||
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr "Ingrese dos fechas/horas válidas."
|
||||
|
||||
msgid "Enter two valid dates."
|
||||
msgstr "Ingrese dos fechas válidas."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"La lista contiene %(show_value)d elemento, no debería contener más de "
|
||||
"%(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"La lista contiene %(show_value)d elementos, no debería contener más de "
|
||||
"%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"La lista contiene %(show_value)d elemento, no debería contener menos de "
|
||||
"%(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"La lista contiene %(show_value)d elementos, no debería contener menos de "
|
||||
"%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr "Faltan algunas claves: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr "Se facilitaron algunas claves desconocidas: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr "Asegúrese de que este rango es menor o igual que %(limit_value)s."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr ""
|
||||
"Asegúrese de que este rango es efectivamente mayor o igual que "
|
||||
"%(limit_value)s."
|
BIN
thesisenv/lib/python3.6/site-packages/django/contrib/postgres/locale/es_AR/LC_MESSAGES/django.mo
BIN
thesisenv/lib/python3.6/site-packages/django/contrib/postgres/locale/es_AR/LC_MESSAGES/django.mo
Binary file not shown.
118
thesisenv/lib/python3.6/site-packages/django/contrib/postgres/locale/es_AR/LC_MESSAGES/django.po
118
thesisenv/lib/python3.6/site-packages/django/contrib/postgres/locale/es_AR/LC_MESSAGES/django.po
@ -1,118 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Ramiro Morales, 2015-2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2017-09-23 20:42+0000\n"
|
||||
"Last-Translator: Ramiro Morales\n"
|
||||
"Language-Team: Spanish (Argentina) (http://www.transifex.com/django/django/"
|
||||
"language/es_AR/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: es_AR\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr "Extensiones PostgreSQL"
|
||||
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr "La validación del ítem %(nth)s del arreglo falló:"
|
||||
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr "Los arreglos anidados deben ser de la misma longitud."
|
||||
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr "Mapa de cadenas a cadenas/nulos"
|
||||
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr "El valor de \"%(key)s\" no es una cadena o nulo."
|
||||
|
||||
msgid "A JSON object"
|
||||
msgstr "Un objeto JSON"
|
||||
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "El valor debe ser JSON valido."
|
||||
|
||||
msgid "Could not load JSON data."
|
||||
msgstr "No se han podido cargar los datos JSON."
|
||||
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr "debe ser un diccionario JSON."
|
||||
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr "El valor de '%(value)s' debe ser JSON valido."
|
||||
|
||||
msgid "Enter two valid values."
|
||||
msgstr "Introduzca dos valores válidos."
|
||||
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr "El inicio del rango no debe ser mayor que el fin del rango."
|
||||
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr "Introduzca don números enteros."
|
||||
|
||||
msgid "Enter two numbers."
|
||||
msgstr "Introduzca dos números."
|
||||
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr "Introduzca dos fechas/horas válidas."
|
||||
|
||||
msgid "Enter two valid dates."
|
||||
msgstr "Introduzca dos fechas válidas."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"La lista contiene %(show_value)d item, debe contener no mas de "
|
||||
"%(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"La lista contiene %(show_value)d items, debe contener no mas de "
|
||||
"%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"La lista contiene %(show_value)d item, debe contener no mas de "
|
||||
"%(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"La lista contiene %(show_value)d items, debe contener no menos de "
|
||||
"%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr "No se encontraron algunas llaves: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr "Algunas de las llaves provistas son desconocidas: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr ""
|
||||
"Asegúrese de que este rango es completamente menor o igual a %(limit_value)s."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr ""
|
||||
"Asegúrese de que este rango es completamente mayor o igual a %(limit_value)s."
|
BIN
thesisenv/lib/python3.6/site-packages/django/contrib/postgres/locale/es_CO/LC_MESSAGES/django.mo
BIN
thesisenv/lib/python3.6/site-packages/django/contrib/postgres/locale/es_CO/LC_MESSAGES/django.mo
Binary file not shown.
122
thesisenv/lib/python3.6/site-packages/django/contrib/postgres/locale/es_CO/LC_MESSAGES/django.po
122
thesisenv/lib/python3.6/site-packages/django/contrib/postgres/locale/es_CO/LC_MESSAGES/django.po
@ -1,122 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Antoni Aloy <aaloy@apsl.net>, 2015
|
||||
# Ernesto Avilés Vázquez <whippiii@gmail.com>, 2015
|
||||
# Igor Támara <igor@tamarapatino.org>, 2015
|
||||
# Pablo, 2015
|
||||
# Veronicabh <vero.blazher@gmail.com>, 2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2017-09-21 22:44+0000\n"
|
||||
"Last-Translator: Jannis Leidel <jannis@leidel.info>\n"
|
||||
"Language-Team: Spanish (Colombia) (http://www.transifex.com/django/django/"
|
||||
"language/es_CO/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: es_CO\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr "Extensiones de PostgreSQL"
|
||||
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr "El elemento %(nth)s del arreglo no se pudo validar:"
|
||||
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr "Los arreglos anidados deben tener la misma longitud."
|
||||
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr ""
|
||||
|
||||
msgid "A JSON object"
|
||||
msgstr "Un objeto JSON"
|
||||
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "El valor debe ser un JSON válido."
|
||||
|
||||
msgid "Could not load JSON data."
|
||||
msgstr "No se pududieron cargar los datos JSON."
|
||||
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr "El valor \"%(value)s\" debe ser un JSON válido."
|
||||
|
||||
msgid "Enter two valid values."
|
||||
msgstr "Ingrese dos valores válidos."
|
||||
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr "El comienzo del rango no puede exceder su final."
|
||||
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr "Ingrese dos números enteros."
|
||||
|
||||
msgid "Enter two numbers."
|
||||
msgstr "Ingrese dos números."
|
||||
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr "Ingrese dos fechas/horas válidas."
|
||||
|
||||
msgid "Enter two valid dates."
|
||||
msgstr "Ingrese dos fechas válidas."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"La lista contiene %(show_value)d elemento, no debería contener más de "
|
||||
"%(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"La lista contiene %(show_value)d elementos, no debería contener más de "
|
||||
"%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"La lista contiene %(show_value)d elemento, no debería contener menos de "
|
||||
"%(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"La lista contiene %(show_value)d elementos, no debería contener menos de "
|
||||
"%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr "Faltan algunas claves: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr "Se facilitaron algunas claves desconocidas: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr "Asegúrese de que este rango es menor o igual que %(limit_value)s."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr ""
|
||||
"Asegúrese de que este rango es efectivamente mayor o igual que "
|
||||
"%(limit_value)s."
|
BIN
thesisenv/lib/python3.6/site-packages/django/contrib/postgres/locale/es_MX/LC_MESSAGES/django.mo
BIN
thesisenv/lib/python3.6/site-packages/django/contrib/postgres/locale/es_MX/LC_MESSAGES/django.mo
Binary file not shown.
108
thesisenv/lib/python3.6/site-packages/django/contrib/postgres/locale/es_MX/LC_MESSAGES/django.po
108
thesisenv/lib/python3.6/site-packages/django/contrib/postgres/locale/es_MX/LC_MESSAGES/django.po
@ -1,108 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Alex Dzul <alexexc2@gmail.com>, 2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2017-09-21 22:44+0000\n"
|
||||
"Last-Translator: Jannis Leidel <jannis@leidel.info>\n"
|
||||
"Language-Team: Spanish (Mexico) (http://www.transifex.com/django/django/"
|
||||
"language/es_MX/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: es_MX\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr "Extensiones PostgreSQL"
|
||||
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr ""
|
||||
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr ""
|
||||
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr ""
|
||||
|
||||
msgid "A JSON object"
|
||||
msgstr "Un objeto JSON"
|
||||
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "El valor debe ser JSON válido"
|
||||
|
||||
msgid "Could not load JSON data."
|
||||
msgstr ""
|
||||
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter two valid values."
|
||||
msgstr "Ingrese dos valores válidos"
|
||||
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter two numbers."
|
||||
msgstr "Ingrese dos números"
|
||||
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter two valid dates."
|
||||
msgstr "Ingrese dos fechas válidas"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr ""
|
Binary file not shown.
@ -1,120 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Martin Pajuste <martinpajuste@gmail.com>, 2015
|
||||
# Martin Pajuste <martinpajuste@gmail.com>, 2017
|
||||
# Marti Raudsepp <marti@juffo.org>, 2015-2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2017-09-23 20:42+0000\n"
|
||||
"Last-Translator: Martin Pajuste <martinpajuste@gmail.com>\n"
|
||||
"Language-Team: Estonian (http://www.transifex.com/django/django/language/"
|
||||
"et/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: et\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr "PostgreSQL laiendused"
|
||||
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr "Selement %(nth)s massiivis pole korrektne:"
|
||||
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr "Mitmemõõtmelised massiivid peavad olema sama pikad."
|
||||
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr "Võtme \"%(key)s\" väärtus ei ole string ega tühi."
|
||||
|
||||
msgid "A JSON object"
|
||||
msgstr "JSON objekt"
|
||||
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Väärtus peab olema korrektne JSON."
|
||||
|
||||
msgid "Could not load JSON data."
|
||||
msgstr "Ei saanud laadida JSON andmeid."
|
||||
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr "Sisend peab olema JSON sõnastik."
|
||||
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr "'%(value)s' väärtus peab olema korrektne JSON."
|
||||
|
||||
msgid "Enter two valid values."
|
||||
msgstr "Sisesta kaks korrektset väärtust."
|
||||
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr "Vahemiku algus ei või olla suurem kui vahemiku lõpp."
|
||||
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr "Sisesta kaks täisarvu."
|
||||
|
||||
msgid "Enter two numbers."
|
||||
msgstr "Sisesta kaks arvu."
|
||||
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr "Sisesta kaks korrektset kuupäeva ja kellaaega."
|
||||
|
||||
msgid "Enter two valid dates."
|
||||
msgstr "Sisesta kaks korrektset kuupäeva."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"Nimekiri sisaldab %(show_value)d elementi, ei tohiks olla rohkem kui "
|
||||
"%(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"Nimekiri sisaldab %(show_value)d elementi, ei tohiks olla rohkem kui "
|
||||
"%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"Nimekiri sisaldab %(show_value)d elementi, ei tohiks olla vähem kui "
|
||||
"%(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"Nimekiri sisaldab %(show_value)d elementi, ei tohiks olla vähem kui "
|
||||
"%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr "Puuduvad võtmeväärtused: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr "Tundmatud võtmeväärtused: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr ""
|
||||
"Veendu, et see vahemik on täielikult väiksem või võrdne kui %(limit_value)s."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr ""
|
||||
"Veendu, et see vahemik on täielikult suurem või võrdne kui %(limit_value)s."
|
Binary file not shown.
@ -1,118 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Eneko Illarramendi <eneko@illarra.com>, 2017
|
||||
# Urtzi Odriozola <urtzi.odriozola@gmail.com>, 2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2017-09-25 08:36+0000\n"
|
||||
"Last-Translator: Urtzi Odriozola <urtzi.odriozola@gmail.com>\n"
|
||||
"Language-Team: Basque (http://www.transifex.com/django/django/language/eu/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: eu\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr "PostgreSQL hedapenak"
|
||||
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr "Array-ko %(nth)s elementua ez da balekoa:"
|
||||
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr "Array habiaratuek luzera bera izan behar dute."
|
||||
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr "String-etik string/null-era mapa"
|
||||
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr "\"%(key)s\"-ren balioa ez da string bat, edo null."
|
||||
|
||||
msgid "A JSON object"
|
||||
msgstr "JSON objetu bat"
|
||||
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Balioa ez da baleko JSON bat."
|
||||
|
||||
msgid "Could not load JSON data."
|
||||
msgstr "Ezin izan dira JSON datuak kargatu."
|
||||
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr "Sarrera JSON hiztegi bat izan behar da."
|
||||
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr "'%(value)s' balioa ez da baleko JSON bat."
|
||||
|
||||
msgid "Enter two valid values."
|
||||
msgstr "Idatzi bi baleko balio."
|
||||
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr "Tartearen hasierak ezin du amaierako tartearen balioa gainditu."
|
||||
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr "Idatzi bi zenbaki oso."
|
||||
|
||||
msgid "Enter two numbers."
|
||||
msgstr "Idatzi bi zenbaki."
|
||||
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr "Idatzi bi baleko data/ordu."
|
||||
|
||||
msgid "Enter two valid dates."
|
||||
msgstr "Idatzi bi baleko data."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"Zerrendak elementu %(show_value)d du, ez lituzke %(limit_value)dbaino "
|
||||
"gehiago izan behar."
|
||||
msgstr[1] ""
|
||||
"Zerrendak %(show_value)d elementu ditu, ez lituzke %(limit_value)d baino "
|
||||
"gehiago izan behar."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"Zerrendak elementu %(show_value)d du, ez lituzke %(limit_value)d baino "
|
||||
"gutxiago izan behar."
|
||||
msgstr[1] ""
|
||||
"Zerrendak %(show_value)d elementu ditu, ez lituzke %(limit_value)d baino "
|
||||
"gutxiago izan behar."
|
||||
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr "Gako batzuk falta dira: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr "Gako ezezagun batzuk eman dira: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr ""
|
||||
"Ziurtatu guztiz tarte hau %(limit_value)s baino txikiagoa edo berdina dela."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr ""
|
||||
"Ziurtatu guztiz tarte hau %(limit_value)s baino handiagoa edo berdina dela."
|
Binary file not shown.
@ -1,111 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Ali Nikneshan <ali@nikneshan.com>, 2015
|
||||
# Mohammad Hossein Mojtahedi <Mhm5000@gmail.com>, 2016
|
||||
# Pouya Abbassi, 2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2017-09-23 20:42+0000\n"
|
||||
"Last-Translator: Jannis Leidel <jannis@leidel.info>\n"
|
||||
"Language-Team: Persian (http://www.transifex.com/django/django/language/"
|
||||
"fa/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: fa\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr "ملحقات Postgres"
|
||||
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr "مورد %(nth)s ام در آرایه معتبر نیست: "
|
||||
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr "آرایه های تو در تو باید هم سایز باشند"
|
||||
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr ""
|
||||
|
||||
msgid "A JSON object"
|
||||
msgstr "یک شیء JSON"
|
||||
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "مقدار باید JSON معتبر باشد."
|
||||
|
||||
msgid "Could not load JSON data."
|
||||
msgstr "امکان بارگزاری داده های JSON نیست."
|
||||
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr "مقدار ورودی باید یک دیکشنری JSON باشد."
|
||||
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr "مقدار %(value)s باید JSON معتبر باشد."
|
||||
|
||||
msgid "Enter two valid values."
|
||||
msgstr "دو مقدار معتبر وارد کنید"
|
||||
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr "مقدار شروع بازه باید از پایان کوچکتر باشد"
|
||||
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr "دو عدد کامل وارد کنید"
|
||||
|
||||
msgid "Enter two numbers."
|
||||
msgstr "دو عدد وارد کنید"
|
||||
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr "دو تاریخ/ساعت معتبر وارد کنید"
|
||||
|
||||
msgid "Enter two valid dates."
|
||||
msgstr "دو تاریخ معتبر وارد کنید"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"لیست شامل %(show_value)d مورد است. ولی باید حداکثر شامل %(limit_value)d مورد "
|
||||
"باشد."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"لیست شامل %(show_value)d است، نباید کمتر از %(limit_value)d را شامل شود."
|
||||
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr "برخی کلیدها یافت نشدند: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr "برخی کلیدهای ارائه شده ناشناختهاند: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr "اطمیمنان حاصل کنید که این رنج، کوچکتر یا برابر با %(limit_value)s است."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr "اطمینان حاصل کنید که رنج، بزرگتر یا برابر با %(limit_value)s است."
|
Binary file not shown.
@ -1,120 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Aarni Koskela, 2015,2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2017-09-21 22:44+0000\n"
|
||||
"Last-Translator: Aarni Koskela\n"
|
||||
"Language-Team: Finnish (http://www.transifex.com/django/django/language/"
|
||||
"fi/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: fi\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr "PostgreSQL-laajennukset"
|
||||
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr "Taulukon %(nth)s alkio ei ole kelvollinen:"
|
||||
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr "Sisäkkäisillä taulukoilla tulee olla sama pituus."
|
||||
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr "Kartta merkkijonoista merkkijonoihin tai tyhjiin (null)"
|
||||
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr "Avaimen \"%(key)s\" arvo ei ole merkkijono tai tyhjä (null)."
|
||||
|
||||
msgid "A JSON object"
|
||||
msgstr "JSON-tietue"
|
||||
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Arvon pitää olla kelvollista JSONia."
|
||||
|
||||
msgid "Could not load JSON data."
|
||||
msgstr "JSON-dataa ei voitu ladata."
|
||||
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr "Syötteen tulee olla JSON-sanakirja."
|
||||
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr "%(value)s-arvo tulee olla kelvollista JSONia."
|
||||
|
||||
msgid "Enter two valid values."
|
||||
msgstr "Anna kaksi oikeaa arvoa."
|
||||
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr "Alueen alku pitää olla pienempi kuin alueen loppu."
|
||||
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr "Anna kaksi kokonaislukua."
|
||||
|
||||
msgid "Enter two numbers."
|
||||
msgstr "Anna kaksi lukua."
|
||||
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr "Anna kaksi oikeaa päivämäärää/kellonaikaa."
|
||||
|
||||
msgid "Enter two valid dates."
|
||||
msgstr "Anna kaksi oikeaa päivämäärää."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"Listassa on %(show_value)d arvo, mutta siinä ei saa olla enempää kuin "
|
||||
"%(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"Listassa on %(show_value)d arvoa, mutta siinä ei saa olla enempää kuin "
|
||||
"%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"Listassa on %(show_value)d arvo, mutta siinä ei saa olla vähempää kuin "
|
||||
"%(limit_value)d arvoa."
|
||||
msgstr[1] ""
|
||||
"Listassa on %(show_value)d arvoa, mutta siinä ei saa olla vähempää kuin "
|
||||
"%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr "Joitain avaimia puuttuu: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr "Tuntemattomia avaimia annettiin: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr ""
|
||||
"Tämän alueen tulee olla kokonaisuudessaan yhtäsuuri tai pienempi kuin "
|
||||
"%(limit_value)s."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr ""
|
||||
"Tämän alueen tulee olla kokonaisuudessaan yhtäsuuri tai suurempi kuin "
|
||||
"%(limit_value)s."
|
Binary file not shown.
@ -1,119 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Claude Paroz <claude@2xlibre.net>, 2015-2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2017-09-21 22:44+0000\n"
|
||||
"Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
|
||||
"Language-Team: French (http://www.transifex.com/django/django/language/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr "Extensions PostgreSQL"
|
||||
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr "L'élément n°%(nth)s du tableau n'est pas valide :"
|
||||
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr "Les tableaux imbriqués doivent être de même longueur."
|
||||
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr "Correspondances clé/valeur (chaînes ou valeurs nulles)"
|
||||
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr "La valeur de « %(key)s » n'est pas une chaîne, ni une valeur nulle."
|
||||
|
||||
msgid "A JSON object"
|
||||
msgstr "Un objet JSON"
|
||||
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "La valeur doit être de la syntaxe JSON valable."
|
||||
|
||||
msgid "Could not load JSON data."
|
||||
msgstr "Impossible de charger les données JSON."
|
||||
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr "Le contenu saisi doit être un dictionnaire JSON."
|
||||
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr "La valeur « %(value)s » doit être de la syntaxe JSON valable."
|
||||
|
||||
msgid "Enter two valid values."
|
||||
msgstr "Saisissez deux valeurs valides."
|
||||
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr "Le début de l'intervalle ne peut pas dépasser la fin de l'intervalle."
|
||||
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr "Saisissez deux nombres entiers."
|
||||
|
||||
msgid "Enter two numbers."
|
||||
msgstr "Saisissez deux nombres."
|
||||
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr "Saisissez deux dates/heures valides."
|
||||
|
||||
msgid "Enter two valid dates."
|
||||
msgstr "Saisissez deux dates valides."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"La liste contient %(show_value)d élément, mais elle ne devrait pas en "
|
||||
"contenir plus de %(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"La liste contient %(show_value)d éléments, mais elle ne devrait pas en "
|
||||
"contenir plus de %(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"La liste contient %(show_value)d élément, mais elle doit en contenir au "
|
||||
"moins %(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"La liste contient %(show_value)d éléments, mais elle doit en contenir au "
|
||||
"moins %(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr "Certaines clés sont manquantes : %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr "Certaines clés inconnues ont été fournies : %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr ""
|
||||
"Assurez-vous que cet intervalle est entièrement inférieur ou égal à "
|
||||
"%(limit_value)s."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr ""
|
||||
"Assurez-vous que cet intervalle est entièrement supérieur ou égal à "
|
||||
"%(limit_value)s."
|
Binary file not shown.
@ -1,134 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# GunChleoc, 2016-2017
|
||||
# GunChleoc, 2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2017-09-22 17:29+0000\n"
|
||||
"Last-Translator: GunChleoc\n"
|
||||
"Language-Team: Gaelic, Scottish (http://www.transifex.com/django/django/"
|
||||
"language/gd/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: gd\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : "
|
||||
"(n > 2 && n < 20) ? 2 : 3;\n"
|
||||
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr "Leudachain PostgreSQL"
|
||||
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr "Cha deach le dearbhadh an nì %(nth)s san arraigh: "
|
||||
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr "Feumaidh an aon fhaid a bhith aig a h-uile arraigh neadaichte."
|
||||
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr "Mapaichean de shreangan gu sreangan/luachan null"
|
||||
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr "Chan eil an luach air “%(key)s” ’na shreang no null."
|
||||
|
||||
msgid "A JSON object"
|
||||
msgstr "Oibjeact JSON"
|
||||
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Feumaidh an luach a bhith ’na JSON dligheach."
|
||||
|
||||
msgid "Could not load JSON data."
|
||||
msgstr "Cha deach leinn dàta JSON a luchdadh."
|
||||
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr "Feumaidh an t-ion-chur a bhith 'na fhaclair JSON."
|
||||
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr "Feumaidh “%(value)s” a bhith ’na JSON dligheach."
|
||||
|
||||
msgid "Enter two valid values."
|
||||
msgstr "Cuir a-steach dà luach dligheach."
|
||||
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr "Chan fhaod toiseach na rainse a bith nas motha na deireadh na rainse."
|
||||
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr "Cuir a-steach dà àireamh shlàn."
|
||||
|
||||
msgid "Enter two numbers."
|
||||
msgstr "Cuir a-steach dà àireamh."
|
||||
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr "Cuir a-steach dà cheann-là ’s àm dligheach."
|
||||
|
||||
msgid "Enter two valid dates."
|
||||
msgstr "Cuir a-steach dà cheann-là dligheach."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"Tha %(show_value)d nì air an liosta ach cha bu chòir corr is %(limit_value)d "
|
||||
"a bhith oirre."
|
||||
msgstr[1] ""
|
||||
"Tha %(show_value)d nì air an liosta ach cha bu chòir corr is %(limit_value)d "
|
||||
"a bhith oirre."
|
||||
msgstr[2] ""
|
||||
"Tha %(show_value)d nithean air an liosta ach cha bu chòir corr is "
|
||||
"%(limit_value)d a bhith oirre."
|
||||
msgstr[3] ""
|
||||
"Tha %(show_value)d nì air an liosta ach cha bu chòir corr is %(limit_value)d "
|
||||
"a bhith oirre."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"Tha %(show_value)d nì air an liosta ach cha bu chòir nas lugha na "
|
||||
"%(limit_value)d a bhith oirre."
|
||||
msgstr[1] ""
|
||||
"Tha %(show_value)d nì air an liosta ach cha bu chòir nas lugha na "
|
||||
"%(limit_value)d a bhith oirre."
|
||||
msgstr[2] ""
|
||||
"Tha %(show_value)d nithean air an liosta ach cha bu chòir nas lugha na "
|
||||
"%(limit_value)d a bhith oirre."
|
||||
msgstr[3] ""
|
||||
"Tha %(show_value)d nì air an liosta ach cha bu chòir nas lugha na "
|
||||
"%(limit_value)d a bhith oirre."
|
||||
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr "Bha cuid a dh’iuchraichean a dhìth: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr "Chaidh iuchraichean nach aithne dhuinn a shònrachadh: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr ""
|
||||
"Dèan cinnteach gu bheil an rainse seo nas lugha na no co-ionnan ri "
|
||||
"%(limit_value)s air fad."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr ""
|
||||
"Dèan cinnteach gu bheil an rainse seo nas motha na no co-ionnan ri "
|
||||
"%(limit_value)s air fad."
|
Binary file not shown.
@ -1,108 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# fasouto <fsoutomoure@gmail.com>, 2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2017-09-21 22:44+0000\n"
|
||||
"Last-Translator: fasouto <fsoutomoure@gmail.com>\n"
|
||||
"Language-Team: Galician (http://www.transifex.com/django/django/language/"
|
||||
"gl/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: gl\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr ""
|
||||
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr ""
|
||||
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr ""
|
||||
|
||||
msgid "A JSON object"
|
||||
msgstr "Un obxecto JSON"
|
||||
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "O valor debe ser JSON válido."
|
||||
|
||||
msgid "Could not load JSON data."
|
||||
msgstr ""
|
||||
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter two valid values."
|
||||
msgstr ""
|
||||
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter two numbers."
|
||||
msgstr "Insira dous números."
|
||||
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter two valid dates."
|
||||
msgstr "Insira dúas datas válidas."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr ""
|
Binary file not shown.
@ -1,111 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Meir Kriheli <mkriheli@gmail.com>, 2015,2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2017-09-21 22:44+0000\n"
|
||||
"Last-Translator: Meir Kriheli <mkriheli@gmail.com>\n"
|
||||
"Language-Team: Hebrew (http://www.transifex.com/django/django/language/he/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: he\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr "הרחבות PostgreSQL"
|
||||
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr "פריט %(nth)s במערך לא עבר בדיקת חוקיות: "
|
||||
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr "מערכים מקוננים חייבים להיות באותו האורך."
|
||||
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr "מיפוי מחרוזות אל מחרוזות/nulls."
|
||||
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr "הערך של \"%(key)s\" אינו מחרוזת או null."
|
||||
|
||||
msgid "A JSON object"
|
||||
msgstr "אובייקט JSON"
|
||||
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "ערך חייב להיות JSON חוקי."
|
||||
|
||||
msgid "Could not load JSON data."
|
||||
msgstr "לא ניתן לטעון מידע JSON."
|
||||
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr "הקלט חייב להיות מילון JSON."
|
||||
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr "עאך '%(value)s' חייב להיות JSON חוקי."
|
||||
|
||||
msgid "Enter two valid values."
|
||||
msgstr "נא להזין שני ערכים חוקיים."
|
||||
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr "התחלת טווח אינה יכולה גדולה יותר מסופו."
|
||||
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr "נא להזין שני מספרים שלמים."
|
||||
|
||||
msgid "Enter two numbers."
|
||||
msgstr "נא להזין שני מספרים."
|
||||
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr "נא להזין שני תאריך/שעה חוקיים."
|
||||
|
||||
msgid "Enter two valid dates."
|
||||
msgstr "נא להזין שני תאריכים חוקיים."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"הרשימה מכילה פריט %(show_value)d, עליה להכיל לא יותר מ-%(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"הרשימה מכילה %(show_value)d פריטים, עליה להכיל לא יותר מ-%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"הרשימה מכילה פריט %(show_value)d, עליה להכיל לא פחות מ-%(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"הרשימה מכילה %(show_value)d פריטים, עליה להכיל לא פחות מ-%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr "חלק מהמפתחות חסרים: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr "סופקו מספר מפתחות לא ידועים: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr "יש לוודא שטווח זה קטן מ או שווה ל-%(limit_value)s בשלמותו."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr "יש לוודא שטווח זה גדול מ או שווה ל-%(limit_value)s בשלמותו."
|
Binary file not shown.
@ -1,112 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Filip Cuk <filipcuk2@gmail.com>, 2016
|
||||
# Mislav Cimperšak <mislav.cimpersak@gmail.com>, 2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2017-09-21 22:44+0000\n"
|
||||
"Last-Translator: Jannis Leidel <jannis@leidel.info>\n"
|
||||
"Language-Team: Croatian (http://www.transifex.com/django/django/language/"
|
||||
"hr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: hr\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr ""
|
||||
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr ""
|
||||
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr ""
|
||||
|
||||
msgid "A JSON object"
|
||||
msgstr "JSON objekt"
|
||||
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Vrijednost mora biti ispravan JSON"
|
||||
|
||||
msgid "Could not load JSON data."
|
||||
msgstr "JSON podatci neuspješno učitani."
|
||||
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr "'%(value)s' vrijednost mora biti ispravan JSON."
|
||||
|
||||
msgid "Enter two valid values."
|
||||
msgstr "Unesite 2 ispravne vrijednosti."
|
||||
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr "Unesite dva cijela broja."
|
||||
|
||||
msgid "Enter two numbers."
|
||||
msgstr "Unesite dva broja."
|
||||
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr "Unesite dva ispravna datuma/vremena."
|
||||
|
||||
msgid "Enter two valid dates."
|
||||
msgstr "Unesite dva ispravna datuma."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr ""
|
Binary file not shown.
@ -1,129 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Michael Wolf <milupo@sorbzilla.de>, 2016-2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2017-09-23 00:02+0000\n"
|
||||
"Last-Translator: Michael Wolf <milupo@sorbzilla.de>\n"
|
||||
"Language-Team: Upper Sorbian (http://www.transifex.com/django/django/"
|
||||
"language/hsb/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: hsb\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
|
||||
"%100==4 ? 2 : 3);\n"
|
||||
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr "Rozšěrjenja PostgreSQL"
|
||||
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr "Element %(nth)s w pólnej wariabli njeje so wobkrućił:"
|
||||
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr "Zakašćikowane pólne wariable maja samsnu dołhosć."
|
||||
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr "Konwertowanje znamješkowych rjećazkow do znamješkowych rjećazkow/nulow"
|
||||
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr "Hódnota \" %(key)s\" znamješkowy rjećazk abo null njeje."
|
||||
|
||||
msgid "A JSON object"
|
||||
msgstr "JSON-objekt"
|
||||
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Hódnota dyrbi płaćiwy JSON być."
|
||||
|
||||
msgid "Could not load JSON data."
|
||||
msgstr "JSON-daty njedachu so začitać."
|
||||
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr "Zapodaće dyrbi JSON-słownik być."
|
||||
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr "Hódnota '%(value)s' dyrbi płaćiwy JSON być."
|
||||
|
||||
msgid "Enter two valid values."
|
||||
msgstr "Zapodajće dwě płaćiwej hódnoće."
|
||||
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr "Spočatk wobłuka njesmě kónc wobłuka překročić."
|
||||
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr "Zapodajće dwě cyłej ličbje."
|
||||
|
||||
msgid "Enter two numbers."
|
||||
msgstr "Zapodajće dwě ličbje."
|
||||
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr "Zapódajće dwě płaćiwej datowej/časowej podaći."
|
||||
|
||||
msgid "Enter two valid dates."
|
||||
msgstr "Zapodajće dwě płaćiwej datowej podaći."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"Lisćina %(show_value)d element wobsahuje, wona njeměła wjace hač "
|
||||
"%(limit_value)d wobsahować."
|
||||
msgstr[1] ""
|
||||
"Lisćina %(show_value)d elementaj wobsahuje, wona njeměła wjace hač "
|
||||
"%(limit_value)d wobsahować."
|
||||
msgstr[2] ""
|
||||
"Lisćina %(show_value)d elementy wobsahuje, wona njeměła wjace hač "
|
||||
"%(limit_value)d wobsahować."
|
||||
msgstr[3] ""
|
||||
"Lisćina %(show_value)d elementow wobsahuje, wona njeměła wjace hač "
|
||||
"%(limit_value)d wobsahować."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"Lisćina %(show_value)d element wobsahuje, wona njeměła mjenje hač "
|
||||
"%(limit_value)d wobsahować."
|
||||
msgstr[1] ""
|
||||
"Lisćina %(show_value)d elementaj wobsahuje, wona njeměła mjenje hač "
|
||||
"%(limit_value)d wobsahować."
|
||||
msgstr[2] ""
|
||||
"Lisćina %(show_value)d elementy wobsahuje, wona njeměła mjenje hač "
|
||||
"%(limit_value)d wobsahować."
|
||||
msgstr[3] ""
|
||||
"Lisćina %(show_value)d elementow wobsahuje, wona njeměła mjenje hač "
|
||||
"%(limit_value)d wobsahować."
|
||||
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr "Někotre kluče faluje: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr "Někotre njeznate kluče su so podali: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr "Zawěsćće. zo tutón wobłuk je mjeńši hač abo runja %(limit_value)s."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr "Zawěsćće, zo tutón wobłuk je wjetši hač abo runja %(limit_value)s."
|
Binary file not shown.
@ -1,117 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# András Veres-Szentkirályi, 2016
|
||||
# Dóra Szendrei <szendrgigi@gmail.com>, 2017
|
||||
# János R (Hangya), 2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2017-09-23 20:42+0000\n"
|
||||
"Last-Translator: Dóra Szendrei <szendrgigi@gmail.com>\n"
|
||||
"Language-Team: Hungarian (http://www.transifex.com/django/django/language/"
|
||||
"hu/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: hu\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr "PostgreSQL kiterjesztések"
|
||||
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr "A tömb %(nth)s. értéke érvénytelen:"
|
||||
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr "A belső tömböknek egyforma hosszúaknak kell lenniük."
|
||||
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr "String-string/null leképezés"
|
||||
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr "\"%(key)s\" értéke nem karakterlánc vagy null."
|
||||
|
||||
msgid "A JSON object"
|
||||
msgstr "Egy JSON objektum"
|
||||
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Az érték érvényes JSON kell legyen."
|
||||
|
||||
msgid "Could not load JSON data."
|
||||
msgstr "JSON adat betöltése sikertelen."
|
||||
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr "A bemenetnek JSON szótárnak kell lennie."
|
||||
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr "'%(value)s' értéknek érvényes JSON-nek kell lennie."
|
||||
|
||||
msgid "Enter two valid values."
|
||||
msgstr "Adjon meg két érvényes értéket."
|
||||
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr "A tartomány eleje nem lehet nagyobb a tartomány végénél."
|
||||
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr "Adjon meg két egész számot."
|
||||
|
||||
msgid "Enter two numbers."
|
||||
msgstr "Adjon meg két számot."
|
||||
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr "Adjon meg két érvényes dátumot/időt."
|
||||
|
||||
msgid "Enter two valid dates."
|
||||
msgstr "Adjon meg két érvényes dátumot."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"A lista %(show_value)d elemet tartalmaz, legfeljebb %(limit_value)d lehetne."
|
||||
msgstr[1] ""
|
||||
"A lista %(show_value)d elemet tartalmaz, legfeljebb %(limit_value)d lehetne."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"A lista %(show_value)d elemet tartalmaz, legalább %(limit_value)d kellene."
|
||||
msgstr[1] ""
|
||||
"A lista %(show_value)d elemet tartalmaz, legalább %(limit_value)d kellene."
|
||||
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr "Néhány kulcs hiányzik: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr "Néhány ismeretlen kulcs érkezett: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr ""
|
||||
"Bizonyosodjon meg róla, hogy a tartomány egésze kevesebb mint "
|
||||
"%(limit_value)s."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr ""
|
||||
"Bizonyosodjon meg róla, hogy a tartomány egésze nagyobb mint %(limit_value)s."
|
Binary file not shown.
@ -1,108 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Martijn Dekker <mcdutchie@hotmail.com>, 2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2017-09-21 22:44+0000\n"
|
||||
"Last-Translator: Jannis Leidel <jannis@leidel.info>\n"
|
||||
"Language-Team: Interlingua (http://www.transifex.com/django/django/language/"
|
||||
"ia/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ia\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr "Extensiones PostgreSQL"
|
||||
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr "Le elemento %(nth)s in le array non passava validation:"
|
||||
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr "Arrays annidate debe haber le mesme longitude."
|
||||
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr ""
|
||||
|
||||
msgid "A JSON object"
|
||||
msgstr ""
|
||||
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
msgid "Could not load JSON data."
|
||||
msgstr ""
|
||||
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter two valid values."
|
||||
msgstr ""
|
||||
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter two numbers."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter two valid dates."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr ""
|
Binary file not shown.
@ -1,118 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Fery Setiawan <gembelweb@gmail.com>, 2015-2017
|
||||
# M Asep Indrayana <me@drayanaindra.com>, 2015
|
||||
# oon arfiandwi (OonID) <oon.arfiandwi@gmail.com>, 2016
|
||||
# rodin <romihardiyanto@gmail.com>, 2016
|
||||
# Sutrisno Efendi <kangfend@gmail.com>, 2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2017-09-23 20:42+0000\n"
|
||||
"Last-Translator: Fery Setiawan <gembelweb@gmail.com>\n"
|
||||
"Language-Team: Indonesian (http://www.transifex.com/django/django/language/"
|
||||
"id/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: id\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr "Ekstensi PostgreSQL"
|
||||
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr "Item %(nth)s di dalam array tidak divalidasi:"
|
||||
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr "Array bersaran harus mempunyai panjang yang sama."
|
||||
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr "Pemetaan dari strings ke string/null"
|
||||
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr "Nilai dari \"%(key)s\" adalah bukan sebuah string atau null."
|
||||
|
||||
msgid "A JSON object"
|
||||
msgstr "Obyek JSON"
|
||||
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Nilai harus berupa JSON yang valid."
|
||||
|
||||
msgid "Could not load JSON data."
|
||||
msgstr "Tidak dapat memuat data JSON."
|
||||
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr "Masukan harus kamus JSON."
|
||||
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr "Nilai '%(value)s' harus berupa JSON yang valid."
|
||||
|
||||
msgid "Enter two valid values."
|
||||
msgstr "Masukkan dua nilai yang valid."
|
||||
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr "Awal jangkauan harus tidak melebihi akhir dari jangkauan."
|
||||
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr "Masukkan dua buah bilangan bulat."
|
||||
|
||||
msgid "Enter two numbers."
|
||||
msgstr "Masukkan dua buah bilangan."
|
||||
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr "Masukan dua buah tanggal/waktu."
|
||||
|
||||
msgid "Enter two valid dates."
|
||||
msgstr "Masukan dua buah tanggal yang benar."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"Daftar mengandung %(show_value)d item, dia harus mengandung tidak lebih dari "
|
||||
"%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"Daftar kandungan item %(show_value)d, setidaknya harus mengandung kurang "
|
||||
"dari %(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr "Ada yang salah di suatu kunci: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr "Suatu kunci yang tidak di ketahui sumbernya: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr ""
|
||||
"Pastikan bahwa jangkauan ini sepenuhnya kurang dari atau sama dengan "
|
||||
"%(limit_value)s."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr ""
|
||||
"Pastikan bahwa jangkauan ini sepenuhnya lebih besar dari atau sama dengan "
|
||||
"%(limit_value)s."
|
Binary file not shown.
@ -1,118 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# Thordur Sigurdsson <thordur@ja.is>, 2016-2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2017-09-21 22:44+0000\n"
|
||||
"Last-Translator: Thordur Sigurdsson <thordur@ja.is>\n"
|
||||
"Language-Team: Icelandic (http://www.transifex.com/django/django/language/"
|
||||
"is/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: is\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n"
|
||||
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr "PostgreSQL viðbætur"
|
||||
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr "Hlutur %(nth)s í listanum er ógildur:"
|
||||
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr "Faldaðir (nested) listar verða að vera af sömu lengd."
|
||||
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr "Möppun strengja í strengi/null"
|
||||
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr "Gildið á \"%(key)s\" er ekki strengur eða null."
|
||||
|
||||
msgid "A JSON object"
|
||||
msgstr "JSON hlutur"
|
||||
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Gildi verður að vera gilt JSON."
|
||||
|
||||
msgid "Could not load JSON data."
|
||||
msgstr "Gat ekki hlaðið inn JSON gögnum."
|
||||
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr "Inntak verður að vera JSON hlutur (dictionary)."
|
||||
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr "Gildi '%(value)s' verður að vera gilt JSON."
|
||||
|
||||
msgid "Enter two valid values."
|
||||
msgstr "Sláðu inn tvö gild gildi."
|
||||
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr "Upphaf bils má ekki ná yfir endalok bils."
|
||||
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr "Sláðu inn tvær heilar tölur."
|
||||
|
||||
msgid "Enter two numbers."
|
||||
msgstr "Sláðu inn tvær tölur."
|
||||
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr "Sláðu inn tvær gildar dagsetningar ásamt tíma."
|
||||
|
||||
msgid "Enter two valid dates."
|
||||
msgstr "Sláðu inn tvær gildar dagsetningar."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"Listinn inniheldur %(show_value)d hlut, en má ekki innihalda fleiri en "
|
||||
"%(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"Listinn inniheldur %(show_value)d hluti, en má ekki innihalda fleiri en "
|
||||
"%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"Listinn inniheldur %(show_value)d hlut, en má ekki innihalda færri en "
|
||||
"%(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"Listinn inniheldur %(show_value)d hluti, en má ekki innihalda færri en "
|
||||
"%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr "Þessa lykla vantar: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr "Þessir óþekktu lyklar fundust: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr ""
|
||||
"Gakktu úr skugga um að þetta bil sé minna eða jafnt og %(limit_value)s."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr ""
|
||||
"Gakktu úr skugga um að þetta bil sé stærra eða jafnt og %(limit_value)s."
|
Binary file not shown.
@ -1,125 +0,0 @@
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
# Translators:
|
||||
# bbstuntman <claudiu.andrei.roman@gmail.com>, 2017
|
||||
# Flavio Curella <flavio.curella@gmail.com>, 2016
|
||||
# palmux <palmux@gmail.com>, 2015
|
||||
# Mattia Procopio <promat85@gmail.com>, 2015
|
||||
# Stefano Brentegani <sbrentegani@gmail.com>, 2015-2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-01-19 16:49+0100\n"
|
||||
"PO-Revision-Date: 2017-09-23 20:42+0000\n"
|
||||
"Last-Translator: palmux <palmux@gmail.com>\n"
|
||||
"Language-Team: Italian (http://www.transifex.com/django/django/language/"
|
||||
"it/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: it\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "PostgreSQL extensions"
|
||||
msgstr "Estensioni per PostgreSQL"
|
||||
|
||||
#, python-format
|
||||
msgid "Item %(nth)s in the array did not validate: "
|
||||
msgstr "L'elemento %(nth)s dell'array non ha superato la validazione:"
|
||||
|
||||
msgid "Nested arrays must have the same length."
|
||||
msgstr "Gli array annidati devono avere la stessa lunghezza."
|
||||
|
||||
msgid "Map of strings to strings/nulls"
|
||||
msgstr "Mappa di stringhe a stringhe/null"
|
||||
|
||||
#, python-format
|
||||
msgid "The value of \"%(key)s\" is not a string or null."
|
||||
msgstr "Il valore di \"%(key)s\" non è una stringa o nullo."
|
||||
|
||||
msgid "A JSON object"
|
||||
msgstr "Un oggetto JSON"
|
||||
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Il valore deve essere un JSON valido."
|
||||
|
||||
msgid "Could not load JSON data."
|
||||
msgstr "Caricamento dati JSON fallito."
|
||||
|
||||
msgid "Input must be a JSON dictionary."
|
||||
msgstr "L'input deve essere un dizionario JSON."
|
||||
|
||||
#, python-format
|
||||
msgid "'%(value)s' value must be valid JSON."
|
||||
msgstr "Il valore di '%(value)s' deve essere un JSON valido."
|
||||
|
||||
msgid "Enter two valid values."
|
||||
msgstr "Inserisci due valori validi."
|
||||
|
||||
msgid "The start of the range must not exceed the end of the range."
|
||||
msgstr ""
|
||||
"Il valore iniziale dell'intervallo non può essere superiore al valore finale."
|
||||
|
||||
msgid "Enter two whole numbers."
|
||||
msgstr "Inserisci due numeri interi."
|
||||
|
||||
msgid "Enter two numbers."
|
||||
msgstr "Inserisci due numeri."
|
||||
|
||||
msgid "Enter two valid date/times."
|
||||
msgstr "Inserisci due valori data/ora validi."
|
||||
|
||||
msgid "Enter two valid dates."
|
||||
msgstr "Inserisci due date valide."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no more than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"La lista contiene %(show_value)d oggetto, non dovrebbe contenerne più di "
|
||||
"%(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"La lista contiene %(show_value)d elementi, e dovrebbe contenerne al massimo "
|
||||
"%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"List contains %(show_value)d item, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgid_plural ""
|
||||
"List contains %(show_value)d items, it should contain no fewer than "
|
||||
"%(limit_value)d."
|
||||
msgstr[0] ""
|
||||
"La lista contiene %(show_value)d oggetto, non dovrebbe contenerne meno di "
|
||||
"%(limit_value)d."
|
||||
msgstr[1] ""
|
||||
"La lista contiene %(show_value)d oggetti, e dovrebbe contenerne almeno "
|
||||
"%(limit_value)d."
|
||||
|
||||
#, python-format
|
||||
msgid "Some keys were missing: %(keys)s"
|
||||
msgstr "Alcune chiavi risultano mancanti: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Some unknown keys were provided: %(keys)s"
|
||||
msgstr "Sono state fornite alcune chiavi sconosciute: %(keys)s"
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely less than or equal to %(limit_value)s."
|
||||
msgstr ""
|
||||
"Assicurati che questo intervallo sia interamente minore o uguale a "
|
||||
"%(limit_value)s."
|
||||
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Ensure that this range is completely greater than or equal to "
|
||||
"%(limit_value)s."
|
||||
msgstr ""
|
||||
"Assicurati che questo intervallo sia interamente maggiore o uguale a "
|
||||
"%(limit_value)s."
|
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user