Compare commits
853 Commits
stable/1.1
...
stable/1.0
Author | SHA1 | Date | |
---|---|---|---|
|
2ad77f73b7 | ||
|
18754633ef | ||
|
01e5b21e3a | ||
|
504cdb085c | ||
|
56b80c70b6 | ||
|
36b3916e3f | ||
|
b8332547b9 | ||
|
c03090716a | ||
|
594a28a904 | ||
|
2099aba1bd | ||
|
372736b70f | ||
|
0f70fd99fd | ||
|
a7be652b41 | ||
|
b72d6cf0f6 | ||
|
6922ebadbc | ||
|
17b7a743a1 | ||
|
542904ee6d | ||
|
7af2b34a5c | ||
|
dbce0a1507 | ||
|
e6aefffbdc | ||
|
f602e2bad4 | ||
|
b8997d66be | ||
|
df7f917b7f | ||
|
f9249e4bd0 | ||
|
e94ef54279 | ||
|
892ef07ac7 | ||
|
ca530f27c9 | ||
|
f053d450e0 | ||
|
67d47daf05 | ||
|
cc5590b236 | ||
|
59f0efa54b | ||
|
128787d3b5 | ||
|
10e90f9350 | ||
|
e6d5d886bf | ||
|
77b269e875 | ||
|
72e2713d1a | ||
|
6c5ca9f480 | ||
|
1679202ebb | ||
|
624194a33a | ||
|
dff276b9c1 | ||
|
29b53b2b1c | ||
|
393e06997d | ||
|
0056d79c4e | ||
|
ab3b5b2380 | ||
|
940b8a17d4 | ||
|
1c908784e6 | ||
|
c7289a0402 | ||
|
500202337e | ||
|
ca3bd9ffb7 | ||
|
fcbd3bcec9 | ||
|
9133e12a4c | ||
|
c4f1970b03 | ||
|
558e4e9482 | ||
|
5c2518539c | ||
|
7cfee7925a | ||
|
667042a060 | ||
|
79af110d37 | ||
|
aa0be5b7f0 | ||
|
18f12a3884 | ||
|
e3cf57598e | ||
|
f921908bc2 | ||
|
63a7b95693 | ||
|
7b5869e140 | ||
|
40f24b4635 | ||
|
c05f4d5a22 | ||
|
df2011c61b | ||
|
45411379b4 | ||
|
9219741ee7 | ||
|
4aca3be925 | ||
|
f538e15a2c | ||
|
c60901c031 | ||
|
2a7b781cfe | ||
|
8fd40001f5 | ||
|
1153d4bf80 | ||
|
c4e240fae3 | ||
|
74b631667b | ||
|
8d25e8f828 | ||
|
998a3776ed | ||
|
cef2a6f236 | ||
|
7c8a6605ea | ||
|
b287f8a96f | ||
|
34fbf191c1 | ||
|
60ec0bdec2 | ||
|
e717ddc0da | ||
|
589d96ce4a | ||
|
75de41f910 | ||
|
c9771f0b4a | ||
|
bb0538d4d5 | ||
|
9356e16a62 | ||
|
0c24c3ee17 | ||
|
527609ccc9 | ||
|
91e16bdcb7 | ||
|
7cebfa1c49 | ||
|
5301334f15 | ||
|
c77f83ceae | ||
|
82ffb6747f | ||
|
7ccd095755 | ||
|
9029db7b79 | ||
|
58e4a9d938 | ||
|
4a79eaac97 | ||
|
7cccaaaf70 | ||
|
a44960b083 | ||
|
9d7e51d957 | ||
|
40bcd34fab | ||
|
e63e0bb400 | ||
|
c19d10c180 | ||
|
d0a3b92e4b | ||
|
8656fffbe0 | ||
|
1ff9ec9f12 | ||
|
b9952794c3 | ||
|
bbe034a74f | ||
|
ea5e5a20a9 | ||
|
3f28be2b65 | ||
|
a7f109d50f | ||
|
922aed5465 | ||
|
383c46dc8d | ||
|
0a4890466c | ||
|
7ee3d0cd4d | ||
|
8092c67d51 | ||
|
a827ba72a1 | ||
|
7560497a50 | ||
|
a6db5f229b | ||
|
056796b74d | ||
|
53b0436102 | ||
|
0871c87b77 | ||
|
e2e092cff9 | ||
|
28380f48ca | ||
|
18feaead04 | ||
|
b9db62ee60 | ||
|
f37a02ec03 | ||
|
82f9f74821 | ||
|
24108801b6 | ||
|
19e2585a38 | ||
|
10637a94cb | ||
|
e001738063 | ||
|
3cd3df814d | ||
|
cb73fe916e | ||
|
593bcc155a | ||
|
c6f7f2f092 | ||
|
ad2efbdd61 | ||
|
efbe48cfcb | ||
|
65966cebd3 | ||
|
d4e44699aa | ||
|
fc24a69028 | ||
|
e2189f6d24 | ||
|
509dfdd3a7 | ||
|
02b6f16422 | ||
|
1f5626d087 | ||
|
e6a6ce4f07 | ||
|
ebd74921bb | ||
|
a04fd1ef30 | ||
|
e21c85c58e | ||
|
f5dcd07977 | ||
|
985c939dd0 | ||
|
55f1c3e176 | ||
|
7f90dc1ba2 | ||
|
c293450173 | ||
|
5015860ebf | ||
|
91a17a843f | ||
|
ce369dce13 | ||
|
cefeb13f91 | ||
|
bcda65e991 | ||
|
86c278f2a5 | ||
|
4c79ef99c2 | ||
|
f4fce99bc1 | ||
|
11d08bca2b | ||
|
68033811ee | ||
|
cccfeaaa18 | ||
|
9e03bf2d47 | ||
|
3961b855e7 | ||
|
fe42c64a41 | ||
|
c482859105 | ||
|
17d214a982 | ||
|
cc96ed9ecd | ||
|
08577ab0f1 | ||
|
5e20f14c8b | ||
|
a1d6fdafce | ||
|
da4ddabbe5 | ||
|
0f98f0b214 | ||
|
9b8644407d | ||
|
1b6fac19ce | ||
|
bc07a498fe | ||
|
0d930ee0e6 | ||
|
cde397df31 | ||
|
1fe7eb603d | ||
|
8397c1fdfa | ||
|
41ba8e7ca6 | ||
|
7bcbc99b9e | ||
|
cd4f12d116 | ||
|
4f383e2939 | ||
|
864b78135a | ||
|
7935231ef0 | ||
|
a109a223b8 | ||
|
e93b3a7b02 | ||
|
1b9893f991 | ||
|
899d484afb | ||
|
6a080b199c | ||
|
09c2559b41 | ||
|
b03e58b936 | ||
|
67f9ad2801 | ||
|
9b724aea20 | ||
|
643e914d2b | ||
|
fc15d690b1 | ||
|
6541739765 | ||
|
c03a0a7837 | ||
|
0e5c80f86c | ||
|
f137a7391e | ||
|
aefb07d865 | ||
|
e7555c09d8 | ||
|
6a21ada37e | ||
|
5a089a5b00 | ||
|
c5bc893248 | ||
|
6e1869c46b | ||
|
5f730ded91 | ||
|
d22290b2ce | ||
|
3c222b1b8b | ||
|
23c12c9c2b | ||
|
655b602020 | ||
|
bf10bded7a | ||
|
e114ffb90a | ||
|
a7bfcba5db | ||
|
3b3c05df72 | ||
|
91d063c405 | ||
|
2ceee52303 | ||
|
c39b59e1d9 | ||
|
421b22e8ee | ||
|
cb92893598 | ||
|
725ffa57bb | ||
|
f110f91a03 | ||
|
ed5e3c3d2b | ||
|
7ff22ef258 | ||
|
0d17a5c7c6 | ||
|
65b64d5a08 | ||
|
9fabfedcbe | ||
|
a486c1e9b6 | ||
|
40a7b54a00 | ||
|
f873836989 | ||
|
dd51cf9876 | ||
|
1c925f65b3 | ||
|
ecb3906791 | ||
|
f0e7dca9d1 | ||
|
283442a50e | ||
|
01669a356a | ||
|
681a26ca90 | ||
|
2ee33cf63b | ||
|
c17547ac50 | ||
|
5acc58360d | ||
|
f80769d089 | ||
|
5f20587fcb | ||
|
33eca69b95 | ||
|
e249b0ec4d | ||
|
c89bf435c2 | ||
|
b8abb9b872 | ||
|
e471bbe209 | ||
|
960d3172f6 | ||
|
6be2d903f3 | ||
|
2c6e3b30b3 | ||
|
cab85015c5 | ||
|
1e0c34dd7f | ||
|
f0c9bc5563 | ||
|
a83e4cb195 | ||
|
6771f4e348 | ||
|
18baad0d2f | ||
|
95dcf56f4c | ||
|
6d5f811cdb | ||
|
4915d1d02f | ||
|
d78ff63ec6 | ||
|
13475ed646 | ||
|
f943e2e418 | ||
|
b6bd5ddc33 | ||
|
c2a828c7ca | ||
|
b853ed4fe7 | ||
|
b9c0ec63d3 | ||
|
06f379bd5c | ||
|
2ab40287bc | ||
|
7a283f790c | ||
|
1a541eebd3 | ||
|
f3eff22de7 | ||
|
ca5b624b05 | ||
|
53af452329 | ||
|
a5e0725247 | ||
|
fe7250db64 | ||
|
4e588ee93d | ||
|
dccb6e9c9c | ||
|
3ae27692b2 | ||
|
4a0e683ef1 | ||
|
167d21e6ab | ||
|
9e22d3ca4a | ||
|
2d97ab1131 | ||
|
dd7198701a | ||
|
6c45765681 | ||
|
8c3d593b0f | ||
|
3891c137d4 | ||
|
e013c78ef8 | ||
|
136d8b2854 | ||
|
5fc10e9293 | ||
|
3cff712c21 | ||
|
4f2259f539 | ||
|
806d898bbf | ||
|
866574a854 | ||
|
8c763da4f7 | ||
|
0013403eee | ||
|
1c2ee287c0 | ||
|
6951cece53 | ||
|
0c85192ebe | ||
|
f78c70b3b2 | ||
|
503b3ca459 | ||
|
a340c7f0e2 | ||
|
4c7b2b8baf | ||
|
ff4609b686 | ||
|
3931829c6e | ||
|
bb558539ad | ||
|
520c670b9d | ||
|
734a3ac767 | ||
|
33173e98c1 | ||
|
35c30ee957 | ||
|
50d3ebf72a | ||
|
a9931e5655 | ||
|
2d20e5265a | ||
|
cfe9b6f642 | ||
|
055f9a0ebf | ||
|
3c5f7bc262 | ||
|
f3a81cb5af | ||
|
fd8965198f | ||
|
b45cf13bed | ||
|
fbffc2e943 | ||
|
9907495b3c | ||
|
597102199e | ||
|
8c253bcea1 | ||
|
faf049c498 | ||
|
4257feffe8 | ||
|
38aeee4839 | ||
|
fd7280e4f4 | ||
|
33c27f2f28 | ||
|
c51722373b | ||
|
ef0a5fb9eb | ||
|
a080fcd1a6 | ||
|
f58df036bd | ||
|
c7a16bc6e0 | ||
|
647ff3f1ac | ||
|
eb24c7fd0c | ||
|
d0dce0257b | ||
|
e047110657 | ||
|
34e823a699 | ||
|
6efe30672d | ||
|
05e3242dc5 | ||
|
92edfca2fb | ||
|
7cbbd782e1 | ||
|
906f55bf09 | ||
|
53d5f27e75 | ||
|
f770cf5c5a | ||
|
6b2e28d963 | ||
|
8f6e1cdf9f | ||
|
dc7c952e8d | ||
|
a9017a1e5a | ||
|
97b22bde3c | ||
|
e87c07ec63 | ||
|
4bf87443d4 | ||
|
6b937c67ea | ||
|
377cc9c850 | ||
|
4a3139d63e | ||
|
4502a2d3ca | ||
|
d032e15079 | ||
|
bd4f2a1d46 | ||
|
795697dc22 | ||
|
67a5880162 | ||
|
0995396817 | ||
|
7475092c9f | ||
|
fd0c4bb76e | ||
|
766ff97208 | ||
|
d41cfde686 | ||
|
00087ef006 | ||
|
1e0acd537b | ||
|
7f90c2cc56 | ||
|
c1691cc519 | ||
|
93ffbd027f | ||
|
606c5a7e7e | ||
|
76fd191bfd | ||
|
550dd62300 | ||
|
8c776637b2 | ||
|
a352bf2145 | ||
|
24a359f078 | ||
|
e4e38e85c2 | ||
|
5967cbb045 | ||
|
d073efa0bb | ||
|
b3b541b68e | ||
|
f6524d9c1f | ||
|
510a16679d | ||
|
09daf300c5 | ||
|
abe640c735 | ||
|
955ec63c5e | ||
|
68aa33f901 | ||
|
9d808c14a5 | ||
|
9bbf94112f | ||
|
22ac97b17c | ||
|
86842e21f4 | ||
|
f9582c8f52 | ||
|
f7e52d449a | ||
|
3543e128df | ||
|
546d764a36 | ||
|
b49e39152b | ||
|
487a7fdcce | ||
|
daae84a8e0 | ||
|
ef28364365 | ||
|
10a3e41c8a | ||
|
387bd8f386 | ||
|
46e37d20d4 | ||
|
46292cdc71 | ||
|
412e1d59c9 | ||
|
54d6fe97e9 | ||
|
4a5a21d10c | ||
|
8f996105ec | ||
|
ae5f451741 | ||
|
5e0a45d739 | ||
|
cdbc225e0b | ||
|
2e05920401 | ||
|
dce8fdbc68 | ||
|
fff55111b6 | ||
|
c0379b9a2c | ||
|
69e228e862 | ||
|
c04a28df4c | ||
|
1c670a7053 | ||
|
17401448b2 | ||
|
2363f60879 | ||
|
ade3dcb494 | ||
|
c2e4e54eb6 | ||
|
fae6702ea1 | ||
|
177e997400 | ||
|
d9eb87adae | ||
|
50379f4c91 | ||
|
2fba099779 | ||
|
2b098e64e0 | ||
|
7499416d0d | ||
|
ebfe7faaa3 | ||
|
083a7206e4 | ||
|
f781205859 | ||
|
0abd798b9b | ||
|
39c450cc6d | ||
|
75b286798f | ||
|
6b85095169 | ||
|
4d6763128f | ||
|
8a0a17628b | ||
|
97321c7645 | ||
|
0eac35ce11 | ||
|
0ced9f68f3 | ||
|
6922925abc | ||
|
a02247ff73 | ||
|
fdde600f42 | ||
|
75cc96bc6f | ||
|
9a5942cd60 | ||
|
6ab4b64bd0 | ||
|
ee0320f634 | ||
|
ea350187a5 | ||
|
c545e88b81 | ||
|
9c770e05d4 | ||
|
6fe80b2a93 | ||
|
b1fd7650a9 | ||
|
055c01103d | ||
|
244bb7e601 | ||
|
7dcf651bc5 | ||
|
34b530fce7 | ||
|
8baac83f30 | ||
|
20973954da | ||
|
9c5eafe7d5 | ||
|
fd5d0cdebb | ||
|
84b890b66e | ||
|
dd5300274f | ||
|
31e059c9b3 | ||
|
de442c3ab6 | ||
|
79f53b4f20 | ||
|
182301c8df | ||
|
dce458cde2 | ||
|
b57d86f226 | ||
|
f1c9080984 | ||
|
dcb0884d68 | ||
|
9e6d32edde | ||
|
f520f440e1 | ||
|
8928a8c9f8 | ||
|
888b154e9b | ||
|
1a5588fceb | ||
|
0249177836 | ||
|
32be118081 | ||
|
9576353835 | ||
|
ec5a3e7a8d | ||
|
ec02cf7a85 | ||
|
4d2de7a307 | ||
|
3fc72ca8a8 | ||
|
a899f7c662 | ||
|
016f12a2c2 | ||
|
283c89e4c6 | ||
|
9b5b2ee2f3 | ||
|
9b373d0789 | ||
|
106bd0f49e | ||
|
7fdd26c582 | ||
|
2656e6bfa9 | ||
|
424d158b01 | ||
|
f799959008 | ||
|
c9a63889f6 | ||
|
3550aa2d14 | ||
|
734376f947 | ||
|
bd2e7a7876 | ||
|
93b3f89c31 | ||
|
eb442961f5 | ||
|
c2807db683 | ||
|
8366ef412e | ||
|
315fd2434c | ||
|
ef66773cef | ||
|
3c48d866f6 | ||
|
16f05e78f1 | ||
|
d12ee872a1 | ||
|
b8797aebf0 | ||
|
49216f50c6 | ||
|
0b619104dd | ||
|
624fc2e397 | ||
|
1bd70b4e22 | ||
|
8519146963 | ||
|
429b57d642 | ||
|
a21e170de7 | ||
|
267122978f | ||
|
d9b5a414ca | ||
|
910aa0ea28 | ||
|
b09a197a3e | ||
|
0f84cf9dfe | ||
|
a03486e081 | ||
|
0924264cd8 | ||
|
8a89cf9d18 | ||
|
5db8dc3573 | ||
|
c283875389 | ||
|
b0fd405c28 | ||
|
962f0dbd77 | ||
|
ebd30acd12 | ||
|
5d417c44b7 | ||
|
8a1b24cc42 | ||
|
2dce7064f4 | ||
|
c3df5d96d2 | ||
|
0f8f27f417 | ||
|
aa0023b32c | ||
|
405b87c432 | ||
|
47ed900b41 | ||
|
042777c838 | ||
|
ca777ab08c | ||
|
709476ae05 | ||
|
3e19109ab6 | ||
|
5ce4031a61 | ||
|
02980f1c3c | ||
|
2ffeea2013 | ||
|
f0e35e1bbe | ||
|
4268ef3fdc | ||
|
7cef4ecd19 | ||
|
ad93542c8f | ||
|
43c1a87708 | ||
|
0cc51e8fdd | ||
|
7dd0abc113 | ||
|
8064e088e6 | ||
|
610aedacca | ||
|
8bf4e84c85 | ||
|
37260e046f | ||
|
195a6ea791 | ||
|
2842f5979a | ||
|
cc76b89c59 | ||
|
fe9cd02f38 | ||
|
f3f251a6de | ||
|
f6cacacbff | ||
|
ff3320cb6d | ||
|
e8ddef57d8 | ||
|
7982e5c510 | ||
|
f2986d89b9 | ||
|
94b83db499 | ||
|
1f2e21ba07 | ||
|
fadccc6494 | ||
|
d2c9c1261a | ||
|
04ce539ad2 | ||
|
fd9ddb2dc1 | ||
|
3abbb455b2 | ||
|
9841776ec3 | ||
|
1d37663aef | ||
|
44239004db | ||
|
47de671948 | ||
|
518e19a363 | ||
|
6c3a98ab3a | ||
|
6dd5c855d4 | ||
|
73534cd942 | ||
|
26554aa6b2 | ||
|
3c9aaaef34 | ||
|
ae5c9b33d0 | ||
|
75ea7a434a | ||
|
8cc518a964 | ||
|
01e04e90e0 | ||
|
518c4ca2a8 | ||
|
0a0aba5f5e | ||
|
aca5a5258c | ||
|
0efff2c032 | ||
|
08d47a16e3 | ||
|
6ff50eb24c | ||
|
02b15e87d2 | ||
|
349405009f | ||
|
24a1900b36 | ||
|
c9a6c06de8 | ||
|
1a12506846 | ||
|
707d144c30 | ||
|
4aaa15e812 | ||
|
2e4336b659 | ||
|
bc2cc6eb09 | ||
|
8611522898 | ||
|
3988cb2d27 | ||
|
7edf9149d7 | ||
|
1a3a03c5f0 | ||
|
a9c5bf106c | ||
|
8c71c6607a | ||
|
067361b9c5 | ||
|
974135fc7e | ||
|
4dcff3e684 | ||
|
bffb457862 | ||
|
85e1d876c0 | ||
|
3c4c1adefb | ||
|
89f2a5892d | ||
|
61e36bd7d1 | ||
|
a8a4743b1d | ||
|
76cf4db494 | ||
|
dc86735859 | ||
|
cb2e4e80bc | ||
|
8479543fd7 | ||
|
3594f322ed | ||
|
3653a53dba | ||
|
1eac2453a5 | ||
|
35b0499905 | ||
|
cad3c019cc | ||
|
687823640d | ||
|
c1ec41a91a | ||
|
c667fdd4d8 | ||
|
8c6a6f3b1a | ||
|
500021a923 | ||
|
a261602bd3 | ||
|
4c7efda28f | ||
|
af6b7cdc63 | ||
|
c61ebbe2ba | ||
|
931d96e065 | ||
|
19cb720df7 | ||
|
b3f278258a | ||
|
1ca99e901f | ||
|
f93b9ead80 | ||
|
94c0aa7d84 | ||
|
df9254c2f3 | ||
|
7f06c373d2 | ||
|
33dac7afd7 | ||
|
3ea4dd111c | ||
|
8bcde6492a | ||
|
d75628fbe8 | ||
|
0f5258684e | ||
|
5cc5451a3f | ||
|
f952314532 | ||
|
76c77acc51 | ||
|
deab35c149 | ||
|
ef784f94d8 | ||
|
9ba5b12ca3 | ||
|
f6d68380b6 | ||
|
92754ac35e | ||
|
371fee791b | ||
|
6aff7f4768 | ||
|
cc0e00ebbe | ||
|
857e3aa548 | ||
|
0ab5dad0b3 | ||
|
ac521026db | ||
|
174f35bdea | ||
|
bdae3cc27d | ||
|
5adf72e3ad | ||
|
73d32af430 | ||
|
f42df5fc3f | ||
|
aed11333f1 | ||
|
d7e1856776 | ||
|
197892ab6c | ||
|
137d27ada6 | ||
|
13f63f051b | ||
|
08ae5910b0 | ||
|
9b93e49ae5 | ||
|
c0feb2fad9 | ||
|
a4782f0581 | ||
|
a703cc9970 | ||
|
0cee58d750 | ||
|
087f8aa781 | ||
|
781a1763d9 | ||
|
014c563662 | ||
|
385f2fe2b5 | ||
|
dbe18ce542 | ||
|
51dabd2819 | ||
|
1b68c6a50f | ||
|
659f982150 | ||
|
539d947ad4 | ||
|
68a74843d7 | ||
|
1c6f2b9ec8 | ||
|
28ad811329 | ||
|
dab02d4f84 | ||
|
c1fdbb0efe | ||
|
aef9663625 | ||
|
4007ac09e4 | ||
|
ac832a285f | ||
|
f219136e11 | ||
|
c8dcbb038a | ||
|
fd0c24b876 | ||
|
7d3450ddee | ||
|
a2e02a5830 | ||
|
8ec6b87c42 | ||
|
cecbed5ac9 | ||
|
7a1421189c | ||
|
2a1c9072fb | ||
|
11736980a4 | ||
|
1ea0057296 | ||
|
21e0efcd64 | ||
|
8c31bb7ca3 | ||
|
4a3dcd7f5e | ||
|
df8cb5016d | ||
|
24860ccbd4 | ||
|
6b7f2bdad2 | ||
|
e6c2f496eb | ||
|
a24d80f193 | ||
|
3ced836c73 | ||
|
dc0389cca0 | ||
|
f56df044dc | ||
|
335f4ac03d | ||
|
675ee5c137 | ||
|
0776ba048a | ||
|
1cbf9a93c6 | ||
|
6be20bf64c | ||
|
697f73f488 | ||
|
603dcb89bb | ||
|
8edcfc030e | ||
|
19dd6c3566 | ||
|
65d00e5db8 | ||
|
e33c6f1382 | ||
|
9c3e9c7e65 | ||
|
dcfafea408 | ||
|
8e7eddd59d | ||
|
ca5a2b0930 | ||
|
dca8dbaf86 | ||
|
8e4827e506 | ||
|
4563060093 | ||
|
55943c0975 | ||
|
f1eb098d96 | ||
|
6c069d2a71 | ||
|
da151657a0 | ||
|
3905b071bc | ||
|
1af32e8809 | ||
|
4c0895bf8f | ||
|
daf875259d | ||
|
19d164e051 | ||
|
fbf32bd000 | ||
|
d6a1e2ef7a | ||
|
587a2f9809 | ||
|
9009cac6b9 | ||
|
3c23dc977c | ||
|
662c34d8a7 | ||
|
b66e3a3d5e | ||
|
237153045a | ||
|
7b80af625b | ||
|
4931612727 | ||
|
38d9b0919b | ||
|
84216ef05e | ||
|
a8a07c2057 | ||
|
98b1b0794c | ||
|
9db7d53b60 | ||
|
e4ea2e12e1 | ||
|
3517f8a5ac | ||
|
d2f6a84668 | ||
|
bffc238a2f | ||
|
d323ef20d3 | ||
|
71ae6cbfa4 | ||
|
74c799d21d | ||
|
0a1aafa581 | ||
|
13d810efe4 | ||
|
8613e6c53e | ||
|
122c1a9ac0 | ||
|
8158bd9380 | ||
|
8cf2a05d35 | ||
|
568cb5d87c | ||
|
73ea785d6b | ||
|
6c85612499 | ||
|
b52e45193f | ||
|
43f6136f0f | ||
|
f762dcdf65 | ||
|
74997f95de | ||
|
d7ebda8d08 | ||
|
118383c607 | ||
|
bd60c52c3c | ||
|
663a284817 | ||
|
3c5688d4e0 | ||
|
36e90e5736 | ||
|
4537f33487 | ||
|
743019f8fd | ||
|
909371e5e5 | ||
|
6cfbd52138 | ||
|
4d692e6af1 | ||
|
a47f32449a | ||
|
194de934ff | ||
|
94c210427f | ||
|
f0ba276fd6 | ||
|
5e9a9053d8 | ||
|
9810648bef | ||
|
aea426561a | ||
|
ced447ee97 | ||
|
a9936d0b1c | ||
|
4b687d01ba | ||
|
09d84c4d40 | ||
|
318c1c32dd | ||
|
b3c2cf3d1d | ||
|
742ff0800b | ||
|
4991aac216 | ||
|
8e1c848099 | ||
|
3963a01697 | ||
|
fb4f82f2ea | ||
|
ed48b0b37e | ||
|
66c77d03d2 | ||
|
0604225387 | ||
|
f98243375c | ||
|
e75fe1a83f | ||
|
e4b28a9b61 | ||
|
6a30f5a2ea | ||
|
378dadc210 | ||
|
f4a57bedd8 | ||
|
82a01a63a6 | ||
|
282c38d406 | ||
|
51fb4bb0d3 | ||
|
167a131e53 | ||
|
6f0bcd23e6 | ||
|
b5ac7f7918 | ||
|
c201d14269 | ||
|
48f4388c8b | ||
|
075274203f | ||
|
9273575e6b | ||
|
89c2fba23b | ||
|
5da08047b9 | ||
|
9b5c2293c6 | ||
|
ee9c6ae269 | ||
|
2993ef3d7e | ||
|
01b6e55f20 | ||
|
e15bdf767e | ||
|
f9e78ed612 | ||
|
b0be5af39c | ||
|
571b159dd3 | ||
|
245399becb | ||
|
e88b70b779 | ||
|
ccc2387fd2 | ||
|
389307025f | ||
|
4393fea682 | ||
|
769709e994 | ||
|
3e2803f3e8 | ||
|
e4bc9e1f4a | ||
|
b7f40091ad | ||
|
a59c27ac5d | ||
|
9971852234 | ||
|
f585dea14e | ||
|
5e272e0f1a | ||
|
b17453bbc9 | ||
|
fe19e9f4af |
@ -1,41 +0,0 @@
|
||||
# http://editorconfig.org
|
||||
|
||||
root = true
|
||||
|
||||
[*]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
end_of_line = lf
|
||||
charset = utf-8
|
||||
|
||||
# Docstrings and comments use max_line_length = 79
|
||||
[*.py]
|
||||
max_line_length = 119
|
||||
|
||||
# Use 2 spaces for the HTML files
|
||||
[*.html]
|
||||
indent_size = 2
|
||||
|
||||
# The JSON files contain newlines inconsistently
|
||||
[*.json]
|
||||
indent_size = 2
|
||||
insert_final_newline = ignore
|
||||
|
||||
[**/admin/js/vendor/**]
|
||||
indent_style = ignore
|
||||
indent_size = ignore
|
||||
|
||||
# Minified JavaScript files shouldn't be changed
|
||||
[**.min.js]
|
||||
indent_style = ignore
|
||||
insert_final_newline = ignore
|
||||
|
||||
# Makefiles always use tabs for indentation
|
||||
[Makefile]
|
||||
indent_style = tab
|
||||
|
||||
# Batch files use tabs for indentation
|
||||
[*.bat]
|
||||
indent_style = tab
|
@ -1,4 +0,0 @@
|
||||
**/*.min.js
|
||||
**/vendor/**/*.js
|
||||
django/contrib/gis/templates/**/*.js
|
||||
node_modules/**.js
|
33
.eslintrc
33
.eslintrc
@ -1,33 +0,0 @@
|
||||
{
|
||||
"rules": {
|
||||
"camelcase": [0, {"properties": "always"}],
|
||||
"comma-spacing": [2, {"before": false, "after": true}],
|
||||
"dot-notation": [2, {"allowKeywords": true}],
|
||||
"curly": [2, "all"],
|
||||
"indent": [2, 4],
|
||||
"key-spacing": [2, {"beforeColon": false, "afterColon": true}],
|
||||
"new-cap": [0, {"newIsCap": true, "capIsNew": true}],
|
||||
"no-alert": [0],
|
||||
"no-eval": [2],
|
||||
"no-extend-native": [2, {"exceptions": ["Date", "String"]}],
|
||||
"no-multi-spaces": [2],
|
||||
"no-octal-escape": [2],
|
||||
"no-underscore-dangle": [2],
|
||||
"no-unused-vars": [2, {"vars": "local", "args": "none"}],
|
||||
"no-script-url": [2],
|
||||
"no-shadow": [2, {"hoist": "functions"}],
|
||||
"quotes": [0, "single"],
|
||||
"linebreak-style": [2, "unix"],
|
||||
"semi": [2, "always"],
|
||||
"space-before-blocks": [2, "always"],
|
||||
"space-before-function-paren": [2, {"anonymous": "never", "named": "never"}],
|
||||
"space-infix-ops": [2, {"int32Hint": false}],
|
||||
"strict": [1, "function"]
|
||||
},
|
||||
"env": {
|
||||
"browser": true
|
||||
},
|
||||
"globals": {
|
||||
"django": false
|
||||
}
|
||||
}
|
7
.gitattributes
vendored
7
.gitattributes
vendored
@ -1,7 +0,0 @@
|
||||
# Normalize line endings to avoid spurious failures in the core test suite on Windows.
|
||||
*html text eol=lf
|
||||
*css text eol=lf
|
||||
*js text eol=lf
|
||||
tests/staticfiles_tests/apps/test/static/test/*txt text eol=lf
|
||||
tests/staticfiles_tests/project/documents/test/*txt text eol=lf
|
||||
docs/releases/*.txt merge=union
|
18
.gitignore
vendored
18
.gitignore
vendored
@ -1,18 +0,0 @@
|
||||
# If you need to exclude files such as those generated by an IDE, use
|
||||
# $GIT_DIR/info/exclude or the core.excludesFile configuration variable as
|
||||
# described in https://git-scm.com/docs/gitignore
|
||||
|
||||
*.egg-info
|
||||
*.pot
|
||||
*.py[co]
|
||||
.tox/
|
||||
__pycache__
|
||||
MANIFEST
|
||||
dist/
|
||||
docs/_build/
|
||||
docs/locale/
|
||||
node_modules/
|
||||
tests/coverage_html/
|
||||
tests/.coverage
|
||||
build/
|
||||
tests/report/
|
15
.hgignore
15
.hgignore
@ -1,15 +0,0 @@
|
||||
syntax:glob
|
||||
|
||||
*.egg-info
|
||||
*.pot
|
||||
*.py[co]
|
||||
__pycache__
|
||||
MANIFEST
|
||||
dist/
|
||||
docs/_build/
|
||||
docs/locale/
|
||||
node_modules/
|
||||
tests/coverage_html/
|
||||
tests/.coverage
|
||||
build/
|
||||
tests/report/
|
68
.tx/config
68
.tx/config
@ -1,68 +0,0 @@
|
||||
[main]
|
||||
host = https://www.transifex.com
|
||||
lang_map = sr@latin:sr_Latn, zh_CN:zh_Hans, zh_TW:zh_Hant
|
||||
|
||||
[django.core]
|
||||
file_filter = django/conf/locale/<lang>/LC_MESSAGES/django.po
|
||||
source_file = django/conf/locale/en/LC_MESSAGES/django.po
|
||||
source_lang = en
|
||||
|
||||
[django.contrib-admin]
|
||||
file_filter = django/contrib/admin/locale/<lang>/LC_MESSAGES/django.po
|
||||
source_file = django/contrib/admin/locale/en/LC_MESSAGES/django.po
|
||||
source_lang = en
|
||||
|
||||
[django.contrib-admin-js]
|
||||
file_filter = django/contrib/admin/locale/<lang>/LC_MESSAGES/djangojs.po
|
||||
source_file = django/contrib/admin/locale/en/LC_MESSAGES/djangojs.po
|
||||
source_lang = en
|
||||
|
||||
[django.contrib-admindocs]
|
||||
file_filter = django/contrib/admindocs/locale/<lang>/LC_MESSAGES/django.po
|
||||
source_file = django/contrib/admindocs/locale/en/LC_MESSAGES/django.po
|
||||
source_lang = en
|
||||
|
||||
[django.contrib-auth]
|
||||
file_filter = django/contrib/auth/locale/<lang>/LC_MESSAGES/django.po
|
||||
source_file = django/contrib/auth/locale/en/LC_MESSAGES/django.po
|
||||
source_lang = en
|
||||
|
||||
[django.contrib-contenttypes]
|
||||
file_filter = django/contrib/contenttypes/locale/<lang>/LC_MESSAGES/django.po
|
||||
source_file = django/contrib/contenttypes/locale/en/LC_MESSAGES/django.po
|
||||
source_lang = en
|
||||
|
||||
[django.contrib-flatpages]
|
||||
file_filter = django/contrib/flatpages/locale/<lang>/LC_MESSAGES/django.po
|
||||
source_file = django/contrib/flatpages/locale/en/LC_MESSAGES/django.po
|
||||
source_lang = en
|
||||
|
||||
[django.contrib-gis]
|
||||
file_filter = django/contrib/gis/locale/<lang>/LC_MESSAGES/django.po
|
||||
source_file = django/contrib/gis/locale/en/LC_MESSAGES/django.po
|
||||
source_lang = en
|
||||
|
||||
[django.contrib-humanize]
|
||||
file_filter = django/contrib/humanize/locale/<lang>/LC_MESSAGES/django.po
|
||||
source_file = django/contrib/humanize/locale/en/LC_MESSAGES/django.po
|
||||
source_lang = en
|
||||
|
||||
[django.contrib-postgres]
|
||||
file_filter = django/contrib/postgres/locale/<lang>/LC_MESSAGES/django.po
|
||||
source_file = django/contrib/postgres/locale/en/LC_MESSAGES/django.po
|
||||
source_lang = en
|
||||
|
||||
[django.contrib-redirects]
|
||||
file_filter = django/contrib/redirects/locale/<lang>/LC_MESSAGES/django.po
|
||||
source_file = django/contrib/redirects/locale/en/LC_MESSAGES/django.po
|
||||
source_lang = en
|
||||
|
||||
[django.contrib-sessions]
|
||||
file_filter = django/contrib/sessions/locale/<lang>/LC_MESSAGES/django.po
|
||||
source_file = django/contrib/sessions/locale/en/LC_MESSAGES/django.po
|
||||
source_lang = en
|
||||
|
||||
[django.contrib-sites]
|
||||
file_filter = django/contrib/sites/locale/<lang>/LC_MESSAGES/django.po
|
||||
source_file = django/contrib/sites/locale/en/LC_MESSAGES/django.po
|
||||
source_lang = en
|
@ -1,32 +0,0 @@
|
||||
======================
|
||||
Contributing to Django
|
||||
======================
|
||||
|
||||
As an open source project, Django welcomes contributions of many forms.
|
||||
|
||||
Examples of contributions include:
|
||||
|
||||
* Code patches
|
||||
* Documentation improvements
|
||||
* Bug reports and patch reviews
|
||||
|
||||
Extensive contribution guidelines are available in the repository at
|
||||
``docs/internals/contributing/``, or online at:
|
||||
|
||||
https://docs.djangoproject.com/en/dev/internals/contributing/
|
||||
|
||||
**Warning: non-trivial pull requests (anything more than fixing a typo) without
|
||||
Trac tickets will be closed!** `Please file a ticket`__ to suggest changes.
|
||||
|
||||
__ https://code.djangoproject.com/newticket
|
||||
|
||||
Django uses Trac to keep track of bugs, feature requests, and associated
|
||||
patches because GitHub doesn't provide adequate tooling for its community.
|
||||
Patches can be submitted as pull requests, but if you don't file a ticket,
|
||||
it's unlikely that we'll notice your contribution.
|
||||
|
||||
Code of Conduct
|
||||
===============
|
||||
|
||||
As a contributor, you can help us keep the Django community open and inclusive.
|
||||
Please read and follow our `Code of Conduct <https://www.djangoproject.com/conduct/>`_.
|
13
Gruntfile.js
13
Gruntfile.js
@ -1,13 +0,0 @@
|
||||
var globalThreshold = 50; // Global code coverage threshold (as a percentage)
|
||||
|
||||
module.exports = function(grunt) {
|
||||
grunt.initConfig({
|
||||
qunit: {
|
||||
all: ['js_tests/tests.html']
|
||||
}
|
||||
});
|
||||
|
||||
grunt.loadNpmTasks('grunt-contrib-qunit');
|
||||
grunt.registerTask('test', ['qunit']);
|
||||
grunt.registerTask('default', ['test']);
|
||||
};
|
11
INSTALL
11
INSTALL
@ -1,17 +1,22 @@
|
||||
Thanks for downloading Django.
|
||||
|
||||
To install it, make sure you have Python 2.7 or greater installed. Then run
|
||||
To install it, make sure you have Python 2.3 or greater installed. Then run
|
||||
this command from the command prompt:
|
||||
|
||||
python setup.py install
|
||||
|
||||
If you're upgrading from a previous version, you need to remove it first.
|
||||
Note this requires a working Internet connection if you don't already have the
|
||||
Python utility "setuptools" installed.
|
||||
|
||||
AS AN ALTERNATIVE, you can just copy the entire "django" directory to Python's
|
||||
site-packages directory, which is located wherever your Python installation
|
||||
lives. Some places you might check are:
|
||||
|
||||
/usr/lib/python2.7/site-packages (Unix, Python 2.7)
|
||||
/usr/lib/python2.4/site-packages (Unix, Python 2.4)
|
||||
/usr/lib/python2.3/site-packages (Unix, Python 2.3)
|
||||
C:\\PYTHON\site-packages (Windows)
|
||||
|
||||
This second solution does not require a working Internet connection; it
|
||||
bypasses "setuptools" entirely.
|
||||
|
||||
For more detailed instructions, see docs/intro/install.txt.
|
||||
|
6
LICENSE
6
LICENSE
@ -4,10 +4,10 @@ All rights reserved.
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice,
|
||||
1. Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
|
255
LICENSE.python
255
LICENSE.python
@ -1,255 +0,0 @@
|
||||
A. HISTORY OF THE SOFTWARE
|
||||
==========================
|
||||
|
||||
Python was created in the early 1990s by Guido van Rossum at Stichting
|
||||
Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands
|
||||
as a successor of a language called ABC. Guido remains Python's
|
||||
principal author, although it includes many contributions from others.
|
||||
|
||||
In 1995, Guido continued his work on Python at the Corporation for
|
||||
National Research Initiatives (CNRI, see http://www.cnri.reston.va.us)
|
||||
in Reston, Virginia where he released several versions of the
|
||||
software.
|
||||
|
||||
In May 2000, Guido and the Python core development team moved to
|
||||
BeOpen.com to form the BeOpen PythonLabs team. In October of the same
|
||||
year, the PythonLabs team moved to Digital Creations (now Zope
|
||||
Corporation, see http://www.zope.com). In 2001, the Python Software
|
||||
Foundation (PSF, see http://www.python.org/psf/) was formed, a
|
||||
non-profit organization created specifically to own Python-related
|
||||
Intellectual Property. Zope Corporation is a sponsoring member of
|
||||
the PSF.
|
||||
|
||||
All Python releases are Open Source (see http://www.opensource.org for
|
||||
the Open Source Definition). Historically, most, but not all, Python
|
||||
releases have also been GPL-compatible; the table below summarizes
|
||||
the various releases.
|
||||
|
||||
Release Derived Year Owner GPL-
|
||||
from compatible? (1)
|
||||
|
||||
0.9.0 thru 1.2 1991-1995 CWI yes
|
||||
1.3 thru 1.5.2 1.2 1995-1999 CNRI yes
|
||||
1.6 1.5.2 2000 CNRI no
|
||||
2.0 1.6 2000 BeOpen.com no
|
||||
1.6.1 1.6 2001 CNRI yes (2)
|
||||
2.1 2.0+1.6.1 2001 PSF no
|
||||
2.0.1 2.0+1.6.1 2001 PSF yes
|
||||
2.1.1 2.1+2.0.1 2001 PSF yes
|
||||
2.1.2 2.1.1 2002 PSF yes
|
||||
2.1.3 2.1.2 2002 PSF yes
|
||||
2.2 and above 2.1.1 2001-now PSF yes
|
||||
|
||||
Footnotes:
|
||||
|
||||
(1) GPL-compatible doesn't mean that we're distributing Python under
|
||||
the GPL. All Python licenses, unlike the GPL, let you distribute
|
||||
a modified version without making your changes open source. The
|
||||
GPL-compatible licenses make it possible to combine Python with
|
||||
other software that is released under the GPL; the others don't.
|
||||
|
||||
(2) According to Richard Stallman, 1.6.1 is not GPL-compatible,
|
||||
because its license has a choice of law clause. According to
|
||||
CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1
|
||||
is "not incompatible" with the GPL.
|
||||
|
||||
Thanks to the many outside volunteers who have worked under Guido's
|
||||
direction to make these releases possible.
|
||||
|
||||
|
||||
B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON
|
||||
===============================================================
|
||||
|
||||
PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
|
||||
--------------------------------------------
|
||||
|
||||
1. This LICENSE AGREEMENT is between the Python Software Foundation
|
||||
("PSF"), and the Individual or Organization ("Licensee") accessing and
|
||||
otherwise using this software ("Python") in source or binary form and
|
||||
its associated documentation.
|
||||
|
||||
2. Subject to the terms and conditions of this License Agreement, PSF hereby
|
||||
grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
|
||||
analyze, test, perform and/or display publicly, prepare derivative works,
|
||||
distribute, and otherwise use Python alone or in any derivative version,
|
||||
provided, however, that PSF's License Agreement and PSF's notice of copyright,
|
||||
i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
|
||||
2011, 2012, 2013, 2014, 2015, 2016 Python Software Foundation; All Rights
|
||||
Reserved" are retained in Python alone or in any derivative version prepared by
|
||||
Licensee.
|
||||
|
||||
3. In the event Licensee prepares a derivative work that is based on
|
||||
or incorporates Python or any part thereof, and wants to make
|
||||
the derivative work available to others as provided herein, then
|
||||
Licensee hereby agrees to include in any such work a brief summary of
|
||||
the changes made to Python.
|
||||
|
||||
4. PSF is making Python available to Licensee on an "AS IS"
|
||||
basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
|
||||
IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
|
||||
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
|
||||
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
|
||||
INFRINGE ANY THIRD PARTY RIGHTS.
|
||||
|
||||
5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
|
||||
FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
|
||||
A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
|
||||
OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
|
||||
|
||||
6. This License Agreement will automatically terminate upon a material
|
||||
breach of its terms and conditions.
|
||||
|
||||
7. Nothing in this License Agreement shall be deemed to create any
|
||||
relationship of agency, partnership, or joint venture between PSF and
|
||||
Licensee. This License Agreement does not grant permission to use PSF
|
||||
trademarks or trade name in a trademark sense to endorse or promote
|
||||
products or services of Licensee, or any third party.
|
||||
|
||||
8. By copying, installing or otherwise using Python, Licensee
|
||||
agrees to be bound by the terms and conditions of this License
|
||||
Agreement.
|
||||
|
||||
|
||||
BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0
|
||||
-------------------------------------------
|
||||
|
||||
BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1
|
||||
|
||||
1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an
|
||||
office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the
|
||||
Individual or Organization ("Licensee") accessing and otherwise using
|
||||
this software in source or binary form and its associated
|
||||
documentation ("the Software").
|
||||
|
||||
2. Subject to the terms and conditions of this BeOpen Python License
|
||||
Agreement, BeOpen hereby grants Licensee a non-exclusive,
|
||||
royalty-free, world-wide license to reproduce, analyze, test, perform
|
||||
and/or display publicly, prepare derivative works, distribute, and
|
||||
otherwise use the Software alone or in any derivative version,
|
||||
provided, however, that the BeOpen Python License is retained in the
|
||||
Software, alone or in any derivative version prepared by Licensee.
|
||||
|
||||
3. BeOpen is making the Software available to Licensee on an "AS IS"
|
||||
basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
|
||||
IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND
|
||||
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
|
||||
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT
|
||||
INFRINGE ANY THIRD PARTY RIGHTS.
|
||||
|
||||
4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE
|
||||
SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS
|
||||
AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY
|
||||
DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
|
||||
|
||||
5. This License Agreement will automatically terminate upon a material
|
||||
breach of its terms and conditions.
|
||||
|
||||
6. This License Agreement shall be governed by and interpreted in all
|
||||
respects by the law of the State of California, excluding conflict of
|
||||
law provisions. Nothing in this License Agreement shall be deemed to
|
||||
create any relationship of agency, partnership, or joint venture
|
||||
between BeOpen and Licensee. This License Agreement does not grant
|
||||
permission to use BeOpen trademarks or trade names in a trademark
|
||||
sense to endorse or promote products or services of Licensee, or any
|
||||
third party. As an exception, the "BeOpen Python" logos available at
|
||||
http://www.pythonlabs.com/logos.html may be used according to the
|
||||
permissions granted on that web page.
|
||||
|
||||
7. By copying, installing or otherwise using the software, Licensee
|
||||
agrees to be bound by the terms and conditions of this License
|
||||
Agreement.
|
||||
|
||||
|
||||
CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1
|
||||
---------------------------------------
|
||||
|
||||
1. This LICENSE AGREEMENT is between the Corporation for National
|
||||
Research Initiatives, having an office at 1895 Preston White Drive,
|
||||
Reston, VA 20191 ("CNRI"), and the Individual or Organization
|
||||
("Licensee") accessing and otherwise using Python 1.6.1 software in
|
||||
source or binary form and its associated documentation.
|
||||
|
||||
2. Subject to the terms and conditions of this License Agreement, CNRI
|
||||
hereby grants Licensee a nonexclusive, royalty-free, world-wide
|
||||
license to reproduce, analyze, test, perform and/or display publicly,
|
||||
prepare derivative works, distribute, and otherwise use Python 1.6.1
|
||||
alone or in any derivative version, provided, however, that CNRI's
|
||||
License Agreement and CNRI's notice of copyright, i.e., "Copyright (c)
|
||||
1995-2001 Corporation for National Research Initiatives; All Rights
|
||||
Reserved" are retained in Python 1.6.1 alone or in any derivative
|
||||
version prepared by Licensee. Alternately, in lieu of CNRI's License
|
||||
Agreement, Licensee may substitute the following text (omitting the
|
||||
quotes): "Python 1.6.1 is made available subject to the terms and
|
||||
conditions in CNRI's License Agreement. This Agreement together with
|
||||
Python 1.6.1 may be located on the Internet using the following
|
||||
unique, persistent identifier (known as a handle): 1895.22/1013. This
|
||||
Agreement may also be obtained from a proxy server on the Internet
|
||||
using the following URL: http://hdl.handle.net/1895.22/1013".
|
||||
|
||||
3. In the event Licensee prepares a derivative work that is based on
|
||||
or incorporates Python 1.6.1 or any part thereof, and wants to make
|
||||
the derivative work available to others as provided herein, then
|
||||
Licensee hereby agrees to include in any such work a brief summary of
|
||||
the changes made to Python 1.6.1.
|
||||
|
||||
4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS"
|
||||
basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
|
||||
IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND
|
||||
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
|
||||
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT
|
||||
INFRINGE ANY THIRD PARTY RIGHTS.
|
||||
|
||||
5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
|
||||
1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
|
||||
A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1,
|
||||
OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
|
||||
|
||||
6. This License Agreement will automatically terminate upon a material
|
||||
breach of its terms and conditions.
|
||||
|
||||
7. This License Agreement shall be governed by the federal
|
||||
intellectual property law of the United States, including without
|
||||
limitation the federal copyright law, and, to the extent such
|
||||
U.S. federal law does not apply, by the law of the Commonwealth of
|
||||
Virginia, excluding Virginia's conflict of law provisions.
|
||||
Notwithstanding the foregoing, with regard to derivative works based
|
||||
on Python 1.6.1 that incorporate non-separable material that was
|
||||
previously distributed under the GNU General Public License (GPL), the
|
||||
law of the Commonwealth of Virginia shall govern this License
|
||||
Agreement only as to issues arising under or with respect to
|
||||
Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this
|
||||
License Agreement shall be deemed to create any relationship of
|
||||
agency, partnership, or joint venture between CNRI and Licensee. This
|
||||
License Agreement does not grant permission to use CNRI trademarks or
|
||||
trade name in a trademark sense to endorse or promote products or
|
||||
services of Licensee, or any third party.
|
||||
|
||||
8. By clicking on the "ACCEPT" button where indicated, or by copying,
|
||||
installing or otherwise using Python 1.6.1, Licensee agrees to be
|
||||
bound by the terms and conditions of this License Agreement.
|
||||
|
||||
ACCEPT
|
||||
|
||||
|
||||
CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2
|
||||
--------------------------------------------------
|
||||
|
||||
Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam,
|
||||
The Netherlands. All rights reserved.
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Stichting Mathematisch
|
||||
Centrum or CWI not be used in advertising or publicity pertaining to
|
||||
distribution of the software without specific, written prior
|
||||
permission.
|
||||
|
||||
STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
|
||||
THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
|
||||
FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
38
MANIFEST.in
38
MANIFEST.in
@ -1,17 +1,29 @@
|
||||
include README
|
||||
include AUTHORS
|
||||
include Gruntfile.js
|
||||
include INSTALL
|
||||
include LICENSE
|
||||
include LICENSE.python
|
||||
include MANIFEST.in
|
||||
include package.json
|
||||
include *.rst
|
||||
graft django
|
||||
prune django/contrib/admin/bin
|
||||
graft docs
|
||||
graft extras
|
||||
graft js_tests
|
||||
graft scripts
|
||||
graft tests
|
||||
global-exclude __pycache__
|
||||
global-exclude *.py[co]
|
||||
include django/utils/simplejson/LICENSE.txt
|
||||
include django/contrib/gis/gdal/LICENSE
|
||||
include django/contrib/gis/geos/LICENSE
|
||||
recursive-include docs *
|
||||
recursive-include scripts *
|
||||
recursive-include examples *
|
||||
recursive-include extras *
|
||||
recursive-include tests *
|
||||
recursive-include django/conf/locale *
|
||||
recursive-include django/contrib/admin/templates *
|
||||
recursive-include django/contrib/admin/media *
|
||||
recursive-include django/contrib/admindocs/templates *
|
||||
recursive-include django/contrib/auth/fixtures *
|
||||
recursive-include django/contrib/auth/tests/templates *
|
||||
recursive-include django/contrib/comments/templates *
|
||||
recursive-include django/contrib/databrowse/templates *
|
||||
recursive-include django/contrib/formtools/templates *
|
||||
recursive-include django/contrib/gis/templates *
|
||||
recursive-include django/contrib/gis/tests/data *
|
||||
recursive-include django/contrib/gis/tests/geoapp/sql *
|
||||
recursive-include django/contrib/gis/tests/layermap/cities *
|
||||
recursive-include django/contrib/gis/tests/layermap/counties *
|
||||
recursive-include django/contrib/gis/tests/layermap/interstates *
|
||||
recursive-include django/contrib/sitemaps/templates *
|
||||
|
38
README
Normal file
38
README
Normal file
@ -0,0 +1,38 @@
|
||||
Django is a high-level Python Web framework that encourages rapid development
|
||||
and clean, pragmatic design.
|
||||
|
||||
All documentation is in the "docs" directory and online at
|
||||
http://docs.djangoproject.com/en/dev/. If you're just getting started, here's
|
||||
how we recommend you read the docs:
|
||||
|
||||
* First, read docs/intro/install.txt for instructions on installing Django.
|
||||
|
||||
* Next, work through the tutorials in order (docs/intro/tutorial01.txt,
|
||||
docs/intro/tutorial02.txt, etc.).
|
||||
|
||||
* If you want to set up an actual deployment server, read
|
||||
docs/howto/deployment/modpython.txt for instructions on running Django
|
||||
under mod_python.
|
||||
|
||||
* You'll probably want to read through the topical guides (in docs/topics)
|
||||
next; from there you can jump to the HOWTOs (in docs/howto) for specific
|
||||
problems, and check out the reference (docs/ref) for gory details.
|
||||
|
||||
Docs are updated rigorously. If you find any problems in the docs, or think they
|
||||
should be clarified in any way, please take 30 seconds to fill out a ticket
|
||||
here:
|
||||
|
||||
http://code.djangoproject.com/newticket
|
||||
|
||||
To get more help:
|
||||
|
||||
* Join the #django channel on irc.freenode.net. Lots of helpful people
|
||||
hang out there. Read the archives at http://oebfare.com/logger/django/.
|
||||
|
||||
* Join the django-users mailing list, or read the archives, at
|
||||
http://groups.google.com/group/django-users.
|
||||
|
||||
To contribute to Django:
|
||||
|
||||
* Check out http://www.djangoproject.com/community/ for information
|
||||
about getting involved.
|
43
README.rst
43
README.rst
@ -1,43 +0,0 @@
|
||||
Django is a high-level Python Web framework that encourages rapid development
|
||||
and clean, pragmatic design. Thanks for checking it out.
|
||||
|
||||
All documentation is in the "``docs``" directory and online at
|
||||
https://docs.djangoproject.com/en/stable/. If you're just getting started,
|
||||
here's how we recommend you read the docs:
|
||||
|
||||
* First, read ``docs/intro/install.txt`` for instructions on installing Django.
|
||||
|
||||
* Next, work through the tutorials in order (``docs/intro/tutorial01.txt``,
|
||||
``docs/intro/tutorial02.txt``, etc.).
|
||||
|
||||
* If you want to set up an actual deployment server, read
|
||||
``docs/howto/deployment/index.txt`` for instructions.
|
||||
|
||||
* You'll probably want to read through the topical guides (in ``docs/topics``)
|
||||
next; from there you can jump to the HOWTOs (in ``docs/howto``) for specific
|
||||
problems, and check out the reference (``docs/ref``) for gory details.
|
||||
|
||||
* See ``docs/README`` for instructions on building an HTML version of the docs.
|
||||
|
||||
Docs are updated rigorously. If you find any problems in the docs, or think
|
||||
they should be clarified in any way, please take 30 seconds to fill out a
|
||||
ticket here: https://code.djangoproject.com/newticket
|
||||
|
||||
To get more help:
|
||||
|
||||
* Join the ``#django`` channel on irc.freenode.net. Lots of helpful people hang out
|
||||
there. Read the archives at https://botbot.me/freenode/django/.
|
||||
|
||||
* Join the django-users mailing list, or read the archives, at
|
||||
https://groups.google.com/group/django-users.
|
||||
|
||||
To contribute to Django:
|
||||
|
||||
* Check out https://docs.djangoproject.com/en/dev/internals/contributing/ for
|
||||
information about getting involved.
|
||||
|
||||
To run Django's test suite:
|
||||
|
||||
* Follow the instructions in the "Unit tests" section of
|
||||
``docs/internals/contributing/writing-code/unit-tests.txt``, published online at
|
||||
https://docs.djangoproject.com/en/dev/internals/contributing/writing-code/unit-tests/#running-the-unit-tests
|
@ -1,27 +1,16 @@
|
||||
from __future__ import unicode_literals
|
||||
VERSION = (1, 0, 5, 'alpha', 0)
|
||||
|
||||
from django.utils.version import get_version
|
||||
|
||||
VERSION = (1, 11, 30, 'alpha', 0)
|
||||
|
||||
__version__ = get_version(VERSION)
|
||||
|
||||
|
||||
def setup(set_prefix=True):
|
||||
"""
|
||||
Configure the settings (this happens as a side effect of accessing the
|
||||
first setting), configure logging and populate the app registry.
|
||||
Set the thread-local urlresolvers script prefix if `set_prefix` is True.
|
||||
"""
|
||||
from django.apps import apps
|
||||
from django.conf import settings
|
||||
from django.urls import set_script_prefix
|
||||
from django.utils.encoding import force_text
|
||||
from django.utils.log import configure_logging
|
||||
|
||||
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
|
||||
if set_prefix:
|
||||
set_script_prefix(
|
||||
'/' if settings.FORCE_SCRIPT_NAME is None else force_text(settings.FORCE_SCRIPT_NAME)
|
||||
)
|
||||
apps.populate(settings.INSTALLED_APPS)
|
||||
def get_version():
|
||||
version = '%s.%s' % (VERSION[0], VERSION[1])
|
||||
if VERSION[2]:
|
||||
version = '%s.%s' % (version, VERSION[2])
|
||||
if VERSION[3:] == ('alpha', 0):
|
||||
version = '%s pre-alpha' % version
|
||||
else:
|
||||
if VERSION[3] != 'final':
|
||||
version = '%s %s %s' % (version, VERSION[3], VERSION[4])
|
||||
from django.utils.version import get_svn_revision
|
||||
svn_rev = get_svn_revision()
|
||||
if svn_rev != u'SVN-unknown':
|
||||
version = "%s %s" % (version, svn_rev)
|
||||
return version
|
||||
|
@ -1,9 +0,0 @@
|
||||
"""
|
||||
Invokes django-admin when the django module is run as a script.
|
||||
|
||||
Example: python -m django check
|
||||
"""
|
||||
from django.core import management
|
||||
|
||||
if __name__ == "__main__":
|
||||
management.execute_from_command_line()
|
@ -1,4 +0,0 @@
|
||||
from .config import AppConfig
|
||||
from .registry import apps
|
||||
|
||||
__all__ = ['AppConfig', 'apps']
|
@ -1,207 +0,0 @@
|
||||
import os
|
||||
from importlib import import_module
|
||||
|
||||
from django.core.exceptions import ImproperlyConfigured
|
||||
from django.utils._os import upath
|
||||
from django.utils.module_loading import module_has_submodule
|
||||
|
||||
MODELS_MODULE_NAME = 'models'
|
||||
|
||||
|
||||
class AppConfig(object):
|
||||
"""
|
||||
Class representing a Django application and its configuration.
|
||||
"""
|
||||
|
||||
def __init__(self, app_name, app_module):
|
||||
# Full Python path to the application eg. 'django.contrib.admin'.
|
||||
self.name = app_name
|
||||
|
||||
# Root module for the application eg. <module 'django.contrib.admin'
|
||||
# from 'django/contrib/admin/__init__.pyc'>.
|
||||
self.module = app_module
|
||||
|
||||
# Reference to the Apps registry that holds this AppConfig. Set by the
|
||||
# registry when it registers the AppConfig instance.
|
||||
self.apps = None
|
||||
|
||||
# The following attributes could be defined at the class level in a
|
||||
# subclass, hence the test-and-set pattern.
|
||||
|
||||
# Last component of the Python path to the application eg. 'admin'.
|
||||
# This value must be unique across a Django project.
|
||||
if not hasattr(self, 'label'):
|
||||
self.label = app_name.rpartition(".")[2]
|
||||
|
||||
# Human-readable name for the application eg. "Admin".
|
||||
if not hasattr(self, 'verbose_name'):
|
||||
self.verbose_name = self.label.title()
|
||||
|
||||
# Filesystem path to the application directory eg.
|
||||
# u'/usr/lib/python2.7/dist-packages/django/contrib/admin'. Unicode on
|
||||
# Python 2 and a str on Python 3.
|
||||
if not hasattr(self, 'path'):
|
||||
self.path = self._path_from_module(app_module)
|
||||
|
||||
# Module containing models eg. <module 'django.contrib.admin.models'
|
||||
# from 'django/contrib/admin/models.pyc'>. Set by import_models().
|
||||
# None if the application doesn't have a models module.
|
||||
self.models_module = None
|
||||
|
||||
# Mapping of lower case model names to model classes. Initially set to
|
||||
# None to prevent accidental access before import_models() runs.
|
||||
self.models = None
|
||||
|
||||
def __repr__(self):
|
||||
return '<%s: %s>' % (self.__class__.__name__, self.label)
|
||||
|
||||
def _path_from_module(self, module):
|
||||
"""Attempt to determine app's filesystem path from its module."""
|
||||
# See #21874 for extended discussion of the behavior of this method in
|
||||
# various cases.
|
||||
# Convert paths to list because Python 3's _NamespacePath does not
|
||||
# support indexing.
|
||||
paths = list(getattr(module, '__path__', []))
|
||||
if len(paths) != 1:
|
||||
filename = getattr(module, '__file__', None)
|
||||
if filename is not None:
|
||||
paths = [os.path.dirname(filename)]
|
||||
else:
|
||||
# For unknown reasons, sometimes the list returned by __path__
|
||||
# contains duplicates that must be removed (#25246).
|
||||
paths = list(set(paths))
|
||||
if len(paths) > 1:
|
||||
raise ImproperlyConfigured(
|
||||
"The app module %r has multiple filesystem locations (%r); "
|
||||
"you must configure this app with an AppConfig subclass "
|
||||
"with a 'path' class attribute." % (module, paths))
|
||||
elif not paths:
|
||||
raise ImproperlyConfigured(
|
||||
"The app module %r has no filesystem location, "
|
||||
"you must configure this app with an AppConfig subclass "
|
||||
"with a 'path' class attribute." % (module,))
|
||||
return upath(paths[0])
|
||||
|
||||
@classmethod
|
||||
def create(cls, entry):
|
||||
"""
|
||||
Factory that creates an app config from an entry in INSTALLED_APPS.
|
||||
"""
|
||||
try:
|
||||
# If import_module succeeds, entry is a path to an app module,
|
||||
# which may specify an app config class with default_app_config.
|
||||
# Otherwise, entry is a path to an app config class or an error.
|
||||
module = import_module(entry)
|
||||
|
||||
except ImportError:
|
||||
# Track that importing as an app module failed. If importing as an
|
||||
# app config class fails too, we'll trigger the ImportError again.
|
||||
module = None
|
||||
|
||||
mod_path, _, cls_name = entry.rpartition('.')
|
||||
|
||||
# Raise the original exception when entry cannot be a path to an
|
||||
# app config class.
|
||||
if not mod_path:
|
||||
raise
|
||||
|
||||
else:
|
||||
try:
|
||||
# If this works, the app module specifies an app config class.
|
||||
entry = module.default_app_config
|
||||
except AttributeError:
|
||||
# Otherwise, it simply uses the default app config class.
|
||||
return cls(entry, module)
|
||||
else:
|
||||
mod_path, _, cls_name = entry.rpartition('.')
|
||||
|
||||
# If we're reaching this point, we must attempt to load the app config
|
||||
# class located at <mod_path>.<cls_name>
|
||||
mod = import_module(mod_path)
|
||||
try:
|
||||
cls = getattr(mod, cls_name)
|
||||
except AttributeError:
|
||||
if module is None:
|
||||
# If importing as an app module failed, that error probably
|
||||
# contains the most informative traceback. Trigger it again.
|
||||
import_module(entry)
|
||||
else:
|
||||
raise
|
||||
|
||||
# Check for obvious errors. (This check prevents duck typing, but
|
||||
# it could be removed if it became a problem in practice.)
|
||||
if not issubclass(cls, AppConfig):
|
||||
raise ImproperlyConfigured(
|
||||
"'%s' isn't a subclass of AppConfig." % entry)
|
||||
|
||||
# Obtain app name here rather than in AppClass.__init__ to keep
|
||||
# all error checking for entries in INSTALLED_APPS in one place.
|
||||
try:
|
||||
app_name = cls.name
|
||||
except AttributeError:
|
||||
raise ImproperlyConfigured(
|
||||
"'%s' must supply a name attribute." % entry)
|
||||
|
||||
# Ensure app_name points to a valid module.
|
||||
try:
|
||||
app_module = import_module(app_name)
|
||||
except ImportError:
|
||||
raise ImproperlyConfigured(
|
||||
"Cannot import '%s'. Check that '%s.%s.name' is correct." % (
|
||||
app_name, mod_path, cls_name,
|
||||
)
|
||||
)
|
||||
|
||||
# Entry is a path to an app config class.
|
||||
return cls(app_name, app_module)
|
||||
|
||||
def get_model(self, model_name, require_ready=True):
|
||||
"""
|
||||
Returns the model with the given case-insensitive model_name.
|
||||
|
||||
Raises LookupError if no model exists with this name.
|
||||
"""
|
||||
if require_ready:
|
||||
self.apps.check_models_ready()
|
||||
else:
|
||||
self.apps.check_apps_ready()
|
||||
try:
|
||||
return self.models[model_name.lower()]
|
||||
except KeyError:
|
||||
raise LookupError(
|
||||
"App '%s' doesn't have a '%s' model." % (self.label, model_name))
|
||||
|
||||
def get_models(self, include_auto_created=False, include_swapped=False):
|
||||
"""
|
||||
Returns an iterable of models.
|
||||
|
||||
By default, the following models aren't included:
|
||||
|
||||
- auto-created models for many-to-many relations without
|
||||
an explicit intermediate table,
|
||||
- models that have been swapped out.
|
||||
|
||||
Set the corresponding keyword argument to True to include such models.
|
||||
Keyword arguments aren't documented; they're a private API.
|
||||
"""
|
||||
self.apps.check_models_ready()
|
||||
for model in self.models.values():
|
||||
if model._meta.auto_created and not include_auto_created:
|
||||
continue
|
||||
if model._meta.swapped and not include_swapped:
|
||||
continue
|
||||
yield model
|
||||
|
||||
def import_models(self):
|
||||
# Dictionary of models for this app, primarily maintained in the
|
||||
# 'all_models' attribute of the Apps this AppConfig is attached to.
|
||||
self.models = self.apps.all_models[self.label]
|
||||
|
||||
if module_has_submodule(self.module, MODELS_MODULE_NAME):
|
||||
models_module_name = '%s.%s' % (self.name, MODELS_MODULE_NAME)
|
||||
self.models_module = import_module(models_module_name)
|
||||
|
||||
def ready(self):
|
||||
"""
|
||||
Override this method in subclasses to run code when Django starts.
|
||||
"""
|
@ -1,425 +0,0 @@
|
||||
import sys
|
||||
import threading
|
||||
import warnings
|
||||
from collections import Counter, OrderedDict, defaultdict
|
||||
from functools import partial
|
||||
|
||||
from django.core.exceptions import AppRegistryNotReady, ImproperlyConfigured
|
||||
from django.utils import lru_cache
|
||||
|
||||
from .config import AppConfig
|
||||
|
||||
|
||||
class Apps(object):
|
||||
"""
|
||||
A registry that stores the configuration of installed applications.
|
||||
|
||||
It also keeps track of models eg. to provide reverse-relations.
|
||||
"""
|
||||
|
||||
def __init__(self, installed_apps=()):
|
||||
# installed_apps is set to None when creating the master registry
|
||||
# because it cannot be populated at that point. Other registries must
|
||||
# provide a list of installed apps and are populated immediately.
|
||||
if installed_apps is None and hasattr(sys.modules[__name__], 'apps'):
|
||||
raise RuntimeError("You must supply an installed_apps argument.")
|
||||
|
||||
# Mapping of app labels => model names => model classes. Every time a
|
||||
# model is imported, ModelBase.__new__ calls apps.register_model which
|
||||
# creates an entry in all_models. All imported models are registered,
|
||||
# regardless of whether they're defined in an installed application
|
||||
# and whether the registry has been populated. Since it isn't possible
|
||||
# to reimport a module safely (it could reexecute initialization code)
|
||||
# all_models is never overridden or reset.
|
||||
self.all_models = defaultdict(OrderedDict)
|
||||
|
||||
# Mapping of labels to AppConfig instances for installed apps.
|
||||
self.app_configs = OrderedDict()
|
||||
|
||||
# Stack of app_configs. Used to store the current state in
|
||||
# set_available_apps and set_installed_apps.
|
||||
self.stored_app_configs = []
|
||||
|
||||
# Whether the registry is populated.
|
||||
self.apps_ready = self.models_ready = self.ready = False
|
||||
|
||||
# Lock for thread-safe population.
|
||||
self._lock = threading.Lock()
|
||||
|
||||
# Maps ("app_label", "modelname") tuples to lists of functions to be
|
||||
# called when the corresponding model is ready. Used by this class's
|
||||
# `lazy_model_operation()` and `do_pending_operations()` methods.
|
||||
self._pending_operations = defaultdict(list)
|
||||
|
||||
# Populate apps and models, unless it's the master registry.
|
||||
if installed_apps is not None:
|
||||
self.populate(installed_apps)
|
||||
|
||||
def populate(self, installed_apps=None):
|
||||
"""
|
||||
Loads application configurations and models.
|
||||
|
||||
This method imports each application module and then each model module.
|
||||
|
||||
It is thread safe and idempotent, but not reentrant.
|
||||
"""
|
||||
if self.ready:
|
||||
return
|
||||
|
||||
# populate() might be called by two threads in parallel on servers
|
||||
# that create threads before initializing the WSGI callable.
|
||||
with self._lock:
|
||||
if self.ready:
|
||||
return
|
||||
|
||||
# app_config should be pristine, otherwise the code below won't
|
||||
# guarantee that the order matches the order in INSTALLED_APPS.
|
||||
if self.app_configs:
|
||||
raise RuntimeError("populate() isn't reentrant")
|
||||
|
||||
# Phase 1: initialize app configs and import app modules.
|
||||
for entry in installed_apps:
|
||||
if isinstance(entry, AppConfig):
|
||||
app_config = entry
|
||||
else:
|
||||
app_config = AppConfig.create(entry)
|
||||
if app_config.label in self.app_configs:
|
||||
raise ImproperlyConfigured(
|
||||
"Application labels aren't unique, "
|
||||
"duplicates: %s" % app_config.label)
|
||||
|
||||
self.app_configs[app_config.label] = app_config
|
||||
app_config.apps = self
|
||||
|
||||
# Check for duplicate app names.
|
||||
counts = Counter(
|
||||
app_config.name for app_config in self.app_configs.values())
|
||||
duplicates = [
|
||||
name for name, count in counts.most_common() if count > 1]
|
||||
if duplicates:
|
||||
raise ImproperlyConfigured(
|
||||
"Application names aren't unique, "
|
||||
"duplicates: %s" % ", ".join(duplicates))
|
||||
|
||||
self.apps_ready = True
|
||||
|
||||
# Phase 2: import models modules.
|
||||
for app_config in self.app_configs.values():
|
||||
app_config.import_models()
|
||||
|
||||
self.clear_cache()
|
||||
|
||||
self.models_ready = True
|
||||
|
||||
# Phase 3: run ready() methods of app configs.
|
||||
for app_config in self.get_app_configs():
|
||||
app_config.ready()
|
||||
|
||||
self.ready = True
|
||||
|
||||
def check_apps_ready(self):
|
||||
"""
|
||||
Raises an exception if all apps haven't been imported yet.
|
||||
"""
|
||||
if not self.apps_ready:
|
||||
raise AppRegistryNotReady("Apps aren't loaded yet.")
|
||||
|
||||
def check_models_ready(self):
|
||||
"""
|
||||
Raises an exception if all models haven't been imported yet.
|
||||
"""
|
||||
if not self.models_ready:
|
||||
raise AppRegistryNotReady("Models aren't loaded yet.")
|
||||
|
||||
def get_app_configs(self):
|
||||
"""
|
||||
Imports applications and returns an iterable of app configs.
|
||||
"""
|
||||
self.check_apps_ready()
|
||||
return self.app_configs.values()
|
||||
|
||||
def get_app_config(self, app_label):
|
||||
"""
|
||||
Imports applications and returns an app config for the given label.
|
||||
|
||||
Raises LookupError if no application exists with this label.
|
||||
"""
|
||||
self.check_apps_ready()
|
||||
try:
|
||||
return self.app_configs[app_label]
|
||||
except KeyError:
|
||||
message = "No installed app with label '%s'." % app_label
|
||||
for app_config in self.get_app_configs():
|
||||
if app_config.name == app_label:
|
||||
message += " Did you mean '%s'?" % app_config.label
|
||||
break
|
||||
raise LookupError(message)
|
||||
|
||||
# This method is performance-critical at least for Django's test suite.
|
||||
@lru_cache.lru_cache(maxsize=None)
|
||||
def get_models(self, include_auto_created=False, include_swapped=False):
|
||||
"""
|
||||
Returns a list of all installed models.
|
||||
|
||||
By default, the following models aren't included:
|
||||
|
||||
- auto-created models for many-to-many relations without
|
||||
an explicit intermediate table,
|
||||
- models that have been swapped out.
|
||||
|
||||
Set the corresponding keyword argument to True to include such models.
|
||||
"""
|
||||
self.check_models_ready()
|
||||
|
||||
result = []
|
||||
for app_config in self.app_configs.values():
|
||||
result.extend(list(app_config.get_models(include_auto_created, include_swapped)))
|
||||
return result
|
||||
|
||||
def get_model(self, app_label, model_name=None, require_ready=True):
|
||||
"""
|
||||
Returns the model matching the given app_label and model_name.
|
||||
|
||||
As a shortcut, this function also accepts a single argument in the
|
||||
form <app_label>.<model_name>.
|
||||
|
||||
model_name is case-insensitive.
|
||||
|
||||
Raises LookupError if no application exists with this label, or no
|
||||
model exists with this name in the application. Raises ValueError if
|
||||
called with a single argument that doesn't contain exactly one dot.
|
||||
"""
|
||||
if require_ready:
|
||||
self.check_models_ready()
|
||||
else:
|
||||
self.check_apps_ready()
|
||||
|
||||
if model_name is None:
|
||||
app_label, model_name = app_label.split('.')
|
||||
|
||||
app_config = self.get_app_config(app_label)
|
||||
|
||||
if not require_ready and app_config.models is None:
|
||||
app_config.import_models()
|
||||
|
||||
return app_config.get_model(model_name, require_ready=require_ready)
|
||||
|
||||
def register_model(self, app_label, model):
|
||||
# Since this method is called when models are imported, it cannot
|
||||
# perform imports because of the risk of import loops. It mustn't
|
||||
# call get_app_config().
|
||||
model_name = model._meta.model_name
|
||||
app_models = self.all_models[app_label]
|
||||
if model_name in app_models:
|
||||
if (model.__name__ == app_models[model_name].__name__ and
|
||||
model.__module__ == app_models[model_name].__module__):
|
||||
warnings.warn(
|
||||
"Model '%s.%s' was already registered. "
|
||||
"Reloading models is not advised as it can lead to inconsistencies, "
|
||||
"most notably with related models." % (app_label, model_name),
|
||||
RuntimeWarning, stacklevel=2)
|
||||
else:
|
||||
raise RuntimeError(
|
||||
"Conflicting '%s' models in application '%s': %s and %s." %
|
||||
(model_name, app_label, app_models[model_name], model))
|
||||
app_models[model_name] = model
|
||||
self.do_pending_operations(model)
|
||||
self.clear_cache()
|
||||
|
||||
def is_installed(self, app_name):
|
||||
"""
|
||||
Checks whether an application with this name exists in the registry.
|
||||
|
||||
app_name is the full name of the app eg. 'django.contrib.admin'.
|
||||
"""
|
||||
self.check_apps_ready()
|
||||
return any(ac.name == app_name for ac in self.app_configs.values())
|
||||
|
||||
def get_containing_app_config(self, object_name):
|
||||
"""
|
||||
Look for an app config containing a given object.
|
||||
|
||||
object_name is the dotted Python path to the object.
|
||||
|
||||
Returns the app config for the inner application in case of nesting.
|
||||
Returns None if the object isn't in any registered app config.
|
||||
"""
|
||||
self.check_apps_ready()
|
||||
candidates = []
|
||||
for app_config in self.app_configs.values():
|
||||
if object_name.startswith(app_config.name):
|
||||
subpath = object_name[len(app_config.name):]
|
||||
if subpath == '' or subpath[0] == '.':
|
||||
candidates.append(app_config)
|
||||
if candidates:
|
||||
return sorted(candidates, key=lambda ac: -len(ac.name))[0]
|
||||
|
||||
def get_registered_model(self, app_label, model_name):
|
||||
"""
|
||||
Similar to get_model(), but doesn't require that an app exists with
|
||||
the given app_label.
|
||||
|
||||
It's safe to call this method at import time, even while the registry
|
||||
is being populated.
|
||||
"""
|
||||
model = self.all_models[app_label].get(model_name.lower())
|
||||
if model is None:
|
||||
raise LookupError(
|
||||
"Model '%s.%s' not registered." % (app_label, model_name))
|
||||
return model
|
||||
|
||||
@lru_cache.lru_cache(maxsize=None)
|
||||
def get_swappable_settings_name(self, to_string):
|
||||
"""
|
||||
For a given model string (e.g. "auth.User"), return the name of the
|
||||
corresponding settings name if it refers to a swappable model. If the
|
||||
referred model is not swappable, return None.
|
||||
|
||||
This method is decorated with lru_cache because it's performance
|
||||
critical when it comes to migrations. Since the swappable settings don't
|
||||
change after Django has loaded the settings, there is no reason to get
|
||||
the respective settings attribute over and over again.
|
||||
"""
|
||||
for model in self.get_models(include_swapped=True):
|
||||
swapped = model._meta.swapped
|
||||
# Is this model swapped out for the model given by to_string?
|
||||
if swapped and swapped == to_string:
|
||||
return model._meta.swappable
|
||||
# Is this model swappable and the one given by to_string?
|
||||
if model._meta.swappable and model._meta.label == to_string:
|
||||
return model._meta.swappable
|
||||
return None
|
||||
|
||||
def set_available_apps(self, available):
|
||||
"""
|
||||
Restricts the set of installed apps used by get_app_config[s].
|
||||
|
||||
available must be an iterable of application names.
|
||||
|
||||
set_available_apps() must be balanced with unset_available_apps().
|
||||
|
||||
Primarily used for performance optimization in TransactionTestCase.
|
||||
|
||||
This method is safe is the sense that it doesn't trigger any imports.
|
||||
"""
|
||||
available = set(available)
|
||||
installed = set(app_config.name for app_config in self.get_app_configs())
|
||||
if not available.issubset(installed):
|
||||
raise ValueError(
|
||||
"Available apps isn't a subset of installed apps, extra apps: %s"
|
||||
% ", ".join(available - installed)
|
||||
)
|
||||
|
||||
self.stored_app_configs.append(self.app_configs)
|
||||
self.app_configs = OrderedDict(
|
||||
(label, app_config)
|
||||
for label, app_config in self.app_configs.items()
|
||||
if app_config.name in available)
|
||||
self.clear_cache()
|
||||
|
||||
def unset_available_apps(self):
|
||||
"""
|
||||
Cancels a previous call to set_available_apps().
|
||||
"""
|
||||
self.app_configs = self.stored_app_configs.pop()
|
||||
self.clear_cache()
|
||||
|
||||
def set_installed_apps(self, installed):
|
||||
"""
|
||||
Enables a different set of installed apps for get_app_config[s].
|
||||
|
||||
installed must be an iterable in the same format as INSTALLED_APPS.
|
||||
|
||||
set_installed_apps() must be balanced with unset_installed_apps(),
|
||||
even if it exits with an exception.
|
||||
|
||||
Primarily used as a receiver of the setting_changed signal in tests.
|
||||
|
||||
This method may trigger new imports, which may add new models to the
|
||||
registry of all imported models. They will stay in the registry even
|
||||
after unset_installed_apps(). Since it isn't possible to replay
|
||||
imports safely (eg. that could lead to registering listeners twice),
|
||||
models are registered when they're imported and never removed.
|
||||
"""
|
||||
if not self.ready:
|
||||
raise AppRegistryNotReady("App registry isn't ready yet.")
|
||||
self.stored_app_configs.append(self.app_configs)
|
||||
self.app_configs = OrderedDict()
|
||||
self.apps_ready = self.models_ready = self.ready = False
|
||||
self.clear_cache()
|
||||
self.populate(installed)
|
||||
|
||||
def unset_installed_apps(self):
|
||||
"""
|
||||
Cancels a previous call to set_installed_apps().
|
||||
"""
|
||||
self.app_configs = self.stored_app_configs.pop()
|
||||
self.apps_ready = self.models_ready = self.ready = True
|
||||
self.clear_cache()
|
||||
|
||||
def clear_cache(self):
|
||||
"""
|
||||
Clears all internal caches, for methods that alter the app registry.
|
||||
|
||||
This is mostly used in tests.
|
||||
"""
|
||||
# Call expire cache on each model. This will purge
|
||||
# the relation tree and the fields cache.
|
||||
self.get_models.cache_clear()
|
||||
if self.ready:
|
||||
# Circumvent self.get_models() to prevent that the cache is refilled.
|
||||
# This particularly prevents that an empty value is cached while cloning.
|
||||
for app_config in self.app_configs.values():
|
||||
for model in app_config.get_models(include_auto_created=True):
|
||||
model._meta._expire_cache()
|
||||
|
||||
def lazy_model_operation(self, function, *model_keys):
|
||||
"""
|
||||
Take a function and a number of ("app_label", "modelname") tuples, and
|
||||
when all the corresponding models have been imported and registered,
|
||||
call the function with the model classes as its arguments.
|
||||
|
||||
The function passed to this method must accept exactly n models as
|
||||
arguments, where n=len(model_keys).
|
||||
"""
|
||||
# Base case: no arguments, just execute the function.
|
||||
if not model_keys:
|
||||
function()
|
||||
# Recursive case: take the head of model_keys, wait for the
|
||||
# corresponding model class to be imported and registered, then apply
|
||||
# that argument to the supplied function. Pass the resulting partial
|
||||
# to lazy_model_operation() along with the remaining model args and
|
||||
# repeat until all models are loaded and all arguments are applied.
|
||||
else:
|
||||
next_model, more_models = model_keys[0], model_keys[1:]
|
||||
|
||||
# This will be executed after the class corresponding to next_model
|
||||
# has been imported and registered. The `func` attribute provides
|
||||
# duck-type compatibility with partials.
|
||||
def apply_next_model(model):
|
||||
next_function = partial(apply_next_model.func, model)
|
||||
self.lazy_model_operation(next_function, *more_models)
|
||||
apply_next_model.func = function
|
||||
|
||||
# If the model has already been imported and registered, partially
|
||||
# apply it to the function now. If not, add it to the list of
|
||||
# pending operations for the model, where it will be executed with
|
||||
# the model class as its sole argument once the model is ready.
|
||||
try:
|
||||
model_class = self.get_registered_model(*next_model)
|
||||
except LookupError:
|
||||
self._pending_operations[next_model].append(apply_next_model)
|
||||
else:
|
||||
apply_next_model(model_class)
|
||||
|
||||
def do_pending_operations(self, model):
|
||||
"""
|
||||
Take a newly-prepared model and pass it to each function waiting for
|
||||
it. This is called at the very end of `Apps.register_model()`.
|
||||
"""
|
||||
key = model._meta.app_label, model._meta.model_name
|
||||
for function in self._pending_operations.pop(key, []):
|
||||
function(model)
|
||||
|
||||
|
||||
apps = Apps(installed_apps=None)
|
11
django/bin/compile-messages.py
Executable file
11
django/bin/compile-messages.py
Executable file
@ -0,0 +1,11 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
if __name__ == "__main__":
|
||||
import sys
|
||||
name = sys.argv[0]
|
||||
args = ' '.join(sys.argv[1:])
|
||||
print >> sys.stderr, "%s has been moved into django-admin.py" % name
|
||||
print >> sys.stderr, 'Please run "django-admin.py compilemessages %s" instead.'% args
|
||||
print >> sys.stderr
|
||||
sys.exit(1)
|
||||
|
13
django/bin/daily_cleanup.py
Executable file
13
django/bin/daily_cleanup.py
Executable file
@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
"""
|
||||
Daily cleanup job.
|
||||
|
||||
Can be run as a cronjob to clean out old data from the database (only expired
|
||||
sessions at the moment).
|
||||
"""
|
||||
|
||||
from django.core import management
|
||||
|
||||
if __name__ == "__main__":
|
||||
management.call_command('cleanup')
|
11
django/bin/make-messages.py
Executable file
11
django/bin/make-messages.py
Executable file
@ -0,0 +1,11 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
if __name__ == "__main__":
|
||||
import sys
|
||||
name = sys.argv[0]
|
||||
args = ' '.join(sys.argv[1:])
|
||||
print >> sys.stderr, "%s has been moved into django-admin.py" % name
|
||||
print >> sys.stderr, 'Please run "django-admin.py makemessages %s" instead.'% args
|
||||
print >> sys.stderr
|
||||
sys.exit(1)
|
||||
|
36
django/bin/profiling/gather_profile_stats.py
Normal file
36
django/bin/profiling/gather_profile_stats.py
Normal file
@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
"""
|
||||
gather_profile_stats.py /path/to/dir/of/profiles
|
||||
|
||||
Note that the aggregated profiles must be read with pstats.Stats, not
|
||||
hotshot.stats (the formats are incompatible)
|
||||
"""
|
||||
|
||||
from hotshot import stats
|
||||
import pstats
|
||||
import sys, os
|
||||
|
||||
def gather_stats(p):
|
||||
profiles = {}
|
||||
for f in os.listdir(p):
|
||||
if f.endswith('.agg.prof'):
|
||||
path = f[:-9]
|
||||
prof = pstats.Stats(os.path.join(p, f))
|
||||
elif f.endswith('.prof'):
|
||||
bits = f.split('.')
|
||||
path = ".".join(bits[:-3])
|
||||
prof = stats.load(os.path.join(p, f))
|
||||
else:
|
||||
continue
|
||||
print "Processing %s" % f
|
||||
if path in profiles:
|
||||
profiles[path].add(prof)
|
||||
else:
|
||||
profiles[path] = prof
|
||||
os.unlink(os.path.join(p, f))
|
||||
for (path, prof) in profiles.items():
|
||||
prof.dump_stats(os.path.join(p, "%s.agg.prof" % path))
|
||||
|
||||
if __name__ == '__main__':
|
||||
gather_stats(sys.argv[1])
|
28
django/bin/unique-messages.py
Executable file
28
django/bin/unique-messages.py
Executable file
@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
def unique_messages():
|
||||
basedir = None
|
||||
|
||||
if os.path.isdir(os.path.join('conf', 'locale')):
|
||||
basedir = os.path.abspath(os.path.join('conf', 'locale'))
|
||||
elif os.path.isdir('locale'):
|
||||
basedir = os.path.abspath('locale')
|
||||
else:
|
||||
print "this script should be run from the django svn tree or your project or app tree"
|
||||
sys.exit(1)
|
||||
|
||||
for (dirpath, dirnames, filenames) in os.walk(basedir):
|
||||
for f in filenames:
|
||||
if f.endswith('.po'):
|
||||
sys.stderr.write('processing file %s in %s\n' % (f, dirpath))
|
||||
pf = os.path.splitext(os.path.join(dirpath, f))[0]
|
||||
cmd = 'msguniq "%s.po"' % pf
|
||||
stdout = os.popen(cmd)
|
||||
msg = stdout.read()
|
||||
open('%s.po' % pf, 'w').write(msg)
|
||||
|
||||
if __name__ == "__main__":
|
||||
unique_messages()
|
@ -6,149 +6,108 @@ variable, and then from django.conf.global_settings; see the global settings fil
|
||||
a list of all possible variables.
|
||||
"""
|
||||
|
||||
import importlib
|
||||
import os
|
||||
import time
|
||||
import re
|
||||
import time # Needed for Windows
|
||||
|
||||
from django.conf import global_settings
|
||||
from django.core.exceptions import ImproperlyConfigured
|
||||
from django.utils.functional import LazyObject, empty
|
||||
from django.utils.functional import LazyObject
|
||||
|
||||
ENVIRONMENT_VARIABLE = "DJANGO_SETTINGS_MODULE"
|
||||
|
||||
|
||||
class LazySettings(LazyObject):
|
||||
"""
|
||||
A lazy proxy for either global Django settings or a custom settings object.
|
||||
The user can manually configure settings prior to using them. Otherwise,
|
||||
Django uses the settings module pointed to by DJANGO_SETTINGS_MODULE.
|
||||
"""
|
||||
def _setup(self, name=None):
|
||||
def _setup(self):
|
||||
"""
|
||||
Load the settings module pointed to by the environment variable. This
|
||||
is used the first time we need any settings at all, if the user has not
|
||||
previously configured the settings manually.
|
||||
"""
|
||||
settings_module = os.environ.get(ENVIRONMENT_VARIABLE)
|
||||
if not settings_module:
|
||||
desc = ("setting %s" % name) if name else "settings"
|
||||
raise ImproperlyConfigured(
|
||||
"Requested %s, but settings are not configured. "
|
||||
"You must either define the environment variable %s "
|
||||
"or call settings.configure() before accessing settings."
|
||||
% (desc, ENVIRONMENT_VARIABLE))
|
||||
try:
|
||||
settings_module = os.environ[ENVIRONMENT_VARIABLE]
|
||||
if not settings_module: # If it's set but is an empty string.
|
||||
raise KeyError
|
||||
except KeyError:
|
||||
# NOTE: This is arguably an EnvironmentError, but that causes
|
||||
# problems with Python's interactive help.
|
||||
raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE)
|
||||
|
||||
self._wrapped = Settings(settings_module)
|
||||
|
||||
def __repr__(self):
|
||||
# Hardcode the class name as otherwise it yields 'Settings'.
|
||||
if self._wrapped is empty:
|
||||
return '<LazySettings [Unevaluated]>'
|
||||
return '<LazySettings "%(settings_module)s">' % {
|
||||
'settings_module': self._wrapped.SETTINGS_MODULE,
|
||||
}
|
||||
|
||||
def __getattr__(self, name):
|
||||
"""
|
||||
Return the value of a setting and cache it in self.__dict__.
|
||||
"""
|
||||
if self._wrapped is empty:
|
||||
self._setup(name)
|
||||
val = getattr(self._wrapped, name)
|
||||
self.__dict__[name] = val
|
||||
return val
|
||||
|
||||
def __setattr__(self, name, value):
|
||||
"""
|
||||
Set the value of setting. Clear all cached values if _wrapped changes
|
||||
(@override_settings does this) or clear single values when set.
|
||||
"""
|
||||
if name == '_wrapped':
|
||||
self.__dict__.clear()
|
||||
else:
|
||||
self.__dict__.pop(name, None)
|
||||
super(LazySettings, self).__setattr__(name, value)
|
||||
|
||||
def __delattr__(self, name):
|
||||
"""
|
||||
Delete a setting and clear it from cache if needed.
|
||||
"""
|
||||
super(LazySettings, self).__delattr__(name)
|
||||
self.__dict__.pop(name, None)
|
||||
|
||||
def configure(self, default_settings=global_settings, **options):
|
||||
"""
|
||||
Called to manually configure the settings. The 'default_settings'
|
||||
parameter sets where to retrieve any unspecified values from (its
|
||||
argument must support attribute access (__getattr__)).
|
||||
"""
|
||||
if self._wrapped is not empty:
|
||||
raise RuntimeError('Settings already configured.')
|
||||
if self._wrapped != None:
|
||||
raise RuntimeError, 'Settings already configured.'
|
||||
holder = UserSettingsHolder(default_settings)
|
||||
for name, value in options.items():
|
||||
setattr(holder, name, value)
|
||||
self._wrapped = holder
|
||||
|
||||
@property
|
||||
def configured(self):
|
||||
"""
|
||||
Returns True if the settings have already been configured.
|
||||
"""
|
||||
return self._wrapped is not empty
|
||||
|
||||
return bool(self._wrapped)
|
||||
configured = property(configured)
|
||||
|
||||
class Settings(object):
|
||||
def __init__(self, settings_module):
|
||||
# update this dict from global settings (but only for ALL_CAPS settings)
|
||||
for setting in dir(global_settings):
|
||||
if setting.isupper():
|
||||
if setting == setting.upper():
|
||||
setattr(self, setting, getattr(global_settings, setting))
|
||||
|
||||
# store the settings module in case someone later cares
|
||||
self.SETTINGS_MODULE = settings_module
|
||||
|
||||
mod = importlib.import_module(self.SETTINGS_MODULE)
|
||||
try:
|
||||
mod = __import__(self.SETTINGS_MODULE, {}, {}, [''])
|
||||
except ImportError, e:
|
||||
raise ImportError, "Could not import settings '%s' (Is it on sys.path? Does it have syntax errors?): %s" % (self.SETTINGS_MODULE, e)
|
||||
|
||||
# Settings that should be converted into tuples if they're mistakenly entered
|
||||
# as strings.
|
||||
tuple_settings = ("INSTALLED_APPS", "TEMPLATE_DIRS")
|
||||
|
||||
tuple_settings = (
|
||||
"INSTALLED_APPS",
|
||||
"TEMPLATE_DIRS",
|
||||
"LOCALE_PATHS",
|
||||
)
|
||||
self._explicit_settings = set()
|
||||
for setting in dir(mod):
|
||||
if setting.isupper():
|
||||
if setting == setting.upper():
|
||||
setting_value = getattr(mod, setting)
|
||||
|
||||
if (setting in tuple_settings and
|
||||
not isinstance(setting_value, (list, tuple))):
|
||||
raise ImproperlyConfigured("The %s setting must be a list or a tuple. " % setting)
|
||||
if setting in tuple_settings and type(setting_value) == str:
|
||||
setting_value = (setting_value,) # In case the user forgot the comma.
|
||||
setattr(self, setting, setting_value)
|
||||
self._explicit_settings.add(setting)
|
||||
|
||||
if not self.SECRET_KEY:
|
||||
raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.")
|
||||
# Expand entries in INSTALLED_APPS like "django.contrib.*" to a list
|
||||
# of all those apps.
|
||||
new_installed_apps = []
|
||||
for app in self.INSTALLED_APPS:
|
||||
if app.endswith('.*'):
|
||||
appdir = os.path.dirname(__import__(app[:-2], {}, {}, ['']).__file__)
|
||||
app_subdirs = os.listdir(appdir)
|
||||
app_subdirs.sort()
|
||||
name_pattern = re.compile(r'[a-zA-Z]\w*')
|
||||
for d in app_subdirs:
|
||||
if name_pattern.match(d) and os.path.isdir(os.path.join(appdir, d)):
|
||||
new_installed_apps.append('%s.%s' % (app[:-2], d))
|
||||
else:
|
||||
new_installed_apps.append(app)
|
||||
self.INSTALLED_APPS = new_installed_apps
|
||||
|
||||
if hasattr(time, 'tzset') and self.TIME_ZONE:
|
||||
# When we can, attempt to validate the timezone. If we can't find
|
||||
# this file, no check happens and it's harmless.
|
||||
zoneinfo_root = '/usr/share/zoneinfo'
|
||||
if (os.path.exists(zoneinfo_root) and not
|
||||
os.path.exists(os.path.join(zoneinfo_root, *(self.TIME_ZONE.split('/'))))):
|
||||
raise ValueError("Incorrect timezone setting: %s" % self.TIME_ZONE)
|
||||
if hasattr(time, 'tzset'):
|
||||
# Move the time zone info into os.environ. See ticket #2315 for why
|
||||
# we don't do this unconditionally (breaks Windows).
|
||||
os.environ['TZ'] = self.TIME_ZONE
|
||||
time.tzset()
|
||||
|
||||
def is_overridden(self, setting):
|
||||
return setting in self._explicit_settings
|
||||
|
||||
def __repr__(self):
|
||||
return '<%(cls)s "%(settings_module)s">' % {
|
||||
'cls': self.__class__.__name__,
|
||||
'settings_module': self.SETTINGS_MODULE,
|
||||
}
|
||||
|
||||
def get_all_members(self):
|
||||
return dir(self)
|
||||
|
||||
class UserSettingsHolder(object):
|
||||
"""
|
||||
@ -163,39 +122,13 @@ class UserSettingsHolder(object):
|
||||
Requests for configuration variables not in this class are satisfied
|
||||
from the module specified in default_settings (if possible).
|
||||
"""
|
||||
self.__dict__['_deleted'] = set()
|
||||
self.default_settings = default_settings
|
||||
|
||||
def __getattr__(self, name):
|
||||
if name in self._deleted:
|
||||
raise AttributeError
|
||||
return getattr(self.default_settings, name)
|
||||
|
||||
def __setattr__(self, name, value):
|
||||
self._deleted.discard(name)
|
||||
super(UserSettingsHolder, self).__setattr__(name, value)
|
||||
|
||||
def __delattr__(self, name):
|
||||
self._deleted.add(name)
|
||||
if hasattr(self, name):
|
||||
super(UserSettingsHolder, self).__delattr__(name)
|
||||
|
||||
def __dir__(self):
|
||||
return sorted(
|
||||
s for s in list(self.__dict__) + dir(self.default_settings)
|
||||
if s not in self._deleted
|
||||
)
|
||||
|
||||
def is_overridden(self, setting):
|
||||
deleted = (setting in self._deleted)
|
||||
set_locally = (setting in self.__dict__)
|
||||
set_on_default = getattr(self.default_settings, 'is_overridden', lambda s: False)(setting)
|
||||
return (deleted or set_locally or set_on_default)
|
||||
|
||||
def __repr__(self):
|
||||
return '<%(cls)s>' % {
|
||||
'cls': self.__class__.__name__,
|
||||
}
|
||||
|
||||
def get_all_members(self):
|
||||
return dir(self) + dir(self.default_settings)
|
||||
|
||||
settings = LazySettings()
|
||||
|
||||
|
@ -1,3 +0,0 @@
|
||||
{{ unicode_literals }}from django.contrib import admin
|
||||
|
||||
# Register your models here.
|
@ -1,5 +0,0 @@
|
||||
{{ unicode_literals }}from django.apps import AppConfig
|
||||
|
||||
|
||||
class {{ camel_case_app_name }}Config(AppConfig):
|
||||
name = '{{ app_name }}'
|
3
django/conf/app_template/models.py
Normal file
3
django/conf/app_template/models.py
Normal file
@ -0,0 +1,3 @@
|
||||
from django.db import models
|
||||
|
||||
# Create your models here.
|
@ -1,3 +0,0 @@
|
||||
{{ unicode_literals }}from django.db import models
|
||||
|
||||
# Create your models here.
|
@ -1,3 +0,0 @@
|
||||
{{ unicode_literals }}from django.test import TestCase
|
||||
|
||||
# Create your tests here.
|
@ -1,3 +0,0 @@
|
||||
{{ unicode_literals }}from django.shortcuts import render
|
||||
|
||||
# Create your views here.
|
@ -1,126 +1,81 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Default Django settings. Override these with settings in the module pointed to
|
||||
by the DJANGO_SETTINGS_MODULE environment variable.
|
||||
"""
|
||||
from __future__ import unicode_literals
|
||||
|
||||
# Default Django settings. Override these with settings in the module
|
||||
# pointed-to by the DJANGO_SETTINGS_MODULE environment variable.
|
||||
|
||||
# This is defined here as a do-nothing function because we can't import
|
||||
# django.utils.translation -- that module depends on the settings.
|
||||
def gettext_noop(s):
|
||||
return s
|
||||
|
||||
gettext_noop = lambda s: s
|
||||
|
||||
####################
|
||||
# CORE #
|
||||
####################
|
||||
|
||||
DEBUG = False
|
||||
TEMPLATE_DEBUG = False
|
||||
|
||||
# Whether the framework should propagate raw exceptions rather than catching
|
||||
# them. This is useful under some testing situations and should never be used
|
||||
# them. This is useful under some testing siutations and should never be used
|
||||
# on a live site.
|
||||
DEBUG_PROPAGATE_EXCEPTIONS = False
|
||||
|
||||
# Whether to use the "ETag" header. This saves bandwidth but slows down performance.
|
||||
# Deprecated (RemovedInDjango21Warning) in favor of ConditionalGetMiddleware
|
||||
# which sets the ETag regardless of this setting.
|
||||
# Whether to use the "Etag" header. This saves bandwidth but slows down performance.
|
||||
USE_ETAGS = False
|
||||
|
||||
# People who get code error notifications.
|
||||
# In the format [('Full Name', 'email@example.com'), ('Full Name', 'anotheremail@example.com')]
|
||||
ADMINS = []
|
||||
# In the format (('Full Name', 'email@domain.com'), ('Full Name', 'anotheremail@domain.com'))
|
||||
ADMINS = ()
|
||||
|
||||
# List of IP addresses, as strings, that:
|
||||
# Tuple of IP addresses, as strings, that:
|
||||
# * See debug comments, when DEBUG is true
|
||||
# * Receive x-headers
|
||||
INTERNAL_IPS = []
|
||||
|
||||
# Hosts/domain names that are valid for this site.
|
||||
# "*" matches anything, ".example.com" matches example.com and all subdomains
|
||||
ALLOWED_HOSTS = []
|
||||
INTERNAL_IPS = ()
|
||||
|
||||
# Local time zone for this installation. All choices can be found here:
|
||||
# https://en.wikipedia.org/wiki/List_of_tz_zones_by_name (although not all
|
||||
# systems may support all possibilities). When USE_TZ is True, this is
|
||||
# interpreted as the default user time zone.
|
||||
# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name (although not all
|
||||
# systems may support all possibilities).
|
||||
TIME_ZONE = 'America/Chicago'
|
||||
|
||||
# If you set this to True, Django will use timezone-aware datetimes.
|
||||
USE_TZ = False
|
||||
|
||||
# Language code for this installation. All choices can be found here:
|
||||
# http://www.i18nguy.com/unicode/language-identifiers.html
|
||||
LANGUAGE_CODE = 'en-us'
|
||||
|
||||
# Languages we provide translations for, out of the box.
|
||||
LANGUAGES = [
|
||||
('af', gettext_noop('Afrikaans')),
|
||||
# Languages we provide translations for, out of the box. The language name
|
||||
# should be the utf-8 encoded local name for the language.
|
||||
LANGUAGES = (
|
||||
('ar', gettext_noop('Arabic')),
|
||||
('ast', gettext_noop('Asturian')),
|
||||
('az', gettext_noop('Azerbaijani')),
|
||||
('bg', gettext_noop('Bulgarian')),
|
||||
('be', gettext_noop('Belarusian')),
|
||||
('bn', gettext_noop('Bengali')),
|
||||
('br', gettext_noop('Breton')),
|
||||
('bs', gettext_noop('Bosnian')),
|
||||
('bg', gettext_noop('Bulgarian')),
|
||||
('ca', gettext_noop('Catalan')),
|
||||
('cs', gettext_noop('Czech')),
|
||||
('cy', gettext_noop('Welsh')),
|
||||
('da', gettext_noop('Danish')),
|
||||
('de', gettext_noop('German')),
|
||||
('dsb', gettext_noop('Lower Sorbian')),
|
||||
('el', gettext_noop('Greek')),
|
||||
('en', gettext_noop('English')),
|
||||
('en-au', gettext_noop('Australian English')),
|
||||
('en-gb', gettext_noop('British English')),
|
||||
('eo', gettext_noop('Esperanto')),
|
||||
('es', gettext_noop('Spanish')),
|
||||
('es-ar', gettext_noop('Argentinian Spanish')),
|
||||
('es-co', gettext_noop('Colombian Spanish')),
|
||||
('es-mx', gettext_noop('Mexican Spanish')),
|
||||
('es-ni', gettext_noop('Nicaraguan Spanish')),
|
||||
('es-ve', gettext_noop('Venezuelan Spanish')),
|
||||
('et', gettext_noop('Estonian')),
|
||||
('es-ar', gettext_noop('Argentinean Spanish')),
|
||||
('eu', gettext_noop('Basque')),
|
||||
('fa', gettext_noop('Persian')),
|
||||
('fi', gettext_noop('Finnish')),
|
||||
('fr', gettext_noop('French')),
|
||||
('fy', gettext_noop('Frisian')),
|
||||
('ga', gettext_noop('Irish')),
|
||||
('gd', gettext_noop('Scottish Gaelic')),
|
||||
('gl', gettext_noop('Galician')),
|
||||
('hu', gettext_noop('Hungarian')),
|
||||
('he', gettext_noop('Hebrew')),
|
||||
('hi', gettext_noop('Hindi')),
|
||||
('hr', gettext_noop('Croatian')),
|
||||
('hsb', gettext_noop('Upper Sorbian')),
|
||||
('hu', gettext_noop('Hungarian')),
|
||||
('ia', gettext_noop('Interlingua')),
|
||||
('id', gettext_noop('Indonesian')),
|
||||
('io', gettext_noop('Ido')),
|
||||
('is', gettext_noop('Icelandic')),
|
||||
('it', gettext_noop('Italian')),
|
||||
('ja', gettext_noop('Japanese')),
|
||||
('ka', gettext_noop('Georgian')),
|
||||
('kk', gettext_noop('Kazakh')),
|
||||
('ko', gettext_noop('Korean')),
|
||||
('km', gettext_noop('Khmer')),
|
||||
('kn', gettext_noop('Kannada')),
|
||||
('ko', gettext_noop('Korean')),
|
||||
('lb', gettext_noop('Luxembourgish')),
|
||||
('lt', gettext_noop('Lithuanian')),
|
||||
('lv', gettext_noop('Latvian')),
|
||||
('lt', gettext_noop('Lithuanian')),
|
||||
('mk', gettext_noop('Macedonian')),
|
||||
('ml', gettext_noop('Malayalam')),
|
||||
('mn', gettext_noop('Mongolian')),
|
||||
('mr', gettext_noop('Marathi')),
|
||||
('my', gettext_noop('Burmese')),
|
||||
('nb', gettext_noop('Norwegian Bokmål')),
|
||||
('ne', gettext_noop('Nepali')),
|
||||
('nl', gettext_noop('Dutch')),
|
||||
('nn', gettext_noop('Norwegian Nynorsk')),
|
||||
('os', gettext_noop('Ossetic')),
|
||||
('pa', gettext_noop('Punjabi')),
|
||||
('no', gettext_noop('Norwegian')),
|
||||
('pl', gettext_noop('Polish')),
|
||||
('pt', gettext_noop('Portuguese')),
|
||||
('pt-br', gettext_noop('Brazilian Portuguese')),
|
||||
@ -128,45 +83,28 @@ LANGUAGES = [
|
||||
('ru', gettext_noop('Russian')),
|
||||
('sk', gettext_noop('Slovak')),
|
||||
('sl', gettext_noop('Slovenian')),
|
||||
('sq', gettext_noop('Albanian')),
|
||||
('sr', gettext_noop('Serbian')),
|
||||
('sr-latn', gettext_noop('Serbian Latin')),
|
||||
('sv', gettext_noop('Swedish')),
|
||||
('sw', gettext_noop('Swahili')),
|
||||
('ta', gettext_noop('Tamil')),
|
||||
('te', gettext_noop('Telugu')),
|
||||
('th', gettext_noop('Thai')),
|
||||
('tr', gettext_noop('Turkish')),
|
||||
('tt', gettext_noop('Tatar')),
|
||||
('udm', gettext_noop('Udmurt')),
|
||||
('uk', gettext_noop('Ukrainian')),
|
||||
('ur', gettext_noop('Urdu')),
|
||||
('vi', gettext_noop('Vietnamese')),
|
||||
('zh-hans', gettext_noop('Simplified Chinese')),
|
||||
('zh-hant', gettext_noop('Traditional Chinese')),
|
||||
]
|
||||
('zh-cn', gettext_noop('Simplified Chinese')),
|
||||
('zh-tw', gettext_noop('Traditional Chinese')),
|
||||
)
|
||||
|
||||
# Languages using BiDi (right-to-left) layout
|
||||
LANGUAGES_BIDI = ["he", "ar", "fa", "ur"]
|
||||
LANGUAGES_BIDI = ("he", "ar", "fa")
|
||||
|
||||
# If you set this to False, Django will make some optimizations so as not
|
||||
# to load the internationalization machinery.
|
||||
USE_I18N = True
|
||||
LOCALE_PATHS = []
|
||||
|
||||
# Settings for language cookie
|
||||
LOCALE_PATHS = ()
|
||||
LANGUAGE_COOKIE_NAME = 'django_language'
|
||||
LANGUAGE_COOKIE_AGE = None
|
||||
LANGUAGE_COOKIE_DOMAIN = None
|
||||
LANGUAGE_COOKIE_PATH = '/'
|
||||
|
||||
|
||||
# If you set this to True, Django will format dates, numbers and calendars
|
||||
# according to user current locale.
|
||||
USE_L10N = False
|
||||
|
||||
# Not-necessarily-technical managers of the site. They get broken link
|
||||
# notifications and other various emails.
|
||||
# notifications and other various e-mails.
|
||||
MANAGERS = ADMINS
|
||||
|
||||
# Default content type and charset to use for all HttpResponse objects, if a
|
||||
@ -178,48 +116,67 @@ DEFAULT_CHARSET = 'utf-8'
|
||||
# Encoding of files read from disk (template and initial SQL files).
|
||||
FILE_CHARSET = 'utf-8'
|
||||
|
||||
# Email address that error messages come from.
|
||||
# E-mail address that error messages come from.
|
||||
SERVER_EMAIL = 'root@localhost'
|
||||
|
||||
# Database connection info. If left empty, will default to the dummy backend.
|
||||
DATABASES = {}
|
||||
# Whether to send broken-link e-mails.
|
||||
SEND_BROKEN_LINK_EMAILS = False
|
||||
|
||||
# Classes used to implement DB routing behavior.
|
||||
DATABASE_ROUTERS = []
|
||||
# Database connection info.
|
||||
DATABASE_ENGINE = '' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
|
||||
DATABASE_NAME = '' # Or path to database file if using sqlite3.
|
||||
DATABASE_USER = '' # Not used with sqlite3.
|
||||
DATABASE_PASSWORD = '' # Not used with sqlite3.
|
||||
DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3.
|
||||
DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3.
|
||||
DATABASE_OPTIONS = {} # Set to empty dictionary for default.
|
||||
|
||||
# The email backend to use. For possible shortcuts see django.core.mail.
|
||||
# The default is to use the SMTP backend.
|
||||
# Third-party backends can be specified by providing a Python path
|
||||
# to a module that defines an EmailBackend class.
|
||||
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
|
||||
|
||||
# Host for sending email.
|
||||
# Host for sending e-mail.
|
||||
EMAIL_HOST = 'localhost'
|
||||
|
||||
# Port for sending email.
|
||||
# Port for sending e-mail.
|
||||
EMAIL_PORT = 25
|
||||
|
||||
# Whether to send SMTP 'Date' header in the local time zone or in UTC.
|
||||
EMAIL_USE_LOCALTIME = False
|
||||
|
||||
# Optional SMTP authentication information for EMAIL_HOST.
|
||||
EMAIL_HOST_USER = ''
|
||||
EMAIL_HOST_PASSWORD = ''
|
||||
EMAIL_USE_TLS = False
|
||||
EMAIL_USE_SSL = False
|
||||
EMAIL_SSL_CERTFILE = None
|
||||
EMAIL_SSL_KEYFILE = None
|
||||
EMAIL_TIMEOUT = None
|
||||
|
||||
# List of strings representing installed apps.
|
||||
INSTALLED_APPS = []
|
||||
INSTALLED_APPS = ()
|
||||
|
||||
TEMPLATES = []
|
||||
# List of locations of the template source files, in search order.
|
||||
TEMPLATE_DIRS = ()
|
||||
|
||||
# Default form rendering class.
|
||||
FORM_RENDERER = 'django.forms.renderers.DjangoTemplates'
|
||||
# List of callables that know how to import templates from various sources.
|
||||
# See the comments in django/core/template/loader.py for interface
|
||||
# documentation.
|
||||
TEMPLATE_LOADERS = (
|
||||
'django.template.loaders.filesystem.load_template_source',
|
||||
'django.template.loaders.app_directories.load_template_source',
|
||||
# 'django.template.loaders.eggs.load_template_source',
|
||||
)
|
||||
|
||||
# Default email address to use for various automated correspondence from
|
||||
# List of processors used by RequestContext to populate the context.
|
||||
# Each one should be a callable that takes the request object as its
|
||||
# only parameter and returns a dictionary to add to the context.
|
||||
TEMPLATE_CONTEXT_PROCESSORS = (
|
||||
'django.core.context_processors.auth',
|
||||
'django.core.context_processors.debug',
|
||||
'django.core.context_processors.i18n',
|
||||
'django.core.context_processors.media',
|
||||
# 'django.core.context_processors.request',
|
||||
)
|
||||
|
||||
# Output to use in template system for invalid (e.g. misspelled) variables.
|
||||
TEMPLATE_STRING_IF_INVALID = ''
|
||||
|
||||
# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a
|
||||
# trailing slash.
|
||||
# Examples: "http://foo.com/media/", "/media/".
|
||||
ADMIN_MEDIA_PREFIX = '/media/'
|
||||
|
||||
# Default e-mail address to use for various automated correspondence from
|
||||
# the site managers.
|
||||
DEFAULT_FROM_EMAIL = 'webmaster@localhost'
|
||||
|
||||
@ -240,73 +197,57 @@ FORCE_SCRIPT_NAME = None
|
||||
# that are not allowed to visit any page, systemwide. Use this for bad
|
||||
# robots/crawlers. Here are a few examples:
|
||||
# import re
|
||||
# DISALLOWED_USER_AGENTS = [
|
||||
# DISALLOWED_USER_AGENTS = (
|
||||
# re.compile(r'^NaverBot.*'),
|
||||
# re.compile(r'^EmailSiphon.*'),
|
||||
# re.compile(r'^SiteSucker.*'),
|
||||
# re.compile(r'^sohu-search'),
|
||||
# ]
|
||||
DISALLOWED_USER_AGENTS = []
|
||||
# re.compile(r'^sohu-search')
|
||||
# )
|
||||
DISALLOWED_USER_AGENTS = ()
|
||||
|
||||
ABSOLUTE_URL_OVERRIDES = {}
|
||||
|
||||
# List of compiled regular expression objects representing URLs that need not
|
||||
# be reported by BrokenLinkEmailsMiddleware. Here are a few examples:
|
||||
# import re
|
||||
# IGNORABLE_404_URLS = [
|
||||
# re.compile(r'^/apple-touch-icon.*\.png$'),
|
||||
# re.compile(r'^/favicon.ico$'),
|
||||
# re.compile(r'^/robots.txt$'),
|
||||
# re.compile(r'^/phpmyadmin/'),
|
||||
# re.compile(r'\.(cgi|php|pl)$'),
|
||||
# ]
|
||||
IGNORABLE_404_URLS = []
|
||||
# Tuple of strings representing allowed prefixes for the {% ssi %} tag.
|
||||
# Example: ('/home/html', '/var/www')
|
||||
ALLOWED_INCLUDE_ROOTS = ()
|
||||
|
||||
# If this is a admin settings module, this should be a list of
|
||||
# settings modules (in the format 'foo.bar.baz') for which this admin
|
||||
# is an admin.
|
||||
ADMIN_FOR = ()
|
||||
|
||||
# 404s that may be ignored.
|
||||
IGNORABLE_404_STARTS = ('/cgi-bin/', '/_vti_bin', '/_vti_inf')
|
||||
IGNORABLE_404_ENDS = ('mail.pl', 'mailform.pl', 'mail.cgi', 'mailform.cgi', 'favicon.ico', '.php')
|
||||
|
||||
# A secret key for this particular Django installation. Used in secret-key
|
||||
# hashing algorithms. Set this in your settings, or Django will complain
|
||||
# loudly.
|
||||
SECRET_KEY = ''
|
||||
|
||||
# Path to the "jing" executable -- needed to validate XMLFields
|
||||
JING_PATH = "/usr/bin/jing"
|
||||
|
||||
# Default file storage mechanism that holds media.
|
||||
DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
|
||||
|
||||
# Absolute filesystem path to the directory that will hold user-uploaded files.
|
||||
# Example: "/var/www/example.com/media/"
|
||||
# Absolute path to the directory that holds media.
|
||||
# Example: "/home/media/media.lawrence.com/"
|
||||
MEDIA_ROOT = ''
|
||||
|
||||
# URL that handles the media served from MEDIA_ROOT.
|
||||
# Examples: "http://example.com/media/", "http://media.example.com/"
|
||||
# Example: "http://media.lawrence.com"
|
||||
MEDIA_URL = ''
|
||||
|
||||
# Absolute path to the directory static files should be collected to.
|
||||
# Example: "/var/www/example.com/static/"
|
||||
STATIC_ROOT = None
|
||||
|
||||
# URL that handles the static files served from STATIC_ROOT.
|
||||
# Example: "http://example.com/static/", "http://static.example.com/"
|
||||
STATIC_URL = None
|
||||
|
||||
# List of upload handler classes to be applied in order.
|
||||
FILE_UPLOAD_HANDLERS = [
|
||||
FILE_UPLOAD_HANDLERS = (
|
||||
'django.core.files.uploadhandler.MemoryFileUploadHandler',
|
||||
'django.core.files.uploadhandler.TemporaryFileUploadHandler',
|
||||
]
|
||||
)
|
||||
|
||||
# Maximum size, in bytes, of a request before it will be streamed to the
|
||||
# file system instead of into memory.
|
||||
FILE_UPLOAD_MAX_MEMORY_SIZE = 2621440 # i.e. 2.5 MB
|
||||
|
||||
# Maximum size in bytes of request data (excluding file uploads) that will be
|
||||
# read before a SuspiciousOperation (RequestDataTooBig) is raised.
|
||||
DATA_UPLOAD_MAX_MEMORY_SIZE = 2621440 # i.e. 2.5 MB
|
||||
|
||||
# Maximum number of GET/POST parameters that will be read before a
|
||||
# SuspiciousOperation (TooManyFieldsSent) is raised.
|
||||
DATA_UPLOAD_MAX_NUMBER_FIELDS = 1000
|
||||
|
||||
# Maximum number of files encoded in a multipart upload that will be read
|
||||
# before a SuspiciousOperation (TooManyFilesSent) is raised.
|
||||
DATA_UPLOAD_MAX_NUMBER_FILES = 100
|
||||
FILE_UPLOAD_MAX_MEMORY_SIZE = 2621440 # i.e. 2.5 MB
|
||||
|
||||
# Directory in which upload streamed files will be temporarily saved. A value of
|
||||
# `None` will make Django use the operating system's default temporary directory
|
||||
@ -314,334 +255,149 @@ DATA_UPLOAD_MAX_NUMBER_FILES = 100
|
||||
FILE_UPLOAD_TEMP_DIR = None
|
||||
|
||||
# The numeric mode to set newly-uploaded files to. The value should be a mode
|
||||
# you'd pass directly to os.chmod; see https://docs.python.org/3/library/os.html#files-and-directories.
|
||||
# you'd pass directly to os.chmod; see http://docs.python.org/lib/os-file-dir.html.
|
||||
FILE_UPLOAD_PERMISSIONS = None
|
||||
|
||||
# The numeric mode to assign to newly-created directories, when uploading files.
|
||||
# The value should be a mode as you'd pass to os.chmod;
|
||||
# see https://docs.python.org/3/library/os.html#files-and-directories.
|
||||
FILE_UPLOAD_DIRECTORY_PERMISSIONS = None
|
||||
|
||||
# Python module path where user will place custom format definition.
|
||||
# The directory where this setting is pointing should contain subdirectories
|
||||
# named as the locales, containing a formats.py file
|
||||
# (i.e. "myproject.locale" for myproject/locale/en/formats.py etc. use)
|
||||
FORMAT_MODULE_PATH = None
|
||||
|
||||
# Default formatting for date objects. See all available format strings here:
|
||||
# http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
# http://docs.djangoproject.com/en/dev/ref/templates/builtins/#now
|
||||
DATE_FORMAT = 'N j, Y'
|
||||
|
||||
# Default formatting for datetime objects. See all available format strings here:
|
||||
# http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
# http://docs.djangoproject.com/en/dev/ref/templates/builtins/#now
|
||||
DATETIME_FORMAT = 'N j, Y, P'
|
||||
|
||||
# Default formatting for time objects. See all available format strings here:
|
||||
# http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
# http://docs.djangoproject.com/en/dev/ref/templates/builtins/#now
|
||||
TIME_FORMAT = 'P'
|
||||
|
||||
# Default formatting for date objects when only the year and month are relevant.
|
||||
# See all available format strings here:
|
||||
# http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
# http://docs.djangoproject.com/en/dev/ref/templates/builtins/#now
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
|
||||
# Default formatting for date objects when only the month and day are relevant.
|
||||
# See all available format strings here:
|
||||
# http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
# http://docs.djangoproject.com/en/dev/ref/templates/builtins/#now
|
||||
MONTH_DAY_FORMAT = 'F j'
|
||||
|
||||
# Default short formatting for date objects. See all available format strings here:
|
||||
# http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
SHORT_DATE_FORMAT = 'm/d/Y'
|
||||
# Do you want to manage transactions manually?
|
||||
# Hint: you really don't!
|
||||
TRANSACTIONS_MANAGED = False
|
||||
|
||||
# Default short formatting for datetime objects.
|
||||
# See all available format strings here:
|
||||
# http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
SHORT_DATETIME_FORMAT = 'm/d/Y P'
|
||||
|
||||
# Default formats to be used when parsing dates from input boxes, in order
|
||||
# See all available format string here:
|
||||
# http://docs.python.org/library/datetime.html#strftime-behavior
|
||||
# * Note that these format strings are different from the ones to display dates
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', # '2006-10-25', '10/25/2006', '10/25/06'
|
||||
'%b %d %Y', '%b %d, %Y', # 'Oct 25 2006', 'Oct 25, 2006'
|
||||
'%d %b %Y', '%d %b, %Y', # '25 Oct 2006', '25 Oct, 2006'
|
||||
'%B %d %Y', '%B %d, %Y', # 'October 25 2006', 'October 25, 2006'
|
||||
'%d %B %Y', '%d %B, %Y', # '25 October 2006', '25 October, 2006'
|
||||
]
|
||||
|
||||
# Default formats to be used when parsing times from input boxes, in order
|
||||
# See all available format string here:
|
||||
# http://docs.python.org/library/datetime.html#strftime-behavior
|
||||
# * Note that these format strings are different from the ones to display dates
|
||||
TIME_INPUT_FORMATS = [
|
||||
'%H:%M:%S', # '14:30:59'
|
||||
'%H:%M:%S.%f', # '14:30:59.000200'
|
||||
'%H:%M', # '14:30'
|
||||
]
|
||||
|
||||
# Default formats to be used when parsing dates and times from input boxes,
|
||||
# in order
|
||||
# See all available format string here:
|
||||
# http://docs.python.org/library/datetime.html#strftime-behavior
|
||||
# * Note that these format strings are different from the ones to display dates
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59'
|
||||
'%Y-%m-%d %H:%M:%S.%f', # '2006-10-25 14:30:59.000200'
|
||||
'%Y-%m-%d %H:%M', # '2006-10-25 14:30'
|
||||
'%Y-%m-%d', # '2006-10-25'
|
||||
'%m/%d/%Y %H:%M:%S', # '10/25/2006 14:30:59'
|
||||
'%m/%d/%Y %H:%M:%S.%f', # '10/25/2006 14:30:59.000200'
|
||||
'%m/%d/%Y %H:%M', # '10/25/2006 14:30'
|
||||
'%m/%d/%Y', # '10/25/2006'
|
||||
'%m/%d/%y %H:%M:%S', # '10/25/06 14:30:59'
|
||||
'%m/%d/%y %H:%M:%S.%f', # '10/25/06 14:30:59.000200'
|
||||
'%m/%d/%y %H:%M', # '10/25/06 14:30'
|
||||
'%m/%d/%y', # '10/25/06'
|
||||
]
|
||||
|
||||
# First day of week, to be used on calendars
|
||||
# 0 means Sunday, 1 means Monday...
|
||||
FIRST_DAY_OF_WEEK = 0
|
||||
|
||||
# Decimal separator symbol
|
||||
DECIMAL_SEPARATOR = '.'
|
||||
|
||||
# Boolean that sets whether to add thousand separator when formatting numbers
|
||||
USE_THOUSAND_SEPARATOR = False
|
||||
|
||||
# Number of digits that will be together, when splitting them by
|
||||
# THOUSAND_SEPARATOR. 0 means no grouping, 3 means splitting by thousands...
|
||||
NUMBER_GROUPING = 0
|
||||
|
||||
# Thousand separator symbol
|
||||
THOUSAND_SEPARATOR = ','
|
||||
# The User-Agent string to use when checking for URL validity through the
|
||||
# isExistingURL validator.
|
||||
from django import get_version
|
||||
URL_VALIDATOR_USER_AGENT = "Django/%s (http://www.djangoproject.com)" % get_version()
|
||||
|
||||
# The tablespaces to use for each model when not specified otherwise.
|
||||
DEFAULT_TABLESPACE = ''
|
||||
DEFAULT_INDEX_TABLESPACE = ''
|
||||
|
||||
# Default X-Frame-Options header value
|
||||
X_FRAME_OPTIONS = 'SAMEORIGIN'
|
||||
|
||||
USE_X_FORWARDED_HOST = False
|
||||
USE_X_FORWARDED_PORT = False
|
||||
|
||||
# The Python dotted path to the WSGI application that Django's internal server
|
||||
# (runserver) will use. If `None`, the return value of
|
||||
# 'django.core.wsgi.get_wsgi_application' is used, thus preserving the same
|
||||
# behavior as previous versions of Django. Otherwise this should point to an
|
||||
# actual WSGI application object.
|
||||
WSGI_APPLICATION = None
|
||||
|
||||
# If your Django app is behind a proxy that sets a header to specify secure
|
||||
# connections, AND that proxy ensures that user-submitted headers with the
|
||||
# same name are ignored (so that people can't spoof it), set this value to
|
||||
# a tuple of (header_name, header_value). For any requests that come in with
|
||||
# that header/value, request.is_secure() will return True.
|
||||
# WARNING! Only set this if you fully understand what you're doing. Otherwise,
|
||||
# you may be opening yourself up to a security risk.
|
||||
SECURE_PROXY_SSL_HEADER = None
|
||||
|
||||
##############
|
||||
# MIDDLEWARE #
|
||||
##############
|
||||
|
||||
# List of middleware to use. Order is important; in the request phase, these
|
||||
# middleware will be applied in the order given, and in the response
|
||||
# phase the middleware will be applied in reverse order.
|
||||
MIDDLEWARE_CLASSES = [
|
||||
# List of middleware classes to use. Order is important; in the request phase,
|
||||
# this middleware classes will be applied in the order given, and in the
|
||||
# response phase the middleware will be applied in reverse order.
|
||||
MIDDLEWARE_CLASSES = (
|
||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||
# 'django.middleware.http.ConditionalGetMiddleware',
|
||||
# 'django.middleware.gzip.GZipMiddleware',
|
||||
'django.middleware.common.CommonMiddleware',
|
||||
'django.middleware.csrf.CsrfViewMiddleware',
|
||||
]
|
||||
|
||||
MIDDLEWARE = None
|
||||
)
|
||||
|
||||
############
|
||||
# SESSIONS #
|
||||
############
|
||||
|
||||
# Cache to store session data if using the cache session backend.
|
||||
SESSION_CACHE_ALIAS = 'default'
|
||||
# Cookie name. This can be whatever you want.
|
||||
SESSION_COOKIE_NAME = 'sessionid'
|
||||
# Age of cookie, in seconds (default: 2 weeks).
|
||||
SESSION_COOKIE_AGE = 60 * 60 * 24 * 7 * 2
|
||||
# A string like ".example.com", or None for standard domain cookie.
|
||||
SESSION_COOKIE_DOMAIN = None
|
||||
# Whether the session cookie should be secure (https:// only).
|
||||
SESSION_COOKIE_SECURE = False
|
||||
# The path of the session cookie.
|
||||
SESSION_COOKIE_PATH = '/'
|
||||
# Whether to use the non-RFC standard httpOnly flag (IE, FF3+, others)
|
||||
SESSION_COOKIE_HTTPONLY = True
|
||||
# Whether to save the session data on every request.
|
||||
SESSION_SAVE_EVERY_REQUEST = False
|
||||
# Whether a user's session cookie expires when the Web browser is closed.
|
||||
SESSION_EXPIRE_AT_BROWSER_CLOSE = False
|
||||
# The module to store session data
|
||||
SESSION_ENGINE = 'django.contrib.sessions.backends.db'
|
||||
# Directory to store session files if using the file session module. If None,
|
||||
# the backend will use a sensible default.
|
||||
SESSION_FILE_PATH = None
|
||||
# class to serialize session data
|
||||
SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSONSerializer'
|
||||
SESSION_COOKIE_NAME = 'sessionid' # Cookie name. This can be whatever you want.
|
||||
SESSION_COOKIE_AGE = 60 * 60 * 24 * 7 * 2 # Age of cookie, in seconds (default: 2 weeks).
|
||||
SESSION_COOKIE_DOMAIN = None # A string like ".lawrence.com", or None for standard domain cookie.
|
||||
SESSION_COOKIE_SECURE = False # Whether the session cookie should be secure (https:// only).
|
||||
SESSION_COOKIE_PATH = '/' # The path of the session cookie.
|
||||
SESSION_SAVE_EVERY_REQUEST = False # Whether to save the session data on every request.
|
||||
SESSION_EXPIRE_AT_BROWSER_CLOSE = False # Whether a user's session cookie expires when the Web browser is closed.
|
||||
SESSION_ENGINE = 'django.contrib.sessions.backends.db' # The module to store session data
|
||||
SESSION_FILE_PATH = None # Directory to store session files if using the file session module. If None, the backend will use a sensible default.
|
||||
|
||||
#########
|
||||
# CACHE #
|
||||
#########
|
||||
|
||||
# The cache backends to use.
|
||||
CACHES = {
|
||||
'default': {
|
||||
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
|
||||
}
|
||||
}
|
||||
# The cache backend to use. See the docstring in django.core.cache for the
|
||||
# possible values.
|
||||
CACHE_BACKEND = 'locmem://'
|
||||
CACHE_MIDDLEWARE_KEY_PREFIX = ''
|
||||
CACHE_MIDDLEWARE_SECONDS = 600
|
||||
CACHE_MIDDLEWARE_ALIAS = 'default'
|
||||
|
||||
####################
|
||||
# COMMENTS #
|
||||
####################
|
||||
|
||||
COMMENTS_ALLOW_PROFANITIES = False
|
||||
|
||||
# The profanities that will trigger a validation error in the
|
||||
# 'hasNoProfanities' validator. All of these should be in lowercase.
|
||||
PROFANITIES_LIST = ('asshat', 'asshead', 'asshole', 'cunt', 'fuck', 'gook', 'nigger', 'shit')
|
||||
|
||||
# The group ID that designates which users are banned.
|
||||
# Set to None if you're not using it.
|
||||
COMMENTS_BANNED_USERS_GROUP = None
|
||||
|
||||
# The group ID that designates which users can moderate comments.
|
||||
# Set to None if you're not using it.
|
||||
COMMENTS_MODERATORS_GROUP = None
|
||||
|
||||
# The group ID that designates the users whose comments should be e-mailed to MANAGERS.
|
||||
# Set to None if you're not using it.
|
||||
COMMENTS_SKETCHY_USERS_GROUP = None
|
||||
|
||||
# The system will e-mail MANAGERS the first COMMENTS_FIRST_FEW comments by each
|
||||
# user. Set this to 0 if you want to disable it.
|
||||
COMMENTS_FIRST_FEW = 0
|
||||
|
||||
# A tuple of IP addresses that have been banned from participating in various
|
||||
# Django-powered features.
|
||||
BANNED_IPS = ()
|
||||
|
||||
##################
|
||||
# AUTHENTICATION #
|
||||
##################
|
||||
|
||||
AUTH_USER_MODEL = 'auth.User'
|
||||
|
||||
AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.ModelBackend']
|
||||
AUTHENTICATION_BACKENDS = ('django.contrib.auth.backends.ModelBackend',)
|
||||
|
||||
LOGIN_URL = '/accounts/login/'
|
||||
|
||||
LOGIN_REDIRECT_URL = '/accounts/profile/'
|
||||
LOGOUT_URL = '/accounts/logout/'
|
||||
|
||||
LOGOUT_REDIRECT_URL = None
|
||||
LOGIN_REDIRECT_URL = '/accounts/profile/'
|
||||
|
||||
# The number of days a password reset link is valid for
|
||||
PASSWORD_RESET_TIMEOUT_DAYS = 3
|
||||
|
||||
# the first hasher in this list is the preferred algorithm. any
|
||||
# password using different algorithms will be converted automatically
|
||||
# upon login
|
||||
PASSWORD_HASHERS = [
|
||||
'django.contrib.auth.hashers.PBKDF2PasswordHasher',
|
||||
'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher',
|
||||
'django.contrib.auth.hashers.Argon2PasswordHasher',
|
||||
'django.contrib.auth.hashers.BCryptSHA256PasswordHasher',
|
||||
'django.contrib.auth.hashers.BCryptPasswordHasher',
|
||||
]
|
||||
|
||||
AUTH_PASSWORD_VALIDATORS = []
|
||||
|
||||
###########
|
||||
# SIGNING #
|
||||
###########
|
||||
|
||||
SIGNING_BACKEND = 'django.core.signing.TimestampSigner'
|
||||
|
||||
########
|
||||
# CSRF #
|
||||
########
|
||||
|
||||
# Dotted path to callable to be used as view when a request is
|
||||
# rejected by the CSRF middleware.
|
||||
CSRF_FAILURE_VIEW = 'django.views.csrf.csrf_failure'
|
||||
|
||||
# Settings for CSRF cookie.
|
||||
CSRF_COOKIE_NAME = 'csrftoken'
|
||||
CSRF_COOKIE_AGE = 60 * 60 * 24 * 7 * 52
|
||||
CSRF_COOKIE_DOMAIN = None
|
||||
CSRF_COOKIE_PATH = '/'
|
||||
CSRF_COOKIE_SECURE = False
|
||||
CSRF_COOKIE_HTTPONLY = False
|
||||
CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN'
|
||||
CSRF_TRUSTED_ORIGINS = []
|
||||
CSRF_USE_SESSIONS = False
|
||||
|
||||
############
|
||||
# MESSAGES #
|
||||
############
|
||||
|
||||
# Class to use as messages backend
|
||||
MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage'
|
||||
|
||||
# Default values of MESSAGE_LEVEL and MESSAGE_TAGS are defined within
|
||||
# django.contrib.messages to avoid imports in this settings file.
|
||||
|
||||
###########
|
||||
# LOGGING #
|
||||
###########
|
||||
|
||||
# The callable to use to configure logging
|
||||
LOGGING_CONFIG = 'logging.config.dictConfig'
|
||||
|
||||
# Custom logging configuration.
|
||||
LOGGING = {}
|
||||
|
||||
# Default exception reporter filter class used in case none has been
|
||||
# specifically assigned to the HttpRequest instance.
|
||||
DEFAULT_EXCEPTION_REPORTER_FILTER = 'django.views.debug.SafeExceptionReporterFilter'
|
||||
|
||||
###########
|
||||
# TESTING #
|
||||
###########
|
||||
|
||||
# The name of the class to use to run the test suite
|
||||
TEST_RUNNER = 'django.test.runner.DiscoverRunner'
|
||||
# The name of the method to use to invoke the test suite
|
||||
TEST_RUNNER = 'django.test.simple.run_tests'
|
||||
|
||||
# Apps that don't need to be serialized at test database creation time
|
||||
# (only apps with migrations are to start with)
|
||||
TEST_NON_SERIALIZED_APPS = []
|
||||
# The name of the database to use for testing purposes.
|
||||
# If None, a name of 'test_' + DATABASE_NAME will be assumed
|
||||
TEST_DATABASE_NAME = None
|
||||
|
||||
# Strings used to set the character set and collation order for the test
|
||||
# database. These values are passed literally to the server, so they are
|
||||
# backend-dependent. If None, no special settings are sent (system defaults are
|
||||
# used).
|
||||
TEST_DATABASE_CHARSET = None
|
||||
TEST_DATABASE_COLLATION = None
|
||||
|
||||
############
|
||||
# FIXTURES #
|
||||
############
|
||||
|
||||
# The list of directories to search for fixtures
|
||||
FIXTURE_DIRS = []
|
||||
|
||||
###############
|
||||
# STATICFILES #
|
||||
###############
|
||||
|
||||
# A list of locations of additional static files
|
||||
STATICFILES_DIRS = []
|
||||
|
||||
# The default file storage backend used during the build process
|
||||
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'
|
||||
|
||||
# List of finder classes that know how to find static files in
|
||||
# various locations.
|
||||
STATICFILES_FINDERS = [
|
||||
'django.contrib.staticfiles.finders.FileSystemFinder',
|
||||
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
|
||||
# 'django.contrib.staticfiles.finders.DefaultStorageFinder',
|
||||
]
|
||||
|
||||
##############
|
||||
# MIGRATIONS #
|
||||
##############
|
||||
|
||||
# Migration module overrides for apps, by app label.
|
||||
MIGRATION_MODULES = {}
|
||||
|
||||
#################
|
||||
# SYSTEM CHECKS #
|
||||
#################
|
||||
|
||||
# List of all issues generated by system checks that should be silenced. Light
|
||||
# issues like warnings, infos or debugs will not generate a message. Silencing
|
||||
# serious issues like errors and criticals does not result in hiding the
|
||||
# message, but Django will not stop you from e.g. running server.
|
||||
SILENCED_SYSTEM_CHECKS = []
|
||||
|
||||
#######################
|
||||
# SECURITY MIDDLEWARE #
|
||||
#######################
|
||||
SECURE_BROWSER_XSS_FILTER = False
|
||||
SECURE_CONTENT_TYPE_NOSNIFF = False
|
||||
SECURE_HSTS_INCLUDE_SUBDOMAINS = False
|
||||
SECURE_HSTS_PRELOAD = False
|
||||
SECURE_HSTS_SECONDS = 0
|
||||
SECURE_REDIRECT_EXEMPT = []
|
||||
SECURE_SSL_HOST = None
|
||||
SECURE_SSL_REDIRECT = False
|
||||
FIXTURE_DIRS = ()
|
||||
|
@ -1,566 +0,0 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
"""
|
||||
LANG_INFO is a dictionary structure to provide meta information about languages.
|
||||
|
||||
About name_local: capitalize it as if your language name was appearing
|
||||
inside a sentence in your language.
|
||||
The 'fallback' key can be used to specify a special fallback logic which doesn't
|
||||
follow the traditional 'fr-ca' -> 'fr' fallback logic.
|
||||
"""
|
||||
|
||||
LANG_INFO = {
|
||||
'af': {
|
||||
'bidi': False,
|
||||
'code': 'af',
|
||||
'name': 'Afrikaans',
|
||||
'name_local': 'Afrikaans',
|
||||
},
|
||||
'ar': {
|
||||
'bidi': True,
|
||||
'code': 'ar',
|
||||
'name': 'Arabic',
|
||||
'name_local': 'العربيّة',
|
||||
},
|
||||
'ast': {
|
||||
'bidi': False,
|
||||
'code': 'ast',
|
||||
'name': 'Asturian',
|
||||
'name_local': 'asturianu',
|
||||
},
|
||||
'az': {
|
||||
'bidi': True,
|
||||
'code': 'az',
|
||||
'name': 'Azerbaijani',
|
||||
'name_local': 'Azərbaycanca',
|
||||
},
|
||||
'be': {
|
||||
'bidi': False,
|
||||
'code': 'be',
|
||||
'name': 'Belarusian',
|
||||
'name_local': 'беларуская',
|
||||
},
|
||||
'bg': {
|
||||
'bidi': False,
|
||||
'code': 'bg',
|
||||
'name': 'Bulgarian',
|
||||
'name_local': 'български',
|
||||
},
|
||||
'bn': {
|
||||
'bidi': False,
|
||||
'code': 'bn',
|
||||
'name': 'Bengali',
|
||||
'name_local': 'বাংলা',
|
||||
},
|
||||
'br': {
|
||||
'bidi': False,
|
||||
'code': 'br',
|
||||
'name': 'Breton',
|
||||
'name_local': 'brezhoneg',
|
||||
},
|
||||
'bs': {
|
||||
'bidi': False,
|
||||
'code': 'bs',
|
||||
'name': 'Bosnian',
|
||||
'name_local': 'bosanski',
|
||||
},
|
||||
'ca': {
|
||||
'bidi': False,
|
||||
'code': 'ca',
|
||||
'name': 'Catalan',
|
||||
'name_local': 'català',
|
||||
},
|
||||
'cs': {
|
||||
'bidi': False,
|
||||
'code': 'cs',
|
||||
'name': 'Czech',
|
||||
'name_local': 'česky',
|
||||
},
|
||||
'cy': {
|
||||
'bidi': False,
|
||||
'code': 'cy',
|
||||
'name': 'Welsh',
|
||||
'name_local': 'Cymraeg',
|
||||
},
|
||||
'da': {
|
||||
'bidi': False,
|
||||
'code': 'da',
|
||||
'name': 'Danish',
|
||||
'name_local': 'dansk',
|
||||
},
|
||||
'de': {
|
||||
'bidi': False,
|
||||
'code': 'de',
|
||||
'name': 'German',
|
||||
'name_local': 'Deutsch',
|
||||
},
|
||||
'dsb': {
|
||||
'bidi': False,
|
||||
'code': 'dsb',
|
||||
'name': 'Lower Sorbian',
|
||||
'name_local': 'dolnoserbski',
|
||||
},
|
||||
'el': {
|
||||
'bidi': False,
|
||||
'code': 'el',
|
||||
'name': 'Greek',
|
||||
'name_local': 'Ελληνικά',
|
||||
},
|
||||
'en': {
|
||||
'bidi': False,
|
||||
'code': 'en',
|
||||
'name': 'English',
|
||||
'name_local': 'English',
|
||||
},
|
||||
'en-au': {
|
||||
'bidi': False,
|
||||
'code': 'en-au',
|
||||
'name': 'Australian English',
|
||||
'name_local': 'Australian English',
|
||||
},
|
||||
'en-gb': {
|
||||
'bidi': False,
|
||||
'code': 'en-gb',
|
||||
'name': 'British English',
|
||||
'name_local': 'British English',
|
||||
},
|
||||
'eo': {
|
||||
'bidi': False,
|
||||
'code': 'eo',
|
||||
'name': 'Esperanto',
|
||||
'name_local': 'Esperanto',
|
||||
},
|
||||
'es': {
|
||||
'bidi': False,
|
||||
'code': 'es',
|
||||
'name': 'Spanish',
|
||||
'name_local': 'español',
|
||||
},
|
||||
'es-ar': {
|
||||
'bidi': False,
|
||||
'code': 'es-ar',
|
||||
'name': 'Argentinian Spanish',
|
||||
'name_local': 'español de Argentina',
|
||||
},
|
||||
'es-co': {
|
||||
'bidi': False,
|
||||
'code': 'es-co',
|
||||
'name': 'Colombian Spanish',
|
||||
'name_local': 'español de Colombia',
|
||||
},
|
||||
'es-mx': {
|
||||
'bidi': False,
|
||||
'code': 'es-mx',
|
||||
'name': 'Mexican Spanish',
|
||||
'name_local': 'español de Mexico',
|
||||
},
|
||||
'es-ni': {
|
||||
'bidi': False,
|
||||
'code': 'es-ni',
|
||||
'name': 'Nicaraguan Spanish',
|
||||
'name_local': 'español de Nicaragua',
|
||||
},
|
||||
'es-ve': {
|
||||
'bidi': False,
|
||||
'code': 'es-ve',
|
||||
'name': 'Venezuelan Spanish',
|
||||
'name_local': 'español de Venezuela',
|
||||
},
|
||||
'et': {
|
||||
'bidi': False,
|
||||
'code': 'et',
|
||||
'name': 'Estonian',
|
||||
'name_local': 'eesti',
|
||||
},
|
||||
'eu': {
|
||||
'bidi': False,
|
||||
'code': 'eu',
|
||||
'name': 'Basque',
|
||||
'name_local': 'Basque',
|
||||
},
|
||||
'fa': {
|
||||
'bidi': True,
|
||||
'code': 'fa',
|
||||
'name': 'Persian',
|
||||
'name_local': 'فارسی',
|
||||
},
|
||||
'fi': {
|
||||
'bidi': False,
|
||||
'code': 'fi',
|
||||
'name': 'Finnish',
|
||||
'name_local': 'suomi',
|
||||
},
|
||||
'fr': {
|
||||
'bidi': False,
|
||||
'code': 'fr',
|
||||
'name': 'French',
|
||||
'name_local': 'français',
|
||||
},
|
||||
'fy': {
|
||||
'bidi': False,
|
||||
'code': 'fy',
|
||||
'name': 'Frisian',
|
||||
'name_local': 'frysk',
|
||||
},
|
||||
'ga': {
|
||||
'bidi': False,
|
||||
'code': 'ga',
|
||||
'name': 'Irish',
|
||||
'name_local': 'Gaeilge',
|
||||
},
|
||||
'gd': {
|
||||
'bidi': False,
|
||||
'code': 'gd',
|
||||
'name': 'Scottish Gaelic',
|
||||
'name_local': 'Gàidhlig',
|
||||
},
|
||||
'gl': {
|
||||
'bidi': False,
|
||||
'code': 'gl',
|
||||
'name': 'Galician',
|
||||
'name_local': 'galego',
|
||||
},
|
||||
'he': {
|
||||
'bidi': True,
|
||||
'code': 'he',
|
||||
'name': 'Hebrew',
|
||||
'name_local': 'עברית',
|
||||
},
|
||||
'hi': {
|
||||
'bidi': False,
|
||||
'code': 'hi',
|
||||
'name': 'Hindi',
|
||||
'name_local': 'Hindi',
|
||||
},
|
||||
'hr': {
|
||||
'bidi': False,
|
||||
'code': 'hr',
|
||||
'name': 'Croatian',
|
||||
'name_local': 'Hrvatski',
|
||||
},
|
||||
'hsb': {
|
||||
'bidi': False,
|
||||
'code': 'hsb',
|
||||
'name': 'Upper Sorbian',
|
||||
'name_local': 'hornjoserbsce',
|
||||
},
|
||||
'hu': {
|
||||
'bidi': False,
|
||||
'code': 'hu',
|
||||
'name': 'Hungarian',
|
||||
'name_local': 'Magyar',
|
||||
},
|
||||
'ia': {
|
||||
'bidi': False,
|
||||
'code': 'ia',
|
||||
'name': 'Interlingua',
|
||||
'name_local': 'Interlingua',
|
||||
},
|
||||
'io': {
|
||||
'bidi': False,
|
||||
'code': 'io',
|
||||
'name': 'Ido',
|
||||
'name_local': 'ido',
|
||||
},
|
||||
'id': {
|
||||
'bidi': False,
|
||||
'code': 'id',
|
||||
'name': 'Indonesian',
|
||||
'name_local': 'Bahasa Indonesia',
|
||||
},
|
||||
'is': {
|
||||
'bidi': False,
|
||||
'code': 'is',
|
||||
'name': 'Icelandic',
|
||||
'name_local': 'Íslenska',
|
||||
},
|
||||
'it': {
|
||||
'bidi': False,
|
||||
'code': 'it',
|
||||
'name': 'Italian',
|
||||
'name_local': 'italiano',
|
||||
},
|
||||
'ja': {
|
||||
'bidi': False,
|
||||
'code': 'ja',
|
||||
'name': 'Japanese',
|
||||
'name_local': '日本語',
|
||||
},
|
||||
'ka': {
|
||||
'bidi': False,
|
||||
'code': 'ka',
|
||||
'name': 'Georgian',
|
||||
'name_local': 'ქართული',
|
||||
},
|
||||
'kk': {
|
||||
'bidi': False,
|
||||
'code': 'kk',
|
||||
'name': 'Kazakh',
|
||||
'name_local': 'Қазақ',
|
||||
},
|
||||
'km': {
|
||||
'bidi': False,
|
||||
'code': 'km',
|
||||
'name': 'Khmer',
|
||||
'name_local': 'Khmer',
|
||||
},
|
||||
'kn': {
|
||||
'bidi': False,
|
||||
'code': 'kn',
|
||||
'name': 'Kannada',
|
||||
'name_local': 'Kannada',
|
||||
},
|
||||
'ko': {
|
||||
'bidi': False,
|
||||
'code': 'ko',
|
||||
'name': 'Korean',
|
||||
'name_local': '한국어',
|
||||
},
|
||||
'lb': {
|
||||
'bidi': False,
|
||||
'code': 'lb',
|
||||
'name': 'Luxembourgish',
|
||||
'name_local': 'Lëtzebuergesch',
|
||||
},
|
||||
'lt': {
|
||||
'bidi': False,
|
||||
'code': 'lt',
|
||||
'name': 'Lithuanian',
|
||||
'name_local': 'Lietuviškai',
|
||||
},
|
||||
'lv': {
|
||||
'bidi': False,
|
||||
'code': 'lv',
|
||||
'name': 'Latvian',
|
||||
'name_local': 'latviešu',
|
||||
},
|
||||
'mk': {
|
||||
'bidi': False,
|
||||
'code': 'mk',
|
||||
'name': 'Macedonian',
|
||||
'name_local': 'Македонски',
|
||||
},
|
||||
'ml': {
|
||||
'bidi': False,
|
||||
'code': 'ml',
|
||||
'name': 'Malayalam',
|
||||
'name_local': 'Malayalam',
|
||||
},
|
||||
'mn': {
|
||||
'bidi': False,
|
||||
'code': 'mn',
|
||||
'name': 'Mongolian',
|
||||
'name_local': 'Mongolian',
|
||||
},
|
||||
'mr': {
|
||||
'bidi': False,
|
||||
'code': 'mr',
|
||||
'name': 'Marathi',
|
||||
'name_local': 'मराठी',
|
||||
},
|
||||
'my': {
|
||||
'bidi': False,
|
||||
'code': 'my',
|
||||
'name': 'Burmese',
|
||||
'name_local': 'မြန်မာဘာသာ',
|
||||
},
|
||||
'nb': {
|
||||
'bidi': False,
|
||||
'code': 'nb',
|
||||
'name': 'Norwegian Bokmal',
|
||||
'name_local': 'norsk (bokmål)',
|
||||
},
|
||||
'ne': {
|
||||
'bidi': False,
|
||||
'code': 'ne',
|
||||
'name': 'Nepali',
|
||||
'name_local': 'नेपाली',
|
||||
},
|
||||
'nl': {
|
||||
'bidi': False,
|
||||
'code': 'nl',
|
||||
'name': 'Dutch',
|
||||
'name_local': 'Nederlands',
|
||||
},
|
||||
'nn': {
|
||||
'bidi': False,
|
||||
'code': 'nn',
|
||||
'name': 'Norwegian Nynorsk',
|
||||
'name_local': 'norsk (nynorsk)',
|
||||
},
|
||||
'no': {
|
||||
'bidi': False,
|
||||
'code': 'no',
|
||||
'name': 'Norwegian',
|
||||
'name_local': 'norsk',
|
||||
},
|
||||
'os': {
|
||||
'bidi': False,
|
||||
'code': 'os',
|
||||
'name': 'Ossetic',
|
||||
'name_local': 'Ирон',
|
||||
},
|
||||
'pa': {
|
||||
'bidi': False,
|
||||
'code': 'pa',
|
||||
'name': 'Punjabi',
|
||||
'name_local': 'Punjabi',
|
||||
},
|
||||
'pl': {
|
||||
'bidi': False,
|
||||
'code': 'pl',
|
||||
'name': 'Polish',
|
||||
'name_local': 'polski',
|
||||
},
|
||||
'pt': {
|
||||
'bidi': False,
|
||||
'code': 'pt',
|
||||
'name': 'Portuguese',
|
||||
'name_local': 'Português',
|
||||
},
|
||||
'pt-br': {
|
||||
'bidi': False,
|
||||
'code': 'pt-br',
|
||||
'name': 'Brazilian Portuguese',
|
||||
'name_local': 'Português Brasileiro',
|
||||
},
|
||||
'ro': {
|
||||
'bidi': False,
|
||||
'code': 'ro',
|
||||
'name': 'Romanian',
|
||||
'name_local': 'Română',
|
||||
},
|
||||
'ru': {
|
||||
'bidi': False,
|
||||
'code': 'ru',
|
||||
'name': 'Russian',
|
||||
'name_local': 'Русский',
|
||||
},
|
||||
'sk': {
|
||||
'bidi': False,
|
||||
'code': 'sk',
|
||||
'name': 'Slovak',
|
||||
'name_local': 'Slovensky',
|
||||
},
|
||||
'sl': {
|
||||
'bidi': False,
|
||||
'code': 'sl',
|
||||
'name': 'Slovenian',
|
||||
'name_local': 'Slovenščina',
|
||||
},
|
||||
'sq': {
|
||||
'bidi': False,
|
||||
'code': 'sq',
|
||||
'name': 'Albanian',
|
||||
'name_local': 'shqip',
|
||||
},
|
||||
'sr': {
|
||||
'bidi': False,
|
||||
'code': 'sr',
|
||||
'name': 'Serbian',
|
||||
'name_local': 'српски',
|
||||
},
|
||||
'sr-latn': {
|
||||
'bidi': False,
|
||||
'code': 'sr-latn',
|
||||
'name': 'Serbian Latin',
|
||||
'name_local': 'srpski (latinica)',
|
||||
},
|
||||
'sv': {
|
||||
'bidi': False,
|
||||
'code': 'sv',
|
||||
'name': 'Swedish',
|
||||
'name_local': 'svenska',
|
||||
},
|
||||
'sw': {
|
||||
'bidi': False,
|
||||
'code': 'sw',
|
||||
'name': 'Swahili',
|
||||
'name_local': 'Kiswahili',
|
||||
},
|
||||
'ta': {
|
||||
'bidi': False,
|
||||
'code': 'ta',
|
||||
'name': 'Tamil',
|
||||
'name_local': 'தமிழ்',
|
||||
},
|
||||
'te': {
|
||||
'bidi': False,
|
||||
'code': 'te',
|
||||
'name': 'Telugu',
|
||||
'name_local': 'తెలుగు',
|
||||
},
|
||||
'th': {
|
||||
'bidi': False,
|
||||
'code': 'th',
|
||||
'name': 'Thai',
|
||||
'name_local': 'ภาษาไทย',
|
||||
},
|
||||
'tr': {
|
||||
'bidi': False,
|
||||
'code': 'tr',
|
||||
'name': 'Turkish',
|
||||
'name_local': 'Türkçe',
|
||||
},
|
||||
'tt': {
|
||||
'bidi': False,
|
||||
'code': 'tt',
|
||||
'name': 'Tatar',
|
||||
'name_local': 'Татарча',
|
||||
},
|
||||
'udm': {
|
||||
'bidi': False,
|
||||
'code': 'udm',
|
||||
'name': 'Udmurt',
|
||||
'name_local': 'Удмурт',
|
||||
},
|
||||
'uk': {
|
||||
'bidi': False,
|
||||
'code': 'uk',
|
||||
'name': 'Ukrainian',
|
||||
'name_local': 'Українська',
|
||||
},
|
||||
'ur': {
|
||||
'bidi': True,
|
||||
'code': 'ur',
|
||||
'name': 'Urdu',
|
||||
'name_local': 'اردو',
|
||||
},
|
||||
'vi': {
|
||||
'bidi': False,
|
||||
'code': 'vi',
|
||||
'name': 'Vietnamese',
|
||||
'name_local': 'Tiếng Việt',
|
||||
},
|
||||
'zh-cn': {
|
||||
'fallback': ['zh-hans'],
|
||||
},
|
||||
'zh-hans': {
|
||||
'bidi': False,
|
||||
'code': 'zh-hans',
|
||||
'name': 'Simplified Chinese',
|
||||
'name_local': '简体中文',
|
||||
},
|
||||
'zh-hant': {
|
||||
'bidi': False,
|
||||
'code': 'zh-hant',
|
||||
'name': 'Traditional Chinese',
|
||||
'name_local': '繁體中文',
|
||||
},
|
||||
'zh-hk': {
|
||||
'fallback': ['zh-hant'],
|
||||
},
|
||||
'zh-mo': {
|
||||
'fallback': ['zh-hant'],
|
||||
},
|
||||
'zh-my': {
|
||||
'fallback': ['zh-hans'],
|
||||
},
|
||||
'zh-sg': {
|
||||
'fallback': ['zh-hans'],
|
||||
},
|
||||
'zh-tw': {
|
||||
'fallback': ['zh-hant'],
|
||||
},
|
||||
}
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
django/conf/locale/ar/LC_MESSAGES/djangojs.mo
Normal file
BIN
django/conf/locale/ar/LC_MESSAGES/djangojs.mo
Normal file
Binary file not shown.
118
django/conf/locale/ar/LC_MESSAGES/djangojs.po
Normal file
118
django/conf/locale/ar/LC_MESSAGES/djangojs.po
Normal file
@ -0,0 +1,118 @@
|
||||
# translation of djangojs.po to Arabic
|
||||
# This file is distributed under the same license as the django package.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: djangojs\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2007-11-29 10:58-0600\n"
|
||||
"PO-Revision-Date: 2008-09-02 00:53+0300\n"
|
||||
"Last-Translator: Ossama M. Khayat <okhayat@yahoo.com>\n"
|
||||
"Language-Team: Arabic <support@arabeyes.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: KBabel 1.11.4\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n == 1? 0 : (n == 2? 1 : (n <= 10? 2 : 3)))\n"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:33
|
||||
#, perl-format
|
||||
msgid "Available %s"
|
||||
msgstr "%s المتوفرة"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:41
|
||||
msgid "Choose all"
|
||||
msgstr "اختر الكل"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:46
|
||||
msgid "Add"
|
||||
msgstr "أضف"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:48
|
||||
msgid "Remove"
|
||||
msgstr "احذف"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:53
|
||||
#, perl-format
|
||||
msgid "Chosen %s"
|
||||
msgstr "%s المُختارة"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:54
|
||||
msgid "Select your choice(s) and click "
|
||||
msgstr "حدد خياراتك واضغط"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:59
|
||||
msgid "Clear all"
|
||||
msgstr "امسح الكل"
|
||||
|
||||
#: contrib/admin/media/js/calendar.js:24
|
||||
#: contrib/admin/media/js/dateparse.js:32
|
||||
msgid ""
|
||||
"January February March April May June July August September October November "
|
||||
"December"
|
||||
msgstr "يناير فبراير مارس إبريل مايو يونيو يوليو أغسطس سبتمبر أكتوبر نوفمبر ديسمبر"
|
||||
|
||||
#: contrib/admin/media/js/calendar.js:25
|
||||
msgid "S M T W T F S"
|
||||
msgstr "أ إ ث أ خ ج س"
|
||||
|
||||
#: contrib/admin/media/js/dateparse.js:33
|
||||
msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
|
||||
msgstr "الأحد الإثنين الثلاثاء الأربعاء الخميس الجمعة السبت"
|
||||
|
||||
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
|
||||
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
|
||||
msgid "Show"
|
||||
msgstr "أظهر"
|
||||
|
||||
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
|
||||
msgid "Hide"
|
||||
msgstr "اخف"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
|
||||
msgid "Now"
|
||||
msgstr "الآن"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
|
||||
msgid "Clock"
|
||||
msgstr "الساعة"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
|
||||
msgid "Choose a time"
|
||||
msgstr "اختر وقتاً"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
|
||||
msgid "Midnight"
|
||||
msgstr "منتصف الليل"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
|
||||
msgid "6 a.m."
|
||||
msgstr "6 ص."
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
|
||||
msgid "Noon"
|
||||
msgstr "الظهر"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
|
||||
msgid "Cancel"
|
||||
msgstr "ألغ"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
|
||||
msgid "Today"
|
||||
msgstr "اليوم"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
|
||||
msgid "Calendar"
|
||||
msgstr "التقويم"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
|
||||
msgid "Yesterday"
|
||||
msgstr "أمس"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
|
||||
msgid "Tomorrow"
|
||||
msgstr "غداً"
|
||||
|
@ -1,24 +0,0 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
from __future__ import unicode_literals
|
||||
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j F، Y'
|
||||
TIME_FORMAT = 'g:i A'
|
||||
# DATETIME_FORMAT =
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'd/m/Y'
|
||||
# SHORT_DATETIME_FORMAT =
|
||||
# FIRST_DAY_OF_WEEK =
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see http://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
# DATE_INPUT_FORMATS =
|
||||
# TIME_INPUT_FORMATS =
|
||||
# DATETIME_INPUT_FORMATS =
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
# NUMBER_GROUPING =
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -1,35 +0,0 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
from __future__ import unicode_literals
|
||||
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j E Y'
|
||||
TIME_FORMAT = 'G:i'
|
||||
DATETIME_FORMAT = 'j E Y, G:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'd.m.Y'
|
||||
SHORT_DATETIME_FORMAT = 'd.m.Y H:i'
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see http://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d.%m.%Y', # '25.10.2006'
|
||||
'%d.%m.%y', # '25.10.06'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d.%m.%Y %H:%M:%S', # '25.10.2006 14:30:59'
|
||||
'%d.%m.%Y %H:%M:%S.%f', # '25.10.2006 14:30:59.000200'
|
||||
'%d.%m.%Y %H:%M', # '25.10.2006 14:30'
|
||||
'%d.%m.%Y', # '25.10.2006'
|
||||
'%d.%m.%y %H:%M:%S', # '25.10.06 14:30:59'
|
||||
'%d.%m.%y %H:%M:%S.%f', # '25.10.06 14:30:59.000200'
|
||||
'%d.%m.%y %H:%M', # '25.10.06 14:30'
|
||||
'%d.%m.%y', # '25.10.06'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '\xa0' # non-breaking space
|
||||
NUMBER_GROUPING = 3
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
django/conf/locale/bg/LC_MESSAGES/djangojs.mo
Normal file
BIN
django/conf/locale/bg/LC_MESSAGES/djangojs.mo
Normal file
Binary file not shown.
106
django/conf/locale/bg/LC_MESSAGES/djangojs.po
Normal file
106
django/conf/locale/bg/LC_MESSAGES/djangojs.po
Normal file
@ -0,0 +1,106 @@
|
||||
# translation of djangojs.po to Bulgarian
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-12-09 11:51+0100\n"
|
||||
"PO-Revision-Date: 2007-05-12 17:51+0300\n"
|
||||
"Last-Translator: Jordan Dimov <s3x3y1@gmail.com>\n"
|
||||
"Language-Team: Bulgarian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:33
|
||||
#, perl-format
|
||||
msgid "Available %s"
|
||||
msgstr "Налични %s"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:41
|
||||
msgid "Choose all"
|
||||
msgstr "Избери всички"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:46
|
||||
msgid "Add"
|
||||
msgstr "Добави"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:48
|
||||
msgid "Remove"
|
||||
msgstr "Премахни"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:53
|
||||
#, perl-format
|
||||
msgid "Chosen %s"
|
||||
msgstr "Избрахме %s"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:54
|
||||
msgid "Select your choice(s) and click "
|
||||
msgstr "Направете своя избор и щракнете "
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:59
|
||||
msgid "Clear all"
|
||||
msgstr "Изчисти всички"
|
||||
|
||||
#: contrib/admin/media/js/dateparse.js:26
|
||||
#: contrib/admin/media/js/calendar.js:24
|
||||
msgid ""
|
||||
"January February March April May June July August September October November "
|
||||
"December"
|
||||
msgstr "Януари Февруари Март Април Май Юни Юли Август Септември Октомври Ноември Декември"
|
||||
|
||||
#: contrib/admin/media/js/dateparse.js:27
|
||||
msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
|
||||
msgstr "Неделя Понеделник Вторник Сряда Четвъртък Петък Събота"
|
||||
|
||||
#: contrib/admin/media/js/calendar.js:25
|
||||
msgid "S M T W T F S"
|
||||
msgstr "Н П В С Ч П С"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:45
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:80
|
||||
msgid "Now"
|
||||
msgstr "Сега"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:48
|
||||
msgid "Clock"
|
||||
msgstr "Часовник"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:77
|
||||
msgid "Choose a time"
|
||||
msgstr "Избери време"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
|
||||
msgid "Midnight"
|
||||
msgstr "Полунощ"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
|
||||
msgid "6 a.m."
|
||||
msgstr "6 a.m."
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
|
||||
msgid "Noon"
|
||||
msgstr "По обяд"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:87
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:168
|
||||
msgid "Cancel"
|
||||
msgstr "Отказ"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:111
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:162
|
||||
msgid "Today"
|
||||
msgstr "Днес"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:114
|
||||
msgid "Calendar"
|
||||
msgstr "Календар"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:160
|
||||
msgid "Yesterday"
|
||||
msgstr "Вчера"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:164
|
||||
msgid "Tomorrow"
|
||||
msgstr "Утре"
|
||||
|
@ -1,24 +0,0 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
from __future__ import unicode_literals
|
||||
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'd F Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
# DATETIME_FORMAT =
|
||||
# YEAR_MONTH_FORMAT =
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'd.m.Y'
|
||||
# SHORT_DATETIME_FORMAT =
|
||||
# FIRST_DAY_OF_WEEK =
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see http://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
# DATE_INPUT_FORMATS =
|
||||
# TIME_INPUT_FORMATS =
|
||||
# DATETIME_INPUT_FORMATS =
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = ' ' # Non-breaking space
|
||||
# NUMBER_GROUPING =
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
django/conf/locale/bn/LC_MESSAGES/djangojs.mo
Normal file
BIN
django/conf/locale/bn/LC_MESSAGES/djangojs.mo
Normal file
Binary file not shown.
118
django/conf/locale/bn/LC_MESSAGES/djangojs.po
Normal file
118
django/conf/locale/bn/LC_MESSAGES/djangojs.po
Normal file
@ -0,0 +1,118 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2007-06-28 17:36+1000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:33
|
||||
#, perl-format
|
||||
msgid "Available %s"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:41
|
||||
msgid "Choose all"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:46
|
||||
msgid "Add"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:48
|
||||
msgid "Remove"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:53
|
||||
#, perl-format
|
||||
msgid "Chosen %s"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:54
|
||||
msgid "Select your choice(s) and click "
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:59
|
||||
msgid "Clear all"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/media/js/dateparse.js:32
|
||||
#: contrib/admin/media/js/calendar.js:24
|
||||
msgid ""
|
||||
"January February March April May June July August September October November "
|
||||
"December"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/media/js/dateparse.js:33
|
||||
msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/media/js/calendar.js:25
|
||||
msgid "S M T W T F S"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
|
||||
msgid "Now"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
|
||||
msgid "Clock"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
|
||||
msgid "Choose a time"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
|
||||
msgid "Midnight"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
|
||||
msgid "6 a.m."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
|
||||
msgid "Noon"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
|
||||
msgid "Today"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
|
||||
msgid "Calendar"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
|
||||
msgid "Yesterday"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
|
||||
msgid "Tomorrow"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
|
||||
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
|
||||
msgid "Show"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
|
||||
msgid "Hide"
|
||||
msgstr ""
|
@ -1,35 +0,0 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
from __future__ import unicode_literals
|
||||
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j F, Y'
|
||||
TIME_FORMAT = 'g:i A'
|
||||
# DATETIME_FORMAT =
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'j M, Y'
|
||||
# SHORT_DATETIME_FORMAT =
|
||||
FIRST_DAY_OF_WEEK = 6 # Saturday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see http://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d/%m/%Y', # 25/10/2016
|
||||
'%d/%m/%y', # 25/10/16
|
||||
'%d-%m-%Y', # 25-10-2016
|
||||
'%d-%m-%y', # 25-10-16
|
||||
]
|
||||
TIME_INPUT_FORMATS = [
|
||||
'%H:%M:%S', # 14:30:59
|
||||
'%H:%M', # 14:30
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d/%m/%Y %H:%M:%S', # 25/10/2006 14:30:59
|
||||
'%d/%m/%Y %H:%M', # 25/10/2006 14:30
|
||||
]
|
||||
DECIMAL_SEPARATOR = '.'
|
||||
THOUSAND_SEPARATOR = ','
|
||||
# NUMBER_GROUPING =
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -1,24 +0,0 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
from __future__ import unicode_literals
|
||||
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j. N Y.'
|
||||
TIME_FORMAT = 'G:i'
|
||||
DATETIME_FORMAT = 'j. N. Y. G:i T'
|
||||
YEAR_MONTH_FORMAT = 'F Y.'
|
||||
MONTH_DAY_FORMAT = 'j. F'
|
||||
SHORT_DATE_FORMAT = 'Y M j'
|
||||
# SHORT_DATETIME_FORMAT =
|
||||
# FIRST_DAY_OF_WEEK =
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see http://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
# DATE_INPUT_FORMATS =
|
||||
# TIME_INPUT_FORMATS =
|
||||
# DATETIME_INPUT_FORMATS =
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
# NUMBER_GROUPING =
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
django/conf/locale/ca/LC_MESSAGES/djangojs.mo
Normal file
BIN
django/conf/locale/ca/LC_MESSAGES/djangojs.mo
Normal file
Binary file not shown.
115
django/conf/locale/ca/LC_MESSAGES/djangojs.po
Normal file
115
django/conf/locale/ca/LC_MESSAGES/djangojs.po
Normal file
@ -0,0 +1,115 @@
|
||||
# translation of djangojs.po to catalan
|
||||
# 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: 2007-02-15 01:00+0200\n"
|
||||
"PO-Revision-Date: 2008-03-25 18:54+0100\n"
|
||||
"Last-Translator: Django Catalan Group <django-cat@googlegroups.com>\n"
|
||||
"Language-Team: Catalan <ca@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: VIM 7.1\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:33
|
||||
#, perl-format
|
||||
msgid "Available %s"
|
||||
msgstr "%s Disponibles"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:41
|
||||
msgid "Choose all"
|
||||
msgstr "Seleccionar tots"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:46
|
||||
msgid "Add"
|
||||
msgstr "Afegir"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:48
|
||||
msgid "Remove"
|
||||
msgstr "Eliminar"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:53
|
||||
#, perl-format
|
||||
msgid "Chosen %s"
|
||||
msgstr "%s Escollits"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:54
|
||||
msgid "Select your choice(s) and click "
|
||||
msgstr "Faci les seves seleccions i faci click a"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:59
|
||||
msgid "Clear all"
|
||||
msgstr "Deseleccionar tots"
|
||||
|
||||
#: contrib/admin/media/js/dateparse.js:32
|
||||
#: contrib/admin/media/js/calendar.js:24
|
||||
msgid "January February March April May June July August September October November December"
|
||||
msgstr "Gener Febrer Març Abril Maig Juny Juliol Agost Setembre Octubre Novembre Desembre"
|
||||
|
||||
#: contrib/admin/media/js/dateparse.js:33
|
||||
msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
|
||||
msgstr "Diumenge Dilluns Dimarts Dimecres Dijous Divendres Dissabte"
|
||||
|
||||
#: contrib/admin/media/js/calendar.js:25
|
||||
msgid "S M T W T F S"
|
||||
msgstr "Dg Dl Dt Dc Dj Dv Ds"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
|
||||
msgid "Now"
|
||||
msgstr "Ara"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
|
||||
msgid "Clock"
|
||||
msgstr "Rellotje"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
|
||||
msgid "Choose a time"
|
||||
msgstr "Esculli una hora"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
|
||||
msgid "Midnight"
|
||||
msgstr "Mitja nit"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
|
||||
msgid "6 a.m."
|
||||
msgstr "6 a.m."
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
|
||||
msgid "Noon"
|
||||
msgstr "Migdia"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel·lar"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
|
||||
msgid "Today"
|
||||
msgstr "Avui"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
|
||||
msgid "Calendar"
|
||||
msgstr "Calendari"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
|
||||
msgid "Yesterday"
|
||||
msgstr "Ahir"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
|
||||
msgid "Tomorrow"
|
||||
msgstr "Demà"
|
||||
|
||||
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
|
||||
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
|
||||
msgid "Show"
|
||||
msgstr "Mostrar"
|
||||
|
||||
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
|
||||
msgid "Hide"
|
||||
msgstr "Ocultar"
|
||||
|
@ -1,33 +0,0 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
from __future__ import unicode_literals
|
||||
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = r'j \d\e F \d\e Y'
|
||||
TIME_FORMAT = 'G:i'
|
||||
DATETIME_FORMAT = r'j \d\e F \d\e Y \a \l\e\s G:i'
|
||||
YEAR_MONTH_FORMAT = r'F \d\e\l Y'
|
||||
MONTH_DAY_FORMAT = r'j \d\e F'
|
||||
SHORT_DATE_FORMAT = 'd/m/Y'
|
||||
SHORT_DATETIME_FORMAT = 'd/m/Y G:i'
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see http://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
# '31/12/2009', '31/12/09'
|
||||
'%d/%m/%Y', '%d/%m/%y'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d/%m/%Y %H:%M:%S',
|
||||
'%d/%m/%Y %H:%M:%S.%f',
|
||||
'%d/%m/%Y %H:%M',
|
||||
'%d/%m/%y %H:%M:%S',
|
||||
'%d/%m/%y %H:%M:%S.%f',
|
||||
'%d/%m/%y %H:%M',
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
NUMBER_GROUPING = 3
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
django/conf/locale/cs/LC_MESSAGES/djangojs.mo
Normal file
BIN
django/conf/locale/cs/LC_MESSAGES/djangojs.mo
Normal file
Binary file not shown.
118
django/conf/locale/cs/LC_MESSAGES/djangojs.po
Normal file
118
django/conf/locale/cs/LC_MESSAGES/djangojs.po
Normal file
@ -0,0 +1,118 @@
|
||||
# Translation of djangojs.po to Czech
|
||||
# Copyright (C) 2005 THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the DJANGO package.
|
||||
# Radek Svarz <translate@svarz.cz>, 2005.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2008-08-20 12:52+0200\n"
|
||||
"Language-Team: Czech\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n>1 && n<5 ? 1 : 2;\n"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:33
|
||||
#, perl-format
|
||||
msgid "Available %s"
|
||||
msgstr "Dostupná %s"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:41
|
||||
msgid "Choose all"
|
||||
msgstr "Vybrat vše"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:46
|
||||
msgid "Add"
|
||||
msgstr "Přidat"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:48
|
||||
msgid "Remove"
|
||||
msgstr "Odebrat"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:53
|
||||
#, perl-format
|
||||
msgid "Chosen %s"
|
||||
msgstr "Vybraná %s"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:54
|
||||
msgid "Select your choice(s) and click "
|
||||
msgstr "Vyberte si a klikněte "
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:59
|
||||
msgid "Clear all"
|
||||
msgstr "Vymazat vše"
|
||||
|
||||
#: contrib/admin/media/js/calendar.js:24
|
||||
#: contrib/admin/media/js/dateparse.js:32
|
||||
msgid ""
|
||||
"January February March April May June July August September October November "
|
||||
"December"
|
||||
msgstr ""
|
||||
"Leden Únor Březen Duben Květen Červen Červenec Srpen Září Říjen Listopad "
|
||||
"Prosinec"
|
||||
|
||||
#: contrib/admin/media/js/calendar.js:25
|
||||
msgid "S M T W T F S"
|
||||
msgstr "N P U S C P S"
|
||||
|
||||
#: contrib/admin/media/js/dateparse.js:33
|
||||
msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
|
||||
msgstr "Neděle Pondělí Úterý Středa Čtvrtek Pátek Sobota"
|
||||
|
||||
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
|
||||
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
|
||||
msgid "Show"
|
||||
msgstr "Ukázat"
|
||||
|
||||
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
|
||||
msgid "Hide"
|
||||
msgstr "Skrýt"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
|
||||
msgid "Now"
|
||||
msgstr "Nyní"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
|
||||
msgid "Clock"
|
||||
msgstr "Hodiny"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
|
||||
msgid "Choose a time"
|
||||
msgstr "Vyberte čas"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
|
||||
msgid "Midnight"
|
||||
msgstr "Půlnoc"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
|
||||
msgid "6 a.m."
|
||||
msgstr "6 ráno"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
|
||||
msgid "Noon"
|
||||
msgstr "Poledne"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
|
||||
msgid "Cancel"
|
||||
msgstr "Storno"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
|
||||
msgid "Today"
|
||||
msgstr "Dnes"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
|
||||
msgid "Calendar"
|
||||
msgstr "Kalendář"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
|
||||
msgid "Yesterday"
|
||||
msgstr "Včera"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
|
||||
msgid "Tomorrow"
|
||||
msgstr "Zítra"
|
@ -1,45 +0,0 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
from __future__ import unicode_literals
|
||||
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j. E Y'
|
||||
TIME_FORMAT = 'G:i'
|
||||
DATETIME_FORMAT = 'j. E Y G:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j. F'
|
||||
SHORT_DATE_FORMAT = 'd.m.Y'
|
||||
SHORT_DATETIME_FORMAT = 'd.m.Y G:i'
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see http://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d.%m.%Y', '%d.%m.%y', # '05.01.2006', '05.01.06'
|
||||
'%d. %m. %Y', '%d. %m. %y', # '5. 1. 2006', '5. 1. 06'
|
||||
# '%d. %B %Y', '%d. %b. %Y', # '25. October 2006', '25. Oct. 2006'
|
||||
]
|
||||
# Kept ISO formats as one is in first position
|
||||
TIME_INPUT_FORMATS = [
|
||||
'%H:%M:%S', # '04:30:59'
|
||||
'%H.%M', # '04.30'
|
||||
'%H:%M', # '04:30'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d.%m.%Y %H:%M:%S', # '05.01.2006 04:30:59'
|
||||
'%d.%m.%Y %H:%M:%S.%f', # '05.01.2006 04:30:59.000200'
|
||||
'%d.%m.%Y %H.%M', # '05.01.2006 04.30'
|
||||
'%d.%m.%Y %H:%M', # '05.01.2006 04:30'
|
||||
'%d.%m.%Y', # '05.01.2006'
|
||||
'%d. %m. %Y %H:%M:%S', # '05. 01. 2006 04:30:59'
|
||||
'%d. %m. %Y %H:%M:%S.%f', # '05. 01. 2006 04:30:59.000200'
|
||||
'%d. %m. %Y %H.%M', # '05. 01. 2006 04.30'
|
||||
'%d. %m. %Y %H:%M', # '05. 01. 2006 04:30'
|
||||
'%d. %m. %Y', # '05. 01. 2006'
|
||||
'%Y-%m-%d %H.%M', # '2006-01-05 04.30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '\xa0' # non-breaking space
|
||||
NUMBER_GROUPING = 3
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
django/conf/locale/cy/LC_MESSAGES/djangojs.mo
Normal file
BIN
django/conf/locale/cy/LC_MESSAGES/djangojs.mo
Normal file
Binary file not shown.
111
django/conf/locale/cy/LC_MESSAGES/djangojs.po
Normal file
111
django/conf/locale/cy/LC_MESSAGES/djangojs.po
Normal file
@ -0,0 +1,111 @@
|
||||
# Translation of Django admin JS to Welsh.
|
||||
# Copyright (C) 2005 Django project
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-12-09 11:51+0100\n"
|
||||
"PO-Revision-Date: 2005-12-04 16:53+0000\n"
|
||||
"Last-Translator: Jason Davies <jason@jasondavies.com>\n"
|
||||
"Language-Team: Cymraeg <cy@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:33
|
||||
#, perl-format
|
||||
msgid "Available %s"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:41
|
||||
#, fuzzy
|
||||
msgid "Choose all"
|
||||
msgstr "Dewis amser"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:46
|
||||
msgid "Add"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:48
|
||||
msgid "Remove"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:53
|
||||
#, perl-format
|
||||
msgid "Chosen %s"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:54
|
||||
msgid "Select your choice(s) and click "
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:59
|
||||
msgid "Clear all"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/media/js/dateparse.js:26
|
||||
#: contrib/admin/media/js/calendar.js:24
|
||||
msgid ""
|
||||
"January February March April May June July August September October November "
|
||||
"December"
|
||||
msgstr ""
|
||||
"Ionawr Chwefror Mawrth Ebrill Mai Mehefin Gorffennaf Medi Hydref Tachwedd "
|
||||
"Rhagfyr"
|
||||
|
||||
#: contrib/admin/media/js/dateparse.js:27
|
||||
msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/media/js/calendar.js:25
|
||||
msgid "S M T W T F S"
|
||||
msgstr "S Ll M M I G S"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:45
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:80
|
||||
msgid "Now"
|
||||
msgstr "Nawr"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:48
|
||||
msgid "Clock"
|
||||
msgstr "Cloc"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:77
|
||||
msgid "Choose a time"
|
||||
msgstr "Dewis amser"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
|
||||
msgid "Midnight"
|
||||
msgstr "Hanner nos"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
|
||||
msgid "6 a.m."
|
||||
msgstr "6 y.b."
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
|
||||
msgid "Noon"
|
||||
msgstr "Hanner dydd"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:87
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:168
|
||||
msgid "Cancel"
|
||||
msgstr "Diddymu"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:111
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:162
|
||||
msgid "Today"
|
||||
msgstr "Heddiw"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:114
|
||||
msgid "Calendar"
|
||||
msgstr "Calendr"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:160
|
||||
msgid "Yesterday"
|
||||
msgstr "Ddoe"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:164
|
||||
msgid "Tomorrow"
|
||||
msgstr "Yfory"
|
@ -1,38 +0,0 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
from __future__ import unicode_literals
|
||||
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j F Y' # '25 Hydref 2006'
|
||||
TIME_FORMAT = 'P' # '2:30 y.b.'
|
||||
DATETIME_FORMAT = 'j F Y, P' # '25 Hydref 2006, 2:30 y.b.'
|
||||
YEAR_MONTH_FORMAT = 'F Y' # 'Hydref 2006'
|
||||
MONTH_DAY_FORMAT = 'j F' # '25 Hydref'
|
||||
SHORT_DATE_FORMAT = 'd/m/Y' # '25/10/2006'
|
||||
SHORT_DATETIME_FORMAT = 'd/m/Y P' # '25/10/2006 2:30 y.b.'
|
||||
FIRST_DAY_OF_WEEK = 1 # 'Dydd Llun'
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see http://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d/%m/%Y', '%d/%m/%y', # '25/10/2006', '25/10/06'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59'
|
||||
'%Y-%m-%d %H:%M:%S.%f', # '2006-10-25 14:30:59.000200'
|
||||
'%Y-%m-%d %H:%M', # '2006-10-25 14:30'
|
||||
'%Y-%m-%d', # '2006-10-25'
|
||||
'%d/%m/%Y %H:%M:%S', # '25/10/2006 14:30:59'
|
||||
'%d/%m/%Y %H:%M:%S.%f', # '25/10/2006 14:30:59.000200'
|
||||
'%d/%m/%Y %H:%M', # '25/10/2006 14:30'
|
||||
'%d/%m/%Y', # '25/10/2006'
|
||||
'%d/%m/%y %H:%M:%S', # '25/10/06 14:30:59'
|
||||
'%d/%m/%y %H:%M:%S.%f', # '25/10/06 14:30:59.000200'
|
||||
'%d/%m/%y %H:%M', # '25/10/06 14:30'
|
||||
'%d/%m/%y', # '25/10/06'
|
||||
]
|
||||
DECIMAL_SEPARATOR = '.'
|
||||
THOUSAND_SEPARATOR = ','
|
||||
NUMBER_GROUPING = 3
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
django/conf/locale/da/LC_MESSAGES/djangojs.mo
Normal file
BIN
django/conf/locale/da/LC_MESSAGES/djangojs.mo
Normal file
Binary file not shown.
118
django/conf/locale/da/LC_MESSAGES/djangojs.po
Normal file
118
django/conf/locale/da/LC_MESSAGES/djangojs.po
Normal file
@ -0,0 +1,118 @@
|
||||
# Translation of djangojs.po to Danish
|
||||
# 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: 2008-09-09 20:20+0200\n"
|
||||
"PO-Revision-Date: 2008-08-13 22:00+0200\n"
|
||||
"Last-Translator: Finn Gruwier Larsen<finn@gruwier.dk>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:33
|
||||
#, perl-format
|
||||
msgid "Available %s"
|
||||
msgstr "Tilgængelige %s"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:41
|
||||
msgid "Choose all"
|
||||
msgstr "Vælg alle"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:46
|
||||
msgid "Add"
|
||||
msgstr "Tilføj"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:48
|
||||
msgid "Remove"
|
||||
msgstr "Fjern"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:53
|
||||
#, perl-format
|
||||
msgid "Chosen %s"
|
||||
msgstr "Valgte %s"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:54
|
||||
msgid "Select your choice(s) and click "
|
||||
msgstr "Foretag dit/dine valg og klik "
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:59
|
||||
msgid "Clear all"
|
||||
msgstr "Fravælg alle"
|
||||
|
||||
#: contrib/admin/media/js/calendar.js:24
|
||||
#: contrib/admin/media/js/dateparse.js:32
|
||||
msgid ""
|
||||
"January February March April May June July August September October November "
|
||||
"December"
|
||||
msgstr ""
|
||||
"Januar Februar Marts April Maj Juni Juli August September Oktober November "
|
||||
"December"
|
||||
|
||||
#: contrib/admin/media/js/calendar.js:25
|
||||
msgid "S M T W T F S"
|
||||
msgstr "S M T O T F L"
|
||||
|
||||
#: contrib/admin/media/js/dateparse.js:33
|
||||
msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
|
||||
msgstr "Søndag Mandag Tirsdag Onsdag Torsdag Fredag Lørdag"
|
||||
|
||||
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
|
||||
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
|
||||
msgid "Show"
|
||||
msgstr "Vis"
|
||||
|
||||
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
|
||||
msgid "Hide"
|
||||
msgstr "Skjul"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
|
||||
msgid "Now"
|
||||
msgstr "Nu"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
|
||||
msgid "Clock"
|
||||
msgstr "Ur"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
|
||||
msgid "Choose a time"
|
||||
msgstr "Vælg et tidspunkt"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
|
||||
msgid "Midnight"
|
||||
msgstr "Midnat"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
|
||||
msgid "6 a.m."
|
||||
msgstr "6 morgen"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
|
||||
msgid "Noon"
|
||||
msgstr "Middag"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
|
||||
msgid "Cancel"
|
||||
msgstr "Annuller"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
|
||||
msgid "Today"
|
||||
msgstr "I dag"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
|
||||
msgid "Calendar"
|
||||
msgstr "Kalender"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
|
||||
msgid "Yesterday"
|
||||
msgstr "I går"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
|
||||
msgid "Tomorrow"
|
||||
msgstr "I morgen"
|
@ -1,29 +0,0 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
from __future__ import unicode_literals
|
||||
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j. F Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = 'j. F Y H:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j. F'
|
||||
SHORT_DATE_FORMAT = 'd.m.Y'
|
||||
SHORT_DATETIME_FORMAT = 'd.m.Y H:i'
|
||||
FIRST_DAY_OF_WEEK = 1
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see http://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d.%m.%Y', # '25.10.2006'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d.%m.%Y %H:%M:%S', # '25.10.2006 14:30:59'
|
||||
'%d.%m.%Y %H:%M:%S.%f', # '25.10.2006 14:30:59.000200'
|
||||
'%d.%m.%Y %H:%M', # '25.10.2006 14:30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
NUMBER_GROUPING = 3
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
django/conf/locale/de/LC_MESSAGES/djangojs.mo
Normal file
BIN
django/conf/locale/de/LC_MESSAGES/djangojs.mo
Normal file
Binary file not shown.
119
django/conf/locale/de/LC_MESSAGES/djangojs.po
Normal file
119
django/conf/locale/de/LC_MESSAGES/djangojs.po
Normal file
@ -0,0 +1,119 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2008-08-15 14:38+0200\n"
|
||||
"PO-Revision-Date: 2008-06-23 21:02+0100\n"
|
||||
"Last-Translator: Jannis Leidel <jannis@leidel.info>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:33
|
||||
#, perl-format
|
||||
msgid "Available %s"
|
||||
msgstr "Verfügbare %s"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:41
|
||||
msgid "Choose all"
|
||||
msgstr "Alles auswählen"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:46
|
||||
msgid "Add"
|
||||
msgstr "Hinzufügen"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:48
|
||||
msgid "Remove"
|
||||
msgstr "Entfernen"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:53
|
||||
#, perl-format
|
||||
msgid "Chosen %s"
|
||||
msgstr "Ausgewählte %s"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:54
|
||||
msgid "Select your choice(s) and click "
|
||||
msgstr "Auswahl treffen und Klick auf"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:59
|
||||
msgid "Clear all"
|
||||
msgstr "Alles abwählen"
|
||||
|
||||
#: contrib/admin/media/js/calendar.js:24
|
||||
#: contrib/admin/media/js/dateparse.js:32
|
||||
msgid ""
|
||||
"January February March April May June July August September October November "
|
||||
"December"
|
||||
msgstr ""
|
||||
"Januar Februar März April Mai Juni Juli August September Oktober November "
|
||||
"Dezember"
|
||||
|
||||
#: contrib/admin/media/js/calendar.js:25
|
||||
msgid "S M T W T F S"
|
||||
msgstr "S M D M D F S"
|
||||
|
||||
#: contrib/admin/media/js/dateparse.js:33
|
||||
msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
|
||||
msgstr "Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag"
|
||||
|
||||
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
|
||||
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
|
||||
msgid "Show"
|
||||
msgstr "Einblenden"
|
||||
|
||||
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
|
||||
msgid "Hide"
|
||||
msgstr "Ausblenden"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
|
||||
msgid "Now"
|
||||
msgstr "Jetzt"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
|
||||
msgid "Clock"
|
||||
msgstr "Uhr"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
|
||||
msgid "Choose a time"
|
||||
msgstr "Uhrzeit"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
|
||||
msgid "Midnight"
|
||||
msgstr "Mitternacht"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
|
||||
msgid "6 a.m."
|
||||
msgstr "6 Uhr"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
|
||||
msgid "Noon"
|
||||
msgstr "Mittag"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
|
||||
msgid "Cancel"
|
||||
msgstr "Abbrechen"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
|
||||
msgid "Today"
|
||||
msgstr "Heute"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
|
||||
msgid "Calendar"
|
||||
msgstr "Kalender"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
|
||||
msgid "Yesterday"
|
||||
msgstr "Gestern"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
|
||||
msgid "Tomorrow"
|
||||
msgstr "Morgen"
|
@ -1,31 +0,0 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
from __future__ import unicode_literals
|
||||
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j. F Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = 'j. F Y H:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j. F'
|
||||
SHORT_DATE_FORMAT = 'd.m.Y'
|
||||
SHORT_DATETIME_FORMAT = 'd.m.Y H:i'
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see http://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d.%m.%Y', '%d.%m.%y', # '25.10.2006', '25.10.06'
|
||||
# '%d. %B %Y', '%d. %b. %Y', # '25. October 2006', '25. Oct. 2006'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d.%m.%Y %H:%M:%S', # '25.10.2006 14:30:59'
|
||||
'%d.%m.%Y %H:%M:%S.%f', # '25.10.2006 14:30:59.000200'
|
||||
'%d.%m.%Y %H:%M', # '25.10.2006 14:30'
|
||||
'%d.%m.%Y', # '25.10.2006'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
NUMBER_GROUPING = 3
|
@ -1,38 +0,0 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
from __future__ import unicode_literals
|
||||
|
||||
DATE_FORMAT = 'j. F Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = 'j. F Y H:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j. F'
|
||||
SHORT_DATE_FORMAT = 'd.m.Y'
|
||||
SHORT_DATETIME_FORMAT = 'd.m.Y H:i'
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see http://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d.%m.%Y', '%d.%m.%y', # '25.10.2006', '25.10.06'
|
||||
# '%d. %B %Y', '%d. %b. %Y', # '25. October 2006', '25. Oct. 2006'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d.%m.%Y %H:%M:%S', # '25.10.2006 14:30:59'
|
||||
'%d.%m.%Y %H:%M:%S.%f', # '25.10.2006 14:30:59.000200'
|
||||
'%d.%m.%Y %H:%M', # '25.10.2006 14:30'
|
||||
'%d.%m.%Y', # '25.10.2006'
|
||||
]
|
||||
|
||||
# these are the separators for non-monetary numbers. For monetary numbers,
|
||||
# the DECIMAL_SEPARATOR is a . (decimal point) and the THOUSAND_SEPARATOR is a
|
||||
# ' (single quote).
|
||||
# For details, please refer to http://www.bk.admin.ch/dokumentation/sprachen/04915/05016/index.html?lang=de
|
||||
# (in German) and the documentation
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '\xa0' # non-breaking space
|
||||
NUMBER_GROUPING = 3
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
django/conf/locale/el/LC_MESSAGES/djangojs.mo
Normal file
BIN
django/conf/locale/el/LC_MESSAGES/djangojs.mo
Normal file
Binary file not shown.
108
django/conf/locale/el/LC_MESSAGES/djangojs.po
Normal file
108
django/conf/locale/el/LC_MESSAGES/djangojs.po
Normal file
@ -0,0 +1,108 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) 2006 and beyond.
|
||||
# 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: 2005-12-09 11:51+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Orestis Markou <orestis@orestis.gr>\n"
|
||||
"Language-Team: Greek\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:33
|
||||
#, perl-format
|
||||
msgid "Available %s"
|
||||
msgstr "Διαθέσιμο %s"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:41
|
||||
msgid "Choose all"
|
||||
msgstr "Επιλογή Όλων"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:46
|
||||
msgid "Add"
|
||||
msgstr "Προσθήκη"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:48
|
||||
msgid "Remove"
|
||||
msgstr "Αφαίρεση"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:53
|
||||
#, perl-format
|
||||
msgid "Chosen %s"
|
||||
msgstr "Επιλεχθέντα %s"
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:54
|
||||
msgid "Select your choice(s) and click "
|
||||
msgstr "Επιλέξτε και κάντε κλικ."
|
||||
|
||||
#: contrib/admin/media/js/SelectFilter2.js:59
|
||||
msgid "Clear all"
|
||||
msgstr "Καθαρισμός όλων"
|
||||
|
||||
#: contrib/admin/media/js/dateparse.js:26
|
||||
#: contrib/admin/media/js/calendar.js:24
|
||||
msgid ""
|
||||
"January February March April May June July August September October November "
|
||||
"December"
|
||||
msgstr "Ιανουάριος Φεβρουάριος Μάρτιος Απρίλιος Μάιος Ιούνιος Ιούλιος Αύγουστος Σεπτέμβριος Οκτώβριος Νοέμβριος "
|
||||
"Δεκέμβριος"
|
||||
|
||||
#: contrib/admin/media/js/dateparse.js:27
|
||||
msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
|
||||
msgstr "Κυριακή Δευτέρα Τρίτη Τετάρτη Πέμπτη Παρασκευή Σάββατο"
|
||||
|
||||
#: contrib/admin/media/js/calendar.js:25
|
||||
msgid "S M T W T F S"
|
||||
msgstr "Κ Δ Τ Τ Π Π Σ"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:45
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:80
|
||||
msgid "Now"
|
||||
msgstr "Τώρα"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:48
|
||||
msgid "Clock"
|
||||
msgstr "Ρολόι"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:77
|
||||
msgid "Choose a time"
|
||||
msgstr "Διαλέξτε ώρα"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
|
||||
msgid "Midnight"
|
||||
msgstr "Μεσάνυχτα"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
|
||||
msgid "6 a.m."
|
||||
msgstr "6 π.μ."
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
|
||||
msgid "Noon"
|
||||
msgstr "Μεσημέρι"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:87
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:168
|
||||
msgid "Cancel"
|
||||
msgstr "Άκυρο"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:111
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:162
|
||||
msgid "Today"
|
||||
msgstr "Σήμερα"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:114
|
||||
msgid "Calendar"
|
||||
msgstr "Ημερολόγιο"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:160
|
||||
msgid "Yesterday"
|
||||
msgstr "Χθες"
|
||||
|
||||
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:164
|
||||
msgid "Tomorrow"
|
||||
msgstr "Αύριο"
|
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