diff options
-rw-r--r-- | mediagoblin/app.py | 7 | ||||
-rw-r--r-- | mediagoblin/db/sql/base.py | 10 | ||||
-rw-r--r-- | mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po | 46 | ||||
-rw-r--r-- | mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo | bin | 13840 -> 13828 bytes | |||
-rw-r--r-- | mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po | 102 | ||||
-rw-r--r-- | mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo | bin | 18051 -> 18027 bytes | |||
-rw-r--r-- | mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po | 108 | ||||
-rw-r--r-- | mediagoblin/tests/test_submission.py | 6 | ||||
-rw-r--r-- | mediagoblin/user_pages/views.py | 8 |
9 files changed, 95 insertions, 192 deletions
diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 06627675..15327d39 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -16,11 +16,12 @@ import os import urllib +import logging import routes from webob import Request, exc -from mediagoblin import routing, meddleware +from mediagoblin import routing, meddleware, __version__ from mediagoblin.tools import common, translate, template from mediagoblin.tools.response import render_404 from mediagoblin.tools import request as mg_request @@ -31,6 +32,9 @@ from mediagoblin.init import (get_jinja_loader, get_staticdirector, setup_storage, setup_beaker_cache) +_log = logging.getLogger(__name__) + + class MediaGoblinApp(object): """ WSGI application of MediaGoblin @@ -47,6 +51,7 @@ class MediaGoblinApp(object): (Note: setting 'celery_setup_elsewhere' also disables setting up celery.) """ + _log.info("GNU MediaGoblin %s main server starting", __version__) ############## # Setup config ############## diff --git a/mediagoblin/db/sql/base.py b/mediagoblin/db/sql/base.py index 6ed24a03..838080b0 100644 --- a/mediagoblin/db/sql/base.py +++ b/mediagoblin/db/sql/base.py @@ -67,6 +67,10 @@ class GMGTableBase(object): def get(self, key): return getattr(self, key) + def setdefault(self, key, defaultvalue): + # The key *has* to exist on sql. + return getattr(self, key) + def save(self, validate=True): assert validate sess = object_session(self) @@ -75,6 +79,12 @@ class GMGTableBase(object): sess.add(self) sess.commit() + def delete(self): + sess = object_session(self) + assert sess is not None, "Not going to delete detached %r" % self + sess.delete(self) + sess.commit() + Base = declarative_base(cls=GMGTableBase) diff --git a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po index b5832fe4..7c64c09f 100644 --- a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2012-02-09 09:30-0600\n" +"POT-Creation-Date: 2012-02-26 15:51-0600\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -37,51 +37,51 @@ msgstr "" msgid "Sorry, registration is disabled on this instance." msgstr "" -#: mediagoblin/auth/views.py:73 +#: mediagoblin/auth/views.py:75 msgid "Sorry, a user with that name already exists." msgstr "" -#: mediagoblin/auth/views.py:77 +#: mediagoblin/auth/views.py:79 msgid "Sorry, a user with that email address already exists." msgstr "" -#: mediagoblin/auth/views.py:180 +#: mediagoblin/auth/views.py:182 msgid "" "Your email address has been verified. You may now login, edit your " "profile, and submit images!" msgstr "" -#: mediagoblin/auth/views.py:186 +#: mediagoblin/auth/views.py:188 msgid "The verification key or user id is incorrect" msgstr "" -#: mediagoblin/auth/views.py:204 +#: mediagoblin/auth/views.py:206 msgid "You must be logged in so we know who to send the email to!" msgstr "" -#: mediagoblin/auth/views.py:212 +#: mediagoblin/auth/views.py:214 msgid "You've already verified your email address!" msgstr "" -#: mediagoblin/auth/views.py:225 +#: mediagoblin/auth/views.py:227 msgid "Resent your verification email." msgstr "" -#: mediagoblin/auth/views.py:260 +#: mediagoblin/auth/views.py:262 msgid "An email has been sent with instructions on how to change your password." msgstr "" -#: mediagoblin/auth/views.py:270 +#: mediagoblin/auth/views.py:272 msgid "" "Could not send password recovery email as your username is inactive or " "your account's email address has not been verified." msgstr "" -#: mediagoblin/auth/views.py:282 +#: mediagoblin/auth/views.py:284 msgid "Couldn't find someone with that username or email." msgstr "" -#: mediagoblin/auth/views.py:330 +#: mediagoblin/auth/views.py:332 msgid "You can now log in using your new password." msgstr "" @@ -152,23 +152,23 @@ msgstr "" msgid "An entry with that slug already exists for this user." msgstr "" -#: mediagoblin/edit/views.py:92 +#: mediagoblin/edit/views.py:89 msgid "You are editing another user's media. Proceed with caution." msgstr "" -#: mediagoblin/edit/views.py:162 +#: mediagoblin/edit/views.py:159 msgid "You are editing a user's profile. Proceed with caution." msgstr "" -#: mediagoblin/edit/views.py:180 +#: mediagoblin/edit/views.py:175 msgid "Profile changes saved" msgstr "" -#: mediagoblin/edit/views.py:206 +#: mediagoblin/edit/views.py:201 msgid "Wrong password" msgstr "" -#: mediagoblin/edit/views.py:222 +#: mediagoblin/edit/views.py:217 msgid "Account settings saved" msgstr "" @@ -188,7 +188,7 @@ msgstr "" msgid "You must provide a file." msgstr "" -#: mediagoblin/submit/views.py:158 +#: mediagoblin/submit/views.py:156 msgid "Woohoo! Submitted!" msgstr "" @@ -623,23 +623,23 @@ msgstr "" msgid "I am sure I want to delete this" msgstr "" -#: mediagoblin/user_pages/views.py:155 +#: mediagoblin/user_pages/views.py:153 msgid "Oops, your comment was empty." msgstr "" -#: mediagoblin/user_pages/views.py:161 +#: mediagoblin/user_pages/views.py:159 msgid "Your comment has been posted!" msgstr "" -#: mediagoblin/user_pages/views.py:183 +#: mediagoblin/user_pages/views.py:181 msgid "You deleted the media." msgstr "" -#: mediagoblin/user_pages/views.py:190 +#: mediagoblin/user_pages/views.py:188 msgid "The media was not deleted because you didn't check that you were sure." msgstr "" -#: mediagoblin/user_pages/views.py:198 +#: mediagoblin/user_pages/views.py:196 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo Binary files differindex 25ab5836..f5a660d9 100644 --- a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo +++ b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo diff --git a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po index 49626556..b3088b25 100644 --- a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://issues.mediagoblin.org/\n" -"POT-Creation-Date: 2012-01-29 13:47-0600\n" -"PO-Revision-Date: 2012-02-05 21:07+0000\n" +"POT-Creation-Date: 2012-02-09 09:30-0600\n" +"PO-Revision-Date: 2012-02-26 19:34+0000\n" "Last-Translator: aleksejrs <deletesoftware@yandex.ru>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" @@ -21,7 +21,7 @@ msgstr "" "Language: eo\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: mediagoblin/processing.py:143 +#: mediagoblin/processing.py:153 msgid "Invalid file given for media type." msgstr "La provizita dosiero ne konformas al la informtipo." @@ -53,9 +53,7 @@ msgstr "Ni bedaŭras, sed konto kun tiu retpoŝtadreso jam ekzistas." msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" -msgstr "" -"Via retpoŝtadreso estas konfirmita. Vi povas nun ensaluti, redakti vian " -"profilon, kaj alŝuti bildojn!" +msgstr "Via retpoŝtadreso estas konfirmita. Vi povas nun ensaluti, redakti vian profilon, kaj alŝuti bildojn!" #: mediagoblin/auth/views.py:186 msgid "The verification key or user id is incorrect" @@ -82,9 +80,7 @@ msgstr "Senditas retletero kun instrukcio pri kiel ŝanĝi vian pasvorton." msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." -msgstr "" -"Ni ne povas sendi pasvortsavan retleteron, ĉar aŭ via konto estas neaktiva, " -"aŭ ĝia retpoŝtadreso ne estis konfirmita." +msgstr "Ni ne povas sendi pasvortsavan retleteron, ĉar aŭ via konto estas neaktiva, aŭ ĝia retpoŝtadreso ne estis konfirmita." #: mediagoblin/auth/views.py:282 msgid "Couldn't find someone with that username or email." @@ -108,10 +104,7 @@ msgid "" "You can use\n" " <a href=\"http://daringfireball.net/projects/markdown/basics\">\n" " Markdown</a> for formatting." -msgstr "" -"Vi povas uzi por markado la lingvon\n" -" «<a href=\"http://daringfireball.net/projects/markdown/basics\">\n" -" Markdown</a>»." +msgstr "Vi povas uzi por markado la lingvon\n «<a href=\"http://daringfireball.net/projects/markdown/basics\">\n Markdown</a>»." #: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:36 msgid "Tags" @@ -133,9 +126,7 @@ msgstr "La distingiga adresparto ne povas esti malplena" msgid "" "The title part of this media's address. You usually don't need to change " "this." -msgstr "" -"La dosiertitol-bazita parto de la dosieradreso. Ordinare ne necesas ĝin " -"ŝanĝi." +msgstr "La dosiertitol-bazita parto de la dosieradreso. Ordinare ne necesas ĝin ŝanĝi." #: mediagoblin/edit/forms.py:44 mediagoblin/submit/forms.py:41 msgid "License" @@ -221,9 +212,7 @@ msgstr "Verŝajne ĉe ĉi tiu adreso ne estas paĝo. Ni bedaŭras!" msgid "" "If you're sure the address is correct, maybe the page you're looking for has" " been moved or deleted." -msgstr "" -"Se vi estas certa, ke la adreso estas ĝusta, eble la serĉata de vi paĝo " -"estis movita aŭ forigita." +msgstr "Se vi estas certa, ke la adreso estas ĝusta, eble la serĉata de vi paĝo estis movita aŭ forigita." #: mediagoblin/templates/mediagoblin/base.html:46 msgid "MediaGoblin logo" @@ -252,9 +241,7 @@ msgstr "Ensaluti" msgid "" "Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a " "href=\"http://gnu.org/\">GNU</a> project" -msgstr "" -"Funkcias per <a href=\"http://mediagoblin.org\">MediaGoblin</a>, unu el la " -"<a href=\"http://gnu.org/\">projektoj de GNU</a>" +msgstr "Funkcias per <a href=\"http://mediagoblin.org\">MediaGoblin</a>, unu el la <a href=\"http://gnu.org/\">projektoj de GNU</a>" #: mediagoblin/templates/mediagoblin/root.html:24 msgid "Explore" @@ -268,18 +255,13 @@ msgstr "Saluton, kaj bonvenon al ĉi tiu MediaGoblina retpaĝaro!" msgid "" "This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an " "extraordinarily great piece of media hosting software." -msgstr "" -"Ĉi tiu retpaĝaro funkcias per <a " -"href=\"http://mediagoblin.org\">MediaGoblin</a>, eksterordinare bonega " -"programaro por gastigado de aŭd‐vid‐dosieroj." +msgstr "Ĉi tiu retpaĝaro funkcias per <a href=\"http://mediagoblin.org\">MediaGoblin</a>, eksterordinare bonega programaro por gastigado de aŭd‐vid‐dosieroj." #: mediagoblin/templates/mediagoblin/root.html:29 msgid "" "To add your own media, place comments, save your favourites and more, you " "can log in with your MediaGoblin account." -msgstr "" -"Por aldoni viajn proprajn dosierojn, fari al vi liston de la plej plaĉaj, " -"ks, vi povas ensaluti je via MediaGoblina konto." +msgstr "Por aldoni viajn proprajn dosierojn, fari al vi liston de la plej plaĉaj, ks, vi povas ensaluti je via MediaGoblina konto." #: mediagoblin/templates/mediagoblin/root.html:31 msgid "Don't have one yet? It's easy!" @@ -291,10 +273,7 @@ msgid "" "<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n" " or\n" " <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>" -msgstr "" -"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Kreu konton en ĉi tiu retejo</a>\n" -" aŭ\n" -" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">ekfunkciigu MediaGoblin’on en via propra servilo</a>" +msgstr "<a class=\"button_action_highlight\" href=\"%(register_url)s\">Kreu konton en ĉi tiu retejo</a>\n aŭ\n <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">ekfunkciigu MediaGoblin’on en via propra servilo</a>" #: mediagoblin/templates/mediagoblin/root.html:40 msgid "Most recent media" @@ -328,14 +307,7 @@ msgid "" "\n" "If you think this is an error, just ignore this email and continue being\n" "a happy goblin!" -msgstr "" -"Saluton, %(username)s,\n" -"\n" -"por ŝanĝi vian pasvorton ĉe GNUa MediaGoblin, sekvu la jenan retadreson per via TTT-legilo:\n" -"\n" -"%(verification_url)s\n" -"\n" -"Se vi pensas, ke ĉi tiu retletero estas sendita erare, simple ignoru ĝin kaj plu restu feliĉa koboldo!" +msgstr "Saluton, %(username)s,\n\npor ŝanĝi vian pasvorton ĉe GNUa MediaGoblin, sekvu la jenan retadreson per via TTT-legilo:\n\n%(verification_url)s\n\nSe vi pensas, ke ĉi tiu retletero estas sendita erare, simple ignoru ĝin kaj plu restu feliĉa koboldo!" #: mediagoblin/templates/mediagoblin/auth/login.html:30 msgid "Logging in failed!" @@ -370,12 +342,7 @@ msgid "" "your web browser:\n" "\n" "%(verification_url)s" -msgstr "" -"Sal %(username)s,\n" -"\n" -"por aktivigi vian GNU MediaGoblin konton, malfermu la sekvantan URLon en via retumilo:\n" -"\n" -"%(verification_url)s" +msgstr "Sal %(username)s,\n\npor aktivigi vian GNU MediaGoblin konton, malfermu la sekvantan URLon en via retumilo:\n\n%(verification_url)s" #: mediagoblin/templates/mediagoblin/edit/edit.html:29 #, python-format @@ -419,20 +386,14 @@ msgid "" "Sorry, this video will not work because \n" "\t your web browser does not support HTML5 \n" "\t video." -msgstr "" -"Bedaŭrinde ĉi tiu filmo ne spekteblas, ĉar\n" -"<span class=\"whitespace other\" title=\"Tab\">»</span> via TTT-legilo ne subtenas montradon\n" -"<span class=\"whitespace other\" title=\"Tab\">»</span> de filmoj laŭ HTML5." +msgstr "Bedaŭrinde ĉi tiu filmo ne spekteblas, ĉar\n<span class=\"whitespace other\" title=\"Tab\">»</span> via TTT-legilo ne subtenas montradon\n<span class=\"whitespace other\" title=\"Tab\">»</span> de filmoj laŭ HTML5." #: mediagoblin/templates/mediagoblin/media_displays/video.html:36 msgid "" "You can get a modern web browser that \n" "\t can play this video at <a href=\"http://getfirefox.com\">\n" "\t http://getfirefox.com</a>!" -msgstr "" -"Vi povas akiri modernan TTT-legilon,\n" -"<span class=\"whitespace other\" title=\"Tab\">»</span> kapablan montri ĉi tiun filmon, ĉe <a href=\"http://getfirefox.com\">\n" -"<span class=\"whitespace other\" title=\"Tab\">»</span> http://getfirefox.com</a>!" +msgstr "Vi povas akiri modernan TTT-legilon,\n<span class=\"whitespace other\" title=\"Tab\">»</span> kapablan montri ĉi tiun filmon, ĉe <a href=\"http://getfirefox.com\">\n<span class=\"whitespace other\" title=\"Tab\">»</span> http://getfirefox.com</a>!" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Add your media" @@ -488,9 +449,7 @@ msgid "" "You can use <a " "href=\"http://daringfireball.net/projects/markdown/basics\">Markdown</a> for" " formatting." -msgstr "" -"Vi povas uzi por markado la lingvon «<a " -"href=\"http://daringfireball.net/projects/markdown/basics\">Markdown</a>»." +msgstr "Vi povas uzi por markado la lingvon «<a href=\"http://daringfireball.net/projects/markdown/basics\">Markdown</a>»." #: mediagoblin/templates/mediagoblin/user_pages/media.html:116 msgid "Add this comment" @@ -503,8 +462,7 @@ msgstr "je" #: mediagoblin/templates/mediagoblin/user_pages/media.html:153 #, python-format msgid "<p>❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a></p>" -msgstr "" -"<p>❖ Foliumado de dosieraro de <a href=\"%(user_url)s\">%(username)s</a></p>" +msgstr "<p>❖ Foliumado de dosieraro de <a href=\"%(user_url)s\">%(username)s</a></p>" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format @@ -522,9 +480,7 @@ msgstr "Kontrolejo pri dosierpreparado." #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 msgid "" "You can track the state of media being processed for your gallery here." -msgstr "" -"Ĉi tie vi povas informiĝi pri la stato de preparado de dosieroj por via " -"galerio." +msgstr "Ĉi tie vi povas informiĝi pri la stato de preparado de dosieroj por via galerio." #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 msgid "Media in-processing" @@ -560,8 +516,7 @@ msgstr "Preskaŭ finite! Restas nur validigi vian konton." #: mediagoblin/templates/mediagoblin/user_pages/user.html:58 msgid "" "An email should arrive in a few moments with instructions on how to do so." -msgstr "" -"Post kelkaj momentoj devas veni retletero kun instrukcio pri kiel tion fari." +msgstr "Post kelkaj momentoj devas veni retletero kun instrukcio pri kiel tion fari." #: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "In case it doesn't:" @@ -575,18 +530,14 @@ msgstr "Resendi kontrolmesaĝon" msgid "" "Someone has registered an account with this username, but it still has to be" " activated." -msgstr "" -"Iu registris konton kun tiu ĉi uzantonomo, sed ĝi devas ankoraŭ esti " -"aktivigita." +msgstr "Iu registris konton kun tiu ĉi uzantonomo, sed ĝi devas ankoraŭ esti aktivigita." #: mediagoblin/templates/mediagoblin/user_pages/user.html:79 #, python-format msgid "" "If you are that person but you've lost your verification email, you can <a " "href=\"%(login_url)s\">log in</a> and resend it." -msgstr "" -"Se vi estas tiu sed vi perdis vian kontrolmesaĝon, vi povas <a " -"href=\"%(login_url)s\">ensaluti</a> kaj resendi ĝin." +msgstr "Se vi estas tiu sed vi perdis vian kontrolmesaĝon, vi povas <a href=\"%(login_url)s\">ensaluti</a> kaj resendi ĝin." #: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "Here's a spot to tell others about yourself." @@ -614,8 +565,7 @@ msgstr "Rigardi ĉiujn dosierojn de %(username)s" msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." -msgstr "" -"Ĝuste ĉi tie aperos viaj dosieroj, sed vi ŝajne ankoraŭ nenion alŝutis." +msgstr "Ĝuste ĉi tie aperos viaj dosieroj, sed vi ŝajne ankoraŭ nenion alŝutis." #: mediagoblin/templates/mediagoblin/user_pages/user.html:163 #: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72 @@ -690,12 +640,8 @@ msgstr "Vi forigis la dosieron." #: mediagoblin/user_pages/views.py:190 msgid "The media was not deleted because you didn't check that you were sure." -msgstr "" -"La dosiero ne estis forigita, ĉar vi ne konfirmis vian certecon per la " -"markilo." +msgstr "La dosiero ne estis forigita, ĉar vi ne konfirmis vian certecon per la markilo." #: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." msgstr "Vi estas forigonta dosieron de alia uzanto. Estu singardema." - - diff --git a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo Binary files differindex dd7735fd..eb6cc942 100644 --- a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo +++ b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo diff --git a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po index d895f3bf..ea9d1dc3 100644 --- a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://issues.mediagoblin.org/\n" -"POT-Creation-Date: 2012-01-29 13:47-0600\n" -"PO-Revision-Date: 2012-02-05 21:04+0000\n" +"POT-Creation-Date: 2012-02-09 09:30-0600\n" +"PO-Revision-Date: 2012-02-26 19:33+0000\n" "Last-Translator: aleksejrs <deletesoftware@yandex.ru>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" @@ -19,7 +19,7 @@ msgstr "" "Language: ru\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" -#: mediagoblin/processing.py:143 +#: mediagoblin/processing.py:153 msgid "Invalid file given for media type." msgstr "Неправильный формат файла." @@ -45,17 +45,13 @@ msgstr "Извините, пользователь с этим именем уж #: mediagoblin/auth/views.py:77 msgid "Sorry, a user with that email address already exists." -msgstr "" -"Сожалеем, но на этот адрес электронной почты уже зарегистрирована другая " -"учётная запись." +msgstr "Сожалеем, но на этот адрес электронной почты уже зарегистрирована другая учётная запись." #: mediagoblin/auth/views.py:180 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" -msgstr "" -"Адрес вашей электронной потвержден. Вы теперь можете войти и начать " -"редактировать свой профиль и загружать новые изображения!" +msgstr "Адрес вашей электронной потвержден. Вы теперь можете войти и начать редактировать свой профиль и загружать новые изображения!" #: mediagoblin/auth/views.py:186 msgid "The verification key or user id is incorrect" @@ -82,15 +78,11 @@ msgstr "Вам отправлено электронное письмо с ин msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." -msgstr "" -"Мы не можем отправить сообщение для восстановления пароля, потому что ваша " -"учётная запись неактивна, либо указанный в ней адрес электронной почты не " -"был подтверждён." +msgstr "Мы не можем отправить сообщение для восстановления пароля, потому что ваша учётная запись неактивна, либо указанный в ней адрес электронной почты не был подтверждён." #: mediagoblin/auth/views.py:282 msgid "Couldn't find someone with that username or email." -msgstr "" -"Не найдено никого с таким именем пользователя или адресом электронной почты." +msgstr "Не найдено никого с таким именем пользователя или адресом электронной почты." #: mediagoblin/auth/views.py:330 msgid "You can now log in using your new password." @@ -110,10 +102,7 @@ msgid "" "You can use\n" " <a href=\"http://daringfireball.net/projects/markdown/basics\">\n" " Markdown</a> for formatting." -msgstr "" -"Для разметки можете использовать язык\n" -" <a href=\"http://daringfireball.net/projects/markdown/basics\">\n" -" Markdown</a>." +msgstr "Для разметки можете использовать язык\n <a href=\"http://daringfireball.net/projects/markdown/basics\">\n Markdown</a>." #: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:36 msgid "Tags" @@ -135,9 +124,7 @@ msgstr "Отличительная часть адреса необходима" msgid "" "The title part of this media's address. You usually don't need to change " "this." -msgstr "" -"Часть адреса этого файла, производная от его названия. Её обычно не " -"требуется изменять." +msgstr "Часть адреса этого файла, производная от его названия. Её обычно не требуется изменять." #: mediagoblin/edit/forms.py:44 mediagoblin/submit/forms.py:41 msgid "License" @@ -157,9 +144,7 @@ msgstr "Старый пароль" #: mediagoblin/edit/forms.py:65 msgid "Enter your old password to prove you own this account." -msgstr "" -"Введите свой старый пароль в качестве доказательства, что это ваша учётная " -"запись." +msgstr "Введите свой старый пароль в качестве доказательства, что это ваша учётная запись." #: mediagoblin/edit/forms.py:68 msgid "New password" @@ -167,8 +152,7 @@ msgstr "Новый пароль" #: mediagoblin/edit/views.py:68 msgid "An entry with that slug already exists for this user." -msgstr "" -"У этого пользователя уже есть файл с такой отличительной частью адреса." +msgstr "У этого пользователя уже есть файл с такой отличительной частью адреса." #: mediagoblin/edit/views.py:92 msgid "You are editing another user's media. Proceed with caution." @@ -255,9 +239,7 @@ msgstr "Войти" msgid "" "Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a " "href=\"http://gnu.org/\">GNU</a> project" -msgstr "" -"Работает на <a href=\"http://mediagoblin.org\">MediaGoblin</a>, проекте <a " -"href=\"http://gnu.org/\">GNU</a>" +msgstr "Работает на <a href=\"http://mediagoblin.org\">MediaGoblin</a>, проекте <a href=\"http://gnu.org/\">GNU</a>" #: mediagoblin/templates/mediagoblin/root.html:24 msgid "Explore" @@ -271,18 +253,13 @@ msgstr "Привет! Добро пожаловать на наш MediaGoblin’ msgid "" "This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an " "extraordinarily great piece of media hosting software." -msgstr "" -"Этот сайт работает на <a href=\"http://mediagoblin.org\">MediaGoblin</a>, " -"необыкновенно замечательном ПО для хостинга мультимедийных файлов." +msgstr "Этот сайт работает на <a href=\"http://mediagoblin.org\">MediaGoblin</a>, необыкновенно замечательном ПО для хостинга мультимедийных файлов." #: mediagoblin/templates/mediagoblin/root.html:29 msgid "" "To add your own media, place comments, save your favourites and more, you " "can log in with your MediaGoblin account." -msgstr "" -"Для добавления собственных файлов, комментирования, ведения списка любимых " -"файлов и т. п. вы можете представиться с помощью вашей MediaGoblin’овой " -"учётной записи." +msgstr "Для добавления собственных файлов, комментирования, ведения списка любимых файлов и т. п. вы можете представиться с помощью вашей MediaGoblin’овой учётной записи." #: mediagoblin/templates/mediagoblin/root.html:31 msgid "Don't have one yet? It's easy!" @@ -294,10 +271,7 @@ msgid "" "<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n" " or\n" " <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>" -msgstr "" -"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Создайте учётную запись на этом сайте</a>\n" -" или\n" -" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">установите MediaGoblin на собственный сервер</a>" +msgstr "<a class=\"button_action_highlight\" href=\"%(register_url)s\">Создайте учётную запись на этом сайте</a>\n или\n <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">установите MediaGoblin на собственный сервер</a>" #: mediagoblin/templates/mediagoblin/root.html:40 msgid "Most recent media" @@ -331,16 +305,7 @@ msgid "" "\n" "If you think this is an error, just ignore this email and continue being\n" "a happy goblin!" -msgstr "" -"Привет, %(username)s,\n" -"\n" -"чтобы сменить свой пароль от GNU MediaGoblin, откройте\n" -"следующий URL вашим веб‐браузером:\n" -"\n" -"%(verification_url)s\n" -"\n" -"Если вы думаете, что это какая‐то ошибка, то игнорируйте\n" -"это сообщение и продолжайте быть счастливым гоблином!" +msgstr "Привет, %(username)s,\n\nчтобы сменить свой пароль от GNU MediaGoblin, откройте\nследующий URL вашим веб‐браузером:\n\n%(verification_url)s\n\nЕсли вы думаете, что это какая‐то ошибка, то игнорируйте\nэто сообщение и продолжайте быть счастливым гоблином!" #: mediagoblin/templates/mediagoblin/auth/login.html:30 msgid "Logging in failed!" @@ -375,12 +340,7 @@ msgid "" "your web browser:\n" "\n" "%(verification_url)s" -msgstr "" -"Привет, %(username)s!\n" -"\n" -"Чтобы активировать свой аккаунт в GNU MediaGoblin, откройте в своём веб‐браузере следующую ссылку:\n" -"\n" -"%(verification_url)s" +msgstr "Привет, %(username)s!\n\nЧтобы активировать свой аккаунт в GNU MediaGoblin, откройте в своём веб‐браузере следующую ссылку:\n\n%(verification_url)s" #: mediagoblin/templates/mediagoblin/edit/edit.html:29 #, python-format @@ -424,20 +384,14 @@ msgid "" "Sorry, this video will not work because \n" "\t your web browser does not support HTML5 \n" "\t video." -msgstr "" -"Сожалеем, этот ролик не проиграется, ⏎\n" -"» потому что ваш браузер не поддерживает ⏎\n" -"» видео в соответствии со стандартом HTML5." +msgstr "Сожалеем, этот ролик не проиграется, ⏎\n» потому что ваш браузер не поддерживает ⏎\n» видео в соответствии со стандартом HTML5." #: mediagoblin/templates/mediagoblin/media_displays/video.html:36 msgid "" "You can get a modern web browser that \n" "\t can play this video at <a href=\"http://getfirefox.com\">\n" "\t http://getfirefox.com</a>!" -msgstr "" -"Вы можете скачать современный браузер,\n" -"<span class=\"whitespace other\" title=\"Tab\">»</span> способный воспроизводить это видео, с <a href=\"http://getfirefox.com\">\n" -"<span class=\"whitespace other\" title=\"Tab\">»</span> http://getfirefox.com</a>!" +msgstr "Вы можете скачать современный браузер,\n<span class=\"whitespace other\" title=\"Tab\">»</span> способный воспроизводить это видео, с <a href=\"http://getfirefox.com\">\n<span class=\"whitespace other\" title=\"Tab\">»</span> http://getfirefox.com</a>!" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Add your media" @@ -493,9 +447,7 @@ msgid "" "You can use <a " "href=\"http://daringfireball.net/projects/markdown/basics\">Markdown</a> for" " formatting." -msgstr "" -"Для разметки можете использовать язык <a " -"href=\"http://daringfireball.net/projects/markdown/basics\">Markdown</a>." +msgstr "Для разметки можете использовать язык <a href=\"http://daringfireball.net/projects/markdown/basics\">Markdown</a>." #: mediagoblin/templates/mediagoblin/user_pages/media.html:116 msgid "Add this comment" @@ -508,9 +460,7 @@ msgstr "в" #: mediagoblin/templates/mediagoblin/user_pages/media.html:153 #, python-format msgid "<p>❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a></p>" -msgstr "" -"<p>❖ Просмотр файлов пользователя <a " -"href=\"%(user_url)s\">%(username)s</a></p>" +msgstr "<p>❖ Просмотр файлов пользователя <a href=\"%(user_url)s\">%(username)s</a></p>" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format @@ -528,8 +478,7 @@ msgstr "Панель обработки файлов" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 msgid "" "You can track the state of media being processed for your gallery here." -msgstr "" -"Вы можете следить за статусом обработки файлов для вашей галереи здесь." +msgstr "Вы можете следить за статусом обработки файлов для вашей галереи здесь." #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 msgid "Media in-processing" @@ -565,9 +514,7 @@ msgstr "Почти закончили! Теперь надо активиров #: mediagoblin/templates/mediagoblin/user_pages/user.html:58 msgid "" "An email should arrive in a few moments with instructions on how to do so." -msgstr "" -"Через пару мгновений на адрес вашей электронной почты должно прийти " -"сообщение с дальнейшими инструкциями." +msgstr "Через пару мгновений на адрес вашей электронной почты должно прийти сообщение с дальнейшими инструкциями." #: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "In case it doesn't:" @@ -575,8 +522,7 @@ msgstr "А если нет, то:" #: mediagoblin/templates/mediagoblin/user_pages/user.html:65 msgid "Resend verification email" -msgstr "" -"Повторно отправить сообщение для подверждения адреса электронной почты" +msgstr "Повторно отправить сообщение для подверждения адреса электронной почты" #: mediagoblin/templates/mediagoblin/user_pages/user.html:73 msgid "" @@ -589,9 +535,7 @@ msgstr "Кто‐то создал аккаунт с этим именем, но msgid "" "If you are that person but you've lost your verification email, you can <a " "href=\"%(login_url)s\">log in</a> and resend it." -msgstr "" -"Если это были вы, и если вы потеряли сообщение для подтверждения аккаунта, " -"то вы можете <a href=\"%(login_url)s\">войти</a> и отправить его повторно." +msgstr "Если это были вы, и если вы потеряли сообщение для подтверждения аккаунта, то вы можете <a href=\"%(login_url)s\">войти</a> и отправить его повторно." #: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "Here's a spot to tell others about yourself." @@ -699,5 +643,3 @@ msgstr "Файл не удалён, так как вы не подтвердил #: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." msgstr "Вы на пороге удаления файла другого пользователя. Будьте осторожны." - - diff --git a/mediagoblin/tests/test_submission.py b/mediagoblin/tests/test_submission.py index 217926a4..2f11bdfb 100644 --- a/mediagoblin/tests/test_submission.py +++ b/mediagoblin/tests/test_submission.py @@ -140,7 +140,7 @@ class TestSubmission: context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/user_pages/user.html'] request = context['request'] media = request.db.MediaEntry.find({'title': 'Balanced Goblin'})[0] - assert_equal(media['tags'], + assert_equal(media.tags, [{'name': u'yin', 'slug': u'yin'}, {'name': u'yang', 'slug': u'yang'}]) @@ -255,7 +255,7 @@ class TestSubmission: {'title': 'Malicious Upload 2'}) assert_equal(entry.state, 'failed') assert_equal( - entry['fail_error'], + entry.fail_error, u'mediagoblin.processing:BadMediaFail') # Test non-supported file with .png extension @@ -275,5 +275,5 @@ class TestSubmission: {'title': 'Malicious Upload 3'}) assert_equal(entry.state, 'failed') assert_equal( - entry['fail_error'], + entry.fail_error, u'mediagoblin.processing:BadMediaFail') diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 05d07b1b..530dea64 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -142,11 +142,11 @@ def media_post_comment(request, media): assert request.method == 'POST' comment = request.db.MediaComment() - comment['media_entry'] = media._id - comment['author'] = request.user._id - comment['content'] = unicode(request.POST['comment_content']) + comment.media_entry = media.id + comment.author = request.user.id + comment.content = unicode(request.POST['comment_content']) - if not comment['content'].strip(): + if not comment.content.strip(): messages.add_message( request, messages.ERROR, |