diff --git a/django/conf/locale/bn/LC_MESSAGES/django.mo b/django/conf/locale/bn/LC_MESSAGES/django.mo index 89c5b19f1d..4cd7bd75c0 100644 Binary files a/django/conf/locale/bn/LC_MESSAGES/django.mo and b/django/conf/locale/bn/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/bn/LC_MESSAGES/django.po b/django/conf/locale/bn/LC_MESSAGES/django.po index 7cafe442e5..ec44ce4ceb 100644 --- a/django/conf/locale/bn/LC_MESSAGES/django.po +++ b/django/conf/locale/bn/LC_MESSAGES/django.po @@ -1136,6 +1136,38 @@ msgstr "নভে." msgid "Dec." msgstr "ডিসে." +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:14 +#, fuzzy +msgid "day" +msgid_plural "days" +msgstr[0] "মে" +msgstr[1] "মে" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "স্থান" +msgstr[1] "স্থান" + #: models/core.py:7 msgid "domain name" msgstr "ক্ষেত্র নাম" @@ -1241,8 +1273,8 @@ msgid "password" msgstr "পাসওয়ার্ড" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." -msgstr "একটি MD5 হ্যাশ ব্যাবহার করুন -- পরিস্কার পাসওয়ার্ড না যেন।" +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "" #: models/auth.py:38 msgid "staff status" @@ -1287,7 +1319,7 @@ msgstr "ব্যক্তিগত তথ্য" msgid "Important dates" msgstr "গুরুত্বপূর্ণ তারিখ" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "বার্তা" @@ -1414,67 +1446,67 @@ msgstr "একটি গোটা সংখ্যা ঢোকান।" msgid "This value must contain only letters, numbers and underscores." msgstr "এই মানটি শুধু মাত্র অক্ষর, অংক, এবং আন্ডারস্কোর (_) হতে পারবে।" -#: core/validators.py:63 +#: core/validators.py:66 msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "এই মানটি শুধু মাত্র অক্ষর, অংক, আন্ডারস্কোর (_) এবং স্ল্যাশ হতে পারবে।" -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "বড় হাতের অক্ষর এখানে ঢোকাতে পারবেন না।" -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "ছোটহাতের অক্ষর এখানে ঢোকাতে পারবেন না।" -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "কমা দ্বারা আলাদা করে শুধু মাত্র অংক ঢোকান।" -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "কমা দ্বারা আলাদা করে বৈধ ই-মেল ঠিকানা ঢোকান।" -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "দয়া করে একটি বৈধ IP ঠিকানা ঢোকান।" -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "ফাঁকা মান এখানে ঢোকাতে পারবেন না।" -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "অংক বিহীন অক্ষর এখানে ঢোকাতে পারবেন না।" -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "এই মানটি শুধু মাত্র অংকের দ্বারা গঠিত হতে পারে না।" -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "একটি গোটা সংখ্যা ঢোকান।" -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "এখানে শুধু মাত্র অক্ষর ঢোকাতে পারবেন ।" -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "YYYY-MM-DD ফরম্যাটে একটি বৈধ তারিখ ঢোকান।" -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "HH:MM ফরম্যাটে একটি বৈধ সময় ঢোকান।" -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "YYYY-MM-DD.HH:MM ফরম্যাটে একটি বৈধ তারিখ/সময় ঢোকান।" -#: core/validators.py:135 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "একটি বৈধ ই-মেল ঠিকানা ঢোকান।" -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -1482,26 +1514,26 @@ msgstr "" "একটি বৈধ চিত্র আপলোড করুন। যে ফাইল আপনি আপলোড করলেন তা হয় একটি চিত্র নয় অথবা " "একটি খারাপ চিত্র।" -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "%s ইউ.আর.এল-এ একটি বৈধ চিত্র নেই।" -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "ফোন নম্বর XXX-XXX-XXXX ফরম্যাটে অবশ্যই হতে হবে। \"%s\" অবৈধ।" -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "%s ইউ.আর.এল-এ একটি বৈধ QuickTime ভিডিও পাওয়া গেল না।" -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "একটি বৈধ ইউ.আর.এল জরুরি।" -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -1510,69 +1542,69 @@ msgstr "" "বৈধ এইচটিএমএল প্রয়োজনীয়। ত্রুটিগুল হল:\n" "%s" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "খারাপভাবে গঠিত এক্সএমএল: %s" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "অবৈধ ইউ.আর.এল: %s" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "ইউ.আর.এল %s একটি ভাঙা সংযোগ।" -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "একটি বৈধ U S. রাজ্য abbreviation ঢোকান।" -#: core/validators.py:228 +#: core/validators.py:231 #, python-format msgid "Watch your mouth! The word %s is not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here." msgstr[0] "মুখ সামলে! %s এখানে ব্যাবহার করতে পারবেন না।" msgstr[1] "মুখ সামলে! %s এখানে ব্যাবহার করতে পারবেন না।" -#: core/validators.py:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "এই ক্ষেত্রটি '%s' ক্ষেত্রের সঙ্গে অবশ্যই মিলতে হবে।" -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "দয়া করে অন্তত এক ক্ষেত্রেতে কিছু জিনিষ ঢোকান।" -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "দয়া করে উভয় ক্ষেত্রে ঢোকান অথবা তাদেরকে উভয় ফাঁকা ছেড়ে চলে যান।" -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "এই ক্ষেত্রেটি অবশ্যই দেওয়া হবে যদি %(field)s %(value)s হয়" -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "এই ক্ষেত্রেটি অবশ্যই দেওয়া হবে যদি %(field)s %(value)s না হয়" -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "নকল মান অনুমতি দেওয়া হল না।" -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "এই মানটি %sএর একটি গুন অবশ্যই হতে হবে।" -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "দয়া করে একটি বৈধ দশমিক সংখ্যা ঢোকান।" -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -1580,7 +1612,7 @@ msgid_plural "" msgstr[0] "দয়া করে একটি বৈধ দশমিক সংখ্যা ঢোকান যার অক্ষরের সংখ্যা %s থেকে কম হবে।" msgstr[1] "দয়া করে একটি বৈধ দশমিক সংখ্যা ঢোকান যার অক্ষরের সংখ্যা %s থেকে কম হবে।" -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -1588,37 +1620,37 @@ msgid_plural "" msgstr[0] "দয়া করে একটি বৈধ দশমিক সংখ্যা ঢোকান যার দশমিক স্থান %s থেকে কম হবে।" msgstr[1] "দয়া করে একটি বৈধ দশমিক সংখ্যা ঢোকান যার দশমিক স্থান %s থেকে কম হবে।" -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "আাপনার আপলোড করা ফাইল যেন অন্তত %s বাইট বড় হয় তা নিশ্চিত করুন।" -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "আাপনার আপলোড করা ফাইল যেন %s বাইটের থেকে বড় না হয় তা নিশ্চিত করুন।" -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "এই ক্ষেত্রের জন্য ফরম্যাটটি ভূল।" -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "এই ক্ষেত্রেটি অবৈধ।" -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "%s থেকে কোন কিছু গ্রহন করতে পারলাম না।" -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." msgstr "" "ইউ.আর.এল %(url)s অবৈধ Content-Type শিরোনাম নিয়ে '%(contenttype)s ফিরে আসল।" -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " @@ -1627,7 +1659,7 @@ msgstr "" "দয়া করে লাইন %(line)s থেকে খোলা %(tag)s বন্ধ করুন। (\"%(start)s\"এর সঙ্গে লাইন " "আরম্ভ।)" -#: core/validators.py:465 +#: core/validators.py:468 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " @@ -1636,7 +1668,7 @@ msgstr "" "লাইন %(line)s এই প্রসঙ্গে কিছু শব্দ লেখার অনুমতি দেওয়া গেল না। (\"%(start)s\"এর " "সঙ্গে লাইন আরম্ভ।)" -#: core/validators.py:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" @@ -1644,7 +1676,7 @@ msgid "" msgstr "" "লাইন %(line)s\"%(attr)s\"একটি অবৈধ বৈশিষ্ট্য। (\"%(start)s\"এর সঙ্গে লাইন আরম্ভ।)" -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" @@ -1653,7 +1685,7 @@ msgstr "" " %(line)s লাইনে \"<%(tag)s>\" একটি অবৈধ ট্যাগ। (\"%(start)s\"এর সঙ্গে লাইন " "আরম্ভ।)" -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " @@ -1662,7 +1694,7 @@ msgstr "" "লাইন %(line)s একটি ট্যাগে এক অথবা আরও বেশি প্রয়োজনীয় বিশিষ্ট্যাবলী নেই। (\"%" "(start)s\"এর সঙ্গে লাইন আরম্ভ।)" -#: core/validators.py:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " diff --git a/django/conf/locale/cs/LC_MESSAGES/django.mo b/django/conf/locale/cs/LC_MESSAGES/django.mo index e281eed9bd..a90db6ee30 100644 Binary files a/django/conf/locale/cs/LC_MESSAGES/django.mo and b/django/conf/locale/cs/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/cs/LC_MESSAGES/django.po b/django/conf/locale/cs/LC_MESSAGES/django.po index 7a2fc86ea1..b6bcf467a5 100644 --- a/django/conf/locale/cs/LC_MESSAGES/django.po +++ b/django/conf/locale/cs/LC_MESSAGES/django.po @@ -1180,6 +1180,43 @@ msgstr "List." msgid "Dec." msgstr "Pros." +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: utils/timesince.py:14 +#, fuzzy +msgid "day" +msgid_plural "days" +msgstr[0] "Květen" +msgstr[1] "Květen" +msgstr[2] "Květen" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: utils/timesince.py:16 +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "web" +msgstr[1] "web" +msgstr[2] "web" + #: models/core.py:7 msgid "domain name" msgstr "jméno domény" @@ -1285,8 +1322,8 @@ msgid "password" msgstr "heslo" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." -msgstr "Použije se MD5 hash -- ne čisté heslo." +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "" #: models/auth.py:38 msgid "staff status" @@ -1332,7 +1369,7 @@ msgstr "Osobní informace" msgid "Important dates" msgstr "Důležitá data" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "Zpráva" @@ -1454,68 +1491,68 @@ msgstr "Vložte celé číslo mezi 0 a 32,767." msgid "This value must contain only letters, numbers and underscores." msgstr "Tato hodnota musí obsahovat pouze znaky, čísla nebo podtržítka." -#: core/validators.py:63 +#: core/validators.py:66 msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "" "Tato hodnota musí obsahovat pouze znaky, čísla, podtržítka nebo lomítka." -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "Velká písmena zde nejsou povolená." -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "Malá písmena zde nejsou povolená." -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "Vložte pouze cifry oddělené čárkami." -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "Vložte platné e-mailové adresy oddělené čárkami." -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "Prosíme, zadejte platnou IP adresu." -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "Zde nejsou povolené prázdné hodnoty." -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "Znaky, které nejsou čísla, nejsou zde povoleny." -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "Tato hodnota nemůže být složená pouze z cifer." -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "Vložte celé číslo." -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "Zde jsou povoleny pouze alfanumerické znaky." -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Vložte platné datum ve formátu RRRR-MM-DD." -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "Vložte platný čas ve formátu HH:MM." -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "Vložte platné datum a čas ve formátu RRRR-MM-DD HH:MM." -#: core/validators.py:135 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "Vložte platnou e-mailovou adresu." -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -1523,26 +1560,26 @@ msgstr "" "Nahrajte na server platný obrázek. Soubor, který jste nahrál(a) nebyl " "obrázek, nebo byl porušen." -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "URL %s neukazuje na platný obrázek." -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "Telefonní čísla musí být ve formátu XXX-XXX-XXXX. \"%s\" není platné." -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "URL %s neodkazuje na platné video ve formátu QuickTime." -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "Je vyžadováno platné URL." -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -1551,26 +1588,26 @@ msgstr "" "Je vyžadováno platné HTML. Konkrétní chyby jsou:\n" "%s" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "Špatně formované XML: %s" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "Neplatné URL: %s" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "Odkaz na URL %s je rozbitý." -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "Vložte platnou zkraku U.S. státu." -#: core/validators.py:228 +#: core/validators.py:231 #, python-format msgid "Watch your mouth! The word %s is not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here." @@ -1578,43 +1615,43 @@ msgstr[0] "Mluvte slušně! Slovo %s zde není přípustné." msgstr[1] "Mluvte slušně! Slova %s zde nejsou přípustná." msgstr[2] "Mluvte slušně! Slova %s zde nejsou přípustná." -#: core/validators.py:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "Toto pole se musí shodovat s polem '%s'." -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "Prosíme, vložte něco alespoň pro jedno pole." -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "Prosíme, vložte obě pole, nebo je nechte obě prázdná." -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "Toto pole musí být vyplněno, když %(field)s má %(value)s" -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "Toto pole musí být vyplněno, když %(field)s nemá %(value)s" -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "Duplikátní hodnoty nejsou povolené." -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "Tato hodnota musí být mocninou %s." -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "Prosíme, vložte platné číslo." -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -1623,7 +1660,7 @@ msgstr[0] "Prosíme, vložte platné číslo s nejvíce %s cifrou celkem." msgstr[1] "Prosíme, vložte platné číslo s nejvíce %s ciframi celkem." msgstr[2] "Prosíme, vložte platné číslo s nejvíce %s ciframi celkem." -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -1637,36 +1674,36 @@ msgstr[2] "" "Prosíme, vložte platné číslo s nejvíce %s ciframi za desetinnou čárkou " "celkem." -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "Ujistěte se, že posílaný soubor je velký nejméně %s bytů." -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "Ujistěte se, že posílaný soubor je velký nejvíce %s bytů." -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "Formát pro toto pole je špatný." -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "Toto pole není platné." -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "Nemohl jsem získat nic z %s." -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." msgstr "URL %(url)s vrátilo neplatnou hlavičku Content-Type '%(contenttype)s'." -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " @@ -1675,7 +1712,7 @@ msgstr "" "Prosíme, zavřete nezavřenou značku %(tag)s z řádky %(line)s. (Řádka začíná s " "\"%(start)s\".)" -#: core/validators.py:465 +#: core/validators.py:468 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " @@ -1684,7 +1721,7 @@ msgstr "" "Nějaký text začínající na řádce %(line)s není povolen v tomto kontextu. " "(Řádka začíná s \"%(start)s\".)" -#: core/validators.py:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" @@ -1693,7 +1730,7 @@ msgstr "" "\"%(attr)s\" na řádce %(line)s je neplatný atribut. (Řádka začíná s \"%" "(start)s\".)" -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" @@ -1702,7 +1739,7 @@ msgstr "" "\"<%(tag)s>\" na řádce %(line)s je neplatná značka. (Řádka začíná s \"%" "(start)s\".)" -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " @@ -1711,7 +1748,7 @@ msgstr "" "Značce na řádce %(line)s schází jeden nebo více požadovaných atributů. " "(Řádka začíná s \"%(start)s\".)" -#: core/validators.py:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " diff --git a/django/conf/locale/cy/LC_MESSAGES/django.mo b/django/conf/locale/cy/LC_MESSAGES/django.mo index e0ae436867..7a295df1c4 100644 Binary files a/django/conf/locale/cy/LC_MESSAGES/django.mo and b/django/conf/locale/cy/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/cy/LC_MESSAGES/django.po b/django/conf/locale/cy/LC_MESSAGES/django.po index ab1de88d84..dc29609d2a 100644 --- a/django/conf/locale/cy/LC_MESSAGES/django.po +++ b/django/conf/locale/cy/LC_MESSAGES/django.po @@ -1138,6 +1138,38 @@ msgstr "Tach." msgid "Dec." msgstr "Rhag." +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:14 +#, fuzzy +msgid "day" +msgid_plural "days" +msgstr[0] "Mai" +msgstr[1] "Mai" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "safle" +msgstr[1] "safle" + #: models/core.py:7 msgid "domain name" msgstr "parth-enw" @@ -1243,8 +1275,8 @@ msgid "password" msgstr "cyfrinair" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." -msgstr "Defnyddiwch stwnsh MD5 -- nid y gyfrinair crai." +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "" #: models/auth.py:38 msgid "staff status" @@ -1290,7 +1322,7 @@ msgstr "Gwybodaeth personol" msgid "Important dates" msgstr "Dyddiadau pwysig" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "Neges" @@ -1417,70 +1449,70 @@ msgstr "Rhowch rhif cyfan." msgid "This value must contain only letters, numbers and underscores." msgstr "Rhaid i'r werth yma cynnwys lythrennau, rhifau ac tanlinellau yn unig." -#: core/validators.py:63 +#: core/validators.py:66 #, fuzzy msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "" "Rhaid i'r werth yma cynnwys lythrennau, rhifau, tanlinellau ac slaesau yn " "unig." -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "Ni chaniateir priflythrennau yma." -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "Ni chaniateir lythrennau bach yma." -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "Rhowch digidau gwahanu gyda atalnodau yn unig." -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "Rhowch cyfeiriad e-bost dilys gwahanu gyda atalnodau." -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "Rhowch cyfeiriad IP dilys, os gwelwch yn dda." -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "Ni chaniateir gwerthau gwag yma." -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "Ni chaniateir nodau anrhifol yma." -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "Ni gellir y werth yma" -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "Rhowch rhif cyfan." -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "Caniateir nodau gwyddorol un unig yma." -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Rhowch dyddiad dilys mewn fformat YYYY-MM-DD." -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "Rhowch amser ddilys mewn fformat HH:MM." -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "Rhowch dyddiad/amser ddilys mewn fformat YYYY-MM-DD HH:MM." -#: core/validators.py:135 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "Rhowch cyfeiriad e-bost ddilys." -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -1488,26 +1520,26 @@ msgstr "" "Llwythwch delwedd dilys. Doedd y delwedd a llwythwyd dim yn ddelwedd dilys, " "neu roedd o'n ddelwedd llwgr." -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "Dydy'r URL %s dim yn pwyntio at delwedd dilys." -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "Rhaid rifau ffon bod mewn fformat XXX-XXX-XXXX. Mae \"%s\" yn annilys." -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "Dydy'r URL %s dim yn pwyntio at fideo Quicktime dilys." -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "Mae URL dilys yn ofynnol." -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -1516,69 +1548,69 @@ msgstr "" "Mae HTML dilys yn ofynnol. Gwallau penodol yw:\n" "%s" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "XML wedi ffurfio'n wael: %s" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "URL annilys: %s" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "Mae'r URL %s yn gyswllt toredig." -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "Rhowch talfyriad dalaith U.S. dilys." -#: core/validators.py:228 +#: core/validators.py:231 #, python-format msgid "Watch your mouth! The word %s is not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here." msgstr[0] "Gwyliwch eich ceg! Ni chaniateir y gair %s yma." msgstr[1] "Gwyliwch eich ceg! Ni chaniateir y geiriau %s yma." -#: core/validators.py:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "Rhaid i'r faes yma cydweddu'r faes '%s'." -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "Rhowch rhywbeth am un maes o leiaf, os gwelwch yn dda." -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "Llenwch y ddwy faes, neu gadewch nhw'n wag, os gwelwch yn dda." -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "Rhaid roi'r faes yma os mae %(field)s yn %(value)s" -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "Rhaid roi'r faes yma os mae %(field)s dim yn %(value)s" -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "Ni chaniateir gwerthau ddyblyg." -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "Rhaid i'r gwerth yma fod yn bŵer o %s." -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "Rhowch rhif degol dilys, os gwelwch yn dda." -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -1586,7 +1618,7 @@ msgid_plural "" msgstr[0] "Rhowch rhif degol dilys gyda cyfanswm %s digidau o fwyaf." msgstr[1] "Rhowch rhif degol dilys gyda cyfanswm %s digid o fwyaf." -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -1596,37 +1628,37 @@ msgstr[0] "" msgstr[1] "" "Rhowch rif degol dilydd gyda o fwyaf %s lleoedd degol, os gwelwch yn dda." -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "Sicrhewch bod yr ffeil a llwythwyd yn o leiaf %s beit." -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "Sicrhewch bod yr ffeil a llwythwyd yn %s beit o fwyaf." -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "Mae'r fformat i'r faes yma yn anghywir." -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "Mae'r faes yma yn annilydd." -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "Ni gellir adalw unrhywbeth o %s." -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." msgstr "" "Dychwelodd yr URL %(url)s y pennawd Content-Type annilys '%(contenttype)s'." -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " @@ -1635,7 +1667,7 @@ msgstr "" "Caewch y tag anghaedig %(tag)s o linell %(line)s. (Linell yn ddechrau â \"%" "(start)s\".)" -#: core/validators.py:465 +#: core/validators.py:468 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " @@ -1644,7 +1676,7 @@ msgstr "" "Ni chaniateir rhai o'r destun ar linell %(line)s yn y gyd-destun yna. " "(Linell yn ddechrau â \"%(start)s\".)" -#: core/validators.py:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" @@ -1653,7 +1685,7 @@ msgstr "" "Mae \"%(attr)s\" ar lein %(line)s yn priodoledd annilydd. (Linell yn " "ddechrau â \"%(start)s\".)" -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" @@ -1662,7 +1694,7 @@ msgstr "" "Mae \"<%(tag)s>\" ar lein %(line)s yn tag annilydd. (Linell yn ddechrau â \"%" "(start)s\".)" -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " @@ -1671,7 +1703,7 @@ msgstr "" "Mae tag ar lein %(line)s yn eisiau un new fwy priodoleddau gofynnol. (Linell " "yn ddechrau â \"%(start)s\".)" -#: core/validators.py:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " diff --git a/django/conf/locale/da/LC_MESSAGES/django.mo b/django/conf/locale/da/LC_MESSAGES/django.mo index 6d539089d9..856865794c 100644 Binary files a/django/conf/locale/da/LC_MESSAGES/django.mo and b/django/conf/locale/da/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/da/LC_MESSAGES/django.po b/django/conf/locale/da/LC_MESSAGES/django.po index 62111459e7..6c5795cc00 100644 --- a/django/conf/locale/da/LC_MESSAGES/django.po +++ b/django/conf/locale/da/LC_MESSAGES/django.po @@ -1142,6 +1142,38 @@ msgstr "Nov." msgid "Dec." msgstr "Dec." +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:14 +#, fuzzy +msgid "day" +msgid_plural "days" +msgstr[0] "Maj" +msgstr[1] "Maj" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "side" +msgstr[1] "side" + #: models/core.py:7 msgid "domain name" msgstr "domænenavn" @@ -1247,8 +1279,8 @@ msgid "password" msgstr "adgangskode" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." -msgstr "Brug et MD5 hash -- ikke adgangskoden i klartekst" +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "" #: models/auth.py:38 msgid "staff status" @@ -1294,7 +1326,7 @@ msgstr "Personlig information" msgid "Important dates" msgstr "Vigtige datoer" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "Meddelelse" @@ -1421,68 +1453,68 @@ msgstr "Indtast et heltal." msgid "This value must contain only letters, numbers and underscores." msgstr "Dette felt må kun indeholde bogstaver, tal og understreger." -#: core/validators.py:63 +#: core/validators.py:66 msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "" "Dette felt må kun indeholde bogstaver, tal, understreger og skråstreger." -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "Store bogstaver er ikke tilladt her" -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "Små bogstaver er ikke tilladt her" -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "Indtast kun tal adskilt af kommaer." -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "Indtast gyldige email-adresser adskilt af kommaer" -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "Venlist indtast en gyldig email-adresse." -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "Dette felt kan ikke være tomt." -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "Der må kun være tal her" -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "Denne værdi kan ikke kun bestå af tal." -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "Indtast et heltal." -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "Her er kun bogstaver tilladt." -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Indtast en dato i ÅÅÅÅ-MM-DD format." -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "Indtast tid i TT:MM format." -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "Indtast dato og tid i ÅÅÅÅ-MM-DD TT:MM format." -#: core/validators.py:135 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "Indtast en gyldig email-adresse." -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -1490,27 +1522,27 @@ msgstr "" "Upload en billed-fil. Filen du uploadede var enten ikke et billede eller en " "ødelagt billed-fil" -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "URLen %s viser ikke til en gyldig billed-fil" -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "" "Telefonnumre skal være i XXX-XXX-XXXX formatet. \"%s\" er ikke godkjent." -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "URLen %s viser ikke til en gyldig QuickTime-film." -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "En gyldig URL er påkrævet" -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -1519,69 +1551,69 @@ msgstr "" "Gyldig HTML er påkrævet. Fejlene er:\n" "%s" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "Ugyldig XML: %s" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "Ugyldig URL: %s" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "Denne URL %s linker ikke til en gyldig side eller fil" -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "Indtast en gyldig amerikansk statsforkortelse" -#: core/validators.py:228 +#: core/validators.py:231 #, python-format msgid "Watch your mouth! The word %s is not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here." msgstr[0] "Var din mund! Ordet %s er ikke tilladt her." msgstr[1] "Var din mund! Ordene %s er ikke tilladt her." -#: core/validators.py:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "Dette felt skal matche '%s' feltet." -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "Indtast venligst noget i mindst et felt" -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "Udfyld begge felter, eller lad dem begge være blanke" -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "Dette felt skal udfyldes, hvis %(field)s er lig %(value)s" -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "Dette felt skal udfyldes, hvis %(field)s ikke er lig %(value)s" -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "Duplikate værdier er ikke tilladt her" -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "Denne værdi skal være en potens af %s." -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "Indtast venligst et gyldigt decimaltal." -#: core/validators.py:348 +#: core/validators.py:351 #, fuzzy, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -1589,7 +1621,7 @@ msgid_plural "" msgstr[0] "Indtast en gyldig decimal med max %s tal ialt" msgstr[1] "Indtast en gyldig decimal med max %s tal ialt" -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -1597,37 +1629,37 @@ msgid_plural "" msgstr[0] "Indtast en gyldig decimal med max %s tal efter kommaet" msgstr[1] "Indtast en gyldig decimal med max %s tal efter kommaet" -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "Tjek at den uploadede fil er mindst % bytes." -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "Tjek at den uploadede file er max %s bytes." -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "Formatet i dette feltet er feil." -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "Dette felt er ugyldigt." -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "Kunne ikke finde noget i %s." -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." msgstr "" "URLen %(url)s returnerede ikke en godkendt Content-Type '%(contenttype)s'." -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " @@ -1635,7 +1667,7 @@ msgid "" msgstr "" "Luk venligst %(tag)s på linje %(line)s. (Linjen starer med \"%(start)s\".)" -#: core/validators.py:465 +#: core/validators.py:468 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " @@ -1644,7 +1676,7 @@ msgstr "" "En del af teksten som starter på linje %(line)s er ikke tilladt. (Linjen " "starter med \"%(start)s\".)" -#: core/validators.py:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" @@ -1653,7 +1685,7 @@ msgstr "" "\"%(attr)s\" på linje %(line)s er ikke en gyldig attribut. (Linjen starter " "med \"%(start)s\".)" -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" @@ -1662,7 +1694,7 @@ msgstr "" "\"<%(tag)s>\" på linje %(line)s er ikke et gyldigt tag. (Linjen starter med " "\"%(start)s\".)" -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " @@ -1671,7 +1703,7 @@ msgstr "" "Et tag på linje %(line)s mangler en obligatorisk attribut. (Linjen starter " "med \"%(start)s\".)" -#: core/validators.py:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " diff --git a/django/conf/locale/de/LC_MESSAGES/django.mo b/django/conf/locale/de/LC_MESSAGES/django.mo index 91c0a32eab..63b09f1df4 100644 Binary files a/django/conf/locale/de/LC_MESSAGES/django.mo and b/django/conf/locale/de/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/de/LC_MESSAGES/django.po b/django/conf/locale/de/LC_MESSAGES/django.po index 377e26e9b7..120073e263 100644 --- a/django/conf/locale/de/LC_MESSAGES/django.po +++ b/django/conf/locale/de/LC_MESSAGES/django.po @@ -1169,6 +1169,36 @@ msgstr "Nov." msgid "Dec." msgstr "Dez." +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "Jahr" +msgstr[1] "Jahre" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "Monat" +msgstr[1] "Monate" + +#: utils/timesince.py:14 +msgid "day" +msgid_plural "days" +msgstr[0] "Tag" +msgstr[1] "Tage" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "Minute" +msgstr[1] "Minuten" + #: models/core.py:7 msgid "domain name" msgstr "Domainname" @@ -1274,8 +1304,8 @@ msgid "password" msgstr "Kennwort" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." -msgstr "Nicht das Kennwort selber eintragen, sondern dessen MD5 signatur." +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "Im Format '[algo]$[salt]$[hexdigest]" #: models/auth.py:38 msgid "staff status" @@ -1322,7 +1352,7 @@ msgstr "Pers msgid "Important dates" msgstr "Wichtige Daten" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "Mitteilung" @@ -1444,71 +1474,71 @@ msgstr "Bitte eine ganze Zahl zwischen 0 und 32.767 eingeben." msgid "This value must contain only letters, numbers and underscores." msgstr "Dieser Wert darf nur Buchstaben, Ziffern und Unterstriche enthalten." -#: core/validators.py:63 +#: core/validators.py:66 msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "" "Dieser Wert darf nur Buchstaben, Ziffern, Unterstriche und Schrgstriche " "enthalten." -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "Grobuchstaben sind hier nicht erlaubt." -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "Kleinbuchstaben sind hier nicht erlaubt." -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "Hier sind nur durch Komma getrennte Ziffern erlaubt." -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "Bitte mit Komma getrennte, gltige eMail-Adressen eingeben." -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "Bitte eine gltige IP-Adresse eingeben." -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "Dieses Feld darf nicht leer sein." -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "Nichtnumerische Zeichen sind hier nicht erlaubt." -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "Dieser Wert darf nicht nur aus Ziffern bestehen." -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "Bitte eine ganze Zahl eingeben." -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "Nur alphabetische Zeichen sind hier erlaubt." -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Bitte ein gltiges Datum im Format JJJJ-MM-TT eingeben." -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "Bitte eine gltige Zeit im Format SS:MM eingeben." -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "" "Bitte eine gltige Datums- und Zeitangabe im Format JJJJ-MM-TT SS:MM " "eingeben." -#: core/validators.py:135 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "Bitte eine gltige eMail-Adresse eingeben" -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -1516,27 +1546,27 @@ msgstr "" "Bitte ein Bild hochladen. Die Datei, die hochgeladen wurde, ist kein Bild " "oder ist defekt." -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "Die URL %s zeigt nicht auf ein gltiges Bild." -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "" "Telefonnummern mssen im Format XXX-XXX-XXXX sein. \"%s\" ist ungltig." -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "Die URL %s zeigt nicht auf ein gltiges QuickTime video." -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "Eine gltige URL ist hier verlangt." -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -1545,71 +1575,71 @@ msgstr "" "Bitte gltiges HTML eingeben. Fehler sind:\n" "%s" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "Ungltiges XML: %s" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "Ungltige URL: %s" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "Die URL %s funktioniert nicht." -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "Bitte eine gltige Abkrzung fr einen US-Staat eingeben." -#: core/validators.py:228 +#: core/validators.py:231 #, python-format msgid "Watch your mouth! The word %s is not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here." msgstr[0] "Keine Schimpfworte! Das Wort %s ist hier nicht gern gesehen!" msgstr[1] "Keine Schimpfworte! Die Wrter %s sind hier nicht gern gesehen!" -#: core/validators.py:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "Dieses Feld muss zum Feld '%s' passen." -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "Bitte mindestens eines der Felder ausfllen." -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "Bitte entweder beide Felder ausfllen, oder beide leer lassen." -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "" "Dieses Feld muss gefllt sein, wenn Feld %(field)s den Wert %(value)s hat." -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "" "Dieses Feld muss gefllt sein, wenn Feld %(field)s nicht %(value)s ist." -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "Doppelte Werte sind hier nicht erlaubt." -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "Dieser Wert muss eine Potenz von %s sein." -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "Bitte eine gltige Dezimalzahl eingeben." -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -1617,7 +1647,7 @@ msgid_plural "" msgstr[0] "Bitte eine gltige Dezimalzahl mit maximal %s Ziffer eingeben." msgstr[1] "Bitte eine gltige Dezimalzahl mit maximal %s Ziffern eingeben." -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -1627,39 +1657,39 @@ msgstr[0] "" msgstr[1] "" "Bitte eine gltige Dezimalzahl mit maximal %s Dezimalstellen eingeben." -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "" "Bitte sicherstellen, da die hochgeladene Datei mindestens %s Bytes gross " "ist." -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "" "Bitte sicherstellen, da die hochgeladene Datei maximal %s Bytes gross ist." -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "Das Format fr dieses Feld ist falsch." -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "Dieses Feld ist ungltig." -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "Konnte nichts von %s empfangen." -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." msgstr "Die URL %(url)s lieferte den falschen Content-Type '%(contenttype)s'." -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " @@ -1668,7 +1698,7 @@ msgstr "" "Bitte das ungeschlossene %(tag)s Tag in Zeile %(line)s schlieen. Die Zeile " "beginnt mit \"%(start)s\"." -#: core/validators.py:465 +#: core/validators.py:468 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " @@ -1677,7 +1707,7 @@ msgstr "" "In Zeile %(line)s ist Text, der nicht in dem Kontext erlaubt ist. Die Zeile " "beginnt mit \"%(start)s\"." -#: core/validators.py:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" @@ -1686,7 +1716,7 @@ msgstr "" "Das Attribute %(attr)s in Zeile %(line)s ist ungltig. Die Zeile beginnt mit " "\"%(start)s\"." -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" @@ -1695,7 +1725,7 @@ msgstr "" "<%(tag)s> in Zeile %(line)s ist ungltig. Die Zeile beginnt mit \"%(start)s" "\"." -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " @@ -1704,7 +1734,7 @@ msgstr "" "Ein Tag in Zeile %(line)s hat eines oder mehrere Pflichtattribute nicht. Die " "Zeile beginnt mit \"%(start)s\"." -#: core/validators.py:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " diff --git a/django/conf/locale/en/LC_MESSAGES/django.po b/django/conf/locale/en/LC_MESSAGES/django.po index 1518536834..990297b6a7 100644 --- a/django/conf/locale/en/LC_MESSAGES/django.po +++ b/django/conf/locale/en/LC_MESSAGES/django.po @@ -1090,6 +1090,36 @@ msgstr "" msgid "Dec." msgstr "" +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:14 +msgid "day" +msgid_plural "days" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "" +msgstr[1] "" + #: models/core.py:7 msgid "domain name" msgstr "" @@ -1195,7 +1225,7 @@ msgid "password" msgstr "" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." +msgid "Use '[algo]$[salt]$[hexdigest]" msgstr "" #: models/auth.py:38 @@ -1240,7 +1270,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "" @@ -1361,161 +1391,161 @@ msgstr "" msgid "This value must contain only letters, numbers and underscores." msgstr "" -#: core/validators.py:63 +#: core/validators.py:66 msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "" -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "" -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "" -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "" -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "" -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "" -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "" -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "" -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "" -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "" -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "" -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "" -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "" -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "" -#: core/validators.py:135 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "" -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." msgstr "" -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "" -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "" -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "" -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "" -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" "%s" msgstr "" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "" -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "" -#: core/validators.py:228 +#: core/validators.py:231 #, python-format msgid "Watch your mouth! The word %s is not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here." msgstr[0] "" msgstr[1] "" -#: core/validators.py:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "" -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "" -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "" -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "" -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "" -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "" -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "" -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "" -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -1523,7 +1553,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -1531,71 +1561,71 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "" -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "" -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "" -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "" -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "" -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." msgstr "" -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " "\"%(start)s\".)" msgstr "" -#: core/validators.py:465 +#: core/validators.py:468 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " "starts with \"%(start)s\".)" msgstr "" -#: core/validators.py:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" "(start)s\".)" msgstr "" -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" "(start)s\".)" msgstr "" -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " "starts with \"%(start)s\".)" msgstr "" -#: core/validators.py:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " diff --git a/django/conf/locale/es/LC_MESSAGES/django.po b/django/conf/locale/es/LC_MESSAGES/django.po index 5180be41be..64fb7b90cf 100644 --- a/django/conf/locale/es/LC_MESSAGES/django.po +++ b/django/conf/locale/es/LC_MESSAGES/django.po @@ -1117,6 +1117,36 @@ msgstr "" msgid "Dec." msgstr "" +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:14 +msgid "day" +msgid_plural "days" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "" +msgstr[1] "" + #: models/core.py:7 msgid "domain name" msgstr "" @@ -1226,7 +1256,7 @@ msgid "password" msgstr "Clave:" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." +msgid "Use '[algo]$[salt]$[hexdigest]" msgstr "" #: models/auth.py:38 @@ -1272,7 +1302,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "" @@ -1394,163 +1424,163 @@ msgstr "" msgid "This value must contain only letters, numbers and underscores." msgstr "Este valor debe contener slo letras, nmeros y guin bajo." -#: core/validators.py:63 +#: core/validators.py:66 #, fuzzy msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "Este valor debe contener slo letras, nmeros y guin bajo." -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "" -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "" -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "" -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "" -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "" -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "" -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "" -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "" -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "" -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "" -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "" -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "" -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "" -#: core/validators.py:135 +#: core/validators.py:138 #, fuzzy msgid "Enter a valid e-mail address." msgstr "Direccin de correo:" -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." msgstr "" -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "" -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "" -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "" -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "" -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" "%s" msgstr "" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "" -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "" -#: core/validators.py:228 +#: core/validators.py:231 #, python-format msgid "Watch your mouth! The word %s is not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here." msgstr[0] "" msgstr[1] "" -#: core/validators.py:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "" -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "" -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "" -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "" -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "" -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "" -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "" -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "" -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -1558,7 +1588,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -1566,71 +1596,71 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "" -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "" -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "" -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "" -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "" -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." msgstr "" -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " "\"%(start)s\".)" msgstr "" -#: core/validators.py:465 +#: core/validators.py:468 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " "starts with \"%(start)s\".)" msgstr "" -#: core/validators.py:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" "(start)s\".)" msgstr "" -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" "(start)s\".)" msgstr "" -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " "starts with \"%(start)s\".)" msgstr "" -#: core/validators.py:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " diff --git a/django/conf/locale/fr/LC_MESSAGES/django.po b/django/conf/locale/fr/LC_MESSAGES/django.po index ca05e22be7..ce4b1f3985 100644 --- a/django/conf/locale/fr/LC_MESSAGES/django.po +++ b/django/conf/locale/fr/LC_MESSAGES/django.po @@ -1250,8 +1250,8 @@ msgid "password" msgstr "mot de passe" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." -msgstr "Utilisez une chaine crypte MD5 -- pas un mot de passe en clair." +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "" #: models/auth.py:38 msgid "staff status" @@ -1302,6 +1302,10 @@ msgstr "Dates importantes" msgid "Message" msgstr "Message" +#: conf/global_settings.py:36 +msgid "Bengali" +msgstr "" + #: conf/global_settings.py:37 msgid "Bengali" msgstr "" @@ -1320,6 +1324,15 @@ msgid "Danish" msgstr "Espagnol" #: conf/global_settings.py:41 +msgid "Welsh" +msgstr "" + +#: conf/global_settings.py:39 +#, fuzzy +msgid "Danish" +msgstr "Espagnol" + +#: conf/global_settings.py:40 msgid "German" msgstr "Allemand" diff --git a/django/conf/locale/gl/LC_MESSAGES/django.po b/django/conf/locale/gl/LC_MESSAGES/django.po index 34f05cbb39..7743b3040b 100644 --- a/django/conf/locale/gl/LC_MESSAGES/django.po +++ b/django/conf/locale/gl/LC_MESSAGES/django.po @@ -1116,6 +1116,36 @@ msgstr "" msgid "Dec." msgstr "" +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:14 +msgid "day" +msgid_plural "days" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "" +msgstr[1] "" + #: models/core.py:7 msgid "domain name" msgstr "" @@ -1225,7 +1255,7 @@ msgid "password" msgstr "Contrasinal:" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." +msgid "Use '[algo]$[salt]$[hexdigest]" msgstr "" #: models/auth.py:38 @@ -1271,7 +1301,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "" @@ -1393,163 +1423,163 @@ msgstr "" msgid "This value must contain only letters, numbers and underscores." msgstr "Este valor soamente pode conter letras, números e guións baixos (_)." -#: core/validators.py:63 +#: core/validators.py:66 #, fuzzy msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "Este valor soamente pode conter letras, números e guións baixos (_)." -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "" -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "" -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "" -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "" -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "" -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "" -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "" -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "" -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "" -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "" -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "" -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "" -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "" -#: core/validators.py:135 +#: core/validators.py:138 #, fuzzy msgid "Enter a valid e-mail address." msgstr "Enderezo de correo electrónico:" -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." msgstr "" -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "" -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "" -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "" -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "" -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" "%s" msgstr "" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "" -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "" -#: core/validators.py:228 +#: core/validators.py:231 #, python-format msgid "Watch your mouth! The word %s is not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here." msgstr[0] "" msgstr[1] "" -#: core/validators.py:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "" -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "" -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "" -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "" -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "" -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "" -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "" -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "" -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -1557,7 +1587,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -1565,71 +1595,71 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "" -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "" -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "" -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "" -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "" -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." msgstr "" -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " "\"%(start)s\".)" msgstr "" -#: core/validators.py:465 +#: core/validators.py:468 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " "starts with \"%(start)s\".)" msgstr "" -#: core/validators.py:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" "(start)s\".)" msgstr "" -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" "(start)s\".)" msgstr "" -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " "starts with \"%(start)s\".)" msgstr "" -#: core/validators.py:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " diff --git a/django/conf/locale/is/LC_MESSAGES/django.mo b/django/conf/locale/is/LC_MESSAGES/django.mo index 0fe613576f..2cd24ca98b 100644 Binary files a/django/conf/locale/is/LC_MESSAGES/django.mo and b/django/conf/locale/is/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/is/LC_MESSAGES/django.po b/django/conf/locale/is/LC_MESSAGES/django.po index b016301e7e..3de67dbce5 100644 --- a/django/conf/locale/is/LC_MESSAGES/django.po +++ b/django/conf/locale/is/LC_MESSAGES/django.po @@ -1139,6 +1139,38 @@ msgstr "nóv." msgid "Dec." msgstr "des." +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:14 +#, fuzzy +msgid "day" +msgid_plural "days" +msgstr[0] "maí" +msgstr[1] "maí" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "vefur" +msgstr[1] "vefur" + #: models/core.py:7 msgid "domain name" msgstr "lén" @@ -1244,8 +1276,8 @@ msgid "password" msgstr "lykilorð" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." -msgstr "Notaðu MD5 hakk -- ekki hrátt lykilorðið" +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "" #: models/auth.py:38 msgid "staff status" @@ -1292,7 +1324,7 @@ msgstr "Persónuupplýsingar" msgid "Important dates" msgstr "Mikilvægar dagsetningar" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "Skilaboð" @@ -1419,68 +1451,68 @@ msgstr "Settu inn heila tölu." msgid "This value must contain only letters, numbers and underscores." msgstr "Þetta gildi má einungis innihalda stafi, tölur og undirstrik." -#: core/validators.py:63 +#: core/validators.py:66 msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "" "Þetta gildi má einungis innihalda stafi, tölur, undirstrik og skástrik." -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "Hástafir eru ekki leyfðir hér." -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "Lágstafir eru ekki leyfðir hér." -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "Skrifaðu einungis tölur aðskildar með kommum." -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "Skrifaðu gild póstföng aðskilin með kommum." -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "Vinsamlegast skrifaðu gilda IP tölu." -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "Tóm gildi eru ekki leyfð hér." -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "Aðeins tölustafir eru leyfðir hér." -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "Þetta gildi verður að vera samsett úr fleiru en tölustöfum." -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "Settu inn heila tölu." -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "Einungis bókstafir eru leyfðir hér." -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Skrifaðu gilda dagsetningu á YYYY-MM-DD forminu." -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "Skrifaðu gildan tíma á HH:MM forminu." -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "Skrifaðu gilda dagsetningu/tíma á YYYY-MM-DD HH:MM forminu." -#: core/validators.py:135 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "Skrifaðu gilt tölvupóstfang." -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -1488,26 +1520,26 @@ msgstr "" "Hladdu upp gilda myndskrá. Skráin sem þú hlóðst upp var annað hvort ekki " "mynd eða gölluð mynd." -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "Veffangið %s bendir ekki á gilda mynd." -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "Símanúmer verða að vera á XXX-XXX-XXXX forminu. \"%s\" er ógilt." -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "Veffangið %s bendir ekki á gilt QuickTime myndskeið." -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "Gilds veffangs er krafist" -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -1516,69 +1548,69 @@ msgstr "" "Gilt HTML er nauðsynlegt. Sérstakar villur:\n" "%s" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "Illa formað XML: %s" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "Ógilt veffang: %s" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "Veffangið %s er brotinn hlekkur." -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "Skrifaðu gilda styttingu á bandarísku fylkisnafni." -#: core/validators.py:228 +#: core/validators.py:231 #, python-format msgid "Watch your mouth! The word %s is not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here." msgstr[0] "Passaðu orðbragðið! Orðið %s er ekki leyft hér." msgstr[1] "Passaðu orðbragðið! Orðin %s eru ekki leyfð hér." -#: core/validators.py:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "Þessi reitur verður að passa við '%s' reitinn." -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "Vinsamlegast fylltu út einn reit að minnsta kosti." -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "Vinsamlegast fylltu út í báða reitina eða skildu þá eftir tóma." -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "Þessi reitur á að vera óútfylltur ef %(field)s er %(value)s" -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "Þessi reitur verður að vera útfylltur ef %(field)s er ekki %(value)s" -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "Endurtekin gildi eru ekki leyfð." -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "Þessi reitur verður að vera veldi af %s." -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "Vinsamlegast settu inn gilda tugatölu." -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -1586,7 +1618,7 @@ msgid_plural "" msgstr[0] "Vinsamlegast skrifaðu gilda tugatölu með %s tugastaf í mesta lagi." msgstr[1] "Vinsamlegast skrifaðu gilda tugatölu með %s tugastafi í mesta lagi." -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -1594,38 +1626,38 @@ msgid_plural "" msgstr[0] "Vinsamlegast skrifaðu gilda tugatölu með %s tugasæti í mesta lagi." msgstr[1] "Vinsamlegast skrifaðu gilda tugatölu með %s tugasæti í mesta lagi." -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "" "Gakktu úr skugga um að upphlaðin skrá sé að minnsta kosti %s bæti að stærð." -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "" "Gakktu úr skugga um að upphlaðin skrá sé í mesta lagi %s bæti að stærð." -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "Sniðið á þessum reit í rangt." -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "Þessi reitur er ótækur." -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "Gat engu náð úr %s." -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." msgstr "Veffangið %(url)s skilaði ótæka efnistagishausnum '%(contenttype)s'." -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " @@ -1634,7 +1666,7 @@ msgstr "" "Vinsamlegast lokaðu opna %(tag)s taginu sem byrjar á línu %(line)s (línan " "hefst á \"%(start)s\")." -#: core/validators.py:465 +#: core/validators.py:468 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " @@ -1643,7 +1675,7 @@ msgstr "" "Texti sem hefst á línu %(line)s er ekki leyfður í því samhengi. (Line starts " "with \"%(start)s\".)" -#: core/validators.py:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" @@ -1651,7 +1683,7 @@ msgid "" msgstr "" "\"%(attr)s\" á línu %(line)s er ótækt eigindi (línan hefst á \"%(start)s\")." -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" @@ -1659,7 +1691,7 @@ msgid "" msgstr "" "\"<%(tag)s>\" á línu %(line)s er ótækt tag (línan hefst á \"%(start)s\"." -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " @@ -1668,7 +1700,7 @@ msgstr "" "Tag á línu %(line)s vantar eitt eða fleiri nauðsynleg eigindi (línan hefst á " "\"%(start)s\")." -#: core/validators.py:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " diff --git a/django/conf/locale/it/LC_MESSAGES/django.mo b/django/conf/locale/it/LC_MESSAGES/django.mo index aa39b34ed1..993e388374 100644 Binary files a/django/conf/locale/it/LC_MESSAGES/django.mo and b/django/conf/locale/it/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/it/LC_MESSAGES/django.po b/django/conf/locale/it/LC_MESSAGES/django.po index 30bb1b5975..fa7852f787 100644 --- a/django/conf/locale/it/LC_MESSAGES/django.po +++ b/django/conf/locale/it/LC_MESSAGES/django.po @@ -1139,6 +1139,38 @@ msgstr "Nov." msgid "Dec." msgstr "Dic." +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:14 +#, fuzzy +msgid "day" +msgid_plural "days" +msgstr[0] "Maggio" +msgstr[1] "Maggio" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "sito" +msgstr[1] "sito" + #: models/core.py:7 msgid "domain name" msgstr "nome a dominio" @@ -1244,8 +1276,8 @@ msgid "password" msgstr "password" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." -msgstr "Usare il codice di controllo MD5 -- non la password." +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "" #: models/auth.py:38 msgid "staff status" @@ -1291,7 +1323,7 @@ msgstr "Informazioni personali" msgid "Important dates" msgstr "Date importanti" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "Messaggio" @@ -1419,95 +1451,95 @@ msgstr "Inserire un numero." msgid "This value must contain only letters, numbers and underscores." msgstr "Sono ammesse solo lettere, numeri e sottolineature ('_')." -#: core/validators.py:63 +#: core/validators.py:66 msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "Sono ammesse solo lettere, numeri, sottolineature ('_') e barre ('/')." -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "Non sono ammesse lettere maiuscole." -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "Non sono ammesse lettere minuscole." -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "Inserire solo numeri separati da virgole." -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "Inserire indirizzi e-mail validi separati da virgole." -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "Inserire un indirizzo IP valido." -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "E' necessario inserire un valore." -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "Sono ammessi soltanto caratteri alfabetici." -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "Il valore non pu essere composto solo da cifre." -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "Inserire un numero." -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "Sono ammessi solo caratteri alfabetici." -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Inserire un data valida in formato YYYY-MM-DD." -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "Inserire un orario valido in formato HH:MM." -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "Inserire una data/ora in formato YYYY-MM-DD HH:MM." -#: core/validators.py:135 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "Inserire un indirizzo e-mail valido." -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." msgstr "" "Caricare un'immagine valida. Il file inserito non un'immagine o corrotto." -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "L'URL %s non punta ad un'immagine valida." -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "" "I numeri di telefono devono essere in formato XXX-XXX-XXXX. \"%s\" non " "valido." -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "L'URL %s non punta ad un video QuickTime valido." -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "Inserire un URL valido." -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -1516,69 +1548,69 @@ msgstr "" "E' richiesto HTML valido. Gli errori sono i seguenti:\n" "%s" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "XML malformato: %s" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "URL non valida: %s" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "L'URL %s un link rotto." -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "Inserire un nome di stato americano abbreviato valido." -#: core/validators.py:228 +#: core/validators.py:231 #, python-format msgid "Watch your mouth! The word %s is not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here." msgstr[0] "Attenzione! La parola %s non ammessa qui." msgstr[1] "Attenzione! Le parole %s non sono ammesse qui." -#: core/validators.py:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "Questo campo deve corrispondere al campo '%s'." -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "Inserire almeno un campo." -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "Inserire entrambi i campi o lasciarli entrambi vuoti." -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "Il campo obbligatorio se %(field)s %(value)s" -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "Il campo non pu essere valorizzato se %(field)s non %(value)s" -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "Non sono ammessi valori duplicati." -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "Il valore deve essere una potenza di %s." -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "Inserire un numero decimale valido." -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -1586,7 +1618,7 @@ msgid_plural "" msgstr[0] "Inserire un numero decimale con non pi di %s cifre totali." msgstr[1] "" -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -1594,30 +1626,30 @@ msgid_plural "" msgstr[0] "Inserire un decimale con non pi di %s cifre decimali." msgstr[1] "" -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "Verifica che il file inserito sia almeno di %s byte." -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "Verifica che il file inserito sia al massimo %d byte." -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "Formato del file non valido." -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "Il campo non valido." -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "Impossibile recuperare alcunch da %s." -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." @@ -1625,7 +1657,7 @@ msgstr "" "L'URL %(url)s restituisce un Content-Type header non valido '%(contenttype)" "s'." -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " @@ -1634,7 +1666,7 @@ msgstr "" "Il tag %(tag)s alla linea %(line)s non chiuso. (La linea comincia con \"%" "(start)s\".)" -#: core/validators.py:465 +#: core/validators.py:468 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " @@ -1643,7 +1675,7 @@ msgstr "" "Il testo che comincia a linea %(line)s non e' ammesso in questo contesto. " "(La linea comincia con \"%(start)s\".)" -#: core/validators.py:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" @@ -1652,7 +1684,7 @@ msgstr "" "\"%(attr)s\" alla linea %(line)s un attributo invalido. (La linea comincia " "con \"%(start)s\".)" -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" @@ -1661,7 +1693,7 @@ msgstr "" "\"<%(tag)s>\" alla linea %(line)s tag non valido. (La linea comincia con \"%" "(start)s\".)" -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " @@ -1670,7 +1702,7 @@ msgstr "" "Un tag alla linea %(line)s manca di uno o pi attributi richiesti. (La linea " "comincia con \"%(start)s\".)" -#: core/validators.py:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " diff --git a/django/conf/locale/no/LC_MESSAGES/django.mo b/django/conf/locale/no/LC_MESSAGES/django.mo index 6e367dbc61..b0c214b147 100644 Binary files a/django/conf/locale/no/LC_MESSAGES/django.mo and b/django/conf/locale/no/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/no/LC_MESSAGES/django.po b/django/conf/locale/no/LC_MESSAGES/django.po index 928a28c109..a575178891 100644 --- a/django/conf/locale/no/LC_MESSAGES/django.po +++ b/django/conf/locale/no/LC_MESSAGES/django.po @@ -1164,6 +1164,38 @@ msgstr "Nov." msgid "Dec." msgstr "Des." +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:14 +#, fuzzy +msgid "day" +msgid_plural "days" +msgstr[0] "Mai" +msgstr[1] "Mai" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "side" +msgstr[1] "side" + #: models/core.py:7 msgid "domain name" msgstr "domene navn" @@ -1269,8 +1301,8 @@ msgid "password" msgstr "passord" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." -msgstr "Bruk en MD5 nøkkel -- ikke passordet i ren tekst" +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "" #: models/auth.py:38 msgid "staff status" @@ -1316,7 +1348,7 @@ msgstr "Personlig informasjon" msgid "Important dates" msgstr "Viktige datoer" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "Meldinger" @@ -1437,69 +1469,69 @@ msgstr "Skriv inn et heltall mellom 0 og 32767." msgid "This value must contain only letters, numbers and underscores." msgstr "Dette feltet må bare inneholde bokstaver, nummer og understreker." -#: core/validators.py:63 +#: core/validators.py:66 msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "" "Dette feltet må bare inneholde bokstaver, nummer, understreker og " "skråstreker." -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "Tor skrift er ikke tillatt her." -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "Små bokstaver er ikke tillatt her." -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "Skriv inn bare tall, skilt med kommaer." -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "Skriv inn e-post adresser skilt med kommaer." -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "Vennligst skriv inn en godkjent IP adresse." -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "Dette felte kan ikke være tomt." -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "Det er bare tall som kan stå i dette feltet." -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "Dette feltet kan ikke bare bestå av nummer." -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "Skriv inn et helt nummer." -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "Bare alfabetiske bokstaber er tillatt her." -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Skriv inn en dato i ÅÅÅÅ-MM-DD formatet." -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "Skriv inn tiden i TT:MM formatet." -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "Skriv inn dato og tid i ÅÅÅÅ-MM-DD TT:MM formatet." -#: core/validators.py:135 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "Skriv inn en godkjent e-post adresse." -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -1507,27 +1539,27 @@ msgstr "" "Lastopp et bilde. Filen du lastet opp var ikke et bilde, eller så var det et " "ødelagt bilde" -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "Internettadressen %s peker ikke til et godkjent bilde." -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "" "Telefon nummeret må være i XXX-XXX-XXXX formatet. \"%s\" er ikke godkjent." -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "Internettadressen %s peker ikke til en godkjent QuickTime film." -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "En godkjent internettadresse er påbudt." -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -1536,69 +1568,69 @@ msgstr "" "Godkjent HTML er påbudt. Feilene var:\n" "%s" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "Ikke godkjent XML: %s" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "Ikke godkjent internettadresse: %s" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "Internettadresse fører til en side som ikke virker." -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "Skriv inn en godkjent amerikansk stats forkortelse." -#: core/validators.py:228 +#: core/validators.py:231 #, python-format msgid "Watch your mouth! The word %s is not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here." msgstr[0] "Pass munnen din! Ordet %s er ikke tillatt her." msgstr[1] "Pass munnen din! Ordene %s er ikke tillatt her." -#: core/validators.py:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "Dette felte må være det samme som i '%s' feltet." -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "Vennligst skriv inn noe i minst et felt." -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "Vennligst skriv inn noe i begge felta, eller la dem stå blanke." -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "Dette feltet må bare brukes vist %(field)s er lik %(value)s" -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "Dette feltet må bare brukes vist %(field)s ikke er lik %(value)s" -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "Like verdier er ikke tillatt." -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "Denne verdien må være 'power' av %s." -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "Vennligst skriv inn et godkjent desimal tall." -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -1606,7 +1638,7 @@ msgid_plural "" msgstr[0] "Skriv inn et desimal tall med maksimum %s total antall tall." msgstr[1] "Skriv inn et desimal tall med maksimum %s total antall tall." -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -1614,32 +1646,32 @@ msgid_plural "" msgstr[0] "Skriv inn et desimal tall med maksimum %s tall bak komma. " msgstr[1] "Skriv inn et desimal tall med maksimum %s tall bak komma. " -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "" "Er du sikker på at fila du prøver å laste opp er minimum %s bytes stor?" -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "" "Er du sikker på at fila du prøver å laste opp er maksimum %s bytes stor?" -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "Formatet i dette feltet er feil." -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "Dette feltet er feil." -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "Klarte ikke å motta noe fra %s." -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." @@ -1647,7 +1679,7 @@ msgstr "" "Tnternettadressen %(url)s returnerte en ikke godkjent Content-Type '%" "(contenttype)s'." -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " @@ -1656,7 +1688,7 @@ msgstr "" "Vennligst lukk taggen %(tag)s på linje %(line)s. (Linja starer med \"%(start)" "s\".)" -#: core/validators.py:465 +#: core/validators.py:468 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " @@ -1665,7 +1697,7 @@ msgstr "" "Noe av teksten som starter på linje %(line)s er ikke tillatt. (Linja starter " "med \"%(start)s\".)" -#: core/validators.py:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" @@ -1674,7 +1706,7 @@ msgstr "" "\"%(attr)s\" på linje %(line)s er ikke en godkjent tillegg. (Linja starter " "med \"%(start)s\".)" -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" @@ -1683,7 +1715,7 @@ msgstr "" "\"<%(tag)s>\" på linje %(line)s er ikke en godkjent tag. (linja starter med " "\"%(start)s\".)" -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " @@ -1692,7 +1724,7 @@ msgstr "" "En tag på linje %(line)s mangler en av de påbydte tillegga. (linja starter " "med \"%(start)s\".)" -#: core/validators.py:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " diff --git a/django/conf/locale/pt_BR/LC_MESSAGES/django.mo b/django/conf/locale/pt_BR/LC_MESSAGES/django.mo index b01bf95505..81164685ab 100644 Binary files a/django/conf/locale/pt_BR/LC_MESSAGES/django.mo and b/django/conf/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/pt_BR/LC_MESSAGES/django.po b/django/conf/locale/pt_BR/LC_MESSAGES/django.po index 31a5bb97cb..3f595e71d7 100644 --- a/django/conf/locale/pt_BR/LC_MESSAGES/django.po +++ b/django/conf/locale/pt_BR/LC_MESSAGES/django.po @@ -1138,6 +1138,38 @@ msgstr "Nov." msgid "Dec." msgstr "Dez." +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:14 +#, fuzzy +msgid "day" +msgid_plural "days" +msgstr[0] "Maio" +msgstr[1] "Maio" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "site" +msgstr[1] "site" + #: models/core.py:7 msgid "domain name" msgstr "nome do domínio" @@ -1247,8 +1279,8 @@ msgid "password" msgstr "senha" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." -msgstr "Usar um código MD5 -- não o texto da senha." +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "" #: models/auth.py:38 msgid "staff status" @@ -1295,7 +1327,7 @@ msgstr "Informações pessoais" msgid "Important dates" msgstr "Datas importantes" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "Mensagem" @@ -1423,67 +1455,67 @@ msgstr "Informe um número inteiro." msgid "This value must contain only letters, numbers and underscores." msgstr "Deve conter apenas letras, números e sublinhados (_)." -#: core/validators.py:63 +#: core/validators.py:66 msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "Deve conter apenas letras, números, sublinhados (_) e barras (/)." -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "Letras em maiúsculo não são permitidas aqui." -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "Letras em minúsculo não são permitidas aqui." -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "Informe apenas dígitos separados por vírgulas." -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "Informe endereços de email válidos separados por vírgulas." -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "Informe um endereço IP válido." -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "Valores em branco não são permitidos." -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "Caracteres não numéricos não são permitidos." -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "Este valor não pode conter apenas dígitos." -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "Informe um número inteiro." -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "Apenas caracteres do alfabeto são permitidos aqui." -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Informe uma data válida no formato AAAA-MM-DD." -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "Informe uma hora válida no formato HH:MM." -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "Informe uma data/hora válida no formato AAAA-MM-DD HH:MM." -#: core/validators.py:135 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "Informe um endereço de email válido." -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -1491,27 +1523,27 @@ msgstr "" "Envie uma imagem válida. O arquivo enviado não é uma imagem ou está " "corrompido." -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "A URL %s não aponta para um imagem válida." -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "" "Números de telefone deves estar no formato XXX-XXX-XXXX.\"%s\" é inválido." -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "A URL %s não aponta para um vídeo QuickTime válido." -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "Uma URL válida é exigida." -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -1520,69 +1552,69 @@ msgstr "" "HTML válido é exigido. Estes são os erros específicos:\n" "%s" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "XML mal formado: %s" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "URL inválida: %s" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "A URL %s é um link quebrado." -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "Informe uma abreviação válida de nome de um estado dos EUA." -#: core/validators.py:228 +#: core/validators.py:231 #, python-format msgid "Watch your mouth! The word %s is not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here." msgstr[0] "Lave sua boca! A palavra %s não é permitida aqui." msgstr[1] "Lave sua boca! As palavras %s não são permitidas aqui." -#: core/validators.py:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "Este campo deve ser igual ao campo '%s'." -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "Informe algo em pelo menos um campo." -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "Informe ambos os campos ou deixe ambos vazios." -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "Este campo deve ser informado se o campo %(field)s for %(value)s." -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "Este campo deve ser dado se o campo %(field)s não for %(value)s." -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "Valores duplicados não são permitidos." -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "Este valor deve ser uma potência de %s." -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "Informe um número decimal." -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -1590,7 +1622,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -1598,30 +1630,30 @@ msgid_plural "" msgstr[0] "Informe um número decimal com no máximo %s casa decimal." msgstr[1] "Informe um número decimal com no máximo %s casas decimais." -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "Verifique se o arquivo enviado tem pelo menos %s bytes." -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "Verifique se o arquivo enviado tem no máximo %s bytes." -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "O formato deste campo está errado." -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "Este campo é inválido." -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "Não foi possível receber dados de %s." -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." @@ -1629,7 +1661,7 @@ msgstr "" "A URL %(url)s retornou um cabeçalho '%(contenttype)s' de Content-Type " "inválido." -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " @@ -1638,7 +1670,7 @@ msgstr "" "Por favor, feche a tag %(tag)s na linha %(line)s. (A linha começa com \"%" "(start)s\".)" -#: core/validators.py:465 +#: core/validators.py:468 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " @@ -1647,7 +1679,7 @@ msgstr "" "Algum texto começando na linha %(line)s não é permitido no contexto. (Linha " "começa com \"%(start)s\".)" -#: core/validators.py:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" @@ -1656,7 +1688,7 @@ msgstr "" "\"%(attr)s\" na linha %(line)s não é um atributo válido. (Linha começa com " "\"%(start)s\".)" -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" @@ -1665,7 +1697,7 @@ msgstr "" "\"<%(tag)s>\" na linha %(line)s é uma tag inválida. (Linha começa com \"%" "(start)s\".)" -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " @@ -1674,7 +1706,7 @@ msgstr "" "Uma tag na linha %(line)s está não apresenta um ou mais atributos exigidos." "(Linha começa com \"%(start)s\".)" -#: core/validators.py:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " diff --git a/django/conf/locale/ro/LC_MESSAGES/django.mo b/django/conf/locale/ro/LC_MESSAGES/django.mo index cd30b7702a..2181b138e4 100644 Binary files a/django/conf/locale/ro/LC_MESSAGES/django.mo and b/django/conf/locale/ro/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/ro/LC_MESSAGES/django.po b/django/conf/locale/ro/LC_MESSAGES/django.po index 3608fa8f4a..097cb0c4b2 100644 --- a/django/conf/locale/ro/LC_MESSAGES/django.po +++ b/django/conf/locale/ro/LC_MESSAGES/django.po @@ -1140,6 +1140,38 @@ msgstr "Noi." msgid "Dec." msgstr "Dec." +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:14 +#, fuzzy +msgid "day" +msgid_plural "days" +msgstr[0] "Mai" +msgstr[1] "Mai" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "sit" +msgstr[1] "sit" + #: models/core.py:7 msgid "domain name" msgstr "nume domeniu" @@ -1245,8 +1277,8 @@ msgid "password" msgstr "parola" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." -msgstr "Foloseşte un hash MD5 -- nu parola brută" +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "" #: models/auth.py:38 msgid "staff status" @@ -1292,7 +1324,7 @@ msgstr "Informaţii personale" msgid "Important dates" msgstr "Date importante" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "Mesaj" @@ -1421,69 +1453,69 @@ msgstr "" "Această valoare trebuie să conţină numai litere, numere şi liniuţe de " "subliniere." -#: core/validators.py:63 +#: core/validators.py:66 msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "" "Această valoare trebuie să conţină numai litere, numere, liniuţe de " "subliniere şi slash-uri." -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "Literele mari nu sînt permise aici." -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "Literele mici nu sînt permise aici." -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "Introduceţi numai numere separate de virgule." -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "Introduceţi adrese de email valide separate de virgule." -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "Introduceţi vă rog o adresă IP validă." -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "Valorile vide nu sînt permise aici." -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "Caracterele ne-numerice nu sînt permise aici." -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "Această valoare nu poate conţîne numai cifre." -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "Introduceţi un număr întreg." -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "Numai caractere alfabetice sînt permise aici." -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Introduceţi o dată validă in format: AAAA-LL-ZZ." -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "Introduceţi o oră în format OO:MM." -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "Introduceţi o dată/oră validă în format AAAA-LL-ZZ OO:MM." -#: core/validators.py:135 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "Introduceţi o adresă de email validă." -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -1491,27 +1523,27 @@ msgstr "" "Încărcaţi o imagine validă. Fişierul încărcat nu era o imagine sau era o " "imagine coruptă." -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "URL-ul %s nu pointează către o imagine validă." -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "" "Numerele de telefon trebuie să fie in format XXX-XXX-XXXX. \"%s\" e invalid." -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "URL-ul %s nu pointează către o imagine video QuickTime validă." -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "E necesar un URL valid." -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -1520,70 +1552,70 @@ msgstr "" "E necesar cod HTML valid. Erorile specifice sînt:\n" "%s" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "Format XML invalid: %s" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "URL invalid: %s" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "URL-ul %s e invalid." -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "Introduceţi o abreviere validă în U.S." -#: core/validators.py:228 +#: core/validators.py:231 #, python-format msgid "Watch your mouth! The word %s is not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here." msgstr[0] "Îngrijiţi-vă limbajul! Cuvîntul %s nu este permis aici." msgstr[1] "Îngrijiţi-vă limbajul! Cuvintele %s nu sînt permise aici." -#: core/validators.py:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "" -#: core/validators.py:254 +#: core/validators.py:257 #, fuzzy msgid "Please enter something for at least one field." msgstr "Vă rog comletaţi ambele cîmpuri sau lăsaţi-le goale pe ambele." -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "Vă rog comletaţi ambele cîmpuri sau lăsaţi-le goale pe ambele." -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "Acest cîmp e necesar dacă %(field)s este %(value)s" -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "Acest cîmp e necesar dacă %(field)s nu este %(value)s" -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "Valorile duplicate nu sînt permise." -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "Această valoare trebuie să fie o putere a lui %s." -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "Vă rog introduceţi un număr zecimal valid." -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -1591,7 +1623,7 @@ msgid_plural "" msgstr[0] "Vă rog introduceţi un număr zecimal valid cu cel mult %s cifră." msgstr[1] "Vă rog introduceţi un număr zecimal valid cu cel mult %s cifre." -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -1599,37 +1631,37 @@ msgid_plural "" msgstr[0] "Vă rog introduceţi un număr zecimal valid cu cel mult %s zecimală." msgstr[1] "Vă rog introduceţi un număr zecimal valid cu cel mult %s zecimale." -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "Asigură-te că fişierul încărcact are cel puţin %s octeţi." -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "Asigură-te că fişierul încărcact are cel mult %s octeţi." -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "Formatul acestui cîmp este invalid." -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "Cîmpul este invalid." -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "Nu pot prelua nimic de la %s." -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." msgstr "" "URL-ul %(url)s a returnat un header Content-Type invalid '%(contenttype)s'." -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " @@ -1638,7 +1670,7 @@ msgstr "" "Te rog închide tagurile %(tag)s din linia %(line)s. ( Linia începe cu \"%" "(start)s\".)" -#: core/validators.py:465 +#: core/validators.py:468 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " @@ -1647,7 +1679,7 @@ msgstr "" "Textul începînd cu linia %(line)s nu e permis în acest context. (Linia " "începînd cu \"%(start)s\".)" -#: core/validators.py:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" @@ -1656,7 +1688,7 @@ msgstr "" "\"%(attr)s\" în linia %(line)s e un atribut invalid. (Linia începînd cu \"%" "(start)s\".)" -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" @@ -1665,7 +1697,7 @@ msgstr "" "\"<%(tag)s>\" în linia %(line)s este un tag invalid. (Linia începe cu \"%" "(start)s\"." -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " @@ -1674,7 +1706,7 @@ msgstr "" "Unui tag din linia %(line)s îi lipseşte unul sau mai multe atribute. (Linia " "începe cu \"%(start)s\".)" -#: core/validators.py:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " diff --git a/django/conf/locale/ru/LC_MESSAGES/django.po b/django/conf/locale/ru/LC_MESSAGES/django.po index 852f5afb17..2eb0adf32f 100644 --- a/django/conf/locale/ru/LC_MESSAGES/django.po +++ b/django/conf/locale/ru/LC_MESSAGES/django.po @@ -1119,6 +1119,38 @@ msgstr " msgid "Dec." msgstr "." +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:14 +#, fuzzy +msgid "day" +msgid_plural "days" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "" +msgstr[1] "" + #: models/core.py:7 msgid "domain name" msgstr "" @@ -1228,8 +1260,8 @@ msgid "password" msgstr ":" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." -msgstr " MD5 -- ." +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "" #: models/auth.py:38 msgid "staff status" @@ -1297,6 +1329,10 @@ msgid "Danish" msgstr "" #: conf/global_settings.py:41 +msgid "Danish" +msgstr "" + +#: conf/global_settings.py:40 msgid "German" msgstr "" @@ -1398,69 +1434,69 @@ msgstr "" msgid "This value must contain only letters, numbers and underscores." msgstr " , ." -#: core/validators.py:63 +#: core/validators.py:66 #, fuzzy msgid "This value must contain only letters, numbers, underscores and slashes." msgstr " , ." -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr " " -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr " " -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr " ̣ " -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr " e-mail ̣ " -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr ", IP " -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr " " -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr " " -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "" -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr " " -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr " " -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr " YYYY-MM-DD." -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr " HH:MM." -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr " / YYYY-MM-DD HH:MM." -#: core/validators.py:135 +#: core/validators.py:138 #, fuzzy msgid "Enter a valid e-mail address." msgstr "E-mail :" -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -1468,26 +1504,26 @@ msgstr "" " . , , " " ." -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "URL %s ." -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr " XXX-XXX-XXXX. \"%s\" ." -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "URL %s QuickTime." -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr " URL ." -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -1496,12 +1532,12 @@ msgstr "" " HTML . :\n" "%s" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr " XML: %s" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr " URL: %s" @@ -1563,18 +1599,24 @@ msgstr " msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" "Please enter a valid decimal number with at most %s total digits." -msgstr[0] ", %s." +msgstr[0] "" +", " +" %s." msgstr[1] "" -", %s." +", " +" %s." #: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" "Please enter a valid decimal number with at most %s decimal places." -msgstr[0] ", %s." +msgstr[0] "" +", " +" %s." msgstr[1] "" -", %s." +", " +" %s." #: core/validators.py:361 #, python-format @@ -1603,8 +1645,7 @@ msgstr " #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." -msgstr "" -"URL %(url) Content-Type '%(contenttype)'." +msgstr "URL %(url) Content-Type '%(contenttype)'." #: core/validators.py:461 #, python-format diff --git a/django/conf/locale/sk/LC_MESSAGES/django.mo b/django/conf/locale/sk/LC_MESSAGES/django.mo index 31a5c8a97b..660aebd795 100644 Binary files a/django/conf/locale/sk/LC_MESSAGES/django.mo and b/django/conf/locale/sk/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/sk/LC_MESSAGES/django.po b/django/conf/locale/sk/LC_MESSAGES/django.po index 893c400a24..bb6a9a6fb8 100644 --- a/django/conf/locale/sk/LC_MESSAGES/django.po +++ b/django/conf/locale/sk/LC_MESSAGES/django.po @@ -1072,6 +1072,18 @@ msgstr "DATUMCAS_FORMAT" msgid "TIME_FORMAT" msgstr "CAS_FORMAT" +#: utils/translation.py:335 +msgid "DATE_FORMAT" +msgstr "DATUM_FORMAT" + +#: utils/translation.py:336 +msgid "DATETIME_FORMAT" +msgstr "DATUMCAS_FORMAT" + +#: utils/translation.py:337 +msgid "TIME_FORMAT" +msgstr "CAS_FORMAT" + #: utils/dates.py:6 msgid "Monday" msgstr "Pondelok" @@ -1176,6 +1188,19 @@ msgstr "Nov." msgid "Dec." msgstr "Dec." +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "web" +msgstr[1] "web" + #: models/core.py:7 msgid "domain name" msgstr "meno domény" @@ -1329,7 +1354,7 @@ msgstr "Osobné údaje" msgid "Important dates" msgstr "Dôležité údaje" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "Zpráva" @@ -1456,67 +1481,67 @@ msgstr "Vložte celé číslo s hodnotou medzi 0 a 32,767." msgid "This value must contain only letters, numbers and underscores." msgstr "Toto môže obsahovať len písmená, číslice a podčiarkovníky." -#: core/validators.py:63 +#: core/validators.py:66 msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "Toto môže obsahovať len písmena, číslice, podčiarkovniky a lomítka." -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "Veľké písmená tu nie sú povolené." -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "Malé písmena tu nie sú povolené." -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "Vložte len číslice, oddelené čiarkami." -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "Vložte platné e-mail adresy oddelené čiarkami." -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "Prosím vložte platnú IP adresu." -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "Prázdne hodnoty tu nie sú povolené." -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "Znaky, ktoré nie sú číslicami, tu nie sú povolené." -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "Tento údaj nemôže byť vytvorený len z číslic." -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "Vložte celé číslo." -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "Tu sú povolené len alfanumerické znaky." -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Vložte platný dátum vo formáte RRRR-MM-DD." -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "Vložte platný čas vo formáte HH:MM." -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "Vlož platný dátum/čas vo formáte RRRR-MM-DD HH:MM" -#: core/validators.py:135 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "Vložte platnú e-mail adresu." -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -1524,26 +1549,26 @@ msgstr "" "Nahrajte platný obrázok. Súbor, ktorý ste nahrali buď nebol obrázok alebo je " "nahratý poškodený obrázok." -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "URL %s neodkazuje na platný obrázok." -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "Telefónne číslo musí mať formát XXX-XXX-XXXX. \"%s\" je neplatné." -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "URL %s neodkazuje na platné QuickTime video." -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "Platné URL je požadované." -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -1552,70 +1577,70 @@ msgstr "" "Platná HTML je požadovaná. Konkrétne chyby sú:\n" "%s" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "Zle formované XML: %s" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "Neplatný URL %s" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "Odkaz na URL %s je neplatný." -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "Vložte platnú skratku U.S. štátu." -#: core/validators.py:228 +#: core/validators.py:231 #, python-format msgid "Watch your mouth! The word %s is not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here." msgstr[0] "Vyjadrujte sa slušne! Slovo %s tu nie je dovolené použivať." msgstr[1] "Vyjadrujte sa slušne! Slová %s tu nie je dovolené použivať." -#: core/validators.py:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "Toto pole sa musí zhodovať s poľom '%s'. " -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "Prosím vložte niečo aspoň pre jedno pole." -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "Prosím vložte obidve polia, alebo nechajte ich obe prázdne. " -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "Toto pole musí byť vyplnené tak, že %(field)s obsahuje %(value)s" -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "" "Toto pole musí byť vyplnené tak, že %(field)s nesmie obsahovať %(value)s" -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "Duplicitné hodnoty nie sú povolené." -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "Táto hodnota musí byť mocninou %s." -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "Prosím vložte platné desiatkové číslo. " -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -1623,7 +1648,7 @@ msgid_plural "" msgstr[0] "Prosím vložte platné desiatkové číslo s najviac %s číslicou." msgstr[1] "Prosím vložte platné desiatkové číslo s najviac %s číslicami." -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -1633,37 +1658,37 @@ msgstr[0] "" msgstr[1] "" "Prosím vložte platné desatinné číslo s najviac %s desatinnými miestami." -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "Presvedčte sa, že posielaný súbor nemá menej ako %s bytov." -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "Presvedčte sa, že posielaný súbor nemá viac ako %s bytov." -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "Formát pre toto pole je chybný." -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "Toto pole nie je platné." -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "Nič som nemohol získať z %s." -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." msgstr "" " URL %(url)s vrátilo neplatnú hlavičku Content-Type '%(contenttype)s'." -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " @@ -1672,7 +1697,7 @@ msgstr "" "Prosím zavrite nezavretý %(tag)s popisovač v riadku %(line)s. (Riadok " "začína s \"%(start)s\".)" -#: core/validators.py:465 +#: core/validators.py:468 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " @@ -1681,7 +1706,7 @@ msgstr "" "Nejaký text začínajúci na riadku %(line)s nie je povolený v tomto kontexte. " "(Riadok začína s \"%(start)s\".)" -#: core/validators.py:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" @@ -1690,7 +1715,7 @@ msgstr "" "\"%(attr)s\" na riadku %(line)s je neplatný atribút. (Riadok začína s \"%" "(start)s\".)" -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" @@ -1699,7 +1724,7 @@ msgstr "" "\"<%(tag)s>\" na riadku %(line)s je neplatný popisovač. (Riadok začína s \"%" "(start)s\".)" -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " @@ -1708,7 +1733,7 @@ msgstr "" "Popisovaču na riadku %(line)s chýba jeden alebo viac atribútov. (Riadok " "začína s \"%(start)s\".)" -#: core/validators.py:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " diff --git a/django/conf/locale/sr/LC_MESSAGES/django.mo b/django/conf/locale/sr/LC_MESSAGES/django.mo index 9aff1a9da0..89599854f9 100644 Binary files a/django/conf/locale/sr/LC_MESSAGES/django.mo and b/django/conf/locale/sr/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/sr/LC_MESSAGES/django.po b/django/conf/locale/sr/LC_MESSAGES/django.po index 58ea128c5b..868729acfb 100644 --- a/django/conf/locale/sr/LC_MESSAGES/django.po +++ b/django/conf/locale/sr/LC_MESSAGES/django.po @@ -1099,6 +1099,43 @@ msgstr "Nov." msgid "Dec." msgstr "Dec." +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: utils/timesince.py:14 +#, fuzzy +msgid "day" +msgid_plural "days" +msgstr[0] "Maj" +msgstr[1] "Maj" +msgstr[2] "Maj" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: utils/timesince.py:16 +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "sajt" +msgstr[1] "sajt" +msgstr[2] "sajt" + #: models/core.py:7 msgid "domain name" msgstr "ime domena" @@ -1209,8 +1246,8 @@ msgid "password" msgstr "lozinka" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." -msgstr "Unesite MD5 hash šifre -- ne unosite sam tekst šifre." +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "" #: models/auth.py:38 msgid "staff status" @@ -1252,7 +1289,7 @@ msgstr "Lične informacije" msgid "Important dates" msgstr "Važni datumi" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "Poruka" @@ -1375,95 +1412,95 @@ msgid "Enter a whole number between 0 and 32,767." msgstr "Unesite celi broj između 0 i 32,767." # nesh: Ovo je opis za stari SlugField -#: core/validators.py:59 +#: core/validators.py:62 msgid "This value must contain only letters, numbers and underscores." msgstr "Ovo polje može sadržati samo slova, brojeve i donju crtu (_)." -#: core/validators.py:63 +#: core/validators.py:66 msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "Ovo polje može sadržati samo slova, brojeve, donju crtu (_) i kose crte." -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "Velika slova ovde nisu dozvoljena." -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "Mala slova ovde nisu dozvoljena." -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "Unesite samo brojeve razdvojene zarezima." -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "Unesite ispravne e-mail adrese razdvojene zarezima." -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "Unesite ispravnu IP adresu." -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "Prazne vrednosti ovde nisu dozvoljene." -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "Ovde možete uneti samo brojeve." -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "Podatak se ne može sastojati samo od brojeva." -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "Unesite celi broj." -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "Ovde možete koristiti samo slova." -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Unesite ispravan datum u YYYY-MM-DD formatu." -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "Unesite ispravno vreme u HH:MM formatu." -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "Unesite ispravan datum i vreme u YYYY-MM-DD HH:MM formatu." -#: core/validators.py:135 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "Unesite ispravnu e-mail adresu." -#: core/validators.py:147 +#: core/validators.py:150 msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image." msgstr "Pošaljite ispravnu sliku. Fajl koji ste poslali ili nije slika ili je sam fajl oštećen." -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "URL %s ne pokazuje na ispravnu sliku" # nesh: tel. brojevi su u američkom formatu, ovo se ionako neće koristiti u i18n delu -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "Telefonski brojevi moraju biti u formatu XXX-XXX-XXXX. \"%s\" je neispravan." -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "URL %s ne pokazuje na ispravni QuickTime video fajl." -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "Unesite ispravan URL." -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -1472,12 +1509,12 @@ msgstr "" "Unesite ispravan HTML. Greške su:\n" "%s" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "Neispravan XML: %s" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "Neispravan URL: %s" @@ -1489,11 +1526,11 @@ msgid "The URL %s is a broken link." msgstr "URL %s je neispravan link." # nesh: Ni ovo nije interesantno za i18n -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "Unesite ispravnu skraćenicu za U.S. državu." -#: core/validators.py:228 +#: core/validators.py:231 #, python-format msgid "Watch your mouth! The word %s is not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here." @@ -1501,12 +1538,12 @@ msgstr[0] "Pripazi na jezik! %s reč nije ovde dozvoljena." msgstr[1] "Pripazi na jezik! %s reči nisu ovde dozvoljene." msgstr[2] "Pripazi na jezik! %s reči nisu ovde dozvoljene." -#: core/validators.py:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "Ovo polje mora biti jednako sa poljem '%s'." -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "Morate popuniti barem jedno polje." @@ -1515,30 +1552,30 @@ msgstr "Morate popuniti barem jedno polje." msgid "Please enter both fields or leave them both empty." msgstr "Popunite oba polja ili oba ostavite prazna." -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "Ovo polje mora biti uneto ako polje %(field)s ima vrednost %(value)s" -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "Ovo polje mora biti uneto ako polje %(field)s nema vrednost %(value)s" -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "Duple vrednosti nisu dozvoljene." -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "Vrednost mora biti stepena %s." -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "Unesite ispravan decimalni broj." -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "Please enter a valid decimal number with at most %s total digits." @@ -1546,7 +1583,7 @@ msgstr[0] "Unesite ispravan decimalni broj sa %s cifrom." msgstr[1] "Unesite ispravan decimalni broj sa %s cifre." msgstr[2] "Unesite ispravan decimalni broj sa %s cifara." -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "Please enter a valid decimal number with at most %s decimal places." @@ -1554,60 +1591,60 @@ msgstr[0] "Unesite decimalni broj sa najviše %s decimalnim mestom." msgstr[1] "Unesite decimalni broj sa najviše %s decimalna mesta." msgstr[2] "Unesite decimalni broj sa najviše %s decimalnih mesta." -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "Veličina fajla mora biti najmanje %s bajtova." -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "Veličina fajla mora biti najviše %s bajtova." -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "Pogrešan format polja." -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "Neispravno polje." -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "Ništa nije moglo da se skine sa URL-a %s." -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." msgstr "Sa URL-a %(url)s se vratio pogrešan Content-Type header '%(contenttype)s'." -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \"%(start)s\".)" msgstr "Zatvorite nezatvoren tag \"%(tag)s\" iz reda %(line)s. (Red počinje sa \"%(start)s\".)" -#: core/validators.py:465 +#: core/validators.py:468 #, python-format msgid "Some text starting on line %(line)s is not allowed in that context. (Line starts with \"%(start)s\".)" msgstr "Tekst koji počinje u redu %(line)s nije dozvoljen u ovom kontekstu. (Red počinje sa \"%(start)s\".)" -#: core/validators.py:470 +#: core/validators.py:473 #, python-format msgid "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%(start)s\".)" msgstr "Atribut \"%(attr)s\" u red %(line)s je neispravan. (Red počinje sa \"%(start)s\".)" -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%(start)s\".)" msgstr "Tag \"<%(tag)s>\" u redu %(line)s je neispravan. (Red počinje \"%(start)s\".)" -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "A tag on line %(line)s is missing one or more required attributes. (Line starts with \"%(start)s\".)" msgstr "Tag-u u redu %(line)s nedostaje jedan ili više atributa. (Red počinje sa \"%(start)s\".)" -#: core/validators.py:484 +#: core/validators.py:487 #, python-format msgid "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line starts with \"%(start)s\".)" msgstr "Atribut \"%(attr)s\" u redu %(line)s ima neispravnu vrednost. (Red počinje sa \"%(start)s\".)" diff --git a/django/conf/locale/sv/LC_MESSAGES/django.mo b/django/conf/locale/sv/LC_MESSAGES/django.mo index 72c0852493..ca8c526929 100644 Binary files a/django/conf/locale/sv/LC_MESSAGES/django.mo and b/django/conf/locale/sv/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/sv/LC_MESSAGES/django.po b/django/conf/locale/sv/LC_MESSAGES/django.po index 976b58e322..5b4851849b 100644 --- a/django/conf/locale/sv/LC_MESSAGES/django.po +++ b/django/conf/locale/sv/LC_MESSAGES/django.po @@ -1141,6 +1141,38 @@ msgstr "nov" msgid "Dec." msgstr "dec" +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:14 +#, fuzzy +msgid "day" +msgid_plural "days" +msgstr[0] "maj" +msgstr[1] "maj" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "sida" +msgstr[1] "sida" + #: models/core.py:7 msgid "domain name" msgstr "domännamn" @@ -1246,8 +1278,8 @@ msgid "password" msgstr "lösenord" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." -msgstr "Använd en MD5-hash -- inte lösenordet i ren text." +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "" #: models/auth.py:38 msgid "staff status" @@ -1293,7 +1325,7 @@ msgstr "Personlig information" msgid "Important dates" msgstr "Viktiga datum" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "Meddelande" @@ -1420,68 +1452,68 @@ msgstr "Fyll i ett heltal." msgid "This value must contain only letters, numbers and underscores." msgstr "Det här värdet får bara innehålla bokstäver, tal och understräck." -#: core/validators.py:63 +#: core/validators.py:66 msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "" "Det här värdet får bara innehålla bokstäver, tal, understräck och snedsträck" -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "Stora bokstäver är inte tillåtna här." -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "Små bokstäver är inte tillåtna här." -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "Fyll enbart i siffror avskillda med kommatecken." -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "Fyll i giltiga e-postadresser avskillda med kommatecken." -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "Var god fyll i ett giltigt IP-nummer." -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "Tomma värden är inte tillåtna här." -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "Icke-numeriska tecken är inte tillåtna här." -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "Det här värdet kan inte enbart bestå av siffror." -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "Fyll i ett heltal." -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "Endast alfabetiska bokstäver är tillåtna här." -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Fyll i ett giltigt datum i formatet ÅÅÅÅ-MM-DD." -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "Fyll i en giltig tid i formatet TT:MM" -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "Fyll i en giltig tidpunkt i formatet ÅÅÅÅ-MM-DD TT:MM" -#: core/validators.py:135 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "Fyll i en giltig e-postadress." -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -1489,28 +1521,28 @@ msgstr "" "Ladda upp en giltig bild. Filen du laddade upp var antingen inte en bild, " "eller så var det en korrupt bild." -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "Adressen %s pekar inte till en giltig bild." -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "" "Telefonnummer måste vara i det amerikanska formatet XXX-XXX-XXXX. \"%s\" är " "ogiltigt." -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "Adressen %s pekar inte till en giltig QuickTime-video." -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "En giltig adress krävs." -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -1519,69 +1551,69 @@ msgstr "" "Giltig HTML krävs. Specifika fel är:\n" "%s" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "Missformad XML: %s" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "Felaktig adress: %s" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "Adressen %s är en trasig länk." -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "Fyll i en giltig förkortning för en amerikansk delstat" -#: core/validators.py:228 +#: core/validators.py:231 #, python-format msgid "Watch your mouth! The word %s is not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here." msgstr[0] "Håll i tungan! Ordet %s är inte tillåtet här." msgstr[1] "Håll i tungan! Orden %s är inte tillåtna här." -#: core/validators.py:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "Det här fältet måste matcha fältet '%s'." -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "Fyll i något i minst ett fält." -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "Fyll antingen i båda fälten, eller lämna båda tomma" -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "Det är fältet måste anges om %(field)s är %(value)s" -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "Det här fältet måste anges om %(field)s inte är %(value)s" -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "Upprepade värden är inte tillåtna." -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "Det här värdet måste vara en multipel av %s." -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "Fyll i ett giltigt decimaltal." -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -1589,7 +1621,7 @@ msgid_plural "" msgstr[0] "Fyll i ett giltigt decimaltal med mindre än %s siffra totalt." msgstr[1] "Fyll i ett giltigt decimaltal med mindre än %s siffror totalt." -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -1597,30 +1629,30 @@ msgid_plural "" msgstr[0] "Fyll i ett giltigt decimaltal med som mest %s decimalsiffra." msgstr[1] "Fyll i ett giltigt decimaltal med som mest %s decimalsiffror." -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "Se till att filen du laddade upp är minst %s bytes stor." -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "Se till att filen du laddade upp är max %s bytes stor." -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "Formatet på det här fältet är fel." -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "Det här fältet är ogiltigt." -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "Kunde inte hämta något från %s." -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." @@ -1628,7 +1660,7 @@ msgstr "" "Adressen %(url)s returnerade det ogiltiga innehållstyphuvudet (Content-Type " "header) '%(contenttype)s'" -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " @@ -1637,7 +1669,7 @@ msgstr "" "Var god avsluta den oavslutade taggen %(tag)s på rad %(line)s. (Raden börjar " "med \"%(start)s\".)" -#: core/validators.py:465 +#: core/validators.py:468 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " @@ -1646,7 +1678,7 @@ msgstr "" "En del text från rad %(line)s är inte tillåtet i det sammanhanget. (Raden " "börjar med \"%(start)s\".)" -#: core/validators.py:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" @@ -1655,7 +1687,7 @@ msgstr "" "\"%(attr)s\" på rad %(line)s är inte ett gilltigt attribut. (Raden startar " "med \"%(start)s\".)" -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" @@ -1664,7 +1696,7 @@ msgstr "" "\"<%(tag)s>\" på rad %(line)s är inte en giltig tagg. (Raden börjar med \"%" "(start)s\".)" -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " @@ -1673,7 +1705,7 @@ msgstr "" "En tagg på rad %(line)s saknar en eller flera nödvändiga attribut. (Raden " "börjar med \"%(start)s\".)" -#: core/validators.py:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " diff --git a/django/conf/locale/zh_CN/LC_MESSAGES/django.po b/django/conf/locale/zh_CN/LC_MESSAGES/django.po index f34c9e9f33..287ba7251e 100644 --- a/django/conf/locale/zh_CN/LC_MESSAGES/django.po +++ b/django/conf/locale/zh_CN/LC_MESSAGES/django.po @@ -1128,6 +1128,33 @@ msgstr "十一月" msgid "Dec." msgstr "十二月" +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" + +#: utils/timesince.py:14 +#, fuzzy +msgid "day" +msgid_plural "days" +msgstr[0] "五月" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" + +#: utils/timesince.py:16 +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "站点" + #: models/core.py:7 msgid "domain name" msgstr "域名" @@ -1233,8 +1260,8 @@ msgid "password" msgstr "口令" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." -msgstr "使用MD5的哈希值 -- 不是原始的口令。" +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "" #: models/auth.py:38 msgid "staff status" @@ -1279,7 +1306,7 @@ msgstr "个人信息" msgid "Important dates" msgstr "重要日期" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "消息" @@ -1404,63 +1431,63 @@ msgstr "输入整数。" msgid "This value must contain only letters, numbers and underscores." msgstr "此值只能包含字母、数字和下划线。" -#: core/validators.py:63 +#: core/validators.py:66 msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "此值只能包含字母、数字、下划线和斜线。" -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "这里不允许大写字母。" -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "这里不允许小写字母。" -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "只能输入用逗号分隔的数字。" -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "输入用逗号分隔的有效邮件地址。" -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "请输入一个有效的IP地址。" -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "这里不允许输入空值。" -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "这里不允许非数字字符。" -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "此值不能全部由数字组成。" -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "输入整数。" -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "这里只允许字母。" -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "输入一个 YYYY-MM-DD 格式的有效日期。" -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "输入一个 HH:MM 格式的有效时间。" -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "输入一个 YYYY-MM-DD HH:MM 格式的有效日期/时间。" -#: core/validators.py:135 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "输入一个有效的邮件地址。" @@ -1470,26 +1497,26 @@ msgid "" "corrupted image." msgstr "上传一个有效的图片。您所上传的文件或者不是图片或是一个破坏的图片。" -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "URL %s 指向的不是一个有效的图片。" -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "电话号码必须为 XXX-XXX-XXXX 格式。\"%s\"是无效的。" -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "URL %s 指向的不是一个有效的 QuickTime 视频。" -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "需要是一个有效的URL。" -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -1498,12 +1525,12 @@ msgstr "" "需要有效的HTML。详细的错误是:\n" "%s" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "格式错误的 XML: %s" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "无效 URL: %s" @@ -1513,22 +1540,22 @@ msgstr "无效 URL: %s" msgid "The URL %s is a broken link." msgstr "URL %s 是一个断开的链接。" -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "输入一个有效的 U.S. 州缩写。" -#: core/validators.py:228 +#: core/validators.py:231 #, python-format msgid "Watch your mouth! The word %s is not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here." msgstr[0] "看住你的嘴!%s 不允许在这里出现。" -#: core/validators.py:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "这个字段必须与 '%s' 字段相匹配。" -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "请至少在一个字段上输入些什么。" @@ -1536,73 +1563,73 @@ msgstr "请至少在一个字段上输入些什么。" msgid "Please enter both fields or leave them both empty." msgstr "请要么两个字段都输入或者两个字段都空着。" -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "如果 %(field)s 是 %(value)s 时这个字段必须给出" -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "如果 %(field)s 不是 %(value)s 时这个字段必须给出" -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "重复值不允许。" -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "这个值必须是 %s 的乘方。" -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "请输入一个有效的小数。" -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" "Please enter a valid decimal number with at most %s total digits." msgstr[0] "请输入一个有效的小数,最多 %s 个数字。 " -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" "Please enter a valid decimal number with at most %s decimal places." msgstr[0] "请输入一个有效的小数,最多 %s 个小数位。 " -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "请确保你上传的文件至少 %s 字节大。" -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "请确保你上传的文件至多 %s 字节大。" -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "这个字段的格式不正确。" -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "这个字段无效。" -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "不能从 %s 得到任何东西。" -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." msgstr "URL %(url)s 返回了无效的 Content-Type 头 '%(contenttype)s'。" -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " @@ -1610,7 +1637,7 @@ msgid "" msgstr "" "请关闭未关闭的 %(tag)s 标签从第 %(line)s 行。(行开始于 \"%(start)s\"。)" -#: core/validators.py:465 +#: core/validators.py:468 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " @@ -1618,7 +1645,7 @@ msgid "" msgstr "" "在 %(line)s 行开始的一些文本不允许在那个上下文中。(行开始于 \"%(start)s\"。)" -#: core/validators.py:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" @@ -1626,7 +1653,7 @@ msgid "" msgstr "" "在 %(line)s 行的\"%(attr)s\"不是一个有效的属性。(行开始于 \"%(start)s\"。)" -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" @@ -1634,7 +1661,7 @@ msgid "" msgstr "" "在 %(line)s 行的\"<%(tag)s>\"不是一个有效的标签。(行开始于 \"%(start)s\"。)" -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " @@ -1642,7 +1669,7 @@ msgid "" msgstr "" "在行 %(line)s 的标签少了一个或多个必须的属性。(行开始于 \"%(start)s\"。)" -#: core/validators.py:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " diff --git a/django/contrib/admin/views/main.py b/django/contrib/admin/views/main.py index 96b59bc105..e60e78aecc 100644 --- a/django/contrib/admin/views/main.py +++ b/django/contrib/admin/views/main.py @@ -99,14 +99,7 @@ class ChangeList(object): if not request.user.has_perm(app_label + '.' + self.opts.get_change_permission()): raise PermissionDenied - if self.opts.one_to_one_field: - self.lookup_mod = self.opts.one_to_one_field.rel.to.get_model_module() - self.lookup_opts = self.lookup_mod.Klass._meta - # If lookup_opts doesn't have admin set, give it the default meta.Admin(). - if not self.lookup_opts.admin: - self.lookup_opts.admin = meta.Admin() - else: - self.lookup_mod, self.lookup_opts = self.mod, self.opts + self.lookup_mod, self.lookup_opts = self.mod, self.opts def get_search_parameters(self, request): # Get search parameters from the query string. diff --git a/django/core/db/backends/ado_mssql.py b/django/core/db/backends/ado_mssql.py index 709d35a583..be215ed7e9 100644 --- a/django/core/db/backends/ado_mssql.py +++ b/django/core/db/backends/ado_mssql.py @@ -116,19 +116,19 @@ def get_relations(cursor, table_name): raise NotImplementedError OPERATOR_MAPPING = { - 'exact': '=', - 'iexact': 'LIKE', - 'contains': 'LIKE', - 'icontains': 'LIKE', - 'ne': '!=', - 'gt': '>', - 'gte': '>=', - 'lt': '<', - 'lte': '<=', - 'startswith': 'LIKE', - 'endswith': 'LIKE', - 'istartswith': 'LIKE', - 'iendswith': 'LIKE', + 'exact': '= %s', + 'iexact': 'LIKE %s', + 'contains': 'LIKE %s', + 'icontains': 'LIKE %s', + 'ne': '!= %s', + 'gt': '> %s', + 'gte': '>= %s', + 'lt': '< %s', + 'lte': '<= %s', + 'startswith': 'LIKE %s', + 'endswith': 'LIKE %s', + 'istartswith': 'LIKE %s', + 'iendswith': 'LIKE %s', } DATA_TYPES = { diff --git a/django/core/db/backends/mysql.py b/django/core/db/backends/mysql.py index 27d166f8d1..10379f9538 100644 --- a/django/core/db/backends/mysql.py +++ b/django/core/db/backends/mysql.py @@ -128,19 +128,19 @@ def get_relations(cursor, table_name): raise NotImplementedError OPERATOR_MAPPING = { - 'exact': '=', - 'iexact': 'LIKE', - 'contains': 'LIKE BINARY', - 'icontains': 'LIKE', - 'ne': '!=', - 'gt': '>', - 'gte': '>=', - 'lt': '<', - 'lte': '<=', - 'startswith': 'LIKE BINARY', - 'endswith': 'LIKE BINARY', - 'istartswith': 'LIKE', - 'iendswith': 'LIKE', + 'exact': '= %s', + 'iexact': 'LIKE %s', + 'contains': 'LIKE BINARY %s', + 'icontains': 'LIKE %s', + 'ne': '!= %s', + 'gt': '> %s', + 'gte': '>= %s', + 'lt': '< %s', + 'lte': '<= %s', + 'startswith': 'LIKE BINARY %s', + 'endswith': 'LIKE BINARY %s', + 'istartswith': 'LIKE %s', + 'iendswith': 'LIKE %s', } # This dictionary maps Field objects to their associated MySQL column diff --git a/django/core/db/backends/postgresql.py b/django/core/db/backends/postgresql.py index 03864a5707..487dd0da68 100644 --- a/django/core/db/backends/postgresql.py +++ b/django/core/db/backends/postgresql.py @@ -133,19 +133,19 @@ Database.register_type(Database.new_type((1114,1184), "TIMESTAMP", typecasts.typ Database.register_type(Database.new_type((16,), "BOOLEAN", typecasts.typecast_boolean)) OPERATOR_MAPPING = { - 'exact': '=', - 'iexact': 'ILIKE', - 'contains': 'LIKE', - 'icontains': 'ILIKE', - 'ne': '!=', - 'gt': '>', - 'gte': '>=', - 'lt': '<', - 'lte': '<=', - 'startswith': 'LIKE', - 'endswith': 'LIKE', - 'istartswith': 'ILIKE', - 'iendswith': 'ILIKE', + 'exact': '= %s', + 'iexact': 'ILIKE %s', + 'contains': 'LIKE %s', + 'icontains': 'ILIKE %s', + 'ne': '!= %s', + 'gt': '> %s', + 'gte': '>= %s', + 'lt': '< %s', + 'lte': '<= %s', + 'startswith': 'LIKE %s', + 'endswith': 'LIKE %s', + 'istartswith': 'ILIKE %s', + 'iendswith': 'ILIKE %s', } # This dictionary maps Field objects to their associated PostgreSQL column diff --git a/django/core/db/backends/sqlite3.py b/django/core/db/backends/sqlite3.py index 6fa49131ee..930bb7c290 100644 --- a/django/core/db/backends/sqlite3.py +++ b/django/core/db/backends/sqlite3.py @@ -131,20 +131,23 @@ def get_relations(cursor, table_name): # Operators and fields ######################################################## +# SQLite requires LIKE statements to include an ESCAPE clause if the value +# being escaped has a percent or underscore in it. +# See http://www.sqlite.org/lang_expr.html for an explanation. OPERATOR_MAPPING = { - 'exact': '=', - 'iexact': 'LIKE', - 'contains': 'LIKE', - 'icontains': 'LIKE', - 'ne': '!=', - 'gt': '>', - 'gte': '>=', - 'lt': '<', - 'lte': '<=', - 'startswith': 'LIKE', - 'endswith': 'LIKE', - 'istartswith': 'LIKE', - 'iendswith': 'LIKE', + 'exact': '= %s', + 'iexact': "LIKE %s ESCAPE '\\'", + 'contains': "LIKE %s ESCAPE '\\'", + 'icontains': "LIKE %s ESCAPE '\\'", + 'ne': '!= %s', + 'gt': '> %s', + 'gte': '>= %s', + 'lt': '< %s', + 'lte': '<= %s', + 'startswith': "LIKE %s ESCAPE '\\'", + 'endswith': "LIKE %s ESCAPE '\\'", + 'istartswith': "LIKE %s ESCAPE '\\'", + 'iendswith': "LIKE %s ESCAPE '\\'", } # SQLite doesn't actually support most of these types, but it "does the right diff --git a/django/core/handlers/base.py b/django/core/handlers/base.py index ba2e286721..755df23752 100644 --- a/django/core/handlers/base.py +++ b/django/core/handlers/base.py @@ -17,7 +17,10 @@ class BaseHandler: self._response_middleware = [] self._exception_middleware = [] for middleware_path in settings.MIDDLEWARE_CLASSES: - dot = middleware_path.rindex('.') + try: + dot = middleware_path.rindex('.') + except ValueError: + raise exceptions.ImproperlyConfigured, '%s isn\'t a middleware module' % middleware_path mw_module, mw_classname = middleware_path[:dot], middleware_path[dot+1:] try: mod = __import__(mw_module, '', '', ['']) diff --git a/django/core/management.py b/django/core/management.py index baccae1953..0a5fad0aa3 100644 --- a/django/core/management.py +++ b/django/core/management.py @@ -677,6 +677,17 @@ def get_validation_errors(outfile): e.add(related.opts, "At least one field in %s should have core=True, because it's being edited inline by %s.%s." % (related.opts.object_name, opts.module_name, opts.object_name)) except StopIteration: pass + + # Check unique_together. + for ut in opts.unique_together: + for field_name in ut: + try: + f = opts.get_field(field_name, many_to_many=True) + except meta.FieldDoesNotExist: + e.add(opts, '"unique_together" refers to %s, a field that doesn\'t exist. Check your syntax.' % field_name) + else: + if isinstance(f.rel, meta.ManyToMany): + e.add(opts, '"unique_together" refers to %s. ManyToManyFields are not supported in unique_together.' % f.name) return len(e.errors) def validate(outfile=sys.stdout): diff --git a/django/core/meta/__init__.py b/django/core/meta/__init__.py index 6cf7bd0d43..9cddda3a42 100644 --- a/django/core/meta/__init__.py +++ b/django/core/meta/__init__.py @@ -1263,7 +1263,7 @@ def _get_where_clause(lookup_type, table_prefix, field_name, value): table_prefix = db.db.quote_name(table_prefix[:-1])+'.' field_name = db.db.quote_name(field_name) try: - return '%s%s %s %%s' % (table_prefix, field_name, db.OPERATOR_MAPPING[lookup_type]) + return '%s%s %s' % (table_prefix, field_name, (db.OPERATOR_MAPPING[lookup_type] % '%s')) except KeyError: pass if lookup_type == 'in': diff --git a/django/core/meta/fields.py b/django/core/meta/fields.py index 17a9a7e4b0..a37620135f 100644 --- a/django/core/meta/fields.py +++ b/django/core/meta/fields.py @@ -48,11 +48,11 @@ def manipulator_valid_rel_key(f, self, field_data, all_data): def manipulator_validator_unique(f, opts, self, field_data, all_data): "Validates that the value is unique for this field." if f.rel and isinstance(f.rel, ManyToOne): - lookup_type = 'pk' + lookup_type = '%s__%s__exact' % (f.name, f.rel.get_related_field().name) else: - lookup_type = 'exact' + lookup_type = '%s__exact' % f.name try: - old_obj = opts.get_model_module().get_object(**{'%s__%s' % (f.name, lookup_type): field_data}) + old_obj = opts.get_model_module().get_object(**{lookup_type: field_data}) except ObjectDoesNotExist: return if hasattr(self, 'original_object') and getattr(self.original_object, opts.pk.attname) == getattr(old_obj, opts.pk.attname): diff --git a/django/core/template/loader.py b/django/core/template/loader.py index 925f4448d2..482972c79c 100644 --- a/django/core/template/loader.py +++ b/django/core/template/loader.py @@ -255,12 +255,14 @@ def do_extends(parser, token): def do_include(parser, token): """ - Loads a template using standard resolution mechanisms, and renders it in the current context. - """ + Loads a template and renders it with the current context. + + Example:: + + {% include "foo/some_include" %} bits = token.contents.split() if len(bits) != 2: - raise TemplateSyntaxError, "'include' tag takes one argument: the path to the template to be included" - + raise TemplateSyntaxError, "%r tag takes one argument: the name of the template to be included" % bits[0] path = bits[1] if path[0] in ('"', "'") and path[-1] == path[0]: return ConstantIncludeNode(path[1:-1]) diff --git a/django/core/validators.py b/django/core/validators.py index b68fc0ade8..b36f000972 100644 --- a/django/core/validators.py +++ b/django/core/validators.py @@ -27,6 +27,9 @@ url_re = re.compile(r'^http://\S+$') from django.conf.settings import JING_PATH from django.utils.translation import gettext_lazy, ngettext +from django.utils.functional import Promise, lazy + +lazy_inter = lazy(lambda a,b: str(a) % b, str) class ValidationError(Exception): def __init__(self, message): @@ -34,7 +37,7 @@ class ValidationError(Exception): if isinstance(message, list): self.messages = message else: - assert isinstance(message, basestring), ("%s should be a string" % repr(message)) + assert isinstance(message, (basestring, Promise)), ("%s should be a string" % repr(message)) self.messages = [message] def __str__(self): # This is needed because, without a __str__(), printing an exception @@ -49,7 +52,7 @@ class CriticalValidationError(Exception): if isinstance(message, list): self.messages = message else: - assert isinstance(message, basestring), ("'%s' should be a string" % message) + assert isinstance(message, (basestring, Promise)), ("'%s' should be a string" % message) self.messages = [message] def __str__(self): return str(self.messages) @@ -232,7 +235,7 @@ def hasNoProfanities(field_data, all_data): class AlwaysMatchesOtherField: def __init__(self, other_field_name, error_message=None): self.other = other_field_name - self.error_message = error_message or gettext_lazy("This field must match the '%s' field.") % self.other + self.error_message = error_message or lazy_inter(gettext_lazy("This field must match the '%s' field."), self.other) self.always_test = True def __call__(self, field_data, all_data): @@ -278,8 +281,8 @@ class RequiredIfOtherFieldEquals: def __init__(self, other_field, other_value, error_message=None): self.other_field = other_field self.other_value = other_value - self.error_message = error_message or gettext_lazy("This field must be given if %(field)s is %(value)s") % { - 'field': other_field, 'value': other_value} + self.error_message = error_message or lazy_inter(gettext_lazy("This field must be given if %(field)s is %(value)s"), { + 'field': other_field, 'value': other_value}) self.always_test = True def __call__(self, field_data, all_data): @@ -290,8 +293,8 @@ class RequiredIfOtherFieldDoesNotEqual: def __init__(self, other_field, other_value, error_message=None): self.other_field = other_field self.other_value = other_value - self.error_message = error_message or gettext_lazy("This field must be given if %(field)s is not %(value)s") % { - 'field': other_field, 'value': other_value} + self.error_message = error_message or lazy_inter(gettext_lazy("This field must be given if %(field)s is not %(value)s"), { + 'field': other_field, 'value': other_value}) self.always_test = True def __call__(self, field_data, all_data): @@ -358,8 +361,8 @@ class HasAllowableSize: """ def __init__(self, min_size=None, max_size=None, min_error_message=None, max_error_message=None): self.min_size, self.max_size = min_size, max_size - self.min_error_message = min_error_message or gettext_lazy("Make sure your uploaded file is at least %s bytes big.") % min_size - self.max_error_message = max_error_message or gettext_lazy("Make sure your uploaded file is at most %s bytes big.") % min_size + self.min_error_message = min_error_message or lazy_inter(gettext_lazy("Make sure your uploaded file is at least %s bytes big."), min_size) + self.max_error_message = max_error_message or lazy_inter(gettext_lazy("Make sure your uploaded file is at most %s bytes big."), min_size) def __call__(self, field_data, all_data): if self.min_size is not None and len(field_data['content']) < self.min_size: @@ -454,7 +457,7 @@ class RelaxNGCompact: display_errors = [] lines = field_data.split('\n') for error in errors: - _, line, level, message = error.split(':', 3) + ignored, line, level, message = error.split(':', 3) # Scrape the Jing error messages to reword them more nicely. m = re.search(r'Expected "(.*?)" to terminate element starting on line (\d+)', message) if m: diff --git a/django/models/auth.py b/django/models/auth.py index d0c13f66ce..21b4c2f146 100644 --- a/django/models/auth.py +++ b/django/models/auth.py @@ -34,7 +34,7 @@ class User(meta.Model): first_name = meta.CharField(_('first name'), maxlength=30, blank=True) last_name = meta.CharField(_('last name'), maxlength=30, blank=True) email = meta.EmailField(_('e-mail address'), blank=True) - password_md5 = meta.CharField(_('password'), maxlength=32, help_text=_("Use an MD5 hash -- not the raw password.")) + password = meta.CharField(_('password'), maxlength=128, help_text=_("Use '[algo]$[salt]$[hexdigest]")) is_staff = meta.BooleanField(_('staff status'), help_text=_("Designates whether the user can log into this admin site.")) is_active = meta.BooleanField(_('active'), default=True) is_superuser = meta.BooleanField(_('superuser status')) @@ -53,7 +53,7 @@ class User(meta.Model): exceptions = ('SiteProfileNotAvailable',) admin = meta.Admin( fields = ( - (None, {'fields': ('username', 'password_md5')}), + (None, {'fields': ('username', 'password')}), (_('Personal info'), {'fields': ('first_name', 'last_name', 'email')}), (_('Permissions'), {'fields': ('is_staff', 'is_active', 'is_superuser', 'user_permissions')}), (_('Important dates'), {'fields': ('last_login', 'date_joined')}), @@ -78,13 +78,35 @@ class User(meta.Model): return full_name.strip() def set_password(self, raw_password): - import md5 - self.password_md5 = md5.new(raw_password).hexdigest() + import sha, random + algo = 'sha1' + salt = sha.new(str(random.random())).hexdigest()[:5] + hsh = sha.new(salt+raw_password).hexdigest() + self.password = '%s$%s$%s' % (algo, salt, hsh) def check_password(self, raw_password): - "Returns a boolean of whether the raw_password was correct." - import md5 - return self.password_md5 == md5.new(raw_password).hexdigest() + """ + Returns a boolean of whether the raw_password was correct. Handles + encryption formats behind the scenes. + """ + # Backwards-compatibility check. Older passwords won't include the + # algorithm or salt. + if '$' not in self.password: + import md5 + is_correct = (self.password == md5.new(raw_password).hexdigest()) + if is_correct: + # Convert the password to the new, more secure format. + self.set_password(raw_password) + self.save() + return is_correct + algo, salt, hsh = self.password.split('$') + if algo == 'md5': + import md5 + return hsh == md5.new(salt+raw_password).hexdigest() + elif algo == 'sha1': + import sha + return hsh == sha.new(salt+raw_password).hexdigest() + raise ValueError, "Got unknown password algorithm type in password." def get_group_permissions(self): "Returns a list of permission strings that this user has through his/her groups." @@ -176,10 +198,9 @@ class User(meta.Model): def _module_create_user(username, email, password): "Creates and saves a User with the given username, e-mail and password." - import md5 - password_md5 = md5.new(password).hexdigest() now = datetime.datetime.now() - user = User(None, username, '', '', email.strip().lower(), password_md5, False, True, False, now, now) + user = User(None, username, '', '', email.strip().lower(), 'placeholder', False, True, False, now, now) + user.set_password(password) user.save() return user diff --git a/django/utils/functional.py b/django/utils/functional.py index f2ea12b1b2..69aeb81850 100644 --- a/django/utils/functional.py +++ b/django/utils/functional.py @@ -3,6 +3,14 @@ def curry(*args, **kwargs): return args[0](*(args[1:]+moreargs), **dict(kwargs.items() + morekwargs.items())) return _curried +class Promise: + """ + This is just a base class for the proxy class created in + the closure of the lazy function. It can be used to recognize + promises in code. + """ + pass + def lazy(func, *resultclasses): """ Turns any callable into a lazy evaluated callable. You need to give result @@ -10,7 +18,7 @@ def lazy(func, *resultclasses): the lazy evaluation code is triggered. Results are not memoized; the function is evaluated on every access. """ - class __proxy__: + class __proxy__(Promise): # This inner class encapsulates the code that should be evaluated # lazily. On calling of one of the magic methods it will force # the evaluation and store the result. Afterwards, the result diff --git a/django/utils/timesince.py b/django/utils/timesince.py index 5b22fde58c..b1df997e2e 100644 --- a/django/utils/timesince.py +++ b/django/utils/timesince.py @@ -1,5 +1,6 @@ -import datetime, math, time +import datetime, time from django.utils.tzinfo import LocalTimezone +from django.utils.translation import ngettext def timesince(d, now=None): """ @@ -8,11 +9,11 @@ def timesince(d, now=None): Adapted from http://blog.natbat.co.uk/archive/2003/Jun/14/time_since """ chunks = ( - (60 * 60 * 24 * 365, 'year'), - (60 * 60 * 24 * 30, 'month'), - (60 * 60 * 24, 'day'), - (60 * 60, 'hour'), - (60, 'minute') + (60 * 60 * 24 * 365, lambda n: ngettext('year', 'years', n)), + (60 * 60 * 24 * 30, lambda n: ngettext('month', 'months', n)), + (60 * 60 * 24, lambda n : ngettext('day', 'days', n)), + (60 * 60, lambda n: ngettext('hour', 'hours', n)), + (60, lambda n: ngettext('minute', 'minutes', n)) ) if now: t = time.mktime(now) @@ -25,24 +26,17 @@ def timesince(d, now=None): now = datetime.datetime(t[0], t[1], t[2], t[3], t[4], t[5], tzinfo=tz) delta = now - d since = delta.days * 24 * 60 * 60 + delta.seconds - # Crazy iteration syntax because we need i to be current index - for i, (seconds, name) in zip(range(len(chunks)), chunks): - count = math.floor(since / seconds) + for i, (seconds, name) in enumerate(chunks): + count = since / seconds if count != 0: break - if count == 1: - s = '1 %s' % name - else: - s = '%d %ss' % (count, name) + s = '%d %s' % (count, name(count)) if i + 1 < len(chunks): # Now get the second item seconds2, name2 = chunks[i + 1] - count2 = math.floor((since - (seconds * count)) / seconds2) + count2 = (since - (seconds * count)) / seconds2 if count2 != 0: - if count2 == 1: - s += ', 1 %s' % name2 - else: - s += ', %d %ss' % (count2, name2) + s += ', %d %s' % (count2, name2(count2)) return s def timeuntil(d): diff --git a/django/views/debug.py b/django/views/debug.py index 96e8594fb1..4585481602 100644 --- a/django/views/debug.py +++ b/django/views/debug.py @@ -106,7 +106,7 @@ def technical_500_response(request, exc_type, exc_value, tb): 'settings' : settings_dict, 'template_info': template_info, }) - return HttpResponseServerError(t.render(c)) + return HttpResponseServerError(t.render(c), mimetype='text/html') def technical_404_response(request, exception): """ @@ -127,7 +127,7 @@ def technical_404_response(request, exception): 'request_protocol' : os.environ.get("HTTPS") == "on" and "https" or "http", 'settings' : dict([(k, getattr(settings, k)) for k in dir(settings) if k.isupper()]), }) - return HttpResponseNotFound(t.render(c)) + return HttpResponseNotFound(t.render(c), mimetype='text/html') def _get_lines_from_file(filename, lineno, context_lines): """ diff --git a/django/views/defaults.py b/django/views/defaults.py index 062f1a8cf5..95c18b4263 100644 --- a/django/views/defaults.py +++ b/django/views/defaults.py @@ -47,7 +47,7 @@ def shortcut(request, content_type_id, object_id): return httpwrappers.HttpResponseRedirect(obj.get_absolute_url()) return httpwrappers.HttpResponseRedirect('http://%s%s' % (object_domain, obj.get_absolute_url())) -def page_not_found(request): +def page_not_found(request, template_name='404'): """ Default 404 handler, which looks for the requested URL in the redirects table, redirects if found, and displays 404 page if not redirected. @@ -55,15 +55,15 @@ def page_not_found(request): Templates: `404` Context: None """ - t = loader.get_template('404') + t = loader.get_template(template_name) return httpwrappers.HttpResponseNotFound(t.render(Context())) -def server_error(request): +def server_error(request, template_name='500'): """ 500 error handler. Templates: `500` Context: None """ - t = loader.get_template('500') + t = loader.get_template(template_name) return httpwrappers.HttpResponseServerError(t.render(Context())) diff --git a/django/views/static.py b/django/views/static.py index f74570c307..28e43ec612 100644 --- a/django/views/static.py +++ b/django/views/static.py @@ -47,7 +47,7 @@ def serve(request, path, document_root=None, show_indexes=False): raise Http404, '"%s" does not exist' % fullpath else: mimetype = mimetypes.guess_type(fullpath)[0] - return HttpResponse(open(fullpath).read(), mimetype=mimetype) + return HttpResponse(open(fullpath, 'rb').read(), mimetype=mimetype) DEFAULT_DIRECTORY_INDEX_TEMPLATE = """ diff --git a/docs/add_ons.txt b/docs/add_ons.txt new file mode 100644 index 0000000000..44354d9c82 --- /dev/null +++ b/docs/add_ons.txt @@ -0,0 +1,66 @@ +===================== +The "contrib" add-ons +===================== + +Django aims to follow Python's "batteries included" philosophy. It ships with a +variety of extra, optional tools that solve common Web-development problems. + +This code lives in ``django/contrib`` in the Django distribution. Here's a +rundown of the packages in ``contrib``: + +admin +===== + +The automatic Django administrative interface. For more information, see +`Tutorial 3`_. + +.. _Tutorial 3: http://www.djangoproject.com/documentation/tutorial2/ + +comments +======== + +A simple yet flexible comments system. This is not yet documented. + +flatpages +========= + +A framework for managing simple "flat" HTML content in a database. + +See the `flatpages documentation`_. + +.. _flatpages documentation: http://www.djangoproject.com/documentation/flatpages/ + +markup +====== + +A collection of template filters that implement these common markup languages: + + * Textile + * Markdown + * ReST (ReStructured Text) + +redirects +========= + +A framework for managing redirects. + +See the `redirects documentation`_. + +.. _redirects documentation: http://www.djangoproject.com/documentation/redirects/ + +syndication +=========== + +A framework for generating syndication feeds, in RSS and Atom, quite easily. + +See the `syndication documentation`_. + +.. _syndication documentation: http://www.djangoproject.com/documentation/syndication/ + +Other add-ons +============= + +If you have an idea for functionality to include in ``contrib``, let us know! +Code it up, and post it to the `django-users mailing list`_. + +.. _django-users mailing list: http://groups.google.com/group/django-users diff --git a/docs/authentication.txt b/docs/authentication.txt index f9093c81e2..475595e972 100644 --- a/docs/authentication.txt +++ b/docs/authentication.txt @@ -44,9 +44,9 @@ Fields * ``first_name`` -- Optional. 30 characters or fewer. * ``last_name`` -- Optional. 30 characters or fewer. * ``email`` -- Optional. E-mail address. - * ``password_md5`` -- Required. An MD5 hash of the password. (Django - doesn't store the raw password.) Raw passwords can be arbitrarily long - and can contain any character. + * ``password`` -- Required. A hash of, and metadata about, the password. + (Django doesn't store the raw password.) Raw passwords can be arbitrarily + long and can contain any character. See the "Passwords" section below. * ``is_staff`` -- Boolean. Designates whether this user can access the admin site. * ``is_active`` -- Boolean. Designates whether this user can log into the @@ -167,6 +167,28 @@ Change a password with ``set_password()``:: >>> u.set_password('new password') >>> u.save() +Passwords +--------- + +**This only applies to the Django development version.** Previous versions, +such as Django 0.90, used simple MD5 hashes without password salts. + +The ``password`` field of a ``User`` object is a string in this format:: + + hashtype$salt$hash + +That's hashtype, salt and hash, separated by the dollar-sign character. + +Hashtype is either ``sha1`` (default) or ``md5``. Salt is a random string +used to salt the raw password to create the hash. + +For example:: + + sha1$a1976$a36cc8cbf81742a8fb52e221aaeab48ed7f58ab4 + +The ``User.set_password()`` and ``User.check_password()`` functions handle +the setting and checking of these values behind the scenes. + Anonymous users --------------- diff --git a/docs/db-api.txt b/docs/db-api.txt index 30dece6482..fe17bd5921 100644 --- a/docs/db-api.txt +++ b/docs/db-api.txt @@ -142,7 +142,7 @@ double-underscore). For example:: translates (roughly) into the following SQL:: - SELECT * FROM polls_polls WHERE pub_date < NOW(); + SELECT * FROM polls_polls WHERE pub_date <= NOW(); .. admonition:: How this is possible diff --git a/docs/forms.txt b/docs/forms.txt index 8d2f2ead9c..6074564ce9 100644 --- a/docs/forms.txt +++ b/docs/forms.txt @@ -100,7 +100,7 @@ view has a number of problems: * Even if you *do* perform validation, there's still no way to give that information to the user is any sort of useful way. - * You'll have to separate create a form (and view) that submits to this + * You'll have to separately create a form (and view) that submits to this page, which is a pain and is redundant. Let's dodge these problems momentarily to take a look at how you could create a @@ -305,7 +305,7 @@ about editing an existing one? It's shockingly similar to creating a new one:: except places.PlaceDoesNotExist: raise Http404 - # Grab the Place object is question for future use. + # Grab the Place object in question for future use. place = manipulator.original_object if request.POST: diff --git a/docs/templates.txt b/docs/templates.txt index 53bd431e96..53df12e6a0 100644 --- a/docs/templates.txt +++ b/docs/templates.txt @@ -492,6 +492,40 @@ ifnotequal Just like ``ifequal``, except it tests that the two arguments are not equal. +include +~~~~~~~ + +**Only available in Django development version.** + +Loads a template and renders it with the current context. This is a way of +"including" other templates within a template. + +The template name can either be a variable or a hard-coded (quoted) string, +in either single or double quotes. + +This example includes the contents of the template ``"foo/bar"``:: + + {% include "foo/bar" %} + +This example includes the contents of the template whose name is contained in +the variable ``template_name``:: + + {% include template_name %} + +An included template is rendered with the context of the template that's +including it. This example produces the output ``"Hello, John"``: + + * Context: variable ``person`` is set to ``"john"``. + * Template:: + + {% include "name_snippet" %} + + * The ``name_snippet`` template:: + + Hello, {{ person }} + +See also: ``{% ssi %}``. + load ~~~~ @@ -645,6 +679,8 @@ file are evaluated as template code, within the current context:: Note that if you use ``{% ssi %}``, you'll need to define `ALLOWED_INCLUDE_ROOTS`_ in your Django settings, as a security measure. +See also: ``{% include %}``. + .. _ALLOWED_INCLUDE_ROOTS: http://www.djangoproject.com/documentation/settings/#allowed-include-roots templatetag @@ -768,9 +804,14 @@ fix_ampersands Replaces ampersands with ``&`` entities. floatformat +~~~~~~~~~~~ -Displays a floating point number as 34.2 (with one decimal places) -- but only -if there's a point to be displayed. +Rounds a floating-point number to one decimal place -- but only if there's a +decimal part to be displayed. For example: + + * ``36.123`` gets converted to ``36.1`` + * ``36.15`` gets converted to ``36.2`` + * ``36`` gets converted to ``36`` get_digit ~~~~~~~~~ diff --git a/setup.py b/setup.py index 9099f481ad..0dd0039160 100644 --- a/setup.py +++ b/setup.py @@ -37,9 +37,9 @@ setup( 'templates/admin_doc/*.html', 'templates/registration/*.html', 'templates/widget/*.html', - 'media/css/*.css', + 'media/css/*.css', 'media/img/admin/*.gif', - 'media/img/admin/*.png', + 'media/img/admin/*.png', 'media/js/*.js', 'media/js/admin/*js'], }, diff --git a/tests/othertests/templates.py b/tests/othertests/templates.py index ea01490990..b5a9df707a 100644 --- a/tests/othertests/templates.py +++ b/tests/othertests/templates.py @@ -138,6 +138,12 @@ TEMPLATE_TESTS = { 'ifnotequal03': ("{% ifnotequal a b %}yes{% else %}no{% endifnotequal %}", {"a": 1, "b": 2}, "yes"), 'ifnotequal04': ("{% ifnotequal a b %}yes{% else %}no{% endifnotequal %}", {"a": 1, "b": 1}, "no"), + ### INCLUDE TAG ########################################################### + 'include01': ('{% include "basic-syntax01" %}', {}, "something cool"), + 'include02': ('{% include "basic-syntax02" %}', {'headline': 'Included'}, "Included"), + 'include03': ('{% include template_name %}', {'template_name': 'basic-syntax02', 'headline': 'Included'}, "Included"), + 'include04': ('a{% include "nonexistent" %}b', {}, "ab"), + ### INHERITANCE ########################################################### # Standard template with no inheritance diff --git a/tests/testapp/models/lookup.py b/tests/testapp/models/lookup.py index 6d8ede1905..f8445c4f60 100644 --- a/tests/testapp/models/lookup.py +++ b/tests/testapp/models/lookup.py @@ -122,4 +122,19 @@ Article 7 Article 2 >>> a2.get_previous_by_pub_date() Article 1 + +# Underscores and percent signs have special meaning in the underlying +# database library, but Django handles the quoting of them automatically. +>>> a8 = articles.Article(headline='Article_ with underscore', pub_date=datetime(2005, 11, 20)) +>>> a8.save() +>>> articles.get_list(headline__startswith='Article') +[Article_ with underscore, Article 5, Article 6, Article 4, Article 2, Article 3, Article 7, Article 1] +>>> articles.get_list(headline__startswith='Article_') +[Article_ with underscore] +>>> a9 = articles.Article(headline='Article% with percent sign', pub_date=datetime(2005, 11, 21)) +>>> a9.save() +>>> articles.get_list(headline__startswith='Article') +[Article% with percent sign, Article_ with underscore, Article 5, Article 6, Article 4, Article 2, Article 3, Article 7, Article 1] +>>> articles.get_list(headline__startswith='Article%') +[Article% with percent sign] """ diff --git a/tests/testapp/models/one_to_one.py b/tests/testapp/models/one_to_one.py index 5b384aa82b..b8f68836b3 100644 --- a/tests/testapp/models/one_to_one.py +++ b/tests/testapp/models/one_to_one.py @@ -74,4 +74,7 @@ Demon Dogs the restaurant >>> w.save() >>> w Joe the waiter at Demon Dogs the restaurant + +>>> r = restaurants.get_object(pk=1) +>>> r.delete() """