Code

Ticket #7980: i18n.diff

File i18n.diff, 248.6 KB (added by garcia_marc, 5 years ago)

diff of all work developed on the [soc2009/i18n]

Line 
1Index: django/conf/locale/uk/formats.py
2===================================================================
3--- django/conf/locale/uk/formats.py    (.../trunk)     (revision 0)
4+++ django/conf/locale/uk/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5@@ -0,0 +1,18 @@
6+# -*- encoding: utf-8 -*-
7+# This file is distributed under the same license as the Django package.
8+#
9+
10+DATE_FORMAT = 'j F Y р.'
11+TIME_FORMAT = 'H:i:s'
12+# DATETIME_FORMAT =
13+YEAR_MONTH_FORMAT = 'F Y'
14+MONTH_DAY_FORMAT = 'j F'
15+SHORT_DATE_FORMAT = 'j M Y'
16+# SHORT_DATETIME_FORMAT =
17+# FIRST_DAY_OF_WEEK =
18+# DATE_INPUT_FORMATS =
19+# TIME_INPUT_FORMATS =
20+# DATETIME_INPUT_FORMATS =
21+DECIMAL_SEPARATOR = ','
22+THOUSAND_SEPARATOR = ' '
23+# NUMBER_GROUPING =
24Index: django/conf/locale/uk/__init__.py
25===================================================================
26Index: django/conf/locale/da/formats.py
27===================================================================
28--- django/conf/locale/da/formats.py    (.../trunk)     (revision 0)
29+++ django/conf/locale/da/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
30@@ -0,0 +1,26 @@
31+# -*- encoding: utf-8 -*-
32+# This file is distributed under the same license as the Django package.
33+#
34+
35+DATE_FORMAT = 'j. F Y'
36+TIME_FORMAT = 'H:i'
37+DATETIME_FORMAT = 'j. F Y H:i'
38+YEAR_MONTH_FORMAT = 'F Y'
39+MONTH_DAY_FORMAT = 'j. F'
40+SHORT_DATE_FORMAT = 'd.m.Y'
41+SHORT_DATETIME_FORMAT = 'd.m.Y H:i'
42+FIRST_DAY_OF_WEEK = 1
43+DATE_INPUT_FORMATS = (
44+    '%d.%m.%Y',                        # '25.10.2006'
45+)
46+TIME_INPUT_FORMATS = (
47+    '%H:%M:%S',                        # '14:30:59'
48+    '%H:%M',                           # '14:30'
49+)
50+DATETIME_INPUT_FORMATS = (
51+    '%d.%m.%Y %H:%M:%S',               # '25.10.2006 14:30:59'
52+    '%d.%m.%Y %H:%M',                  # '25.10.2006 14:30'
53+)
54+DECIMAL_SEPARATOR = ','
55+THOUSAND_SEPARATOR = '.'
56+NUMBER_GROUPING = 3
57Index: django/conf/locale/da/__init__.py
58===================================================================
59Index: django/conf/locale/sr/formats.py
60===================================================================
61--- django/conf/locale/sr/formats.py    (.../trunk)     (revision 0)
62+++ django/conf/locale/sr/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
63@@ -0,0 +1,18 @@
64+# -*- encoding: utf-8 -*-
65+# This file is distributed under the same license as the Django package.
66+#
67+
68+DATE_FORMAT = 'd. F Y.'
69+TIME_FORMAT = 'H.i.s'
70+# DATETIME_FORMAT =
71+YEAR_MONTH_FORMAT = 'Y F'
72+MONTH_DAY_FORMAT = 'F j.'
73+SHORT_DATE_FORMAT = 'd.m.Y.'
74+# SHORT_DATETIME_FORMAT =
75+# FIRST_DAY_OF_WEEK =
76+# DATE_INPUT_FORMATS =
77+# TIME_INPUT_FORMATS =
78+# DATETIME_INPUT_FORMATS =
79+DECIMAL_SEPARATOR = '.'
80+THOUSAND_SEPARATOR = ','
81+# NUMBER_GROUPING =
82Index: django/conf/locale/sr/__init__.py
83===================================================================
84Index: django/conf/locale/__init__.py
85===================================================================
86Index: django/conf/locale/fa/formats.py
87===================================================================
88--- django/conf/locale/fa/formats.py    (.../trunk)     (revision 0)
89+++ django/conf/locale/fa/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
90@@ -0,0 +1,18 @@
91+# -*- encoding: utf-8 -*-
92+# This file is distributed under the same license as the Django package.
93+#
94+
95+DATE_FORMAT = 'j F Y'
96+TIME_FORMAT = 'G:i:s'
97+DATETIME_FORMAT = 'j F Y، ساعت G:i:s'
98+YEAR_MONTH_FORMAT = 'F Y'
99+MONTH_DAY_FORMAT = 'j F'
100+SHORT_DATE_FORMAT = 'Y/n/j'
101+SHORT_DATETIME_FORMAT = 'Y/n/j،‏ G:i:s'
102+# FIRST_DAY_OF_WEEK =
103+# DATE_INPUT_FORMATS =
104+# TIME_INPUT_FORMATS =
105+# DATETIME_INPUT_FORMATS =
106+DECIMAL_SEPARATOR = ','
107+THOUSAND_SEPARATOR = '.'
108+# NUMBER_GROUPING =
109Index: django/conf/locale/fa/__init__.py
110===================================================================
111Index: django/conf/locale/bg/formats.py
112===================================================================
113--- django/conf/locale/bg/formats.py    (.../trunk)     (revision 0)
114+++ django/conf/locale/bg/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
115@@ -0,0 +1,18 @@
116+# -*- encoding: utf-8 -*-
117+# This file is distributed under the same license as the Django package.
118+#
119+
120+DATE_FORMAT = 'd F Y'
121+TIME_FORMAT = 'H:i:s'
122+# DATETIME_FORMAT =
123+# YEAR_MONTH_FORMAT =
124+MONTH_DAY_FORMAT = 'j F'
125+SHORT_DATE_FORMAT = 'd.m.Y'
126+# SHORT_DATETIME_FORMAT =
127+# FIRST_DAY_OF_WEEK =
128+# DATE_INPUT_FORMATS =
129+# TIME_INPUT_FORMATS =
130+# DATETIME_INPUT_FORMATS =
131+DECIMAL_SEPARATOR = ','
132+THOUSAND_SEPARATOR = ' '
133+# NUMBER_GROUPING =
134Index: django/conf/locale/bg/__init__.py
135===================================================================
136Index: django/conf/locale/de/formats.py
137===================================================================
138--- django/conf/locale/de/formats.py    (.../trunk)     (revision 0)
139+++ django/conf/locale/de/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
140@@ -0,0 +1,32 @@
141+# -*- encoding: utf-8 -*-
142+# This file is distributed under the same license as the Django package.
143+#
144+
145+DATE_FORMAT = 'j. F Y'
146+TIME_FORMAT = 'H:i:s'
147+DATETIME_FORMAT = 'j. F Y H:i:s'
148+YEAR_MONTH_FORMAT = 'F Y'
149+MONTH_DAY_FORMAT = 'j. F'
150+SHORT_DATE_FORMAT = 'd.m.Y'
151+SHORT_DATETIME_FORMAT = 'd.m.Y H:i:s'
152+FIRST_DAY_OF_WEEK = 1 # Monday
153+DATE_INPUT_FORMATS = (
154+    '%d.%m.%Y', '%d.%m.%y',     # '25.10.2006', '25.10.06'
155+    '%Y-%m-%d', '%y-%m-%d',     # '2006-10-25', '06-10-25'
156+    '%d. %B %Y', '%d. %b. %Y',  # '25. October 2006', '25. Oct. 2006'
157+)
158+TIME_INPUT_FORMATS = (
159+    '%H:%M:%S', # '14:30:59'
160+    '%H:%M',    # '14:30'
161+)
162+DATETIME_INPUT_FORMATS = (
163+    '%d.%m.%Y %H:%M:%S',    # '25.10.2006 14:30:59'
164+    '%d.%m.%Y %H:%M',       # '25.10.2006 14:30'
165+    '%d.%m.%Y',             # '25.10.2006'
166+    '%Y-%m-%d %H:%M:%S',    # '2006-10-25 14:30:59'
167+    '%Y-%m-%d %H:%M',       # '2006-10-25 14:30'
168+    '%Y-%m-%d',             # '2006-10-25'
169+)
170+DECIMAL_SEPARATOR = ','
171+THOUSAND_SEPARATOR = '.'
172+NUMBER_GROUPING = 3
173Index: django/conf/locale/de/__init__.py
174===================================================================
175Index: django/conf/locale/sv/formats.py
176===================================================================
177--- django/conf/locale/sv/formats.py    (.../trunk)     (revision 0)
178+++ django/conf/locale/sv/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
179@@ -0,0 +1,18 @@
180+# -*- encoding: utf-8 -*-
181+# This file is distributed under the same license as the Django package.
182+#
183+
184+DATE_FORMAT = 'j F Y'
185+TIME_FORMAT = 'H.i.s'
186+# DATETIME_FORMAT =
187+YEAR_MONTH_FORMAT = 'Y F'
188+MONTH_DAY_FORMAT = 'j F'
189+SHORT_DATE_FORMAT = 'j M Y'
190+# SHORT_DATETIME_FORMAT =
191+# FIRST_DAY_OF_WEEK =
192+# DATE_INPUT_FORMATS =
193+# TIME_INPUT_FORMATS =
194+# DATETIME_INPUT_FORMATS =
195+DECIMAL_SEPARATOR = ','
196+THOUSAND_SEPARATOR = ' '
197+# NUMBER_GROUPING =
198Index: django/conf/locale/sv/__init__.py
199===================================================================
200Index: django/conf/locale/es_AR/formats.py
201===================================================================
202--- django/conf/locale/es_AR/formats.py (.../trunk)     (revision 0)
203+++ django/conf/locale/es_AR/formats.py (.../branches/soc2009/i18n-improvements)        (revision 11464)
204@@ -0,0 +1,18 @@
205+# -*- encoding: utf-8 -*-
206+# This file is distributed under the same license as the Django package.
207+#
208+
209+# DATE_FORMAT =
210+# TIME_FORMAT =
211+# DATETIME_FORMAT =
212+# YEAR_MONTH_FORMAT =
213+# MONTH_DAY_FORMAT =
214+# SHORT_DATE_FORMAT =
215+# SHORT_DATETIME_FORMAT =
216+# FIRST_DAY_OF_WEEK =
217+# DATE_INPUT_FORMATS =
218+# TIME_INPUT_FORMATS =
219+# DATETIME_INPUT_FORMATS =
220+# DECIMAL_SEPARATOR =
221+# THOUSAND_SEPARATOR =
222+# NUMBER_GROUPING =
223Index: django/conf/locale/es_AR/__init__.py
224===================================================================
225Index: django/conf/locale/ja/formats.py
226===================================================================
227--- django/conf/locale/ja/formats.py    (.../trunk)     (revision 0)
228+++ django/conf/locale/ja/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
229@@ -0,0 +1,18 @@
230+# -*- encoding: utf-8 -*-
231+# This file is distributed under the same license as the Django package.
232+#
233+
234+DATE_FORMAT = 'Y年n月j日'
235+TIME_FORMAT = 'G:i:s'
236+DATETIME_FORMAT = 'Y年n月j日G:i:s'
237+YEAR_MONTH_FORMAT = 'Y年n月'
238+MONTH_DAY_FORMAT = 'n月j日'
239+SHORT_DATE_FORMAT = 'Y/m/d'
240+SHORT_DATETIME_FORMAT = 'Y/m/d G:i:s'
241+# FIRST_DAY_OF_WEEK =
242+# DATE_INPUT_FORMATS =
243+# TIME_INPUT_FORMATS =
244+# DATETIME_INPUT_FORMATS =
245+DECIMAL_SEPARATOR = '.'
246+THOUSAND_SEPARATOR = ','
247+# NUMBER_GROUPING =
248Index: django/conf/locale/ja/__init__.py
249===================================================================
250Index: django/conf/locale/he/formats.py
251===================================================================
252--- django/conf/locale/he/formats.py    (.../trunk)     (revision 0)
253+++ django/conf/locale/he/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
254@@ -0,0 +1,18 @@
255+# -*- encoding: utf-8 -*-
256+# This file is distributed under the same license as the Django package.
257+#
258+
259+DATE_FORMAT = 'j בF Y'
260+TIME_FORMAT = 'H:i:s'
261+DATETIME_FORMAT = 'j בF Y H:i:s'
262+YEAR_MONTH_FORMAT = 'F Y'
263+MONTH_DAY_FORMAT = 'j בF'
264+SHORT_DATE_FORMAT = 'd/m/Y'
265+SHORT_DATETIME_FORMAT = 'd/m/Y H:i:s'
266+# FIRST_DAY_OF_WEEK =
267+# DATE_INPUT_FORMATS =
268+# TIME_INPUT_FORMATS =
269+# DATETIME_INPUT_FORMATS =
270+DECIMAL_SEPARATOR = '.'
271+THOUSAND_SEPARATOR = ','
272+# NUMBER_GROUPING =
273Index: django/conf/locale/he/__init__.py
274===================================================================
275Index: django/conf/locale/fi/formats.py
276===================================================================
277--- django/conf/locale/fi/formats.py    (.../trunk)     (revision 0)
278+++ django/conf/locale/fi/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
279@@ -0,0 +1,18 @@
280+# -*- encoding: utf-8 -*-
281+# This file is distributed under the same license as the Django package.
282+#
283+
284+DATE_FORMAT = 'j. F Y'
285+TIME_FORMAT = 'G.i.s'
286+# DATETIME_FORMAT =
287+YEAR_MONTH_FORMAT = 'F Y'
288+MONTH_DAY_FORMAT = 'j. F'
289+SHORT_DATE_FORMAT = 'j.n.Y'
290+# SHORT_DATETIME_FORMAT =
291+# FIRST_DAY_OF_WEEK =
292+# DATE_INPUT_FORMATS =
293+# TIME_INPUT_FORMATS =
294+# DATETIME_INPUT_FORMATS =
295+DECIMAL_SEPARATOR = ','
296+THOUSAND_SEPARATOR = ' '
297+# NUMBER_GROUPING =
298Index: django/conf/locale/fi/__init__.py
299===================================================================
300Index: django/conf/locale/bn/formats.py
301===================================================================
302--- django/conf/locale/bn/formats.py    (.../trunk)     (revision 0)
303+++ django/conf/locale/bn/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
304@@ -0,0 +1,18 @@
305+# -*- encoding: utf-8 -*-
306+# This file is distributed under the same license as the Django package.
307+#
308+
309+DATE_FORMAT = 'j F, Y'
310+TIME_FORMAT = 'g:i:s A'
311+# DATETIME_FORMAT =
312+YEAR_MONTH_FORMAT = 'F Y'
313+MONTH_DAY_FORMAT = 'j F'
314+SHORT_DATE_FORMAT = 'j M, Y'
315+# SHORT_DATETIME_FORMAT =
316+# FIRST_DAY_OF_WEEK =
317+# DATE_INPUT_FORMATS =
318+# TIME_INPUT_FORMATS =
319+# DATETIME_INPUT_FORMATS =
320+DECIMAL_SEPARATOR = '.'
321+THOUSAND_SEPARATOR = ','
322+# NUMBER_GROUPING =
323Index: django/conf/locale/bn/__init__.py
324===================================================================
325Index: django/conf/locale/nb/formats.py
326===================================================================
327--- django/conf/locale/nb/formats.py    (.../trunk)     (revision 0)
328+++ django/conf/locale/nb/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
329@@ -0,0 +1,38 @@
330+# -*- encoding: utf-8 -*-
331+# This file is distributed under the same license as the Django package.
332+#
333+
334+DATE_FORMAT = 'j. F Y'
335+TIME_FORMAT = 'H:i'
336+DATETIME_FORMAT = 'j. F Y H:i'
337+YEAR_MONTH_FORMAT = 'F Y'
338+MONTH_DAY_FORMAT = 'j. F'
339+SHORT_DATE_FORMAT = 'd.m.Y'
340+SHORT_DATETIME_FORMAT = 'd.m.Y H:i'
341+FIRST_DAY_OF_WEEK = 1 # Monday
342+DATE_INPUT_FORMATS = (
343+    '%Y-%m-%d', '%j.%m.%Y', '%j.%m.%y', # '2006-10-25', '25.10.2006', '25.10.06'
344+    '%Y-%m-%j',                         # '2006-10-25',
345+    '%j. %b %Y', '%j %b %Y',            # '25. okt 2006', '25 okt 2006'
346+    '%j. %b. %Y', '%j %b. %Y',          # '25. okt. 2006', '25 okt. 2006'
347+    '%j. %B %Y', '%j %B %Y',            # '25. oktober 2006', '25 oktober 2006'
348+)
349+TIME_INPUT_FORMATS = (
350+    '%H:%i:%S',     # '14:30:59'
351+    '%H:%i',     # '14:30'
352+)
353+DATETIME_INPUT_FORMATS = (
354+    '%Y-%m-%d %H:%i:%S',     # '2006-10-25 14:30:59'
355+    '%Y-%m-%d %H:%i',        # '2006-10-25 14:30'
356+    '%Y-%m-%d',              # '2006-10-25'
357+    '%Y-%m-%j',              # '2006-10-25'
358+    '%j.%m.%Y %H:%i:%S',     # '25.10.2006 14:30:59'
359+    '%j.%m.%Y %H:%i',        # '25.10.2006 14:30'
360+    '%j.%m.%Y',              # '25.10.2006'
361+    '%j.%m.%y %H:%i:%S',     # '25.10.06 14:30:59'
362+    '%j.%m.%y %H:%i',        # '25.10.06 14:30'
363+    '%j.%m.%y',              # '25.10.06'
364+)
365+DECIMAL_SEPARATOR = ','
366+THOUSAND_SEPARATOR = ' '
367+NUMBER_GROUPING = 3
368\ No newline at end of file
369Index: django/conf/locale/nb/LC_MESSAGES/django.po
370===================================================================
371--- django/conf/locale/nb/LC_MESSAGES/django.po (.../trunk)     (revision 0)
372+++ django/conf/locale/nb/LC_MESSAGES/django.po (.../branches/soc2009/i18n-improvements)        (revision 11464)
373@@ -0,0 +1,4410 @@
374+# translation of django.po to norwegian
375+# Copyright (C) 2005 and beyond
376+# This file is distributed under the same license as the Django package.
377+#
378+msgid ""
379+msgstr ""
380+"Project-Id-Version: Django\n"
381+"Report-Msgid-Bugs-To: \n"
382+"POT-Creation-Date: 2006-05-16 10:12+0200\n"
383+"PO-Revision-Date: 2009-07-24 15:44+0200\n"
384+"Last-Translator: Christian Mikalsen and Jon Lønne\n"
385+"Language-Team: Norsk <no@li.org>\n"
386+"MIME-Version: 1.0\n"
387+"Content-Type: text/plain; charset=UTF-8\n"
388+"Content-Transfer-Encoding: 8bit\n"
389+
390+#: conf/global_settings.py:44
391+msgid "Arabic"
392+msgstr "Arabisk"
393+
394+#: conf/global_settings.py:45
395+msgid "Bengali"
396+msgstr "Bengalsk"
397+
398+#: conf/global_settings.py:46
399+msgid "Bulgarian"
400+msgstr "Bulgarsk"
401+
402+#: conf/global_settings.py:47
403+msgid "Catalan"
404+msgstr "Katalansk"
405+
406+#: conf/global_settings.py:48
407+msgid "Czech"
408+msgstr "Tsjekkisk"
409+
410+#: conf/global_settings.py:49
411+msgid "Welsh"
412+msgstr "Walisisk"
413+
414+#: conf/global_settings.py:50
415+msgid "Danish"
416+msgstr "Dansk"
417+
418+#: conf/global_settings.py:51
419+msgid "German"
420+msgstr "Tysk"
421+
422+#: conf/global_settings.py:52
423+msgid "Greek"
424+msgstr "Gresk"
425+
426+#: conf/global_settings.py:53
427+msgid "English"
428+msgstr "Engelsk"
429+
430+#: conf/global_settings.py:54
431+msgid "Spanish"
432+msgstr "Spansk"
433+
434+#: conf/global_settings.py:55
435+msgid "Estonian"
436+msgstr "Estisk"
437+
438+#: conf/global_settings.py:56
439+msgid "Argentinean Spanish"
440+msgstr "Argentinsk spansk"
441+
442+#: conf/global_settings.py:57
443+msgid "Basque"
444+msgstr "Baskisk"
445+
446+#: conf/global_settings.py:58
447+msgid "Persian"
448+msgstr "Persisk"
449+
450+#: conf/global_settings.py:59
451+msgid "Finnish"
452+msgstr "Finsk"
453+
454+#: conf/global_settings.py:60
455+msgid "French"
456+msgstr "Fransk"
457+
458+#: conf/global_settings.py:61
459+msgid "Irish"
460+msgstr "Irsk"
461+
462+#: conf/global_settings.py:62
463+msgid "Galician"
464+msgstr "Galisisk"
465+
466+#: conf/global_settings.py:63
467+msgid "Hungarian"
468+msgstr "Ungarsk"
469+
470+#: conf/global_settings.py:64
471+msgid "Hebrew"
472+msgstr "Hebraisk"
473+
474+#: conf/global_settings.py:65
475+msgid "Hindi"
476+msgstr "Hindi"
477+
478+#: conf/global_settings.py:66
479+msgid "Croatian"
480+msgstr "Kroatisk"
481+
482+#: conf/global_settings.py:67
483+msgid "Icelandic"
484+msgstr "Islandsk"
485+
486+#: conf/global_settings.py:68
487+msgid "Italian"
488+msgstr "Italiensk"
489+
490+#: conf/global_settings.py:69
491+msgid "Japanese"
492+msgstr "Japansk"
493+
494+#: conf/global_settings.py:70
495+msgid "Georgian"
496+msgstr "Georgisk"
497+
498+#: conf/global_settings.py:71
499+msgid "Korean"
500+msgstr "Koreansk"
501+
502+#: conf/global_settings.py:72
503+msgid "Khmer"
504+msgstr "Khmer"
505+
506+#: conf/global_settings.py:73
507+msgid "Kannada"
508+msgstr "Kannada"
509+
510+#: conf/global_settings.py:74
511+msgid "Latvian"
512+msgstr "Latvisk"
513+
514+#: conf/global_settings.py:75
515+msgid "Lithuanian"
516+msgstr "Litauisk"
517+
518+#: conf/global_settings.py:76
519+msgid "Macedonian"
520+msgstr "Makedonsk"
521+
522+#: conf/global_settings.py:77
523+msgid "Dutch"
524+msgstr "Nederlandsk"
525+
526+#: conf/global_settings.py:78
527+msgid "Norwegian"
528+msgstr "Norsk"
529+
530+#: conf/global_settings.py:79
531+msgid "Polish"
532+msgstr "Polsk"
533+
534+#: conf/global_settings.py:80
535+msgid "Portuguese"
536+msgstr "Portugisisk"
537+
538+#: conf/global_settings.py:81
539+msgid "Brazilian Portuguese"
540+msgstr "Brasiliansk portugisisk"
541+
542+#: conf/global_settings.py:82
543+msgid "Romanian"
544+msgstr "Rumensk"
545+
546+#: conf/global_settings.py:83
547+msgid "Russian"
548+msgstr "Russisk"
549+
550+#: conf/global_settings.py:84
551+msgid "Slovak"
552+msgstr "Slovakisk"
553+
554+#: conf/global_settings.py:85
555+msgid "Slovenian"
556+msgstr "Slovensk"
557+
558+#: conf/global_settings.py:86
559+msgid "Serbian"
560+msgstr "Serbisk"
561+
562+#: conf/global_settings.py:87
563+msgid "Swedish"
564+msgstr "Svensk"
565+
566+#: conf/global_settings.py:88
567+msgid "Tamil"
568+msgstr "Tamil"
569+
570+#: conf/global_settings.py:89
571+msgid "Telugu"
572+msgstr "Telugu"
573+
574+#: conf/global_settings.py:90
575+msgid "Thai"
576+msgstr "Thai"
577+
578+#: conf/global_settings.py:91
579+msgid "Turkish"
580+msgstr "Tyrkisk"
581+
582+#: conf/global_settings.py:92
583+msgid "Ukrainian"
584+msgstr "Ukrainsk"
585+
586+#: conf/global_settings.py:93
587+msgid "Simplified Chinese"
588+msgstr "Simplifisert kinesisk"
589+
590+#: conf/global_settings.py:94
591+msgid "Traditional Chinese"
592+msgstr "Tradisjonell kinesisk"
593+
594+#: contrib/admin/actions.py:60
595+#, python-format
596+msgid "Successfully deleted %(count)d %(items)s."
597+msgstr "Slettet %(count)d %(items)s."
598+
599+#: contrib/admin/actions.py:67 contrib/admin/options.py:1027
600+msgid "Are you sure?"
601+msgstr "Er du sikker?"
602+
603+#: contrib/admin/actions.py:85
604+#, python-format
605+msgid "Delete selected %(verbose_name_plural)s"
606+msgstr "Slett valgte %(verbose_name_plural)s"
607+
608+#: contrib/admin/filterspecs.py:44
609+#, python-format
610+msgid ""
611+"<h3>By %s:</h3>\n"
612+"<ul>\n"
613+msgstr ""
614+"<h3>Etter %s:</h3>\n"
615+"<ul>\n"
616+
617+#: contrib/admin/filterspecs.py:75 contrib/admin/filterspecs.py:92
618+#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
619+msgid "All"
620+msgstr "Alle"
621+
622+#: contrib/admin/filterspecs.py:113
623+msgid "Any date"
624+msgstr "Når som helst"
625+
626+#: contrib/admin/filterspecs.py:114
627+msgid "Today"
628+msgstr "I dag"
629+
630+#: contrib/admin/filterspecs.py:117
631+msgid "Past 7 days"
632+msgstr "Siste syv dager"
633+
634+#: contrib/admin/filterspecs.py:119
635+msgid "This month"
636+msgstr "Denne måneden"
637+
638+#: contrib/admin/filterspecs.py:121
639+msgid "This year"
640+msgstr "I år"
641+
642+#: contrib/admin/filterspecs.py:147 forms/widgets.py:434
643+msgid "Yes"
644+msgstr "Ja"
645+
646+#: contrib/admin/filterspecs.py:147 forms/widgets.py:434
647+msgid "No"
648+msgstr "Nei"
649+
650+#: contrib/admin/filterspecs.py:154 forms/widgets.py:434
651+msgid "Unknown"
652+msgstr "Ukjent"
653+
654+#: contrib/admin/helpers.py:14
655+msgid "Action:"
656+msgstr "Handling:"
657+
658+#: contrib/admin/models.py:19
659+msgid "action time"
660+msgstr "tid for handling"
661+
662+#: contrib/admin/models.py:22
663+msgid "object id"
664+msgstr "objekt-ID"
665+
666+#: contrib/admin/models.py:23
667+msgid "object repr"
668+msgstr "objekt repr"
669+
670+#: contrib/admin/models.py:24
671+msgid "action flag"
672+msgstr "handlingsflagg"
673+
674+#: contrib/admin/models.py:25
675+msgid "change message"
676+msgstr "endre melding"
677+
678+#: contrib/admin/models.py:28
679+msgid "log entry"
680+msgstr "logginnlegg"
681+
682+#: contrib/admin/models.py:29
683+msgid "log entries"
684+msgstr "logginnlegg"
685+
686+#: contrib/admin/options.py:133 contrib/admin/options.py:147
687+msgid "None"
688+msgstr "Ingen"
689+
690+#: contrib/admin/options.py:519
691+#, python-format
692+msgid "Changed %s."
693+msgstr "Endret %s."
694+
695+#: contrib/admin/options.py:519 contrib/admin/options.py:529
696+#: contrib/comments/templates/comments/preview.html:16 forms/models.py:388
697+#: forms/models.py:600
698+msgid "and"
699+msgstr "og"
700+
701+#: contrib/admin/options.py:524
702+#, python-format
703+msgid "Added %(name)s \"%(object)s\"."
704+msgstr "Opprettet %(name)s \"%(object)s\"."
705+
706+#: contrib/admin/options.py:528
707+#, python-format
708+msgid "Changed %(list)s for %(name)s \"%(object)s\"."
709+msgstr "Endret %(list)s for %(name)s \"%(object)s\"."
710+
711+#: contrib/admin/options.py:533
712+#, python-format
713+msgid "Deleted %(name)s \"%(object)s\"."
714+msgstr "Slettet %(name)s \"%(object)s\"."
715+
716+#: contrib/admin/options.py:537
717+msgid "No fields changed."
718+msgstr "Ingen felt endret."
719+
720+#: contrib/admin/options.py:599 contrib/auth/admin.py:67
721+#, python-format
722+msgid "The %(name)s \"%(obj)s\" was added successfully."
723+msgstr "%(name)s \"%(obj)s\" ble opprettet."
724+
725+#: contrib/admin/options.py:603 contrib/admin/options.py:636
726+#: contrib/auth/admin.py:75
727+msgid "You may edit it again below."
728+msgstr "Du kan redigere videre nedenfor."
729+
730+#: contrib/admin/options.py:613 contrib/admin/options.py:646
731+#, python-format
732+msgid "You may add another %s below."
733+msgstr "Du kan opprette ny %s nedenfor."
734+
735+#: contrib/admin/options.py:634
736+#, python-format
737+msgid "The %(name)s \"%(obj)s\" was changed successfully."
738+msgstr "%(name)s \"%(obj)s\" ble endret."
739+
740+#: contrib/admin/options.py:642
741+#, python-format
742+msgid ""
743+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
744+msgstr "%(name)s \"%(obj)s\" ble endret. Du kan redigere videre nedenfor."
745+
746+#: contrib/admin/options.py:773
747+#, python-format
748+msgid "Add %s"
749+msgstr "Opprett %s"
750+
751+#: contrib/admin/options.py:804 contrib/admin/options.py:1005
752+#, python-format
753+msgid "%(name)s object with primary key %(key)r does not exist."
754+msgstr "%(name)s-objekt med primærnøkkelen %(key)r finnes ikke."
755+
756+#: contrib/admin/options.py:861
757+#, python-format
758+msgid "Change %s"
759+msgstr "Rediger %s"
760+
761+#: contrib/admin/options.py:905
762+msgid "Database error"
763+msgstr "Databasefeil"
764+
765+#: contrib/admin/options.py:941
766+#, python-format
767+msgid "%(count)s %(name)s was changed successfully."
768+msgid_plural "%(count)s %(name)s were changed successfully."
769+msgstr[0] "%(count)s %(name)s ble endret."
770+msgstr[1] "%(count)s %(name)s ble endret."
771+
772+#: contrib/admin/options.py:1020
773+#, python-format
774+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
775+msgstr "%(name)s \"%(obj)s\" ble slettet."
776+
777+#: contrib/admin/options.py:1057
778+#, python-format
779+msgid "Change history: %s"
780+msgstr "Endringshistorikk: %s"
781+
782+#: contrib/admin/sites.py:21 contrib/admin/views/decorators.py:14
783+#: contrib/auth/forms.py:80
784+msgid ""
785+"Please enter a correct username and password. Note that both fields are case-"
786+"sensitive."
787+msgstr ""
788+"Vennligst angi korrekt brukernavn og passord. Merk at det er forskjell på "
789+"små og store bokstaver."
790+
791+#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:40
792+msgid "Please log in again, because your session has expired."
793+msgstr "Økten din har tidsavbrutt, vennligst logg inn igjen."
794+
795+#: contrib/admin/sites.py:292 contrib/admin/views/decorators.py:47
796+msgid ""
797+"Looks like your browser isn't configured to accept cookies. Please enable "
798+"cookies, reload this page, and try again."
799+msgstr ""
800+"Det ser ut som om nettleseren din ikke støtter informasjonskapsler "
801+"(cookies). Vennligst konfigurer nettleseren din og prøv igjen."
802+
803+#: contrib/admin/sites.py:308 contrib/admin/sites.py:314
804+#: contrib/admin/views/decorators.py:66
805+msgid "Usernames cannot contain the '@' character."
806+msgstr "Brukernavnet kan ikke inneholde tegnet '@'."
807+
808+#: contrib/admin/sites.py:311 contrib/admin/views/decorators.py:62
809+#, python-format
810+msgid "Your e-mail address is not your username. Try '%s' instead."
811+msgstr "E-postadressen er ikke brukernavnet ditt, prøv '%s' isteden."
812+
813+#: contrib/admin/sites.py:367
814+msgid "Site administration"
815+msgstr "Nettstedsadministrasjon"
816+
817+#: contrib/admin/sites.py:381 contrib/admin/templates/admin/login.html:26
818+#: contrib/admin/templates/registration/password_reset_complete.html:14
819+#: contrib/admin/views/decorators.py:20
820+msgid "Log in"
821+msgstr "Logg inn"
822+
823+#: contrib/admin/sites.py:426
824+#, python-format
825+msgid "%s administration"
826+msgstr "%s-administrasjon"
827+
828+#: contrib/admin/util.py:168
829+#, python-format
830+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
831+msgstr "En eller flere %(fieldname)s i %(name)s: %(obj)s"
832+
833+#: contrib/admin/util.py:173
834+#, python-format
835+msgid "One or more %(fieldname)s in %(name)s:"
836+msgstr "En eller flere %(fieldname)s i %(name)s:"
837+
838+#: contrib/admin/widgets.py:71
839+msgid "Date:"
840+msgstr "Dato:"
841+
842+#: contrib/admin/widgets.py:71
843+msgid "Time:"
844+msgstr "Tid:"
845+
846+#: contrib/admin/widgets.py:95
847+msgid "Currently:"
848+msgstr "Nå:"
849+
850+#: contrib/admin/widgets.py:95
851+msgid "Change:"
852+msgstr "Endre:"
853+
854+#: contrib/admin/widgets.py:124
855+msgid "Lookup"
856+msgstr "Oppslag"
857+
858+#: contrib/admin/widgets.py:236
859+msgid "Add Another"
860+msgstr "Legg til ny"
861+
862+#: contrib/admin/templates/admin/404.html:4
863+#: contrib/admin/templates/admin/404.html:8
864+msgid "Page not found"
865+msgstr "Fant ikke siden"
866+
867+#: contrib/admin/templates/admin/404.html:10
868+msgid "We're sorry, but the requested page could not be found."
869+msgstr "Beklager, men siden du spør etter finnes ikke."
870+
871+#: contrib/admin/templates/admin/500.html:4
872+#: contrib/admin/templates/admin/app_index.html:8
873+#: contrib/admin/templates/admin/base.html:54
874+#: contrib/admin/templates/admin/change_form.html:17
875+#: contrib/admin/templates/admin/change_list.html:25
876+#: contrib/admin/templates/admin/delete_confirmation.html:6
877+#: contrib/admin/templates/admin/delete_selected_confirmation.html:6
878+#: contrib/admin/templates/admin/invalid_setup.html:4
879+#: contrib/admin/templates/admin/object_history.html:6
880+#: contrib/admin/templates/admin/auth/user/change_password.html:10
881+#: contrib/admin/templates/registration/logged_out.html:4
882+#: contrib/admin/templates/registration/password_change_done.html:4
883+#: contrib/admin/templates/registration/password_change_form.html:4
884+#: contrib/admin/templates/registration/password_reset_complete.html:4
885+#: contrib/admin/templates/registration/password_reset_confirm.html:4
886+#: contrib/admin/templates/registration/password_reset_done.html:4
887+#: contrib/admin/templates/registration/password_reset_form.html:4
888+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
889+msgid "Home"
890+msgstr "Hjem"
891+
892+#: contrib/admin/templates/admin/500.html:4
893+msgid "Server error"
894+msgstr "Tjenerfeil"
895+
896+#: contrib/admin/templates/admin/500.html:6
897+msgid "Server error (500)"
898+msgstr "Tjenerfeil (500)"
899+
900+#: contrib/admin/templates/admin/500.html:9
901+msgid "Server Error <em>(500)</em>"
902+msgstr "Tjenerfeil <em>(500)</em>"
903+
904+#: contrib/admin/templates/admin/500.html:10
905+msgid ""
906+"There's been an error. It's been reported to the site administrators via e-"
907+"mail and should be fixed shortly. Thanks for your patience."
908+msgstr ""
909+"Det har oppstått en feil. Feilen er blitt rapportert til administrator via e-"
910+"post, og vil bli fikset snart. Takk for din tålmodighet."
911+
912+#: contrib/admin/templates/admin/actions.html:4
913+msgid "Run the selected action"
914+msgstr "Utfør den valgte handlingen"
915+
916+#: contrib/admin/templates/admin/actions.html:4
917+msgid "Go"
918+msgstr "Gå"
919+
920+#: contrib/admin/templates/admin/app_index.html:10
921+#: contrib/admin/templates/admin/index.html:19
922+#, python-format
923+msgid "%(name)s"
924+msgstr "%(name)s"
925+
926+#: contrib/admin/templates/admin/base.html:27
927+msgid "Welcome,"
928+msgstr "Velkommen,"
929+
930+#: contrib/admin/templates/admin/base.html:32
931+#: contrib/admin/templates/registration/password_change_done.html:3
932+#: contrib/admin/templates/registration/password_change_form.html:3
933+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
934+msgid "Documentation"
935+msgstr "Dokumentasjon"
936+
937+#: contrib/admin/templates/admin/base.html:40
938+#: contrib/admin/templates/admin/auth/user/change_password.html:14
939+#: contrib/admin/templates/admin/auth/user/change_password.html:47
940+#: contrib/admin/templates/registration/password_change_done.html:3
941+#: contrib/admin/templates/registration/password_change_form.html:3
942+msgid "Change password"
943+msgstr "Endre passord"
944+
945+#: contrib/admin/templates/admin/base.html:47
946+#: contrib/admin/templates/registration/password_change_done.html:3
947+#: contrib/admin/templates/registration/password_change_form.html:3
948+msgid "Log out"
949+msgstr "Logg ut"
950+
951+#: contrib/admin/templates/admin/base_site.html:4
952+msgid "Django site admin"
953+msgstr "Django administrasjonsside"
954+
955+#: contrib/admin/templates/admin/base_site.html:7
956+msgid "Django administration"
957+msgstr "Django-administrasjon"
958+
959+#: contrib/admin/templates/admin/change_form.html:20
960+#: contrib/admin/templates/admin/index.html:29
961+msgid "Add"
962+msgstr "Opprett"
963+
964+#: contrib/admin/templates/admin/change_form.html:27
965+#: contrib/admin/templates/admin/object_history.html:10
966+msgid "History"
967+msgstr "Historikk"
968+
969+#: contrib/admin/templates/admin/change_form.html:28
970+#: contrib/admin/templates/admin/edit_inline/stacked.html:13
971+#: contrib/admin/templates/admin/edit_inline/tabular.html:27
972+msgid "View on site"
973+msgstr "Vis på nettside"
974+
975+#: contrib/admin/templates/admin/change_form.html:38
976+#: contrib/admin/templates/admin/change_list.html:54
977+#: contrib/admin/templates/admin/auth/user/change_password.html:23
978+msgid "Please correct the error below."
979+msgid_plural "Please correct the errors below."
980+msgstr[0] "Vennligst korriger feilen under."
981+msgstr[1] "Vennligst korriger feilene under."
982+
983+#: contrib/admin/templates/admin/change_list.html:46
984+#, python-format
985+msgid "Add %(name)s"
986+msgstr "Opprett %(name)s"
987+
988+#: contrib/admin/templates/admin/change_list.html:65
989+msgid "Filter"
990+msgstr "Filtrering"
991+
992+#: contrib/admin/templates/admin/delete_confirmation.html:10
993+#: contrib/admin/templates/admin/submit_line.html:4 forms/formsets.py:275
994+msgid "Delete"
995+msgstr "Slett"
996+
997+#: contrib/admin/templates/admin/delete_confirmation.html:16
998+#, python-format
999+msgid ""
1000+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
1001+"related objects, but your account doesn't have permission to delete the "
1002+"following types of objects:"
1003+msgstr ""
1004+"Hvis du sletter %(object_name)s '%(escaped_object)s', vil også slette "
1005+"relaterte objekter, men du har ikke tillatelse til å slette følgende "
1006+"objekttyper:"
1007+
1008+#: contrib/admin/templates/admin/delete_confirmation.html:23
1009+#, python-format
1010+msgid ""
1011+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
1012+"All of the following related items will be deleted:"
1013+msgstr ""
1014+"Er du sikker på at du vil slette %(object_name)s \"%(escaped_object)s\"? "
1015+"Alle de følgende relaterte objektene vil bli slettet:"
1016+
1017+#: contrib/admin/templates/admin/delete_confirmation.html:28
1018+#: contrib/admin/templates/admin/delete_selected_confirmation.html:33
1019+msgid "Yes, I'm sure"
1020+msgstr "Ja, jeg er sikker"
1021+
1022+#: contrib/admin/templates/admin/delete_selected_confirmation.html:9
1023+msgid "Delete multiple objects"
1024+msgstr "Slett flere objekter"
1025+
1026+#: contrib/admin/templates/admin/delete_selected_confirmation.html:15
1027+#, python-format
1028+msgid ""
1029+"Deleting the %(object_name)s would result in deleting related objects, but "
1030+"your account doesn't have permission to delete the following types of "
1031+"objects:"
1032+msgstr ""
1033+"Sletting av %(object_name)s vil også slette relaterte objekter, men du har "
1034+"ikke tillatelse til å slette følgende objekttyper:"
1035+
1036+#: contrib/admin/templates/admin/delete_selected_confirmation.html:22
1037+#, python-format
1038+msgid ""
1039+"Are you sure you want to delete the selected %(object_name)s objects? All of "
1040+"the following objects and it's related items will be deleted:"
1041+msgstr ""
1042+"Er du sikker på at du vil slette disse %(object_name)s-objektene? De "
1043+"følgende objektene og deres relaterte objekter vil bli slettet:"
1044+
1045+#: contrib/admin/templates/admin/filter.html:2
1046+#, python-format
1047+msgid " By %(filter_title)s "
1048+msgstr "Etter %(filter_title)s "
1049+
1050+#: contrib/admin/templates/admin/index.html:18
1051+#, python-format
1052+msgid "Models available in the %(name)s application."
1053+msgstr "Modeller tilgjengelig i %(name)s-applikasjonen."
1054+
1055+#: contrib/admin/templates/admin/index.html:35
1056+msgid "Change"
1057+msgstr "Endre"
1058+
1059+#: contrib/admin/templates/admin/index.html:45
1060+msgid "You don't have permission to edit anything."
1061+msgstr "Du har ikke rettigheter til å redigere noe."
1062+
1063+#: contrib/admin/templates/admin/index.html:53
1064+msgid "Recent Actions"
1065+msgstr "Siste handlinger"
1066+
1067+#: contrib/admin/templates/admin/index.html:54
1068+msgid "My Actions"
1069+msgstr "Mine handlinger"
1070+
1071+#: contrib/admin/templates/admin/index.html:58
1072+msgid "None available"
1073+msgstr "Ingen tilgjengelige"
1074+
1075+#: contrib/admin/templates/admin/index.html:72
1076+msgid "Unknown content"
1077+msgstr "Ukjent innhold"
1078+
1079+#: contrib/admin/templates/admin/invalid_setup.html:7
1080+msgid ""
1081+"Something's wrong with your database installation. Make sure the appropriate "
1082+"database tables have been created, and make sure the database is readable by "
1083+"the appropriate user."
1084+msgstr ""
1085+"Noe er galt med databaseinstallasjonen din. Sørg for at databasetabellene er "
1086+"opprettet og at brukeren har de nødvendige rettigheter."
1087+
1088+#: contrib/admin/templates/admin/login.html:19
1089+msgid "Username:"
1090+msgstr "Brukernavn:"
1091+
1092+#: contrib/admin/templates/admin/login.html:22
1093+msgid "Password:"
1094+msgstr "Passord:"
1095+
1096+#: contrib/admin/templates/admin/object_history.html:22
1097+msgid "Date/time"
1098+msgstr "Dato/tid"
1099+
1100+#: contrib/admin/templates/admin/object_history.html:23
1101+msgid "User"
1102+msgstr "Bruker"
1103+
1104+#: contrib/admin/templates/admin/object_history.html:24
1105+#: contrib/comments/templates/comments/moderation_queue.html:33
1106+msgid "Action"
1107+msgstr "Handling"
1108+
1109+#: contrib/admin/templates/admin/object_history.html:30
1110+#: utils/translation/trans_real.py:400
1111+msgid "DATETIME_FORMAT"
1112+msgstr "j. F Y H:i"
1113+
1114+#: contrib/admin/templates/admin/object_history.html:38
1115+msgid ""
1116+"This object doesn't have a change history. It probably wasn't added via this "
1117+"admin site."
1118+msgstr ""
1119+"Dette objektet har ingen endringshistorikk. Det var sannsynligvis ikke "
1120+"opprettet med administrasjonssiden."
1121+
1122+#: contrib/admin/templates/admin/pagination.html:10
1123+msgid "Show all"
1124+msgstr "Vis alle"
1125+
1126+#: contrib/admin/templates/admin/pagination.html:11
1127+#: contrib/admin/templates/admin/submit_line.html:3
1128+msgid "Save"
1129+msgstr "Lagre"
1130+
1131+#: contrib/admin/templates/admin/search_form.html:8
1132+msgid "Search"
1133+msgstr "Søk"
1134+
1135+#: contrib/admin/templates/admin/search_form.html:10
1136+#, python-format
1137+msgid "1 result"
1138+msgid_plural "%(counter)s results"
1139+msgstr[0] "Ett resultat"
1140+msgstr[1] "%(counter)s resultater"
1141+
1142+#: contrib/admin/templates/admin/search_form.html:10
1143+#, python-format
1144+msgid "%(full_result_count)s total"
1145+msgstr "%(full_result_count)s totalt"
1146+
1147+#: contrib/admin/templates/admin/submit_line.html:5
1148+msgid "Save as new"
1149+msgstr "Lagre som ny"
1150+
1151+#: contrib/admin/templates/admin/submit_line.html:6
1152+msgid "Save and add another"
1153+msgstr "Lagre og opprett ny"
1154+
1155+#: contrib/admin/templates/admin/submit_line.html:7
1156+msgid "Save and continue editing"
1157+msgstr "Lagre og fortsett å redigere"
1158+
1159+#: contrib/admin/templates/admin/auth/user/add_form.html:6
1160+msgid ""
1161+"First, enter a username and password. Then, you'll be able to edit more user "
1162+"options."
1163+msgstr ""
1164+"Skriv først inn brukernavn og passord. Deretter vil du få mulighet til å "
1165+"endre flere brukerinnstillinger."
1166+
1167+#: contrib/admin/templates/admin/auth/user/add_form.html:13
1168+#: contrib/auth/forms.py:14 contrib/auth/forms.py:47 contrib/auth/forms.py:59
1169+msgid "Username"
1170+msgstr "Brukernavn"
1171+
1172+#: contrib/admin/templates/admin/auth/user/add_form.html:20
1173+#: contrib/admin/templates/admin/auth/user/change_password.html:34
1174+#: contrib/auth/forms.py:17 contrib/auth/forms.py:60 contrib/auth/forms.py:185
1175+msgid "Password"
1176+msgstr "Passord"
1177+
1178+#: contrib/admin/templates/admin/auth/user/add_form.html:26
1179+#: contrib/admin/templates/admin/auth/user/change_password.html:40
1180+#: contrib/auth/forms.py:186
1181+msgid "Password (again)"
1182+msgstr "Passord (gjenta)"
1183+
1184+#: contrib/admin/templates/admin/auth/user/add_form.html:27
1185+#: contrib/admin/templates/admin/auth/user/change_password.html:41
1186+msgid "Enter the same password as above, for verification."
1187+msgstr "Skriv inn det samme passordet som ovenfor, for verifisering."
1188+
1189+#: contrib/admin/templates/admin/auth/user/change_password.html:27
1190+#, python-format
1191+msgid "Enter a new password for the user <strong>%(username)s</strong>."
1192+msgstr "Skriv inn et nytt passord for brukeren <strong>%(username)s</strong>."
1193+
1194+#: contrib/admin/templates/admin/edit_inline/tabular.html:15
1195+msgid "Delete?"
1196+msgstr "Slette?"
1197+
1198+#: contrib/admin/templates/registration/logged_out.html:8
1199+msgid "Thanks for spending some quality time with the Web site today."
1200+msgstr "Takk for at du valgte å bruke kvalitetstid på nettstedet i dag."
1201+
1202+#: contrib/admin/templates/registration/logged_out.html:10
1203+msgid "Log in again"
1204+msgstr "Logg inn igjen"
1205+
1206+#: contrib/admin/templates/registration/password_change_done.html:4
1207+#: contrib/admin/templates/registration/password_change_form.html:4
1208+#: contrib/admin/templates/registration/password_change_form.html:6
1209+#: contrib/admin/templates/registration/password_change_form.html:10
1210+msgid "Password change"
1211+msgstr "Endre passord"
1212+
1213+#: contrib/admin/templates/registration/password_change_done.html:6
1214+#: contrib/admin/templates/registration/password_change_done.html:10
1215+msgid "Password change successful"
1216+msgstr "Passord endret"
1217+
1218+#: contrib/admin/templates/registration/password_change_done.html:12
1219+msgid "Your password was changed."
1220+msgstr "Ditt passord ble endret."
1221+
1222+#: contrib/admin/templates/registration/password_change_form.html:12
1223+msgid ""
1224+"Please enter your old password, for security's sake, and then enter your new "
1225+"password twice so we can verify you typed it in correctly."
1226+msgstr ""
1227+"Venligst oppgi ditt gamle passord av sikkerhetsgrunner. Oppgi deretter ditt "
1228+"nye passord to ganger, slik at vi kan kontrollere at det er korrekt."
1229+
1230+#: contrib/admin/templates/registration/password_change_form.html:17
1231+msgid "Old password:"
1232+msgstr "Gammelt passord:"
1233+
1234+#: contrib/admin/templates/registration/password_change_form.html:19
1235+#: contrib/admin/templates/registration/password_reset_confirm.html:18
1236+msgid "New password:"
1237+msgstr "Nytt passord:"
1238+
1239+#: contrib/admin/templates/registration/password_change_form.html:21
1240+#: contrib/admin/templates/registration/password_reset_confirm.html:20
1241+msgid "Confirm password:"
1242+msgstr "Gjenta nytt passord:"
1243+
1244+#: contrib/admin/templates/registration/password_change_form.html:23
1245+#: contrib/admin/templates/registration/password_reset_confirm.html:21
1246+msgid "Change my password"
1247+msgstr "Endre passord"
1248+
1249+#: contrib/admin/templates/registration/password_reset_complete.html:4
1250+#: contrib/admin/templates/registration/password_reset_confirm.html:6
1251+#: contrib/admin/templates/registration/password_reset_done.html:4
1252+#: contrib/admin/templates/registration/password_reset_form.html:4
1253+#: contrib/admin/templates/registration/password_reset_form.html:6
1254+#: contrib/admin/templates/registration/password_reset_form.html:10
1255+msgid "Password reset"
1256+msgstr "Nullstill passord"
1257+
1258+#: contrib/admin/templates/registration/password_reset_complete.html:6
1259+#: contrib/admin/templates/registration/password_reset_complete.html:10
1260+msgid "Password reset complete"
1261+msgstr "Passord nullstilt"
1262+
1263+#: contrib/admin/templates/registration/password_reset_complete.html:12
1264+msgid "Your password has been set.  You may go ahead and log in now."
1265+msgstr "Passordet ditt er satt. Du kan nå logge inn."
1266+
1267+#: contrib/admin/templates/registration/password_reset_confirm.html:4
1268+msgid "Password reset confirmation"
1269+msgstr "Bekreftelse på nullstilt passord"
1270+
1271+#: contrib/admin/templates/registration/password_reset_confirm.html:12
1272+msgid "Enter new password"
1273+msgstr "Oppgi nytt passord"
1274+
1275+#: contrib/admin/templates/registration/password_reset_confirm.html:14
1276+msgid ""
1277+"Please enter your new password twice so we can verify you typed it in "
1278+"correctly."
1279+msgstr ""
1280+"Venligst oppgi ditt nye passord to ganger, for å sikre at du oppgir det "
1281+"korrekt."
1282+
1283+#: contrib/admin/templates/registration/password_reset_confirm.html:26
1284+msgid "Password reset unsuccessful"
1285+msgstr "Passordet ble ikke nullstilt"
1286+
1287+#: contrib/admin/templates/registration/password_reset_confirm.html:28
1288+msgid ""
1289+"The password reset link was invalid, possibly because it has already been "
1290+"used.  Please request a new password reset."
1291+msgstr ""
1292+"Nullstillingslinken er ugyldig, kanskje fordi den allerede har vært brukt. "
1293+"Vennligst nullstill passordet ditt på nytt."
1294+
1295+#: contrib/admin/templates/registration/password_reset_done.html:6
1296+#: contrib/admin/templates/registration/password_reset_done.html:10
1297+msgid "Password reset successful"
1298+msgstr "Passordet ble nullstilt"
1299+
1300+#: contrib/admin/templates/registration/password_reset_done.html:12
1301+msgid ""
1302+"We've e-mailed you instructions for setting your password to the e-mail "
1303+"address you submitted. You should be receiving it shortly."
1304+msgstr ""
1305+"Vi har sendt deg en e-post med instruksjoner for nullstilling av passord. Du "
1306+"bør motta den om kort tid."
1307+
1308+#: contrib/admin/templates/registration/password_reset_email.html:2
1309+msgid "You're receiving this e-mail because you requested a password reset"
1310+msgstr ""
1311+"Du har mottatt denne e-posten fordi du har bedt om nullstilling av passordet "
1312+"ditt"
1313+
1314+#: contrib/admin/templates/registration/password_reset_email.html:3
1315+#, python-format
1316+msgid "for your user account at %(site_name)s"
1317+msgstr "for din konto på %(site_name)s"
1318+
1319+#: contrib/admin/templates/registration/password_reset_email.html:5
1320+msgid "Please go to the following page and choose a new password:"
1321+msgstr "Vennligst gå til følgende side og velg et nytt passord:"
1322+
1323+#: contrib/admin/templates/registration/password_reset_email.html:9
1324+msgid "Your username, in case you've forgotten:"
1325+msgstr "Brukernavnet ditt, i tilfelle du har glemt det:"
1326+
1327+#: contrib/admin/templates/registration/password_reset_email.html:11
1328+msgid "Thanks for using our site!"
1329+msgstr "Takk for at du bruker siden vår!"
1330+
1331+#: contrib/admin/templates/registration/password_reset_email.html:13
1332+#, python-format
1333+msgid "The %(site_name)s team"
1334+msgstr "Hilsen %(site_name)s"
1335+
1336+#: contrib/admin/templates/registration/password_reset_form.html:12
1337+msgid ""
1338+"Forgotten your password? Enter your e-mail address below, and we'll e-mail "
1339+"instructions for setting a new one."
1340+msgstr ""
1341+"Glemt passordet ditt? Oppgi e-postadressen din under, så sender vi deg en e-"
1342+"post med instruksjoner for nullstilling av passord."
1343+
1344+#: contrib/admin/templates/registration/password_reset_form.html:16
1345+msgid "E-mail address:"
1346+msgstr "E-postadresse:"
1347+
1348+#: contrib/admin/templates/registration/password_reset_form.html:16
1349+msgid "Reset my password"
1350+msgstr "Nullstill mitt passord"
1351+
1352+#: contrib/admin/templatetags/admin_list.py:299
1353+msgid "All dates"
1354+msgstr "Alle datoer"
1355+
1356+#: contrib/admin/views/main.py:70
1357+#, python-format
1358+msgid "Select %s"
1359+msgstr "Velg %s"
1360+
1361+#: contrib/admin/views/main.py:70
1362+#, python-format
1363+msgid "Select %s to change"
1364+msgstr "Velg %s du ønsker å redigere"
1365+
1366+#: contrib/admin/views/template.py:37 contrib/sites/models.py:38
1367+msgid "site"
1368+msgstr "nettside"
1369+
1370+#: contrib/admin/views/template.py:39
1371+msgid "template"
1372+msgstr "mal"
1373+
1374+#: contrib/admindocs/views.py:61 contrib/admindocs/views.py:63
1375+#: contrib/admindocs/views.py:65
1376+msgid "tag:"
1377+msgstr "tag:"
1378+
1379+#: contrib/admindocs/views.py:94 contrib/admindocs/views.py:96
1380+#: contrib/admindocs/views.py:98
1381+msgid "filter:"
1382+msgstr "filter:"
1383+
1384+#: contrib/admindocs/views.py:158 contrib/admindocs/views.py:160
1385+#: contrib/admindocs/views.py:162
1386+msgid "view:"
1387+msgstr "view:"
1388+
1389+#: contrib/admindocs/views.py:190
1390+#, python-format
1391+msgid "App %r not found"
1392+msgstr "Fant ikke applikasjonen %r"
1393+
1394+#: contrib/admindocs/views.py:197
1395+#, python-format
1396+msgid "Model %(model_name)r not found in app %(app_label)r"
1397+msgstr "Fant ikke modellen %(model_name)r i applikasjonen %(app_label)r"
1398+
1399+#: contrib/admindocs/views.py:209
1400+#, python-format
1401+msgid "the related `%(app_label)s.%(data_type)s` object"
1402+msgstr "det relaterte `%(app_label)s.%(data_type)s`-objektet"
1403+
1404+#: contrib/admindocs/views.py:209 contrib/admindocs/views.py:228
1405+#: contrib/admindocs/views.py:233 contrib/admindocs/views.py:247
1406+#: contrib/admindocs/views.py:261 contrib/admindocs/views.py:266
1407+msgid "model:"
1408+msgstr "modell:"
1409+
1410+#: contrib/admindocs/views.py:224 contrib/admindocs/views.py:256
1411+#, python-format
1412+msgid "related `%(app_label)s.%(object_name)s` objects"
1413+msgstr "relaterte `%(app_label)s.%(object_name)s`-objekter"
1414+
1415+#: contrib/admindocs/views.py:228 contrib/admindocs/views.py:261
1416+#, python-format
1417+msgid "all %s"
1418+msgstr "alle %s"
1419+
1420+#: contrib/admindocs/views.py:233 contrib/admindocs/views.py:266
1421+#, python-format
1422+msgid "number of %s"
1423+msgstr "antall %s"
1424+
1425+#: contrib/admindocs/views.py:271
1426+#, python-format
1427+msgid "Fields on %s objects"
1428+msgstr "Felter på %s-objekter"
1429+
1430+#: contrib/admindocs/views.py:334 contrib/admindocs/views.py:345
1431+#: contrib/admindocs/views.py:347 contrib/admindocs/views.py:353
1432+#: contrib/admindocs/views.py:354 contrib/admindocs/views.py:356
1433+msgid "Integer"
1434+msgstr "Heltall"
1435+
1436+#: contrib/admindocs/views.py:335
1437+msgid "Boolean (Either True or False)"
1438+msgstr "Boolsk (True eller False)"
1439+
1440+#: contrib/admindocs/views.py:336 contrib/admindocs/views.py:355
1441+#, python-format
1442+msgid "String (up to %(max_length)s)"
1443+msgstr "Tekst (opp til %(max_length)s tegn)"
1444+
1445+#: contrib/admindocs/views.py:337
1446+msgid "Comma-separated integers"
1447+msgstr "Heltall adskilt med komma"
1448+
1449+#: contrib/admindocs/views.py:338
1450+msgid "Date (without time)"
1451+msgstr "Dato (uten tid)"
1452+
1453+#: contrib/admindocs/views.py:339
1454+msgid "Date (with time)"
1455+msgstr "Dato (med tid)"
1456+
1457+#: contrib/admindocs/views.py:340
1458+msgid "Decimal number"
1459+msgstr "Desimaltall"
1460+
1461+#: contrib/admindocs/views.py:341
1462+msgid "E-mail address"
1463+msgstr "E-postadresse"
1464+
1465+#: contrib/admindocs/views.py:342 contrib/admindocs/views.py:343
1466+#: contrib/admindocs/views.py:346
1467+msgid "File path"
1468+msgstr "Filsti"
1469+
1470+#: contrib/admindocs/views.py:344
1471+msgid "Floating point number"
1472+msgstr "Flyttall"
1473+
1474+#: contrib/admindocs/views.py:348 contrib/comments/models.py:60
1475+msgid "IP address"
1476+msgstr "IP-adresse"
1477+
1478+#: contrib/admindocs/views.py:350
1479+msgid "Boolean (Either True, False or None)"
1480+msgstr "Boolsk (True, False eller None)"
1481+
1482+#: contrib/admindocs/views.py:351
1483+msgid "Relation to parent model"
1484+msgstr "Relasjon til foreldermodell"
1485+
1486+#: contrib/admindocs/views.py:352
1487+msgid "Phone number"
1488+msgstr "Telefonnummer"
1489+
1490+#: contrib/admindocs/views.py:357
1491+msgid "Text"
1492+msgstr "Tekst"
1493+
1494+#: contrib/admindocs/views.py:358
1495+msgid "Time"
1496+msgstr "Tid"
1497+
1498+#: contrib/admindocs/views.py:359 contrib/comments/forms.py:95
1499+#: contrib/comments/templates/comments/moderation_queue.html:37
1500+#: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7
1501+msgid "URL"
1502+msgstr "Nettadresse"
1503+
1504+#: contrib/admindocs/views.py:360
1505+msgid "U.S. state (two uppercase letters)"
1506+msgstr "Stat (i USA, to store bokstaver)"
1507+
1508+#: contrib/admindocs/views.py:361
1509+msgid "XML text"
1510+msgstr "XML-tekst"
1511+
1512+#: contrib/admindocs/views.py:387
1513+#, python-format
1514+msgid "%s does not appear to be a urlpattern object"
1515+msgstr "%s ser ikke ut til å være et urlpattern-objekt"
1516+
1517+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
1518+msgid "Bookmarklets"
1519+msgstr "Bokmerker"
1520+
1521+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:4
1522+msgid "Documentation bookmarklets"
1523+msgstr "Dokumentasjonsbokmerker"
1524+
1525+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:8
1526+msgid ""
1527+"\n"
1528+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
1529+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
1530+"select the bookmarklet from any page in the site.  Note that some of these\n"
1531+"bookmarklets require you to be viewing the site from a computer designated\n"
1532+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
1533+"your computer is \"internal\").</p>\n"
1534+msgstr ""
1535+"\n"
1536+"<p class=\"help\">For å installere bokmerker, dra linken til verktøylinja\n"
1537+"for bokmerker, eller høyreklikk og legg til i bokmerker. Nå kan du du velge\n"
1538+"bokmerket fra hvilken som helst side på nettstedet. Noen av disse\n"
1539+"bokmerkene krever at datamaskinen du bruker er markert som \"intern\"\n"
1540+"(kontakt din systemadministrator hvis du er usikker på om maskinen din er "
1541+"\"intern\").</p>\n"
1542+
1543+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:18
1544+msgid "Documentation for this page"
1545+msgstr "Dokumentasjon for denne siden"
1546+
1547+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:19
1548+msgid ""
1549+"Jumps you from any page to the documentation for the view that generates "
1550+"that page."
1551+msgstr ""
1552+"Hopp fra hvilken som helst side til dokumentasjonen for visningsfunksjonen "
1553+"som genererte den siden."
1554+
1555+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:21
1556+msgid "Show object ID"
1557+msgstr "Vis objekt-ID"
1558+
1559+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:22
1560+msgid ""
1561+"Shows the content-type and unique ID for pages that represent a single "
1562+"object."
1563+msgstr ""
1564+"Viser \"content-type\" og en unik ID for sider som representerer et enkelt "
1565+"objekt."
1566+
1567+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:24
1568+msgid "Edit this object (current window)"
1569+msgstr "Endre dette objektet (nåværende vindu)"
1570+
1571+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:25
1572+msgid "Jumps to the admin page for pages that represent a single object."
1573+msgstr ""
1574+"Hopper til administrasjonssiden for sider som representerer et enkelt objekt."
1575+
1576+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:27
1577+msgid "Edit this object (new window)"
1578+msgstr "Endre dette objektet (nytt vindu)"
1579+
1580+#: contrib/admindocs/templates/admin_doc/bookmarklets.html:28
1581+msgid "As above, but opens the admin page in a new window."
1582+msgstr "Samme som over, men åpner administrasjonssiden i et nytt vindu."
1583+
1584+#: contrib/auth/admin.py:21
1585+msgid "Personal info"
1586+msgstr "Personlig informasjon"
1587+
1588+#: contrib/auth/admin.py:22
1589+msgid "Permissions"
1590+msgstr "Rettigheter"
1591+
1592+#: contrib/auth/admin.py:23
1593+msgid "Important dates"
1594+msgstr "Viktige datoer"
1595+
1596+#: contrib/auth/admin.py:24
1597+msgid "Groups"
1598+msgstr "Grupper"
1599+
1600+#: contrib/auth/admin.py:80
1601+msgid "Add user"
1602+msgstr "Opprett ny bruker"
1603+
1604+#: contrib/auth/admin.py:106
1605+msgid "Password changed successfully."
1606+msgstr "Passordet er endret."
1607+
1608+#: contrib/auth/admin.py:112
1609+#, python-format
1610+msgid "Change password: %s"
1611+msgstr "Endre passord: %s"
1612+
1613+#: contrib/auth/forms.py:15 contrib/auth/forms.py:48
1614+#: contrib/auth/models.py:128
1615+msgid ""
1616+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
1617+"digits and underscores)."
1618+msgstr ""
1619+"Påkrevet. 30 tegn eller færre. Kun alfanumeriske tegn (bokstaver, tall og "
1620+"understreker)."
1621+
1622+#: contrib/auth/forms.py:16 contrib/auth/forms.py:49
1623+msgid "This value must contain only letters, numbers and underscores."
1624+msgstr "Feltet kan kun inneholde bokstaver, nummer og understreker."
1625+
1626+#: contrib/auth/forms.py:18
1627+msgid "Password confirmation"
1628+msgstr "Passordbekreftelse"
1629+
1630+#: contrib/auth/forms.py:30
1631+msgid "A user with that username already exists."
1632+msgstr "Det eksisterer allerede en bruker med dette brukernavnet."
1633+
1634+#: contrib/auth/forms.py:36 contrib/auth/forms.py:155
1635+#: contrib/auth/forms.py:197
1636+msgid "The two password fields didn't match."
1637+msgstr "De to passordfeltene er ikke like."
1638+
1639+#: contrib/auth/forms.py:82
1640+msgid "This account is inactive."
1641+msgstr "Denne kontoen er inaktiv."
1642+
1643+#: contrib/auth/forms.py:87
1644+msgid ""
1645+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
1646+"required for logging in."
1647+msgstr ""
1648+"Din nettleser ser ikke ut til å støtte informasjonskapsler (cookies). "
1649+"Informasjonskapsler er påkrevet for å logge inn."
1650+
1651+#: contrib/auth/forms.py:100
1652+msgid "E-mail"
1653+msgstr "E-post"
1654+
1655+#: contrib/auth/forms.py:109
1656+msgid ""
1657+"That e-mail address doesn't have an associated user account. Are you sure "
1658+"you've registered?"
1659+msgstr ""
1660+"Den oppgitte e-postadressen er ikke registrert hos oss. Er du sikker på at "
1661+"du er registrert?"
1662+
1663+#: contrib/auth/forms.py:135
1664+#, python-format
1665+msgid "Password reset on %s"
1666+msgstr "Nullstilling av passord på %s"
1667+
1668+#: contrib/auth/forms.py:143
1669+msgid "New password"
1670+msgstr "Nytt passord"
1671+
1672+#: contrib/auth/forms.py:144
1673+msgid "New password confirmation"
1674+msgstr "Bekreft nytt passord"
1675+
1676+#: contrib/auth/forms.py:169
1677+msgid "Old password"
1678+msgstr "Gammelt passord"
1679+
1680+#: contrib/auth/forms.py:177
1681+msgid "Your old password was entered incorrectly. Please enter it again."
1682+msgstr "Ditt gamle passord er galt. Vennligst prøv igjen."
1683+
1684+#: contrib/auth/models.py:63 contrib/auth/models.py:86
1685+msgid "name"
1686+msgstr "navn"
1687+
1688+#: contrib/auth/models.py:65
1689+msgid "codename"
1690+msgstr "kodenavn"
1691+
1692+#: contrib/auth/models.py:68
1693+msgid "permission"
1694+msgstr "rettighet"
1695+
1696+#: contrib/auth/models.py:69 contrib/auth/models.py:87
1697+msgid "permissions"
1698+msgstr "rettigheter"
1699+
1700+#: contrib/auth/models.py:90
1701+msgid "group"
1702+msgstr "gruppe"
1703+
1704+#: contrib/auth/models.py:91 contrib/auth/models.py:138
1705+msgid "groups"
1706+msgstr "grupper"
1707+
1708+#: contrib/auth/models.py:128
1709+msgid "username"
1710+msgstr "brukernavn"
1711+
1712+#: contrib/auth/models.py:129
1713+msgid "first name"
1714+msgstr "fornavn"
1715+
1716+#: contrib/auth/models.py:130
1717+msgid "last name"
1718+msgstr "etternavn"
1719+
1720+#: contrib/auth/models.py:131
1721+msgid "e-mail address"
1722+msgstr "e-postadresse"
1723+
1724+#: contrib/auth/models.py:132
1725+msgid "password"
1726+msgstr "passord"
1727+
1728+#: contrib/auth/models.py:132
1729+msgid ""
1730+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
1731+"password form</a>."
1732+msgstr ""
1733+"Bruk '[algo]$[salt]$[hexdigest]' eller <a href=\"password/\">endre passord-"
1734+"skjemaet</a>."
1735+
1736+#: contrib/auth/models.py:133
1737+msgid "staff status"
1738+msgstr "administrasjonsstatus"
1739+
1740+#: contrib/auth/models.py:133
1741+msgid "Designates whether the user can log into this admin site."
1742+msgstr "Angir at brukeren kan logge inn på denne administrasjonssiden."
1743+
1744+#: contrib/auth/models.py:134
1745+msgid "active"
1746+msgstr "aktiv"
1747+
1748+#: contrib/auth/models.py:134
1749+msgid ""
1750+"Designates whether this user should be treated as active. Unselect this "
1751+"instead of deleting accounts."
1752+msgstr ""
1753+"Angir at denne brukeren er aktiv. Avmerk denne i stedet for å slette kontoen."
1754+
1755+#: contrib/auth/models.py:135
1756+msgid "superuser status"
1757+msgstr "superbruker"
1758+
1759+#: contrib/auth/models.py:135
1760+msgid ""
1761+"Designates that this user has all permissions without explicitly assigning "
1762+"them."
1763+msgstr ""
1764+"Angir at denne brukeren har alle rettigheter uten å eksplisitt sette de."
1765+
1766+#: contrib/auth/models.py:136
1767+msgid "last login"
1768+msgstr "siste innlogging"
1769+
1770+#: contrib/auth/models.py:137
1771+msgid "date joined"
1772+msgstr "registrert"
1773+
1774+#: contrib/auth/models.py:139
1775+msgid ""
1776+"In addition to the permissions manually assigned, this user will also get "
1777+"all permissions granted to each group he/she is in."
1778+msgstr ""
1779+"I tillegg til de rettighetene som blir angitt manuelt, får brukeren også "
1780+"rettighetene til gruppene han/hun er med i."
1781+
1782+#: contrib/auth/models.py:140
1783+msgid "user permissions"
1784+msgstr "Brukerrettigheter"
1785+
1786+#: contrib/auth/models.py:144 contrib/comments/models.py:50
1787+#: contrib/comments/models.py:168
1788+msgid "user"
1789+msgstr "bruker"
1790+
1791+#: contrib/auth/models.py:145
1792+msgid "users"
1793+msgstr "brukere"
1794+
1795+#: contrib/auth/models.py:301
1796+msgid "message"
1797+msgstr "melding"
1798+
1799+#: contrib/auth/views.py:56
1800+msgid "Logged out"
1801+msgstr "Logget ut"
1802+
1803+#: contrib/auth/management/commands/createsuperuser.py:23 forms/fields.py:429
1804+msgid "Enter a valid e-mail address."
1805+msgstr "Oppgi en gyldig e-postadresse."
1806+
1807+#: contrib/comments/admin.py:11
1808+msgid "Content"
1809+msgstr "Innhold"
1810+
1811+#: contrib/comments/admin.py:14
1812+msgid "Metadata"
1813+msgstr "Metadata"
1814+
1815+#: contrib/comments/feeds.py:13
1816+#, python-format
1817+msgid "%(site_name)s comments"
1818+msgstr "%(site_name)s - kommentarer"
1819+
1820+#: contrib/comments/feeds.py:23
1821+#, python-format
1822+msgid "Latest comments on %(site_name)s"
1823+msgstr "Siste kommentarer fra %(site_name)s"
1824+
1825+#: contrib/comments/forms.py:93
1826+#: contrib/comments/templates/comments/moderation_queue.html:34
1827+msgid "Name"
1828+msgstr "Navn"
1829+
1830+#: contrib/comments/forms.py:94
1831+msgid "Email address"
1832+msgstr "E-postadresse"
1833+
1834+#: contrib/comments/forms.py:96
1835+#: contrib/comments/templates/comments/moderation_queue.html:35
1836+msgid "Comment"
1837+msgstr "Kommentar"
1838+
1839+#: contrib/comments/forms.py:173
1840+#, python-format
1841+msgid "Watch your mouth! The word %s is not allowed here."
1842+msgid_plural "Watch your mouth! The words %s are not allowed here."
1843+msgstr[0] "Pass munnen din! Ordet %s er ikke tillatt her."
1844+msgstr[1] "Pass munnen din! Ordene %s er ikke tillatt her."
1845+
1846+#: contrib/comments/forms.py:180
1847+msgid ""
1848+"If you enter anything in this field your comment will be treated as spam"
1849+msgstr ""
1850+"Hvis du oppgir noe i dette feltet, vil kommentaren bli behandlet som spam"
1851+
1852+#: contrib/comments/models.py:22 contrib/contenttypes/models.py:74
1853+msgid "content type"
1854+msgstr "innholdstype"
1855+
1856+#: contrib/comments/models.py:24
1857+msgid "object ID"
1858+msgstr "objekt-ID"
1859+
1860+#: contrib/comments/models.py:52
1861+msgid "user's name"
1862+msgstr "brukerens navn"
1863+
1864+#: contrib/comments/models.py:53
1865+msgid "user's email address"
1866+msgstr "brukerens e-postadresse"
1867+
1868+#: contrib/comments/models.py:54
1869+msgid "user's URL"
1870+msgstr "brukerens nettadresse"
1871+
1872+#: contrib/comments/models.py:56 contrib/comments/models.py:76
1873+#: contrib/comments/models.py:169
1874+msgid "comment"
1875+msgstr "kommentar"
1876+
1877+#: contrib/comments/models.py:59
1878+msgid "date/time submitted"
1879+msgstr "dato/tid for innsendelse"
1880+
1881+#: contrib/comments/models.py:61
1882+msgid "is public"
1883+msgstr "er tilgjengelig for alle"
1884+
1885+#: contrib/comments/models.py:62
1886+msgid ""
1887+"Uncheck this box to make the comment effectively disappear from the site."
1888+msgstr "Avmerk denne boksen for å fjerne kommentaren fra siden."
1889+
1890+#: contrib/comments/models.py:64
1891+msgid "is removed"
1892+msgstr "er fjernet"
1893+
1894+#: contrib/comments/models.py:65
1895+msgid ""
1896+"Check this box if the comment is inappropriate. A \"This comment has been "
1897+"removed\" message will be displayed instead."
1898+msgstr ""
1899+"Huk av denne hvis kommentaren er upassende. Meldingen \"Denne kommentaren "
1900+"har blitt fjernet\" vil bli vist i stedet."
1901+
1902+#: contrib/comments/models.py:77
1903+msgid "comments"
1904+msgstr "kommentarer"
1905+
1906+#: contrib/comments/models.py:119
1907+msgid ""
1908+"This comment was posted by an authenticated user and thus the name is read-"
1909+"only."
1910+msgstr ""
1911+"Denne kommentaren er skrevet av en innlogget bruker og navnet kan derfor "
1912+"ikke endres."
1913+
1914+#: contrib/comments/models.py:128
1915+msgid ""
1916+"This comment was posted by an authenticated user and thus the email is read-"
1917+"only."
1918+msgstr ""
1919+"Denne kommentaren er skrevet av en innlogget bruker og e-postadressen kan "
1920+"derfor ikke endres."
1921+
1922+#: contrib/comments/models.py:153
1923+#, python-format
1924+msgid ""
1925+"Posted by %(user)s at %(date)s\n"
1926+"\n"
1927+"%(comment)s\n"
1928+"\n"
1929+"http://%(domain)s%(url)s"
1930+msgstr ""
1931+"Skrevet av %(user)s, %(date)s\n"
1932+"\n"
1933+"%(comment)s\n"
1934+"\n"
1935+"http://%(domain)s%(url)s"
1936+
1937+#: contrib/comments/models.py:170
1938+msgid "flag"
1939+msgstr "flagg"
1940+
1941+#: contrib/comments/models.py:171
1942+msgid "date"
1943+msgstr "dato"
1944+
1945+#: contrib/comments/models.py:181
1946+msgid "comment flag"
1947+msgstr "kommentarflagg"
1948+
1949+#: contrib/comments/models.py:182
1950+msgid "comment flags"
1951+msgstr "kommentarflagg"
1952+
1953+#: contrib/comments/templates/comments/approve.html:4
1954+msgid "Approve a comment"
1955+msgstr "Tillat en kommentar"
1956+
1957+#: contrib/comments/templates/comments/approve.html:7
1958+msgid "Really make this comment public?"
1959+msgstr "Gjør denne kommentaren offentlig?"
1960+
1961+#: contrib/comments/templates/comments/approve.html:12
1962+#: contrib/comments/templates/comments/moderation_queue.html:49
1963+msgid "Approve"
1964+msgstr "Godkjenn"
1965+
1966+#: contrib/comments/templates/comments/approved.html:4
1967+msgid "Thanks for approving"
1968+msgstr "Takk for godkjennelse"
1969+
1970+#: contrib/comments/templates/comments/approved.html:7
1971+#: contrib/comments/templates/comments/deleted.html:7
1972+#: contrib/comments/templates/comments/flagged.html:7
1973+msgid ""
1974+"Thanks for taking the time to improve the quality of discussion on our site"
1975+msgstr ""
1976+"Takk for at du tok deg tid til å forbedre kvaliteten på diskusjonen på siden "
1977+"vår"
1978+
1979+#: contrib/comments/templates/comments/delete.html:4
1980+msgid "Remove a comment"
1981+msgstr "Fjern en kommentar"
1982+
1983+#: contrib/comments/templates/comments/delete.html:7
1984+msgid "Really remove this comment?"
1985+msgstr "Fjerne denne kommentaren?"
1986+
1987+#: contrib/comments/templates/comments/delete.html:12
1988+#: contrib/comments/templates/comments/moderation_queue.html:53
1989+msgid "Remove"
1990+msgstr "Fjern"
1991+
1992+#: contrib/comments/templates/comments/deleted.html:4
1993+msgid "Thanks for removing"
1994+msgstr "Takk for fjerningen"
1995+
1996+#: contrib/comments/templates/comments/flag.html:4
1997+msgid "Flag this comment"
1998+msgstr "Flagg denne kommentaren"
1999+
2000+#: contrib/comments/templates/comments/flag.html:7
2001+msgid "Really flag this comment?"
2002+msgstr "Flagg denne kommentaren?"
2003+
2004+#: contrib/comments/templates/comments/flag.html:12
2005+msgid "Flag"
2006+msgstr "Flagg"
2007+
2008+#: contrib/comments/templates/comments/flagged.html:4
2009+msgid "Thanks for flagging"
2010+msgstr "Takk for flagging"
2011+
2012+#: contrib/comments/templates/comments/form.html:17
2013+#: contrib/comments/templates/comments/preview.html:32
2014+msgid "Post"
2015+msgstr "Publiser"
2016+
2017+#: contrib/comments/templates/comments/form.html:18
2018+#: contrib/comments/templates/comments/preview.html:33
2019+msgid "Preview"
2020+msgstr "Forhåndsvisning"
2021+
2022+#: contrib/comments/templates/comments/moderation_queue.html:4
2023+#: contrib/comments/templates/comments/moderation_queue.html:19
2024+msgid "Comment moderation queue"
2025+msgstr "Kommentarmoderasjonskø"
2026+
2027+#: contrib/comments/templates/comments/moderation_queue.html:26
2028+msgid "No comments to moderate"
2029+msgstr "Ingen kommentarer å moderere"
2030+
2031+#: contrib/comments/templates/comments/moderation_queue.html:36
2032+msgid "Email"
2033+msgstr "E-post"
2034+
2035+#: contrib/comments/templates/comments/moderation_queue.html:38
2036+msgid "Authenticated?"
2037+msgstr "Godkjent?"
2038+
2039+#: contrib/comments/templates/comments/moderation_queue.html:39
2040+msgid "IP Address"
2041+msgstr "IP-adresse"
2042+
2043+#: contrib/comments/templates/comments/moderation_queue.html:40
2044+msgid "Date posted"
2045+msgstr "Dato lagt inn"
2046+
2047+#: contrib/comments/templates/comments/moderation_queue.html:63
2048+msgid "yes"
2049+msgstr "ja"
2050+
2051+#: contrib/comments/templates/comments/moderation_queue.html:63
2052+msgid "no"
2053+msgstr "nei"
2054+
2055+#: contrib/comments/templates/comments/posted.html:4
2056+msgid "Thanks for commenting"
2057+msgstr "Takk for kommentar"
2058+
2059+#: contrib/comments/templates/comments/posted.html:7
2060+msgid "Thank you for your comment"
2061+msgstr "Takk for din kommentar"
2062+
2063+#: contrib/comments/templates/comments/preview.html:4
2064+#: contrib/comments/templates/comments/preview.html:13
2065+msgid "Preview your comment"
2066+msgstr "Forhåndsvis kommentaren din"
2067+
2068+#: contrib/comments/templates/comments/preview.html:11
2069+msgid "Please correct the error below"
2070+msgid_plural "Please correct the errors below"
2071+msgstr[0] "Vennligst korriger feilen under"
2072+msgstr[1] "Vennligst korriger feilene under"
2073+
2074+#: contrib/comments/templates/comments/preview.html:16
2075+msgid "Post your comment"
2076+msgstr "Publiser din kommentar"
2077+
2078+#: contrib/comments/templates/comments/preview.html:16
2079+msgid "or make changes"
2080+msgstr "eller gjør endringer"
2081+
2082+#: contrib/contenttypes/models.py:70
2083+msgid "python model class name"
2084+msgstr "python-modell klassenavn"
2085+
2086+#: contrib/contenttypes/models.py:75
2087+msgid "content types"
2088+msgstr "innholdstyper"
2089+
2090+#: contrib/flatpages/admin.py:9
2091+msgid ""
2092+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
2093+msgstr ""
2094+"Eksempel: '/om/kontakt/'. Kontroller at det er en skråstrek foran og bak."
2095+
2096+#: contrib/flatpages/admin.py:11
2097+msgid ""
2098+"This value must contain only letters, numbers, underscores, dashes or "
2099+"slashes."
2100+msgstr ""
2101+"Dette feltet kan bare inneholde bokstaver, nummer, understreker, "
2102+"bindestreker eller skråstreker."
2103+
2104+#: contrib/flatpages/admin.py:22
2105+msgid "Advanced options"
2106+msgstr "Avanserte innstillinger"
2107+
2108+#: contrib/flatpages/models.py:8
2109+msgid "title"
2110+msgstr "tittel"
2111+
2112+#: contrib/flatpages/models.py:9
2113+msgid "content"
2114+msgstr "innhold"
2115+
2116+#: contrib/flatpages/models.py:10
2117+msgid "enable comments"
2118+msgstr "tillat kommentarer"
2119+
2120+#: contrib/flatpages/models.py:11
2121+msgid "template name"
2122+msgstr "malnavn"
2123+
2124+#: contrib/flatpages/models.py:12
2125+msgid ""
2126+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
2127+"will use 'flatpages/default.html'."
2128+msgstr ""
2129+"Eksempel: 'flatpages/kontakt_side.html'. Hvis denne ikke er gitt, vil "
2130+"'flatpages/default.html' bli brukt."
2131+
2132+#: contrib/flatpages/models.py:13
2133+msgid "registration required"
2134+msgstr "krever registrering"
2135+
2136+#: contrib/flatpages/models.py:13
2137+msgid "If this is checked, only logged-in users will be able to view the page."
2138+msgstr "Hvis denne er krysset av, kan kun innloggede brukere se siden."
2139+
2140+#: contrib/flatpages/models.py:18
2141+msgid "flat page"
2142+msgstr "flatside"
2143+
2144+#: contrib/flatpages/models.py:19
2145+msgid "flat pages"
2146+msgstr "flatsider"
2147+
2148+#: contrib/formtools/wizard.py:130
2149+msgid ""
2150+"We apologize, but your form has expired. Please continue filling out the "
2151+"form from this page."
2152+msgstr ""
2153+"Vi beklager, men dette skjemaet har tidsavbrutt. Vennligst fyll ut skjemaet "
2154+"fra denne siden."
2155+
2156+#: contrib/gis/forms/fields.py:17
2157+msgid "No geometry value provided."
2158+msgstr "Ingen geometriverdi oppgitt."
2159+
2160+#: contrib/gis/forms/fields.py:18
2161+msgid "Invalid geometry value."
2162+msgstr "Ugyldig geometriverdi"
2163+
2164+#: contrib/gis/forms/fields.py:19
2165+msgid "Invalid geometry type."
2166+msgstr "Ugyldig geometritype"
2167+
2168+#: contrib/gis/forms/fields.py:20
2169+msgid ""
2170+"An error occurred when transforming the geometry to the SRID of the geometry "
2171+"form field."
2172+msgstr ""
2173+"En feil oppstod ved transformering av geometrien til SRID fra geometrifeltet."
2174+
2175+#: contrib/humanize/templatetags/humanize.py:19
2176+msgid "th"
2177+msgstr "."
2178+
2179+#: contrib/humanize/templatetags/humanize.py:19
2180+msgid "st"
2181+msgstr "."
2182+
2183+#: contrib/humanize/templatetags/humanize.py:19
2184+msgid "nd"
2185+msgstr "."
2186+
2187+#: contrib/humanize/templatetags/humanize.py:19
2188+msgid "rd"
2189+msgstr "."
2190+
2191+#: contrib/humanize/templatetags/humanize.py:51
2192+#, python-format
2193+msgid "%(value).1f million"
2194+msgid_plural "%(value).1f million"
2195+msgstr[0] "%(value).1f million"
2196+msgstr[1] "%(value).1f millioner"
2197+
2198+#: contrib/humanize/templatetags/humanize.py:54
2199+#, python-format
2200+msgid "%(value).1f billion"
2201+msgid_plural "%(value).1f billion"
2202+msgstr[0] "%(value).1f milliard"
2203+msgstr[1] "%(value).1f milliarder"
2204+
2205+#: contrib/humanize/templatetags/humanize.py:57
2206+#, python-format
2207+msgid "%(value).1f trillion"
2208+msgid_plural "%(value).1f trillion"
2209+msgstr[0] "%(value).1f billion"
2210+msgstr[1] "%(value).1f billioner"
2211+
2212+#: contrib/humanize/templatetags/humanize.py:73
2213+msgid "one"
2214+msgstr "én"
2215+
2216+#: contrib/humanize/templatetags/humanize.py:73
2217+msgid "two"
2218+msgstr "to"
2219+
2220+#: contrib/humanize/templatetags/humanize.py:73
2221+msgid "three"
2222+msgstr "tre"
2223+
2224+#: contrib/humanize/templatetags/humanize.py:73
2225+msgid "four"
2226+msgstr "fire"
2227+
2228+#: contrib/humanize/templatetags/humanize.py:73
2229+msgid "five"
2230+msgstr "fem"
2231+
2232+#: contrib/humanize/templatetags/humanize.py:73
2233+msgid "six"
2234+msgstr "seks"
2235+
2236+#: contrib/humanize/templatetags/humanize.py:73
2237+msgid "seven"
2238+msgstr "sju"
2239+
2240+#: contrib/humanize/templatetags/humanize.py:73
2241+msgid "eight"
2242+msgstr "åtte"
2243+
2244+#: contrib/humanize/templatetags/humanize.py:73
2245+msgid "nine"
2246+msgstr "ni"
2247+
2248+#: contrib/humanize/templatetags/humanize.py:93
2249+msgid "today"
2250+msgstr "i dag"
2251+
2252+#: contrib/humanize/templatetags/humanize.py:95
2253+msgid "tomorrow"
2254+msgstr "i morgen"
2255+
2256+#: contrib/humanize/templatetags/humanize.py:97
2257+msgid "yesterday"
2258+msgstr "i går"
2259+
2260+#: contrib/localflavor/ar/forms.py:27
2261+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
2262+msgstr "Oppgi et postnummer på formen NNNN eller ANNNNAAA."
2263+
2264+#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96
2265+#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23
2266+#: contrib/localflavor/pe/forms.py:51
2267+msgid "This field requires only numbers."
2268+msgstr "Feltet krever kun tall."
2269+
2270+#: contrib/localflavor/ar/forms.py:50
2271+msgid "This field requires 7 or 8 digits."
2272+msgstr "Feltet krever 7 eller 8 siffer."
2273+
2274+#: contrib/localflavor/ar/forms.py:79
2275+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
2276+msgstr "Oppgi gyldig CUIT på formen XX-XXXXXXXX-X or XXXXXXXXXXXX."
2277+
2278+#: contrib/localflavor/ar/forms.py:80
2279+msgid "Invalid CUIT."
2280+msgstr "Ugyldig CUIT."
2281+
2282+#: contrib/localflavor/at/at_states.py:5
2283+msgid "Burgenland"
2284+msgstr "Burgenland"
2285+
2286+#: contrib/localflavor/at/at_states.py:6
2287+msgid "Carinthia"
2288+msgstr "Carinthia"
2289+
2290+#: contrib/localflavor/at/at_states.py:7
2291+msgid "Lower Austria"
2292+msgstr "Niederösterreich"
2293+
2294+#: contrib/localflavor/at/at_states.py:8
2295+msgid "Upper Austria"
2296+msgstr "Oberösterreich"
2297+
2298+#: contrib/localflavor/at/at_states.py:9
2299+msgid "Salzburg"
2300+msgstr "Salzburg"
2301+
2302+#: contrib/localflavor/at/at_states.py:10
2303+msgid "Styria"
2304+msgstr "Steiermark"
2305+
2306+#: contrib/localflavor/at/at_states.py:11
2307+msgid "Tyrol"
2308+msgstr "Tirol"
2309+
2310+#: contrib/localflavor/at/at_states.py:12
2311+msgid "Vorarlberg"
2312+msgstr "Vorarlberg"
2313+
2314+#: contrib/localflavor/at/at_states.py:13
2315+msgid "Vienna"
2316+msgstr "Wien"
2317+
2318+#: contrib/localflavor/at/forms.py:20 contrib/localflavor/ch/forms.py:16
2319+#: contrib/localflavor/no/forms.py:12
2320+msgid "Enter a zip code in the format XXXX."
2321+msgstr "Oppgi et postnummer på formen XXXX."
2322+
2323+#: contrib/localflavor/at/forms.py:48
2324+msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format."
2325+msgstr "Oppgi et gyldig Østerrisk personnummer på formen XXXX XXXXXX."
2326+
2327+#: contrib/localflavor/au/forms.py:16
2328+msgid "Enter a 4 digit post code."
2329+msgstr "Oppgi et firesifret postnummer."
2330+
2331+#: contrib/localflavor/br/forms.py:21
2332+msgid "Enter a zip code in the format XXXXX-XXX."
2333+msgstr "Oppgi et postnummer på formen XXXXX-XXX."
2334+
2335+#: contrib/localflavor/br/forms.py:30
2336+msgid "Phone numbers must be in XX-XXXX-XXXX format."
2337+msgstr "Telefonnummeret må være på formen XX-XXXX-XXXX."
2338+
2339+#: contrib/localflavor/br/forms.py:58
2340+msgid ""
2341+"Select a valid brazilian state. That state is not one of the available "
2342+"states."
2343+msgstr ""
2344+"Velg en gyldig brasiliansk stat. Den staten er ikke et av de tilgjengelige "
2345+"valgene."
2346+
2347+#: contrib/localflavor/br/forms.py:94
2348+msgid "Invalid CPF number."
2349+msgstr "Ugyldig CPF-nummer."
2350+
2351+#: contrib/localflavor/br/forms.py:95
2352+msgid "This field requires at most 11 digits or 14 characters."
2353+msgstr "Feltet krever maksimum 11 eller 14 siffer."
2354+
2355+#: contrib/localflavor/br/forms.py:134
2356+msgid "Invalid CNPJ number."
2357+msgstr "Ugyldig CNPJ-nummer."
2358+
2359+#: contrib/localflavor/br/forms.py:136
2360+msgid "This field requires at least 14 digits"
2361+msgstr "Feltet krever minst 14 siffer."
2362+
2363+#: contrib/localflavor/ca/forms.py:17
2364+msgid "Enter a postal code in the format XXX XXX."
2365+msgstr "Oppgi et postnummer på formen XXX XXX."
2366+
2367+#: contrib/localflavor/ca/forms.py:88
2368+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
2369+msgstr "Oppgi et gyldig kanadisk personnummer på formen XXX-XXX-XXX."
2370+
2371+#: contrib/localflavor/ch/ch_states.py:5
2372+msgid "Aargau"
2373+msgstr "Aargau"
2374+
2375+#: contrib/localflavor/ch/ch_states.py:6
2376+msgid "Appenzell Innerrhoden"
2377+msgstr "Appenzell Innerrhoden"
2378+
2379+#: contrib/localflavor/ch/ch_states.py:7
2380+msgid "Appenzell Ausserrhoden"
2381+msgstr "Appenzell Ausserrhoden"
2382+
2383+#: contrib/localflavor/ch/ch_states.py:8
2384+msgid "Basel-Stadt"
2385+msgstr "Basel-Stadt"
2386+
2387+#: contrib/localflavor/ch/ch_states.py:9
2388+msgid "Basel-Land"
2389+msgstr "Basel-Landschaft"
2390+
2391+#: contrib/localflavor/ch/ch_states.py:10
2392+msgid "Berne"
2393+msgstr "Bern"
2394+
2395+#: contrib/localflavor/ch/ch_states.py:11
2396+msgid "Fribourg"
2397+msgstr "Fribourg"
2398+
2399+#: contrib/localflavor/ch/ch_states.py:12
2400+msgid "Geneva"
2401+msgstr "Genève"
2402+
2403+#: contrib/localflavor/ch/ch_states.py:13
2404+msgid "Glarus"
2405+msgstr "Glarus"
2406+
2407+#: contrib/localflavor/ch/ch_states.py:14
2408+msgid "Graubuenden"
2409+msgstr "Graubünden"
2410+
2411+#: contrib/localflavor/ch/ch_states.py:15
2412+msgid "Jura"
2413+msgstr "Jura"
2414+
2415+#: contrib/localflavor/ch/ch_states.py:16
2416+msgid "Lucerne"
2417+msgstr "Luzern"
2418+
2419+#: contrib/localflavor/ch/ch_states.py:17
2420+msgid "Neuchatel"
2421+msgstr "Neuchâtel"
2422+
2423+#: contrib/localflavor/ch/ch_states.py:18
2424+msgid "Nidwalden"
2425+msgstr "Nidwalden"
2426+
2427+#: contrib/localflavor/ch/ch_states.py:19
2428+msgid "Obwalden"
2429+msgstr "Obwalden"
2430+
2431+#: contrib/localflavor/ch/ch_states.py:20
2432+msgid "Schaffhausen"
2433+msgstr "Schaffhausen"
2434+
2435+#: contrib/localflavor/ch/ch_states.py:21
2436+msgid "Schwyz"
2437+msgstr "Schwyz"
2438+
2439+#: contrib/localflavor/ch/ch_states.py:22
2440+msgid "Solothurn"
2441+msgstr "Solothurn"
2442+
2443+#: contrib/localflavor/ch/ch_states.py:23
2444+msgid "St. Gallen"
2445+msgstr "St. Gallen"
2446+
2447+#: contrib/localflavor/ch/ch_states.py:24
2448+msgid "Thurgau"
2449+msgstr "Thurgau"
2450+
2451+#: contrib/localflavor/ch/ch_states.py:25
2452+msgid "Ticino"
2453+msgstr "Ticino"
2454+
2455+#: contrib/localflavor/ch/ch_states.py:26
2456+msgid "Uri"
2457+msgstr "Uri"
2458+
2459+#: contrib/localflavor/ch/ch_states.py:27
2460+msgid "Valais"
2461+msgstr "Wallis"
2462+
2463+#: contrib/localflavor/ch/ch_states.py:28
2464+msgid "Vaud"
2465+msgstr "Vaud"
2466+
2467+#: contrib/localflavor/ch/ch_states.py:29
2468+msgid "Zug"
2469+msgstr "Zug"
2470+
2471+#: contrib/localflavor/ch/ch_states.py:30
2472+msgid "Zurich"
2473+msgstr "Zürich"
2474+
2475+#: contrib/localflavor/ch/forms.py:64
2476+msgid ""
2477+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
2478+"1234567890 format."
2479+msgstr ""
2480+"Oppgi et gyldig sveitsisk identitets- eller passnummer på formen X1234567<0 "
2481+"eller 1234567890."
2482+
2483+#: contrib/localflavor/cl/forms.py:29
2484+msgid "Enter a valid Chilean RUT."
2485+msgstr "Oppgi et gyldig chilensk RUT."
2486+
2487+#: contrib/localflavor/cl/forms.py:30
2488+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
2489+msgstr "Oppgi et gyldig chilensk RUT på formen XX.XXX.XXX-X."
2490+
2491+#: contrib/localflavor/cl/forms.py:31
2492+msgid "The Chilean RUT is not valid."
2493+msgstr "Den chilenske RUT er ugyldig."
2494+
2495+#: contrib/localflavor/cz/cz_regions.py:8
2496+msgid "Prague"
2497+msgstr "Praha"
2498+
2499+#: contrib/localflavor/cz/cz_regions.py:9
2500+msgid "Central Bohemian Region"
2501+msgstr "Sentralbøhmen region"
2502+
2503+#: contrib/localflavor/cz/cz_regions.py:10
2504+msgid "South Bohemian Region"
2505+msgstr "Sydbøhmen region"
2506+
2507+#: contrib/localflavor/cz/cz_regions.py:11
2508+msgid "Pilsen Region"
2509+msgstr "Plzeň region"
2510+
2511+#: contrib/localflavor/cz/cz_regions.py:12
2512+msgid "Carlsbad Region"
2513+msgstr "Karlovy Vary region"
2514+
2515+#: contrib/localflavor/cz/cz_regions.py:13
2516+msgid "Usti Region"
2517+msgstr "Ústí nad Labem region"
2518+
2519+#: contrib/localflavor/cz/cz_regions.py:14
2520+msgid "Liberec Region"
2521+msgstr "Liberec region"
2522+
2523+#: contrib/localflavor/cz/cz_regions.py:15
2524+msgid "Hradec Region"
2525+msgstr "Hradec Králové region"
2526+
2527+#: contrib/localflavor/cz/cz_regions.py:16
2528+msgid "Pardubice Region"
2529+msgstr "Pardubice region"
2530+
2531+#: contrib/localflavor/cz/cz_regions.py:17
2532+msgid "Vysocina Region"
2533+msgstr "Žilina-regionen"
2534+
2535+#: contrib/localflavor/cz/cz_regions.py:18
2536+msgid "South Moravian Region"
2537+msgstr "Sydmähriske region"
2538+
2539+#: contrib/localflavor/cz/cz_regions.py:19
2540+msgid "Olomouc Region"
2541+msgstr "Olomouc region"
2542+
2543+#: contrib/localflavor/cz/cz_regions.py:20
2544+msgid "Zlin Region"
2545+msgstr "Zlín region"
2546+
2547+#: contrib/localflavor/cz/cz_regions.py:21
2548+msgid "Moravian-Silesian Region"
2549+msgstr "Mähren-Schlesien region"
2550+
2551+#: contrib/localflavor/cz/forms.py:27 contrib/localflavor/sk/forms.py:30
2552+msgid "Enter a postal code in the format XXXXX or XXX XX."
2553+msgstr "Oppgi et postnummer på formen XXXXX or XXX XX."
2554+
2555+#: contrib/localflavor/cz/forms.py:47
2556+msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX."
2557+msgstr "Oppgi et fødselsnummer på formen XXXXXX/XXXX eller XXXXXXXXXX."
2558+
2559+#: contrib/localflavor/cz/forms.py:48
2560+msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'"
2561+msgstr ""
2562+
2563+#: contrib/localflavor/cz/forms.py:49
2564+msgid "Enter a valid birth number."
2565+msgstr "Oppgi et gyldig fødselsnummer."
2566+
2567+#: contrib/localflavor/cz/forms.py:106
2568+msgid "Enter a valid IC number."
2569+msgstr "Oppgi et gyldig IC-nummer."
2570+
2571+#: contrib/localflavor/de/de_states.py:5
2572+msgid "Baden-Wuerttemberg"
2573+msgstr "Baden-Württemberg"
2574+
2575+#: contrib/localflavor/de/de_states.py:6
2576+msgid "Bavaria"
2577+msgstr "Bayern"
2578+
2579+#: contrib/localflavor/de/de_states.py:7
2580+msgid "Berlin"
2581+msgstr "Berlin"
2582+
2583+#: contrib/localflavor/de/de_states.py:8
2584+msgid "Brandenburg"
2585+msgstr "Brandenburg"
2586+
2587+#: contrib/localflavor/de/de_states.py:9
2588+msgid "Bremen"
2589+msgstr "Bremen"
2590+
2591+#: contrib/localflavor/de/de_states.py:10
2592+msgid "Hamburg"
2593+msgstr "Hamburg"
2594+
2595+#: contrib/localflavor/de/de_states.py:11
2596+msgid "Hessen"
2597+msgstr "Hessen"
2598+
2599+#: contrib/localflavor/de/de_states.py:12
2600+msgid "Mecklenburg-Western Pomerania"
2601+msgstr "Mecklenburg-Vorpommern"
2602+
2603+#: contrib/localflavor/de/de_states.py:13
2604+msgid "Lower Saxony"
2605+msgstr "Niedersachsen"
2606+
2607+#: contrib/localflavor/de/de_states.py:14
2608+msgid "North Rhine-Westphalia"
2609+msgstr "Nordrhein-Westfalen"
2610+
2611+#: contrib/localflavor/de/de_states.py:15
2612+msgid "Rhineland-Palatinate"
2613+msgstr "Rheinland-Pfalz"
2614+
2615+#: contrib/localflavor/de/de_states.py:16
2616+msgid "Saarland"
2617+msgstr "Saarland"
2618+
2619+#: contrib/localflavor/de/de_states.py:17
2620+msgid "Saxony"
2621+msgstr "Sachsen"
2622+
2623+#: contrib/localflavor/de/de_states.py:18
2624+msgid "Saxony-Anhalt"
2625+msgstr "Sachsen-Anhalt"
2626+
2627+#: contrib/localflavor/de/de_states.py:19
2628+msgid "Schleswig-Holstein"
2629+msgstr "Schleswig-Holstein"
2630+
2631+#: contrib/localflavor/de/de_states.py:20
2632+msgid "Thuringia"
2633+msgstr "Thüringen"
2634+
2635+#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
2636+#: contrib/localflavor/fr/forms.py:15
2637+msgid "Enter a zip code in the format XXXXX."
2638+msgstr "Oppgi et postnummer på formen XXXXX."
2639+
2640+#: contrib/localflavor/de/forms.py:41
2641+msgid ""
2642+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
2643+"format."
2644+msgstr ""
2645+"Oppgi et gyldig tysk identitetsnummer på formen XXXXXXXXXXX-XXXXXXX-XXXXXXX-"
2646+"X."
2647+
2648+#: contrib/localflavor/es/es_provinces.py:5
2649+msgid "Arava"
2650+msgstr "Álava"
2651+
2652+#: contrib/localflavor/es/es_provinces.py:6
2653+msgid "Albacete"
2654+msgstr "Albacete"
2655+
2656+#: contrib/localflavor/es/es_provinces.py:7
2657+msgid "Alacant"
2658+msgstr "Alicante"
2659+
2660+#: contrib/localflavor/es/es_provinces.py:8
2661+msgid "Almeria"
2662+msgstr "Almería"
2663+
2664+#: contrib/localflavor/es/es_provinces.py:9
2665+msgid "Avila"
2666+msgstr "Ávila"
2667+
2668+#: contrib/localflavor/es/es_provinces.py:10
2669+msgid "Badajoz"
2670+msgstr "Badajoz"
2671+
2672+#: contrib/localflavor/es/es_provinces.py:11
2673+msgid "Illes Balears"
2674+msgstr "Balearene"
2675+
2676+#: contrib/localflavor/es/es_provinces.py:12
2677+msgid "Barcelona"
2678+msgstr "Barcelona"
2679+
2680+#: contrib/localflavor/es/es_provinces.py:13
2681+msgid "Burgos"
2682+msgstr "Burgos"
2683+
2684+#: contrib/localflavor/es/es_provinces.py:14
2685+msgid "Caceres"
2686+msgstr "Cáceres"
2687+
2688+#: contrib/localflavor/es/es_provinces.py:15
2689+msgid "Cadiz"
2690+msgstr "Cádiz"
2691+
2692+#: contrib/localflavor/es/es_provinces.py:16
2693+msgid "Castello"
2694+msgstr "Castellón"
2695+
2696+#: contrib/localflavor/es/es_provinces.py:17
2697+msgid "Ciudad Real"
2698+msgstr "Ciudad Real"
2699+
2700+#: contrib/localflavor/es/es_provinces.py:18
2701+msgid "Cordoba"
2702+msgstr "Córdoba"
2703+
2704+#: contrib/localflavor/es/es_provinces.py:19
2705+msgid "A Coruna"
2706+msgstr "A Coruna"
2707+
2708+#: contrib/localflavor/es/es_provinces.py:20
2709+msgid "Cuenca"
2710+msgstr "Cuenca"
2711+
2712+#: contrib/localflavor/es/es_provinces.py:21
2713+msgid "Girona"
2714+msgstr "Girona"
2715+
2716+#: contrib/localflavor/es/es_provinces.py:22
2717+msgid "Granada"
2718+msgstr "Granada"
2719+
2720+#: contrib/localflavor/es/es_provinces.py:23
2721+msgid "Guadalajara"
2722+msgstr "Guadalajara"
2723+
2724+#: contrib/localflavor/es/es_provinces.py:24
2725+msgid "Guipuzkoa"
2726+msgstr "Gipuzkoa"
2727+
2728+#: contrib/localflavor/es/es_provinces.py:25
2729+msgid "Huelva"
2730+msgstr "Huelva"
2731+
2732+#: contrib/localflavor/es/es_provinces.py:26
2733+msgid "Huesca"
2734+msgstr "Huesca"
2735+
2736+#: contrib/localflavor/es/es_provinces.py:27
2737+msgid "Jaen"
2738+msgstr "Jaén"
2739+
2740+#: contrib/localflavor/es/es_provinces.py:28
2741+msgid "Leon"
2742+msgstr "León"
2743+
2744+#: contrib/localflavor/es/es_provinces.py:29
2745+msgid "Lleida"
2746+msgstr "Lleida"
2747+
2748+#: contrib/localflavor/es/es_provinces.py:30
2749+#: contrib/localflavor/es/es_regions.py:17
2750+msgid "La Rioja"
2751+msgstr "La Rioja"
2752+
2753+#: contrib/localflavor/es/es_provinces.py:31
2754+msgid "Lugo"
2755+msgstr "Lugo"
2756+
2757+#: contrib/localflavor/es/es_provinces.py:32
2758+#: contrib/localflavor/es/es_regions.py:18
2759+msgid "Madrid"
2760+msgstr "Madrid"
2761+
2762+#: contrib/localflavor/es/es_provinces.py:33
2763+msgid "Malaga"
2764+msgstr "Málaga"
2765+
2766+#: contrib/localflavor/es/es_provinces.py:34
2767+msgid "Murcia"
2768+msgstr "Murcia"
2769+
2770+#: contrib/localflavor/es/es_provinces.py:35
2771+msgid "Navarre"
2772+msgstr "Navarra"
2773+
2774+#: contrib/localflavor/es/es_provinces.py:36
2775+msgid "Ourense"
2776+msgstr "Ourense"
2777+
2778+#: contrib/localflavor/es/es_provinces.py:37
2779+msgid "Asturias"
2780+msgstr "Asturias"
2781+
2782+#: contrib/localflavor/es/es_provinces.py:38
2783+msgid "Palencia"
2784+msgstr "Palencia"
2785+
2786+#: contrib/localflavor/es/es_provinces.py:39
2787+msgid "Las Palmas"
2788+msgstr "Las Palmas"
2789+
2790+#: contrib/localflavor/es/es_provinces.py:40
2791+msgid "Pontevedra"
2792+msgstr "Pontevedra"
2793+
2794+#: contrib/localflavor/es/es_provinces.py:41
2795+msgid "Salamanca"
2796+msgstr "Salamanca"
2797+
2798+#: contrib/localflavor/es/es_provinces.py:42
2799+msgid "Santa Cruz de Tenerife"
2800+msgstr "Santa Cruz de Tenerife"
2801+
2802+#: contrib/localflavor/es/es_provinces.py:43
2803+#: contrib/localflavor/es/es_regions.py:11
2804+msgid "Cantabria"
2805+msgstr "Cantabria"
2806+
2807+#: contrib/localflavor/es/es_provinces.py:44
2808+msgid "Segovia"
2809+msgstr "Segovia"
2810+
2811+#: contrib/localflavor/es/es_provinces.py:45
2812+msgid "Seville"
2813+msgstr "Sevilla"
2814+
2815+#: contrib/localflavor/es/es_provinces.py:46
2816+msgid "Soria"
2817+msgstr "Soria"
2818+
2819+#: contrib/localflavor/es/es_provinces.py:47
2820+msgid "Tarragona"
2821+msgstr "Tarragona"
2822+
2823+#: contrib/localflavor/es/es_provinces.py:48
2824+msgid "Teruel"
2825+msgstr "Teruel"
2826+
2827+#: contrib/localflavor/es/es_provinces.py:49
2828+msgid "Toledo"
2829+msgstr "Toledo"
2830+
2831+#: contrib/localflavor/es/es_provinces.py:50
2832+msgid "Valencia"
2833+msgstr "Valencia"
2834+
2835+#: contrib/localflavor/es/es_provinces.py:51
2836+msgid "Valladolid"
2837+msgstr "Valladolid"
2838+
2839+#: contrib/localflavor/es/es_provinces.py:52
2840+msgid "Bizkaia"
2841+msgstr "Bizkaia"
2842+
2843+#: contrib/localflavor/es/es_provinces.py:53
2844+msgid "Zamora"
2845+msgstr "Zamora"
2846+
2847+#: contrib/localflavor/es/es_provinces.py:54
2848+msgid "Zaragoza"
2849+msgstr "Zaragoza"
2850+
2851+#: contrib/localflavor/es/es_provinces.py:55
2852+msgid "Ceuta"
2853+msgstr "Ceuta"
2854+
2855+#: contrib/localflavor/es/es_provinces.py:56
2856+msgid "Melilla"
2857+msgstr "Melilla"
2858+
2859+#: contrib/localflavor/es/es_regions.py:5
2860+msgid "Andalusia"
2861+msgstr "Andalucía"
2862+
2863+#: contrib/localflavor/es/es_regions.py:6
2864+msgid "Aragon"
2865+msgstr "Aragón"
2866+
2867+#: contrib/localflavor/es/es_regions.py:7
2868+msgid "Principality of Asturias"
2869+msgstr "Asturias"
2870+
2871+#: contrib/localflavor/es/es_regions.py:8
2872+msgid "Balearic Islands"
2873+msgstr "Balearene"
2874+
2875+#: contrib/localflavor/es/es_regions.py:9
2876+msgid "Basque Country"
2877+msgstr "Baskerland"
2878+
2879+#: contrib/localflavor/es/es_regions.py:10
2880+msgid "Canary Islands"
2881+msgstr "Kanariøyene"
2882+
2883+#: contrib/localflavor/es/es_regions.py:12
2884+msgid "Castile-La Mancha"
2885+msgstr "Castilla-La Mancha"
2886+
2887+#: contrib/localflavor/es/es_regions.py:13
2888+msgid "Castile and Leon"
2889+msgstr "Castilla y León"
2890+
2891+#: contrib/localflavor/es/es_regions.py:14
2892+msgid "Catalonia"
2893+msgstr "Catalonia"
2894+
2895+#: contrib/localflavor/es/es_regions.py:15
2896+msgid "Extremadura"
2897+msgstr "Extremadura"
2898+
2899+#: contrib/localflavor/es/es_regions.py:16
2900+msgid "Galicia"
2901+msgstr "Galicia"
2902+
2903+#: contrib/localflavor/es/es_regions.py:19
2904+msgid "Region of Murcia"
2905+msgstr "Murcia"
2906+
2907+#: contrib/localflavor/es/es_regions.py:20
2908+msgid "Foral Community of Navarre"
2909+msgstr "Navarra"
2910+
2911+#: contrib/localflavor/es/es_regions.py:21
2912+msgid "Valencian Community"
2913+msgstr "Valenciana"
2914+
2915+#: contrib/localflavor/es/forms.py:19
2916+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
2917+msgstr "Oppgi et gyldig postnummer på formen 01XXX - 52XXX."
2918+
2919+#: contrib/localflavor/es/forms.py:39
2920+msgid ""
2921+"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
2922+"9XXXXXXXX."
2923+msgstr ""
2924+"Oppgi et gyldig telefonnummer på et av følgende formater: 6XXXXXXXX, "
2925+"8XXXXXXXX eller 9XXXXXXXX."
2926+
2927+#: contrib/localflavor/es/forms.py:66
2928+msgid "Please enter a valid NIF, NIE, or CIF."
2929+msgstr "Oppgi et gyldig NIF, NIE eller CIF."
2930+
2931+#: contrib/localflavor/es/forms.py:67
2932+msgid "Please enter a valid NIF or NIE."
2933+msgstr "Oppgi et gyldig NIF eller NIE."
2934+
2935+#: contrib/localflavor/es/forms.py:68
2936+msgid "Invalid checksum for NIF."
2937+msgstr "Ugyldig kontrollsum for NIF."
2938+
2939+#: contrib/localflavor/es/forms.py:69
2940+msgid "Invalid checksum for NIE."
2941+msgstr "Ugyldig kontrollsum for NIE."
2942+
2943+#: contrib/localflavor/es/forms.py:70
2944+msgid "Invalid checksum for CIF."
2945+msgstr "Ugyldig kontrollsum for CIF."
2946+
2947+#: contrib/localflavor/es/forms.py:142
2948+msgid ""
2949+"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
2950+msgstr "Oppgi et gyldig kontonummer på formen XXXX-XXXX-XX-XXXXXXXXXX."
2951+
2952+#: contrib/localflavor/es/forms.py:143
2953+msgid "Invalid checksum for bank account number."
2954+msgstr "Ugyldig kontrollsum for kontonummer."
2955+
2956+#: contrib/localflavor/fi/forms.py:28
2957+msgid "Enter a valid Finnish social security number."
2958+msgstr "Oppgi et gyldig finsk personnummer."
2959+
2960+#: contrib/localflavor/in_/forms.py:14
2961+msgid "Enter a zip code in the format XXXXXXX."
2962+msgstr "Oppgi et postnummer på formen XXXXXXX."
2963+
2964+#: contrib/localflavor/is_/forms.py:17
2965+msgid ""
2966+"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
2967+msgstr "Oppgi et gyldig islandsk identifikasjonsnummer på formen XXXXXX-XXXX."
2968+
2969+#: contrib/localflavor/is_/forms.py:18
2970+msgid "The Icelandic identification number is not valid."
2971+msgstr "Det islandsk identifikasjonsnummer er ugyldig."
2972+
2973+#: contrib/localflavor/it/forms.py:14
2974+msgid "Enter a valid zip code."
2975+msgstr "Oppgi et gyldig postnummer."
2976+
2977+#: contrib/localflavor/it/forms.py:43
2978+msgid "Enter a valid Social Security number."
2979+msgstr "Oppgi et gyldig italiensk personnummer."
2980+
2981+#: contrib/localflavor/it/forms.py:68
2982+msgid "Enter a valid VAT number."
2983+msgstr "Oppgi et gyldig VAT-nummer."
2984+
2985+#: contrib/localflavor/jp/forms.py:16
2986+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
2987+msgstr "Oppgi et postnummer på formen XXXXXXX eller XXX-XXXX."
2988+
2989+#: contrib/localflavor/jp/jp_prefectures.py:4
2990+msgid "Hokkaido"
2991+msgstr "Hokkaido"
2992+
2993+#: contrib/localflavor/jp/jp_prefectures.py:5
2994+msgid "Aomori"
2995+msgstr "Aomori"
2996+
2997+#: contrib/localflavor/jp/jp_prefectures.py:6
2998+msgid "Iwate"
2999+msgstr "Iwate"
3000+
3001+#: contrib/localflavor/jp/jp_prefectures.py:7
3002+msgid "Miyagi"
3003+msgstr "Miyagi"
3004+
3005+#: contrib/localflavor/jp/jp_prefectures.py:8
3006+msgid "Akita"
3007+msgstr "Akita"
3008+
3009+#: contrib/localflavor/jp/jp_prefectures.py:9
3010+msgid "Yamagata"
3011+msgstr "Yamagata"
3012+
3013+#: contrib/localflavor/jp/jp_prefectures.py:10
3014+msgid "Fukushima"
3015+msgstr "Fukushima"
3016+
3017+#: contrib/localflavor/jp/jp_prefectures.py:11
3018+msgid "Ibaraki"
3019+msgstr "Ibaraki"
3020+
3021+#: contrib/localflavor/jp/jp_prefectures.py:12
3022+msgid "Tochigi"
3023+msgstr "Tochigi"
3024+
3025+#: contrib/localflavor/jp/jp_prefectures.py:13
3026+msgid "Gunma"
3027+msgstr "Gunma"
3028+
3029+#: contrib/localflavor/jp/jp_prefectures.py:14
3030+msgid "Saitama"
3031+msgstr "Saitama"
3032+
3033+#: contrib/localflavor/jp/jp_prefectures.py:15
3034+msgid "Chiba"
3035+msgstr "Chiba"
3036+
3037+#: contrib/localflavor/jp/jp_prefectures.py:16
3038+msgid "Tokyo"
3039+msgstr "Tokyo"
3040+
3041+#: contrib/localflavor/jp/jp_prefectures.py:17
3042+msgid "Kanagawa"
3043+msgstr "Kanagawa"
3044+
3045+#: contrib/localflavor/jp/jp_prefectures.py:18
3046+msgid "Yamanashi"
3047+msgstr "Yamanashi"
3048+
3049+#: contrib/localflavor/jp/jp_prefectures.py:19
3050+msgid "Nagano"
3051+msgstr "Nagano"
3052+
3053+#: contrib/localflavor/jp/jp_prefectures.py:20
3054+msgid "Niigata"
3055+msgstr "Niigata"
3056+
3057+#: contrib/localflavor/jp/jp_prefectures.py:21
3058+msgid "Toyama"
3059+msgstr "Toyama"
3060+
3061+#: contrib/localflavor/jp/jp_prefectures.py:22
3062+msgid "Ishikawa"
3063+msgstr "Ishikawa"
3064+
3065+#: contrib/localflavor/jp/jp_prefectures.py:23
3066+msgid "Fukui"
3067+msgstr "Fukui"
3068+
3069+#: contrib/localflavor/jp/jp_prefectures.py:24
3070+msgid "Gifu"
3071+msgstr "Gifu"
3072+
3073+#: contrib/localflavor/jp/jp_prefectures.py:25
3074+msgid "Shizuoka"
3075+msgstr "Shizuoka"
3076+
3077+#: contrib/localflavor/jp/jp_prefectures.py:26
3078+msgid "Aichi"
3079+msgstr "Aichi"
3080+
3081+#: contrib/localflavor/jp/jp_prefectures.py:27
3082+msgid "Mie"
3083+msgstr "Mie"
3084+
3085+#: contrib/localflavor/jp/jp_prefectures.py:28
3086+msgid "Shiga"
3087+msgstr "Shiga"
3088+
3089+#: contrib/localflavor/jp/jp_prefectures.py:29
3090+msgid "Kyoto"
3091+msgstr "Kyoto"
3092+
3093+#: contrib/localflavor/jp/jp_prefectures.py:30
3094+msgid "Osaka"
3095+msgstr "Osaka"
3096+
3097+#: contrib/localflavor/jp/jp_prefectures.py:31
3098+msgid "Hyogo"
3099+msgstr "Hyogo"
3100+
3101+#: contrib/localflavor/jp/jp_prefectures.py:32
3102+msgid "Nara"
3103+msgstr "Nara"
3104+
3105+#: contrib/localflavor/jp/jp_prefectures.py:33
3106+msgid "Wakayama"
3107+msgstr "Wakayama"
3108+
3109+#: contrib/localflavor/jp/jp_prefectures.py:34
3110+msgid "Tottori"
3111+msgstr "Tottori"
3112+
3113+#: contrib/localflavor/jp/jp_prefectures.py:35
3114+msgid "Shimane"
3115+msgstr "Shimane"
3116+
3117+#: contrib/localflavor/jp/jp_prefectures.py:36
3118+msgid "Okayama"
3119+msgstr "Okayama"
3120+
3121+#: contrib/localflavor/jp/jp_prefectures.py:37
3122+msgid "Hiroshima"
3123+msgstr "Hiroshima"
3124+
3125+#: contrib/localflavor/jp/jp_prefectures.py:38
3126+msgid "Yamaguchi"
3127+msgstr "Yamaguchi"
3128+
3129+#: contrib/localflavor/jp/jp_prefectures.py:39
3130+msgid "Tokushima"
3131+msgstr "Tokushima"
3132+
3133+#: contrib/localflavor/jp/jp_prefectures.py:40
3134+msgid "Kagawa"
3135+msgstr "Kagawa"
3136+
3137+#: contrib/localflavor/jp/jp_prefectures.py:41
3138+msgid "Ehime"
3139+msgstr "Ehime"
3140+
3141+#: contrib/localflavor/jp/jp_prefectures.py:42
3142+msgid "Kochi"
3143+msgstr "Kochi"
3144+
3145+#: contrib/localflavor/jp/jp_prefectures.py:43
3146+msgid "Fukuoka"
3147+msgstr "Fukuoka"
3148+
3149+#: contrib/localflavor/jp/jp_prefectures.py:44
3150+msgid "Saga"
3151+msgstr "Saga"
3152+
3153+#: contrib/localflavor/jp/jp_prefectures.py:45
3154+msgid "Nagasaki"
3155+msgstr "Nagasaki"
3156+
3157+#: contrib/localflavor/jp/jp_prefectures.py:46
3158+msgid "Kumamoto"
3159+msgstr "Kumamoto"
3160+
3161+#: contrib/localflavor/jp/jp_prefectures.py:47
3162+msgid "Oita"
3163+msgstr "Oita"
3164+
3165+#: contrib/localflavor/jp/jp_prefectures.py:48
3166+msgid "Miyazaki"
3167+msgstr "Miyazaki"
3168+
3169+#: contrib/localflavor/jp/jp_prefectures.py:49
3170+msgid "Kagoshima"
3171+msgstr "Kagoshima"
3172+
3173+#: contrib/localflavor/jp/jp_prefectures.py:50
3174+msgid "Okinawa"
3175+msgstr "Okinawa"
3176+
3177+#: contrib/localflavor/mx/mx_states.py:12
3178+msgid "Aguascalientes"
3179+msgstr "Aguascalientes"
3180+
3181+#: contrib/localflavor/mx/mx_states.py:13
3182+msgid "Baja California"
3183+msgstr "Baja California"
3184+
3185+#: contrib/localflavor/mx/mx_states.py:14
3186+msgid "Baja California Sur"
3187+msgstr "Baja California Sur"
3188+
3189+#: contrib/localflavor/mx/mx_states.py:15
3190+msgid "Campeche"
3191+msgstr "Campeche"
3192+
3193+#: contrib/localflavor/mx/mx_states.py:16
3194+msgid "Chihuahua"
3195+msgstr "Chihuahua"
3196+
3197+#: contrib/localflavor/mx/mx_states.py:17
3198+msgid "Chiapas"
3199+msgstr "Chiapas"
3200+
3201+#: contrib/localflavor/mx/mx_states.py:18
3202+msgid "Coahuila"
3203+msgstr "Coahuila"
3204+
3205+#: contrib/localflavor/mx/mx_states.py:19
3206+msgid "Colima"
3207+msgstr "Colima"
3208+
3209+#: contrib/localflavor/mx/mx_states.py:20
3210+msgid "Distrito Federal"
3211+msgstr "Distrito Federal"
3212+
3213+#: contrib/localflavor/mx/mx_states.py:21
3214+msgid "Durango"
3215+msgstr "Durango"
3216+
3217+#: contrib/localflavor/mx/mx_states.py:22
3218+msgid "Guerrero"
3219+msgstr "Guerrero"
3220+
3221+#: contrib/localflavor/mx/mx_states.py:23
3222+msgid "Guanajuato"
3223+msgstr "Guanajuato"
3224+
3225+#: contrib/localflavor/mx/mx_states.py:24
3226+msgid "Hidalgo"
3227+msgstr "Hidalgo"
3228+
3229+#: contrib/localflavor/mx/mx_states.py:25
3230+msgid "Jalisco"
3231+msgstr "Jalisco"
3232+
3233+#: contrib/localflavor/mx/mx_states.py:26
3234+msgid "Estado de México"
3235+msgstr "Estado de México"
3236+
3237+#: contrib/localflavor/mx/mx_states.py:27
3238+msgid "Michoacán"
3239+msgstr "Michoacán"
3240+
3241+#: contrib/localflavor/mx/mx_states.py:28
3242+msgid "Morelos"
3243+msgstr "Morelos"
3244+
3245+#: contrib/localflavor/mx/mx_states.py:29
3246+msgid "Nayarit"
3247+msgstr "Nayarit"
3248+
3249+#: contrib/localflavor/mx/mx_states.py:30
3250+msgid "Nuevo León"
3251+msgstr "Nuevo León"
3252+
3253+#: contrib/localflavor/mx/mx_states.py:31
3254+msgid "Oaxaca"
3255+msgstr "Oaxaca"
3256+
3257+#: contrib/localflavor/mx/mx_states.py:32
3258+msgid "Puebla"
3259+msgstr "Puebla"
3260+
3261+#: contrib/localflavor/mx/mx_states.py:33
3262+msgid "Querétaro"
3263+msgstr "Querétaro"
3264+
3265+#: contrib/localflavor/mx/mx_states.py:34
3266+msgid "Quintana Roo"
3267+msgstr "Quintana Roo"
3268+
3269+#: contrib/localflavor/mx/mx_states.py:35
3270+msgid "Sinaloa"
3271+msgstr "Sinaloa"
3272+
3273+#: contrib/localflavor/mx/mx_states.py:36
3274+msgid "San Luis Potosí"
3275+msgstr "San Luis Potosí"
3276+
3277+#: contrib/localflavor/mx/mx_states.py:37
3278+msgid "Sonora"
3279+msgstr "Sonora"
3280+
3281+#: contrib/localflavor/mx/mx_states.py:38
3282+msgid "Tabasco"
3283+msgstr "Tabasco"
3284+
3285+#: contrib/localflavor/mx/mx_states.py:39
3286+msgid "Tamaulipas"
3287+msgstr "Tamaulipas"
3288+
3289+#: contrib/localflavor/mx/mx_states.py:40
3290+msgid "Tlaxcala"
3291+msgstr "Tlaxcala"
3292+
3293+#: contrib/localflavor/mx/mx_states.py:41
3294+msgid "Veracruz"
3295+msgstr "Veracruz"
3296+
3297+#: contrib/localflavor/mx/mx_states.py:42
3298+msgid "Yucatán"
3299+msgstr "Yucatán"
3300+
3301+#: contrib/localflavor/mx/mx_states.py:43
3302+msgid "Zacatecas"
3303+msgstr "Zacatecas"
3304+
3305+#: contrib/localflavor/nl/forms.py:21
3306+msgid "Enter a valid postal code"
3307+msgstr "Oppgi et gyldig postnummer."
3308+
3309+#: contrib/localflavor/nl/forms.py:52
3310+msgid "Enter a valid phone number"
3311+msgstr "Oppgi et gyldig telefonnummer."
3312+
3313+#: contrib/localflavor/nl/forms.py:78
3314+msgid "Enter a valid SoFi number"
3315+msgstr "Oppgi et gyldig SoFi-nummer."
3316+
3317+#: contrib/localflavor/nl/nl_provinces.py:4
3318+msgid "Drenthe"
3319+msgstr "Drenthe"
3320+
3321+#: contrib/localflavor/nl/nl_provinces.py:5
3322+msgid "Flevoland"
3323+msgstr "Flevoland"
3324+
3325+#: contrib/localflavor/nl/nl_provinces.py:6
3326+msgid "Friesland"
3327+msgstr "Friesland"
3328+
3329+#: contrib/localflavor/nl/nl_provinces.py:7
3330+msgid "Gelderland"
3331+msgstr "Gelderland"
3332+
3333+#: contrib/localflavor/nl/nl_provinces.py:8
3334+msgid "Groningen"
3335+msgstr "Groningen"
3336+
3337+#: contrib/localflavor/nl/nl_provinces.py:9
3338+msgid "Limburg"
3339+msgstr "Limburg"
3340+
3341+#: contrib/localflavor/nl/nl_provinces.py:10
3342+msgid "Noord-Brabant"
3343+msgstr "Noord-Brabant"
3344+
3345+#: contrib/localflavor/nl/nl_provinces.py:11
3346+msgid "Noord-Holland"
3347+msgstr "Noord-Holland"
3348+
3349+#: contrib/localflavor/nl/nl_provinces.py:12
3350+msgid "Overijssel"
3351+msgstr "Overijssel"
3352+
3353+#: contrib/localflavor/nl/nl_provinces.py:13
3354+msgid "Utrecht"
3355+msgstr "Utrecht"
3356+
3357+#: contrib/localflavor/nl/nl_provinces.py:14
3358+msgid "Zeeland"
3359+msgstr "Zeeland"
3360+
3361+#: contrib/localflavor/nl/nl_provinces.py:15
3362+msgid "Zuid-Holland"
3363+msgstr "Zuid-Holland"
3364+
3365+#: contrib/localflavor/no/forms.py:33
3366+msgid "Enter a valid Norwegian social security number."
3367+msgstr "Oppgi et gyldig norsk personnummer."
3368+
3369+#: contrib/localflavor/pe/forms.py:24
3370+msgid "This field requires 8 digits."
3371+msgstr "Feltet krever åtte siffer."
3372+
3373+#: contrib/localflavor/pe/forms.py:52
3374+msgid "This field requires 11 digits."
3375+msgstr "Feltet krever 11 siffer."
3376+
3377+#: contrib/localflavor/pl/forms.py:38
3378+msgid "National Identification Number consists of 11 digits."
3379+msgstr "National Identification Number består av 11 siffer."
3380+
3381+#: contrib/localflavor/pl/forms.py:39
3382+msgid "Wrong checksum for the National Identification Number."
3383+msgstr "Feil kontrollsum for National Identification Number."
3384+
3385+#: contrib/localflavor/pl/forms.py:71
3386+msgid ""
3387+"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
3388+msgstr "Oppgi et NIP på formen XXX-XXX-XX-XX eller XX-XX-XXX-XXX."
3389+
3390+#: contrib/localflavor/pl/forms.py:72
3391+msgid "Wrong checksum for the Tax Number (NIP)."
3392+msgstr "Ugyldig kontrollsum for NIP."
3393+
3394+#: contrib/localflavor/pl/forms.py:109
3395+msgid "National Business Register Number (REGON) consists of 9 or 14 digits."
3396+msgstr "National Business Register Number (REGON) består av 9 eller 14 siffer."
3397+
3398+#: contrib/localflavor/pl/forms.py:110
3399+msgid "Wrong checksum for the National Business Register Number (REGON)."
3400+msgstr "Ugyldig kontrollsum for National Business Register Number (REGON)."
3401+
3402+#: contrib/localflavor/pl/forms.py:148
3403+msgid "Enter a postal code in the format XX-XXX."
3404+msgstr "Oppgi et postnummer på formen XX-XXX."
3405+
3406+#: contrib/localflavor/pl/pl_voivodeships.py:8
3407+msgid "Lower Silesia"
3408+msgstr "Lower Silesia"
3409+
3410+#: contrib/localflavor/pl/pl_voivodeships.py:9
3411+msgid "Kuyavia-Pomerania"
3412+msgstr "Kuyavia-Pomerania"
3413+
3414+#: contrib/localflavor/pl/pl_voivodeships.py:10
3415+msgid "Lublin"
3416+msgstr "Lublin"
3417+
3418+#: contrib/localflavor/pl/pl_voivodeships.py:11
3419+msgid "Lubusz"
3420+msgstr "Lubusz"
3421+
3422+#: contrib/localflavor/pl/pl_voivodeships.py:12
3423+msgid "Lodz"
3424+msgstr "Lodz"
3425+
3426+#: contrib/localflavor/pl/pl_voivodeships.py:13
3427+msgid "Lesser Poland"
3428+msgstr "Lesser Poland"
3429+
3430+#: contrib/localflavor/pl/pl_voivodeships.py:14
3431+msgid "Masovia"
3432+msgstr "Masovia"
3433+
3434+#: contrib/localflavor/pl/pl_voivodeships.py:15
3435+msgid "Opole"
3436+msgstr "Opole"
3437+
3438+#: contrib/localflavor/pl/pl_voivodeships.py:16
3439+msgid "Subcarpatia"
3440+msgstr "Subcarpatia"
3441+
3442+#: contrib/localflavor/pl/pl_voivodeships.py:17
3443+msgid "Podlasie"
3444+msgstr "Podlasie"
3445+
3446+#: contrib/localflavor/pl/pl_voivodeships.py:18
3447+msgid "Pomerania"
3448+msgstr "Pomerania"
3449+
3450+#: contrib/localflavor/pl/pl_voivodeships.py:19
3451+msgid "Silesia"
3452+msgstr "Silesia"
3453+
3454+#: contrib/localflavor/pl/pl_voivodeships.py:20
3455+msgid "Swietokrzyskie"
3456+msgstr "Swietokrzyskie"
3457+
3458+#: contrib/localflavor/pl/pl_voivodeships.py:21
3459+msgid "Warmia-Masuria"
3460+msgstr "Warmia-Masuria"
3461+
3462+#: contrib/localflavor/pl/pl_voivodeships.py:22
3463+msgid "Greater Poland"
3464+msgstr "Greater Poland"
3465+
3466+#: contrib/localflavor/pl/pl_voivodeships.py:23
3467+msgid "West Pomerania"
3468+msgstr "West Pomerania"
3469+
3470+#: contrib/localflavor/ro/forms.py:19
3471+msgid "Enter a valid CIF."
3472+msgstr "Oppgi et gyldig CIF."
3473+
3474+#: contrib/localflavor/ro/forms.py:56
3475+msgid "Enter a valid CNP."
3476+msgstr "Oppgi et gyldig CNP."
3477+
3478+#: contrib/localflavor/ro/forms.py:141
3479+msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format"
3480+msgstr "Oppgi et gyldig IBAN på formen ROXX-XXXX-XXXX-XXXX-XXXX-XXXX."
3481+
3482+#: contrib/localflavor/ro/forms.py:171
3483+msgid "Phone numbers must be in XXXX-XXXXXX format."
3484+msgstr "Telefonnummeret må være på formen XXXX-XXXXXX."
3485+
3486+#: contrib/localflavor/ro/forms.py:194
3487+msgid "Enter a valid postal code in the format XXXXXX"
3488+msgstr "Oppgi et postnummer på formen XXXXXX."
3489+
3490+#: contrib/localflavor/sk/sk_districts.py:8
3491+msgid "Banska Bystrica"
3492+msgstr "Banska Bystrica"
3493+
3494+#: contrib/localflavor/sk/sk_districts.py:9
3495+msgid "Banska Stiavnica"
3496+msgstr "Banska Stiavnica"
3497+
3498+#: contrib/localflavor/sk/sk_districts.py:10
3499+msgid "Bardejov"
3500+msgstr "Bardejov"
3501+
3502+#: contrib/localflavor/sk/sk_districts.py:11
3503+msgid "Banovce nad Bebravou"
3504+msgstr "Banovce nad Bebravou"
3505+
3506+#: contrib/localflavor/sk/sk_districts.py:12
3507+msgid "Brezno"
3508+msgstr "Brezno"
3509+
3510+#: contrib/localflavor/sk/sk_districts.py:13
3511+msgid "Bratislava I"
3512+msgstr "Bratislava I"
3513+
3514+#: contrib/localflavor/sk/sk_districts.py:14
3515+msgid "Bratislava II"
3516+msgstr "Bratislava II"
3517+
3518+#: contrib/localflavor/sk/sk_districts.py:15
3519+msgid "Bratislava III"
3520+msgstr "Bratislava III"
3521+
3522+#: contrib/localflavor/sk/sk_districts.py:16
3523+msgid "Bratislava IV"
3524+msgstr "Bratislava IV"
3525+
3526+#: contrib/localflavor/sk/sk_districts.py:17
3527+msgid "Bratislava V"
3528+msgstr "Bratislava V"
3529+
3530+#: contrib/localflavor/sk/sk_districts.py:18
3531+msgid "Bytca"
3532+msgstr "Bytca"
3533+
3534+#: contrib/localflavor/sk/sk_districts.py:19
3535+msgid "Cadca"
3536+msgstr "Cadca"
3537+
3538+#: contrib/localflavor/sk/sk_districts.py:20
3539+msgid "Detva"
3540+msgstr "Detva"
3541+
3542+#: contrib/localflavor/sk/sk_districts.py:21
3543+msgid "Dolny Kubin"
3544+msgstr "Dolny Kubin"
3545+
3546+#: contrib/localflavor/sk/sk_districts.py:22
3547+msgid "Dunajska Streda"
3548+msgstr "Dunajska Streda"
3549+
3550+#: contrib/localflavor/sk/sk_districts.py:23
3551+msgid "Galanta"
3552+msgstr "Galanta"
3553+
3554+#: contrib/localflavor/sk/sk_districts.py:24
3555+msgid "Gelnica"
3556+msgstr "Gelnica"
3557+
3558+#: contrib/localflavor/sk/sk_districts.py:25
3559+msgid "Hlohovec"
3560+msgstr "Hlohovec"
3561+
3562+#: contrib/localflavor/sk/sk_districts.py:26
3563+msgid "Humenne"
3564+msgstr "Humenne"
3565+
3566+#: contrib/localflavor/sk/sk_districts.py:27
3567+msgid "Ilava"
3568+msgstr "Ilava"
3569+
3570+#: contrib/localflavor/sk/sk_districts.py:28
3571+msgid "Kezmarok"
3572+msgstr "Kezmarok"
3573+
3574+#: contrib/localflavor/sk/sk_districts.py:29
3575+msgid "Komarno"
3576+msgstr "Komarno"
3577+
3578+#: contrib/localflavor/sk/sk_districts.py:30
3579+msgid "Kosice I"
3580+msgstr "Kosice I"
3581+
3582+#: contrib/localflavor/sk/sk_districts.py:31
3583+msgid "Kosice II"
3584+msgstr "Kosice II"
3585+
3586+#: contrib/localflavor/sk/sk_districts.py:32
3587+msgid "Kosice III"
3588+msgstr "Kosice III"
3589+
3590+#: contrib/localflavor/sk/sk_districts.py:33
3591+msgid "Kosice IV"
3592+msgstr "Kosice IV"
3593+
3594+#: contrib/localflavor/sk/sk_districts.py:34
3595+msgid "Kosice - okolie"
3596+msgstr "Kosice - okolie"
3597+
3598+#: contrib/localflavor/sk/sk_districts.py:35
3599+msgid "Krupina"
3600+msgstr "Krupina"
3601+
3602+#: contrib/localflavor/sk/sk_districts.py:36
3603+msgid "Kysucke Nove Mesto"
3604+msgstr "Kysucke Nove Mesto"
3605+
3606+#: contrib/localflavor/sk/sk_districts.py:37
3607+msgid "Levice"
3608+msgstr "Levice"
3609+
3610+#: contrib/localflavor/sk/sk_districts.py:38
3611+msgid "Levoca"
3612+msgstr "Levoca"
3613+
3614+#: contrib/localflavor/sk/sk_districts.py:39
3615+msgid "Liptovsky Mikulas"
3616+msgstr "Liptovsky Mikulas"
3617+
3618+#: contrib/localflavor/sk/sk_districts.py:40
3619+msgid "Lucenec"
3620+msgstr "Lucenec"
3621+
3622+#: contrib/localflavor/sk/sk_districts.py:41
3623+msgid "Malacky"
3624+msgstr "Malacky"
3625+
3626+#: contrib/localflavor/sk/sk_districts.py:42
3627+msgid "Martin"
3628+msgstr "Martin"
3629+
3630+#: contrib/localflavor/sk/sk_districts.py:43
3631+msgid "Medzilaborce"
3632+msgstr "Medzilaborce"
3633+
3634+#: contrib/localflavor/sk/sk_districts.py:44
3635+msgid "Michalovce"
3636+msgstr "Michalovce"
3637+
3638+#: contrib/localflavor/sk/sk_districts.py:45
3639+msgid "Myjava"
3640+msgstr "Myjava"
3641+
3642+#: contrib/localflavor/sk/sk_districts.py:46
3643+msgid "Namestovo"
3644+msgstr "Namestovo"
3645+
3646+#: contrib/localflavor/sk/sk_districts.py:47
3647+msgid "Nitra"
3648+msgstr "Nitra"
3649+
3650+#: contrib/localflavor/sk/sk_districts.py:48
3651+msgid "Nove Mesto nad Vahom"
3652+msgstr "Nove Mesto nad Vahom"
3653+
3654+#: contrib/localflavor/sk/sk_districts.py:49
3655+msgid "Nove Zamky"
3656+msgstr "Nove Zamky"
3657+
3658+#: contrib/localflavor/sk/sk_districts.py:50
3659+msgid "Partizanske"
3660+msgstr "Partizanske"
3661+
3662+#: contrib/localflavor/sk/sk_districts.py:51
3663+msgid "Pezinok"
3664+msgstr "Pezinok"
3665+
3666+#: contrib/localflavor/sk/sk_districts.py:52
3667+msgid "Piestany"
3668+msgstr "Piestany"
3669+
3670+#: contrib/localflavor/sk/sk_districts.py:53
3671+msgid "Poltar"
3672+msgstr "Poltar"
3673+
3674+#: contrib/localflavor/sk/sk_districts.py:54
3675+msgid "Poprad"
3676+msgstr "Poprad"
3677+
3678+#: contrib/localflavor/sk/sk_districts.py:55
3679+msgid "Povazska Bystrica"
3680+msgstr "Povazska Bystrica"
3681+
3682+#: contrib/localflavor/sk/sk_districts.py:56
3683+msgid "Presov"
3684+msgstr "Presov"
3685+
3686+#: contrib/localflavor/sk/sk_districts.py:57
3687+msgid "Prievidza"
3688+msgstr "Prievidza"
3689+
3690+#: contrib/localflavor/sk/sk_districts.py:58
3691+msgid "Puchov"
3692+msgstr "Puchov"
3693+
3694+#: contrib/localflavor/sk/sk_districts.py:59
3695+msgid "Revuca"
3696+msgstr "Revuca"
3697+
3698+#: contrib/localflavor/sk/sk_districts.py:60
3699+msgid "Rimavska Sobota"
3700+msgstr "Rimavska Sobota"
3701+
3702+#: contrib/localflavor/sk/sk_districts.py:61
3703+msgid "Roznava"
3704+msgstr "Roznava"
3705+
3706+#: contrib/localflavor/sk/sk_districts.py:62
3707+msgid "Ruzomberok"
3708+msgstr "Ruzomberok"
3709+
3710+#: contrib/localflavor/sk/sk_districts.py:63
3711+msgid "Sabinov"
3712+msgstr "Sabinov"
3713+
3714+#: contrib/localflavor/sk/sk_districts.py:64
3715+msgid "Senec"
3716+msgstr "Senec"
3717+
3718+#: contrib/localflavor/sk/sk_districts.py:65
3719+msgid "Senica"
3720+msgstr "Senica"
3721+
3722+#: contrib/localflavor/sk/sk_districts.py:66
3723+msgid "Skalica"
3724+msgstr "Skalica"
3725+
3726+#: contrib/localflavor/sk/sk_districts.py:67
3727+msgid "Snina"
3728+msgstr "Snina"
3729+
3730+#: contrib/localflavor/sk/sk_districts.py:68
3731+msgid "Sobrance"
3732+msgstr "Sobrance"
3733+
3734+#: contrib/localflavor/sk/sk_districts.py:69
3735+msgid "Spisska Nova Ves"
3736+msgstr "Spisska Nova Ves"
3737+
3738+#: contrib/localflavor/sk/sk_districts.py:70
3739+msgid "Stara Lubovna"
3740+msgstr "Stara Lubovna"
3741+
3742+#: contrib/localflavor/sk/sk_districts.py:71
3743+msgid "Stropkov"
3744+msgstr "Stropkov"
3745+
3746+#: contrib/localflavor/sk/sk_districts.py:72
3747+msgid "Svidnik"
3748+msgstr "Svidnik"
3749+
3750+#: contrib/localflavor/sk/sk_districts.py:73
3751+msgid "Sala"
3752+msgstr "Sala"
3753+
3754+#: contrib/localflavor/sk/sk_districts.py:74
3755+msgid "Topolcany"
3756+msgstr "Topolcany"
3757+
3758+#: contrib/localflavor/sk/sk_districts.py:75
3759+msgid "Trebisov"
3760+msgstr "Trebisov"
3761+
3762+#: contrib/localflavor/sk/sk_districts.py:76
3763+msgid "Trencin"
3764+msgstr "Trencin"
3765+
3766+#: contrib/localflavor/sk/sk_districts.py:77
3767+msgid "Trnava"
3768+msgstr "Trnava"
3769+
3770+#: contrib/localflavor/sk/sk_districts.py:78
3771+msgid "Turcianske Teplice"
3772+msgstr "Turcianske Teplice"
3773+
3774+#: contrib/localflavor/sk/sk_districts.py:79
3775+msgid "Tvrdosin"
3776+msgstr "Tvrdosin"
3777+
3778+#: contrib/localflavor/sk/sk_districts.py:80
3779+msgid "Velky Krtis"
3780+msgstr "Velky Krtis"
3781+
3782+#: contrib/localflavor/sk/sk_districts.py:81
3783+msgid "Vranov nad Toplou"
3784+msgstr "Vranov nad Toplou"
3785+
3786+#: contrib/localflavor/sk/sk_districts.py:82
3787+msgid "Zlate Moravce"
3788+msgstr "Zlate Moravce"
3789+
3790+#: contrib/localflavor/sk/sk_districts.py:83
3791+msgid "Zvolen"
3792+msgstr "Zvolen"
3793+
3794+#: contrib/localflavor/sk/sk_districts.py:84
3795+msgid "Zarnovica"
3796+msgstr "Zarnovica"
3797+
3798+#: contrib/localflavor/sk/sk_districts.py:85
3799+msgid "Ziar nad Hronom"
3800+msgstr "Ziar nad Hronom"
3801+
3802+#: contrib/localflavor/sk/sk_districts.py:86
3803+msgid "Zilina"
3804+msgstr "Zilina"
3805+
3806+#: contrib/localflavor/sk/sk_regions.py:8
3807+msgid "Banska Bystrica region"
3808+msgstr "Banská Bystrica-regionen"
3809+
3810+#: contrib/localflavor/sk/sk_regions.py:9
3811+msgid "Bratislava region"
3812+msgstr "Bratislava-regionen"
3813+
3814+#: contrib/localflavor/sk/sk_regions.py:10
3815+msgid "Kosice region"
3816+msgstr "Košice-regionen"
3817+
3818+#: contrib/localflavor/sk/sk_regions.py:11
3819+msgid "Nitra region"
3820+msgstr "Nitra-regionen"
3821+
3822+#: contrib/localflavor/sk/sk_regions.py:12
3823+msgid "Presov region"
3824+msgstr "Prešov-regionen"
3825+
3826+#: contrib/localflavor/sk/sk_regions.py:13
3827+msgid "Trencin region"
3828+msgstr "Trenčín-regionen"
3829+
3830+#: contrib/localflavor/sk/sk_regions.py:14
3831+msgid "Trnava region"
3832+msgstr "Trnava-regionen"
3833+
3834+#: contrib/localflavor/sk/sk_regions.py:15
3835+msgid "Zilina region"
3836+msgstr "Žilina-regionen"
3837+
3838+#: contrib/localflavor/uk/forms.py:21
3839+msgid "Enter a valid postcode."
3840+msgstr "Oppgi et gyldig postnummer."
3841+
3842+#: contrib/localflavor/uk/uk_regions.py:11
3843+msgid "Bedfordshire"
3844+msgstr "Bedfordshire"
3845+
3846+#: contrib/localflavor/uk/uk_regions.py:12
3847+msgid "Buckinghamshire"
3848+msgstr "Buckinghamshire"
3849+
3850+#: contrib/localflavor/uk/uk_regions.py:14
3851+msgid "Cheshire"
3852+msgstr "Cheshire"
3853+
3854+#: contrib/localflavor/uk/uk_regions.py:15
3855+msgid "Cornwall and Isles of Scilly"
3856+msgstr "Cornwall"
3857+
3858+#: contrib/localflavor/uk/uk_regions.py:16
3859+msgid "Cumbria"
3860+msgstr "Cumbria"
3861+
3862+#: contrib/localflavor/uk/uk_regions.py:17
3863+msgid "Derbyshire"
3864+msgstr "Derbyshire"
3865+
3866+#: contrib/localflavor/uk/uk_regions.py:18
3867+msgid "Devon"
3868+msgstr "Devon"
3869+
3870+#: contrib/localflavor/uk/uk_regions.py:19
3871+msgid "Dorset"
3872+msgstr "Dorset"
3873+
3874+#: contrib/localflavor/uk/uk_regions.py:20
3875+msgid "Durham"
3876+msgstr "Durham"
3877+
3878+#: contrib/localflavor/uk/uk_regions.py:21
3879+msgid "East Sussex"
3880+msgstr "East Sussex"
3881+
3882+#: contrib/localflavor/uk/uk_regions.py:22
3883+msgid "Essex"
3884+msgstr "Essex"
3885+
3886+#: contrib/localflavor/uk/uk_regions.py:23
3887+msgid "Gloucestershire"
3888+msgstr "Gloucestershire"
3889+
3890+#: contrib/localflavor/uk/uk_regions.py:24
3891+msgid "Greater London"
3892+msgstr "Stor-London"
3893+
3894+#: contrib/localflavor/uk/uk_regions.py:25
3895+msgid "Greater Manchester"
3896+msgstr "Stor-Manchester"
3897+
3898+#: contrib/localflavor/uk/uk_regions.py:26
3899+msgid "Hampshire"
3900+msgstr "Hampshire"
3901+
3902+#: contrib/localflavor/uk/uk_regions.py:27
3903+msgid "Hertfordshire"
3904+msgstr "Hertfordshire"
3905+
3906+#: contrib/localflavor/uk/uk_regions.py:28
3907+msgid "Kent"
3908+msgstr "Kent"
3909+
3910+#: contrib/localflavor/uk/uk_regions.py:29
3911+msgid "Lancashire"
3912+msgstr "Lancashire"
3913+
3914+#: contrib/localflavor/uk/uk_regions.py:30
3915+msgid "Leicestershire"
3916+msgstr "Leicestershire"
3917+
3918+#: contrib/localflavor/uk/uk_regions.py:31
3919+msgid "Lincolnshire"
3920+msgstr "Lincolnshire"
3921+
3922+#: contrib/localflavor/uk/uk_regions.py:32
3923+msgid "Merseyside"
3924+msgstr "Merseyside"
3925+
3926+#: contrib/localflavor/uk/uk_regions.py:33
3927+msgid "Norfolk"
3928+msgstr "Norfolk"
3929+
3930+#: contrib/localflavor/uk/uk_regions.py:34
3931+msgid "North Yorkshire"
3932+msgstr "North Yorkshire"
3933+
3934+#: contrib/localflavor/uk/uk_regions.py:35
3935+msgid "Northamptonshire"
3936+msgstr "Northamptonshire"
3937+
3938+#: contrib/localflavor/uk/uk_regions.py:36
3939+msgid "Northumberland"
3940+msgstr "Northumberland"
3941+
3942+#: contrib/localflavor/uk/uk_regions.py:37
3943+msgid "Nottinghamshire"
3944+msgstr "Nottinghamshire"
3945+
3946+#: contrib/localflavor/uk/uk_regions.py:38
3947+msgid "Oxfordshire"
3948+msgstr "Oxfordshire"
3949+
3950+#: contrib/localflavor/uk/uk_regions.py:39
3951+msgid "Shropshire"
3952+msgstr "Shropshire"
3953+
3954+#: contrib/localflavor/uk/uk_regions.py:40
3955+msgid "Somerset"
3956+msgstr "Somerset"
3957+
3958+#: contrib/localflavor/uk/uk_regions.py:41
3959+msgid "South Yorkshire"
3960+msgstr "South Yorkshire"
3961+
3962+#: contrib/localflavor/uk/uk_regions.py:42
3963+msgid "Staffordshire"
3964+msgstr "Staffordshire"
3965+
3966+#: contrib/localflavor/uk/uk_regions.py:43
3967+msgid "Suffolk"
3968+msgstr "Suffolk"
3969+
3970+#: contrib/localflavor/uk/uk_regions.py:44
3971+msgid "Surrey"
3972+msgstr "Surrey"
3973+
3974+#: contrib/localflavor/uk/uk_regions.py:45
3975+msgid "Tyne and Wear"
3976+msgstr "Tyne and Wear"
3977+
3978+#: contrib/localflavor/uk/uk_regions.py:46
3979+msgid "Warwickshire"
3980+msgstr "Warwickshire"
3981+
3982+#: contrib/localflavor/uk/uk_regions.py:47
3983+msgid "West Midlands"
3984+msgstr "West Midlands"
3985+
3986+#: contrib/localflavor/uk/uk_regions.py:48
3987+msgid "West Sussex"
3988+msgstr "West Sussex"
3989+
3990+#: contrib/localflavor/uk/uk_regions.py:49
3991+msgid "West Yorkshire"
3992+msgstr "West Yorkshire"
3993+
3994+#: contrib/localflavor/uk/uk_regions.py:50
3995+msgid "Wiltshire"
3996+msgstr "Wiltshire"
3997+
3998+#: contrib/localflavor/uk/uk_regions.py:51
3999+msgid "Worcestershire"
4000+msgstr "Worcestershire"
4001+
4002+#: contrib/localflavor/uk/uk_regions.py:55
4003+msgid "County Antrim"
4004+msgstr "Antrim"
4005+
4006+#: contrib/localflavor/uk/uk_regions.py:56
4007+msgid "County Armagh"
4008+msgstr "Armagh"
4009+
4010+#: contrib/localflavor/uk/uk_regions.py:57
4011+msgid "County Down"
4012+msgstr "Down"
4013+
4014+#: contrib/localflavor/uk/uk_regions.py:58
4015+msgid "County Fermanagh"
4016+msgstr "Fermanagh"
4017+
4018+#: contrib/localflavor/uk/uk_regions.py:59
4019+msgid "County Londonderry"
4020+msgstr "Londonderry"
4021+
4022+#: contrib/localflavor/uk/uk_regions.py:60
4023+msgid "County Tyrone"
4024+msgstr "Tyrone"
4025+
4026+#: contrib/localflavor/uk/uk_regions.py:64
4027+msgid "Clwyd"
4028+msgstr "Clwyd"
4029+
4030+#: contrib/localflavor/uk/uk_regions.py:65
4031+msgid "Dyfed"
4032+msgstr "Dyfed"
4033+
4034+#: contrib/localflavor/uk/uk_regions.py:66
4035+msgid "Gwent"
4036+msgstr "Gwent"
4037+
4038+#: contrib/localflavor/uk/uk_regions.py:67
4039+msgid "Gwynedd"
4040+msgstr "Gwynedd"
4041+
4042+#: contrib/localflavor/uk/uk_regions.py:68
4043+msgid "Mid Glamorgan"
4044+msgstr "Mid Glamorgan"
4045+
4046+#: contrib/localflavor/uk/uk_regions.py:69
4047+msgid "Powys"
4048+msgstr "Powys"
4049+
4050+#: contrib/localflavor/uk/uk_regions.py:70
4051+msgid "South Glamorgan"
4052+msgstr "South Glamorgan"
4053+
4054+#: contrib/localflavor/uk/uk_regions.py:71
4055+msgid "West Glamorgan"
4056+msgstr "West Glamorgan"
4057+
4058+#: contrib/localflavor/uk/uk_regions.py:75
4059+msgid "Borders"
4060+msgstr "Borders"
4061+
4062+#: contrib/localflavor/uk/uk_regions.py:76
4063+msgid "Central Scotland"
4064+msgstr "Central Scotland"
4065+
4066+#: contrib/localflavor/uk/uk_regions.py:77
4067+msgid "Dumfries and Galloway"
4068+msgstr "Dumfries and Galloway"
4069+
4070+#: contrib/localflavor/uk/uk_regions.py:78
4071+msgid "Fife"
4072+msgstr "Fife"
4073+
4074+#: contrib/localflavor/uk/uk_regions.py:79
4075+msgid "Grampian"
4076+msgstr "Grampian"
4077+
4078+#: contrib/localflavor/uk/uk_regions.py:80
4079+msgid "Highland"
4080+msgstr "Highland"
4081+
4082+#: contrib/localflavor/uk/uk_regions.py:81
4083+msgid "Lothian"
4084+msgstr "Lothian"
4085+
4086+#: contrib/localflavor/uk/uk_regions.py:82
4087+msgid "Orkney Islands"
4088+msgstr "Orknøyene"
4089+
4090+#: contrib/localflavor/uk/uk_regions.py:83
4091+msgid "Shetland Islands"
4092+msgstr "Shetland"
4093+
4094+#: contrib/localflavor/uk/uk_regions.py:84
4095+msgid "Strathclyde"
4096+msgstr "Strathclyde"
4097+
4098+#: contrib/localflavor/uk/uk_regions.py:85
4099+msgid "Tayside"
4100+msgstr "Tayside"
4101+
4102+#: contrib/localflavor/uk/uk_regions.py:86
4103+msgid "Western Isles"
4104+msgstr "Ytre Hebridene"
4105+
4106+#: contrib/localflavor/uk/uk_regions.py:90
4107+msgid "England"
4108+msgstr "England"
4109+
4110+#: contrib/localflavor/uk/uk_regions.py:91
4111+msgid "Northern Ireland"
4112+msgstr "Nord-Irland"
4113+
4114+#: contrib/localflavor/uk/uk_regions.py:92
4115+msgid "Scotland"
4116+msgstr "Skottland"
4117+
4118+#: contrib/localflavor/uk/uk_regions.py:93
4119+msgid "Wales"
4120+msgstr "Wales"
4121+
4122+#: contrib/localflavor/us/forms.py:16
4123+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
4124+msgstr "Oppgi et postnummer på formen XXXXX eller XXXXX-XXXX."
4125+
4126+#: contrib/localflavor/us/forms.py:54
4127+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
4128+msgstr ""
4129+"Oppgi et gyldig amerikansik Social Security-nummer på formen XXX-XX-XXXX."
4130+
4131+#: contrib/localflavor/za/forms.py:20
4132+msgid "Enter a valid South African ID number"
4133+msgstr "Oppgi et gyldig South African ID-nummer."
4134+
4135+#: contrib/localflavor/za/forms.py:54
4136+msgid "Enter a valid South African postal code"
4137+msgstr "Oppgi et gyldig postnummer."
4138+
4139+#: contrib/localflavor/za/za_provinces.py:4
4140+msgid "Eastern Cape"
4141+msgstr "Eastern Cape"
4142+
4143+#: contrib/localflavor/za/za_provinces.py:5
4144+msgid "Free State"
4145+msgstr "Free State"
4146+
4147+#: contrib/localflavor/za/za_provinces.py:6
4148+msgid "Gauteng"
4149+msgstr "Gauteng"
4150+
4151+#: contrib/localflavor/za/za_provinces.py:7
4152+msgid "KwaZulu-Natal"
4153+msgstr "KwaZulu-Natal"
4154+
4155+#: contrib/localflavor/za/za_provinces.py:8
4156+msgid "Limpopo"
4157+msgstr "Limpopo"
4158+
4159+#: contrib/localflavor/za/za_provinces.py:9
4160+msgid "Mpumalanga"
4161+msgstr "Mpumalanga"
4162+
4163+#: contrib/localflavor/za/za_provinces.py:10
4164+msgid "Northern Cape"
4165+msgstr "Northern Cape"
4166+
4167+#: contrib/localflavor/za/za_provinces.py:11
4168+msgid "North West"
4169+msgstr "North West"
4170+
4171+#: contrib/localflavor/za/za_provinces.py:12
4172+msgid "Western Cape"
4173+msgstr "Western Cape"
4174+
4175+#: contrib/redirects/models.py:7
4176+msgid "redirect from"
4177+msgstr "omadresser fra"
4178+
4179+#: contrib/redirects/models.py:8
4180+msgid ""
4181+"This should be an absolute path, excluding the domain name. Example: '/"
4182+"events/search/'."
4183+msgstr ""
4184+"Dette bør være en fullstendig sti uten domenenavn. Eksempel: '/hendelser/"
4185+"finn/"
4186+
4187+#: contrib/redirects/models.py:9
4188+msgid "redirect to"
4189+msgstr "omadresser til"
4190+
4191+#: contrib/redirects/models.py:10
4192+msgid ""
4193+"This can be either an absolute path (as above) or a full URL starting with "
4194+"'http://'."
4195+msgstr ""
4196+"Dette kan enten være en fullstendig sti (som over), eller en fullstendig "
4197+"nettadresse som starter med 'http://'"
4198+
4199+#: contrib/redirects/models.py:13
4200+msgid "redirect"
4201+msgstr "omadressering"
4202+
4203+#: contrib/redirects/models.py:14
4204+msgid "redirects"
4205+msgstr "omadresseringer"
4206+
4207+#: contrib/sessions/models.py:45
4208+msgid "session key"
4209+msgstr "sesjonsnøkkel"
4210+
4211+#: contrib/sessions/models.py:47
4212+msgid "session data"
4213+msgstr "sesjonsdata"
4214+
4215+#: contrib/sessions/models.py:48
4216+msgid "expire date"
4217+msgstr "utløpsdato"
4218+
4219+#: contrib/sessions/models.py:53
4220+msgid "session"
4221+msgstr "sesjon"
4222+
4223+#: contrib/sessions/models.py:54
4224+msgid "sessions"
4225+msgstr "sesjoner"
4226+
4227+#: contrib/sites/models.py:32
4228+msgid "domain name"
4229+msgstr "domenenavn"
4230+
4231+#: contrib/sites/models.py:33
4232+msgid "display name"
4233+msgstr "visningsnavn"
4234+
4235+#: contrib/sites/models.py:39
4236+msgid "sites"
4237+msgstr "nettsider"
4238+
4239+#: db/models/fields/__init__.py:356 db/models/fields/__init__.py:710
4240+msgid "This value must be an integer."
4241+msgstr "Verdien må være et heltall."
4242+
4243+#: db/models/fields/__init__.py:388
4244+msgid "This value must be either True or False."
4245+msgstr "Verdien må være True eller False."
4246+
4247+#: db/models/fields/__init__.py:427
4248+msgid "This field cannot be null."
4249+msgstr "Feltet kan ikke være tomt."
4250+
4251+#: db/models/fields/__init__.py:443
4252+msgid "Enter only digits separated by commas."
4253+msgstr "Oppgi kun tall adskilt med komma."
4254+
4255+#: db/models/fields/__init__.py:474
4256+msgid "Enter a valid date in YYYY-MM-DD format."
4257+msgstr "Oppgi en gyldig dato på formen ÅÅÅÅ-MM-DD."
4258+
4259+#: db/models/fields/__init__.py:483
4260+#, python-format
4261+msgid "Invalid date: %s"
4262+msgstr "Ugyldig dato: %s"
4263+
4264+#: db/models/fields/__init__.py:547 db/models/fields/__init__.py:565
4265+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format."
4266+msgstr "Oppgi dato og tid på formen ÅÅÅÅ-MM-DD TT:MM[:ss[.uuuuuu]]."
4267+
4268+#: db/models/fields/__init__.py:601
4269+msgid "This value must be a decimal number."
4270+msgstr "Verdien må være et desimaltall."
4271+
4272+#: db/models/fields/__init__.py:686
4273+msgid "This value must be a float."
4274+msgstr "Verdien må være et flyttall."
4275+
4276+#: db/models/fields/__init__.py:746
4277+msgid "This value must be either None, True or False."
4278+msgstr "Verdien må være None, True eller False."
4279+
4280+#: db/models/fields/__init__.py:849 db/models/fields/__init__.py:863
4281+msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format."
4282+msgstr "Oppgi tiden på formen TT:MM[:ss[.uuuuuu]]."
4283+
4284+#: db/models/fields/related.py:816
4285+msgid ""
4286+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
4287+msgstr ""
4288+"Hold nede \"Control\", eller \"Command\" på en Mac, for å velge mer enn en."
4289+
4290+#: db/models/fields/related.py:894
4291+#, python-format
4292+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
4293+msgid_plural ""
4294+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
4295+msgstr[0] "Oppgi gyldige %(self)s-ID-er. Verdien %(value)r er ugyldig."
4296+msgstr[1] "Oppgi gyldige %(self)s-ID-er. Verdiene %(value)r er ugyldige."
4297+
4298+#: forms/fields.py:54
4299+msgid "This field is required."
4300+msgstr "Feltet er påkrevet."
4301+
4302+#: forms/fields.py:55
4303+msgid "Enter a valid value."
4304+msgstr "Oppgi en gyldig verdi."
4305+
4306+#: forms/fields.py:138
4307+#, python-format
4308+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
4309+msgstr "Verdien kan maksimalt ha %(max)d tegn (den er %(length)d)."
4310+
4311+#: forms/fields.py:139
4312+#, python-format
4313+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
4314+msgstr "Verdien må minimum ha %(min)d tegn (den er %(length)d)."
4315+
4316+#: forms/fields.py:166
4317+msgid "Enter a whole number."
4318+msgstr "Oppgi et heltall."
4319+
4320+#: forms/fields.py:167 forms/fields.py:196 forms/fields.py:225
4321+#, python-format
4322+msgid "Ensure this value is less than or equal to %s."
4323+msgstr "Verdien må være mindre enn eller lik %s."
4324+
4325+#: forms/fields.py:168 forms/fields.py:197 forms/fields.py:226
4326+#, python-format
4327+msgid "Ensure this value is greater than or equal to %s."
4328+msgstr "Verdien må være større enn eller lik %s."
4329+
4330+#: forms/fields.py:195 forms/fields.py:224
4331+msgid "Enter a number."
4332+msgstr "Oppgi et tall."
4333+
4334+#: forms/fields.py:227
4335+#, python-format
4336+msgid "Ensure that there are no more than %s digits in total."
4337+msgstr "Verdien kan ikke ha mer enn %s siffer totalt."
4338+
4339+#: forms/fields.py:228
4340+#, python-format
4341+msgid "Ensure that there are no more than %s decimal places."
4342+msgstr "Verdien kan ikke ha mer enn %s desimaler."
4343+
4344+#: forms/fields.py:229
4345+#, python-format
4346+msgid "Ensure that there are no more than %s digits before the decimal point."
4347+msgstr "Verdien kan ikke ha mer enn %s siffer foran komma."
4348+
4349+#: forms/fields.py:288 forms/fields.py:863
4350+msgid "Enter a valid date."
4351+msgstr "Oppgi en gyldig dato."
4352+
4353+#: forms/fields.py:322 forms/fields.py:864
4354+msgid "Enter a valid time."
4355+msgstr "Oppgi et gyldig tidspunkt."
4356+
4357+#: forms/fields.py:361
4358+msgid "Enter a valid date/time."
4359+msgstr "Oppgi gyldig dato og tidspunkt."
4360+
4361+#: forms/fields.py:447
4362+msgid "No file was submitted. Check the encoding type on the form."
4363+msgstr "Ingen fil ble sendt. Sjekk \"encoding\"-typen på skjemaet."
4364+
4365+#: forms/fields.py:448
4366+msgid "No file was submitted."
4367+msgstr "Ingen fil ble sendt."
4368+
4369+#: forms/fields.py:449
4370+msgid "The submitted file is empty."
4371+msgstr "Filen er tom."
4372+
4373+#: forms/fields.py:450
4374+#, python-format
4375+msgid ""
4376+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
4377+msgstr "Filnavnet kan maksimalt ha %(max)d tegn (det har %(length)d)."
4378+
4379+#: forms/fields.py:483
4380+msgid ""
4381+"Upload a valid image. The file you uploaded was either not an image or a "
4382+"corrupted image."
4383+msgstr ""
4384+"Last opp et gyldig bilde. Filen du lastet opp var ødelagt eller ikke et "
4385+"bilde."
4386+
4387+#: forms/fields.py:544
4388+msgid "Enter a valid URL."
4389+msgstr "Oppgi en gyldig nettadresse."
4390+
4391+#: forms/fields.py:545
4392+msgid "This URL appears to be a broken link."
4393+msgstr "Nettadressen fører til en side som ikke eksisterer."
4394+
4395+#: forms/fields.py:625 forms/fields.py:703
4396+#, python-format
4397+msgid "Select a valid choice. %(value)s is not one of the available choices."
4398+msgstr "Velg et gyldig valg. %(value)s er ikke et av de tilgjengelige valgene."
4399+
4400+#: forms/fields.py:704 forms/fields.py:765 forms/models.py:1003
4401+msgid "Enter a list of values."
4402+msgstr "Oppgi en liste med verdier."
4403+
4404+#: forms/fields.py:892
4405+msgid "Enter a valid IPv4 address."
4406+msgstr "Oppgi en gyldig IPv4-adresse."
4407+
4408+#: forms/fields.py:902
4409+msgid ""
4410+"Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens."
4411+msgstr ""
4412+"Oppgi en gyldig 'slug' bestående av bokstaver, nummer, understreker eller "
4413+"bindestreker."
4414+
4415+#: forms/formsets.py:271 forms/formsets.py:273
4416+msgid "Order"
4417+msgstr "Rekkefølge"
4418+
4419+#: forms/models.py:367
4420+#, python-format
4421+msgid "%(field_name)s must be unique for %(date_field)s %(lookup)s."
4422+msgstr "%(field_name)s må være unik for %(date_field)s %(lookup)s."
4423+
4424+#: forms/models.py:381 forms/models.py:389
4425+#, python-format
4426+msgid "%(model_name)s with this %(field_label)s already exists."
4427+msgstr "%(model_name)s med %(field_label)s finnes allerede."
4428+
4429+#: forms/models.py:594
4430+#, python-format
4431+msgid "Please correct the duplicate data for %(field)s."
4432+msgstr "Vennligst korriger duplisert data for %(field)s."
4433+
4434+#: forms/models.py:598
4435+#, python-format
4436+msgid "Please correct the duplicate data for %(field)s, which must be unique."
4437+msgstr "Vennligst korriger duplisert data for %(field)s, som må være unik."
4438+
4439+#: forms/models.py:604
4440+#, python-format
4441+msgid ""
4442+"Please correct the duplicate data for %(field_name)s which must be unique "
4443+"for the %(lookup)s in %(date_field)s."
4444+msgstr ""
4445+"Vennligst korriger duplisert data for %(field_name)s, som må være unik for "
4446+"%(lookup)s i %(date_field)s."
4447+
4448+#: forms/models.py:612
4449+msgid "Please correct the duplicate values below."
4450+msgstr "Vennligst korriger de dupliserte verdiene nedenfor."
4451+
4452+#: forms/models.py:867
4453+msgid "The inline foreign key did not match the parent instance primary key."
4454+msgstr "Primærnøkkelen er ikke den samme som foreldreinstansens primærnøkkel."
4455+
4456+#: forms/models.py:930
4457+msgid "Select a valid choice. That choice is not one of the available choices."
4458+msgstr "Velg et gyldig valg. Valget er ikke et av de tilgjengelige valgene."
4459+
4460+#: forms/models.py:1004
4461+#, python-format
4462+msgid "Select a valid choice. %s is not one of the available choices."
4463+msgstr "Velg et gyldig valg. %s er ikke et av de tilgjengelige valgene."
4464+
4465+#: forms/models.py:1006
4466+#, python-format
4467+msgid "\"%s\" is not a valid value for a primary key."
4468+msgstr "\"%s\" er ikke en gyldig verdi for en primærnøkkel."
4469+
4470+#: template/defaultfilters.py:767
4471+msgid "yes,no,maybe"
4472+msgstr "ja,nei,kanskje"
4473+
4474+#: template/defaultfilters.py:798
4475+#, python-format
4476+msgid "%(size)d byte"
4477+msgid_plural "%(size)d bytes"
4478+msgstr[0] "%(size)d byte"
4479+msgstr[1] "%(size)d bytes"
4480+
4481+#: template/defaultfilters.py:800
4482+#, python-format
4483+msgid "%.1f KB"
4484+msgstr "%.1f KB"
4485+
4486+#: template/defaultfilters.py:802
4487+#, python-format
4488+msgid "%.1f MB"
4489+msgstr "%.1f MB"
4490+
4491+#: template/defaultfilters.py:803
4492+#, python-format
4493+msgid "%.1f GB"
4494+msgstr "%.1f GB"
4495+
4496+#: utils/dateformat.py:42
4497+msgid "p.m."
4498+msgstr "p.m."
4499+
4500+#: utils/dateformat.py:43
4501+msgid "a.m."
4502+msgstr "a.m."
4503+
4504+#: utils/dateformat.py:48
4505+msgid "PM"
4506+msgstr "PM"
4507+
4508+#: utils/dateformat.py:49
4509+msgid "AM"
4510+msgstr "AM"
4511+
4512+#: utils/dateformat.py:98
4513+msgid "midnight"
4514+msgstr "midnatt"
4515+
4516+#: utils/dateformat.py:100
4517+msgid "noon"
4518+msgstr "12:00"
4519+
4520+#: utils/dates.py:6
4521+msgid "Monday"
4522+msgstr "mandag"
4523+
4524+#: utils/dates.py:6
4525+msgid "Tuesday"
4526+msgstr "tirsdag"
4527+
4528+#: utils/dates.py:6
4529+msgid "Wednesday"
4530+msgstr "onsdag"
4531+
4532+#: utils/dates.py:6
4533+msgid "Thursday"
4534+msgstr "torsdag"
4535+
4536+#: utils/dates.py:6
4537+msgid "Friday"
4538+msgstr "fredag"
4539+
4540+#: utils/dates.py:7
4541+msgid "Saturday"
4542+msgstr "lørdag"
4543+
4544+#: utils/dates.py:7
4545+msgid "Sunday"
4546+msgstr "søndag"
4547+
4548+#: utils/dates.py:10
4549+msgid "Mon"
4550+msgstr "man"
4551+
4552+#: utils/dates.py:10
4553+msgid "Tue"
4554+msgstr "tirs"
4555+
4556+#: utils/dates.py:10
4557+msgid "Wed"
4558+msgstr "ons"
4559+
4560+#: utils/dates.py:10
4561+msgid "Thu"
4562+msgstr "tors"
4563+
4564+#: utils/dates.py:10
4565+msgid "Fri"
4566+msgstr "fre"
4567+
4568+#: utils/dates.py:11
4569+msgid "Sat"
4570+msgstr "lør"
4571+
4572+#: utils/dates.py:11
4573+msgid "Sun"
4574+msgstr "søn"
4575+
4576+#: utils/dates.py:18
4577+msgid "January"
4578+msgstr "januar"
4579+
4580+#: utils/dates.py:18
4581+msgid "February"
4582+msgstr "februar"
4583+
4584+#: utils/dates.py:18 utils/dates.py:31
4585+msgid "March"
4586+msgstr "mars"
4587+
4588+#: utils/dates.py:18 utils/dates.py:31
4589+msgid "April"
4590+msgstr "april"
4591+
4592+#: utils/dates.py:18 utils/dates.py:31
4593+msgid "May"
4594+msgstr "mai"
4595+
4596+#: utils/dates.py:18 utils/dates.py:31
4597+msgid "June"
4598+msgstr "juni"
4599+
4600+#: utils/dates.py:19 utils/dates.py:31
4601+msgid "July"
4602+msgstr "juli"
4603+
4604+#: utils/dates.py:19
4605+msgid "August"
4606+msgstr "august"
4607+
4608+#: utils/dates.py:19
4609+msgid "September"
4610+msgstr "september"
4611+
4612+#: utils/dates.py:19
4613+msgid "October"
4614+msgstr "oktober"
4615+
4616+#: utils/dates.py:19
4617+msgid "November"
4618+msgstr "november"
4619+
4620+#: utils/dates.py:20
4621+msgid "December"
4622+msgstr "desember"
4623+
4624+#: utils/dates.py:23
4625+msgid "jan"
4626+msgstr "jan"
4627+
4628+#: utils/dates.py:23
4629+msgid "feb"
4630+msgstr "feb"
4631+
4632+#: utils/dates.py:23
4633+msgid "mar"
4634+msgstr "mar"
4635+
4636+#: utils/dates.py:23
4637+msgid "apr"
4638+msgstr "apr"
4639+
4640+#: utils/dates.py:23
4641+msgid "may"
4642+msgstr "mai"
4643+
4644+#: utils/dates.py:23
4645+msgid "jun"
4646+msgstr "jun"
4647+
4648+#: utils/dates.py:24
4649+msgid "jul"
4650+msgstr "jul"
4651+
4652+#: utils/dates.py:24
4653+msgid "aug"
4654+msgstr "aug"
4655+
4656+#: utils/dates.py:24
4657+msgid "sep"
4658+msgstr "sep"
4659+
4660+#: utils/dates.py:24
4661+msgid "oct"
4662+msgstr "okt"
4663+
4664+#: utils/dates.py:24
4665+msgid "nov"
4666+msgstr "nov"
4667+
4668+#: utils/dates.py:24
4669+msgid "dec"
4670+msgstr "des"
4671+
4672+#: utils/dates.py:31
4673+msgid "Jan."
4674+msgstr "jan."
4675+
4676+#: utils/dates.py:31
4677+msgid "Feb."
4678+msgstr "feb."
4679+
4680+#: utils/dates.py:32
4681+msgid "Aug."
4682+msgstr "aug."
4683+
4684+#: utils/dates.py:32
4685+msgid "Sept."
4686+msgstr "sept."
4687+
4688+#: utils/dates.py:32
4689+msgid "Oct."
4690+msgstr "okt."
4691+
4692+#: utils/dates.py:32
4693+msgid "Nov."
4694+msgstr "nov."
4695+
4696+#: utils/dates.py:32
4697+msgid "Dec."
4698+msgstr "des."
4699+
4700+#: utils/text.py:128
4701+msgid "or"
4702+msgstr "eller"
4703+
4704+#: utils/timesince.py:21
4705+msgid "year"
4706+msgid_plural "years"
4707+msgstr[0] "år"
4708+msgstr[1] "år"
4709+
4710+#: utils/timesince.py:22
4711+msgid "month"
4712+msgid_plural "months"
4713+msgstr[0] "måned"
4714+msgstr[1] "måneder"
4715+
4716+#: utils/timesince.py:23
4717+msgid "week"
4718+msgid_plural "weeks"
4719+msgstr[0] "uke"
4720+msgstr[1] "uker"
4721+
4722+#: utils/timesince.py:24
4723+msgid "day"
4724+msgid_plural "days"
4725+msgstr[0] "dag"
4726+msgstr[1] "dager"
4727+
4728+#: utils/timesince.py:25
4729+msgid "hour"
4730+msgid_plural "hours"
4731+msgstr[0] "time"
4732+msgstr[1] "timer"
4733+
4734+#: utils/timesince.py:26
4735+msgid "minute"
4736+msgid_plural "minutes"
4737+msgstr[0] "minutt"
4738+msgstr[1] "minutter"
4739+
4740+#: utils/timesince.py:45
4741+msgid "minutes"
4742+msgstr "minutter"
4743+
4744+#: utils/timesince.py:50
4745+#, python-format
4746+msgid "%(number)d %(type)s"
4747+msgstr "%(number)d %(type)s"
4748+
4749+#: utils/timesince.py:56
4750+#, python-format
4751+msgid ", %(number)d %(type)s"
4752+msgstr ", %(number)d %(type)s"
4753+
4754+#: utils/translation/trans_real.py:399
4755+msgid "DATE_FORMAT"
4756+msgstr "j. F Y"
4757+
4758+#: utils/translation/trans_real.py:401
4759+msgid "TIME_FORMAT"
4760+msgstr "H:i"
4761+
4762+#: utils/translation/trans_real.py:417
4763+msgid "YEAR_MONTH_FORMAT"
4764+msgstr "F Y"
4765+
4766+#: utils/translation/trans_real.py:418
4767+msgid "MONTH_DAY_FORMAT"
4768+msgstr "j. F"
4769+
4770+#: views/generic/create_update.py:114
4771+#, python-format
4772+msgid "The %(verbose_name)s was created successfully."
4773+msgstr "%(verbose_name)s ble opprettet."
4774+
4775+#: views/generic/create_update.py:156
4776+#, python-format
4777+msgid "The %(verbose_name)s was updated successfully."
4778+msgstr "%(verbose_name)s ble oppdatert."
4779+
4780+#: views/generic/create_update.py:198
4781+#, python-format
4782+msgid "The %(verbose_name)s was deleted."
4783+msgstr "%(verbose_name)s ble slettet."
4784Index: django/conf/locale/nb/LC_MESSAGES/djangojs.mo
4785===================================================================
4786Cannot display: file marked as a binary type.
4787svn:mime-type = application/octet-stream
4788
4789Property changes on: django/conf/locale/nb/LC_MESSAGES/djangojs.mo
4790___________________________________________________________________
4791Added: svn:mime-type
4792   + application/octet-stream
4793
4794Index: django/conf/locale/nb/LC_MESSAGES/django.mo
4795===================================================================
4796Cannot display: file marked as a binary type.
4797svn:mime-type = application/octet-stream
4798
4799Property changes on: django/conf/locale/nb/LC_MESSAGES/django.mo
4800___________________________________________________________________
4801Added: svn:mime-type
4802   + application/octet-stream
4803
4804Index: django/conf/locale/nb/LC_MESSAGES/djangojs.po
4805===================================================================
4806--- django/conf/locale/nb/LC_MESSAGES/djangojs.po       (.../trunk)     (revision 0)
4807+++ django/conf/locale/nb/LC_MESSAGES/djangojs.po       (.../branches/soc2009/i18n-improvements)        (revision 11464)
4808@@ -0,0 +1,118 @@
4809+# translation of djangojs.po to norwegian
4810+# Copyright (C) 2005 and beyond
4811+# This file is distributed under the same license as the Django package.
4812+#
4813+msgid ""
4814+msgstr ""
4815+"Project-Id-Version: Django\n"
4816+"Report-Msgid-Bugs-To: \n"
4817+"POT-Creation-Date: 2005-12-09 11:51+0100\n"
4818+"PO-Revision-Date: 2008-08-29 16:12+0200\n"
4819+"Last-Translator: Christian Mikalsen and Jon Lønne\n"
4820+"Language-Team: Norsk <no@li.org>\n"
4821+"MIME-Version: 1.0\n"
4822+"Content-Type: text/plain; charset=UTF-8\n"
4823+"Content-Transfer-Encoding: 8bit\n"
4824+
4825+#: contrib/admin/media/js/SelectFilter2.js:33
4826+#, perl-format
4827+msgid "Available %s"
4828+msgstr "Tilgjengelige %s"
4829+
4830+#: contrib/admin/media/js/SelectFilter2.js:41
4831+msgid "Choose all"
4832+msgstr "Velg alle"
4833+
4834+#: contrib/admin/media/js/SelectFilter2.js:46
4835+msgid "Add"
4836+msgstr "Ny"
4837+
4838+#: contrib/admin/media/js/SelectFilter2.js:48
4839+msgid "Remove"
4840+msgstr "Slett"
4841+
4842+#: contrib/admin/media/js/SelectFilter2.js:53
4843+#, perl-format
4844+msgid "Chosen %s"
4845+msgstr "Valgte %s"
4846+
4847+#: contrib/admin/media/js/SelectFilter2.js:54
4848+msgid "Select your choice(s) and click "
4849+msgstr "Velg ditt valg og klikk "
4850+
4851+#: contrib/admin/media/js/SelectFilter2.js:59
4852+msgid "Clear all"
4853+msgstr "Fjern alle"
4854+
4855+#: contrib/admin/media/js/calendar.js:24
4856+#: contrib/admin/media/js/dateparse.js:32
4857+msgid ""
4858+"January February March April May June July August September October November "
4859+"December"
4860+msgstr ""
4861+"Januar Februar Mars April Mai Juni Juli August September Oktober November "
4862+"Desember"
4863+
4864+#: contrib/admin/media/js/calendar.js:25
4865+msgid "S M T W T F S"
4866+msgstr "S M T O T F L"
4867+
4868+#: contrib/admin/media/js/dateparse.js:33
4869+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
4870+msgstr "Søndag Mandag Tirsdag Onsdag Torsdag Fredag Lørdag"
4871+
4872+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
4873+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
4874+msgid "Show"
4875+msgstr "Vis"
4876+
4877+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
4878+msgid "Hide"
4879+msgstr "Skjul"
4880+
4881+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
4882+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
4883+msgid "Now"
4884+msgstr "Nå"
4885+
4886+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
4887+msgid "Clock"
4888+msgstr "Klokke"
4889+
4890+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
4891+msgid "Choose a time"
4892+msgstr "Velg et klokkeslett"
4893+
4894+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
4895+msgid "Midnight"
4896+msgstr "Midnatt"
4897+
4898+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
4899+msgid "6 a.m."
4900+msgstr "06:00"
4901+
4902+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
4903+msgid "Noon"
4904+msgstr "12:00"
4905+
4906+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
4907+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
4908+msgid "Cancel"
4909+msgstr "Avbryt"
4910+
4911+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
4912+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
4913+msgid "Today"
4914+msgstr "I dag"
4915+
4916+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
4917+msgid "Calendar"
4918+msgstr "Kalender"
4919+
4920+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
4921+msgid "Yesterday"
4922+msgstr "I går"
4923+
4924+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
4925+msgid "Tomorrow"
4926+msgstr "I morgen"
4927Index: django/conf/locale/nb/__init__.py
4928===================================================================
4929
4930Property changes on: django/conf/locale/nb
4931___________________________________________________________________
4932Added: svn:mergeinfo
4933
4934Index: django/conf/locale/hi/formats.py
4935===================================================================
4936--- django/conf/locale/hi/formats.py    (.../trunk)     (revision 0)
4937+++ django/conf/locale/hi/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
4938@@ -0,0 +1,18 @@
4939+# -*- encoding: utf-8 -*-
4940+# This file is distributed under the same license as the Django package.
4941+#
4942+
4943+DATE_FORMAT = 'j F Y'
4944+TIME_FORMAT = 'g:i:s A'
4945+# DATETIME_FORMAT =
4946+# YEAR_MONTH_FORMAT =
4947+MONTH_DAY_FORMAT = 'j F'
4948+SHORT_DATE_FORMAT = 'd-m-Y'
4949+# SHORT_DATETIME_FORMAT =
4950+# FIRST_DAY_OF_WEEK =
4951+# DATE_INPUT_FORMATS =
4952+# TIME_INPUT_FORMATS =
4953+# DATETIME_INPUT_FORMATS =
4954+DECIMAL_SEPARATOR = '.'
4955+THOUSAND_SEPARATOR = ','
4956+# NUMBER_GROUPING =
4957Index: django/conf/locale/hi/__init__.py
4958===================================================================
4959Index: django/conf/locale/sr_Latn/formats.py
4960===================================================================
4961--- django/conf/locale/sr_Latn/formats.py       (.../trunk)     (revision 0)
4962+++ django/conf/locale/sr_Latn/formats.py       (.../branches/soc2009/i18n-improvements)        (revision 11464)
4963@@ -0,0 +1,18 @@
4964+# -*- encoding: utf-8 -*-
4965+# This file is distributed under the same license as the Django package.
4966+#
4967+
4968+# DATE_FORMAT =
4969+# TIME_FORMAT =
4970+# DATETIME_FORMAT =
4971+# YEAR_MONTH_FORMAT =
4972+# MONTH_DAY_FORMAT =
4973+# SHORT_DATE_FORMAT =
4974+# SHORT_DATETIME_FORMAT =
4975+# FIRST_DAY_OF_WEEK =
4976+# DATE_INPUT_FORMATS =
4977+# TIME_INPUT_FORMATS =
4978+# DATETIME_INPUT_FORMATS =
4979+# DECIMAL_SEPARATOR =
4980+# THOUSAND_SEPARATOR =
4981+# NUMBER_GROUPING =
4982Index: django/conf/locale/sr_Latn/__init__.py
4983===================================================================
4984Index: django/conf/locale/ta/formats.py
4985===================================================================
4986--- django/conf/locale/ta/formats.py    (.../trunk)     (revision 0)
4987+++ django/conf/locale/ta/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
4988@@ -0,0 +1,18 @@
4989+# -*- encoding: utf-8 -*-
4990+# This file is distributed under the same license as the Django package.
4991+#
4992+
4993+DATE_FORMAT = 'j F, Y'
4994+TIME_FORMAT = 'g:i:s A'
4995+# DATETIME_FORMAT =
4996+# YEAR_MONTH_FORMAT =
4997+MONTH_DAY_FORMAT = 'j F'
4998+SHORT_DATE_FORMAT = 'j M, Y'
4999+# SHORT_DATETIME_FORMAT =
5000+# FIRST_DAY_OF_WEEK =
5001+# DATE_INPUT_FORMATS =
5002+# TIME_INPUT_FORMATS =
5003+# DATETIME_INPUT_FORMATS =
5004+# DECIMAL_SEPARATOR =
5005+# THOUSAND_SEPARATOR =
5006+# NUMBER_GROUPING =
5007Index: django/conf/locale/ta/__init__.py
5008===================================================================
5009Index: django/conf/locale/pt_BR/formats.py
5010===================================================================
5011--- django/conf/locale/pt_BR/formats.py (.../trunk)     (revision 0)
5012+++ django/conf/locale/pt_BR/formats.py (.../branches/soc2009/i18n-improvements)        (revision 11464)
5013@@ -0,0 +1,35 @@
5014+# -*- encoding: utf-8 -*-
5015+# This file is distributed under the same license as the Django package.
5016+#
5017+
5018+DATE_FORMAT = 'j \\de N \\de Y'
5019+TIME_FORMAT = 'H:i'
5020+DATETIME_FORMAT = 'j \\de N \\de Y à\\s H:i'
5021+YEAR_MONTH_FORMAT = 'F \\de Y'
5022+MONTH_DAY_FORMAT = 'j \\de F'
5023+SHORT_DATE_FORMAT = 'd/m/Y'
5024+SHORT_DATETIME_FORMAT = 'd/m/Y H:i'
5025+FIRST_DAY_OF_WEEK = 0  # Sunday
5026+DATE_INPUT_FORMATS = (
5027+    '%Y-%m-%d', '%d/%m/%Y', '%d/%m/%y', # '2006-10-25', '25/10/2006', '25/10/06'
5028+    '%d de %b de %Y', '%d de %b, %Y',   # '25 de Out de 2006', '25 Out, 2006'
5029+    '%d de %B de %Y', '%d de %B, %Y',   # '25 de Outubro de 2006', '25 de Outubro, 2006'
5030+)
5031+TIME_INPUT_FORMATS = (
5032+    '%H:%M:%S',     # '14:30:59'
5033+    '%H:%M',        # '14:30'
5034+)
5035+DATETIME_INPUT_FORMATS = (
5036+    '%Y-%m-%d %H:%M:%S',     # '2006-10-25 14:30:59'
5037+    '%Y-%m-%d %H:%M',        # '2006-10-25 14:30'
5038+    '%Y-%m-%d',              # '2006-10-25'
5039+    '%d/%m/%Y %H:%M:%S',     # '25/10/2006 14:30:59'
5040+    '%d/%m/%Y %H:%M',        # '25/10/2006 14:30'
5041+    '%d/%m/%Y',              # '25/10/2006'
5042+    '%d/%m/%y %H:%M:%S',     # '25/10/06 14:30:59'
5043+    '%d/%m/%y %H:%M',        # '25/10/06 14:30'
5044+    '%d/%m/%y',              # '25/10/06'
5045+)
5046+DECIMAL_SEPARATOR = ','
5047+THOUSAND_SEPARATOR = '.'
5048+NUMBER_GROUPING = 3
5049Index: django/conf/locale/pt_BR/__init__.py
5050===================================================================
5051Index: django/conf/locale/fr/formats.py
5052===================================================================
5053--- django/conf/locale/fr/formats.py    (.../trunk)     (revision 0)
5054+++ django/conf/locale/fr/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5055@@ -0,0 +1,18 @@
5056+# -*- encoding: utf-8 -*-
5057+# This file is distributed under the same license as the Django package.
5058+#
5059+
5060+DATE_FORMAT = 'j F Y'
5061+TIME_FORMAT = 'H:i:s'
5062+DATETIME_FORMAT = 'j F Y H:i:s'
5063+YEAR_MONTH_FORMAT = 'F Y'
5064+MONTH_DAY_FORMAT = 'j F'
5065+SHORT_DATE_FORMAT = 'j M Y'
5066+SHORT_DATETIME_FORMAT = 'j M Y H:i:s'
5067+# FIRST_DAY_OF_WEEK =
5068+# DATE_INPUT_FORMATS =
5069+# TIME_INPUT_FORMATS =
5070+# DATETIME_INPUT_FORMATS =
5071+DECIMAL_SEPARATOR = ','
5072+THOUSAND_SEPARATOR = ' '
5073+# NUMBER_GROUPING =
5074Index: django/conf/locale/fr/__init__.py
5075===================================================================
5076Index: django/conf/locale/te/formats.py
5077===================================================================
5078--- django/conf/locale/te/formats.py    (.../trunk)     (revision 0)
5079+++ django/conf/locale/te/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5080@@ -0,0 +1,18 @@
5081+# -*- encoding: utf-8 -*-
5082+# This file is distributed under the same license as the Django package.
5083+#
5084+
5085+DATE_FORMAT = 'j F Y'
5086+TIME_FORMAT = 'g:i:s A'
5087+# DATETIME_FORMAT =
5088+# YEAR_MONTH_FORMAT =
5089+MONTH_DAY_FORMAT = 'j F'
5090+SHORT_DATE_FORMAT = 'j M Y'
5091+# SHORT_DATETIME_FORMAT =
5092+# FIRST_DAY_OF_WEEK =
5093+# DATE_INPUT_FORMATS =
5094+# TIME_INPUT_FORMATS =
5095+# DATETIME_INPUT_FORMATS =
5096+# DECIMAL_SEPARATOR =
5097+# THOUSAND_SEPARATOR =
5098+# NUMBER_GROUPING =
5099Index: django/conf/locale/te/__init__.py
5100===================================================================
5101Index: django/conf/locale/hr/formats.py
5102===================================================================
5103--- django/conf/locale/hr/formats.py    (.../trunk)     (revision 0)
5104+++ django/conf/locale/hr/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5105@@ -0,0 +1,18 @@
5106+# -*- encoding: utf-8 -*-
5107+# This file is distributed under the same license as the Django package.
5108+#
5109+
5110+DATE_FORMAT = 'j. F Y.'
5111+TIME_FORMAT = 'H:i:s'
5112+# DATETIME_FORMAT =
5113+YEAR_MONTH_FORMAT = 'F Y.'
5114+MONTH_DAY_FORMAT = 'j. F'
5115+SHORT_DATE_FORMAT = 'j.n.Y.'
5116+# SHORT_DATETIME_FORMAT =
5117+# FIRST_DAY_OF_WEEK =
5118+# DATE_INPUT_FORMATS =
5119+# TIME_INPUT_FORMATS =
5120+# DATETIME_INPUT_FORMATS =
5121+DECIMAL_SEPARATOR = ','
5122+THOUSAND_SEPARATOR = '.'
5123+# NUMBER_GROUPING =
5124Index: django/conf/locale/hr/__init__.py
5125===================================================================
5126Index: django/conf/locale/nl/formats.py
5127===================================================================
5128--- django/conf/locale/nl/formats.py    (.../trunk)     (revision 0)
5129+++ django/conf/locale/nl/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5130@@ -0,0 +1,48 @@
5131+# -*- encoding: utf-8 -*-
5132+# This file is distributed under the same license as the Django package.
5133+#
5134+
5135+DATE_FORMAT = 'j F Y'                   # '20 januari 2009'
5136+TIME_FORMAT = 'H:i'                     # '15:23'
5137+DATETIME_FORMAT = 'j F Y H:i'           # '20 januari 2009 15:23'
5138+YEAR_MONTH_FORMAT = 'F Y'               # 'januari 2009'
5139+MONTH_DAY_FORMAT = 'j F'                # '20 januari'
5140+SHORT_DATE_FORMAT = 'j-n-Y'             # '20-1-2009'
5141+SHORT_DATETIME_FORMAT = 'j-n-Y H:i'     # '20-1-2009 15:23'
5142+FIRST_DAY_OF_WEEK = 1                   # Monday (in Dutch 'maandag')
5143+DATE_INPUT_FORMATS = (
5144+    '%d-%m-%Y', '%d-%m-%y', '%Y-%m-%d', # '20-01-2009', '20-01-09', '2009-01-20'
5145+    '%d %b %Y', '%d %b %y',             # '20 jan 2009', '20 jan 09'
5146+    '%d %B %Y', '%d %B %y',             # '20 januari 2009', '20 januari 09'
5147+)
5148+TIME_INPUT_FORMATS = (
5149+    '%H:%M:%S',                         # '15:23:35'
5150+    '%H.%M:%S',                         # '15.23:35'
5151+    '%H.%M',                            # '15.23'
5152+    '%H:%M',                            # '15:23'
5153+)
5154+DATETIME_INPUT_FORMATS = (
5155+    # With time in %H:%M:%S :
5156+    '%d-%m-%Y %H:%M:%S', '%d-%m-%y %H:%M:%S', '%Y-%m-%d %H:%M:%S',  # '20-01-2009 15:23:35', '20-01-09 15:23:35', '2009-01-20 15:23:35'
5157+    '%d %b %Y %H:%M:%S', '%d %b %y %H:%M:%S',   # '20 jan 2009 15:23:35', '20 jan 09 15:23:35'
5158+    '%d %B %Y %H:%M:%S', '%d %B %y %H:%M:%S',   # '20 januari 2009 15:23:35', '20 januari 2009 15:23:35'
5159+    # With time in %H.%M:%S :
5160+    '%d-%m-%Y %H.%M:%S', '%d-%m-%y %H.%M:%S',   # '20-01-2009 15.23:35', '20-01-09 15.23:35'
5161+    '%d %b %Y %H.%M:%S', '%d %b %y %H.%M:%S',   # '20 jan 2009 15.23:35', '20 jan 09 15.23:35'
5162+    '%d %B %Y %H.%M:%S', '%d %B %y %H.%M:%S',   # '20 januari 2009 15.23:35', '20 januari 2009 15.23:35'
5163+    # With time in %H:%M :
5164+    '%d-%m-%Y %H:%M', '%d-%m-%y %H:%M', '%Y-%m-%d %H:%M',   # '20-01-2009 15:23', '20-01-09 15:23', '2009-01-20 15:23'
5165+    '%d %b %Y %H:%M', '%d %b %y %H:%M',         # '20 jan 2009 15:23', '20 jan 09 15:23'
5166+    '%d %B %Y %H:%M', '%d %B %y %H:%M',         # '20 januari 2009 15:23', '20 januari 2009 15:23'
5167+    # With time in %H.%M :
5168+    '%d-%m-%Y %H.%M', '%d-%m-%y %H.%M',         # '20-01-2009 15.23', '20-01-09 15.23'
5169+    '%d %b %Y %H.%M', '%d %b %y %H.%M',         # '20 jan 2009 15.23', '20 jan 09 15.23'
5170+    '%d %B %Y %H.%M', '%d %B %y %H.%M',         # '20 januari 2009 15.23', '20 januari 2009 15.23'
5171+    # Without time :
5172+    '%d-%m-%Y', '%d-%m-%y', '%Y-%m-%d',         # '20-01-2009', '20-01-09', '2009-01-20'
5173+    '%d %b %Y', '%d %b %y',                     # '20 jan 2009', '20 jan 09'
5174+    '%d %B %Y', '%d %B %y',                     # '20 januari 2009', '20 januari 2009'
5175+)
5176+DECIMAL_SEPARATOR = ','
5177+THOUSAND_SEPARATOR = '.'
5178+NUMBER_GROUPING = 3
5179Index: django/conf/locale/nl/__init__.py
5180===================================================================
5181Index: django/conf/locale/pl/formats.py
5182===================================================================
5183--- django/conf/locale/pl/formats.py    (.../trunk)     (revision 0)
5184+++ django/conf/locale/pl/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5185@@ -0,0 +1,18 @@
5186+# -*- encoding: utf-8 -*-
5187+# This file is distributed under the same license as the Django package.
5188+#
5189+
5190+DATE_FORMAT = 'j F Y'
5191+TIME_FORMAT = 'H:i:s'
5192+# DATETIME_FORMAT =
5193+YEAR_MONTH_FORMAT = 'F Y'
5194+MONTH_DAY_FORMAT = 'j F'
5195+SHORT_DATE_FORMAT = 'd-m-Y'
5196+# SHORT_DATETIME_FORMAT =
5197+# FIRST_DAY_OF_WEEK =
5198+# DATE_INPUT_FORMATS =
5199+# TIME_INPUT_FORMATS =
5200+# DATETIME_INPUT_FORMATS =
5201+DECIMAL_SEPARATOR = ','
5202+THOUSAND_SEPARATOR = ' '
5203+# NUMBER_GROUPING =
5204Index: django/conf/locale/pl/__init__.py
5205===================================================================
5206Index: django/conf/locale/th/formats.py
5207===================================================================
5208--- django/conf/locale/th/formats.py    (.../trunk)     (revision 0)
5209+++ django/conf/locale/th/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5210@@ -0,0 +1,18 @@
5211+# -*- encoding: utf-8 -*-
5212+# This file is distributed under the same license as the Django package.
5213+#
5214+
5215+DATE_FORMAT = 'j F Y'
5216+TIME_FORMAT = 'G:i:s'
5217+DATETIME_FORMAT = 'j F Y, G:i:s'
5218+YEAR_MONTH_FORMAT = 'F Y'
5219+MONTH_DAY_FORMAT = 'j F'
5220+SHORT_DATE_FORMAT = 'j M Y'
5221+SHORT_DATETIME_FORMAT = 'j M Y, G:i:s'
5222+# FIRST_DAY_OF_WEEK =
5223+# DATE_INPUT_FORMATS =
5224+# TIME_INPUT_FORMATS =
5225+# DATETIME_INPUT_FORMATS =
5226+DECIMAL_SEPARATOR = '.'
5227+THOUSAND_SEPARATOR = ','
5228+# NUMBER_GROUPING =
5229Index: django/conf/locale/th/__init__.py
5230===================================================================
5231Index: django/conf/locale/hu/formats.py
5232===================================================================
5233--- django/conf/locale/hu/formats.py    (.../trunk)     (revision 0)
5234+++ django/conf/locale/hu/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5235@@ -0,0 +1,18 @@
5236+# -*- encoding: utf-8 -*-
5237+# This file is distributed under the same license as the Django package.
5238+#
5239+
5240+DATE_FORMAT = 'Y. F j.'
5241+TIME_FORMAT = 'G:i:s'
5242+# DATETIME_FORMAT =
5243+# YEAR_MONTH_FORMAT =
5244+MONTH_DAY_FORMAT = 'F j.'
5245+SHORT_DATE_FORMAT = 'Y.m.d.'
5246+# SHORT_DATETIME_FORMAT =
5247+# FIRST_DAY_OF_WEEK =
5248+# DATE_INPUT_FORMATS =
5249+# TIME_INPUT_FORMATS =
5250+# DATETIME_INPUT_FORMATS =
5251+DECIMAL_SEPARATOR = ','
5252+THOUSAND_SEPARATOR = ' '
5253+# NUMBER_GROUPING =
5254Index: django/conf/locale/hu/__init__.py
5255===================================================================
5256Index: django/conf/locale/lt/formats.py
5257===================================================================
5258--- django/conf/locale/lt/formats.py    (.../trunk)     (revision 0)
5259+++ django/conf/locale/lt/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5260@@ -0,0 +1,18 @@
5261+# -*- encoding: utf-8 -*-
5262+# This file is distributed under the same license as the Django package.
5263+#
5264+
5265+DATE_FORMAT = 'Y \m. F j \d.'
5266+TIME_FORMAT = 'H:i:s'
5267+# DATETIME_FORMAT =
5268+# YEAR_MONTH_FORMAT =
5269+# MONTH_DAY_FORMAT =
5270+SHORT_DATE_FORMAT = 'Y.m.d'
5271+# SHORT_DATETIME_FORMAT =
5272+# FIRST_DAY_OF_WEEK =
5273+# DATE_INPUT_FORMATS =
5274+# TIME_INPUT_FORMATS =
5275+# DATETIME_INPUT_FORMATS =
5276+DECIMAL_SEPARATOR = ','
5277+THOUSAND_SEPARATOR = '.'
5278+# NUMBER_GROUPING =
5279Index: django/conf/locale/lt/__init__.py
5280===================================================================
5281Index: django/conf/locale/ro/formats.py
5282===================================================================
5283--- django/conf/locale/ro/formats.py    (.../trunk)     (revision 0)
5284+++ django/conf/locale/ro/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5285@@ -0,0 +1,18 @@
5286+# -*- encoding: utf-8 -*-
5287+# This file is distributed under the same license as the Django package.
5288+#
5289+
5290+DATE_FORMAT = 'j F Y'
5291+TIME_FORMAT = 'H:i:s'
5292+DATETIME_FORMAT = 'j F Y, H:i:s'
5293+YEAR_MONTH_FORMAT = 'F Y'
5294+MONTH_DAY_FORMAT = 'j F'
5295+SHORT_DATE_FORMAT = 'd.m.Y'
5296+SHORT_DATETIME_FORMAT = 'd.m.Y, H:i:s'
5297+# FIRST_DAY_OF_WEEK =
5298+# DATE_INPUT_FORMATS =
5299+# TIME_INPUT_FORMATS =
5300+# DATETIME_INPUT_FORMATS =
5301+DECIMAL_SEPARATOR = ','
5302+THOUSAND_SEPARATOR = '.'
5303+# NUMBER_GROUPING =
5304Index: django/conf/locale/ro/__init__.py
5305===================================================================
5306Index: django/conf/locale/lv/formats.py
5307===================================================================
5308--- django/conf/locale/lv/formats.py    (.../trunk)     (revision 0)
5309+++ django/conf/locale/lv/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5310@@ -0,0 +1,18 @@
5311+# -*- encoding: utf-8 -*-
5312+# This file is distributed under the same license as the Django package.
5313+#
5314+
5315+DATE_FORMAT = 'Y. \g\a\d\a j. F'
5316+TIME_FORMAT = 'H:i:s'
5317+# DATETIME_FORMAT =
5318+YEAR_MONTH_FORMAT = 'Y. \g. F'
5319+MONTH_DAY_FORMAT = 'j. F'
5320+SHORT_DATE_FORMAT = 'Y. \g\a\d\a j. M'
5321+# SHORT_DATETIME_FORMAT =
5322+# FIRST_DAY_OF_WEEK =
5323+# DATE_INPUT_FORMATS =
5324+# TIME_INPUT_FORMATS =
5325+# DATETIME_INPUT_FORMATS =
5326+DECIMAL_SEPARATOR = ','
5327+THOUSAND_SEPARATOR = ' '
5328+# NUMBER_GROUPING =
5329Index: django/conf/locale/lv/__init__.py
5330===================================================================
5331Index: django/conf/locale/ca/formats.py
5332===================================================================
5333--- django/conf/locale/ca/formats.py    (.../trunk)     (revision 0)
5334+++ django/conf/locale/ca/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5335@@ -0,0 +1,30 @@
5336+# -*- encoding: utf-8 -*-
5337+# This file is distributed under the same license as the Django package.
5338+#
5339+
5340+DATE_FORMAT = 'j \de F \de Y'
5341+TIME_FORMAT = 'G:i:s'
5342+DATETIME_FORMAT = 'j \de F \de Y \\a \le\s G:i'
5343+YEAR_MONTH_FORMAT = 'F \de\l Y'
5344+MONTH_DAY_FORMAT = 'j \de F'
5345+SHORT_DATE_FORMAT = 'd/m/Y'
5346+SHORT_DATETIME_FORMAT = 'd/m/Y G:i'
5347+FIRST_DAY_OF_WEEK = 1 # Monday
5348+DATE_INPUT_FORMATS = (
5349+    # '31/12/2009', '31/12/09'
5350+    '%d/%m/%Y', '%d/%m/%y'
5351+)
5352+TIME_INPUT_FORMATS = (
5353+    # '14:30:59', '14:30'
5354+    '%H:%M:%S', '%H:%M'
5355+)
5356+DATETIME_INPUT_FORMATS = (
5357+    '%d/%m/%Y %H:%M:%S',
5358+    '%d/%m/%Y %H:%M',
5359+    '%d/%m/%y %H:%M:%S',
5360+    '%d/%m/%y %H:%M',
5361+)
5362+DECIMAL_SEPARATOR = ','
5363+THOUSAND_SEPARATOR = '.'
5364+NUMBER_GROUPING = 3
5365+
5366Index: django/conf/locale/ca/__init__.py
5367===================================================================
5368Index: django/conf/locale/pt/formats.py
5369===================================================================
5370--- django/conf/locale/pt/formats.py    (.../trunk)     (revision 0)
5371+++ django/conf/locale/pt/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5372@@ -0,0 +1,18 @@
5373+# -*- encoding: utf-8 -*-
5374+# This file is distributed under the same license as the Django package.
5375+#
5376+
5377+DATE_FORMAT = 'j \de F \de Y'
5378+TIME_FORMAT = 'H:i:s'
5379+# DATETIME_FORMAT =
5380+YEAR_MONTH_FORMAT = 'F \de Y'
5381+MONTH_DAY_FORMAT = 'j \de F'
5382+SHORT_DATE_FORMAT = 'd/m/Y'
5383+# SHORT_DATETIME_FORMAT =
5384+# FIRST_DAY_OF_WEEK =
5385+# DATE_INPUT_FORMATS =
5386+# TIME_INPUT_FORMATS =
5387+# DATETIME_INPUT_FORMATS =
5388+DECIMAL_SEPARATOR = ','
5389+THOUSAND_SEPARATOR = '.'
5390+# NUMBER_GROUPING =
5391Index: django/conf/locale/pt/__init__.py
5392===================================================================
5393Index: django/conf/locale/tr/formats.py
5394===================================================================
5395--- django/conf/locale/tr/formats.py    (.../trunk)     (revision 0)
5396+++ django/conf/locale/tr/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5397@@ -0,0 +1,18 @@
5398+# -*- encoding: utf-8 -*-
5399+# This file is distributed under the same license as the Django package.
5400+#
5401+
5402+DATE_FORMAT = 'd F Y'
5403+TIME_FORMAT = 'H:i:s'
5404+# DATETIME_FORMAT =
5405+YEAR_MONTH_FORMAT = 'F Y'
5406+MONTH_DAY_FORMAT = 'd F'
5407+SHORT_DATE_FORMAT = 'd M Y'
5408+# SHORT_DATETIME_FORMAT =
5409+# FIRST_DAY_OF_WEEK =
5410+# DATE_INPUT_FORMATS =
5411+# TIME_INPUT_FORMATS =
5412+# DATETIME_INPUT_FORMATS =
5413+DECIMAL_SEPARATOR = ','
5414+THOUSAND_SEPARATOR = '.'
5415+# NUMBER_GROUPING =
5416Index: django/conf/locale/tr/__init__.py
5417===================================================================
5418Index: django/conf/locale/ru/formats.py
5419===================================================================
5420--- django/conf/locale/ru/formats.py    (.../trunk)     (revision 0)
5421+++ django/conf/locale/ru/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5422@@ -0,0 +1,18 @@
5423+# -*- encoding: utf-8 -*-
5424+# This file is distributed under the same license as the Django package.
5425+#
5426+
5427+DATE_FORMAT = 'j F Y г.'
5428+TIME_FORMAT = 'G:i:s'
5429+# DATETIME_FORMAT =
5430+YEAR_MONTH_FORMAT = 'F Y'
5431+MONTH_DAY_FORMAT = 'j F'
5432+SHORT_DATE_FORMAT = 'd.m.Y'
5433+# SHORT_DATETIME_FORMAT =
5434+# FIRST_DAY_OF_WEEK =
5435+# DATE_INPUT_FORMATS =
5436+# TIME_INPUT_FORMATS =
5437+# DATETIME_INPUT_FORMATS =
5438+DECIMAL_SEPARATOR = ','
5439+THOUSAND_SEPARATOR = ' '
5440+# NUMBER_GROUPING =
5441Index: django/conf/locale/ru/__init__.py
5442===================================================================
5443Index: django/conf/locale/ga/formats.py
5444===================================================================
5445--- django/conf/locale/ga/formats.py    (.../trunk)     (revision 0)
5446+++ django/conf/locale/ga/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5447@@ -0,0 +1,18 @@
5448+# -*- encoding: utf-8 -*-
5449+# This file is distributed under the same license as the Django package.
5450+#
5451+
5452+DATE_FORMAT = 'j F Y'
5453+TIME_FORMAT = 'H:i:s'
5454+# DATETIME_FORMAT =
5455+# YEAR_MONTH_FORMAT =
5456+MONTH_DAY_FORMAT = 'j F'
5457+SHORT_DATE_FORMAT = 'j M Y'
5458+# SHORT_DATETIME_FORMAT =
5459+# FIRST_DAY_OF_WEEK =
5460+# DATE_INPUT_FORMATS =
5461+# TIME_INPUT_FORMATS =
5462+# DATETIME_INPUT_FORMATS =
5463+DECIMAL_SEPARATOR = '.'
5464+THOUSAND_SEPARATOR = ','
5465+# NUMBER_GROUPING =
5466Index: django/conf/locale/ga/__init__.py
5467===================================================================
5468Index: django/conf/locale/ka/formats.py
5469===================================================================
5470--- django/conf/locale/ka/formats.py    (.../trunk)     (revision 0)
5471+++ django/conf/locale/ka/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5472@@ -0,0 +1,42 @@
5473+# -*- encoding: utf-8 -*-
5474+# This file is distributed under the same license as the Django package.
5475+#
5476+
5477+DATE_FORMAT = 'l, j F, Y'
5478+TIME_FORMAT = 'h:i:s a'
5479+DATETIME_FORMAT = 'j F, Y h:i:s a'
5480+YEAR_MONTH_FORMAT = 'F, Y'
5481+MONTH_DAY_FORMAT = 'j F'
5482+SHORT_DATE_FORMAT = 'j.M.Y'
5483+SHORT_DATETIME_FORMAT = 'j.M.Y H:i:s'
5484+FIRST_DAY_OF_WEEK = 1 # (Monday)
5485+DATE_INPUT_FORMATS = (
5486+    '%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y',     # '2006-10-25', '10/25/2006', '10/25/06'
5487+    '%d %b %Y', '%d %b, %Y', '%d %b. %Y',   # '25 Oct 2006', '25 Oct, 2006', '25 Oct. 2006'
5488+    '%d %B %Y', '%d %B, %Y',                # '25 October 2006', '25 October, 2006'
5489+    '%d.%m.%Y', '%d.%m.%y',                 # '25.10.2006', '25.10.06'
5490+)
5491+TIME_INPUT_FORMATS = (
5492+    '%H:%M:%S',     # '14:30:59'
5493+    '%H:%M',        # '14:30'
5494+)
5495+DATETIME_INPUT_FORMATS = (
5496+    '%Y-%m-%d %H:%M:%S',     # '2006-10-25 14:30:59'
5497+    '%Y-%m-%d %H:%M',        # '2006-10-25 14:30'
5498+    '%Y-%m-%d',              # '2006-10-25'
5499+    '%d.%m.%Y %H:%M:%S',     # '25.10.2006 14:30:59'
5500+    '%d.%m.%Y %H:%M',        # '25.10.2006 14:30'
5501+    '%d.%m.%Y',              # '25.10.2006'
5502+    '%d.%m.%y %H:%M:%S',     # '25.10.06 14:30:59'
5503+    '%d.%m.%y %H:%M',        # '25.10.06 14:30'
5504+    '%d.%m.%y',              # '25.10.06'
5505+    '%m/%d/%Y %H:%M:%S',     # '10/25/2006 14:30:59'
5506+    '%m/%d/%Y %H:%M',        # '10/25/2006 14:30'
5507+    '%m/%d/%Y',              # '10/25/2006'
5508+    '%m/%d/%y %H:%M:%S',     # '10/25/06 14:30:59'
5509+    '%m/%d/%y %H:%M',        # '10/25/06 14:30'
5510+    '%m/%d/%y',              # '10/25/06'
5511+)
5512+DECIMAL_SEPARATOR = '.'
5513+THOUSAND_SEPARATOR = " "
5514+NUMBER_GROUPING = 3
5515Index: django/conf/locale/ka/__init__.py
5516===================================================================
5517Index: django/conf/locale/zh_TW/formats.py
5518===================================================================
5519--- django/conf/locale/zh_TW/formats.py (.../trunk)     (revision 0)
5520+++ django/conf/locale/zh_TW/formats.py (.../branches/soc2009/i18n-improvements)        (revision 11464)
5521@@ -0,0 +1,18 @@
5522+# -*- encoding: utf-8 -*-
5523+# This file is distributed under the same license as the Django package.
5524+#
5525+
5526+# DATE_FORMAT =
5527+# TIME_FORMAT =
5528+# DATETIME_FORMAT =
5529+# YEAR_MONTH_FORMAT =
5530+# MONTH_DAY_FORMAT =
5531+# SHORT_DATE_FORMAT =
5532+# SHORT_DATETIME_FORMAT =
5533+# FIRST_DAY_OF_WEEK =
5534+# DATE_INPUT_FORMATS =
5535+# TIME_INPUT_FORMATS =
5536+# DATETIME_INPUT_FORMATS =
5537+# DECIMAL_SEPARATOR =
5538+# THOUSAND_SEPARATOR =
5539+# NUMBER_GROUPING =
5540Index: django/conf/locale/zh_TW/__init__.py
5541===================================================================
5542Index: django/conf/locale/el/formats.py
5543===================================================================
5544--- django/conf/locale/el/formats.py    (.../trunk)     (revision 0)
5545+++ django/conf/locale/el/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5546@@ -0,0 +1,18 @@
5547+# -*- encoding: utf-8 -*-
5548+# This file is distributed under the same license as the Django package.
5549+#
5550+
5551+DATE_FORMAT = 'd F Y'
5552+TIME_FORMAT = 'g:i:s A'
5553+# DATETIME_FORMAT =
5554+YEAR_MONTH_FORMAT = 'F Y'
5555+MONTH_DAY_FORMAT = 'j F'
5556+SHORT_DATE_FORMAT = 'd M Y'
5557+# SHORT_DATETIME_FORMAT =
5558+# FIRST_DAY_OF_WEEK =
5559+# DATE_INPUT_FORMATS =
5560+# TIME_INPUT_FORMATS =
5561+# DATETIME_INPUT_FORMATS =
5562+DECIMAL_SEPARATOR = ','
5563+THOUSAND_SEPARATOR = '.'
5564+# NUMBER_GROUPING =
5565Index: django/conf/locale/el/__init__.py
5566===================================================================
5567Index: django/conf/locale/zh_CN/formats.py
5568===================================================================
5569--- django/conf/locale/zh_CN/formats.py (.../trunk)     (revision 0)
5570+++ django/conf/locale/zh_CN/formats.py (.../branches/soc2009/i18n-improvements)        (revision 11464)
5571@@ -0,0 +1,18 @@
5572+# -*- encoding: utf-8 -*-
5573+# This file is distributed under the same license as the Django package.
5574+#
5575+
5576+# DATE_FORMAT =
5577+# TIME_FORMAT =
5578+# DATETIME_FORMAT =
5579+# YEAR_MONTH_FORMAT =
5580+# MONTH_DAY_FORMAT =
5581+# SHORT_DATE_FORMAT =
5582+# SHORT_DATETIME_FORMAT =
5583+# FIRST_DAY_OF_WEEK =
5584+# DATE_INPUT_FORMATS =
5585+# TIME_INPUT_FORMATS =
5586+# DATETIME_INPUT_FORMATS =
5587+# DECIMAL_SEPARATOR =
5588+# THOUSAND_SEPARATOR =
5589+# NUMBER_GROUPING =
5590Index: django/conf/locale/zh_CN/__init__.py
5591===================================================================
5592Index: django/conf/locale/gl/formats.py
5593===================================================================
5594--- django/conf/locale/gl/formats.py    (.../trunk)     (revision 0)
5595+++ django/conf/locale/gl/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5596@@ -0,0 +1,18 @@
5597+# -*- encoding: utf-8 -*-
5598+# This file is distributed under the same license as the Django package.
5599+#
5600+
5601+DATE_FORMAT = 'd F Y'
5602+TIME_FORMAT = 'H:i:s'
5603+# DATETIME_FORMAT =
5604+YEAR_MONTH_FORMAT = 'F Y'
5605+MONTH_DAY_FORMAT = 'j F'
5606+SHORT_DATE_FORMAT = 'j M, Y'
5607+# SHORT_DATETIME_FORMAT =
5608+# FIRST_DAY_OF_WEEK =
5609+# DATE_INPUT_FORMATS =
5610+# TIME_INPUT_FORMATS =
5611+# DATETIME_INPUT_FORMATS =
5612+DECIMAL_SEPARATOR = ','
5613+THOUSAND_SEPARATOR = '.'
5614+# NUMBER_GROUPING =
5615Index: django/conf/locale/gl/__init__.py
5616===================================================================
5617Index: django/conf/locale/ar/formats.py
5618===================================================================
5619--- django/conf/locale/ar/formats.py    (.../trunk)     (revision 0)
5620+++ django/conf/locale/ar/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5621@@ -0,0 +1,18 @@
5622+# -*- encoding: utf-8 -*-
5623+# This file is distributed under the same license as the Django package.
5624+#
5625+
5626+DATE_FORMAT = 'j F، Y'
5627+TIME_FORMAT = 'g:i:s A'
5628+# DATETIME_FORMAT =
5629+YEAR_MONTH_FORMAT = 'F Y'
5630+MONTH_DAY_FORMAT = 'j F'
5631+SHORT_DATE_FORMAT = 'd‏/m‏/Y'
5632+# SHORT_DATETIME_FORMAT =
5633+# FIRST_DAY_OF_WEEK =
5634+# DATE_INPUT_FORMATS =
5635+# TIME_INPUT_FORMATS =
5636+# DATETIME_INPUT_FORMATS =
5637+DECIMAL_SEPARATOR = ','
5638+THOUSAND_SEPARATOR = '.'
5639+# NUMBER_GROUPING =
5640Index: django/conf/locale/ar/__init__.py
5641===================================================================
5642Index: django/conf/locale/en/formats.py
5643===================================================================
5644--- django/conf/locale/en/formats.py    (.../trunk)     (revision 0)
5645+++ django/conf/locale/en/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5646@@ -0,0 +1,38 @@
5647+# -*- encoding: utf-8 -*-
5648+# This file is distributed under the same license as the Django package.
5649+#
5650+
5651+DATE_FORMAT = 'N j, Y'
5652+TIME_FORMAT = 'P'
5653+DATETIME_FORMAT = 'N j, Y, P'
5654+YEAR_MONTH_FORMAT = 'F Y'
5655+MONTH_DAY_FORMAT = 'F j'
5656+SHORT_DATE_FORMAT = 'm/d/Y'
5657+SHORT_DATETIME_FORMAT = 'm/d/Y P'
5658+FIRST_DAY_OF_WEEK = 0 # Sunday
5659+DATE_INPUT_FORMATS = (
5660+    '%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', # '2006-10-25', '10/25/2006', '10/25/06'
5661+    '%b %d %Y', '%b %d, %Y',            # 'Oct 25 2006', 'Oct 25, 2006'
5662+    '%d %b %Y', '%d %b, %Y',            # '25 Oct 2006', '25 Oct, 2006'
5663+    '%B %d %Y', '%B %d, %Y',            # 'October 25 2006', 'October 25, 2006'
5664+    '%d %B %Y', '%d %B, %Y',            # '25 October 2006', '25 October, 2006'
5665+)
5666+TIME_INPUT_FORMATS = (
5667+    '%H:%M:%S',     # '14:30:59'
5668+    '%H:%M',        # '14:30'
5669+)
5670+DATETIME_INPUT_FORMATS = (
5671+    '%Y-%m-%d %H:%M:%S',     # '2006-10-25 14:30:59'
5672+    '%Y-%m-%d %H:%M',        # '2006-10-25 14:30'
5673+    '%Y-%m-%d',              # '2006-10-25'
5674+    '%m/%d/%Y %H:%M:%S',     # '10/25/2006 14:30:59'
5675+    '%m/%d/%Y %H:%M',        # '10/25/2006 14:30'
5676+    '%m/%d/%Y',              # '10/25/2006'
5677+    '%m/%d/%y %H:%M:%S',     # '10/25/06 14:30:59'
5678+    '%m/%d/%y %H:%M',        # '10/25/06 14:30'
5679+    '%m/%d/%y',              # '10/25/06'
5680+)
5681+DECIMAL_SEPARATOR = '.'
5682+THOUSAND_SEPARATOR = ','
5683+NUMBER_GROUPING = 3
5684+
5685Index: django/conf/locale/en/__init__.py
5686===================================================================
5687Index: django/conf/locale/cs/formats.py
5688===================================================================
5689--- django/conf/locale/cs/formats.py    (.../trunk)     (revision 0)
5690+++ django/conf/locale/cs/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5691@@ -0,0 +1,18 @@
5692+# -*- encoding: utf-8 -*-
5693+# This file is distributed under the same license as the Django package.
5694+#
5695+
5696+DATE_FORMAT = 'j. F Y'
5697+TIME_FORMAT = 'G:i:s'
5698+# DATETIME_FORMAT =
5699+# YEAR_MONTH_FORMAT =
5700+MONTH_DAY_FORMAT = 'j. F'
5701+SHORT_DATE_FORMAT = 'j.n.Y'
5702+# SHORT_DATETIME_FORMAT =
5703+# FIRST_DAY_OF_WEEK =
5704+# DATE_INPUT_FORMATS =
5705+# TIME_INPUT_FORMATS =
5706+# DATETIME_INPUT_FORMATS =
5707+DECIMAL_SEPARATOR = ','
5708+THOUSAND_SEPARATOR = ' '
5709+# NUMBER_GROUPING =
5710Index: django/conf/locale/cs/__init__.py
5711===================================================================
5712Index: django/conf/locale/km/formats.py
5713===================================================================
5714--- django/conf/locale/km/formats.py    (.../trunk)     (revision 0)
5715+++ django/conf/locale/km/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5716@@ -0,0 +1,18 @@
5717+# -*- encoding: utf-8 -*-
5718+# This file is distributed under the same license as the Django package.
5719+#
5720+
5721+DATE_FORMAT = 'j ខែ F ឆ្នាំ Y'
5722+TIME_FORMAT = 'G:i:s'
5723+DATETIME_FORMAT = 'j ខែ F ឆ្នាំ Y, G:i:s'
5724+# YEAR_MONTH_FORMAT =
5725+MONTH_DAY_FORMAT = 'j F'
5726+SHORT_DATE_FORMAT = 'j M Y'
5727+SHORT_DATETIME_FORMAT = 'j M Y, G:i:s'
5728+# FIRST_DAY_OF_WEEK =
5729+# DATE_INPUT_FORMATS =
5730+# TIME_INPUT_FORMATS =
5731+# DATETIME_INPUT_FORMATS =
5732+DECIMAL_SEPARATOR = ','
5733+THOUSAND_SEPARATOR = '.'
5734+# NUMBER_GROUPING =
5735Index: django/conf/locale/km/__init__.py
5736===================================================================
5737Index: django/conf/locale/es/formats.py
5738===================================================================
5739--- django/conf/locale/es/formats.py    (.../trunk)     (revision 0)
5740+++ django/conf/locale/es/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5741@@ -0,0 +1,30 @@
5742+# -*- encoding: utf-8 -*-
5743+# This file is distributed under the same license as the Django package.
5744+#
5745+
5746+DATE_FORMAT = 'j \de F \de Y'
5747+TIME_FORMAT = 'H:i:s'
5748+DATETIME_FORMAT = 'j \de F \de Y \a \l\a\s H:i'
5749+YEAR_MONTH_FORMAT = 'F \de Y'
5750+MONTH_DAY_FORMAT = 'j \de F'
5751+SHORT_DATE_FORMAT = 'd/m/Y'
5752+SHORT_DATETIME_FORMAT = 'd/m/Y H:i'
5753+FIRST_DAY_OF_WEEK = 1 # Monday
5754+DATE_INPUT_FORMATS = (
5755+    # '31/12/2009', '31/12/09'
5756+    '%d/%m/%Y', '%d/%m/%y'
5757+)
5758+TIME_INPUT_FORMATS = (
5759+    # '14:30:59', '14:30'
5760+    '%H:%M:%S', '%H:%M'
5761+)
5762+DATETIME_INPUT_FORMATS = (
5763+    '%d/%m/%Y %H:%M:%S',
5764+    '%d/%m/%Y %H:%M',
5765+    '%d/%m/%y %H:%M:%S',
5766+    '%d/%m/%y %H:%M',
5767+)
5768+DECIMAL_SEPARATOR = ','
5769+THOUSAND_SEPARATOR = '.'
5770+NUMBER_GROUPING = 3
5771+
5772Index: django/conf/locale/es/__init__.py
5773===================================================================
5774Index: django/conf/locale/mk/formats.py
5775===================================================================
5776--- django/conf/locale/mk/formats.py    (.../trunk)     (revision 0)
5777+++ django/conf/locale/mk/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5778@@ -0,0 +1,18 @@
5779+# -*- encoding: utf-8 -*-
5780+# This file is distributed under the same license as the Django package.
5781+#
5782+
5783+DATE_FORMAT = 'd F Y'
5784+TIME_FORMAT = 'H:i:s'
5785+# DATETIME_FORMAT =
5786+# YEAR_MONTH_FORMAT =
5787+# MONTH_DAY_FORMAT =
5788+SHORT_DATE_FORMAT = 'd.n.Y'
5789+# SHORT_DATETIME_FORMAT =
5790+# FIRST_DAY_OF_WEEK =
5791+# DATE_INPUT_FORMATS =
5792+# TIME_INPUT_FORMATS =
5793+# DATETIME_INPUT_FORMATS =
5794+DECIMAL_SEPARATOR = ','
5795+THOUSAND_SEPARATOR = '.'
5796+# NUMBER_GROUPING =
5797Index: django/conf/locale/mk/__init__.py
5798===================================================================
5799Index: django/conf/locale/kn/formats.py
5800===================================================================
5801--- django/conf/locale/kn/formats.py    (.../trunk)     (revision 0)
5802+++ django/conf/locale/kn/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5803@@ -0,0 +1,18 @@
5804+# -*- encoding: utf-8 -*-
5805+# This file is distributed under the same license as the Django package.
5806+#
5807+
5808+DATE_FORMAT = 'j F Y'
5809+TIME_FORMAT = 'h:i:s A'
5810+# DATETIME_FORMAT =
5811+# YEAR_MONTH_FORMAT =
5812+MONTH_DAY_FORMAT = 'j F'
5813+SHORT_DATE_FORMAT = 'j M Y'
5814+# SHORT_DATETIME_FORMAT =
5815+# FIRST_DAY_OF_WEEK =
5816+# DATE_INPUT_FORMATS =
5817+# TIME_INPUT_FORMATS =
5818+# DATETIME_INPUT_FORMATS =
5819+# DECIMAL_SEPARATOR =
5820+# THOUSAND_SEPARATOR =
5821+# NUMBER_GROUPING =
5822Index: django/conf/locale/kn/__init__.py
5823===================================================================
5824Index: django/conf/locale/et/formats.py
5825===================================================================
5826--- django/conf/locale/et/formats.py    (.../trunk)     (revision 0)
5827+++ django/conf/locale/et/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5828@@ -0,0 +1,18 @@
5829+# -*- encoding: utf-8 -*-
5830+# This file is distributed under the same license as the Django package.
5831+#
5832+
5833+DATE_FORMAT = 'j F Y'
5834+TIME_FORMAT = 'G:i:s'
5835+# DATETIME_FORMAT =
5836+# YEAR_MONTH_FORMAT =
5837+MONTH_DAY_FORMAT = 'j F'
5838+SHORT_DATE_FORMAT = 'd.m.Y'
5839+# SHORT_DATETIME_FORMAT =
5840+# FIRST_DAY_OF_WEEK =
5841+# DATE_INPUT_FORMATS =
5842+# TIME_INPUT_FORMATS =
5843+# DATETIME_INPUT_FORMATS =
5844+DECIMAL_SEPARATOR = ','
5845+THOUSAND_SEPARATOR = ' '
5846+# NUMBER_GROUPING =
5847Index: django/conf/locale/et/__init__.py
5848===================================================================
5849Index: django/conf/locale/ko/formats.py
5850===================================================================
5851--- django/conf/locale/ko/formats.py    (.../trunk)     (revision 0)
5852+++ django/conf/locale/ko/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5853@@ -0,0 +1,44 @@
5854+# -*- encoding: utf-8 -*-
5855+# This file is distributed under the same license as the Django package.
5856+#
5857+
5858+DATE_FORMAT = 'Y년 n월 j일'
5859+TIME_FORMAT = 'A g:i:s'
5860+DATETIME_FORMAT = 'Y년 n월 j일 g:i:s A'
5861+YEAR_MONTH_FORMAT = 'Y년 F월'
5862+MONTH_DAY_FORMAT = 'F월 j일'
5863+SHORT_DATE_FORMAT = 'Y-n-j.'
5864+SHORT_DATETIME_FORMAT = 'Y-n-j H:i'
5865+# FIRST_DAY_OF_WEEK =
5866+DATE_INPUT_FORMATS = (
5867+    '%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', # '2006-10-25', '10/25/2006', '10/25/06'
5868+    '%b %d %Y', '%b %d, %Y',            # 'Oct 25 2006', 'Oct 25, 2006'
5869+    '%d %b %Y', '%d %b, %Y',            # '25 Oct 2006', '25 Oct, 2006'
5870+    '%B %d %Y', '%B %d, %Y',            # 'October 25 2006', 'October 25, 2006'
5871+    '%d %B %Y', '%d %B, %Y',            # '25 October 2006', '25 October, 2006'
5872+    '%Y년 %m월 %d일',                   # '2006년 10월 25일', with localized suffix.
5873+)
5874+TIME_INPUT_FORMATS = (
5875+    '%H:%M:%S',     # '14:30:59'
5876+    '%H:%M',        # '14:30'
5877+    '%H시 %M분 %S초',   # '14시 30분 59초'
5878+    '%H시 %M분',        # '14시 30분'
5879+)
5880+DATETIME_INPUT_FORMATS = (
5881+    '%Y-%m-%d %H:%M:%S',     # '2006-10-25 14:30:59'
5882+    '%Y-%m-%d %H:%M',        # '2006-10-25 14:30'
5883+    '%Y-%m-%d',              # '2006-10-25'
5884+    '%m/%d/%Y %H:%M:%S',     # '10/25/2006 14:30:59'
5885+    '%m/%d/%Y %H:%M',        # '10/25/2006 14:30'
5886+    '%m/%d/%Y',              # '10/25/2006'
5887+    '%m/%d/%y %H:%M:%S',     # '10/25/06 14:30:59'
5888+    '%m/%d/%y %H:%M',        # '10/25/06 14:30'
5889+    '%m/%d/%y',              # '10/25/06'
5890+
5891+    '%Y년 %m월 %d일 %H시 %M분 %S초',  # '2006년 10월 25일 14시 30분 59초'
5892+    '%Y년 %m월 %d일 %H시 %M분',       # '2006년 10월 25일 14시 30분'
5893+)
5894+
5895+DECIMAL_SEPARATOR = '.'
5896+THOUSAND_SEPARATOR = ','
5897+NUMBER_GROUPING = 3
5898Index: django/conf/locale/ko/__init__.py
5899===================================================================
5900Index: django/conf/locale/eu/formats.py
5901===================================================================
5902--- django/conf/locale/eu/formats.py    (.../trunk)     (revision 0)
5903+++ django/conf/locale/eu/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5904@@ -0,0 +1,18 @@
5905+# -*- encoding: utf-8 -*-
5906+# This file is distributed under the same license as the Django package.
5907+#
5908+
5909+DATE_FORMAT = 'Yeko M\re\n d\a'
5910+TIME_FORMAT = 'H:i:s'
5911+# DATETIME_FORMAT =
5912+# YEAR_MONTH_FORMAT =
5913+# MONTH_DAY_FORMAT =
5914+SHORT_DATE_FORMAT = 'Y M j'
5915+# SHORT_DATETIME_FORMAT =
5916+# FIRST_DAY_OF_WEEK =
5917+# DATE_INPUT_FORMATS =
5918+# TIME_INPUT_FORMATS =
5919+# DATETIME_INPUT_FORMATS =
5920+DECIMAL_SEPARATOR = ','
5921+THOUSAND_SEPARATOR = '.'
5922+# NUMBER_GROUPING =
5923Index: django/conf/locale/eu/__init__.py
5924===================================================================
5925Index: django/conf/locale/is/formats.py
5926===================================================================
5927--- django/conf/locale/is/formats.py    (.../trunk)     (revision 0)
5928+++ django/conf/locale/is/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5929@@ -0,0 +1,18 @@
5930+# -*- encoding: utf-8 -*-
5931+# This file is distributed under the same license as the Django package.
5932+#
5933+
5934+DATE_FORMAT = 'j. F Y'
5935+TIME_FORMAT = 'H:i:s'
5936+# DATETIME_FORMAT =
5937+YEAR_MONTH_FORMAT = 'F Y'
5938+MONTH_DAY_FORMAT = 'j. F'
5939+SHORT_DATE_FORMAT = 'j.n.Y'
5940+# SHORT_DATETIME_FORMAT =
5941+# FIRST_DAY_OF_WEEK =
5942+# DATE_INPUT_FORMATS =
5943+# TIME_INPUT_FORMATS =
5944+# DATETIME_INPUT_FORMATS =
5945+DECIMAL_SEPARATOR = ','
5946+THOUSAND_SEPARATOR = '.'
5947+# NUMBER_GROUPING =
5948Index: django/conf/locale/is/__init__.py
5949===================================================================
5950Index: django/conf/locale/cy/formats.py
5951===================================================================
5952--- django/conf/locale/cy/formats.py    (.../trunk)     (revision 0)
5953+++ django/conf/locale/cy/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5954@@ -0,0 +1,18 @@
5955+# -*- encoding: utf-8 -*-
5956+# This file is distributed under the same license as the Django package.
5957+#
5958+
5959+DATE_FORMAT = 'd F Y'
5960+TIME_FORMAT = 'g:i:s A'
5961+# DATETIME_FORMAT =
5962+# YEAR_MONTH_FORMAT =
5963+# MONTH_DAY_FORMAT =
5964+SHORT_DATE_FORMAT = 'j M Y'
5965+# SHORT_DATETIME_FORMAT =
5966+# FIRST_DAY_OF_WEEK =
5967+# DATE_INPUT_FORMATS =
5968+# TIME_INPUT_FORMATS =
5969+# DATETIME_INPUT_FORMATS =
5970+# DECIMAL_SEPARATOR =
5971+# THOUSAND_SEPARATOR =
5972+# NUMBER_GROUPING =
5973Index: django/conf/locale/cy/__init__.py
5974===================================================================
5975Index: django/conf/locale/it/formats.py
5976===================================================================
5977--- django/conf/locale/it/formats.py    (.../trunk)     (revision 0)
5978+++ django/conf/locale/it/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
5979@@ -0,0 +1,18 @@
5980+# -*- encoding: utf-8 -*-
5981+# This file is distributed under the same license as the Django package.
5982+#
5983+
5984+DATE_FORMAT = 'd F Y'
5985+TIME_FORMAT = 'H.i.s'
5986+# DATETIME_FORMAT =
5987+YEAR_MONTH_FORMAT = 'F Y'
5988+MONTH_DAY_FORMAT = 'j F'
5989+SHORT_DATE_FORMAT = 'd/M/Y'
5990+# SHORT_DATETIME_FORMAT =
5991+# FIRST_DAY_OF_WEEK =
5992+# DATE_INPUT_FORMATS =
5993+# TIME_INPUT_FORMATS =
5994+# DATETIME_INPUT_FORMATS =
5995+DECIMAL_SEPARATOR = ','
5996+THOUSAND_SEPARATOR = '.'
5997+# NUMBER_GROUPING =
5998Index: django/conf/locale/it/__init__.py
5999===================================================================
6000Index: django/conf/locale/sk/formats.py
6001===================================================================
6002--- django/conf/locale/sk/formats.py    (.../trunk)     (revision 0)
6003+++ django/conf/locale/sk/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
6004@@ -0,0 +1,18 @@
6005+# -*- encoding: utf-8 -*-
6006+# This file is distributed under the same license as the Django package.
6007+#
6008+
6009+DATE_FORMAT = 'j. F Y'
6010+TIME_FORMAT = 'G:i:s'
6011+# DATETIME_FORMAT =
6012+YEAR_MONTH_FORMAT = 'F Y'
6013+MONTH_DAY_FORMAT = 'j. F'
6014+SHORT_DATE_FORMAT = 'j.n.Y'
6015+# SHORT_DATETIME_FORMAT =
6016+# FIRST_DAY_OF_WEEK =
6017+# DATE_INPUT_FORMATS =
6018+# TIME_INPUT_FORMATS =
6019+# DATETIME_INPUT_FORMATS =
6020+DECIMAL_SEPARATOR = ','
6021+THOUSAND_SEPARATOR = ' '
6022+# NUMBER_GROUPING =
6023Index: django/conf/locale/sk/__init__.py
6024===================================================================
6025Index: django/conf/locale/sl/formats.py
6026===================================================================
6027--- django/conf/locale/sl/formats.py    (.../trunk)     (revision 0)
6028+++ django/conf/locale/sl/formats.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
6029@@ -0,0 +1,18 @@
6030+# -*- encoding: utf-8 -*-
6031+# This file is distributed under the same license as the Django package.
6032+#
6033+
6034+DATE_FORMAT = 'd. F Y'
6035+TIME_FORMAT = 'H:i:s'
6036+# DATETIME_FORMAT =
6037+# YEAR_MONTH_FORMAT =
6038+MONTH_DAY_FORMAT = 'j. F'
6039+SHORT_DATE_FORMAT = 'j. M. Y'
6040+# SHORT_DATETIME_FORMAT =
6041+# FIRST_DAY_OF_WEEK =
6042+# DATE_INPUT_FORMATS =
6043+# TIME_INPUT_FORMATS =
6044+# DATETIME_INPUT_FORMATS =
6045+DECIMAL_SEPARATOR = ','
6046+THOUSAND_SEPARATOR = '.'
6047+# NUMBER_GROUPING =
6048Index: django/conf/locale/sl/__init__.py
6049===================================================================
6050Index: django/conf/global_settings.py
6051===================================================================
6052--- django/conf/global_settings.py      (.../trunk)     (revision 11464)
6053+++ django/conf/global_settings.py      (.../branches/soc2009/i18n-improvements)        (revision 11464)
6054@@ -1,3 +1,4 @@
6055+# -*- encoding: utf-8 -*-
6056 # Default Django settings. Override these with settings in the module
6057 # pointed-to by the DJANGO_SETTINGS_MODULE environment variable.
6058 
6059@@ -75,7 +76,7 @@
6060     ('lt', gettext_noop('Lithuanian')),
6061     ('mk', gettext_noop('Macedonian')),
6062     ('nl', gettext_noop('Dutch')),
6063-    ('no', gettext_noop('Norwegian')),
6064+    ('nb', gettext_noop(u'Norwegian Bokmål')),
6065     ('pl', gettext_noop('Polish')),
6066     ('pt', gettext_noop('Portuguese')),
6067     ('pt-br', gettext_noop('Brazilian Portuguese')),
6068@@ -103,6 +104,10 @@
6069 LOCALE_PATHS = ()
6070 LANGUAGE_COOKIE_NAME = 'django_language'
6071 
6072+# If you set this to True, Django will format dates, numbers and calendars
6073+# according to user current locale
6074+USE_FORMAT_I18N = False
6075+
6076 # Not-necessarily-technical managers of the site. They get broken link
6077 # notifications and other various e-mails.
6078 MANAGERS = ADMINS
6079@@ -255,6 +260,12 @@
6080 # you'd pass directly to os.chmod; see http://docs.python.org/lib/os-file-dir.html.
6081 FILE_UPLOAD_PERMISSIONS = None
6082 
6083+# Python module path where user will place custom format definition.
6084+# The directory where this setting is pointing should contain subdirectories
6085+# named as the locales, containing a formats.py file
6086+# (i.e. "myproject.locale" for myproject/locale/en/formats.py etc. use)
6087+FORMAT_MODULE_PATH = None
6088+
6089 # Default formatting for date objects. See all available format strings here:
6090 # http://docs.djangoproject.com/en/dev/ref/templates/builtins/#now
6091 DATE_FORMAT = 'N j, Y'
6092@@ -277,6 +288,72 @@
6093 # http://docs.djangoproject.com/en/dev/ref/templates/builtins/#now
6094 MONTH_DAY_FORMAT = 'F j'
6095 
6096+# Default shortformatting for date objects. See all available format strings here:
6097+# http://docs.djangoproject.com/en/dev/ref/templates/builtins/#now
6098+SHORT_DATE_FORMAT = 'm/d/Y'
6099+
6100+# Default short formatting for datetime objects.
6101+# See all available format strings here:
6102+# http://docs.djangoproject.com/en/dev/ref/templates/builtins/#now
6103+SHORT_DATETIME_FORMAT = 'm/d/Y P'
6104+
6105+# Default formats tried to parse dates from input boxes
6106+# These formats are tried in the specified order
6107+# See all available format string here:
6108+# http://docs.python.org/library/datetime.html#strftime-behavior
6109+# * Note that these format strings are different from the ones to display dates
6110+DATE_INPUT_FORMATS = (
6111+    '%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', # '2006-10-25', '10/25/2006', '10/25/06'
6112+    '%b %d %Y', '%b %d, %Y',            # 'Oct 25 2006', 'Oct 25, 2006'
6113+    '%d %b %Y', '%d %b, %Y',            # '25 Oct 2006', '25 Oct, 2006'
6114+    '%B %d %Y', '%B %d, %Y',            # 'October 25 2006', 'October 25, 2006'
6115+    '%d %B %Y', '%d %B, %Y',            # '25 October 2006', '25 October, 2006'
6116+)
6117+
6118+# Default formats tried to parse times from input boxes
6119+# These formats are tried in the specified order
6120+# See all available format string here:
6121+# http://docs.python.org/library/datetime.html#strftime-behavior
6122+# * Note that these format strings are different from the ones to display dates
6123+TIME_INPUT_FORMATS = (
6124+    '%H:%M:%S',     # '14:30:59'
6125+    '%H:%M',        # '14:30'
6126+)
6127+
6128+# Default formats tried to parse dates and times from input boxes
6129+# These formats are tried in the specified order
6130+# See all available format string here:
6131+# http://docs.python.org/library/datetime.html#strftime-behavior
6132+# * Note that these format strings are different from the ones to display dates
6133+DATETIME_INPUT_FORMATS = (
6134+    '%Y-%m-%d %H:%M:%S',     # '2006-10-25 14:30:59'
6135+    '%Y-%m-%d %H:%M',        # '2006-10-25 14:30'
6136+    '%Y-%m-%d',              # '2006-10-25'
6137+    '%m/%d/%Y %H:%M:%S',     # '10/25/2006 14:30:59'
6138+    '%m/%d/%Y %H:%M',        # '10/25/2006 14:30'
6139+    '%m/%d/%Y',              # '10/25/2006'
6140+    '%m/%d/%y %H:%M:%S',     # '10/25/06 14:30:59'
6141+    '%m/%d/%y %H:%M',        # '10/25/06 14:30'
6142+    '%m/%d/%y',              # '10/25/06'
6143+)
6144+
6145+# First day of week, to be used on calendars
6146+# 0 means Sunday, 1 means Monday...
6147+FIRST_DAY_OF_WEEK = 0
6148+
6149+# Decimal separator symbol
6150+DECIMAL_SEPARATOR = '.'
6151+
6152+# Boolean that sets whether to add thousand separator when formatting numbers
6153+USE_THOUSAND_SEPARATOR = False
6154+
6155+# Number of digits that will be togheter, when spliting them by THOUSAND_SEPARATOR
6156+# 0 means no grouping, 3 means splitting by thousands...
6157+NUMBER_GROUPING = 0
6158+
6159+# Thousand separator symbol
6160+THOUSAND_SEPARATOR = ','
6161+
6162 # Do you want to manage transactions manually?
6163 # Hint: you really don't!
6164 TRANSACTIONS_MANAGED = False
6165Index: django/forms/extras/widgets.py
6166===================================================================
6167--- django/forms/extras/widgets.py      (.../trunk)     (revision 11464)
6168+++ django/forms/extras/widgets.py      (.../branches/soc2009/i18n-improvements)        (revision 11464)
6169@@ -8,6 +8,8 @@
6170 from django.forms.widgets import Widget, Select
6171 from django.utils.dates import MONTHS
6172 from django.utils.safestring import mark_safe
6173+from django.utils.formats import getformat
6174+from django.conf import settings
6175 
6176 __all__ = ('SelectDateWidget',)
6177 
6178@@ -45,38 +47,27 @@
6179                 if match:
6180                     year_val, month_val, day_val = [int(v) for v in match.groups()]
6181 
6182+        choices = [(i, i) for i in self.years]
6183+        year_html = self.create_select(name, self.year_field, value, year_val, choices)
6184+        choices = MONTHS.items()
6185+        month_html = self.create_select(name, self.month_field, value, month_val, choices)
6186+        choices = [(i, i) for i in range(1, 32)]
6187+        day_html = self.create_select(name, self.day_field, value, day_val,  choices)
6188+
6189+        format = getformat('DATE_FORMAT')
6190+        escaped = False
6191         output = []
6192-
6193-        if 'id' in self.attrs:
6194-            id_ = self.attrs['id']
6195-        else:
6196-            id_ = 'id_%s' % name
6197-
6198-        month_choices = MONTHS.items()
6199-        if not (self.required and value):
6200-            month_choices.append(self.none_value)
6201-        month_choices.sort()
6202-        local_attrs = self.build_attrs(id=self.month_field % id_)
6203-        s = Select(choices=month_choices)
6204-        select_html = s.render(self.month_field % name, month_val, local_attrs)
6205-        output.append(select_html)
6206-
6207-        day_choices = [(i, i) for i in range(1, 32)]
6208-        if not (self.required and value):
6209-            day_choices.insert(0, self.none_value)
6210-        local_attrs['id'] = self.day_field % id_
6211-        s = Select(choices=day_choices)
6212-        select_html = s.render(self.day_field % name, day_val, local_attrs)
6213-        output.append(select_html)
6214-
6215-        year_choices = [(i, i) for i in self.years]
6216-        if not (self.required and value):
6217-            year_choices.insert(0, self.none_value)
6218-        local_attrs['id'] = self.year_field % id_
6219-        s = Select(choices=year_choices)
6220-        select_html = s.render(self.year_field % name, year_val, local_attrs)
6221-        output.append(select_html)
6222-
6223+        for char in format:
6224+            if escaped:
6225+                escaped = False
6226+            elif char == '\\':
6227+                escaped = True
6228+            elif char in 'Yy':
6229+                output.append(year_html)
6230+            elif char in 'bFMmNn':
6231+                output.append(month_html)
6232+            elif char in 'dj':
6233+                output.append(day_html)
6234         return mark_safe(u'\n'.join(output))
6235 
6236     def id_for_label(self, id_):
6237@@ -90,5 +81,27 @@
6238         if y == m == d == "0":
6239             return None
6240         if y and m and d:
6241-            return '%s-%s-%s' % (y, m, d)
6242+            if settings.USE_FORMAT_I18N:
6243+                input_format = getformat('DATE_INPUT_FORMATS')[0]
6244+                try:
6245+                    date_value = datetime.date(int(y), int(m), int(d))
6246+                except ValueError:
6247+                    pass
6248+                else:
6249+                    return date_value.strftime(input_format)
6250+            else:
6251+                return '%s-%s-%s' % (y, m, d)
6252         return data.get(name, None)
6253+
6254+    def create_select(self, name, field, value, val, choices):
6255+        if 'id' in self.attrs:
6256+            id_ = self.attrs['id']
6257+        else:
6258+            id_ = 'id_%s' % name
6259+        if not (self.required and value):
6260+            choices.insert(0, self.none_value)
6261+        local_attrs = self.build_attrs(id=field % id_)
6262+        s = Select(choices=choices)
6263+        select_html = s.render(field % name, val, local_attrs)
6264+        return select_html
6265+
6266Index: django/forms/fields.py
6267===================================================================
6268--- django/forms/fields.py      (.../trunk)     (revision 11464)
6269+++ django/forms/fields.py      (.../branches/soc2009/i18n-improvements)        (revision 11464)
6270@@ -26,6 +26,7 @@
6271 import django.core.exceptions
6272 from django.utils.translation import ugettext_lazy as _
6273 from django.utils.encoding import smart_unicode, smart_str
6274+from django.utils.formats import getformat
6275 
6276 from util import ErrorList, ValidationError
6277 from widgets import TextInput, PasswordInput, HiddenInput, MultipleHiddenInput, FileInput, CheckboxInput, Select, NullBooleanSelect, SelectMultiple, DateInput, DateTimeInput, TimeInput, SplitDateTimeWidget, SplitHiddenDateTimeWidget
6278@@ -33,9 +34,7 @@
6279 
6280 __all__ = (
6281     'Field', 'CharField', 'IntegerField',
6282-    'DEFAULT_DATE_INPUT_FORMATS', 'DateField',
6283-    'DEFAULT_TIME_INPUT_FORMATS', 'TimeField',
6284-    'DEFAULT_DATETIME_INPUT_FORMATS', 'DateTimeField', 'TimeField',
6285+    'DateField', 'TimeField', 'DateTimeField', 'TimeField',
6286     'RegexField', 'EmailField', 'FileField', 'ImageField', 'URLField',
6287     'BooleanField', 'NullBooleanField', 'ChoiceField', 'MultipleChoiceField',
6288     'ComboField', 'MultiValueField', 'FloatField', 'DecimalField',
6289@@ -210,7 +209,9 @@
6290         if not self.required and value in EMPTY_VALUES:
6291             return None
6292         try:
6293-            value = float(value)
6294+            # We always accept dot as decimal separator
6295+            if isinstance(value, str) or isinstance(value, unicode):
6296+                value = float(value.replace(getformat('DECIMAL_SEPARATOR'), '.'))
6297         except (ValueError, TypeError):
6298             raise ValidationError(self.error_messages['invalid'])
6299         if self.max_value is not None and value > self.max_value:
6300@@ -246,7 +247,9 @@
6301             return None
6302         value = smart_str(value).strip()
6303         try:
6304-            value = Decimal(value)
6305+            # We always accept dot as decimal separator
6306+            if isinstance(value, str) or isinstance(value, unicode):
6307+                value = Decimal(value.replace(getformat('DECIMAL_SEPARATOR'), '.'))
6308         except DecimalException:
6309             raise ValidationError(self.error_messages['invalid'])
6310 
6311@@ -274,14 +277,6 @@
6312             raise ValidationError(self.error_messages['max_whole_digits'] % (self.max_digits - self.decimal_places))
6313         return value
6314 
6315-DEFAULT_DATE_INPUT_FORMATS = (
6316-    '%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', # '2006-10-25', '10/25/2006', '10/25/06'
6317-    '%b %d %Y', '%b %d, %Y',            # 'Oct 25 2006', 'Oct 25, 2006'
6318-    '%d %b %Y', '%d %b, %Y',            # '25 Oct 2006', '25 Oct, 2006'
6319-    '%B %d %Y', '%B %d, %Y',            # 'October 25 2006', 'October 25, 2006'
6320-    '%d %B %Y', '%d %B, %Y',            # '25 October 2006', '25 October, 2006'
6321-)
6322-
6323 class DateField(Field):
6324     widget = DateInput
6325     default_error_messages = {
6326@@ -290,7 +285,7 @@
6327 
6328     def __init__(self, input_formats=None, *args, **kwargs):
6329         super(DateField, self).__init__(*args, **kwargs)
6330-        self.input_formats = input_formats or DEFAULT_DATE_INPUT_FORMATS
6331+        self.input_formats = input_formats
6332 
6333     def clean(self, value):
6334         """
6335@@ -304,18 +299,13 @@
6336             return value.date()
6337         if isinstance(value, datetime.date):
6338             return value
6339-        for format in self.input_formats:
6340+        for format in self.input_formats or getformat('DATE_INPUT_FORMATS'):
6341             try:
6342                 return datetime.date(*time.strptime(value, format)[:3])
6343             except ValueError:
6344                 continue
6345         raise ValidationError(self.error_messages['invalid'])
6346 
6347-DEFAULT_TIME_INPUT_FORMATS = (
6348-    '%H:%M:%S',     # '14:30:59'
6349-    '%H:%M',        # '14:30'
6350-)
6351-
6352 class TimeField(Field):
6353     widget = TimeInput
6354     default_error_messages = {
6355@@ -324,7 +314,7 @@
6356 
6357     def __init__(self, input_formats=None, *args, **kwargs):
6358         super(TimeField, self).__init__(*args, **kwargs)
6359-        self.input_formats = input_formats or DEFAULT_TIME_INPUT_FORMATS
6360+        self.input_formats = input_formats
6361 
6362     def clean(self, value):
6363         """
6364@@ -336,25 +326,13 @@
6365             return None
6366         if isinstance(value, datetime.time):
6367             return value
6368-        for format in self.input_formats:
6369+        for format in self.input_formats or getformat('TIME_INPUT_FORMATS'):
6370             try:
6371                 return datetime.time(*time.strptime(value, format)[3:6])
6372             except ValueError:
6373                 continue
6374         raise ValidationError(self.error_messages['invalid'])
6375 
6376-DEFAULT_DATETIME_INPUT_FORMATS = (
6377-    '%Y-%m-%d %H:%M:%S',     # '2006-10-25 14:30:59'
6378-    '%Y-%m-%d %H:%M',        # '2006-10-25 14:30'
6379-    '%Y-%m-%d',              # '2006-10-25'
6380-    '%m/%d/%Y %H:%M:%S',     # '10/25/2006 14:30:59'
6381-    '%m/%d/%Y %H:%M',        # '10/25/2006 14:30'
6382-    '%m/%d/%Y',              # '10/25/2006'
6383-    '%m/%d/%y %H:%M:%S',     # '10/25/06 14:30:59'
6384-    '%m/%d/%y %H:%M',        # '10/25/06 14:30'
6385-    '%m/%d/%y',              # '10/25/06'
6386-)
6387-
6388 class DateTimeField(Field):
6389     widget = DateTimeInput
6390     default_error_messages = {
6391@@ -363,7 +341,7 @@
6392 
6393     def __init__(self, input_formats=None, *args, **kwargs):
6394         super(DateTimeField, self).__init__(*args, **kwargs)
6395-        self.input_formats = input_formats or DEFAULT_DATETIME_INPUT_FORMATS
6396+        self.input_formats = input_formats
6397 
6398     def clean(self, value):
6399         """
6400@@ -383,7 +361,7 @@
6401             if len(value) != 2:
6402                 raise ValidationError(self.error_messages['invalid'])
6403             value = '%s %s' % tuple(value)
6404-        for format in self.input_formats:
6405+        for format in self.input_formats or getformat('DATETIME_INPUT_FORMATS'):
6406             try:
6407                 return datetime.datetime(*time.strptime(value, format)[:6])
6408             except ValueError:
6409Index: django/forms/widgets.py
6410===================================================================
6411--- django/forms/widgets.py     (.../trunk)     (revision 11464)
6412+++ django/forms/widgets.py     (.../branches/soc2009/i18n-improvements)        (revision 11464)
6413@@ -15,6 +15,7 @@
6414 from django.utils.translation import ugettext
6415 from django.utils.encoding import StrAndUnicode, force_unicode
6416 from django.utils.safestring import mark_safe
6417+from django.utils.formats import localize
6418 from django.utils import datetime_safe
6419 from datetime import time
6420 from util import flatatt
6421@@ -213,7 +214,7 @@
6422         final_attrs = self.build_attrs(attrs, type=self.input_type, name=name)
6423         if value != '':
6424             # Only add the 'value' attribute if a value is non-empty.
6425-            final_attrs['value'] = force_unicode(value)
6426+            final_attrs['value'] = force_unicode(localize(value, is_input=True))
6427         return mark_safe(u'<input%s />' % flatatt(final_attrs))
6428 
6429 class TextInput(Input):
6430Index: django/core/management/commands/importcldr.py
6431===================================================================
6432--- django/core/management/commands/importcldr.py       (.../trunk)     (revision 0)
6433+++ django/core/management/commands/importcldr.py       (.../branches/soc2009/i18n-improvements)        (revision 11464)
6434@@ -0,0 +1,221 @@
6435+import sys
6436+import os
6437+import re
6438+from optparse import make_option, OptionParser
6439+
6440+from django.core.management.base import LabelCommand, CommandError
6441+
6442+try:
6443+    from lxml import etree
6444+except ImportError:
6445+    raise CommandError('You need to install `python-lxml` to run this script')
6446+
6447+FORMATS_FILE_NAME = 'formats.py'
6448+FORMATS_FILE_HEADER = '''# -*- encoding: utf-8 -*-
6449+# This file is distributed under the same license as the Django package.
6450+#
6451+
6452+'''
6453+
6454+def quote(nodes, name,  locale, previous):
6455+    if len(nodes):
6456+        return "'%s'" % unicode(nodes[0].text).replace("'", "\\'")
6457+    else:
6458+        return None
6459+
6460+def convert_time(nodes, name,  locale, previous):
6461+    SPECIAL_CHARS = ('a', 'A', 'b', 'B', 'd', 'D', 'f', 'F', 'g', 'G', 'h',
6462+        'H', 'i', 'I', 'j', 'l', 'L', 'm', 'M', 'n', 'N', 'O', 'P', 'r',
6463+        's', 'S', 't', 'T', 'U', 'w', 'W', 'y', 'Y', 'z', 'Z')
6464+    FORMAT_STR_MAP = ( # not using a dict, because we have to apply formats in order
6465+        ('dd', 'd'),
6466+        ('d', 'j'),
6467+        ('MMMM', 'F'),
6468+        ('MMM', 'M'),
6469+        ('MM', 'm'),
6470+        ('M', 'n'),
6471+        ('yyyy', 'Y'),
6472+        ('yy', 'y'),
6473+        ('y', 'Y'),
6474+        ('hh', 'h'),
6475+        ('h', 'g'),
6476+        ('HH', 'H'),
6477+        ('H', 'G'),
6478+        ('mm', 'i'),
6479+        ('ss', 's'),
6480+        ('a', 'A'),
6481+        ('LLLL', 'F'),
6482+    )
6483+    if len(nodes):
6484+        original = nodes[0].text
6485+        result = ''
6486+        for cnt, segment in enumerate(original.split("'")):
6487+            if cnt % 2:
6488+                for char in SPECIAL_CHARS:
6489+                    segment = segment.replace(char, '\\%s' % char)
6490+                result += segment
6491+            else:
6492+                while segment:
6493+                    found = False
6494+                    for src, dst in FORMAT_STR_MAP:
6495+                        if segment[0:len(src)] == src:
6496+                            result += dst
6497+                            segment = segment[len(src):]
6498+                            found = True
6499+                            break
6500+                    if not found:
6501+                        result += segment[0]
6502+                        segment = segment[1:]
6503+
6504+        return "'%s'" % result
6505+    else:
6506+        return None
6507+
6508+def datetime(nodes, name, locale, previous):
6509+    result = None
6510+    if len(nodes) and 'DATE_FORMAT' in previous and 'TIME_FORMAT' in previous:
6511+        result = nodes[0].text
6512+        result = result.replace('{0}', previous['TIME_FORMAT'][1:-1])
6513+        if name == 'SHORT_DATETIME_FORMAT' and 'SHORT_DATE_FORMAT' in previous:
6514+            result = result.replace('{1}', previous['SHORT_DATE_FORMAT'][1:-1])
6515+        else:
6516+            result = result.replace('{1}', previous['DATE_FORMAT'][1:-1])
6517+    if result:
6518+        return "'%s'" % result
6519+    else:
6520+        return None
6521+
6522+FORMATS_MAP = [
6523+    {
6524+        'name': 'DATE_FORMAT',
6525+        'file': os.path.join('common', 'main', '%(locale)s.xml'),
6526+        'pattern': "/ldml/dates/calendars/calendar[@type='gregorian']/dateFormats/dateFormatLength[@type='long']/dateFormat/pattern",
6527+        'conversion': convert_time,
6528+    },
6529+    {
6530+        'name': 'TIME_FORMAT',
6531+        'file': os.path.join('common', 'main', '%(locale)s.xml'),
6532+        'pattern': "/ldml/dates/calendars/calendar[@type='gregorian']/timeFormats/timeFormatLength[@type='medium']/timeFormat/pattern",
6533+        'conversion': convert_time,
6534+    },
6535+    {
6536+        'name': 'DATETIME_FORMAT',
6537+        'file': os.path.join('common', 'main', '%(locale)s.xml'),
6538+        'pattern': "/ldml/dates/calendars/calendar[@type='gregorian']/dateTimeFormats/dateTimeFormatLength[@type='long']/dateTimeFormat/pattern",
6539+        'conversion': datetime,
6540+    },
6541+    {
6542+        'name': 'YEAR_MONTH_FORMAT',
6543+        'file': os.path.join('common', 'main', '%(locale)s.xml'),
6544+        'pattern': "/ldml/dates/calendars/calendar[@type='gregorian']/dateTimeFormats/availableFormats/dateFormatItem[@id='yMMMM']",
6545+        'conversion': convert_time,
6546+    },
6547+    {
6548+        'name': 'MONTH_DAY_FORMAT',
6549+        'file': os.path.join('common', 'main', '%(locale)s.xml'),
6550+        'pattern': "/ldml/dates/calendars/calendar[@type='gregorian']/dateTimeFormats/availableFormats/dateFormatItem[@id='MMMMd']",
6551+        'conversion': convert_time,
6552+    },
6553+    {
6554+        'name': 'SHORT_DATE_FORMAT',
6555+        'file': os.path.join('common', 'main', '%(locale)s.xml'),
6556+        'pattern': "/ldml/dates/calendars/calendar[@type='gregorian']/dateFormats/dateFormatLength[@type='medium']/dateFormat/pattern",
6557+        'conversion': convert_time,
6558+    },
6559+    {
6560+        'name': 'SHORT_DATETIME_FORMAT',
6561+        'file': os.path.join('common', 'main', '%(locale)s.xml'),
6562+        'pattern': "/ldml/dates/calendars/calendar[@type='gregorian']/dateTimeFormats/dateTimeFormatLength[@type='short']/dateTimeFormat/pattern",
6563+        'conversion': datetime,
6564+    },
6565+    {'name': 'FIRST_DAY_OF_WEEK'},
6566+    {'name': 'DATE_INPUT_FORMATS'},
6567+    {'name': 'TIME_INPUT_FORMATS'},
6568+    {'name': 'DATETIME_INPUT_FORMATS'},
6569+    {
6570+        'name': 'DECIMAL_SEPARATOR',
6571+        'file': os.path.join('common', 'main', '%(locale)s.xml'),
6572+        'pattern': "/ldml/numbers/symbols/decimal",
6573+        'conversion': quote,
6574+    },
6575+    {
6576+        'name': 'THOUSAND_SEPARATOR',
6577+        'file': os.path.join('common', 'main', '%(locale)s.xml'),
6578+        'pattern': "/ldml/numbers/symbols/group",
6579+        'conversion': quote,
6580+    },
6581+    {'name': 'NUMBER_GROUPING'},
6582+]
6583+"""
6584+"""
6585+
6586+def get_locales(django_locale_dir, locale=None):
6587+    if locale:
6588+        yield locale
6589+    else:
6590+        locale_re = re.compile('[a-z]{2}(_[A-Z]{2})?')
6591+        for locale in os.listdir(django_locale_dir):
6592+            if locale_re.match(locale):
6593+                yield locale
6594+
6595+def import_cldr(cldr_dir, locale=None, overwrite=False):
6596+    """
6597+    For every locale defined in Django, get from the CLDR locale file all
6598+    settings defined in output_structure, and write the result to the
6599+    locale directories on Django.
6600+    """
6601+    if not os.path.isdir(cldr_dir):
6602+        raise Exception, "Specified CLDR directory '%s' does not exist" % cldr_dir
6603+
6604+    import django
6605+    django_locale_dir = os.path.join(os.path.dirname(django.__file__), 'conf', 'locale')
6606+
6607+    for locale in get_locales(django_locale_dir, locale):
6608+        output_filename = os.path.join(django_locale_dir, locale, FORMATS_FILE_NAME)
6609+        if os.path.isfile(output_filename) and not overwrite:
6610+            print "'%s' locale already exists. Skipping" % locale
6611+        else:
6612+            result = {}
6613+            output_file = open(output_filename, 'w')
6614+            output_file.write(FORMATS_FILE_HEADER)
6615+            for format in FORMATS_MAP:
6616+                if 'file' in format:
6617+                    cldr_file = os.path.join(cldr_dir, format['file'] % dict(locale=locale))
6618+                    tree = etree.parse(cldr_file) # TODO: error control
6619+                    try:
6620+                        original_value = tree.xpath(format['pattern'])
6621+                    except IndexError:
6622+                        output_file.write('# %s = \n' % (format['name']))
6623+                    else:
6624+                        value = format['conversion'](original_value, format['name'], locale, result)
6625+                        if value:
6626+                            output_file.write('%s = %s\n' % (format['name'], value.encode('utf8')))
6627+                            result[format['name']] = value
6628+                        else:
6629+                            output_file.write('# %s = \n' % (format['name']))
6630+                else:
6631+                    output_file.write('# %s = \n' % (format['name']))
6632+            output_file.close()
6633+
6634+            init_filename = os.path.join(django_locale_dir, locale, '__init__.py')
6635+            open(init_filename, 'a').close()
6636+
6637+class Command(LabelCommand):
6638+    option_list = LabelCommand.option_list + (
6639+        make_option('--locale', '-l', dest='locale',
6640+            help='The locale to process. Default is to process all.'),
6641+    ) + (
6642+        make_option('--overwite', '-o', action='store_true', dest='overwrite',
6643+            help='Wheter to overwrite format definitions of locales that already have one.'),
6644+    )
6645+    help = 'Creates format definition files for locales, importing data from the CLDR.'
6646+    args = '[cldrpath]'
6647+    label = 'CLDR path'
6648+    requires_model_validation = False
6649+    can_import_settings = False
6650+
6651+    def handle_label(self, cldrpath, **options):
6652+        locale = options.get('locale')
6653+        overwrite = options.get('overwrite')
6654+        import_cldr(cldrpath, locale, overwrite)
6655+
6656Index: django/views/i18n.py
6657===================================================================
6658--- django/views/i18n.py        (.../trunk)     (revision 11464)
6659+++ django/views/i18n.py        (.../branches/soc2009/i18n-improvements)        (revision 11464)
6660@@ -3,6 +3,7 @@
6661 from django.utils import importlib
6662 from django.utils.translation import check_for_language, activate, to_locale, get_language
6663 from django.utils.text import javascript_quote
6664+from django.utils.formats import project_formats_module, django_formats_module
6665 import os
6666 import gettext as gettext_module
6667 
6668@@ -32,6 +33,25 @@
6669                 response.set_cookie(settings.LANGUAGE_COOKIE_NAME, lang_code)
6670     return response
6671 
6672+def get_formats():
6673+    """
6674+    Returns an iterator over all formats in formats file
6675+    """
6676+    FORMAT_SETTINGS = ('DATE_FORMAT', 'DATETIME_FORMAT', 'TIME_FORMAT',
6677+        'YEAR_MONTH_FORMAT', 'MONTH_DAY_FORMAT', 'SHORT_DATE_FORMAT',
6678+        'SHORT_DATETIME_FORMAT', 'FIRST_DAY_OF_WEEK', 'DECIMAL_SEPARATOR',
6679+        'THOUSAND_SEPARATOR', 'NUMBER_GROUPING')
6680+
6681+    result = {}
6682+    for module in (settings, django_formats_module(), project_formats_module()):
6683+        if module:
6684+            for attr in FORMAT_SETTINGS:
6685+                try:
6686+                    result[attr] = getattr(module, attr)
6687+                except AttributeError:
6688+                    pass
6689+    return result
6690+   
6691 NullSource = """
6692 /* gettext identity library */
6693 
6694@@ -185,10 +205,13 @@
6695         else:
6696             raise TypeError, k
6697     csrc.sort()
6698-    for k,v in pdict.items():
6699+    for k, v in pdict.items():
6700         src.append("catalog['%s'] = [%s];\n" % (javascript_quote(k), ','.join(["''"]*(v+1))))
6701+    for k, v in get_formats().items():
6702+        src.append("catalog['%s'] = '%s';\n" % (javascript_quote(k), javascript_quote(unicode(v))))
6703     src.extend(csrc)
6704     src.append(LibFoot)
6705     src.append(InterPolate)
6706     src = ''.join(src)
6707     return http.HttpResponse(src, 'text/javascript')
6708+
6709Index: django/utils/numberformat.py
6710===================================================================
6711--- django/utils/numberformat.py        (.../trunk)     (revision 0)
6712+++ django/utils/numberformat.py        (.../branches/soc2009/i18n-improvements)        (revision 11464)
6713@@ -0,0 +1,40 @@
6714+from django.conf import settings
6715+
6716+def format(number, decimal_sep, decimal_pos, grouping=0, thousand_sep=''):
6717+    """
6718+    Gets a number (as a number or string), and returns it as a string,
6719+    using formats definied as arguments:
6720+     * decimal_sep: Decimal separator symbol (for example ".")
6721+     * decimal_pos: Number of decimal positions
6722+     * grouping: Number of digits in every group limited by thousand separator
6723+     * thousand_sep: Thousand separator symbol (for example ",")
6724+    """
6725+    # sign
6726+    if number < 0:
6727+        sign = '-'
6728+    else:
6729+        sign = ''
6730+    # decimal part
6731+    str_number = unicode(number)
6732+    if str_number[0] == '-':
6733+        str_number = str_number[1:]
6734+    if '.' in str_number:
6735+        int_part, dec_part = str_number.split('.')
6736+        if decimal_pos:
6737+            dec_part = dec_part[:decimal_pos]
6738+    else:
6739+        int_part, dec_part = str_number, ''
6740+    if decimal_pos:
6741+        dec_part = dec_part + ('0' * (decimal_pos - len(dec_part)))
6742+    if dec_part: dec_part = decimal_sep + dec_part
6743+    # grouping
6744+    if settings.USE_THOUSAND_SEPARATOR and grouping:
6745+        int_part_gd = ''
6746+        for cnt, digit in enumerate(int_part[::-1]):
6747+            if cnt and not cnt % grouping:
6748+                int_part_gd += thousand_sep
6749+            int_part_gd += digit
6750+        int_part = int_part_gd[::-1]
6751+
6752+    return sign + int_part + dec_part
6753+
6754Index: django/utils/translation/trans_real.py
6755===================================================================
6756--- django/utils/translation/trans_real.py      (.../trunk)     (revision 11464)
6757+++ django/utils/translation/trans_real.py      (.../branches/soc2009/i18n-improvements)        (revision 11464)
6758@@ -266,15 +266,16 @@
6759     translation object to use. If no current translation is activated, the
6760     message will be run through the default translation object.
6761     """
6762+    eol_message = message.replace('\r\n', '\n').replace('\r', '\n')
6763     global _default, _active
6764     t = _active.get(currentThread(), None)
6765     if t is not None:
6766-        result = getattr(t, translation_function)(message)
6767+        result = getattr(t, translation_function)(eol_message)
6768     else:
6769         if _default is None:
6770             from django.conf import settings
6771             _default = translation(settings.LANGUAGE_CODE)
6772-        result = getattr(_default, translation_function)(message)
6773+        result = getattr(_default, translation_function)(eol_message)
6774     if isinstance(message, SafeData):
6775         return mark_safe(result)
6776     return result
6777@@ -389,39 +390,6 @@
6778 
6779     return settings.LANGUAGE_CODE
6780 
6781-def get_date_formats():
6782-    """
6783-    Checks whether translation files provide a translation for some technical
6784-    message ID to store date and time formats. If it doesn't contain one, the
6785-    formats provided in the settings will be used.
6786-    """
6787-    from django.conf import settings
6788-    date_format = ugettext('DATE_FORMAT')
6789-    datetime_format = ugettext('DATETIME_FORMAT')
6790-    time_format = ugettext('TIME_FORMAT')
6791-    if date_format == 'DATE_FORMAT':
6792-        date_format = settings.DATE_FORMAT
6793-    if datetime_format == 'DATETIME_FORMAT':
6794-        datetime_format = settings.DATETIME_FORMAT
6795-    if time_format == 'TIME_FORMAT':
6796-        time_format = settings.TIME_FORMAT
6797-    return date_format, datetime_format, time_format
6798-
6799-def get_partial_date_formats():
6800-    """
6801-    Checks whether translation files provide a translation for some technical
6802-    message ID to store partial date formats. If it doesn't contain one, the
6803-    formats provided in the settings will be used.
6804-    """
6805-    from django.conf import settings
6806-    year_month_format = ugettext('YEAR_MONTH_FORMAT')
6807-    month_day_format = ugettext('MONTH_DAY_FORMAT')
6808-    if year_month_format == 'YEAR_MONTH_FORMAT':
6809-        year_month_format = settings.YEAR_MONTH_FORMAT
6810-    if month_day_format == 'MONTH_DAY_FORMAT':
6811-        month_day_format = settings.MONTH_DAY_FORMAT
6812-    return year_month_format, month_day_format
6813-
6814 dot_re = re.compile(r'\S')
6815 def blankout(src, char):
6816     """
6817@@ -537,3 +505,42 @@
6818         result.append((lang, priority))
6819     result.sort(lambda x, y: -cmp(x[1], y[1]))
6820     return result
6821+
6822+# get_date_formats and get_partial_date_formats aren't used anymore from django
6823+# itself, and are kept for backward compatibility.
6824+# Note that it's also important to keep format names maked for translation, so
6825+# for compatibility we still want to have formats on translation catalogs. That
6826+# makes template code like {{ my_date|date:_('DATE_FORMAT') }} go on working
6827+def get_date_formats():
6828+    """
6829+    Checks whether translation files provide a translation for some technical
6830+    message ID to store date and time formats. If it doesn't contain one, the
6831+    formats provided in the settings will be used.
6832+    """
6833+    from django.conf import settings
6834+    date_format = ugettext('DATE_FORMAT')
6835+    datetime_format = ugettext('DATETIME_FORMAT')
6836+    time_format = ugettext('TIME_FORMAT')
6837+    if date_format == 'DATE_FORMAT':
6838+        date_format = settings.DATE_FORMAT
6839+    if datetime_format == 'DATETIME_FORMAT':
6840+        datetime_format = settings.DATETIME_FORMAT
6841+    if time_format == 'TIME_FORMAT':
6842+        time_format = settings.TIME_FORMAT
6843+    return date_format, datetime_format, time_format
6844+
6845+def get_partial_date_formats():
6846+    """
6847+    Checks whether translation files provide a translation for some technical
6848+    message ID to store partial date formats. If it doesn't contain one, the
6849+    formats provided in the settings will be used.
6850+    """
6851+    from django.conf import settings
6852+    year_month_format = ugettext('YEAR_MONTH_FORMAT')
6853+    month_day_format = ugettext('MONTH_DAY_FORMAT')
6854+    if year_month_format == 'YEAR_MONTH_FORMAT':
6855+        year_month_format = settings.YEAR_MONTH_FORMAT
6856+    if month_day_format == 'MONTH_DAY_FORMAT':
6857+        month_day_format = settings.MONTH_DAY_FORMAT
6858+    return year_month_format, month_day_format
6859+
6860Index: django/utils/translation/trans_null.py
6861===================================================================
6862--- django/utils/translation/trans_null.py      (.../trunk)     (revision 11464)
6863+++ django/utils/translation/trans_null.py      (.../branches/soc2009/i18n-improvements)        (revision 11464)
6864@@ -18,10 +18,10 @@
6865 deactivate = deactivate_all = lambda: None
6866 get_language = lambda: settings.LANGUAGE_CODE
6867 get_language_bidi = lambda: settings.LANGUAGE_CODE in settings.LANGUAGES_BIDI
6868-get_date_formats = lambda: (settings.DATE_FORMAT, settings.DATETIME_FORMAT, settings.TIME_FORMAT)
6869-get_partial_date_formats = lambda: (settings.YEAR_MONTH_FORMAT, settings.MONTH_DAY_FORMAT)
6870 check_for_language = lambda x: True
6871 
6872+# date formats shouldn't be used using gettext anymore. This
6873+# is kept for backward compatibility
6874 TECHNICAL_ID_MAP = {
6875     "DATE_WITH_TIME_FULL": settings.DATETIME_FORMAT,
6876     "DATE_FORMAT": settings.DATE_FORMAT,
6877@@ -51,3 +51,8 @@
6878 
6879 def get_language_from_request(request):
6880     return settings.LANGUAGE_CODE
6881+
6882+# get_date_formats and get_partial_date_formats aren't used anymore from django
6883+# itself, and are kept for backward compatibility.
6884+get_date_formats = lambda: (settings.DATE_FORMAT, settings.DATETIME_FORMAT, settings.TIME_FORMAT)
6885+get_partial_date_formats = lambda: (settings.YEAR_MONTH_FORMAT, settings.MONTH_DAY_FORMAT)
6886Index: django/utils/formats.py
6887===================================================================
6888--- django/utils/formats.py     (.../trunk)     (revision 0)
6889+++ django/utils/formats.py     (.../branches/soc2009/i18n-improvements)        (revision 11464)
6890@@ -0,0 +1,95 @@
6891+import decimal
6892+import datetime
6893+
6894+from django.conf import settings
6895+from django.utils.translation import get_language
6896+from django.utils.importlib import import_module
6897+from django.utils import dateformat
6898+from django.utils import numberformat
6899+
6900+def project_formats_module():
6901+    """
6902+    Returns the formats module for the current locale, defined
6903+    on the project
6904+    """
6905+    if settings.FORMAT_MODULE_PATH:
6906+        try:
6907+            return import_module('.formats', '%s.%s' % (settings.FORMAT_MODULE_PATH, get_language()))
6908+        except ImportError:
6909+            pass
6910+    return None
6911+
6912+def django_formats_module():
6913+    """
6914+    Returns the formats module for the current locale, defined
6915+    on Django
6916+    """
6917+    try:
6918+        return import_module('.formats', 'django.conf.locale.%s' % get_language())
6919+    except ImportError:
6920+        return None
6921+
6922+def getformat(format_type):
6923+    """
6924+    For a specific format type, returns the format for the
6925+    current language (locale) defaulting to the format on settings.
6926+    format_type is the name of the format, for example 'DATE_FORMAT'
6927+    """
6928+    if settings.USE_I18N and settings.USE_FORMAT_I18N:
6929+        for module in (project_formats_module(), django_formats_module()):
6930+            if module:
6931+                try:
6932+                    return getattr(module, format_type)
6933+                except AttributeError:
6934+                    pass
6935+    return getattr(settings, format_type)
6936+
6937+def date_format(value, format=None):
6938+    """
6939+    Formats a datetime.date or datetime.datetime object using a
6940+    localizable format
6941+    """
6942+    return dateformat.format(value, getformat(format or 'DATE_FORMAT'))
6943+
6944+def number_format(value, decimal_pos=None):
6945+    """
6946+    Formats a numeric value using localization settings
6947+    """
6948+    return numberformat.format(
6949+        value,
6950+        getformat('DECIMAL_SEPARATOR'),
6951+        decimal_pos,
6952+        getformat('NUMBER_GROUPING'),
6953+        getformat('THOUSAND_SEPARATOR'),
6954+    )
6955+
6956+def localize(value, is_input=False):
6957+    """
6958+    Checks value, and if it has a localizable type (date,
6959+    number...) it returns the value as a string using
6960+    current locale format
6961+    """
6962+    if settings.USE_I18N and settings.USE_FORMAT_I18N:
6963+        if isinstance(value, decimal.Decimal):
6964+            return number_format(value)
6965+        elif isinstance(value, float):
6966+            return number_format(value)
6967+        elif isinstance(value, int):
6968+            return number_format(value)
6969+        elif isinstance(value, datetime.datetime):
6970+            if not is_input:
6971+                return date_format(value, 'DATETIME_FORMAT')
6972+            else:
6973+                return value.strftime(getformat('DATETIME_INPUT_FORMATS')[0])
6974+        elif isinstance(value, datetime.date):
6975+            if not is_input:
6976+                return date_format(value)
6977+            else:
6978+                return value.strftime(getformat('DATE_INPUT_FORMATS')[0])
6979+        elif isinstance(value, datetime.time):
6980+            if not is_input:
6981+                return date_format(value, 'TIME_FORMAT')
6982+            else:
6983+                return value.strftime(getformat('TIME_INPUT_FORMATS')[0])
6984+    return value
6985+
6986Index: django/contrib/admin/media/js/calendar.js
6987===================================================================
6988--- django/contrib/admin/media/js/calendar.js   (.../trunk)     (revision 11464)
6989+++ django/contrib/admin/media/js/calendar.js   (.../branches/soc2009/i18n-improvements)        (revision 11464)
6990@@ -25,6 +25,7 @@
6991 var CalendarNamespace = {
6992     monthsOfYear: gettext('January February March April May June July August September October November December').split(' '),
6993     daysOfWeek: gettext('S M T W T F S').split(' '),
6994+    firstDayOfWeek: parseInt(gettext('FIRST_DAY_OF_WEEK')),
6995     isLeapYear: function(year) {
6996         return (((year % 4)==0) && ((year % 100)!=0) || ((year % 400)==0));
6997     },
6998@@ -56,10 +57,10 @@
6999         // Draw days-of-week header
7000         var tableRow = quickElement('tr', tableBody);
7001         for (var i = 0; i < 7; i++) {
7002-            quickElement('th', tableRow, CalendarNamespace.daysOfWeek[i]);
7003+            quickElement('th', tableRow, CalendarNamespace.daysOfWeek[(i + CalendarNamespace.firstDayOfWeek) % 7]);
7004         }
7005 
7006-        var startingPos = new Date(year, month-1, 1).getDay();
7007+        var startingPos = new Date(year, month-1, 1 - CalendarNamespace.firstDayOfWeek).getDay();
7008         var days = CalendarNamespace.getDaysInMonth(month, year);
7009 
7010         // Draw blanks before first of month
7011Index: django/contrib/admin/templatetags/admin_list.py
7012===================================================================
7013--- django/contrib/admin/templatetags/admin_list.py     (.../trunk)     (revision 11464)
7014+++ django/contrib/admin/templatetags/admin_list.py     (.../branches/soc2009/i18n-improvements)        (revision 11464)
7015@@ -3,11 +3,11 @@
7016 from django.contrib.admin.views.main import ORDER_VAR, ORDER_TYPE_VAR, PAGE_VAR, SEARCH_VAR
7017 from django.core.exceptions import ObjectDoesNotExist
7018 from django.db import models
7019-from django.utils import dateformat
7020+from django.utils import formats
7021 from django.utils.html import escape, conditional_escape
7022 from django.utils.text import capfirst
7023 from django.utils.safestring import mark_safe
7024-from django.utils.translation import get_date_formats, get_partial_date_formats, ugettext as _
7025+from django.utils.translation import ugettext as _
7026 from django.utils.encoding import smart_unicode, smart_str, force_unicode
7027 from django.template import Library
7028 import datetime
7029@@ -184,25 +184,24 @@
7030             # Dates and times are special: They're formatted in a certain way.
7031             elif isinstance(f, models.DateField) or isinstance(f, models.TimeField):
7032                 if field_val:
7033-                    (date_format, datetime_format, time_format) = get_date_formats()
7034-                    if isinstance(f, models.DateTimeField):
7035-                        result_repr = capfirst(dateformat.format(field_val, datetime_format))
7036-                    elif isinstance(f, models.TimeField):
7037-                        result_repr = capfirst(dateformat.time_format(field_val, time_format))
7038-                    else:
7039-                        result_repr = capfirst(dateformat.format(field_val, date_format))
7040+                    result_repr = formats.localize(field_val)
7041                 else:
7042                     result_repr = EMPTY_CHANGELIST_VALUE
7043+            elif isinstance(f, models.DecimalField):
7044+                if field_val:
7045+                    result_repr = formats.number_format(field_val, f.decimal_places)
7046+                else:
7047+                    result_repr = EMPTY_CHANGELIST_VALUE
7048                 row_class = ' class="nowrap"'
7049+            elif isinstance(f, models.FloatField):
7050+                if field_val:
7051+                    result_repr = formats.number_format(field_val)
7052+                else:
7053+                    result_repr = EMPTY_CHANGELIST_VALUE
7054+                row_class = ' class="nowrap"'
7055             # Booleans are special: We use images.
7056             elif isinstance(f, models.BooleanField) or isinstance(f, models.NullBooleanField):
7057                 result_repr = _boolean_icon(field_val)
7058-            # DecimalFields are special: Zero-pad the decimals.
7059-            elif isinstance(f, models.DecimalField):
7060-                if field_val is not None:
7061-                    result_repr = ('%%.%sf' % f.decimal_places) % field_val
7062-                else:
7063-                    result_repr = EMPTY_CHANGELIST_VALUE
7064             # Fields with choices are special: Use the representation
7065             # of the choice.
7066             elif f.flatchoices:
7067@@ -263,7 +262,6 @@
7068         year_lookup = cl.params.get(year_field)
7069         month_lookup = cl.params.get(month_field)
7070         day_lookup = cl.params.get(day_field)
7071-        year_month_format, month_day_format = get_partial_date_formats()
7072 
7073         link = lambda d: mark_safe(cl.get_query_string(d, [field_generic]))
7074 
7075@@ -273,9 +271,9 @@
7076                 'show': True,
7077                 'back': {
7078                     'link': link({year_field: year_lookup, month_field: month_lookup}),
7079-                    'title': dateformat.format(day, year_month_format)
7080+                    'title': capfirst(formats.date_format(day, 'YEAR_MONTH_FORMAT'))
7081                 },
7082-                'choices': [{'title': dateformat.format(day, month_day_format)}]
7083+                'choices': [{'title': capfirst(formats.date_format(day, 'MONTH_DAY_FORMAT'))}]
7084             }
7085         elif year_lookup and month_lookup:
7086             days = cl.query_set.filter(**{year_field: year_lookup, month_field: month_lookup}).dates(field_name, 'day')
7087@@ -287,7 +285,7 @@
7088                 },
7089                 'choices': [{
7090                     'link': link({year_field: year_lookup, month_field: month_lookup, day_field: day.day}),
7091-                    'title': dateformat.format(day, month_day_format)
7092+                    'title': capfirst(formats.date_format(day, 'MONTH_DAY_FORMAT'))
7093                 } for day in days]
7094             }
7095         elif year_lookup:
7096@@ -300,7 +298,7 @@
7097                 },
7098                 'choices': [{
7099                     'link': link({year_field: year_lookup, month_field: month.month}),
7100-                    'title': dateformat.format(month, year_month_format)
7101+                    'title': capfirst(formats.date_format(month, 'YEAR_MONTH_FORMAT'))
7102                 } for month in months]
7103             }
7104         else:
7105Index: django/contrib/admin/templates/admin/object_history.html
7106===================================================================
7107--- django/contrib/admin/templates/admin/object_history.html    (.../trunk)     (revision 11464)
7108+++ django/contrib/admin/templates/admin/object_history.html    (.../branches/soc2009/i18n-improvements)        (revision 11464)
7109@@ -27,7 +27,7 @@
7110         <tbody>
7111         {% for action in action_list %}
7112         <tr>
7113-            <th scope="row">{{ action.action_time|date:_("DATETIME_FORMAT") }}</th>
7114+            <th scope="row">{{ action.action_time|date }}</th>
7115             <td>{{ action.user.username }}{% if action.user.get_full_name %} ({{ action.user.get_full_name }}){% endif %}</td>
7116             <td>{{ action.change_message }}</td>
7117         </tr>
7118Index: django/contrib/databrowse/datastructures.py
7119===================================================================
7120--- django/contrib/databrowse/datastructures.py (.../trunk)     (revision 11464)
7121+++ django/contrib/databrowse/datastructures.py (.../branches/soc2009/i18n-improvements)        (revision 11464)
7122@@ -4,9 +4,8 @@
7123 """
7124 
7125 from django.db import models
7126-from django.utils import dateformat
7127+from django.utils import formats
7128 from django.utils.text import capfirst
7129-from django.utils.translation import get_date_formats
7130 from django.utils.encoding import smart_unicode, smart_str, iri_to_uri
7131 from django.utils.safestring import mark_safe
7132 from django.db.models.query import QuerySet
7133@@ -156,13 +155,12 @@
7134             objs = dict(self.field.choices).get(self.raw_value, EMPTY_VALUE)
7135         elif isinstance(self.field, models.DateField) or isinstance(self.field, models.TimeField):
7136             if self.raw_value:
7137-                date_format, datetime_format, time_format = get_date_formats()
7138                 if isinstance(self.field, models.DateTimeField):
7139-                    objs = capfirst(dateformat.format(self.raw_value, datetime_format))
7140+                    objs = capfirst(formats.date_format(self.raw_value, 'DATETIME_FORMAT'))
7141                 elif isinstance(self.field, models.TimeField):
7142-                    objs = capfirst(dateformat.time_format(self.raw_value, time_format))
7143+                    objs = capfirst(formats.date_format(self.raw_value, 'TIME_FORMAT'))
7144                 else:
7145-                    objs = capfirst(dateformat.format(self.raw_value, date_format))
7146+                    objs = capfirst(formats.date_format(self.raw_value, 'DATE_FORMAT'))
7147             else:
7148                 objs = EMPTY_VALUE
7149         elif isinstance(self.field, models.BooleanField) or isinstance(self.field, models.NullBooleanField):
7150Index: django/template/defaultfilters.py
7151===================================================================
7152--- django/template/defaultfilters.py   (.../trunk)     (revision 11464)
7153+++ django/template/defaultfilters.py   (.../branches/soc2009/i18n-improvements)        (revision 11464)
7154@@ -18,6 +18,7 @@
7155 from django.utils.translation import ugettext, ungettext
7156 from django.utils.encoding import force_unicode, iri_to_uri
7157 from django.utils.safestring import mark_safe, SafeData
7158+from django.utils.formats import date_format, number_format
7159 
7160 register = Library()
7161 
7162@@ -166,14 +167,14 @@
7163         return input_val
7164 
7165     if not m and p < 0:
7166-        return mark_safe(u'%d' % (int(d)))
7167+        return mark_safe(number_format(u'%d' % (int(d)), 0))
7168 
7169     if p == 0:
7170         exp = Decimal(1)
7171     else:
7172         exp = Decimal('1.0') / (Decimal(10) ** abs(p))
7173     try:
7174-        return mark_safe(u'%s' % str(d.quantize(exp, ROUND_HALF_UP)))
7175+        return mark_safe(number_format(u'%s' % str(d.quantize(exp, ROUND_HALF_UP)), abs(p)))
7176     except InvalidOperation:
7177         return input_val
7178 floatformat.is_safe = True
7179@@ -684,9 +685,12 @@
7180     if arg is None:
7181         arg = settings.DATE_FORMAT
7182     try:
7183-        return format(value, arg)
7184+        return date_format(value, arg)
7185     except AttributeError:
7186-        return ''
7187+        try:
7188+            return format(value, arg)
7189+        except AttributeError:
7190+            return ''
7191 date.is_safe = False
7192 
7193 def time(value, arg=None):
7194@@ -697,9 +701,12 @@
7195     if arg is None:
7196         arg = settings.TIME_FORMAT
7197     try:
7198-        return time_format(value, arg)
7199+        return date_format(value, arg)
7200     except AttributeError:
7201-        return ''
7202+        try:
7203+            return time_format(value, arg)
7204+        except AttributeError:
7205+            return ''
7206 time.is_safe = False
7207 
7208 def timesince(value, arg=None):
7209Index: django/template/__init__.py
7210===================================================================
7211--- django/template/__init__.py (.../trunk)     (revision 11464)
7212+++ django/template/__init__.py (.../branches/soc2009/i18n-improvements)        (revision 11464)
7213@@ -60,6 +60,7 @@
7214 from django.utils.encoding import smart_unicode, force_unicode, smart_str
7215 from django.utils.translation import ugettext as _
7216 from django.utils.safestring import SafeData, EscapeData, mark_safe, mark_for_escaping
7217+from django.utils.formats import localize
7218 from django.utils.html import escape
7219 
7220 __all__ = ('Template', 'Context', 'RequestContext', 'compile_string')
7221@@ -808,6 +809,7 @@
7222     means escaping, if required, and conversion to a unicode object. If value
7223     is a string, it is expected to have already been translated.
7224     """
7225+    value = localize(value)
7226     value = force_unicode(value)
7227     if (context.autoescape and not isinstance(value, SafeData)) or isinstance(value, EscapeData):
7228         return escape(value)
7229Index: django/template/debug.py
7230===================================================================
7231--- django/template/debug.py    (.../trunk)     (revision 11464)
7232+++ django/template/debug.py    (.../branches/soc2009/i18n-improvements)        (revision 11464)
7233@@ -2,6 +2,7 @@
7234 from django.utils.encoding import force_unicode
7235 from django.utils.html import escape
7236 from django.utils.safestring import SafeData, EscapeData
7237+from django.utils.formats import localize
7238 
7239 class DebugLexer(Lexer):
7240     def __init__(self, template_string, origin):
7241@@ -84,7 +85,9 @@
7242 class DebugVariableNode(VariableNode):
7243     def render(self, context):
7244         try:
7245-            output = force_unicode(self.filter_expression.resolve(context))
7246+            output = self.filter_expression.resolve(context)
7247+            output = localize(output)
7248+            output = force_unicode(output)
7249         except TemplateSyntaxError, e:
7250             if not hasattr(e, 'source'):
7251                 e.source = self.source
7252Index: tests/regressiontests/i18n/tests.py
7253===================================================================
7254--- tests/regressiontests/i18n/tests.py (.../trunk)     (revision 11464)
7255+++ tests/regressiontests/i18n/tests.py (.../branches/soc2009/i18n-improvements)        (revision 11464)
7256@@ -64,6 +64,283 @@
7257 'as'
7258 >>> print s
7259 Password
7260+
7261+Translations on files with mac or dos end of lines will be converted
7262+to unix eof in .po catalogs, and they have to match when retrieved
7263+
7264+>>> from django.utils.translation.trans_real import translation
7265+>>> ca_translation = translation('ca')
7266+>>> ca_translation._catalog[u'Mac\nEOF\n'] = u'Catalan Mac\nEOF\n'
7267+>>> ca_translation._catalog[u'Win\nEOF\n'] = u'Catalan Win\nEOF\n'
7268+>>> activate('ca')
7269+>>> ugettext(u'Mac\rEOF\r')
7270+u'Catalan Mac\nEOF\n'
7271+>>> ugettext(u'Win\r\nEOF\r\n')
7272+u'Catalan Win\nEOF\n'
7273+>>> deactivate()
7274+
7275+Localization of dates and numbers
7276+
7277+>>> import datetime
7278+>>> import decimal
7279+>>> from django.conf import settings
7280+>>> from django.utils.formats import getformat, date_format, number_format, localize
7281+>>> from django.utils.numberformat import format
7282+>>> from django import template
7283+>>> from django import forms
7284+>>> from django.forms.extras import SelectDateWidget
7285+
7286+>>> old_use_i18n = settings.USE_I18N
7287+>>> old_use_format_i18n = settings.USE_FORMAT_I18N
7288+>>> old_use_thousand_separator = settings.USE_THOUSAND_SEPARATOR
7289+
7290+>>> n = decimal.Decimal('66666.666')
7291+>>> f = 99999.999
7292+>>> d = datetime.date(2009, 12, 31)
7293+>>> dt = datetime.datetime(2009, 12, 31, 20, 50)
7294+>>> ctxt = template.Context({'n': n, 'd': d, 'dt': dt, 'f': f})
7295+>>> class I18nForm(forms.Form):
7296+...     decimal_field = forms.DecimalField()
7297+...     float_field = forms.FloatField()
7298+...     date_field = forms.DateField()
7299+...     datetime_field = forms.DateTimeField()
7300+...     time_field = forms.TimeField()
7301+>>> class SelectDateForm(forms.Form):
7302+...     date_field = forms.DateField(widget=SelectDateWidget)
7303+
7304+Locale independent
7305+
7306+>>> settings.USE_FORMAT_I18N = True
7307+>>> settings.USE_THOUSAND_SEPARATOR = False
7308+>>> format(n, decimal_sep='.', decimal_pos=2, grouping=3, thousand_sep=',')
7309+u'66666.66'
7310+>>> format(n, decimal_sep='A', decimal_pos=1, grouping=1, thousand_sep='B')
7311+u'66666A6'
7312+>>> settings.USE_THOUSAND_SEPARATOR = True
7313+>>> format(n, decimal_sep='.', decimal_pos=2, grouping=3, thousand_sep=',')
7314+u'66,666.66'
7315+>>> format(n, decimal_sep='A', decimal_pos=1, grouping=1, thousand_sep='B')
7316+u'6B6B6B6B6A6'
7317+
7318+Catalan locale with format i18n disabled
7319+translations will be used, but not formats
7320+
7321+>>> settings.USE_FORMAT_I18N = False
7322+>>> activate('ca')
7323+>>> getformat('DATE_FORMAT')
7324+'N j, Y'
7325+>>> getformat('FIRST_DAY_OF_WEEK')
7326+0
7327+>>> getformat('DECIMAL_SEPARATOR')
7328+'.'
7329+>>> date_format(d)
7330+u'des. 31, 2009'
7331+>>> date_format(d, 'YEAR_MONTH_FORMAT')
7332+u'desembre 2009'
7333+>>> date_format(dt, 'SHORT_DATETIME_FORMAT')
7334+u'12/31/2009 8:50 p.m.'
7335+>>> localize('No localizable')
7336+'No localizable'
7337+>>> localize(n)
7338+Decimal('66666.666')
7339+>>> localize(f)
7340+99999.999
7341+>>> localize(d)
7342+datetime.date(2009, 12, 31)
7343+>>> localize(dt)
7344+datetime.datetime(2009, 12, 31, 20, 50)
7345+>>> template.Template('{{ n }}').render(ctxt)
7346+u'66666.666'
7347+>>> template.Template('{{ f }}').render(ctxt)
7348+u'99999.999'
7349+>>> template.Template('{{ d }}').render(ctxt)
7350+u'2009-12-31'
7351+>>> template.Template('{{ dt }}').render(ctxt)
7352+u'2009-12-31 20:50:00'
7353+>>> template.Template('{{ n|floatformat:2 }}').render(ctxt)
7354+u'66666.67'
7355+>>> template.Template('{{ f|floatformat }}').render(ctxt)
7356+u'100000.0'
7357+>>> template.Template('{{ d|date:"SHORT_DATE_FORMAT" }}').render(ctxt)
7358+u'12/31/2009'
7359+>>> template.Template('{{ dt|date:"SHORT_DATETIME_FORMAT" }}').render(ctxt)
7360+u'12/31/2009 8:50 p.m.'
7361+>>> form = I18nForm({'decimal_field': u'66666,666', 'float_field': u'99999,999', 'date_field': u'31/12/2009', 'datetime_field': u'31/12/2009 20:50', 'time_field': u'20:50'})
7362+>>> form.is_valid()
7363+False
7364+>>> form.errors['float_field']
7365+[u'Introdu\xefu un n\xfamero.']
7366+>>> form.errors['decimal_field']
7367+[u'Introdu\xefu un n\xfamero.']
7368+>>> form.errors['date_field']
7369+[u'Introdu\xefu una data v\xe0lida.']
7370+>>> form.errors['datetime_field']
7371+[u'Introdu\xefu una data/hora v\xe0lides.']
7372+>>> form2 = SelectDateForm({'date_field_month': u'12', 'date_field_day': u'31', 'date_field_year': u'2009'})
7373+>>> form2.is_valid()
7374+True
7375+>>> form2.cleaned_data['date_field']
7376+datetime.date(2009, 12, 31)
7377+>>> SelectDateWidget().render('mydate', datetime.date(2009, 12, 31))
7378+u'<select name="mydate_month" id="id_mydate_month">\n<option value="1">gener</option>\n<option value="2">febrer</option>\n<option value="3">mar\xe7</option>\n<option value="4">abril</option>\n<option value="5">maig</option>\n<option value="6">juny</option>\n<option value="7">juliol</option>\n<option value="8">agost</option>\n<option value="9">setembre</option>\n<option value="10">octubre</option>\n<option value="11">novembre</option>\n<option value="12" selected="selected">desembre</option>\n</select>\n<select name="mydate_day" id="id_mydate_day">\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31" selected="selected">31</option>\n</select>\n<select name="mydate_year" id="id_mydate_year">\n<option value="2009" selected="selected">2009</option>\n<option value="2010">2010</option>\n<option value="2011">2011</option>\n<option value="2012">2012</option>\n<option value="2013">2013</option>\n<option value="2014">2014</option>\n<option value="2015">2015</option>\n<option value="2016">2016</option>\n<option value="2017">2017</option>\n<option value="2018">2018</option>\n</select>'
7379+
7380+Catalan locale
7381+
7382+>>> settings.USE_FORMAT_I18N = True
7383+>>> activate('ca')
7384+>>> getformat('DATE_FORMAT')
7385+'j \\de F \\de Y'
7386+>>> getformat('FIRST_DAY_OF_WEEK')
7387+1
7388+>>> getformat('DECIMAL_SEPARATOR')
7389+','
7390+>>> date_format(d)
7391+u'31 de desembre de 2009'
7392+>>> date_format(d, 'YEAR_MONTH_FORMAT')
7393+u'desembre del 2009'
7394+>>> date_format(dt, 'SHORT_DATETIME_FORMAT')
7395+u'31/12/2009 20:50'
7396+>>> localize('No localizable')
7397+'No localizable'
7398+>>> settings.USE_THOUSAND_SEPARATOR = True
7399+>>> localize(n)
7400+u'66.666,666'
7401+>>> localize(f)
7402+u'99.999,999'
7403+>>> settings.USE_THOUSAND_SEPARATOR = False
7404+>>> localize(n)
7405+u'66666,666'
7406+>>> localize(f)
7407+u'99999,999'
7408+>>> localize(d)
7409+u'31 de desembre de 2009'
7410+>>> localize(dt)
7411+u'31 de desembre de 2009 a les 20:50'
7412+>>> settings.USE_THOUSAND_SEPARATOR = True
7413+>>> template.Template('{{ n }}').render(ctxt)
7414+u'66.666,666'
7415+>>> template.Template('{{ f }}').render(ctxt)
7416+u'99.999,999'
7417+>>> settings.USE_THOUSAND_SEPARATOR = False
7418+>>> template.Template('{{ n }}').render(ctxt)
7419+u'66666,666'
7420+>>> template.Template('{{ f }}').render(ctxt)
7421+u'99999,999'
7422+>>> template.Template('{{ d }}').render(ctxt)
7423+u'31 de desembre de 2009'
7424+>>> template.Template('{{ dt }}').render(ctxt)
7425+u'31 de desembre de 2009 a les 20:50'
7426+>>> template.Template('{{ n|floatformat:2 }}').render(ctxt)
7427+u'66666,67'
7428+>>> template.Template('{{ f|floatformat }}').render(ctxt)
7429+u'100000,0'
7430+>>> template.Template('{{ d|date:"SHORT_DATE_FORMAT" }}').render(ctxt)
7431+u'31/12/2009'
7432+>>> template.Template('{{ dt|date:"SHORT_DATETIME_FORMAT" }}').render(ctxt)
7433+u'31/12/2009 20:50'
7434+>>> form = I18nForm({'decimal_field': u'66666,666', 'float_field': u'99999,999', 'date_field': u'31/12/2009', 'datetime_field': u'31/12/2009 20:50', 'time_field': u'20:50'})
7435+>>> form.is_valid()
7436+True
7437+>>> form.cleaned_data['decimal_field']
7438+Decimal('66666.666')
7439+>>> form.cleaned_data['float_field']
7440+99999.999
7441+>>> form.cleaned_data['date_field']
7442+datetime.date(2009, 12, 31)
7443+>>> form.cleaned_data['datetime_field']
7444+datetime.datetime(2009, 12, 31, 20, 50)
7445+>>> form.cleaned_data['time_field']
7446+datetime.time(20, 50)
7447+>>> form2 = SelectDateForm({'date_field_month': u'12', 'date_field_day': u'31', 'date_field_year': u'2009'})
7448+>>> form2.is_valid()
7449+True
7450+>>> form2.cleaned_data['date_field']
7451+datetime.date(2009, 12, 31)
7452+>>> SelectDateWidget().render('mydate', datetime.date(2009, 12, 31))
7453+u'<select name="mydate_day" id="id_mydate_day">\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31" selected="selected">31</option>\n</select>\n<select name="mydate_month" id="id_mydate_month">\n<option value="1">gener</option>\n<option value="2">febrer</option>\n<option value="3">mar\xe7</option>\n<option value="4">abril</option>\n<option value="5">maig</option>\n<option value="6">juny</option>\n<option value="7">juliol</option>\n<option value="8">agost</option>\n<option value="9">setembre</option>\n<option value="10">octubre</option>\n<option value="11">novembre</option>\n<option value="12" selected="selected">desembre</option>\n</select>\n<select name="mydate_year" id="id_mydate_year">\n<option value="2009" selected="selected">2009</option>\n<option value="2010">2010</option>\n<option value="2011">2011</option>\n<option value="2012">2012</option>\n<option value="2013">2013</option>\n<option value="2014">2014</option>\n<option value="2015">2015</option>\n<option value="2016">2016</option>\n<option value="2017">2017</option>\n<option value="2018">2018</option>\n</select>'
7454+
7455+English locale
7456+
7457+>>> settings.USE_FORMAT_I18N = True
7458+>>> activate('en')
7459+>>> getformat('DATE_FORMAT')
7460+'N j, Y'
7461+>>> getformat('FIRST_DAY_OF_WEEK')
7462+0
7463+>>> getformat('DECIMAL_SEPARATOR')
7464+'.'
7465+>>> date_format(d)
7466+u'Dec. 31, 2009'
7467+>>> date_format(d, 'YEAR_MONTH_FORMAT')
7468+u'December 2009'
7469+>>> date_format(dt, 'SHORT_DATETIME_FORMAT')
7470+u'12/31/2009 8:50 p.m.'
7471+>>> localize('No localizable')
7472+'No localizable'
7473+>>> settings.USE_THOUSAND_SEPARATOR = True
7474+>>> localize(n)
7475+u'66,666.666'
7476+>>> localize(f)
7477+u'99,999.999'
7478+>>> settings.USE_THOUSAND_SEPARATOR = False
7479+>>> localize(n)
7480+u'66666.666'
7481+>>> localize(f)
7482+u'99999.999'
7483+>>> localize(d)
7484+u'Dec. 31, 2009'
7485+>>> localize(dt)
7486+u'Dec. 31, 2009, 8:50 p.m.'
7487+>>> settings.USE_THOUSAND_SEPARATOR = True
7488+>>> template.Template('{{ n }}').render(ctxt)
7489+u'66,666.666'
7490+>>> template.Template('{{ f }}').render(ctxt)
7491+u'99,999.999'
7492+>>> settings.USE_THOUSAND_SEPARATOR = False
7493+>>> template.Template('{{ n }}').render(ctxt)
7494+u'66666.666'
7495+>>> template.Template('{{ f }}').render(ctxt)
7496+u'99999.999'
7497+>>> template.Template('{{ d }}').render(ctxt)
7498+u'Dec. 31, 2009'
7499+>>> template.Template('{{ dt }}').render(ctxt)
7500+u'Dec. 31, 2009, 8:50 p.m.'
7501+>>> template.Template('{{ n|floatformat:2 }}').render(ctxt)
7502+u'66666.67'
7503+>>> template.Template('{{ f|floatformat }}').render(ctxt)
7504+u'100000.0'
7505+>>> template.Template('{{ d|date:"SHORT_DATE_FORMAT" }}').render(ctxt)
7506+u'12/31/2009'
7507+>>> template.Template('{{ dt|date:"SHORT_DATETIME_FORMAT" }}').render(ctxt)
7508+u'12/31/2009 8:50 p.m.'
7509+>>> form = I18nForm({'decimal_field': u'66666.666', 'float_field': u'99999.999', 'date_field': u'12/31/2009', 'datetime_field': u'12/31/2009 20:50', 'time_field': u'20:50'})
7510+>>> form.is_valid()
7511+True
7512+>>> form.cleaned_data['decimal_field']
7513+Decimal('66666.666')
7514+>>> form.cleaned_data['float_field']
7515+99999.999
7516+>>> form.cleaned_data['date_field']
7517+datetime.date(2009, 12, 31)
7518+>>> form.cleaned_data['datetime_field']
7519+datetime.datetime(2009, 12, 31, 20, 50)
7520+>>> form.cleaned_data['time_field']
7521+datetime.time(20, 50)
7522+>>> form2 = SelectDateForm({'date_field_month': u'12', 'date_field_day': u'31', 'date_field_year': u'2009'})
7523+>>> form2.is_valid()
7524+True
7525+>>> form2.cleaned_data['date_field']
7526+datetime.date(2009, 12, 31)
7527+>>> SelectDateWidget().render('mydate', datetime.date(2009, 12, 31))
7528+u'<select name="mydate_month" id="id_mydate_month">\n<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12" selected="selected">December</option>\n</select>\n<select name="mydate_day" id="id_mydate_day">\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31" selected="selected">31</option>\n</select>\n<select name="mydate_year" id="id_mydate_year">\n<option value="2009" selected="selected">2009</option>\n<option value="2010">2010</option>\n<option value="2011">2011</option>\n<option value="2012">2012</option>\n<option value="2013">2013</option>\n<option value="2014">2014</option>\n<option value="2015">2015</option>\n<option value="2016">2016</option>\n<option value="2017">2017</option>\n<option value="2018">2018</option>\n</select>'
7529+
7530+Restore defaults
7531+
7532+>>> settings.USE_I18N = old_use_i18n
7533+>>> settings.USE_FORMAT_I18N = old_use_format_i18n
7534+>>> settings.USE_THOUSAND_SEPARATOR = old_use_thousand_separator
7535+>>> deactivate()
7536+
7537 """
7538 
7539 __test__ = {
7540Index: docs/topics/i18n.txt
7541===================================================================
7542--- docs/topics/i18n.txt        (.../trunk)     (revision 11464)
7543+++ docs/topics/i18n.txt        (.../branches/soc2009/i18n-improvements)        (revision 11464)
7544@@ -4,20 +4,21 @@
7545 Internationalization
7546 ====================
7547 
7548-Django has full support for internationalization of text in code and templates.
7549-Here's how it works.
7550+Django has full support for internationalization, including translation
7551+capabilities of text in code and templates, and format localization for
7552+dates and numbers. Here's how it works.
7553 
7554 Overview
7555 ========
7556 
7557 The goal of internationalization is to allow a single Web application to offer
7558-its content and functionality in multiple languages.
7559+its content and functionality in multiple languages and locales.
7560 
7561-You, the Django developer, can accomplish this goal by adding a minimal amount
7562-of hooks to your Python code and templates. These hooks are called
7563-**translation strings**. They tell Django: "This text should be translated into
7564-the end user's language, if a translation for this text is available in that
7565-language."
7566+For text translation, you, the Django developer, can accomplish this goal by
7567+adding a minimal amount of hooks to your Python code and templates. These hooks
7568+are called **translation strings**. They tell Django: "This text should be
7569+translated into the end user's language, if a translation for this text is
7570+available in that language."
7571 
7572 Django takes care of using these hooks to translate Web apps, on the fly,
7573 according to users' language preferences.
7574@@ -29,6 +30,12 @@
7575     * It uses these hooks to translate Web apps for particular users according
7576       to their language preferences.
7577 
7578+For format localization, it's just necessary to set
7579+:setting:`USE_FORMAT_I18N = True <USE_FORMAT_I18N>` in your settings file. If
7580+:settings:`USE_FORMAT_I18N` is set to ``True``, then Django will display
7581+numbers and dates in the format of the current locale. That includes field
7582+representation on templates, and allowed input formats on the admin.
7583+
7584 If you don't need internationalization in your app
7585 ==================================================
7586 
7587@@ -1074,3 +1081,53 @@
7588 translation utilities with a ``gettext`` package if the command ``xgettext
7589 --version`` entered at a Windows command prompt causes a popup window saying
7590 "xgettext.exe has generated errors and will be closed by Windows".
7591+
7592+Format localization
7593+===================
7594+
7595+Django's formatting system is disabled by default. To enable it, it's necessay
7596+to set :setting:`USE_FORMAT_I18N = True <USE_FORMAT_I18N>` in your settings
7597+file.  Note that :setting:`USE_FORMAT_I18N` requires `USE_I18N` to be ``True``.
7598+
7599+When using Django's formatting system, dates and numbers on templates will be
7600+displayed using the format specified for the current locale. That means, two
7601+users accessing the same content, but in different language, will see date and
7602+number fields formatted in different ways, depending on the format for their
7603+current locale.
7604+
7605+Django will also use localized formats when parsing data in forms. That means
7606+Django uses different formats for different locales when guessing the format
7607+used by the user when inputting data on forms. Note that Django uses different
7608+formats for displaying data, and for parsing it.
7609+
7610+Creating custom format files
7611+----------------------------
7612+
7613+Django provides format definitions for many locales, but sometimes you could
7614+want to create your own ones, because a format files doesn't exist for your
7615+locale, or because you want to overwrite some of the values.
7616+
7617+To use custom formats, first thing to do, is to specify the path where you'll
7618+place format files. To do that, just set :setting:`FORMAT_MODULE_PATH` setting
7619+to the the path (in the format ``'foo.bar.baz``) where format files will
7620+exists.
7621+
7622+Files are not placed directly in this directory, but in a directory named as
7623+the locale. File must be named ``formats.py``.
7624+
7625+For customazing English formats, a structure like this would be needed::
7626+
7627+    mysite/
7628+        formats/
7629+            __init__.py
7630+            en/
7631+                __init__.py
7632+                formats.py
7633+
7634+where :file:`formats.py` contains custom format definitions. For example::
7635+
7636+    THOUSAND_SEPARATOR = ' '
7637+
7638+to use a space as thousand separator, instead of the default for English,
7639+comma.
7640+
7641Index: docs/ref/settings.txt
7642===================================================================
7643--- docs/ref/settings.txt       (.../trunk)     (revision 11464)
7644+++ docs/ref/settings.txt       (.../branches/soc2009/i18n-improvements)        (revision 11464)
7645@@ -243,13 +243,33 @@
7646 
7647 Default: ``'N j, Y'`` (e.g. ``Feb. 4, 2003``)
7648 
7649-The default formatting to use for date fields on Django admin change-list
7650-pages -- and, possibly, by other parts of the system. See
7651-:ttag:`allowed date format strings <now>`.
7652+The default formatting to use for date fields in any part of the system.
7653+Note that if ``USE_FORMAT_I18N`` is set to ``True``, then locale format will
7654+be applied. See :ttag:`allowed date format strings <now>`.
7655 
7656-See also ``DATETIME_FORMAT``, ``TIME_FORMAT``, ``YEAR_MONTH_FORMAT``
7657-and ``MONTH_DAY_FORMAT``.
7658+See also ``DATETIME_FORMAT``, ``TIME_FORMAT`` and ``SHORT_DATE_FORMAT``.
7659 
7660+.. setting:: DATE_INPUT_FORMATS
7661+
7662+DATE_INPUT_FORMATS
7663+------------------
7664+
7665+Default::
7666+
7667+    ('%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y',
7668+    '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y',
7669+    '%B %d, %Y', '%d %B %Y', '%d %B, %Y')
7670+
7671+A tuple of formats that will be accepted when inputting data on a date
7672+field. Formats will be tried in order, using the first valid.
7673+Note that these format strings are specified in Python's datetime_ module
7674+syntax, that is different from the one used by Django for formatting dates
7675+to be displayed.
7676+
7677+See also ``DATETIME_INPUT_FORMATS`` and ``TIME_INPUT_FORMATS``.
7678+
7679+.. _datetime: http://docs.python.org/library/datetime.html#strftime-behavior
7680+
7681 .. setting:: DATETIME_FORMAT
7682 
7683 DATETIME_FORMAT
7684@@ -257,13 +277,33 @@
7685 
7686 Default: ``'N j, Y, P'`` (e.g. ``Feb. 4, 2003, 4 p.m.``)
7687 
7688-The default formatting to use for datetime fields on Django admin change-list
7689-pages -- and, possibly, by other parts of the system. See
7690-:ttag:`allowed date format strings <now>`.
7691+The default formatting to use for datetime fields in any part of the system.
7692+Note that if ``USE_FORMAT_I18N`` is set to ``True``, then locale format will
7693+be applied. See :ttag:`allowed date format strings <now>`.
7694 
7695-See also ``DATE_FORMAT``, ``DATETIME_FORMAT``, ``TIME_FORMAT``,
7696-``YEAR_MONTH_FORMAT`` and ``MONTH_DAY_FORMAT``.
7697+See also ``DATE_FORMAT``, ``TIME_FORMAT`` and ``SHORT_DATETIME_FORMAT``.
7698 
7699+.. setting:: DATETIME_INPUT_FORMATS
7700+
7701+DATETIME_INPUT_FORMATS
7702+----------------------
7703+
7704+Default::
7705+
7706+    ('%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M', '%Y-%m-%d',
7707+    '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M', '%m/%d/%Y',
7708+    '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M', '%m/%d/%y')
7709+
7710+A tuple of formats that will be accepted when inputting data on a datetime
7711+field. Formats will be tried in order, using the first valid.
7712+Note that these format strings are specified in Python's datetime_ module
7713+syntax, that is different from the one used by Django for formatting dates
7714+to be displayed.
7715+
7716+See also ``DATE_INPUT_FORMATS`` and ``TIME_INPUT_FORMATS``.
7717+
7718+.. _datetime: http://docs.python.org/library/datetime.html#strftime-behavior
7719+
7720 .. setting:: DEBUG
7721 
7722 DEBUG
7723@@ -302,7 +342,15 @@
7724 be useful for some test setups, and should never be used on a live
7725 site.
7726 
7727+.. setting:: DECIMAL_SEPARATOR
7728 
7729+DECIMAL_SEPARATOR
7730+-----------------
7731+
7732+Default: ``'.'`` (Dot)
7733+
7734+Default decimal separator used when formatting decimal numbers.
7735+
7736 .. setting:: DEFAULT_CHARSET
7737 
7738 DEFAULT_CHARSET
7739@@ -528,6 +576,21 @@
7740 
7741 .. _documentation for os.chmod: http://docs.python.org/lib/os-file-dir.html
7742 
7743+.. setting:: FIRST_DAY_OF_WEEK
7744+
7745+FIRST_DAY_OF_WEEK
7746+-----------------
7747+
7748+Default: ``0`` (Sunday)
7749+
7750+Number representing the first day of the week. This is specially useful
7751+when displaying a calendar. This value is only used when not using
7752+format internationalization, or when a format cannot be found for the
7753+current locale.
7754+
7755+The value must be an integer from 0 to 6, where 0 means Sunday, 1 means
7756+Monday and so on.
7757+
7758 .. setting:: FIXTURE_DIRS
7759 
7760 FIXTURE_DIRS
7761@@ -549,6 +612,34 @@
7762 the server-provided value of ``SCRIPT_NAME``, which may be a rewritten version
7763 of the preferred value or not supplied at all.
7764 
7765+.. setting:: FORMAT_MODULE_PATH
7766+
7767+FORMAT_MODULE_PATH
7768+------------------
7769+
7770+Default: ``None``
7771+
7772+A full Python path to a Python package that contains format definitions for
7773+project locales. If not ``None``, Django will check for a ``formats.py``
7774+file, under the directory named as the current locale, and will use the
7775+formats defined on this file.
7776+
7777+For example, if ``FORMAT_MODULE_PATH`` is set to ``mysite.formats``, and
7778+current language is ``en`` (English), Django will expect a directory tree
7779+like::
7780+
7781+    mysite/
7782+        formats/
7783+            __init__.py
7784+            en/
7785+                __init__.py
7786+                formats.py
7787+
7788+Available formats are ``DATE_FORMAT``, ``TIME_FORMAT``, ``DATETIME_FORMAT``,
7789+``YEAR_MONTH_FORMAT``, ``MONTH_DAY_FORMAT``, ``SHORT_DATE_FORMAT``,
7790+``SHORT_DATETIME_FORMAT``, ``FIRST_DAY_OF_WEEK``, ``DECIMAL_SEPARATOR``,
7791+``THOUSAND_SEPARATOR`` and ``NUMBER_GROUPING``.
7792+
7793 .. setting:: IGNORABLE_404_ENDS
7794 
7795 IGNORABLE_404_ENDS
7796@@ -774,6 +865,21 @@
7797 See :ttag:`allowed date format strings <now>`. See also ``DATE_FORMAT``,
7798 ``DATETIME_FORMAT``, ``TIME_FORMAT`` and ``YEAR_MONTH_FORMAT``.
7799 
7800+.. setting:: NUMBER_GROUPING
7801+
7802+NUMBER_GROUPING
7803+----------------
7804+
7805+Default: ``0``
7806+
7807+Number of digits grouped together on the integer part of a number. Common use
7808+is to display a thousand separator. If this setting is ``0``, then, no grouping
7809+will be applied to the number. If this setting is greater than ``0`` then the
7810+setting ``THOUSAND_SEPARATOR`` will be used as the separator between those
7811+groups.
7812+
7813+See also ``THOUSAND_SEPARATOR``
7814+
7815 .. setting:: PREPEND_WWW
7816 
7817 PREPEND_WWW
7818@@ -965,6 +1071,32 @@
7819 Whether to save the session data on every request. See
7820 :ref:`topics-http-sessions`.
7821 
7822+.. setting:: SHORT_DATE_FORMAT
7823+
7824+SHORT_DATE_FORMAT
7825+-----------------
7826+
7827+Default: ``m/d/Y`` (e.g. ``12/31/2003``)
7828+
7829+An available formatting that can be used for date fields on templates.
7830+Note that if ``USE_FORMAT_I18N`` is set to ``True``, then locale format will
7831+be applied. See :ttag:`allowed date format strings <now>`.
7832+
7833+See also ``DATE_FORMAT`` and ``SHORT_DATETIME_FORMAT``.
7834+
7835+.. setting:: SHORT_DATETIME_FORMAT
7836+
7837+SHORT_DATETIME_FORMAT
7838+---------------------
7839+
7840+Default: ``m/d/Y P`` (e.g. ``12/31/2003 4 p.m.``)
7841+
7842+An available formatting that can be used for datetime fields on templates.
7843+Note that if ``USE_FORMAT_I18N`` is set to ``True``, then locale format will
7844+be applied. See :ttag:`allowed date format strings <now>`.
7845+
7846+See also ``DATE_FORMAT`` and ``SHORT_DATETIME_FORMAT``.
7847+
7848 .. setting:: SITE_ID
7849 
7850 SITE_ID
7851@@ -1110,6 +1242,18 @@
7852 
7853 .. _Testing Django Applications: ../testing/
7854 
7855+.. setting:: THOUSAND_SEPARATOR
7856+
7857+THOUSAND_SEPARATOR
7858+------------------
7859+
7860+Default ``,`` (Comma)
7861+
7862+Default thousand separator used when formatting numbers. This setting is
7863+used only when ``NUMBER_GROUPPING`` is set.
7864+
7865+See also ``NUMBER_GROUPPING``, ``DECIMAL_SEPARATOR``
7866+
7867 .. setting:: TIME_FORMAT
7868 
7869 TIME_FORMAT
7870@@ -1117,13 +1261,29 @@
7871 
7872 Default: ``'P'`` (e.g. ``4 p.m.``)
7873 
7874-The default formatting to use for time fields on Django admin change-list
7875-pages -- and, possibly, by other parts of the system. See
7876-:ttag:`allowed date format strings <now>`.
7877+The default formatting to use for time fields in any part of the system.
7878+Note that if ``USE_FORMAT_I18N`` is set to ``True``, then locale format will
7879+be applied. See :ttag:`allowed date format strings <now>`.
7880 
7881-See also ``DATE_FORMAT``, ``DATETIME_FORMAT``, ``TIME_FORMAT``,
7882-``YEAR_MONTH_FORMAT`` and ``MONTH_DAY_FORMAT``.
7883+See also ``DATE_FORMAT`` and ``DATETIME_FORMAT``.
7884 
7885+.. setting:: TIME_INPUT_FORMATS
7886+
7887+TIME_INPUT_FORMATS
7888+------------------
7889+
7890+Default: ``('%H:%M:%S', '%H:%M')``
7891+
7892+A tuple of formats that will be accepted when inputting data on a time
7893+field. Formats will be tried in order, using the first valid.
7894+Note that these format strings are specified in Python's datetime_ module
7895+syntax, that is different from the one used by Django for formatting dates
7896+to be displayed.
7897+
7898+See also ``DATE_INPUT_FORMATS`` and ``DATETIME_INPUT_FORMATS``.
7899+
7900+.. _datetime: http://docs.python.org/library/datetime.html#strftime-behavior
7901+
7902 .. setting:: TIME_ZONE
7903 
7904 TIME_ZONE
7905@@ -1177,6 +1337,20 @@
7906 bandwidth but slows down performance. This is only used if ``CommonMiddleware``
7907 is installed (see :ref:`topics-http-middleware`).
7908 
7909+.. setting:: USE_FORMAT_I18N
7910+
7911+USE_FORMAT_I18N
7912+---------------
7913+
7914+Default ``False``
7915+
7916+A boolean that specifies if data will be localized by default or not. If this is
7917+set to ``True``, Django will display numbers and dates using the format of the
7918+current locale. It is required to set ``USE_I18N`` to ``True`` to allow data
7919+format localization.
7920+
7921+See also ``USE_I18N``
7922+
7923 .. setting:: USE_I18N
7924 
7925 USE_I18N
7926@@ -1189,6 +1363,22 @@
7927 set to ``False``, Django will make some optimizations so as not to load the
7928 internationalization machinery.
7929 
7930+See also ``USE_FORMAT_I18N``
7931+
7932+.. setting:: USE_THOUSAND_SEPARATOR
7933+
7934+USE_THOUSAND_SEPARATOR
7935+----------------------
7936+
7937+Default ``False``
7938+
7939+A boolean that specifies wheter to display numbers using a thousand separator.
7940+If this is set to ``True``, Django will use values from ``THOUSAND_SEPARATOR``
7941+and ``NUMBER_GROUPING`` from current locale, to format the number.
7942+``USE_FORMAT_I18N`` must be set to ``True``, in order to format numbers.
7943+
7944+See also ``THOUSAND_SEPARATOR`` and ``NUMBER_GROUPING``.
7945+
7946 .. setting:: YEAR_MONTH_FORMAT
7947 
7948 YEAR_MONTH_FORMAT
7949Index: docs/ref/templates/builtins.txt
7950===================================================================
7951--- docs/ref/templates/builtins.txt     (.../trunk)     (revision 11464)
7952+++ docs/ref/templates/builtins.txt     (.../branches/soc2009/i18n-improvements)        (revision 11464)
7953@@ -897,8 +897,12 @@
7954 date
7955 ~~~~
7956 
7957-Formats a date according to the given format (same as the `now`_ tag).
7958+Formats a date according to the given format.
7959 
7960+Given format can be one of the predefined ones ``DATE_FORMAT``, ``DATETIME_FORMAT``,
7961+``SHORT_DATE_FORMAT`` or ``SHORT_DATETIME_FORMAT``, or a custom format, same as the
7962+`now`_ tag. Note that prefedined formats vary depending on the current locale.
7963+
7964 For example::
7965 
7966     {{ value|date:"D d M Y" }}
7967@@ -912,7 +916,7 @@
7968     {{ value|date }}
7969 
7970 ...the formatting string defined in the :setting:`DATE_FORMAT` setting will be
7971-used.
7972+used, without applying any localization.
7973 
7974 .. templatefilter:: default
7975 
7976@@ -1460,7 +1464,10 @@
7977 time
7978 ~~~~
7979 
7980-Formats a time according to the given format (same as the `now`_ tag).
7981+Formats a time according to the given format.
7982+
7983+Given format can be the predefined one ``TIME_FORMAT``, or a custom format, same as the `now`_ tag. Note that the predefined format is locale depending.
7984+
7985 The time filter will only accept parameters in the format string that relate
7986 to the time of day, not the date (for obvious reasons). If you need to
7987 format a date, use the `date`_ filter.
7988@@ -1477,7 +1484,7 @@
7989     {{ value|time }}
7990 
7991 ...the formatting string defined in the :setting:`TIME_FORMAT` setting will be
7992-used.
7993+used, without aplying any localization.
7994 
7995 .. templatefilter:: timesince
7996