aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mobin0 -> 5561 bytes
-rw-r--r--mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po319
-rw-r--r--mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mobin5406 -> 5983 bytes
-rw-r--r--mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po200
-rw-r--r--mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mobin0 -> 6281 bytes
-rw-r--r--mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po310
-rw-r--r--mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mobin5461 -> 5597 bytes
-rw-r--r--mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po76
-rw-r--r--mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mobin0 -> 5387 bytes
-rw-r--r--mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po310
-rw-r--r--mediagoblin/static/css/base.css66
-rw-r--r--mediagoblin/static/images/icon_feed.pngbin522 -> 378 bytes
-rw-r--r--mediagoblin/static/images/logo.pngbin839 -> 0 bytes
-rw-r--r--mediagoblin/templates/mediagoblin/base.html8
-rw-r--r--mediagoblin/templates/mediagoblin/listings/tag.html9
-rw-r--r--mediagoblin/templates/mediagoblin/user_pages/gallery.html11
-rw-r--r--mediagoblin/templates/mediagoblin/user_pages/media.html16
-rw-r--r--mediagoblin/templates/mediagoblin/user_pages/user.html96
-rw-r--r--mediagoblin/templates/mediagoblin/utils/feed_link.html23
-rw-r--r--mediagoblin/templates/mediagoblin/utils/object_gallery.html51
-rw-r--r--mediagoblin/util.py32
21 files changed, 1285 insertions, 242 deletions
diff --git a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo
new file mode 100644
index 00000000..114ab7c0
--- /dev/null
+++ b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo
Binary files differ
diff --git a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po
new file mode 100644
index 00000000..ea19af01
--- /dev/null
+++ b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po
@@ -0,0 +1,319 @@
+# Translations template for PROJECT.
+# Copyright (C) 2011 ORGANIZATION
+# This file is distributed under the same license as the PROJECT project.
+#
+# <john_w1954@fastmail.fm>, 2011.
+# Fernando Inocencio <faigos@gmail.com>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU MediaGoblin\n"
+"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n"
+"POT-Creation-Date: 2011-08-13 19:47-0500\n"
+"PO-Revision-Date: 2011-08-15 20:33+0000\n"
+"Last-Translator: fajro <faigos@gmail.com>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 0.9.6\n"
+"Language: eo\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46
+msgid "Username"
+msgstr "Uzantnomo"
+
+#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50
+msgid "Password"
+msgstr "Pasvorton"
+
+#: mediagoblin/auth/forms.py:34
+msgid "Passwords must match."
+msgstr "Pasvortoj devas koincidi. "
+
+#: mediagoblin/auth/forms.py:36
+msgid "Confirm password"
+msgstr "Retajpu pasvorton"
+
+#: mediagoblin/auth/forms.py:39
+msgid "Email address"
+msgstr "Retadreso"
+
+#: mediagoblin/auth/views.py:40
+msgid "Sorry, registration is disabled on this instance."
+msgstr "Bedaŭrinde, registrado estas malaktivita en tiu ĉi instanco."
+
+#: mediagoblin/auth/views.py:57
+msgid "Sorry, a user with that name already exists."
+msgstr "Bedaŭrinde, uzanto kun tiu nomo jam ekzistas."
+
+#: mediagoblin/auth/views.py:61
+msgid "Sorry, that email address has already been taken."
+msgstr ""
+
+#: mediagoblin/auth/views.py:159
+msgid ""
+"Your email address has been verified. You may now login, edit your profile, "
+"and submit images!"
+msgstr ""
+"Vian retadreson estas kontrolita. Vi povas nun ensaluti, redakti vian "
+"profilon, kaj alŝuti bildojn!"
+
+#: mediagoblin/auth/views.py:165
+msgid "The verification key or user id is incorrect"
+msgstr "La kontrol-kodo aŭ la uzantonomo ne estas korekta"
+
+#: mediagoblin/auth/views.py:186
+#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22
+msgid "Resent your verification email."
+msgstr "Resendi vian kontrol-mesaĝon."
+
+#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27
+msgid "Title"
+msgstr "Titolo"
+
+#: mediagoblin/edit/forms.py:29
+msgid "Slug"
+msgstr ""
+
+#: mediagoblin/edit/forms.py:30
+msgid "The slug can't be empty"
+msgstr ""
+
+#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31
+msgid "Tags"
+msgstr "Etikedoj"
+
+#: mediagoblin/edit/forms.py:38
+msgid "Bio"
+msgstr "Bio"
+
+#: mediagoblin/edit/forms.py:41
+msgid "Website"
+msgstr "Retejo"
+
+#: mediagoblin/edit/forms.py:43
+msgid "Improperly formed URL"
+msgstr ""
+
+#: mediagoblin/edit/views.py:54
+msgid "An entry with that slug already exists for this user."
+msgstr ""
+
+#: mediagoblin/edit/views.py:75
+msgid "You are editing another user's media. Proceed with caution."
+msgstr ""
+
+#: mediagoblin/edit/views.py:96
+msgid "You are editing a user's profile. Proceed with caution."
+msgstr ""
+
+#: mediagoblin/submit/forms.py:25
+msgid "File"
+msgstr "Dosiero"
+
+#: mediagoblin/submit/views.py:46
+msgid "You must provide a file."
+msgstr "Vi devas provizi dosieron."
+
+#: mediagoblin/submit/views.py:49
+msgid "The file doesn't seem to be an image!"
+msgstr ""
+
+#: mediagoblin/submit/views.py:94
+msgid "Woohoo! Submitted!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/base.html:22
+msgid "GNU MediaGoblin"
+msgstr "GNU MediaGoblin"
+
+#: mediagoblin/templates/mediagoblin/base.html:45
+msgid "Mediagoblin logo"
+msgstr " Logogramo de Mediagoblin"
+
+#: mediagoblin/templates/mediagoblin/base.html:51
+msgid "Submit media"
+msgstr "Alŝuti aŭd-vid-dosieron"
+
+#: mediagoblin/templates/mediagoblin/base.html:62
+msgid "verify your email!"
+msgstr "kontrolu vian retpoŝton! "
+
+#: mediagoblin/templates/mediagoblin/base.html:72
+msgid "Login"
+msgstr "Ensaluti"
+
+#: mediagoblin/templates/mediagoblin/base.html:88
+msgid ""
+"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
+"href=\"http://gnu.org/\">GNU project</a>"
+msgstr ""
+"Provizita de <a href=\"http://mediagoblin.org\">MediaGoblin</a>, unu el la "
+"<a href=\"http://gnu.org/\">GNU projectoj</a>"
+
+#: mediagoblin/templates/mediagoblin/root.html:23
+msgid "Welcome to GNU MediaGoblin!"
+msgstr "Bonvenon al GNU MediaGoblin!"
+
+#: mediagoblin/templates/mediagoblin/root.html:28
+msgid "Submit an item"
+msgstr "Alŝuti dosieron"
+
+#: mediagoblin/templates/mediagoblin/root.html:33
+#, python-format
+msgid "If you have an account, you can <a href=\"%(login_url)s\">Login</a>."
+msgstr "Se vi havas konton, vi povas <a href=\"%(login_url)s\">Ensaluti</a>."
+
+#: mediagoblin/templates/mediagoblin/root.html:39
+#, python-format
+msgid ""
+"If you don't have an account, please <a "
+"href=\"%(register_url)s\">Register</a>."
+msgstr ""
+"Se vi ne havas konton, bonvolu <a href=\"%(register_url)s\">Registriĝi</a>."
+
+#: mediagoblin/templates/mediagoblin/auth/login.html:26
+msgid "Log in"
+msgstr "Ensaluti"
+
+#: mediagoblin/templates/mediagoblin/auth/login.html:29
+msgid "Login failed!"
+msgstr "Ensalutado malsukcesis!"
+
+#: mediagoblin/templates/mediagoblin/auth/login.html:34
+#: mediagoblin/templates/mediagoblin/auth/register.html:30
+#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
+#: mediagoblin/templates/mediagoblin/submit/start.html:29
+msgid "Submit"
+msgstr "Alŝuti"
+
+#: mediagoblin/templates/mediagoblin/auth/login.html:42
+msgid "Don't have an account yet?"
+msgstr "Ĉu ankoraŭ sen konto?"
+
+#: mediagoblin/templates/mediagoblin/auth/login.html:45
+msgid "Create one here!"
+msgstr "Kreu unu ĉi tie!"
+
+#: mediagoblin/templates/mediagoblin/auth/register.html:27
+msgid "Create an account!"
+msgstr "Kreu konton!"
+
+#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19
+#, python-format
+msgid ""
+"Hi %(username)s,\n"
+"\n"
+"to activate your GNU MediaGoblin account, open the following URL in\n"
+"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"
+
+#: mediagoblin/templates/mediagoblin/edit/edit.html:29
+#, python-format
+msgid "Editing %(media_title)s"
+msgstr "Editing %(media_title)s"
+
+#: mediagoblin/templates/mediagoblin/edit/edit.html:36
+msgid "Cancel"
+msgstr "Nuligi"
+
+#: mediagoblin/templates/mediagoblin/edit/edit.html:37
+msgid "Save changes"
+msgstr "Konservi ŝanĝojn"
+
+#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29
+#, python-format
+msgid "Editing %(username)s's profile"
+msgstr "Redaktanta profilon de %(username)s'"
+
+#: mediagoblin/templates/mediagoblin/listings/tag.html:31
+msgid "Media tagged with:"
+msgstr "Dosiero markita kiel:"
+
+#: mediagoblin/templates/mediagoblin/listings/tag.html:42
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:48
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:104
+msgid "atom feed"
+msgstr "Atom-a informfluado"
+
+#: mediagoblin/templates/mediagoblin/submit/start.html:26
+msgid "Submit yer media"
+msgstr "Alŝutu vian aŭd-vid-dosieron"
+
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32
+#, python-format
+msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
+msgstr "<a href=\"%(user_url)s\">%(username)s</a>-a aŭd-vid-dosiero"
+
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:53
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
+msgid "Sorry, no such user found."
+msgstr "Uzanto ne trovita."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
+msgid "Verification needed"
+msgstr "Kontrolon bezonata"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
+msgid "Almost done! Your account still needs to be verified."
+msgstr "Preskaŭ farite! Via konto ankoraŭ devas esti kontrolita."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:47
+msgid ""
+"An email should arrive in a few moments with instructions on how to do so."
+msgstr ""
+"Retmesaĝo alvenos post kelkaj momentoj kun instrukcioj pri kiel tion fari."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:51
+msgid "In case it doesn't:"
+msgstr "Se tio ne okazas:"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:54
+msgid "Resend verification email"
+msgstr "Resendu kontrolmesaĝon"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
+msgid ""
+"Someone has registered an account with this username, but it still has to be"
+" verified."
+msgstr ""
+"Iu registris konton kun tiu ĉi uzantonomo, sed ĝi devas ankoraŭ esti "
+"kontrolita."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:68
+#, 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."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:78
+#, python-format
+msgid "%(username)s's profile"
+msgstr "%(username)s'-a profilo"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:86
+msgid "Edit profile"
+msgstr "Redakti profilo"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:98
+#, python-format
+msgid "View all of %(username)s's media"
+msgstr "Rigardu ĉiuj aŭd-vid-dosierojn de %(username)s'"
+
+#: mediagoblin/user_pages/forms.py:24
+msgid "Comment"
+msgstr "Komento"
+
+
diff --git a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo
index a7daf2c9..f8854734 100644
--- a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo
+++ b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo
Binary files differ
diff --git a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po
index 4606bf47..5afe7091 100644
--- a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po
@@ -3,13 +3,15 @@
# This file is distributed under the same license as the PROJECT project.
#
# <marktraceur@gmail.com>, 2011.
+# Valentin Villenave <valentin@villenave.net>, 2011.
+# <transifex@wandborg.se>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: GNU MediaGoblin\n"
"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n"
-"POT-Creation-Date: 2011-08-08 22:53-0500\n"
-"PO-Revision-Date: 2011-08-10 21:24+0000\n"
-"Last-Translator: MarkTraceur <marktraceur@gmail.com>\n"
+"POT-Creation-Date: 2011-08-13 19:47-0500\n"
+"PO-Revision-Date: 2011-08-16 13:22+0000\n"
+"Last-Translator: joar <transifex@wandborg.se>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -20,102 +22,112 @@ msgstr ""
#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46
msgid "Username"
-msgstr ""
+msgstr "Nom d'utilisateur"
#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50
msgid "Password"
-msgstr ""
+msgstr "Mot de passe"
#: mediagoblin/auth/forms.py:34
msgid "Passwords must match."
-msgstr ""
+msgstr "Les mots de passe doivent correspondre."
#: mediagoblin/auth/forms.py:36
msgid "Confirm password"
-msgstr ""
+msgstr "Confirmer le mot de passe"
#: mediagoblin/auth/forms.py:39
msgid "Email address"
-msgstr ""
+msgstr "Adresse e-mail"
#: mediagoblin/auth/views.py:40
msgid "Sorry, registration is disabled on this instance."
-msgstr ""
+msgstr "L'inscription n'est pas activée sur ce serveur, désolé."
-#: mediagoblin/auth/views.py:55
+#: mediagoblin/auth/views.py:57
msgid "Sorry, a user with that name already exists."
+msgstr "Un utilisateur existe déjà avec ce nom, désolé."
+
+#: mediagoblin/auth/views.py:61
+msgid "Sorry, that email address has already been taken."
msgstr ""
-#: mediagoblin/auth/views.py:152
+#: mediagoblin/auth/views.py:159
msgid ""
"Your email address has been verified. You may now login, edit your profile, "
"and submit images!"
msgstr ""
+"Votre adresse e-mail a bien été vérifiée. Vous pouvez maintenant vous "
+"identifier, modifier votre profil, et soumettre des images !"
-#: mediagoblin/auth/views.py:158
+#: mediagoblin/auth/views.py:165
msgid "The verification key or user id is incorrect"
-msgstr ""
+msgstr "La clé de vérification ou le nom d'utilisateur est incorrect."
-#: mediagoblin/auth/views.py:179
+#: mediagoblin/auth/views.py:186
#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22
msgid "Resent your verification email."
-msgstr "Nous avons renvoyé votre e-mail de vérification."
+msgstr "E-mail de vérification renvoyé."
-#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26
+#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27
msgid "Title"
-msgstr ""
+msgstr "Titre"
#: mediagoblin/edit/forms.py:29
msgid "Slug"
-msgstr ""
+msgstr "Légende"
#: mediagoblin/edit/forms.py:30
msgid "The slug can't be empty"
-msgstr ""
+msgstr "La légende ne peut pas être laissée vide."
#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31
msgid "Tags"
-msgstr ""
+msgstr "Tags"
#: mediagoblin/edit/forms.py:38
msgid "Bio"
-msgstr ""
+msgstr "Bio"
#: mediagoblin/edit/forms.py:41
msgid "Website"
-msgstr ""
+msgstr "Site web"
#: mediagoblin/edit/forms.py:43
msgid "Improperly formed URL"
-msgstr ""
+msgstr "Adresse web mal formée"
#: mediagoblin/edit/views.py:54
msgid "An entry with that slug already exists for this user."
-msgstr ""
+msgstr "Une entrée existe déjà pour cet utilisateur avec la même légende."
#: mediagoblin/edit/views.py:75
msgid "You are editing another user's media. Proceed with caution."
msgstr ""
+"Vous vous apprêtez à modifier le média d'un autre utilisateur. Veuillez "
+"prendre garde."
#: mediagoblin/edit/views.py:96
msgid "You are editing a user's profile. Proceed with caution."
msgstr ""
+"Vous vous apprêtez à modifier le profil d'un utilisateur. Veuillez prendre "
+"garde."
-#: mediagoblin/submit/forms.py:29
+#: mediagoblin/submit/forms.py:25
msgid "File"
-msgstr ""
+msgstr "Fichier"
-#: mediagoblin/submit/views.py:45
+#: mediagoblin/submit/views.py:46
msgid "You must provide a file."
-msgstr ""
+msgstr "Il vous faut fournir un fichier."
-#: mediagoblin/submit/views.py:48
+#: mediagoblin/submit/views.py:49
msgid "The file doesn't seem to be an image!"
-msgstr ""
+msgstr "Ce fichier ne semble pas être une image !"
-#: mediagoblin/submit/views.py:96
+#: mediagoblin/submit/views.py:94
msgid "Woohoo! Submitted!"
-msgstr ""
+msgstr "Youhou, c'est envoyé !"
#: mediagoblin/templates/mediagoblin/base.html:22
msgid "GNU MediaGoblin"
@@ -127,73 +139,74 @@ msgstr "logo de MediaGoblin"
#: mediagoblin/templates/mediagoblin/base.html:51
msgid "Submit media"
-msgstr "Soumettez des médias"
+msgstr "Soumettre un média"
#: mediagoblin/templates/mediagoblin/base.html:62
msgid "verify your email!"
-msgstr "vérifiez votre addresse e-mail"
+msgstr "vérifier son adresse e-mail"
#: mediagoblin/templates/mediagoblin/base.html:72
msgid "Login"
-msgstr "Connexion"
+msgstr "Identification"
#: mediagoblin/templates/mediagoblin/base.html:88
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
"href=\"http://gnu.org/\">GNU project</a>"
msgstr ""
-"Alimenté par <a href=\"http://mediagoblin.org\">MediaGoblin</a>, un <a "
-"href=\"http://gnu.org/\">projet GNU</a>"
+"Propulsé par <a href=\"http://mediagoblin.org\">MediaGoblin</a>, un projet "
+"de <a href=\"http://gnu.org/\">GNU</a>"
-#: mediagoblin/templates/mediagoblin/root.html:21
+#: mediagoblin/templates/mediagoblin/root.html:23
msgid "Welcome to GNU MediaGoblin!"
-msgstr "Bienvenue à GNU MediaGoblin!"
+msgstr "Bienvenue sur GNU MediaGoblin !"
-#: mediagoblin/templates/mediagoblin/root.html:26
+#: mediagoblin/templates/mediagoblin/root.html:28
msgid "Submit an item"
-msgstr "Soumettez un fichier"
+msgstr "Soumettre un fichier"
-#: mediagoblin/templates/mediagoblin/root.html:31
+#: mediagoblin/templates/mediagoblin/root.html:33
#, python-format
msgid "If you have an account, you can <a href=\"%(login_url)s\">Login</a>."
msgstr ""
-"Si vous avez un compte, vous pouvez <a href=\"%(login_url)s\">Connecter</a>."
+"Si vous avez un compte, vous pouvez vous <a "
+"href=\"%(login_url)s\">identifier</a>."
-#: mediagoblin/templates/mediagoblin/root.html:37
+#: mediagoblin/templates/mediagoblin/root.html:39
#, python-format
msgid ""
"If you don't have an account, please <a "
"href=\"%(register_url)s\">Register</a>."
msgstr ""
-"Si vous n'avez pas un compte, s'il vous plaît, <a "
-"href=\"%(register_url)s\">vous inscrivez</a>."
+"Si vous n'avez pas de compte, veuillez vous <a "
+"href=\"%(register_url)s\">inscrire</a>."
#: mediagoblin/templates/mediagoblin/auth/login.html:26
msgid "Log in"
-msgstr "Connexion"
+msgstr "S'identifier"
#: mediagoblin/templates/mediagoblin/auth/login.html:29
msgid "Login failed!"
-msgstr "Connexion manqué"
+msgstr "L'identification a échoué !"
#: mediagoblin/templates/mediagoblin/auth/login.html:34
#: mediagoblin/templates/mediagoblin/auth/register.html:30
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
-#: mediagoblin/templates/mediagoblin/submit/start.html:32
+#: mediagoblin/templates/mediagoblin/submit/start.html:29
msgid "Submit"
-msgstr "Soumettez"
+msgstr "Soumettre"
#: mediagoblin/templates/mediagoblin/auth/login.html:42
msgid "Don't have an account yet?"
-msgstr "N'avez-vous toujours un compte?"
+msgstr "Pas encore de compte ?"
#: mediagoblin/templates/mediagoblin/auth/login.html:45
msgid "Create one here!"
-msgstr "En créez un ici!"
+msgstr "Créez-en un ici !"
#: mediagoblin/templates/mediagoblin/auth/register.html:27
msgid "Create an account!"
-msgstr "Créez un compte!"
+msgstr "Créer un compte !"
#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19
#, python-format
@@ -205,101 +218,112 @@ msgid ""
"\n"
"%(verification_url)s"
msgstr ""
-"Bonjour, %(username)s,\n"
+"Bonjour %(username)s,\n"
"\n"
-"pour activer votre compte de GNU MediaGoblin, ouvrez l'URL suite avec votre navigateur web:\n"
+"pour activer votre compte sur GNU MediaGoblin, veuillez vous rendre à l'adresse suivante avec votre navigateur web:\n"
"\n"
"%(verification_url)s"
#: mediagoblin/templates/mediagoblin/edit/edit.html:29
#, python-format
msgid "Editing %(media_title)s"
-msgstr "On édit %(media_title)s"
+msgstr "Modification de %(media_title)s"
#: mediagoblin/templates/mediagoblin/edit/edit.html:36
msgid "Cancel"
-msgstr "Annulez"
+msgstr "Annuler"
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
msgid "Save changes"
-msgstr "Enregistrez les modifications"
+msgstr "Enregistrer les modifications"
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29
#, python-format
msgid "Editing %(username)s's profile"
-msgstr ""
+msgstr "Modification du profil de %(username)s"
-#: mediagoblin/templates/mediagoblin/listings/tag.html:29
+#: mediagoblin/templates/mediagoblin/listings/tag.html:31
msgid "Media tagged with:"
-msgstr ""
+msgstr "Média comportant les tags suivants :"
-#: mediagoblin/templates/mediagoblin/listings/tag.html:40
-#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:101
+#: mediagoblin/templates/mediagoblin/listings/tag.html:42
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:48
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:104
msgid "atom feed"
-msgstr ""
+msgstr "flux Atom"
#: mediagoblin/templates/mediagoblin/submit/start.html:26
msgid "Submit yer media"
-msgstr ""
+msgstr "Soumettez ce média"
-#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32
#, python-format
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
-msgstr ""
+msgstr "Médias de <a href=\"%(user_url)s\">%(username)s</a>"
-#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:30
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:53
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
msgid "Sorry, no such user found."
-msgstr ""
+msgstr "Impossible de trouver cet utilisateur, désolé."
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:37
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:57
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
msgid "Verification needed"
-msgstr ""
+msgstr "Vérification requise"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:40
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
msgid "Almost done! Your account still needs to be verified."
-msgstr ""
+msgstr "C'est presque fini ! Il vous faut encore vérifier votre compte."
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:45
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:47
msgid ""
"An email should arrive in a few moments with instructions on how to do so."
msgstr ""
+"Un e-mail devrait vous parvenir dans quelques instants ; il vous indiquera "
+"comment procéder."
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:49
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:51
msgid "In case it doesn't:"
-msgstr ""
+msgstr "Si la vérification n'est pas arrivée à bon port :"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:52
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:54
msgid "Resend verification email"
-msgstr ""
+msgstr "Renvoyer l'e-mail de vérification"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:60
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
msgid ""
"Someone has registered an account with this username, but it still has to be"
" verified."
msgstr ""
+"Quelqu'un a créé un compte à ce nom, mais le compte n'a pas encore été "
+"vérifié."
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:66
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:68
#, 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 ""
+"Si c'est de vous qu'il s'agit, mais que vous avez perdu l'e-mail de "
+"vérification, vous pouvez vous <a href=\"%(login_url)s\">identifier</a> et "
+"le renvoyer."
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:76
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:78
#, python-format
msgid "%(username)s's profile"
-msgstr ""
+msgstr "profil de %(username)s"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:84
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:86
msgid "Edit profile"
-msgstr ""
+msgstr "Modifier le profil"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:95
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:98
#, python-format
msgid "View all of %(username)s's media"
+msgstr "Voir tous les médias de %(username)s"
+
+#: mediagoblin/user_pages/forms.py:24
+msgid "Comment"
msgstr ""
diff --git a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mo
new file mode 100644
index 00000000..78455ad2
--- /dev/null
+++ b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mo
Binary files differ
diff --git a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po
new file mode 100644
index 00000000..0aba5755
--- /dev/null
+++ b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po
@@ -0,0 +1,310 @@
+# Translations template for PROJECT.
+# Copyright (C) 2011 ORGANIZATION
+# This file is distributed under the same license as the PROJECT project.
+#
+# <averym@gmail.com>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU MediaGoblin\n"
+"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n"
+"POT-Creation-Date: 2011-08-13 19:47-0500\n"
+"PO-Revision-Date: 2011-08-14 00:47+0000\n"
+"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 0.9.6\n"
+"Language: ja\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+
+#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46
+msgid "Username"
+msgstr "ユーザネーム"
+
+#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50
+msgid "Password"
+msgstr "パスワード"
+
+#: mediagoblin/auth/forms.py:34
+msgid "Passwords must match."
+msgstr "パスワードが一致している必要があります。"
+
+#: mediagoblin/auth/forms.py:36
+msgid "Confirm password"
+msgstr "パスワードを確認"
+
+#: mediagoblin/auth/forms.py:39
+msgid "Email address"
+msgstr "メールアドレス"
+
+#: mediagoblin/auth/views.py:40
+msgid "Sorry, registration is disabled on this instance."
+msgstr "申し訳ありませんが、このインスタンスで登録は無効になっています。"
+
+#: mediagoblin/auth/views.py:57
+msgid "Sorry, a user with that name already exists."
+msgstr "申し訳ありませんが、その名前を持つユーザーがすでに存在しています。"
+
+#: mediagoblin/auth/views.py:61
+msgid "Sorry, that email address has already been taken."
+msgstr ""
+
+#: mediagoblin/auth/views.py:159
+msgid ""
+"Your email address has been verified. You may now login, edit your profile, "
+"and submit images!"
+msgstr "メアドが確認されています。これで、ログインしてプロファイルを編集し、画像を提出することができます!"
+
+#: mediagoblin/auth/views.py:165
+msgid "The verification key or user id is incorrect"
+msgstr "検証キーまたはユーザーIDが間違っています"
+
+#: mediagoblin/auth/views.py:186
+#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22
+msgid "Resent your verification email."
+msgstr "検証メールを再送しました。"
+
+#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27
+msgid "Title"
+msgstr "タイトル"
+
+#: mediagoblin/edit/forms.py:29
+msgid "Slug"
+msgstr "スラグ"
+
+#: mediagoblin/edit/forms.py:30
+msgid "The slug can't be empty"
+msgstr "スラグは必要です。"
+
+#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31
+msgid "Tags"
+msgstr "タグ"
+
+#: mediagoblin/edit/forms.py:38
+msgid "Bio"
+msgstr "自己紹介"
+
+#: mediagoblin/edit/forms.py:41
+msgid "Website"
+msgstr "URL"
+
+#: mediagoblin/edit/forms.py:43
+msgid "Improperly formed URL"
+msgstr "不適切な形式のURL"
+
+#: mediagoblin/edit/views.py:54
+msgid "An entry with that slug already exists for this user."
+msgstr "そのスラグを持つエントリは、このユーザーは既に存在します。"
+
+#: mediagoblin/edit/views.py:75
+msgid "You are editing another user's media. Proceed with caution."
+msgstr "あなたは、他のユーザーのメディアを編集しています。ご注意ください。"
+
+#: mediagoblin/edit/views.py:96
+msgid "You are editing a user's profile. Proceed with caution."
+msgstr "あなたは、他のユーザーのプロファイルを編集しています。ご注意ください。"
+
+#: mediagoblin/submit/forms.py:25
+msgid "File"
+msgstr "ファイル"
+
+#: mediagoblin/submit/views.py:46
+msgid "You must provide a file."
+msgstr "ファイルを提供する必要があります。"
+
+#: mediagoblin/submit/views.py:49
+msgid "The file doesn't seem to be an image!"
+msgstr "ファイルが画像ではないようです!"
+
+#: mediagoblin/submit/views.py:94
+msgid "Woohoo! Submitted!"
+msgstr "投稿終了!"
+
+#: mediagoblin/templates/mediagoblin/base.html:22
+msgid "GNU MediaGoblin"
+msgstr "GNU MediaGoblin"
+
+#: mediagoblin/templates/mediagoblin/base.html:45
+msgid "Mediagoblin logo"
+msgstr "MediaGoblinロゴ"
+
+#: mediagoblin/templates/mediagoblin/base.html:51
+msgid "Submit media"
+msgstr "コンテンツを投稿"
+
+#: mediagoblin/templates/mediagoblin/base.html:62
+msgid "verify your email!"
+msgstr "メアドを確認してください!"
+
+#: mediagoblin/templates/mediagoblin/base.html:72
+msgid "Login"
+msgstr "ログイン"
+
+#: mediagoblin/templates/mediagoblin/base.html:88
+msgid ""
+"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
+"href=\"http://gnu.org/\">GNU project</a>"
+msgstr ""
+"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
+"href=\"http://gnu.org/\">GNU project</a>"
+
+#: mediagoblin/templates/mediagoblin/root.html:23
+msgid "Welcome to GNU MediaGoblin!"
+msgstr "GNU MediaGoblinへようこそ!"
+
+#: mediagoblin/templates/mediagoblin/root.html:28
+msgid "Submit an item"
+msgstr "アイテムを投稿"
+
+#: mediagoblin/templates/mediagoblin/root.html:33
+#, python-format
+msgid "If you have an account, you can <a href=\"%(login_url)s\">Login</a>."
+msgstr "もしアカウントが持ったら、<a href=\"%(login_url)s\">ログイン</a>できます。"
+
+#: mediagoblin/templates/mediagoblin/root.html:39
+#, python-format
+msgid ""
+"If you don't have an account, please <a "
+"href=\"%(register_url)s\">Register</a>."
+msgstr "アカウントが持っていなければ、<a href=\"%(register_url)s\">登録</a>してお願いします。"
+
+#: mediagoblin/templates/mediagoblin/auth/login.html:26
+msgid "Log in"
+msgstr "ログイン"
+
+#: mediagoblin/templates/mediagoblin/auth/login.html:29
+msgid "Login failed!"
+msgstr "ログイン失敗!"
+
+#: mediagoblin/templates/mediagoblin/auth/login.html:34
+#: mediagoblin/templates/mediagoblin/auth/register.html:30
+#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
+#: mediagoblin/templates/mediagoblin/submit/start.html:29
+msgid "Submit"
+msgstr "送信"
+
+#: mediagoblin/templates/mediagoblin/auth/login.html:42
+msgid "Don't have an account yet?"
+msgstr "まだアカウントを持っていませんか?"
+
+#: mediagoblin/templates/mediagoblin/auth/login.html:45
+msgid "Create one here!"
+msgstr "ここで作成!"
+
+#: mediagoblin/templates/mediagoblin/auth/register.html:27
+msgid "Create an account!"
+msgstr "アカウントを作成!"
+
+#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19
+#, python-format
+msgid ""
+"Hi %(username)s,\n"
+"\n"
+"to activate your GNU MediaGoblin account, open the following URL in\n"
+"your web browser:\n"
+"\n"
+"%(verification_url)s"
+msgstr ""
+"%(username)s様へ\n"
+"\n"
+"GNU MediaGoblinアカウントを検証にするには、このURLを開いてください。\n"
+"\n"
+"%(verification_url)s"
+
+#: mediagoblin/templates/mediagoblin/edit/edit.html:29
+#, python-format
+msgid "Editing %(media_title)s"
+msgstr "%(media_title)sを編集中"
+
+#: mediagoblin/templates/mediagoblin/edit/edit.html:36
+msgid "Cancel"
+msgstr "キャンセル"
+
+#: mediagoblin/templates/mediagoblin/edit/edit.html:37
+msgid "Save changes"
+msgstr "投稿する"
+
+#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29
+#, python-format
+msgid "Editing %(username)s's profile"
+msgstr "%(username)sさんのプロフィールを編集中"
+
+#: mediagoblin/templates/mediagoblin/listings/tag.html:31
+msgid "Media tagged with:"
+msgstr "タグ付けされたコンテンツ:"
+
+#: mediagoblin/templates/mediagoblin/listings/tag.html:42
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:48
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:104
+msgid "atom feed"
+msgstr "Atomフィード"
+
+#: mediagoblin/templates/mediagoblin/submit/start.html:26
+msgid "Submit yer media"
+msgstr "コンテンツを投稿"
+
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32
+#, python-format
+msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
+msgstr "<a href=\"%(user_url)s\">%(username)s</a>さんのコンテンツ"
+
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:53
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
+msgid "Sorry, no such user found."
+msgstr "申し訳ありませんが、そのユーザーは見つかりませんでした。"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
+msgid "Verification needed"
+msgstr "確認必要"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
+msgid "Almost done! Your account still needs to be verified."
+msgstr "ほぼ完了!アカウントを検証する必要があります。"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:47
+msgid ""
+"An email should arrive in a few moments with instructions on how to do so."
+msgstr "メールは、その方法の指示でいくつかの瞬間に到着します。"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:51
+msgid "In case it doesn't:"
+msgstr "到着しない場合は、"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:54
+msgid "Resend verification email"
+msgstr "確認メールを再送信"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
+msgid ""
+"Someone has registered an account with this username, but it still has to be"
+" verified."
+msgstr "誰かがこのユーザ名でアカウントを登録しているが、まだ検証する必要があります。"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:68
+#, 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 "あなたの確認メールを紛失した場合、<a href=\"%(login_url)s\">ログイン</a>して再送できます。"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:78
+#, python-format
+msgid "%(username)s's profile"
+msgstr "%(username)sさんのプロフィール"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:86
+msgid "Edit profile"
+msgstr "プロフィールを編集"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:98
+#, python-format
+msgid "View all of %(username)s's media"
+msgstr "%(username)sさんのコンテンツをすべて見る"
+
+#: mediagoblin/user_pages/forms.py:24
+msgid "Comment"
+msgstr ""
+
+
diff --git a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo
index 04fe0b6f..0d4b463c 100644
--- a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo
+++ b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo
Binary files differ
diff --git a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po
index 311c5656..23605892 100644
--- a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU MediaGoblin\n"
"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n"
-"POT-Creation-Date: 2011-08-08 22:53-0500\n"
-"PO-Revision-Date: 2011-08-09 15:00+0000\n"
+"POT-Creation-Date: 2011-08-13 19:47-0500\n"
+"PO-Revision-Date: 2011-08-16 13:22+0000\n"
"Last-Translator: joar <transifex@wandborg.se>\n"
"Language-Team: Swedish (http://www.transifex.net/projects/p/mediagoblin/team/sv/)\n"
"MIME-Version: 1.0\n"
@@ -42,11 +42,15 @@ msgstr "E-postadress"
msgid "Sorry, registration is disabled on this instance."
msgstr "Vi beklagar, registreringen är avtängd på den här instansen."
-#: mediagoblin/auth/views.py:55
+#: mediagoblin/auth/views.py:57
msgid "Sorry, a user with that name already exists."
msgstr "En användare med det användarnamnet finns redan."
-#: mediagoblin/auth/views.py:152
+#: mediagoblin/auth/views.py:61
+msgid "Sorry, that email address has already been taken."
+msgstr "Den e-postadressen är redan tagen."
+
+#: mediagoblin/auth/views.py:159
msgid ""
"Your email address has been verified. You may now login, edit your profile, "
"and submit images!"
@@ -54,16 +58,16 @@ msgstr ""
"Din e-postadress är verifierad. Du kan nu logga in, redigera din profil och "
"ladda upp filer!"
-#: mediagoblin/auth/views.py:158
+#: mediagoblin/auth/views.py:165
msgid "The verification key or user id is incorrect"
msgstr "Verifieringsnyckeln eller användar-IDt är fel."
-#: mediagoblin/auth/views.py:179
+#: mediagoblin/auth/views.py:186
#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22
msgid "Resent your verification email."
msgstr "Skickade ett nytt verifierings-email."
-#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26
+#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27
msgid "Title"
msgstr "Titel"
@@ -103,19 +107,19 @@ msgstr "Var försiktig, du redigerar någon annans inlägg."
msgid "You are editing a user's profile. Proceed with caution."
msgstr "Var försiktig, du redigerar en annan användares profil."
-#: mediagoblin/submit/forms.py:29
+#: mediagoblin/submit/forms.py:25
msgid "File"
msgstr "Fil"
-#: mediagoblin/submit/views.py:45
+#: mediagoblin/submit/views.py:46
msgid "You must provide a file."
msgstr "Du måste ange en fil"
-#: mediagoblin/submit/views.py:48
+#: mediagoblin/submit/views.py:49
msgid "The file doesn't seem to be an image!"
msgstr "Filen verkar inte vara en giltig bildfil!"
-#: mediagoblin/submit/views.py:96
+#: mediagoblin/submit/views.py:94
msgid "Woohoo! Submitted!"
msgstr "Tjohoo! Upladdat!"
@@ -147,20 +151,20 @@ msgstr ""
"Drivs av <a href=\"http://mediagoblin.org\">MediaGoblin</a>, ett <a "
"href=\"http://gnu.org/\">GNU</a>-projekt"
-#: mediagoblin/templates/mediagoblin/root.html:21
+#: mediagoblin/templates/mediagoblin/root.html:23
msgid "Welcome to GNU MediaGoblin!"
msgstr "Välkommen till GNU MediaGoblin!"
-#: mediagoblin/templates/mediagoblin/root.html:26
+#: mediagoblin/templates/mediagoblin/root.html:28
msgid "Submit an item"
msgstr "Ladda upp"
-#: mediagoblin/templates/mediagoblin/root.html:31
+#: mediagoblin/templates/mediagoblin/root.html:33
#, python-format
msgid "If you have an account, you can <a href=\"%(login_url)s\">Login</a>."
msgstr "Har du ett konto? <a href=\"%(login_url)s\">Logga in</a>."
-#: mediagoblin/templates/mediagoblin/root.html:37
+#: mediagoblin/templates/mediagoblin/root.html:39
#, python-format
msgid ""
"If you don't have an account, please <a "
@@ -179,7 +183,7 @@ msgstr "Inloggning misslyckades!"
#: mediagoblin/templates/mediagoblin/auth/login.html:34
#: mediagoblin/templates/mediagoblin/auth/register.html:30
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
-#: mediagoblin/templates/mediagoblin/submit/start.html:32
+#: mediagoblin/templates/mediagoblin/submit/start.html:29
msgid "Submit"
msgstr "Skicka"
@@ -229,13 +233,13 @@ msgstr "Spara"
msgid "Editing %(username)s's profile"
msgstr "Redigerar %(username)ss profil"
-#: mediagoblin/templates/mediagoblin/listings/tag.html:29
+#: mediagoblin/templates/mediagoblin/listings/tag.html:31
msgid "Media tagged with:"
msgstr "Taggat med:"
-#: mediagoblin/templates/mediagoblin/listings/tag.html:40
-#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:101
+#: mediagoblin/templates/mediagoblin/listings/tag.html:42
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:48
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:104
msgid "atom feed"
msgstr "atom-feed"
@@ -243,40 +247,40 @@ msgstr "atom-feed"
msgid "Submit yer media"
msgstr "Ladda upp"
-#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32
#, python-format
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
msgstr "<a href=\"%(user_url)s\">%(username)s</a>s media"
-#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:30
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:53
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
msgid "Sorry, no such user found."
msgstr "Finns ingen sådan användare ännu."
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:37
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:57
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
msgid "Verification needed"
msgstr "Verifiering krävs"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:40
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
msgid "Almost done! Your account still needs to be verified."
msgstr "Nästan klart! Nu behöver du bara verifiera ditt konto."
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:45
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:47
msgid ""
"An email should arrive in a few moments with instructions on how to do so."
msgstr ""
"Ett e-postmeddelande med instruktioner kommer att hamna hos dig inom kort."
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:49
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:51
msgid "In case it doesn't:"
msgstr "Om det inte skulle göra det:"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:52
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:54
msgid "Resend verification email"
msgstr "Skicka ett nytt e-postmeddelande"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:60
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
msgid ""
"Someone has registered an account with this username, but it still has to be"
" verified."
@@ -284,7 +288,7 @@ msgstr ""
"Det finns redan ett konto med det här användarnamnet, men det behöver "
"verifieras."
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:66
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:68
#, python-format
msgid ""
"If you are that person but you've lost your verification email, you can <a "
@@ -294,18 +298,22 @@ msgstr ""
"detaljer om hur du verifierar ditt konto så kan du <a "
"href=\"%(login_url)s\">logga in</a> och begära ett nytt."
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:76
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:78
#, python-format
msgid "%(username)s's profile"
msgstr "%(username)ss profil"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:84
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:86
msgid "Edit profile"
msgstr "Redigera profil"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:95
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:98
#, python-format
msgid "View all of %(username)s's media"
msgstr "Se all media från %(username)s"
+#: mediagoblin/user_pages/forms.py:24
+msgid "Comment"
+msgstr "Kommentar"
+
diff --git a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mo
new file mode 100644
index 00000000..9615e44c
--- /dev/null
+++ b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mo
Binary files differ
diff --git a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po
new file mode 100644
index 00000000..d8f8c98d
--- /dev/null
+++ b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po
@@ -0,0 +1,310 @@
+# Translations template for PROJECT.
+# Copyright (C) 2011 ORGANIZATION
+# This file is distributed under the same license as the PROJECT project.
+#
+# <chc@citi.sinica.edu.tw>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU MediaGoblin\n"
+"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n"
+"POT-Creation-Date: 2011-08-13 19:47-0500\n"
+"PO-Revision-Date: 2011-08-14 00:47+0000\n"
+"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 0.9.6\n"
+"Language: zh_TW\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+
+#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46
+msgid "Username"
+msgstr "使用者名稱"
+
+#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50
+msgid "Password"
+msgstr "密碼"
+
+#: mediagoblin/auth/forms.py:34
+msgid "Passwords must match."
+msgstr "密碼必須一至"
+
+#: mediagoblin/auth/forms.py:36
+msgid "Confirm password"
+msgstr "確認密碼"
+
+#: mediagoblin/auth/forms.py:39
+msgid "Email address"
+msgstr "電子郵件位置"
+
+#: mediagoblin/auth/views.py:40
+msgid "Sorry, registration is disabled on this instance."
+msgstr "抱歉, 這個項目已經被暫停註冊."
+
+#: mediagoblin/auth/views.py:57
+msgid "Sorry, a user with that name already exists."
+msgstr "抱歉, 這個使用者名稱已經存在."
+
+#: mediagoblin/auth/views.py:61
+msgid "Sorry, that email address has already been taken."
+msgstr ""
+
+#: mediagoblin/auth/views.py:159
+msgid ""
+"Your email address has been verified. You may now login, edit your profile, "
+"and submit images!"
+msgstr "你的電子郵件位址已被認證. 你現在就可以登入, 編輯你的個人檔案而且送出照片!"
+
+#: mediagoblin/auth/views.py:165
+msgid "The verification key or user id is incorrect"
+msgstr "認證碼或是使用者帳號錯誤"
+
+#: mediagoblin/auth/views.py:186
+#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22
+msgid "Resent your verification email."
+msgstr "重送認證郵件."
+
+#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27
+msgid "Title"
+msgstr "稱謂"
+
+#: mediagoblin/edit/forms.py:29
+msgid "Slug"
+msgstr "自訂字串"
+
+#: mediagoblin/edit/forms.py:30
+msgid "The slug can't be empty"
+msgstr "自訂字串不能空白"
+
+#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31
+msgid "Tags"
+msgstr "標籤"
+
+#: mediagoblin/edit/forms.py:38
+msgid "Bio"
+msgstr "自傳"
+
+#: mediagoblin/edit/forms.py:41
+msgid "Website"
+msgstr "網站"
+
+#: mediagoblin/edit/forms.py:43
+msgid "Improperly formed URL"
+msgstr "部正確的網址"
+
+#: mediagoblin/edit/views.py:54
+msgid "An entry with that slug already exists for this user."
+msgstr "這個自訂字串已經被其他人用了"
+
+#: mediagoblin/edit/views.py:75
+msgid "You are editing another user's media. Proceed with caution."
+msgstr "你正在編輯他人的媒體檔案. 請謹慎處理."
+
+#: mediagoblin/edit/views.py:96
+msgid "You are editing a user's profile. Proceed with caution."
+msgstr "你正在編輯他人的檔案. 請謹慎處理."
+
+#: mediagoblin/submit/forms.py:25
+msgid "File"
+msgstr "檔案"
+
+#: mediagoblin/submit/views.py:46
+msgid "You must provide a file."
+msgstr "你必須提供一個檔案"
+
+#: mediagoblin/submit/views.py:49
+msgid "The file doesn't seem to be an image!"
+msgstr "檔案看起來不像是一個圖片喔!"
+
+#: mediagoblin/submit/views.py:94
+msgid "Woohoo! Submitted!"
+msgstr "喔耶! 送出去了!"
+
+#: mediagoblin/templates/mediagoblin/base.html:22
+msgid "GNU MediaGoblin"
+msgstr "GNU MediaGoblin"
+
+#: mediagoblin/templates/mediagoblin/base.html:45
+msgid "Mediagoblin logo"
+msgstr "Mediagoblin 標誌"
+
+#: mediagoblin/templates/mediagoblin/base.html:51
+msgid "Submit media"
+msgstr "送出媒體"
+
+#: mediagoblin/templates/mediagoblin/base.html:62
+msgid "verify your email!"
+msgstr "確認您的電子郵件!"
+
+#: mediagoblin/templates/mediagoblin/base.html:72
+msgid "Login"
+msgstr "登入"
+
+#: mediagoblin/templates/mediagoblin/base.html:88
+msgid ""
+"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
+"href=\"http://gnu.org/\">GNU project</a>"
+msgstr ""
+"由 <a href=\"http://mediagoblin.org\">MediaGoblin</a> 製作, 她是一個 <a "
+"href=\"http://gnu.org/\">GNU project</a>"
+
+#: mediagoblin/templates/mediagoblin/root.html:23
+msgid "Welcome to GNU MediaGoblin!"
+msgstr "GNU MediaGoblin 歡迎您!"
+
+#: mediagoblin/templates/mediagoblin/root.html:28
+msgid "Submit an item"
+msgstr "送出一個項目"
+
+#: mediagoblin/templates/mediagoblin/root.html:33
+#, python-format
+msgid "If you have an account, you can <a href=\"%(login_url)s\">Login</a>."
+msgstr "如果您有帳號了, 你可以直接 <a href=\"%(login_url)s\">登入</a>."
+
+#: mediagoblin/templates/mediagoblin/root.html:39
+#, python-format
+msgid ""
+"If you don't have an account, please <a "
+"href=\"%(register_url)s\">Register</a>."
+msgstr "如果您尚未取得帳號, 請 <a href=\"%(register_url)s\">註冊</a>."
+
+#: mediagoblin/templates/mediagoblin/auth/login.html:26
+msgid "Log in"
+msgstr "登入"
+
+#: mediagoblin/templates/mediagoblin/auth/login.html:29
+msgid "Login failed!"
+msgstr "登入錯誤"
+
+#: mediagoblin/templates/mediagoblin/auth/login.html:34
+#: mediagoblin/templates/mediagoblin/auth/register.html:30
+#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
+#: mediagoblin/templates/mediagoblin/submit/start.html:29
+msgid "Submit"
+msgstr "送出"
+
+#: mediagoblin/templates/mediagoblin/auth/login.html:42
+msgid "Don't have an account yet?"
+msgstr "還沒有帳號嗎?"
+
+#: mediagoblin/templates/mediagoblin/auth/login.html:45
+msgid "Create one here!"
+msgstr "在這裡建立一個吧!"
+
+#: mediagoblin/templates/mediagoblin/auth/register.html:27
+msgid "Create an account!"
+msgstr "建立一個帳號!"
+
+#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19
+#, python-format
+msgid ""
+"Hi %(username)s,\n"
+"\n"
+"to activate your GNU MediaGoblin account, open the following URL in\n"
+"your web browser:\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
+msgid "Editing %(media_title)s"
+msgstr "編輯 %(media_title)s 中"
+
+#: mediagoblin/templates/mediagoblin/edit/edit.html:36
+msgid "Cancel"
+msgstr "取消"
+
+#: mediagoblin/templates/mediagoblin/edit/edit.html:37
+msgid "Save changes"
+msgstr "儲存變更"
+
+#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29
+#, python-format
+msgid "Editing %(username)s's profile"
+msgstr "編輯 %(username)s'的檔案中"
+
+#: mediagoblin/templates/mediagoblin/listings/tag.html:31
+msgid "Media tagged with:"
+msgstr "媒體被標籤為:"
+
+#: mediagoblin/templates/mediagoblin/listings/tag.html:42
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:48
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:104
+msgid "atom feed"
+msgstr "atom feed"
+
+#: mediagoblin/templates/mediagoblin/submit/start.html:26
+msgid "Submit yer media"
+msgstr "送出你的媒體檔案"
+
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32
+#, python-format
+msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
+msgstr "<a href=\"%(user_url)s\">%(username)s</a>的媒體"
+
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:53
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
+msgid "Sorry, no such user found."
+msgstr "抱歉, 找不到這個使用者."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
+msgid "Verification needed"
+msgstr "需要驗證"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
+msgid "Almost done! Your account still needs to be verified."
+msgstr "快要完成了! 你的帳號仍需要驗證."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:47
+msgid ""
+"An email should arrive in a few moments with instructions on how to do so."
+msgstr "很快的會有一封電子郵件告訴你如何做."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:51
+msgid "In case it doesn't:"
+msgstr "假設它無法:"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:54
+msgid "Resend verification email"
+msgstr "重送認證郵件 "
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
+msgid ""
+"Someone has registered an account with this username, but it still has to be"
+" verified."
+msgstr "有人已經註冊了這個帳號, 但此帳號仍需要驗證."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:68
+#, 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 "如果你就是那個人, 但是遺失了認證信, 你可以<a href=\"%(login_url)s\">登入</a> 然後重送一次."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:78
+#, python-format
+msgid "%(username)s's profile"
+msgstr "%(username)s的個人檔案"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:86
+msgid "Edit profile"
+msgstr "編輯個人檔案"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:98
+#, python-format
+msgid "View all of %(username)s's media"
+msgstr "查看%(username)s的全部媒體檔案"
+
+#: mediagoblin/user_pages/forms.py:24
+msgid "Comment"
+msgstr ""
+
+
diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css
index 59c2f49d..83f5357c 100644
--- a/mediagoblin/static/css/base.css
+++ b/mediagoblin/static/css/base.css
@@ -14,23 +14,13 @@ form {
padding: 0px;
}
-/* Carter One font */
-
-@font-face {
- font-family: 'Carter One';
- font-style: normal;
- font-weight: normal;
- src: local('CarterOne'), url('http://themes.googleusercontent.com/font?kit=VjW2qt1pkqVtO22ObxgEBRsxEYwM7FgeyaSgU71cLG0') format('woff');
-}
-
/* text styles */
h1{
- font-family: 'Carter One',arial,serif;
margin-bottom: 15px;
margin-top: 15px;
color: #fff;
- font-size: 30px;
+ font-size: 1.875em;
}
h2{
@@ -39,12 +29,12 @@ h2{
}
h3{
- border-bottom: 1px solid #222;
- font-size: 18px;
+ border-bottom: 1px solid #333;
+ font-size: 1.125em;
}
a {
- color: #999;
+ color: #86D4B1;
}
a.highlight {
@@ -66,7 +56,12 @@ label {
height: 36px;
padding-top: 14px;
margin-bottom: 20px;
- border-bottom: 1px solid #222222;
+ border-bottom: 1px solid #333;
+}
+
+a.mediagoblin_logo{
+ color: #fff;
+ font-weight: bold;
}
.header_submit{
@@ -79,21 +74,21 @@ label {
background-image: -o-linear-gradient(top, #D2D2D2, #aaa);
background-image: linear-gradient(top, #D2D2D2, #aaa);
box-shadow: 0px 0px 4px #000;
- border-radius: 5px 5px 5px 5px;
+ border-radius: 3px;
margin: 8px;
padding: 3px 8px;
text-decoration: none;
border: medium none;
- font-family: 'Carter One',arial,serif;
+ font-style: normal;
}
.mediagoblin_footer {
height: 30px;
- border-top: 1px solid #222222;
+ border-top: 1px solid #333;
bottom: 0px;
padding-top: 8px;
text-align: center;
- font-size: 14px;
+ font-size: 0.8125em;
color: #999;
}
@@ -108,7 +103,6 @@ label {
/* common website elements */
.button {
- font-family: 'Carter One', arial, serif;
height: 32px;
min-width: 99px;
background-color: #86d4b1;
@@ -119,11 +113,10 @@ label {
background-image: -o-linear-gradient(top, #86d4b1, #62caa2);
background-image: linear-gradient(top, #86d4b1, #62caa2);
box-shadow: 0px 0px 4px #000;
- border-radius: 5px;
+ border-radius: 3px;
border: none;
color: #272727;
margin: 10px 0px 10px 15px;
- font-size: 1em;
text-align: center;
padding-left: 11px;
padding-right: 11px;
@@ -138,13 +131,20 @@ text-align: center;
margin: 5px;
}
+.empty_space{
+ background-color: #222;
+ font-style: italic;
+ text-align: center;
+ height: 160px;
+ padding-top: 70px;
+}
+
/* forms */
.form_box {
background-color: #222;
background-image: url("../images/background_lines.png");
background-repeat: repeat-x;
- font-size: 18px;
padding-bottom: 30px;
padding-top: 30px;
margin-left: auto;
@@ -157,13 +157,8 @@ text-align: center;
background-image: url("../images/background_edit.png");
}
-.form_box h1 {
- font-size: 28px;
-}
-
.form_field_input input, .form_field_input textarea {
width: 100%;
- font-size: 18px;
}
.form_field_box {
@@ -178,7 +173,6 @@ text-align: center;
background-color: #87453b;
color: #fff;
border: none;
- font-size: 16px;
padding: 9px;
margin-top: 8px;
margin-bottom: 8px;
@@ -193,7 +187,7 @@ text-align: center;
.comment_author {
margin-bottom: 40px;
padding-top: 4px;
- font-size: 14px;
+ font-size: 0.9em;
}
.comment_content p {
@@ -205,7 +199,6 @@ text-align: center;
.media_thumbnail {
padding: 0px;
width: 180px;
- height: 180px;
overflow: hidden;
float: left;
margin: 0px 4px 10px 4px;
@@ -214,8 +207,12 @@ text-align: center;
/* media detail */
-.media_image_container {
- text-align: center;
+h2.media_title{
+ margin-bottom: 0px;
+}
+
+p.media_uploader{
+ font-size: 0.9em;
}
/* icons */
@@ -232,10 +229,9 @@ img.media_icon{
display: block;
float: left;
text-align: center;
- background-color: #222;
+ background-color: #333;
text-decoration: none;
padding: 12px 0pt;
- font-family: 'Carter One', arial, serif;
font-size: 2em;
margin: 0 0 20px
}
diff --git a/mediagoblin/static/images/icon_feed.png b/mediagoblin/static/images/icon_feed.png
index 11e5b1e7..81889473 100644
--- a/mediagoblin/static/images/icon_feed.png
+++ b/mediagoblin/static/images/icon_feed.png
Binary files differ
diff --git a/mediagoblin/static/images/logo.png b/mediagoblin/static/images/logo.png
deleted file mode 100644
index cf28a6d4..00000000
--- a/mediagoblin/static/images/logo.png
+++ /dev/null
Binary files differ
diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html
index 986e0995..f46871c6 100644
--- a/mediagoblin/templates/mediagoblin/base.html
+++ b/mediagoblin/templates/mediagoblin/base.html
@@ -39,11 +39,9 @@
<div class="container_16">
<div class="grid_16 mediagoblin_header">
{% block mediagoblin_logo %}
- <a class="mediagoblin_logo"
- href="{{ request.urlgen('index') }}">
- <img src="{{ request.staticdirect('/images/logo.png') }}"
- alt="{% trans %}Mediagoblin logo{% endtrans %}" />
- </a>
+ <a class="mediagoblin_logo" href="{{ request.urlgen('index') }}">
+ MediaGoblin<img src="{{ request.staticdirect('/images/logo.png') }}"
+ alt="{% trans %}MediaGoblin logo{% endtrans %}" /></a>
{% endblock %}
{% if request.user and request.user['status'] == 'active' %}
<a class="header_submit"
diff --git a/mediagoblin/templates/mediagoblin/listings/tag.html b/mediagoblin/templates/mediagoblin/listings/tag.html
index a43355a7..289f44b8 100644
--- a/mediagoblin/templates/mediagoblin/listings/tag.html
+++ b/mediagoblin/templates/mediagoblin/listings/tag.html
@@ -36,10 +36,9 @@
</div>
<div class="grid_16">
- <a href="{{ request.urlgen(
- 'mediagoblin.listings.tag_atom_feed',
- tag=tag_slug) }}">
- {%- trans %}atom feed{% endtrans -%}
- </a>
+ {% set feed_url = request.urlgen(
+ 'mediagoblin.listings.tag_atom_feed',
+ tag=tag_slug) %}
+ {% include "mediagoblin/utils/feed_link.html" %}
</div>
{% endblock %}
diff --git a/mediagoblin/templates/mediagoblin/user_pages/gallery.html b/mediagoblin/templates/mediagoblin/user_pages/gallery.html
index ff935ac4..3a3d2373 100644
--- a/mediagoblin/templates/mediagoblin/user_pages/gallery.html
+++ b/mediagoblin/templates/mediagoblin/user_pages/gallery.html
@@ -37,16 +37,15 @@
{%- endtrans %}
</h1>
- </div>
<div class="container_16 media_gallery">
{{ object_gallery(request, media_entries, pagination) }}
</div>
+
<div class="grid_16">
- <a href="{{ request.urlgen(
- 'mediagoblin.user_pages.atom_feed',
- user=user.username) }}">
- {%- trans %}atom feed{% endtrans -%}
- </a>
+ {% set feed_url = request.urlgen(
+ 'mediagoblin.user_pages.atom_feed',
+ user=user.username) %}
+ {% include "mediagoblin/utils/feed_link.html" %}
</div>
{% else %}
{# This *should* not occur as the view makes sure we pass in a user. #}
diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html
index 9c0a1cca..e1175fc4 100644
--- a/mediagoblin/templates/mediagoblin/user_pages/media.html
+++ b/mediagoblin/templates/mediagoblin/user_pages/media.html
@@ -28,16 +28,10 @@
src="{{ request.app.public_store.file_url(
media.get_display_media(media.media_files)) }}" />
</div>
-
- <h2>
+ <h2 class="media_title">
{{media.title}}
</h2>
-
- {% autoescape False %}
- <p>{{ media.description_html }}</p>
- {% endautoescape %}
-
- <p>
+ <p class="media_uploader">
{% trans date="%4d-%02d-%02d"|format(
media.created.year,
media.created.month, media.created.day),
@@ -45,11 +39,13 @@
'mediagoblin.user_pages.user_home',
user=media.uploader().username),
username=media.uploader().username -%}
- &mdash;&nbsp;uploaded on {{ date }} by <a href="{{ user_url }}">{{ username }}</a>
+ Uploaded on {{ date }} by <a href="{{ user_url }}">{{ username }}</a>
{%- endtrans %}
</p>
+ {% autoescape False %}
+ <p>{{ media.description_html }}</p>
+ {% endautoescape %}
<br />
-
<h3>{% trans %}Comments{% endtrans %}</h3>
{% if request.user %}
<form action="{{ request.urlgen('mediagoblin.user_pages.media_post_comment',
diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html
index 4649c8c7..0214082c 100644
--- a/mediagoblin/templates/mediagoblin/user_pages/user.html
+++ b/mediagoblin/templates/mediagoblin/user_pages/user.html
@@ -78,33 +78,79 @@
{%- trans username=user.username %}{{ username }}'s profile{% endtrans -%}
</h1>
- <div class="grid_6 alpha">
- {% include "mediagoblin/utils/profile.html" %}
- {% if request.user['_id'] == user['_id'] or request.user['is_admin'] %}
- <a href="{{ request.urlgen('mediagoblin.edit.profile') }}?username={{
- user.username }}">
- {%- trans %}Edit profile{% endtrans -%}
- </a>
+ {% if not user['url'] and not user['profile'] %}
+ {% if request.user['_id'] == user['_id'] %}
+ <div class="grid_6 alpha empty_space">
+ <p>
+ {% trans %}Here's a spot to tell others about yourself.{% endtrans %}
+ </p>
+ <a href="{{ request.urlgen('mediagoblin.edit.profile') }}?username={{
+ user.username }}"
+ class="header_submit">
+ {%- trans %}Edit profile{% endtrans -%}
+ </a>
+ </div>
+ {% else %}
+ <div class="grid_6 alpha empty_space">
+ <p>
+ {% trans -%}
+ This user hasn't filled in their profile (yet).
+ {%- endtrans %}
+ </p>
+ </div>
{% endif %}
- </div>
-
- <div class="grid_10 omega">
- {{ object_gallery(request, media_entries, pagination,
- pagination_base_url=user_gallery_url, col_number=3) }}
- {% include "mediagoblin/utils/object_gallery.html" %}
- <div class="clear"></div>
- <p>
- <a href="{{ user_gallery_url }}">
- {% trans username=user.username -%}
- View all of {{ username }}'s media{% endtrans -%}
- </a>
- </p>
- <a href="{{ request.urlgen( 'mediagoblin.user_pages.atom_feed',
- user=user.username) }}">
- {%- trans %}atom feed{% endtrans -%}
- </a>
- </div>
+ {% else %}
+ <div class="grid_6 alpha">
+ {% include "mediagoblin/utils/profile.html" %}
+ {% if request.user['_id'] == user['_id'] or request.user['is_admin'] %}
+ <a href="{{ request.urlgen('mediagoblin.edit.profile') }}?username={{
+ user.username }}">
+ {%- trans %}Edit profile{% endtrans -%}
+ </a>
+ {% endif %}
+ </div>
+ {% endif %}
+ {% if media_entries.count() %}
+ <div class="grid_10 omega">
+ {{ object_gallery(request, media_entries, pagination,
+ pagination_base_url=user_gallery_url, col_number=3) }}
+ {% include "mediagoblin/utils/object_gallery.html" %}
+ <div class="clear"></div>
+ <p>
+ <a href="{{ user_gallery_url }}">
+ {% trans username=user.username -%}
+ View all of {{ username }}'s media{% endtrans -%}
+ </a>
+ </p>
+ {% set feed_url = request.urlgen(
+ 'mediagoblin.user_pages.atom_feed',
+ user=user.username) %}
+ {% include "mediagoblin/utils/feed_link.html" %}
+ </div>
+ {% else %}
+ {% if request.user['_id'] == user['_id'] %}
+ <div class="grid_10 omega empty_space">
+ <p>
+ {% trans -%}
+ This is where your media will appear, but you don't seem to have added anything yet.
+ {%- endtrans %}
+ </p>
+ <a class="header_submit"
+ href="{{ request.urlgen('mediagoblin.submit.start') }}">
+ {%- trans %}Add media{% endtrans -%}
+ </a>
+ </div>
+ {% else %}
+ <div class="grid_10 omega empty_space">
+ <p>
+ {% trans -%}
+ There doesn't seem to be any media here yet...
+ {%- endtrans %}
+ </p>
+ </div>
+ {% endif %}
+ {% endif %}
<div class="clear"></div>
{% endif %}
{% endblock %}
diff --git a/mediagoblin/templates/mediagoblin/utils/feed_link.html b/mediagoblin/templates/mediagoblin/utils/feed_link.html
new file mode 100644
index 00000000..c4036bf3
--- /dev/null
+++ b/mediagoblin/templates/mediagoblin/utils/feed_link.html
@@ -0,0 +1,23 @@
+{#
+# GNU MediaGoblin -- federated, autonomous media hosting
+# Copyright (C) 2011 Free Software Foundation, Inc
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#}
+
+<a href="{{ feed_url }}">
+ <img src="{{ request.staticdirect('/images/icon_feed.png') }}"
+ class="media_icon" alt="{% trans %}feed icon{% endtrans %}" />
+</a>
+<a href="{{ feed_url }}">{%- trans %}Atom feed{% endtrans -%}</a>
diff --git a/mediagoblin/templates/mediagoblin/utils/object_gallery.html b/mediagoblin/templates/mediagoblin/utils/object_gallery.html
index c7286678..b451946d 100644
--- a/mediagoblin/templates/mediagoblin/utils/object_gallery.html
+++ b/mediagoblin/templates/mediagoblin/utils/object_gallery.html
@@ -18,44 +18,27 @@
{% from "mediagoblin/utils/pagination.html" import render_pagination %}
-{% macro media_grid(request, media_list, col_number=5) %}
- {% set num_items = media_list.count() %}
- {% set col_counter = 0 %}
- {% set row_counter = 0 %}
- {% set item_counter = 0 %}
-
- {% set num_rows = num_items // col_number %}
- {% if num_items % col_number != 0 %}
- {% set num_rows = num_rows + 1 %}
- {% endif %}
-
- <div class="thumb_gallery">
- {% for entry in media_list %}
- {% if col_counter == 0 %}
- <div class="thumb_row {% if row_counter == 0 %}thumb_row_first{% endif %}{% if num_rows == row_counter + 1 %}thumb_row_last{% endif %}">
- {% endif %}
-
- <div class="media_thumbnail thumb_entry {% if col_counter == 0 %}thumb_entry_first{% endif %}{% if col_number == col_counter + 1 or num_items == item_counter + 1 %}thumb_entry_last{% endif %}">
+{% macro media_grid(request, media_entries, col_number=5) %}
+ <table class="thumb_gallery">
+ {% for row in gridify_cursor(media_entries, col_number) %}
+ <tr class="thumb_row
+ {%- if loop.first %} thumb_row_first
+ {%- elif loop.last %} thumb_row_last{% endif %}">
+ {% for entry in row %}
+ <td class="media_thumbnail thumb_entry
+ {%- if loop.first %} thumb_entry_first
+ {%- elif loop.last %} thumb_entry_last{% endif %}">
<a href="{{ entry.url_for_self(request.urlgen) }}">
- <img src="{{ request.app.public_store.file_url(
- entry['media_files']['thumb']) }}" /></a>
- </div>
-
- {% if col_number == col_counter + 1 or num_items == item_counter + 1 %}
- </div>
- {% set row_counter = row_counter + 1 %}
- {% endif %}
-
- {% set item_counter = item_counter + 1 %}
- {% set col_counter = col_counter + 1 %}
- {% if col_counter == col_number %}
- {% set col_counter = 0 %}
- {% endif %}
+ <img src="{{ request.app.public_store.file_url(
+ entry['media_files']['thumb']) }}" />
+ </a>
+ </td>
+ {% endfor %}
+ </tr>
{% endfor %}
- </div>
+ </table>
{%- endmacro %}
-
{#
Render a media gallery with pagination.
diff --git a/mediagoblin/util.py b/mediagoblin/util.py
index b46c65d9..cc426228 100644
--- a/mediagoblin/util.py
+++ b/mediagoblin/util.py
@@ -100,7 +100,10 @@ def get_jinja_env(template_loader, locale):
# All templates will know how to ...
# ... fetch all waiting messages and remove them from the queue
+ # ... construct a grid of thumbnails or other media
template_env.globals['fetch_messages'] = messages.fetch_messages
+ template_env.globals['gridify_list'] = gridify_list
+ template_env.globals['gridify_cursor'] = gridify_cursor
if exists(locale):
SETUP_JINJA_ENVS[locale] = template_env
@@ -628,3 +631,32 @@ class Pagination(object):
"""
return self.get_page_url_explicit(
request.path_info, request.GET, page_no)
+
+
+def gridify_list(this_list, num_cols=5):
+ """
+ Generates a list of lists where each sub-list's length depends on
+ the number of columns in the list
+ """
+ grid = []
+
+ # Figure out how many rows we should have
+ num_rows = int(ceil(float(len(this_list)) / num_cols))
+
+ for row_num in range(num_rows):
+ slice_min = row_num * num_cols
+ slice_max = (row_num + 1) * num_cols
+
+ row = this_list[slice_min:slice_max]
+
+ grid.append(row)
+
+ return grid
+
+
+def gridify_cursor(this_cursor, num_cols=5):
+ """
+ Generates a list of lists where each sub-list's length depends on
+ the number of columns in the list
+ """
+ return gridify_list(list(this_cursor), num_cols)