aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--AUTHORS34
-rw-r--r--COPYING13
-rw-r--r--docs/source/about_mediagoblin.rst95
-rw-r--r--docs/source/conf.py4
-rw-r--r--docs/source/contributinghowto.rst262
-rw-r--r--docs/source/foreword.rst51
-rw-r--r--docs/source/index.rst5
-rw-r--r--mediagoblin/__init__.py3
-rw-r--r--mediagoblin/_version.py17
-rw-r--r--mediagoblin/app.py30
-rw-r--r--mediagoblin/auth/__init__.py2
-rw-r--r--mediagoblin/auth/forms.py6
-rw-r--r--mediagoblin/auth/lib.py2
-rw-r--r--mediagoblin/auth/routing.py2
-rw-r--r--mediagoblin/auth/views.py13
-rw-r--r--mediagoblin/buildout_recipes.py2
-rw-r--r--mediagoblin/config_spec.ini4
-rw-r--r--mediagoblin/db/__init__.py2
-rw-r--r--mediagoblin/db/indexes.py2
-rw-r--r--mediagoblin/db/migrations.py2
-rw-r--r--mediagoblin/db/models.py2
-rw-r--r--mediagoblin/db/open.py2
-rw-r--r--mediagoblin/db/util.py2
-rw-r--r--mediagoblin/decorators.py19
-rw-r--r--mediagoblin/edit/__init__.py2
-rw-r--r--mediagoblin/edit/forms.py13
-rw-r--r--mediagoblin/edit/lib.py2
-rw-r--r--mediagoblin/edit/routing.py2
-rw-r--r--mediagoblin/edit/views.py24
-rw-r--r--mediagoblin/errormiddleware.py2
-rw-r--r--mediagoblin/gmg_commands/__init__.py2
-rw-r--r--mediagoblin/gmg_commands/import_export.py2
-rw-r--r--mediagoblin/gmg_commands/migrate.py2
-rw-r--r--mediagoblin/gmg_commands/shell.py2
-rw-r--r--mediagoblin/gmg_commands/users.py2
-rw-r--r--mediagoblin/gmg_commands/util.py2
-rw-r--r--mediagoblin/gmg_commands/wipealldata.py2
-rw-r--r--mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.mobin0 -> 9432 bytes
-rw-r--r--mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po429
-rw-r--r--mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mobin5641 -> 9038 bytes
-rw-r--r--mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po337
-rw-r--r--mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po236
-rw-r--r--mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mobin5561 -> 8775 bytes
-rw-r--r--mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po313
-rw-r--r--mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mobin5708 -> 9157 bytes
-rw-r--r--mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po356
-rw-r--r--mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mobin5983 -> 9083 bytes
-rw-r--r--mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po272
-rw-r--r--mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mobin6281 -> 9308 bytes
-rw-r--r--mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po263
-rw-r--r--mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.mobin0 -> 8779 bytes
-rw-r--r--mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po429
-rw-r--r--mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.mobin5217 -> 8385 bytes
-rw-r--r--mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po307
-rw-r--r--mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mobin5414 -> 8732 bytes
-rw-r--r--mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po297
-rw-r--r--mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mobin5629 -> 9081 bytes
-rw-r--r--mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po321
-rw-r--r--mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mobin0 -> 11171 bytes
-rw-r--r--mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po438
-rw-r--r--mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.mobin5487 -> 8848 bytes
-rw-r--r--mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po306
-rw-r--r--mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mobin5401 -> 8711 bytes
-rw-r--r--mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po271
-rw-r--r--mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mobin5597 -> 8972 bytes
-rw-r--r--mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po282
-rw-r--r--mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mobin5387 -> 8541 bytes
-rw-r--r--mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po289
-rw-r--r--mediagoblin/init/__init__.py2
-rw-r--r--mediagoblin/init/celery/__init__.py2
-rw-r--r--mediagoblin/init/celery/from_celery.py2
-rw-r--r--mediagoblin/init/celery/from_tests.py2
-rw-r--r--mediagoblin/init/config.py2
-rw-r--r--mediagoblin/listings/__init__.py2
-rw-r--r--mediagoblin/listings/routing.py2
-rw-r--r--mediagoblin/listings/views.py2
-rw-r--r--mediagoblin/messages.py2
-rw-r--r--mediagoblin/mg_globals.py2
-rw-r--r--mediagoblin/middleware/__init__.py19
-rw-r--r--mediagoblin/middleware/noop.py26
-rw-r--r--mediagoblin/process_media/__init__.py25
-rw-r--r--mediagoblin/process_media/errors.py2
-rw-r--r--mediagoblin/routing.py2
-rw-r--r--mediagoblin/static/css/base.css35
-rw-r--r--mediagoblin/static/images/logo.pngbin3340 -> 2479 bytes
-rw-r--r--mediagoblin/staticdirect.py2
-rw-r--r--mediagoblin/storage.py84
-rw-r--r--mediagoblin/submit/__init__.py2
-rw-r--r--mediagoblin/submit/forms.py5
-rw-r--r--mediagoblin/submit/routing.py2
-rw-r--r--mediagoblin/submit/security.py2
-rw-r--r--mediagoblin/submit/views.py6
-rw-r--r--mediagoblin/templates/mediagoblin/404.html2
-rw-r--r--mediagoblin/templates/mediagoblin/auth/login.html2
-rw-r--r--mediagoblin/templates/mediagoblin/auth/register.html2
-rw-r--r--mediagoblin/templates/mediagoblin/auth/resent_verification_email.html2
-rw-r--r--mediagoblin/templates/mediagoblin/auth/verification_email.txt2
-rw-r--r--mediagoblin/templates/mediagoblin/base.html4
-rw-r--r--mediagoblin/templates/mediagoblin/edit/attachments.html2
-rw-r--r--mediagoblin/templates/mediagoblin/edit/edit.html2
-rw-r--r--mediagoblin/templates/mediagoblin/edit/edit_profile.html2
-rw-r--r--mediagoblin/templates/mediagoblin/listings/tag.html2
-rw-r--r--mediagoblin/templates/mediagoblin/root.html6
-rw-r--r--mediagoblin/templates/mediagoblin/submit/start.html2
-rw-r--r--mediagoblin/templates/mediagoblin/test_submit.html2
-rw-r--r--mediagoblin/templates/mediagoblin/user_pages/gallery.html2
-rw-r--r--mediagoblin/templates/mediagoblin/user_pages/media.html19
-rw-r--r--mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html54
-rw-r--r--mediagoblin/templates/mediagoblin/user_pages/processing_panel.html2
-rw-r--r--mediagoblin/templates/mediagoblin/user_pages/user.html10
-rw-r--r--mediagoblin/templates/mediagoblin/utils/feed_link.html2
-rw-r--r--mediagoblin/templates/mediagoblin/utils/messages.html2
-rw-r--r--mediagoblin/templates/mediagoblin/utils/object_gallery.html2
-rw-r--r--mediagoblin/templates/mediagoblin/utils/pagination.html22
-rw-r--r--mediagoblin/templates/mediagoblin/utils/prev_next.html52
-rw-r--r--mediagoblin/templates/mediagoblin/utils/profile.html2
-rw-r--r--mediagoblin/templates/mediagoblin/utils/tags.html2
-rw-r--r--mediagoblin/templates/mediagoblin/utils/wtforms.html8
-rw-r--r--mediagoblin/tests/__init__.py2
-rw-r--r--mediagoblin/tests/fake_celery_module.py2
-rw-r--r--mediagoblin/tests/test_auth.py2
-rw-r--r--mediagoblin/tests/test_celery_setup.py2
-rw-r--r--mediagoblin/tests/test_config.py2
-rw-r--r--mediagoblin/tests/test_globals.py2
-rw-r--r--mediagoblin/tests/test_messages.py2
-rw-r--r--mediagoblin/tests/test_migrations.py2
-rw-r--r--mediagoblin/tests/test_storage.py2
-rw-r--r--mediagoblin/tests/test_submission.py64
-rw-r--r--mediagoblin/tests/test_tags.py2
-rw-r--r--mediagoblin/tests/test_tests.py2
-rw-r--r--mediagoblin/tests/test_util.py2
-rw-r--r--mediagoblin/tests/test_workbench.py2
-rw-r--r--mediagoblin/tests/tools.py2
-rw-r--r--mediagoblin/user_pages/__init__.py2
-rw-r--r--mediagoblin/user_pages/forms.py7
-rw-r--r--mediagoblin/user_pages/routing.py5
-rw-r--r--mediagoblin/user_pages/views.py46
-rw-r--r--mediagoblin/util.py34
-rw-r--r--mediagoblin/views.py2
-rw-r--r--mediagoblin/workbench.py2
-rw-r--r--setup.py22
142 files changed, 4915 insertions, 1522 deletions
diff --git a/.gitignore b/.gitignore
index 9da56bab..5f16bd74 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,7 @@ mediagoblin.egg-info
*.pyc
*.pyo
docs/_build/
+docs/build
user_dev/
paste_local.ini
mediagoblin_local.ini
diff --git a/AUTHORS b/AUTHORS
index e69de29b..9653a332 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -0,0 +1,34 @@
+=========
+ AUTHORS
+=========
+
+This is a list of contributors to MediaGoblin. They contribute in a
+variety of different ways and this software wouldn't exist without them.
+
+Thank you!
+
+* Aaron Williamson
+* Alejandro Villanueva
+* Aleksandar Micovic
+* Alex Camelio
+* Bernhard Keller
+* Caleb Forbes Davis V
+* Chris Moylan
+* Christopher Allan Webber
+* Daniel Neel
+* Deb Nicholson
+* Elrond of Samba TNG
+* Jakob Kramer
+* Jef van Schendel
+* Joar Wandborg
+* Karen Rustad
+* Mark Holmquist
+* Matt Lee
+* Odin Hørthe Omdal
+* Osama Khalid
+* Rasmus Larsson
+* Sam Kleinman
+* Sebastian Spaeth
+* Will Kahn-Greene
+
+If you think your name should be on this list, let us know!
diff --git a/COPYING b/COPYING
index 6895d3b8..f8d93cf6 100644
--- a/COPYING
+++ b/COPYING
@@ -17,7 +17,18 @@ License along with this program, in the file ``licenses/AGPLv3.txt``.
If not, see <http://www.gnu.org/licenses/>.
-JavaScript files located in the ``mediagoblin/`` directory tree of
+Translation files located under ``mediagoblin/i18n/`` directory tree
+are 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.
+
+You should have received a copy of the GNU Affero General Public
+License along with this program, in the file ``licenses/AGPLv3.txt``.
+If not, see <http://www.gnu.org/licenses/>.
+
+
+JavaScript files located in the ``mediagoblin/`` directory tree
are free software: you can redistribute and/or modify them under the
terms of the GNU Lesser General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at
diff --git a/docs/source/about_mediagoblin.rst b/docs/source/about_mediagoblin.rst
index af6658f3..71d8b89c 100644
--- a/docs/source/about_mediagoblin.rst
+++ b/docs/source/about_mediagoblin.rst
@@ -9,43 +9,52 @@
What is GNU MediaGoblin
=======================
-Three years ago (2008), a number of free software luminaries got
-together at the FSF office to answer the question, "What should
-software freedom look like on the participatory web?" Those thinkers
-included Richard Stallman---founder of the free software movement and
-instigator of the GNU project, Evan Prodromou---the driving force
-behind Status.net, a highly sucessful federated micro-blogging
-service, and FIXME.
-
-Since that time Identi.ca and Libre.fm have answered the
-freedom-loving web-user's need for micro-blogging and music sharing.
-Now, GNU MediaGoblin is building a format for users to share photos.
-Later versions of MediaGoblin will include support for video and other
-media as well as tools to encourage collaboration on media projects.
-
-
-Why are we doing this?
-======================
-
-Centralization and proprietization of media on the internet is a
-serious problem and makes the web go from a system of extreme
-resilience to a system of frightening fragility. We believe people
-should be able to free their data from proprietary control and that
-means someone has to build the tools to make it possible. We decided
-that in this case, that someone would be us!
-
-
-Who are you?
-============
-
-Free software activists and folks who have worked on a variety of
-other projects like Libre.fm, GNU Social, Status.net, Miro, Miro
-Community, OpenHatch and other projects as well. We're admirers and
-contributors. We're writers and painters. We're friendly and
-dedicated to computer user freedom.
-
-
-How can I participate?
+In 2008 a number of free software developers and activists gathered at
+the FSF to attempt to answer the question "What should software
+freedom look like on the participatory web?" Their answer, the
+`Franklin Street Statement <http://autonomo.us/2008/07/franklin-street-statement/>`_,
+has lead to the development of `autonomo.us <http://autonomo.us/>`_
+community, and free software projects including `Identi.ca <http://identi.ca/>`_
+and `Libre.fm <http://libre.fm/>`_.
+
+Identi.ca and Libre.fm address the need for micro-blogging and music
+sharing services and software that respect users' freedom and
+autonomy. GNU MediaGoblin emerges from this milieu to create a
+platform for us to share photos in an environment that respects our
+freedom and independence. In the future MediaGoblin will include
+support other media, like video, and provide tools to facilitate
+collaboration on media projects.
+
+Why Build GNU MediaGoblin
+=========================
+
+The Internet is designed--and works best--as a complex and endlessly
+resilient network. When key services and media outlets are
+concentrated in centralized platforms, the network becomes less useful
+and increasingly fragile. As always, the proprietary nature of these
+systems, hinders users ability to develop, extend, and understand
+their software; however, in the case of network services it also means
+that users must forfeit control of their data to the service
+providers.
+
+Therefore, we believe that network services must be federated to avoid
+centralization and that everyone ought to have control over their
+data. In support of this, we've decided to help build the tools to
+make these kinds of services possible. We hope you'll join us, both as
+users and as contributors.
+
+Who Contributes to the Project
+==============================
+
+You do!
+
+We are free software activists and folks who have worked on a variety
+of other projects including: Libre.fm, GNU Social, Status.net, Miro,
+Miro Community, and OpenHatch among others. We're programmers,
+musicians, writers, and painters. We're friendly and dedicated to
+software and network freedom.
+
+How Can I Participate?
======================
See `Get Involved <http://mediagoblin.org/join/>`_ on the website..
@@ -56,15 +65,15 @@ How is GNU MediaGoblin licensed?
GNU MediaGoblin software is released under an AGPLv3 license.
-See the ``COPYING`` file in the source for details.
+See the ``COPYING`` file in the source repository for details.
-Is this an official GNU Project? What does that mean?
-======================================================
+Is MedaGobilin an official GNU project? What does that mean?
+=============================================================
-We are! It means that we meet the GNU Project's rigourous standards
-for free software. To find out more about what that means, check out
-`the GNU site <http://gnu.org/>`_.
+MediaGoblin is an official GNU project! This status means that we the
+meet the GNU Project's rigorous standards for free software. To find
+out more about what that means, check out `the GNU site <http://gnu.org/>`_.
Please feel free to contact us with further questions!
diff --git a/docs/source/conf.py b/docs/source/conf.py
index e2f327c9..7ea3a340 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -48,9 +48,9 @@ copyright = u'2011, Free Software Foundation, Inc and contributors'
# built documents.
#
# The short X.Y version.
-version = '0.0.4'
+version = '0.0.5'
# The full version, including alpha/beta/rc tags.
-release = '0.0.4'
+release = '0.0.5'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
diff --git a/docs/source/contributinghowto.rst b/docs/source/contributinghowto.rst
index a4f5771a..8eaff5e4 100644
--- a/docs/source/contributinghowto.rst
+++ b/docs/source/contributinghowto.rst
@@ -1,185 +1,215 @@
.. _contributing-howto-chapter:
-====================
- Contributing HOWTO
-====================
+===================================
+HOWTO Contribute to GNU MediaGoblin
+===================================
.. contents:: Sections
:local:
-
.. _join-the-community-section:
Join the community!
===================
-We're super glad you want to join our community!
-
-See `the join page on the website <http://mediagoblin.org/join/>`_ for
-where we hang out.
-
-There are a variety of ways you can help us and become part of the
-team. We're not just looking for coders! We're also looking for
-documentation writers, users, testers, evangelists, user-interface
-designers, graphics designers, user-experience designers, system
-administrators, friends, painters, bakers, candle-stick makers...
-
-Here are some things you can do today:
-
+We're **really** glad that you want to join the MediaGoblin community!
- **Hang out with us**
+There are a variety of ways to help and support MediaGoblin and to
+join the team. If you want to code, great, if not, even better!
+MediaGoblin interested contributors in many different roles: users,
+system administrators, technical writers, testers, evangelists,
+UI/UX and graphics designers, cheerleaders, and dreamers.
- You should hang out with us! We like people like you!
+This document provides an overview of different ways you can get
+involved with MediaGoblin along with instructions for getting
+started. There is some obvious overlap with `the "join" page on
+mediagoblin.org <http://mediagoblin.org/pages/join.html>`_ at present.
- At a bare minimum, join the `mailing list
- <http://mediagoblin.org/join/>`_ and say, "Hi!"
+Hang out with the MediaGoblin folk
+----------------------------------
- We also hang out on IRC in ``#mediagoblin`` on Freenode.net.
+MediaGoblin has a `discussion listserv <http://lists.mediagoblin.org/listinfo/devel>`_,
+and an IRC (``#mediagoblin``) channel on `freenode.net <http://freenode.com>`_.
+Don't be afraid to drop by and say "Hi!" And, if you're looking for
+something to do, just ask: there's always work to be done.
- **File bugs**
+File Bugs / Triage Bugs
+-----------------------
- Filing bugs is a critical part of any project. For more
- information on filing bugs, see :ref:`filing-bugs`.
+Issue reports are critical for all projects. Identified bugs give
+developers a basis for beginning work, and providing an idea of what
+features and issues are most important to users and the overall
+usability of the software. If you identify errors, flaws, unexpected
+behaviors, or deficits that impede use, file a bug.
+See the section on `filing bugs <#filing-bugs>`_ for more information on how to file the best
+and most useful bug reports.
- **Write/Fix some code**
+If you want to contribute to MediaGoblin and don't know where to
+start, look at the `bug database <http://bugs.foocorp.net/projects/mediagoblin/issues>`_
+as a starting point.
- If you are a coder and you're looking to code, check out the
- `wiki <http://wiki.mediagoblin.org/`_. We even have tips on
- *becoming* a coder and we're willing to help you!
+See the section on `bug triage <#triage-bugs>`_ for suggestions on how
+to most effectively triage and approach the issue queue.
+Write/Fix Code
+--------------
- **Send encouragement**
+If you are a coder and you would like to write code, the `repository <https://gitorious.org/mediagoblin>`_
+is hosted on `gitorious <https://gitorious.org/>`_. Clone or fork the
+repository and start poking around. Become familiar with this `manual </>`_
+for an overview of how the software works and is used. Consider the
+`contributor wiki <http://wiki.mediagoblin.org/>`_ for more
+information about the project, our preferred methods, and guides for
+developing MediaGoblin. We even have tips on *becoming* a coder and
+we're willing to help!
- A nice word from you could send someone into a tizzy of
- productive work. Ten nice words could complete a feature.
- One hundred nice words could get us to the next milestone.
+Send Encouragement, Spread the Word
+-----------------------------------
- Send it to the `mailing list <http://mediagoblin.org/join/>`_
- or hop into ``#mediagoblin`` on Freenode.net and let us know.
+Sometimes, a nice word, simple encouragement, and interest in the work
+we're doing is enough to inspire a tizzy of productive work. Just a
+bit more interest and encouragement can even make the difference
+between a complete feature and limited functionality; between a
+completed milestone and lost momentum.
+Similarly, MediaGoblin, and the movement for free network services, is
+always in need of encouragement. Use free network services, understand
+the `principals <http://autonomo.us/2008/07/franklin-street-statement/>`_
+behind the movement, be able to articulate the benefits of free
+network services and the problems with psudo-free applications that
+don't respect the users' freedom.
- **Spread the word**
-
- The seductive call of Free Software services is a powerful
- one, but many cannot hear it because it's drowned out by the
- rush hour traffic honking of proprietary walled gardens and
- faux free services. Yuck! Be the sweet chirrup of the bird
- amidst the din! Tell others that there is a better way to
- live!
-
- FIXME - do we want to talk about ways to spread the word?
-
- FIXME - how can people notify us that they're spreading the
- word?
+Write a blog post, post a status update, drop by the `listserv <http://mediagoblin.org/join/>`_
+or join ``#mediagoblin`` on freenode.net and let us know.
+Participate in MediaGoblin
+==========================
We're still working on project infrastructure. We hope to have the
bits in place for these additional things to do in the coming months:
- **Become a user**
-
- We're building GNU MediaGoblin for us and for you but really
- you're one of us and I am you and we are we and GNU
- MediaGoblin is the walrus.
-
- Sign up for an account. Use the service. Relish in the
- thought that this service comes with a heaping side of Freedom
- and you can salt and pepper it to your liking.
+Become a User
+-------------
+We're building GNU MediaGoblin for us and for you but really
+you're one of us and I am you and we are we and GNU
+MediaGoblin is the walrus.
- **Help other users**
+Sign up for an account. Use the service. Relish in the
+thought that this service comes with a heaping side of Freedom
+and you can salt and pepper it to your liking.
- Have you spent time with GNU MediaGoblin? If so, your
- experience and wisdom are invaluable and you're the best
- person we can think of to help other users with their
- questions.
+Help Others
+-----------
- **Run your own instance**
+Have you spent time with GNU MediaGoblin? If so, your
+experience and wisdom are invaluable and you're the best
+person we can think of to help other users with their
+questions.
- Are there things about our instance you want to change? Are
- there things about other instances you wish were different?
- Want to test upcoming changes? Want to create patches to
- implement things you need? That's great---you can run your
- own instance!
-
- For more information on deploying your own instance, see
- :ref:`deployment-howto`.
+Run your own MediaGoblin Instance
+---------------------------------
- **Translate GNU MediaGoblin**
+Are there things about our instance you want to change? Are
+there things about other instances you wish were different?
+Want to test upcoming changes? Want to create patches to
+implement things you need? That's great---you can run your
+own instance!
- Knowing more than one language is an important skill. If you
- are multi-lingual and are interested in translating GNU
- MediaGoblin, see :ref:`translating`.
-
-
- **Create a theme**
-
- As people deploy their own GNU MediaGoblin instances, good
- themes are a must have! For more information on theming, see
- :ref:`theming-howto`.
+For more information on deploying your own instance, see
+the `Deployment HOWTO </deploymenthowto.html>`_
+.. _translating:
-Contributing thank you drawings / copyright assignment
-======================================================
+Translate MediaGoblin
+---------------------
-Copyright assignment with GNU MediaGoblin to the `FSF
-<http://fsf.org>`_ is highly encouraged but not mandatory. To
-incentivize both this and people to make cool contributions to our
-project, if you make useful contributions to GNU MediaGoblin *and* do
-a copyright assignment to the Free Software Foundation, the founder of
-the project, Chris Webber, will make a custom drawing of a goblin
-dedicated specifically to you.
+If you know English and another language and feel comfortable
+translating elements of the interface or even the documentation,
+we'd love to have help translating the software and resources.
-For why we're doing copyright assignment, see the
-`wiki <http://wiki.mediagoblin.org/>`_.
+Create a Theme
+--------------
+MedaGoblin development is premised on the idea that the entire
+interface for the platform be completely theme-able. If you have a
+design or theming background, consider developing themes for
+MediaGoblin. New themes help test the theming system, provide
+attractive and appealing interfaces for prospective users. If you want
+to start a new theme but don't know where to start, touch base with
+the development community on the list or in the IRC channel for more
+information.
.. _filing-bugs:
-File bugs
+File Bugs
=========
-GNU MediaGoblin uses a bug tracker called `Redmine
-<http://www.redmine.org>`_.
+MediaGoblin uses a bug tracker called `Redmine <http://www.redmine.org>`_.
-The bug tracker is at `<http://bugs.foocorp.net/projects/mediagoblin>`_.
+Our instance is located at `<http://bugs.foocorp.net/projects/mediagoblin>`_.
-A good bug report has the following things in it:
+The most useful bug reports have the following components:
1. A short summary that's 60 characters or less.
2. A description that describes the issue (bug, feature request, ...)
- as well as the context.
+ as well as the context. Consider:
- * If it's a bug, can you reproduce it? Is the issue specific to a
- browser, computer, image, ...?
+ * If you think you've found a bug, can you reproduce it in a
+ controlled environment? Is the issue specific to a browser,
+ computer, image, media type, or other dimension? All data helps.
- * If it's a feature request, are there related links on the Internet
- for more information? Would you be willing to help implement or
- test the feature?
+ * If you're submitting a feature request, are there related links
+ on the Internet for more information? Would you be willing to
+ help implement or test the feature?
-That's it! When someone looks into the issue and has questions,
-they'll contact you!
+That's it!
-If you don't hear from anyone in a couple of weeks, find someone on
-IRC.
+The better the issue report, the easier it is to address the bug, and
+the more likely that the developers will be able to resolve the
+issue. If someone has questions about the bug report, they may reach
+out to the reporter directly.
+If you get a response after a couple of weeks, find someone on IRC.
-.. _translating:
+.. _triage-bugs:
+
+Triage Bugs
+===========
+
+The triage process involves reviewing bugs, removing duplicates,
+validating that the issues described are reproducible, ensuring that
+the exact behavior is properly documented, diagnosing the cause of
+each issue, and working with developers to ensure that critical bugs
+get addressed. In many cases, developers do this kind of work as a
+matter of course, but one need not be able to code in order to help
+working with bugs.
+
+To triage bugs, go to the `bug tracker <http://bugs.foocorp.net/projects/mediagoblin>`_
+and begin reviewing the open issues. If you are able, attempt to:
-Translate GNU MediaGoblin
-=========================
+- ensure that one or two people in addition to the initial reporter
+ have been able to reproduce the issue.
-Coming soon when we set up translation infrastructure.
+- document the issue more clearly. If you had any trouble reproducing
+ the issue, provide any elucidating information that you can to help
+ others solve the problem more effectively.
+
+- find a way to resolve the problem or provide a workaround.
+For help, instructions, and suggestions be in touch with the
+development community on the list or in the IRC channel for more
+information. With many eyes, all bugs are shallow.
-Where to go when you get stuck
-==============================
+How to Get Help with MediaGoblin
+================================
-Go to `our Web site <http://mediagoblin.org/>`_ where we list the
-various places we hang out and how to get a hold of us.
+The usual channels, the IRC channel, the listserv, the bug tracker,
+are all great ways to be in touch with us. Check the `web site <http://mediagoblin.org/pages/join.html>`_
+for more specific contact information.
diff --git a/docs/source/foreword.rst b/docs/source/foreword.rst
index 4fd96842..c525d002 100644
--- a/docs/source/foreword.rst
+++ b/docs/source/foreword.rst
@@ -1,39 +1,46 @@
-==========
- Foreword
-==========
+========
+Foreword
+========
-About this manual
-=================
+About the MediaGoblin Manual
+============================
-This is the GNU MediaGoblin manual. This documentation targets the
-following groups of individuals:
+Welcome to the GNU MediaGoblin manual. This document targets several
+classes of users, including:
-* people who want to try the software locally
-* people who want to deploy and administrate the software
+* users who would like to try the software locally,
+* systems administrators who want to deploy and administer the
+ software in "production environments," and
+* anyone who wants to learn how MediaGoblin works.
-This manual doesn't cover contributors to the codebase. But we want
-and love contributors! To join as a contributor please visit the
-following pages instead:
+Some information relevant to the MediaGoblin community members,
+including how to get involved (We want and love contributors!) To join
+as a contributor please see the following pages:
* http://mediagoblin.org/pages/join.html for general "join us" information
* http://wiki.mediagoblin.org/ for our contributor-focused wiki
-If you are viewing this from http://docs.mediagoblin.org be aware that
-this manual is a living document and is in the ``mediagoblin``
-repository in the ``docs/`` directory.
+If you suspect that documentation on http://docs.mediagoblin.org is
+out of date, it might be. The documentation is updated regularly and
+the "living" version of this resource resides in the ``mediagoblin``
+repository with the project's source code the ``docs/`` directory.
+Improving the MediaGobiin Manual
+================================
-I found an error in the docs---who do I tell?
-=============================================
-
-There are a few ways---please pick the one most convenient to you!
+There are a few ways---please pick whichever method is convenient for
+you!
1. Write up a bug report in the bug tracker at http://bugs.foocorp.net/projects/mediagoblin/issues
2. Tell someone on IRC ``#mediagoblin`` on Freenode.
-3. Send an email to Will ``willg at bluesock dot org``.
+3. Send an email to Will ``willg at bluesock dot org``, or Sam at
+ ``sam@cyborginstitute.com``
When you tell us about your issue, please let us know:
* where you are looking (in git? url of the web-page?)
-* what the issue is
-* your thoughts on how to resolve it
+* what the issue is, and
+* your thoughts on how to resolve it.
+
+We hope these materials are useful and we look forward to any and all
+feedback.
diff --git a/docs/source/index.rst b/docs/source/index.rst
index 79f2653e..93b2a942 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -23,7 +23,8 @@ Table of Contents:
Indices and tables
==================
-* :ref:`genindex`
-* :ref:`modindex`
* :ref:`search`
+* :ref:`genindex`
+
+.. * :ref:`modindex`
diff --git a/mediagoblin/__init__.py b/mediagoblin/__init__.py
index dec83661..f9c7ccfb 100644
--- a/mediagoblin/__init__.py
+++ b/mediagoblin/__init__.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
@@ -14,3 +14,4 @@
# 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/>.
+from mediagoblin._version import __version__
diff --git a/mediagoblin/_version.py b/mediagoblin/_version.py
new file mode 100644
index 00000000..df212faf
--- /dev/null
+++ b/mediagoblin/_version.py
@@ -0,0 +1,17 @@
+# GNU MediaGoblin -- federated, autonomous media hosting
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
+#
+# 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/>.
+
+__version__ = "0.0.5"
diff --git a/mediagoblin/app.py b/mediagoblin/app.py
index 113bcb8d..dd5f0b89 100644
--- a/mediagoblin/app.py
+++ b/mediagoblin/app.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
@@ -20,7 +20,7 @@ import urllib
import routes
from webob import Request, exc
-from mediagoblin import routing, util
+from mediagoblin import routing, util, middleware
from mediagoblin.mg_globals import setup_globals
from mediagoblin.init.celery import setup_celery_from_config
from mediagoblin.init import (get_jinja_loader, get_staticdirector,
@@ -61,7 +61,7 @@ class MediaGoblinApp(object):
# Get the template environment
self.template_loader = get_jinja_loader(
app_config.get('user_template_path'))
-
+
# Set up storage systems
self.public_store, self.queue_store = setup_storage()
@@ -97,11 +97,22 @@ class MediaGoblinApp(object):
# matters in always eager mode :)
setup_workbench()
+ # instantiate application middleware
+ self.middleware = [util.import_component(m)(self)
+ for m in middleware.ENABLED_MIDDLEWARE]
+
+
def __call__(self, environ, start_response):
request = Request(environ)
- path_info = request.path_info
+
+ # pass the request through our middleware classes
+ for m in self.middleware:
+ response = m.process_request(request)
+ if response is not None:
+ return response(environ, start_response)
## Routing / controller loading stuff
+ path_info = request.path_info
route_match = self.routing.match(path_info)
## Attach utilities to the request object
@@ -113,7 +124,7 @@ class MediaGoblinApp(object):
# Also attach a few utilities from request.app for convenience?
request.app = self
request.locale = util.get_locale_from_request(request)
-
+
request.template_env = util.get_jinja_env(
self.template_loader, request.locale)
request.db = self.db
@@ -142,7 +153,14 @@ class MediaGoblinApp(object):
controller = util.import_component(route_match['controller'])
request.start_response = start_response
- return controller(request)(environ, start_response)
+ # get the response from the controller
+ response = controller(request)
+
+ # pass the response through the middleware
+ for m in self.middleware[::-1]:
+ m.process_response(request, response)
+
+ return response(environ, start_response)
def paste_app_factory(global_config, **app_config):
diff --git a/mediagoblin/auth/__init__.py b/mediagoblin/auth/__init__.py
index c129cbf8..ba347c69 100644
--- a/mediagoblin/auth/__init__.py
+++ b/mediagoblin/auth/__init__.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/auth/forms.py b/mediagoblin/auth/forms.py
index 917909c5..1dfaf095 100644
--- a/mediagoblin/auth/forms.py
+++ b/mediagoblin/auth/forms.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
@@ -34,7 +34,9 @@ class RegistrationForm(wtforms.Form):
_('Passwords must match.'))])
confirm_password = wtforms.PasswordField(
_('Confirm password'),
- [wtforms.validators.Required()])
+ [wtforms.validators.Required()],
+ description=_(
+ u"Type it again here to make sure there are no spelling mistakes."))
email = wtforms.TextField(
_('Email address'),
[wtforms.validators.Required(),
diff --git a/mediagoblin/auth/lib.py b/mediagoblin/auth/lib.py
index 6d1aec49..89cfb6ff 100644
--- a/mediagoblin/auth/lib.py
+++ b/mediagoblin/auth/lib.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/auth/routing.py b/mediagoblin/auth/routing.py
index 9547b3ea..76c7ceed 100644
--- a/mediagoblin/auth/routing.py
+++ b/mediagoblin/auth/routing.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py
index 4c4a34fd..1b942280 100644
--- a/mediagoblin/auth/views.py
+++ b/mediagoblin/auth/views.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
@@ -44,11 +44,12 @@ def register(request):
if request.method == 'POST' and register_form.validate():
# TODO: Make sure the user doesn't exist already
-
+ username = unicode(request.POST['username'].lower())
+ email = unicode(request.POST['email'].lower())
users_with_username = request.db.User.find(
- {'username': request.POST['username'].lower()}).count()
+ {'username': username}).count()
users_with_email = request.db.User.find(
- {'email': request.POST['email'].lower()}).count()
+ {'email': email}).count()
extra_validation_passes = True
@@ -64,8 +65,8 @@ def register(request):
if extra_validation_passes:
# Create the user
user = request.db.User()
- user['username'] = request.POST['username'].lower()
- user['email'] = request.POST['email'].lower()
+ user['username'] = username
+ user['email'] = email
user['pw_hash'] = auth_lib.bcrypt_gen_password_hash(
request.POST['password'])
user.save(validate=True)
diff --git a/mediagoblin/buildout_recipes.py b/mediagoblin/buildout_recipes.py
index abb01b9e..f3d0362f 100644
--- a/mediagoblin/buildout_recipes.py
+++ b/mediagoblin/buildout_recipes.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/config_spec.ini b/mediagoblin/config_spec.ini
index 3f99b497..6fefb581 100644
--- a/mediagoblin/config_spec.ini
+++ b/mediagoblin/config_spec.ini
@@ -15,6 +15,10 @@ direct_remote_path = string(default="/mgoblin_static/")
# set to false to enable sending notices
email_debug_mode = boolean(default=True)
email_sender_address = string(default="notice@mediagoblin.example.org")
+email_smtp_host = string(default='')
+email_smtp_port = integer(default=25)
+email_smtp_user = string(default=None)
+email_smtp_pass = string(default=None)
# Set to false to disable registrations
allow_registration = boolean(default=True)
diff --git a/mediagoblin/db/__init__.py b/mediagoblin/db/__init__.py
index 776025ca..c5124b1a 100644
--- a/mediagoblin/db/__init__.py
+++ b/mediagoblin/db/__init__.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/db/indexes.py b/mediagoblin/db/indexes.py
index 30d43c98..75394a31 100644
--- a/mediagoblin/db/indexes.py
+++ b/mediagoblin/db/indexes.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/migrations.py
index 5456b248..b07681a6 100644
--- a/mediagoblin/db/migrations.py
+++ b/mediagoblin/db/migrations.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py
index b6e52441..792a515e 100644
--- a/mediagoblin/db/models.py
+++ b/mediagoblin/db/models.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/db/open.py b/mediagoblin/db/open.py
index e5fde6f9..e73b6258 100644
--- a/mediagoblin/db/open.py
+++ b/mediagoblin/db/open.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py
index 0f3220d2..84a6cbce 100644
--- a/mediagoblin/db/util.py
+++ b/mediagoblin/db/util.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py
index c66049ca..7d5978fc 100644
--- a/mediagoblin/decorators.py
+++ b/mediagoblin/decorators.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
@@ -52,6 +52,22 @@ def require_active_login(controller):
return _make_safe(new_controller_func, controller)
+def user_may_delete_media(controller):
+ """
+ Require user ownership of the MediaEntry to delete.
+ """
+ def wrapper(request, *args, **kwargs):
+ uploader = request.db.MediaEntry.find_one(
+ {'_id': ObjectId(request.matchdict['media'])}).uploader()
+ if not (request.user['is_admin'] or
+ request.user['_id'] == uploader['_id']):
+ return exc.HTTPForbidden()
+
+ return controller(request, *args, **kwargs)
+
+ return _make_safe(wrapper, controller)
+
+
def uses_pagination(controller):
"""
Check request GET 'page' key for wrong values
@@ -122,3 +138,4 @@ def get_media_entry_by_id(controller):
return controller(request, media=media, *args, **kwargs)
return _make_safe(wrapper, controller)
+
diff --git a/mediagoblin/edit/__init__.py b/mediagoblin/edit/__init__.py
index a8eeb5ed..576bd0f5 100644
--- a/mediagoblin/edit/__init__.py
+++ b/mediagoblin/edit/__init__.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py
index c5ab9fd9..f81d58b2 100644
--- a/mediagoblin/edit/forms.py
+++ b/mediagoblin/edit/forms.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
@@ -25,13 +25,17 @@ class EditForm(wtforms.Form):
title = wtforms.TextField(
_('Title'),
[wtforms.validators.Length(min=0, max=500)])
- slug = wtforms.TextField(
- _('Slug'),
- [wtforms.validators.Required(message=_("The slug can't be empty"))])
description = wtforms.TextAreaField('Description of this work')
tags = wtforms.TextField(
_('Tags'),
[tag_length_validator])
+ slug = wtforms.TextField(
+ _('Slug'),
+ [wtforms.validators.Required(message=_("The slug can't be empty"))],
+ description=_(
+ "The title part of this media's URL. "
+ "You usually don't need to change this."))
+
class EditProfileForm(wtforms.Form):
bio = wtforms.TextAreaField(
@@ -42,6 +46,7 @@ class EditProfileForm(wtforms.Form):
[wtforms.validators.Optional(),
wtforms.validators.URL(message='Improperly formed URL')])
+
class EditAttachmentsForm(wtforms.Form):
attachment_name = wtforms.TextField(
'Title')
diff --git a/mediagoblin/edit/lib.py b/mediagoblin/edit/lib.py
index 2a810349..b722e9c1 100644
--- a/mediagoblin/edit/lib.py
+++ b/mediagoblin/edit/lib.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/edit/routing.py b/mediagoblin/edit/routing.py
index 9771207a..34e9fd80 100644
--- a/mediagoblin/edit/routing.py
+++ b/mediagoblin/edit/routing.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py
index b0145a04..11bee110 100644
--- a/mediagoblin/edit/views.py
+++ b/mediagoblin/edit/views.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
@@ -14,6 +14,7 @@
# 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/>.
+import uuid
from webob import exc
from string import split
@@ -45,9 +46,6 @@ def edit_media(request, media):
description=media['description'],
tags=media_tags_as_string(media['tags']))
- if len(media['attachment_files']):
- defaults['attachment_name'] = media['attachment_files'][0]['name']
-
form = forms.EditForm(
request.POST,
**defaults)
@@ -64,23 +62,15 @@ def edit_media(request, media):
form.slug.errors.append(
_(u'An entry with that slug already exists for this user.'))
else:
- media['title'] = request.POST['title']
- media['description'] = request.POST.get('description')
+ media['title'] = unicode(request.POST['title'])
+ media['description'] = unicode(request.POST.get('description'))
media['tags'] = convert_to_tag_list_of_dicts(
request.POST.get('tags'))
media['description_html'] = cleaned_markdown_conversion(
media['description'])
- if 'attachment_name' in request.POST:
- media['attachment_files'][0]['name'] = \
- request.POST['attachment_name']
-
- if 'attachment_delete' in request.POST \
- and 'y' == request.POST['attachment_delete']:
- del media['attachment_files'][0]
-
- media['slug'] = request.POST['slug']
+ media['slug'] = unicode(request.POST['slug'])
media.save()
return redirect(request, "mediagoblin.user_pages.media_home",
@@ -171,8 +161,8 @@ def edit_profile(request):
bio=user.get('bio'))
if request.method == 'POST' and form.validate():
- user['url'] = request.POST['url']
- user['bio'] = request.POST['bio']
+ user['url'] = unicode(request.POST['url'])
+ user['bio'] = unicode(request.POST['bio'])
user['bio_html'] = cleaned_markdown_conversion(user['bio'])
diff --git a/mediagoblin/errormiddleware.py b/mediagoblin/errormiddleware.py
index 352dc891..ccfe4d03 100644
--- a/mediagoblin/errormiddleware.py
+++ b/mediagoblin/errormiddleware.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/gmg_commands/__init__.py b/mediagoblin/gmg_commands/__init__.py
index 8226fd0e..0071c65b 100644
--- a/mediagoblin/gmg_commands/__init__.py
+++ b/mediagoblin/gmg_commands/__init__.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/gmg_commands/import_export.py b/mediagoblin/gmg_commands/import_export.py
index 367924a5..2e227e77 100644
--- a/mediagoblin/gmg_commands/import_export.py
+++ b/mediagoblin/gmg_commands/import_export.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/gmg_commands/migrate.py b/mediagoblin/gmg_commands/migrate.py
index 94adc9e0..1a597188 100644
--- a/mediagoblin/gmg_commands/migrate.py
+++ b/mediagoblin/gmg_commands/migrate.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/gmg_commands/shell.py b/mediagoblin/gmg_commands/shell.py
index dc1621d1..2a380c7b 100644
--- a/mediagoblin/gmg_commands/shell.py
+++ b/mediagoblin/gmg_commands/shell.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/gmg_commands/users.py b/mediagoblin/gmg_commands/users.py
index 14b6875d..5421907d 100644
--- a/mediagoblin/gmg_commands/users.py
+++ b/mediagoblin/gmg_commands/users.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/gmg_commands/util.py b/mediagoblin/gmg_commands/util.py
index 8dcac913..168a0760 100644
--- a/mediagoblin/gmg_commands/util.py
+++ b/mediagoblin/gmg_commands/util.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/gmg_commands/wipealldata.py b/mediagoblin/gmg_commands/wipealldata.py
index 9ad32051..dc5d6cf7 100644
--- a/mediagoblin/gmg_commands/wipealldata.py
+++ b/mediagoblin/gmg_commands/wipealldata.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.mo
new file mode 100644
index 00000000..dafcdb66
--- /dev/null
+++ b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.mo
Binary files differ
diff --git a/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po
new file mode 100644
index 00000000..df47bac4
--- /dev/null
+++ b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po
@@ -0,0 +1,429 @@
+# Translations template for PROJECT.
+# Copyright (C) 2011 ORGANIZATION
+# This file is distributed under the same license as the PROJECT project.
+#
+# Majid Al-Dharrab <majid@aldharrab.com>, 2011.
+# <osamak@gnu.org>, 2011.
+# <Omar.w.kh@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-30 22:51-0500\n"
+"PO-Revision-Date: 2011-08-31 03:51+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: ar\n"
+"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5\n"
+
+#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54
+msgid "Username"
+msgstr "اسم المستخدم"
+
+#: mediagoblin/auth/forms.py:28
+msgid "This is the name other users will identify you with."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58
+msgid "Password"
+msgstr "كلمة المرور"
+
+#: mediagoblin/auth/forms.py:36
+msgid "Passwords must match."
+msgstr "يجب أن تتطابق كلمتا المرور."
+
+#: mediagoblin/auth/forms.py:37
+msgid "Try to use a strong password!"
+msgstr ""
+
+#: mediagoblin/auth/forms.py:40
+msgid "Confirm password"
+msgstr "تأكيد كلمة المرور"
+
+#: mediagoblin/auth/forms.py:42
+msgid "Type it again here to make sure there are no spelling mistakes."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:45
+msgid "Email address"
+msgstr "عنوان البريد الإلكتروني"
+
+#: mediagoblin/auth/forms.py:48
+msgid "Your email will never be published."
+msgstr ""
+
+#: mediagoblin/auth/views.py:40
+msgid "Sorry, registration is disabled on this instance."
+msgstr "عفوًا، التسجيل غير متاح هنا."
+
+#: mediagoblin/auth/views.py:58
+msgid "Sorry, a user with that name already exists."
+msgstr "عذرا، مستخدم بهذا الاسم موجود فعلا."
+
+#: mediagoblin/auth/views.py:62
+msgid "Sorry, that email address has already been taken."
+msgstr "عفوًا، هذا العنوان البريدي مستخدم."
+
+#: mediagoblin/auth/views.py:160
+msgid ""
+"Your email address has been verified. You may now login, edit your profile, "
+"and submit images!"
+msgstr ""
+"تم التحقق من بريدك الإلكتروني. يمكنك الآن الولوج، تحرير ملفك، وإرسال الصور!"
+
+#: mediagoblin/auth/views.py:166
+msgid "The verification key or user id is incorrect"
+msgstr "مفتاح التحقق أو معرف المستخدم خاطئ"
+
+#: mediagoblin/auth/views.py:187
+#: 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/views.py:66
+msgid "An entry with that slug already exists for this user."
+msgstr ""
+
+#: mediagoblin/edit/views.py:95
+msgid "You are editing another user's media. Proceed with caution."
+msgstr ""
+
+#: mediagoblin/edit/views.py:166
+msgid "You are editing a user's profile. Proceed with caution."
+msgstr ""
+
+#: mediagoblin/process_media/errors.py:44
+msgid "Invalid file given for media type."
+msgstr ""
+
+#: mediagoblin/submit/forms.py:25
+msgid "File"
+msgstr ""
+
+#: mediagoblin/submit/views.py:47
+msgid "You must provide a file."
+msgstr ""
+
+#: mediagoblin/submit/views.py:50
+msgid "The file doesn't seem to be an image!"
+msgstr "لا يبدو أن هذا الملف صورة!"
+
+#: mediagoblin/submit/views.py:122
+msgid "Woohoo! Submitted!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/404.html:21
+msgid "Oops!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/404.html:24
+msgid "There doesn't seem to be a page at this address. Sorry!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/404.html:26
+msgid ""
+"If you're sure the address is correct, maybe the page you're looking for has"
+" been moved or deleted."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/404.html:32
+msgid "Image of 404 goblin stressing out"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/base.html:22
+msgid "GNU MediaGoblin"
+msgstr "غنو ميدياغوبلن"
+
+#: mediagoblin/templates/mediagoblin/base.html:47
+msgid "MediaGoblin logo"
+msgstr "شعار ميدياغوبلن"
+
+#: mediagoblin/templates/mediagoblin/base.html:52
+msgid "Submit media"
+msgstr "أرسل وسائط"
+
+#: mediagoblin/templates/mediagoblin/base.html:63
+msgid "verify your email!"
+msgstr "أكد بريدك"
+
+#: mediagoblin/templates/mediagoblin/base.html:73
+#: mediagoblin/templates/mediagoblin/auth/login.html:26
+#: mediagoblin/templates/mediagoblin/auth/login.html:34
+msgid "Log in"
+msgstr "لُج"
+
+#: mediagoblin/templates/mediagoblin/base.html:89
+msgid ""
+"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
+"href=\"http://gnu.org/\">GNU</a> project"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/root.html:27
+msgid "Hi there, media lover! MediaGoblin is..."
+msgstr "مرحبا بكم يا محبوا الوسائط! ميدياغوبلن هو..."
+
+#: mediagoblin/templates/mediagoblin/root.html:29
+msgid "The perfect place for your media!"
+msgstr "المكان الأنسب لوسائطك!"
+
+#: mediagoblin/templates/mediagoblin/root.html:30
+msgid ""
+"A place for people to collaborate and show off original and derived "
+"creations!"
+msgstr "مكان يجتمع فيه الناس ليتعاونوا ويعرضوا إبداعاتهم الأصلية والمقتبسة!"
+
+#: mediagoblin/templates/mediagoblin/root.html:31
+msgid ""
+"Free, as in freedom. (We’re a <a href=\"http://gnu.org\">GNU</a> project, "
+"after all.)"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/root.html:32
+msgid ""
+"Aiming to make the world a better place through decentralization and "
+"(eventually, coming soon!) federation!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/root.html:33
+msgid ""
+"Built for extensibility. (Multiple media types coming soon to the software,"
+" including video support!)"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/root.html:34
+msgid ""
+"Powered by people like you. (<a "
+"href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this"
+" software!</a>)"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/auth/login.html:29
+msgid "Logging in failed!"
+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/register.html:30
+msgid "Create"
+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"
+"لتفعيل حسابك في غنو ميدياغوبلن، افتح الرابط التالي\n"
+"في متصفحك:\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
+#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44
+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/submit/start.html:26
+msgid "Submit yer media"
+msgstr "انشر وسائطك"
+
+#: mediagoblin/templates/mediagoblin/submit/start.html:29
+msgid "Submit"
+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:52
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
+msgid "Sorry, no such user found."
+msgstr "عذرا، لا يوجد مستخدم مماثل"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
+#, python-format
+msgid "Really delete %(title)s?"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36
+msgid ""
+"If you choose yes, the media entry will be deleted "
+"<strong>permanently.</strong>"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22
+msgid "Media processing panel"
+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 ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28
+msgid "Media in-processing"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46
+msgid "No media in-processing"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50
+msgid "These uploads failed to process:"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
+msgid "Email verification needed"
+msgstr "يجب التحقق من البريد الإلكتروني"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
+msgid "Almost done! Your account still needs to be activated."
+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"
+" activated."
+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's"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:85
+msgid "Here's a spot to tell others about yourself."
+msgstr "هذه زاوية لتخبر الآخرين فيها عن نفسك."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:90
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:108
+msgid "Edit profile"
+msgstr "عدل الملف"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
+msgid "This user hasn't filled in their profile (yet)."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:122
+#, python-format
+msgid "View all of %(username)s's media"
+msgstr "اعرض كل وسائط %(username)s"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:135
+msgid ""
+"This is where your media will appear, but you don't seem to have added "
+"anything yet."
+msgstr "هنا ستظهر وسائطك، ولكن يبدو أنك لم تضف شيئًا بعد."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:141
+msgid "Add media"
+msgstr "أضف وسائط"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:147
+msgid "There doesn't seem to be any media here yet..."
+msgstr "لا يبدو أنه يوجد أي وسائط هنا حتى الآن..."
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21
+msgid "feed icon"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23
+msgid "Atom feed"
+msgstr ""
+
+#: mediagoblin/user_pages/forms.py:24
+msgid "Comment"
+msgstr ""
+
+#: mediagoblin/user_pages/views.py:176
+msgid "You are about to delete another user's media. Proceed with caution."
+msgstr ""
+
+
diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo
index 6bb69ce9..848ea148 100644
--- a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo
+++ b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo
Binary files differ
diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po
index 30c55e21..22836525 100644
--- a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po
@@ -3,16 +3,18 @@
# This file is distributed under the same license as the PROJECT project.
#
# Rafael Maguiña <rafael.maguina@gmail.com>, 2011.
+# <benjamin@lebsanft.org>, 2011.
# <mediagoblin.org@samba-tng.org>, 2011.
+# Elrond <elrond+mediagoblin.org@samba-tng.org>, 2011.
# <cwebber@dustycloud.org>, 2011.
# Jan-Christoph Borchardt <JanCBorchardt@fsfe.org>, 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 23:20+0000\n"
-"Last-Translator: JanCBorchardt <JanCBorchardt@fsfe.org>\n"
+"POT-Creation-Date: 2011-08-30 22:51-0500\n"
+"PO-Revision-Date: 2011-08-31 03:51+0000\n"
+"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: German (http://www.transifex.net/projects/p/mediagoblin/team/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -21,52 +23,72 @@ msgstr ""
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46
+#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54
msgid "Username"
msgstr "Benutzername"
-#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50
+#: mediagoblin/auth/forms.py:28
+msgid "This is the name other users will identify you with."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58
msgid "Password"
msgstr "Passwort"
-#: mediagoblin/auth/forms.py:34
+#: mediagoblin/auth/forms.py:36
msgid "Passwords must match."
msgstr "Passwörter müssen übereinstimmen."
-#: mediagoblin/auth/forms.py:36
+#: mediagoblin/auth/forms.py:37
+msgid "Try to use a strong password!"
+msgstr ""
+
+#: mediagoblin/auth/forms.py:40
msgid "Confirm password"
msgstr "Passwort wiederholen"
-#: mediagoblin/auth/forms.py:39
+#: mediagoblin/auth/forms.py:42
+msgid "Type it again here to make sure there are no spelling mistakes."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:45
msgid "Email address"
msgstr "Email-Adresse"
+#: mediagoblin/auth/forms.py:48
+msgid "Your email will never be published."
+msgstr ""
+
#: mediagoblin/auth/views.py:40
msgid "Sorry, registration is disabled on this instance."
msgstr "Registrierung ist auf dieser Instanz leider deaktiviert."
-#: mediagoblin/auth/views.py:55
+#: mediagoblin/auth/views.py:58
msgid "Sorry, a user with that name already exists."
msgstr "Leider gibt es bereits einen Benutzer mit diesem Namen."
-#: mediagoblin/auth/views.py:152
+#: mediagoblin/auth/views.py:62
+msgid "Sorry, that email address has already been taken."
+msgstr "Tut und Leid, aber diese Email-Adresse wird bereits verwendet."
+
+#: mediagoblin/auth/views.py:160
msgid ""
"Your email address has been verified. You may now login, edit your profile, "
"and submit images!"
msgstr ""
-"Deine Email-Adresse wurde bestätigt. Du kannst dich nun anmelden, dein "
+"Deine Email-Adresse wurde bestätigt. Du kannst dich nun anmelden, Dein "
"Profil bearbeiten und Bilder hochladen!"
-#: mediagoblin/auth/views.py:158
+#: mediagoblin/auth/views.py:166
msgid "The verification key or user id is incorrect"
msgstr "Der Bestätigungssschlüssel oder die Nutzernummer ist falsch."
-#: mediagoblin/auth/views.py:179
+#: mediagoblin/auth/views.py:187
#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22
msgid "Resent your verification email."
-msgstr "Bestätigungs-Email noch Mal senden."
+msgstr "Bestätigungs-Email wurde erneut versandt."
-#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26
+#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27
msgid "Title"
msgstr "Titel"
@@ -90,104 +112,139 @@ msgstr "Biographie"
msgid "Website"
msgstr "Webseite"
-#: mediagoblin/edit/forms.py:43
-msgid "Improperly formed URL"
-msgstr "Adresse fehlerhaft"
-
-#: mediagoblin/edit/views.py:54
+#: mediagoblin/edit/views.py:66
msgid "An entry with that slug already exists for this user."
msgstr "Diesen Kurztitel hast du bereits vergeben."
-#: mediagoblin/edit/views.py:75
+#: mediagoblin/edit/views.py:95
msgid "You are editing another user's media. Proceed with caution."
msgstr "Du bearbeitest die Medien eines Anderen. Bitte sei vorsichtig."
-#: mediagoblin/edit/views.py:96
+#: mediagoblin/edit/views.py:166
msgid "You are editing a user's profile. Proceed with caution."
msgstr "Du bearbeitest das Profil eines Anderen. Bitte sei vorsichtig."
-#: mediagoblin/submit/forms.py:29
+#: mediagoblin/process_media/errors.py:44
+msgid "Invalid file given for media type."
+msgstr "Die Datei stimmt nicht mit dem gewählten Medientyp überein."
+
+#: mediagoblin/submit/forms.py:25
msgid "File"
msgstr "Datei"
-#: mediagoblin/submit/views.py:45
+#: mediagoblin/submit/views.py:47
msgid "You must provide a file."
msgstr "Du musst eine Datei angeben."
-#: mediagoblin/submit/views.py:48
+#: mediagoblin/submit/views.py:50
msgid "The file doesn't seem to be an image!"
msgstr "Diese Datei scheint kein Bild zu sein!"
-#: mediagoblin/submit/views.py:96
+#: mediagoblin/submit/views.py:122
msgid "Woohoo! Submitted!"
msgstr "Yeeeaaah! Geschafft!"
+#: mediagoblin/templates/mediagoblin/404.html:21
+msgid "Oops!"
+msgstr "Hoppla!"
+
+#: mediagoblin/templates/mediagoblin/404.html:24
+msgid "There doesn't seem to be a page at this address. Sorry!"
+msgstr "Tut uns Leid, aber unter der angegebenen Adresse gibt es keine Seite!"
+
+#: mediagoblin/templates/mediagoblin/404.html:26
+msgid ""
+"If you're sure the address is correct, maybe the page you're looking for has"
+" been moved or deleted."
+msgstr ""
+"Wenn du sicher bist, dass die Adresse stimmt, wurde die Seite eventuell "
+"verschoben oder gelöscht."
+
+#: mediagoblin/templates/mediagoblin/404.html:32
+msgid "Image of 404 goblin stressing out"
+msgstr "Bild eines angespannten Goblins"
+
#: mediagoblin/templates/mediagoblin/base.html:22
msgid "GNU MediaGoblin"
msgstr "GNU MediaGoblin"
-#: mediagoblin/templates/mediagoblin/base.html:45
-msgid "Mediagoblin logo"
-msgstr "Mediagoblin-Logo"
+#: mediagoblin/templates/mediagoblin/base.html:47
+msgid "MediaGoblin logo"
+msgstr "MediaGoblin-Logo"
-#: mediagoblin/templates/mediagoblin/base.html:51
+#: mediagoblin/templates/mediagoblin/base.html:52
msgid "Submit media"
msgstr "Medien hochladen"
-#: mediagoblin/templates/mediagoblin/base.html:62
+#: mediagoblin/templates/mediagoblin/base.html:63
msgid "verify your email!"
msgstr "Bitte bestätige deine Email-Adresse!"
-#: mediagoblin/templates/mediagoblin/base.html:72
-msgid "Login"
+#: mediagoblin/templates/mediagoblin/base.html:73
+#: mediagoblin/templates/mediagoblin/auth/login.html:26
+#: mediagoblin/templates/mediagoblin/auth/login.html:34
+msgid "Log in"
msgstr "Anmelden"
-#: mediagoblin/templates/mediagoblin/base.html:88
+#: mediagoblin/templates/mediagoblin/base.html:89
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
-"href=\"http://gnu.org/\">GNU project</a>"
+"href=\"http://gnu.org/\">GNU</a> project"
msgstr ""
-"Läüft mit <a href=\"http://mediagoblin.org\">MediaGoblin</a>, einem <a "
-"href=\"http://gnu.org/\">GNU-Projekt</a>"
-#: mediagoblin/templates/mediagoblin/root.html:21
-msgid "Welcome to GNU MediaGoblin!"
-msgstr "Willkommen bei GNU MediaGoblin!"
+#: mediagoblin/templates/mediagoblin/root.html:27
+msgid "Hi there, media lover! MediaGoblin is..."
+msgstr "Hallo Medien-Liebhaber! MediaGoblin ist …"
-#: mediagoblin/templates/mediagoblin/root.html:26
-msgid "Submit an item"
-msgstr "Eintrag hochladen"
+#: mediagoblin/templates/mediagoblin/root.html:29
+msgid "The perfect place for your media!"
+msgstr "Der perfekte Platz für deine Medien!"
+
+#: mediagoblin/templates/mediagoblin/root.html:30
+msgid ""
+"A place for people to collaborate and show off original and derived "
+"creations!"
+msgstr ""
+"Ein Platz für Zusammenarbeit und um Originale und abgeleitete Werke zu "
+"präsentieren!"
#: mediagoblin/templates/mediagoblin/root.html:31
-#, python-format
-msgid "If you have an account, you can <a href=\"%(login_url)s\">Login</a>."
+msgid ""
+"Free, as in freedom. (We’re a <a href=\"http://gnu.org\">GNU</a> project, "
+"after all.)"
msgstr ""
-"Falls du ein Konto hast, kannst du dich <a "
-"href=\"%(login_url)s\">anmelden</a>."
+"Frei, wie in Freiheit. (Wir sind schließlich ein <a "
+"href=\"http://gnu.org\">GNU</a>-Projekt.)"
-#: mediagoblin/templates/mediagoblin/root.html:37
-#, python-format
+#: mediagoblin/templates/mediagoblin/root.html:32
msgid ""
-"If you don't have an account, please <a "
-"href=\"%(register_url)s\">Register</a>."
+"Aiming to make the world a better place through decentralization and "
+"(eventually, coming soon!) federation!"
msgstr ""
-"Wenn du noch kein Konto hast, <a href=\"%(register_url)s\">registriere "
-"dich</a>."
+"Weltverbesserer durch Dezentralisierung und (hoffentlich bald!) unabhängige "
+"Kommunikation!"
-#: mediagoblin/templates/mediagoblin/auth/login.html:26
-msgid "Log in"
-msgstr "Anmelden"
+#: mediagoblin/templates/mediagoblin/root.html:33
+msgid ""
+"Built for extensibility. (Multiple media types coming soon to the software,"
+" including video support!)"
+msgstr ""
+"Gebaut für Erweiterungen. (Bald mit Unterstützung für verschiedene "
+"Medientypen inklusive Videos!)"
-#: mediagoblin/templates/mediagoblin/auth/login.html:29
-msgid "Login failed!"
-msgstr "Anmeldung fehlgeschlagen!"
+#: mediagoblin/templates/mediagoblin/root.html:34
+msgid ""
+"Powered by people like you. (<a "
+"href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this"
+" software!</a>)"
+msgstr ""
+"Betrieben von Leuten wie dir. (<a "
+"href=\"http://mediagoblin.org/pages/join.html\">Du kannst uns dabei helfen, "
+"die Software zu verbessern!</a>)"
-#: 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
-msgid "Submit"
-msgstr "Bestätigen"
+#: mediagoblin/templates/mediagoblin/auth/login.html:29
+msgid "Logging in failed!"
+msgstr "Anmeldevorgang fehlgeschlagen!"
#: mediagoblin/templates/mediagoblin/auth/login.html:42
msgid "Don't have an account yet?"
@@ -201,6 +258,10 @@ msgstr "Registriere dich!"
msgid "Create an account!"
msgstr "Neues Konto registrieren!"
+#: mediagoblin/templates/mediagoblin/auth/register.html:30
+msgid "Create"
+msgstr "Erstellen"
+
#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19
#, python-format
msgid ""
@@ -211,7 +272,7 @@ msgid ""
"\n"
"%(verification_url)s"
msgstr ""
-"Hi %(username)s,\n"
+"Hallo %(username)s,\n"
"\n"
"um dein Konto bei GNU MediaGoblin zu aktivieren, musst du folgende Adresse in einem Webbrowser öffnen:\n"
"\n"
@@ -227,91 +288,165 @@ msgid "Cancel"
msgstr "Abbrechen"
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
+#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44
msgid "Save changes"
msgstr "Änderungen speichern"
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29
#, python-format
msgid "Editing %(username)s's profile"
-msgstr "%(username)s’s Profil barbeiten"
+msgstr "%(username)ss Profil barbeiten"
-#: mediagoblin/templates/mediagoblin/listings/tag.html:29
+#: mediagoblin/templates/mediagoblin/listings/tag.html:31
msgid "Media tagged with:"
msgstr "Medien markiert mit:"
-#: mediagoblin/templates/mediagoblin/listings/tag.html:40
-#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:101
-msgid "atom feed"
-msgstr "Atom-Feed"
-
#: mediagoblin/templates/mediagoblin/submit/start.html:26
msgid "Submit yer media"
msgstr "Medien hochladen"
-#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
+#: mediagoblin/templates/mediagoblin/submit/start.html:29
+msgid "Submit"
+msgstr "Bestätigen"
+
+#: 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 Medien"
+msgstr "<a href=\"%(user_url)s\">%(username)s</a>s Medien"
-#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:30
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
msgid "Sorry, no such user found."
msgstr "Dieser Benutzer wurde leider nicht gefunden."
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:37
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:57
-msgid "Verification needed"
-msgstr "Überprüfung notwendig"
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
+#, python-format
+msgid "Really delete %(title)s?"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36
+msgid ""
+"If you choose yes, the media entry will be deleted "
+"<strong>permanently.</strong>"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22
+msgid "Media processing panel"
+msgstr "Medienverarbeitung"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:40
-msgid "Almost done! Your account still needs to be verified."
-msgstr "Fast geschafft! Dein Konto muss nur noch bestätigt werden."
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25
+msgid ""
+"You can track the state of media being processed for your gallery here."
+msgstr ""
+"Du kannst den Status der gerade in Bearbeitung befindlichen Medien hier "
+"betrachten."
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28
+msgid "Media in-processing"
+msgstr "Medien in Bearbeitung"
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46
+msgid "No media in-processing"
+msgstr "Keine Medien in Bearbeitung"
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50
+msgid "These uploads failed to process:"
+msgstr "Die folgenden Uploads sind fehlgeschlagen"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:45
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
+msgid "Email verification needed"
+msgstr "Email-Bestätigung benötigt"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
+msgid "Almost done! Your account still needs to be activated."
+msgstr "Fast fertig! Dein Konto muss noch freigeschaltet werden."
+
+#: 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 ""
-"Gleich solltest du eine Email bekommen, die dir sagt was du noch machen "
+"Gleich solltest du eine Email bekommen, die dir sagt, was du noch machen "
"musst."
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:49
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:51
msgid "In case it doesn't:"
msgstr "Wenn sie nicht ankommt:"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:52
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:54
msgid "Resend verification email"
-msgstr "Bestätigung noch Mal senden"
+msgstr "Bestätigung erneut senden"
-#: 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."
+" activated."
msgstr ""
-"Jemand hat schon ein Konto mit diesem Nutzernamen registriert, aber es muss "
-"noch bestätigt werden."
+"Jemand hat bereits ein Konto mit diesem Benutzernamen registriert, aber es "
+"muss noch aktiviert werden."
-#: 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 ""
-"Wenn dir dieses Konto gehört und die Bestätigungsmail weg ist, kannst du "
-"dich <a href=\"%(login_url)s\">anmelden</a> und sie erneut senden."
+"Wenn dir dieses Konto gehört und die Bestätigungsmail verloren gegangen ist,"
+" kannst du dich <a href=\"%(login_url)s\">anmelden</a> und sie erneut "
+"senden."
-#: 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)s’s Profil"
+msgstr "%(username)ss Profil"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:85
+msgid "Here's a spot to tell others about yourself."
+msgstr "Hier kannst du Anderen etwas über dich zu erzählen."
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:84
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:90
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:108
msgid "Edit profile"
msgstr "Profil bearbeiten"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:95
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
+msgid "This user hasn't filled in their profile (yet)."
+msgstr "Dieser Benutzer hat (noch) keine Daten in seinem Profil."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:122
#, python-format
msgid "View all of %(username)s's media"
msgstr "Alle Medien von %(username)s anschauen"
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:135
+msgid ""
+"This is where your media will appear, but you don't seem to have added "
+"anything yet."
+msgstr "Hier erscheinen deine Medien. Sobald du etwas hochgeladen hast."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:141
+msgid "Add media"
+msgstr "Medien hinzufügen"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:147
+msgid "There doesn't seem to be any media here yet..."
+msgstr "Scheinbar gibt es hier noch nichts …"
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21
+msgid "feed icon"
+msgstr "Feed-Symbol"
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23
+msgid "Atom feed"
+msgstr "Atom-Feed"
+
+#: mediagoblin/user_pages/forms.py:24
+msgid "Comment"
+msgstr "Kommentar"
+
+#: mediagoblin/user_pages/views.py:176
+msgid "You are about to delete another user's media. Proceed with caution."
+msgstr ""
+
diff --git a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po
index 9c46ebe8..f9022543 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: 2011-08-13 19:47-0500\n"
+"POT-Creation-Date: 2011-08-30 22:51-0500\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"
@@ -17,49 +17,65 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
-#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46
+#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54
msgid "Username"
msgstr ""
-#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50
+#: mediagoblin/auth/forms.py:28
+msgid "This is the name other users will identify you with."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58
msgid "Password"
msgstr ""
-#: mediagoblin/auth/forms.py:34
+#: mediagoblin/auth/forms.py:36
msgid "Passwords must match."
msgstr ""
-#: mediagoblin/auth/forms.py:36
+#: mediagoblin/auth/forms.py:37
+msgid "Try to use a strong password!"
+msgstr ""
+
+#: mediagoblin/auth/forms.py:40
msgid "Confirm password"
msgstr ""
-#: mediagoblin/auth/forms.py:39
+#: mediagoblin/auth/forms.py:42
+msgid "Type it again here to make sure there are no spelling mistakes."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:45
msgid "Email address"
msgstr ""
+#: mediagoblin/auth/forms.py:48
+msgid "Your email will never be published."
+msgstr ""
+
#: mediagoblin/auth/views.py:40
msgid "Sorry, registration is disabled on this instance."
msgstr ""
-#: mediagoblin/auth/views.py:57
+#: mediagoblin/auth/views.py:58
msgid "Sorry, a user with that name already exists."
msgstr ""
-#: mediagoblin/auth/views.py:61
+#: mediagoblin/auth/views.py:62
msgid "Sorry, that email address has already been taken."
msgstr ""
-#: mediagoblin/auth/views.py:159
+#: mediagoblin/auth/views.py:160
msgid ""
"Your email address has been verified. You may now login, edit your "
"profile, and submit images!"
msgstr ""
-#: mediagoblin/auth/views.py:165
+#: mediagoblin/auth/views.py:166
msgid "The verification key or user id is incorrect"
msgstr ""
-#: mediagoblin/auth/views.py:186
+#: mediagoblin/auth/views.py:187
#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22
msgid "Resent your verification email."
msgstr ""
@@ -88,97 +104,125 @@ msgstr ""
msgid "Website"
msgstr ""
-#: mediagoblin/edit/forms.py:43
-msgid "Improperly formed URL"
-msgstr ""
-
-#: mediagoblin/edit/views.py:54
+#: mediagoblin/edit/views.py:66
msgid "An entry with that slug already exists for this user."
msgstr ""
-#: mediagoblin/edit/views.py:75
+#: mediagoblin/edit/views.py:95
msgid "You are editing another user's media. Proceed with caution."
msgstr ""
-#: mediagoblin/edit/views.py:96
+#: mediagoblin/edit/views.py:166
msgid "You are editing a user's profile. Proceed with caution."
msgstr ""
+#: mediagoblin/process_media/errors.py:44
+msgid "Invalid file given for media type."
+msgstr ""
+
#: mediagoblin/submit/forms.py:25
msgid "File"
msgstr ""
-#: mediagoblin/submit/views.py:46
+#: mediagoblin/submit/views.py:47
msgid "You must provide a file."
msgstr ""
-#: mediagoblin/submit/views.py:49
+#: mediagoblin/submit/views.py:50
msgid "The file doesn't seem to be an image!"
msgstr ""
-#: mediagoblin/submit/views.py:94
+#: mediagoblin/submit/views.py:122
msgid "Woohoo! Submitted!"
msgstr ""
+#: mediagoblin/templates/mediagoblin/404.html:21
+msgid "Oops!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/404.html:24
+msgid "There doesn't seem to be a page at this address. Sorry!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/404.html:26
+msgid ""
+"If you're sure the address is correct, maybe the page you're looking for "
+"has been moved or deleted."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/404.html:32
+msgid "Image of 404 goblin stressing out"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/base.html:22
msgid "GNU MediaGoblin"
msgstr ""
-#: mediagoblin/templates/mediagoblin/base.html:45
-msgid "Mediagoblin logo"
+#: mediagoblin/templates/mediagoblin/base.html:47
+msgid "MediaGoblin logo"
msgstr ""
-#: mediagoblin/templates/mediagoblin/base.html:51
+#: mediagoblin/templates/mediagoblin/base.html:52
msgid "Submit media"
msgstr ""
-#: mediagoblin/templates/mediagoblin/base.html:62
+#: mediagoblin/templates/mediagoblin/base.html:63
msgid "verify your email!"
msgstr ""
-#: mediagoblin/templates/mediagoblin/base.html:72
-msgid "Login"
+#: mediagoblin/templates/mediagoblin/base.html:73
+#: mediagoblin/templates/mediagoblin/auth/login.html:26
+#: mediagoblin/templates/mediagoblin/auth/login.html:34
+msgid "Log in"
msgstr ""
-#: mediagoblin/templates/mediagoblin/base.html:88
+#: mediagoblin/templates/mediagoblin/base.html:89
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
-"href=\"http://gnu.org/\">GNU project</a>"
+"href=\"http://gnu.org/\">GNU</a> project"
msgstr ""
-#: mediagoblin/templates/mediagoblin/root.html:23
-msgid "Welcome to GNU MediaGoblin!"
+#: mediagoblin/templates/mediagoblin/root.html:27
+msgid "Hi there, media lover! MediaGoblin is..."
msgstr ""
-#: mediagoblin/templates/mediagoblin/root.html:28
-msgid "Submit an item"
+#: mediagoblin/templates/mediagoblin/root.html:29
+msgid "The perfect place for your media!"
msgstr ""
-#: mediagoblin/templates/mediagoblin/root.html:33
-#, python-format
-msgid "If you have an account, you can <a href=\"%(login_url)s\">Login</a>."
+#: mediagoblin/templates/mediagoblin/root.html:30
+msgid ""
+"A place for people to collaborate and show off original and derived "
+"creations!"
msgstr ""
-#: mediagoblin/templates/mediagoblin/root.html:39
-#, python-format
+#: mediagoblin/templates/mediagoblin/root.html:31
msgid ""
-"If you don't have an account, please <a "
-"href=\"%(register_url)s\">Register</a>."
+"Free, as in freedom. (We’re a <a href=\"http://gnu.org\">GNU</a> project,"
+" after all.)"
msgstr ""
-#: mediagoblin/templates/mediagoblin/auth/login.html:26
-msgid "Log in"
+#: mediagoblin/templates/mediagoblin/root.html:32
+msgid ""
+"Aiming to make the world a better place through decentralization and "
+"(eventually, coming soon!) federation!"
msgstr ""
-#: mediagoblin/templates/mediagoblin/auth/login.html:29
-msgid "Login failed!"
+#: mediagoblin/templates/mediagoblin/root.html:33
+msgid ""
+"Built for extensibility. (Multiple media types coming soon to the "
+"software, including video support!)"
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"
+#: mediagoblin/templates/mediagoblin/root.html:34
+msgid ""
+"Powered by people like you. (<a "
+"href=\"http://mediagoblin.org/pages/join.html\">You can help us improve "
+"this software!</a>)"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/auth/login.html:29
+msgid "Logging in failed!"
msgstr ""
#: mediagoblin/templates/mediagoblin/auth/login.html:42
@@ -193,6 +237,10 @@ msgstr ""
msgid "Create an account!"
msgstr ""
+#: mediagoblin/templates/mediagoblin/auth/register.html:30
+msgid "Create"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19
#, python-format
msgid ""
@@ -214,6 +262,8 @@ msgid "Cancel"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
+#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44
msgid "Save changes"
msgstr ""
@@ -226,33 +276,62 @@ msgstr ""
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 ""
-
#: mediagoblin/templates/mediagoblin/submit/start.html:26
msgid "Submit yer media"
msgstr ""
+#: mediagoblin/templates/mediagoblin/submit/start.html:29
+msgid "Submit"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32
#, python-format
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
msgstr ""
-#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:53
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52
#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
msgid "Sorry, no such user found."
msgstr ""
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
+#, python-format
+msgid "Really delete %(title)s?"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36
+msgid ""
+"If you choose yes, the media entry will be deleted "
+"<strong>permanently.</strong>"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22
+msgid "Media processing panel"
+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 ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28
+msgid "Media in-processing"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46
+msgid "No media in-processing"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50
+msgid "These uploads failed to process:"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
-msgid "Verification needed"
+msgid "Email verification needed"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
-msgid "Almost done! Your account still needs to be verified."
+msgid "Almost done! Your account still needs to be activated."
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:47
@@ -270,7 +349,7 @@ 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."
+" be activated."
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:68
@@ -285,16 +364,51 @@ msgstr ""
msgid "%(username)s's profile"
msgstr ""
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:86
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:85
+msgid "Here's a spot to tell others about yourself."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:90
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:108
msgid "Edit profile"
msgstr ""
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:98
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
+msgid "This user hasn't filled in their profile (yet)."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:122
#, python-format
msgid "View all of %(username)s's media"
msgstr ""
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:135
+msgid ""
+"This is where your media will appear, but you don't seem to have added "
+"anything yet."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:141
+msgid "Add media"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:147
+msgid "There doesn't seem to be any media here yet..."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21
+msgid "feed icon"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23
+msgid "Atom feed"
+msgstr ""
+
#: mediagoblin/user_pages/forms.py:24
msgid "Comment"
msgstr ""
+#: mediagoblin/user_pages/views.py:176
+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
index 114ab7c0..4fb13eef 100644
--- a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo
+++ 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
index ea19af01..c4a286e2 100644
--- a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po
@@ -2,15 +2,16 @@
# Copyright (C) 2011 ORGANIZATION
# This file is distributed under the same license as the PROJECT project.
#
+# <deletesoftware@yandex.ru>, 2011.
# <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"
+"POT-Creation-Date: 2011-08-30 22:51-0500\n"
+"PO-Revision-Date: 2011-08-31 03:51+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"
@@ -19,51 +20,67 @@ msgstr ""
"Language: eo\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46
+#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54
msgid "Username"
msgstr "Uzantnomo"
-#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50
+#: mediagoblin/auth/forms.py:28
+msgid "This is the name other users will identify you with."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58
msgid "Password"
-msgstr "Pasvorton"
+msgstr "Pasvorto"
-#: mediagoblin/auth/forms.py:34
+#: mediagoblin/auth/forms.py:36
msgid "Passwords must match."
-msgstr "Pasvortoj devas koincidi. "
+msgstr "Pasvortoj devas esti egalaj."
-#: mediagoblin/auth/forms.py:36
+#: mediagoblin/auth/forms.py:37
+msgid "Try to use a strong password!"
+msgstr ""
+
+#: mediagoblin/auth/forms.py:40
msgid "Confirm password"
msgstr "Retajpu pasvorton"
-#: mediagoblin/auth/forms.py:39
+#: mediagoblin/auth/forms.py:42
+msgid "Type it again here to make sure there are no spelling mistakes."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:45
msgid "Email address"
-msgstr "Retadreso"
+msgstr "Retpoŝtadreso"
+
+#: mediagoblin/auth/forms.py:48
+msgid "Your email will never be published."
+msgstr ""
#: mediagoblin/auth/views.py:40
msgid "Sorry, registration is disabled on this instance."
-msgstr "Bedaŭrinde, registrado estas malaktivita en tiu ĉi instanco."
+msgstr "Bedaŭrinde, registrado estas malaktivigita en tiu ĉi instalaĵo."
-#: mediagoblin/auth/views.py:57
+#: mediagoblin/auth/views.py:58
msgid "Sorry, a user with that name already exists."
msgstr "Bedaŭrinde, uzanto kun tiu nomo jam ekzistas."
-#: mediagoblin/auth/views.py:61
+#: mediagoblin/auth/views.py:62
msgid "Sorry, that email address has already been taken."
-msgstr ""
+msgstr "Tiu retpoŝtadreso jam estas uzata."
-#: mediagoblin/auth/views.py:159
+#: mediagoblin/auth/views.py:160
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 "
+"Via retpoŝtadreso estas konfirmita. Vi povas nun ensaluti, redakti vian "
"profilon, kaj alŝuti bildojn!"
-#: mediagoblin/auth/views.py:165
+#: mediagoblin/auth/views.py:166
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/auth/views.py:187
#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22
msgid "Resent your verification email."
msgstr "Resendi vian kontrol-mesaĝon."
@@ -74,11 +91,11 @@ msgstr "Titolo"
#: mediagoblin/edit/forms.py:29
msgid "Slug"
-msgstr ""
+msgstr "La distingiga adresparto"
#: mediagoblin/edit/forms.py:30
msgid "The slug can't be empty"
-msgstr ""
+msgstr "La distingiga adresparto ne povas esti malplena"
#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31
msgid "Tags"
@@ -92,101 +109,130 @@ msgstr "Bio"
msgid "Website"
msgstr "Retejo"
-#: mediagoblin/edit/forms.py:43
-msgid "Improperly formed URL"
-msgstr ""
-
-#: mediagoblin/edit/views.py:54
+#: mediagoblin/edit/views.py:66
msgid "An entry with that slug already exists for this user."
-msgstr ""
+msgstr "Ĉi tiu uzanto jam havas dosieron kun tiu distingiga adresparto."
-#: mediagoblin/edit/views.py:75
+#: mediagoblin/edit/views.py:95
msgid "You are editing another user's media. Proceed with caution."
-msgstr ""
+msgstr "Vi priredaktas dosieron de alia uzanto. Agu singardeme."
-#: mediagoblin/edit/views.py:96
+#: mediagoblin/edit/views.py:166
msgid "You are editing a user's profile. Proceed with caution."
+msgstr "Vi redaktas profilon de alia uzanto. Agu singardeme."
+
+#: mediagoblin/process_media/errors.py:44
+msgid "Invalid file given for media type."
msgstr ""
#: mediagoblin/submit/forms.py:25
msgid "File"
msgstr "Dosiero"
-#: mediagoblin/submit/views.py:46
+#: mediagoblin/submit/views.py:47
msgid "You must provide a file."
msgstr "Vi devas provizi dosieron."
-#: mediagoblin/submit/views.py:49
+#: mediagoblin/submit/views.py:50
msgid "The file doesn't seem to be an image!"
-msgstr ""
+msgstr "La dosiero ŝajnas ne esti bildo!"
-#: mediagoblin/submit/views.py:94
+#: mediagoblin/submit/views.py:122
msgid "Woohoo! Submitted!"
+msgstr "Hura! Alŝutitas!"
+
+#: mediagoblin/templates/mediagoblin/404.html:21
+msgid "Oops!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/404.html:24
+msgid "There doesn't seem to be a page at this address. Sorry!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/404.html:26
+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."
+
+#: mediagoblin/templates/mediagoblin/404.html:32
+msgid "Image of 404 goblin stressing out"
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:47
+msgid "MediaGoblin logo"
+msgstr "Emblemo de MediaGoblin"
-#: mediagoblin/templates/mediagoblin/base.html:51
+#: mediagoblin/templates/mediagoblin/base.html:52
msgid "Submit media"
msgstr "Alŝuti aŭd-vid-dosieron"
-#: mediagoblin/templates/mediagoblin/base.html:62
+#: mediagoblin/templates/mediagoblin/base.html:63
msgid "verify your email!"
-msgstr "kontrolu vian retpoŝton! "
+msgstr "konfirmu vian retpoŝtadreson! "
-#: mediagoblin/templates/mediagoblin/base.html:72
-msgid "Login"
+#: mediagoblin/templates/mediagoblin/base.html:73
+#: mediagoblin/templates/mediagoblin/auth/login.html:26
+#: mediagoblin/templates/mediagoblin/auth/login.html:34
+msgid "Log in"
msgstr "Ensaluti"
-#: mediagoblin/templates/mediagoblin/base.html:88
+#: mediagoblin/templates/mediagoblin/base.html:89
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
-"href=\"http://gnu.org/\">GNU project</a>"
+"href=\"http://gnu.org/\">GNU</a> project"
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:27
+msgid "Hi there, media lover! MediaGoblin is..."
+msgstr ""
-#: mediagoblin/templates/mediagoblin/root.html:28
-msgid "Submit an item"
-msgstr "Alŝuti dosieron"
+#: mediagoblin/templates/mediagoblin/root.html:29
+msgid "The perfect place for your media!"
+msgstr "La perfekta loko por viaj aŭd-vid-dosieroj!"
-#: 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:30
+msgid ""
+"A place for people to collaborate and show off original and derived "
+"creations!"
+msgstr ""
-#: mediagoblin/templates/mediagoblin/root.html:39
-#, python-format
+#: mediagoblin/templates/mediagoblin/root.html:31
msgid ""
-"If you don't have an account, please <a "
-"href=\"%(register_url)s\">Register</a>."
+"Free, as in freedom. (We’re a <a href=\"http://gnu.org\">GNU</a> project, "
+"after all.)"
msgstr ""
-"Se vi ne havas konton, bonvolu <a href=\"%(register_url)s\">Registriĝi</a>."
+"Libera verko. (Ni ja estas projekto de &lt;a "
+"href=\"http://gnu.org\"&gt;GNU&lt;/a&gt;.)"
-#: mediagoblin/templates/mediagoblin/auth/login.html:26
-msgid "Log in"
-msgstr "Ensaluti"
+#: mediagoblin/templates/mediagoblin/root.html:32
+msgid ""
+"Aiming to make the world a better place through decentralization and "
+"(eventually, coming soon!) federation!"
+msgstr ""
-#: mediagoblin/templates/mediagoblin/auth/login.html:29
-msgid "Login failed!"
-msgstr "Ensalutado malsukcesis!"
+#: mediagoblin/templates/mediagoblin/root.html:33
+msgid ""
+"Built for extensibility. (Multiple media types coming soon to the software,"
+" including video support!)"
+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 "Alŝuti"
+#: mediagoblin/templates/mediagoblin/root.html:34
+msgid ""
+"Powered by people like you. (<a "
+"href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this"
+" software!</a>)"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/auth/login.html:29
+msgid "Logging in failed!"
+msgstr "Ensaluto malsukcesis!"
#: mediagoblin/templates/mediagoblin/auth/login.html:42
msgid "Don't have an account yet?"
@@ -194,12 +240,16 @@ msgstr "Ĉu ankoraŭ sen konto?"
#: mediagoblin/templates/mediagoblin/auth/login.html:45
msgid "Create one here!"
-msgstr "Kreu unu ĉi tie!"
+msgstr "Kreu ĝin ĉi tie!"
#: mediagoblin/templates/mediagoblin/auth/register.html:27
msgid "Create an account!"
msgstr "Kreu konton!"
+#: mediagoblin/templates/mediagoblin/auth/register.html:30
+msgid "Create"
+msgstr "Krei"
+
#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19
#, python-format
msgid ""
@@ -219,59 +269,91 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/edit/edit.html:29
#, python-format
msgid "Editing %(media_title)s"
-msgstr "Editing %(media_title)s"
+msgstr "Priredaktado de %(media_title)s"
#: mediagoblin/templates/mediagoblin/edit/edit.html:36
msgid "Cancel"
msgstr "Nuligi"
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
+#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44
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'"
+msgstr "Redaktado de l’profilo 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"
+msgstr "Dosieroj markitaj per:"
#: mediagoblin/templates/mediagoblin/submit/start.html:26
msgid "Submit yer media"
msgstr "Alŝutu vian aŭd-vid-dosieron"
+#: mediagoblin/templates/mediagoblin/submit/start.html:29
+msgid "Submit"
+msgstr "Alŝuti"
+
#: 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"
+msgstr "Dosieroj de <a href=\"%(user_url)s\">%(username)s</a>"
-#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:53
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52
#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
msgid "Sorry, no such user found."
msgstr "Uzanto ne trovita."
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
+#, python-format
+msgid "Really delete %(title)s?"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36
+msgid ""
+"If you choose yes, the media entry will be deleted "
+"<strong>permanently.</strong>"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22
+msgid "Media processing panel"
+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 ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28
+msgid "Media in-processing"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46
+msgid "No media in-processing"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50
+msgid "These uploads failed to process:"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
-msgid "Verification needed"
-msgstr "Kontrolon bezonata"
+msgid "Email verification needed"
+msgstr "Necesas konfirmo de retpoŝtadreso"
#: 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."
+msgid "Almost done! Your account still needs to be activated."
+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 ""
-"Retmesaĝo alvenos post kelkaj momentoj kun instrukcioj pri kiel tion fari."
+"Post kelkaj momentoj devas veni retletero kun instrukcio pri kiel tion fari."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:51
msgid "In case it doesn't:"
@@ -279,15 +361,13 @@ msgstr "Se tio ne okazas:"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:54
msgid "Resend verification email"
-msgstr "Resendu kontrolmesaĝon"
+msgstr "Resendi 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."
+" activated."
msgstr ""
-"Iu registris konton kun tiu ĉi uzantonomo, sed ĝi devas ankoraŭ esti "
-"kontrolita."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:68
#, python-format
@@ -301,19 +381,54 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:78
#, python-format
msgid "%(username)s's profile"
-msgstr "%(username)s'-a profilo"
+msgstr "Profilo de %(username)s"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:85
+msgid "Here's a spot to tell others about yourself."
+msgstr "Jen estas spaceto por rakonti pri vi al aliaj."
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:86
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:90
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:108
msgid "Edit profile"
-msgstr "Redakti profilo"
+msgstr "Redakti profilon"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:98
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
+msgid "This user hasn't filled in their profile (yet)."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:122
#, python-format
msgid "View all of %(username)s's media"
-msgstr "Rigardu ĉiuj aŭd-vid-dosierojn de %(username)s'"
+msgstr "Rigardi ĉiujn dosierojn de %(username)s'"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:135
+msgid ""
+"This is where your media will appear, but you don't seem to have added "
+"anything yet."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:141
+msgid "Add media"
+msgstr "Aldoni dosieron"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:147
+msgid "There doesn't seem to be any media here yet..."
+msgstr "Ĉi tie ŝajne estas ankoraŭ neniuj dosieroj…"
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21
+msgid "feed icon"
+msgstr "flusimbolo"
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23
+msgid "Atom feed"
+msgstr ""
#: mediagoblin/user_pages/forms.py:24
msgid "Comment"
msgstr "Komento"
+#: mediagoblin/user_pages/views.py:176
+msgid "You are about to delete another user's media. Proceed with caution."
+msgstr ""
+
diff --git a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo
index dfd3a1bc..58531d96 100644
--- a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo
+++ b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo
Binary files differ
diff --git a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po
index 0a12586c..cfe19a1e 100644
--- a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po
@@ -2,14 +2,16 @@
# Copyright (C) 2011 ORGANIZATION
# This file is distributed under the same license as the PROJECT project.
#
+# <ekenbrand@hotmail.com>, 2011.
+# <juangsub@gmail.com>, 2011.
# <jacobo@gnu.org>, 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 20:30+0000\n"
-"Last-Translator: nvjacobo <jacobo@gnu.org>\n"
+"POT-Creation-Date: 2011-08-30 22:51-0500\n"
+"PO-Revision-Date: 2011-08-31 03:51+0000\n"
+"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/mediagoblin/team/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -18,53 +20,73 @@ msgstr ""
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46
+#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54
msgid "Username"
msgstr "Nombre de Usuario"
-#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50
+#: mediagoblin/auth/forms.py:28
+msgid "This is the name other users will identify you with."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58
msgid "Password"
msgstr "Contraseña"
-#: mediagoblin/auth/forms.py:34
+#: mediagoblin/auth/forms.py:36
msgid "Passwords must match."
msgstr "Las contraseñas deben coincidir."
-#: mediagoblin/auth/forms.py:36
+#: mediagoblin/auth/forms.py:37
+msgid "Try to use a strong password!"
+msgstr ""
+
+#: mediagoblin/auth/forms.py:40
msgid "Confirm password"
msgstr "Confirme su contraseña"
-#: mediagoblin/auth/forms.py:39
+#: mediagoblin/auth/forms.py:42
+msgid "Type it again here to make sure there are no spelling mistakes."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:45
msgid "Email address"
msgstr "Dirección de correo electrónico"
+#: mediagoblin/auth/forms.py:48
+msgid "Your email will never be published."
+msgstr ""
+
#: mediagoblin/auth/views.py:40
msgid "Sorry, registration is disabled on this instance."
-msgstr "Lo sentimos, el registro está deshabilitado en este momento."
+msgstr "Lo sentimos, la registración está deshabilitado en este momento."
-#: mediagoblin/auth/views.py:55
+#: mediagoblin/auth/views.py:58
msgid "Sorry, a user with that name already exists."
-msgstr "Lo sentimos, un usuario con ese nombre ya existe."
+msgstr "Lo sentimos, ya existe un usuario con ese nombre."
-#: mediagoblin/auth/views.py:152
+#: mediagoblin/auth/views.py:62
+msgid "Sorry, that email address has already been taken."
+msgstr "Lo sentimos, su dirección de correo electrónico ya ha sido tomada."
+
+#: mediagoblin/auth/views.py:160
msgid ""
"Your email address has been verified. You may now login, edit your profile, "
"and submit images!"
msgstr ""
-"Su dirección de correo electrónico ha sido verificada. Ahora puede ingresar,"
-" editar su perfil, y enviar las imágenes!"
+"Su dirección de correo electrónico ha sido verificada. ¡Ahora puede "
+"ingresar, editar su perfil, y enviar imágenes!"
-#: mediagoblin/auth/views.py:158
+#: mediagoblin/auth/views.py:166
msgid "The verification key or user id is incorrect"
msgstr ""
-"La clave de la verificación o la identificación del usuario es incorrecta"
+"La clave de verificación o la identificación de usuario son incorrectas"
-#: mediagoblin/auth/views.py:179
+#: mediagoblin/auth/views.py:187
#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22
msgid "Resent your verification email."
-msgstr "Reenvíe su correo electrónico de verificación"
+msgstr "Reenvíe su correo electrónico de verificación."
-#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26
+#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27
msgid "Title"
msgstr "Título"
@@ -74,7 +96,7 @@ msgstr "Ficha"
#: mediagoblin/edit/forms.py:30
msgid "The slug can't be empty"
-msgstr "La ficha no puede estar vacia"
+msgstr "La ficha no puede estar vacía"
#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31
msgid "Tags"
@@ -88,105 +110,139 @@ msgstr "Bio"
msgid "Website"
msgstr "Sitio web"
-#: mediagoblin/edit/forms.py:43
-msgid "Improperly formed URL"
-msgstr "URL de forma incorrecta"
-
-#: mediagoblin/edit/views.py:54
+#: mediagoblin/edit/views.py:66
msgid "An entry with that slug already exists for this user."
msgstr "Una entrada con esa ficha ya existe para este usuario."
-#: mediagoblin/edit/views.py:75
+#: mediagoblin/edit/views.py:95
msgid "You are editing another user's media. Proceed with caution."
msgstr ""
"Usted está editando el contenido de otro usuario. Proceder con precaución."
-#: mediagoblin/edit/views.py:96
+#: mediagoblin/edit/views.py:166
msgid "You are editing a user's profile. Proceed with caution."
-msgstr "Usted está editando un perfil de usuario. Proceder con precaucións."
+msgstr "Usted está editando un perfil de usuario. Proceder con precaución."
+
+#: mediagoblin/process_media/errors.py:44
+msgid "Invalid file given for media type."
+msgstr "Archivo inálido para el formato seleccionado."
-#: mediagoblin/submit/forms.py:29
+#: mediagoblin/submit/forms.py:25
msgid "File"
msgstr "Archivo"
-#: mediagoblin/submit/views.py:45
+#: mediagoblin/submit/views.py:47
msgid "You must provide a file."
msgstr "Usted debe proporcionar un archivo."
-#: mediagoblin/submit/views.py:48
+#: mediagoblin/submit/views.py:50
msgid "The file doesn't seem to be an image!"
-msgstr "El archivo no parece ser una imagen!"
+msgstr "¡El archivo no parece ser una imagen!"
-#: mediagoblin/submit/views.py:96
+#: mediagoblin/submit/views.py:122
msgid "Woohoo! Submitted!"
-msgstr "Woohoo! Enviado!"
+msgstr "¡Woohoo! ¡Enviado!"
+
+#: mediagoblin/templates/mediagoblin/404.html:21
+msgid "Oops!"
+msgstr "Ups!"
+
+#: mediagoblin/templates/mediagoblin/404.html:24
+msgid "There doesn't seem to be a page at this address. Sorry!"
+msgstr "Parece no haber una página en esta dirección. ¡Lo siento!"
+
+#: mediagoblin/templates/mediagoblin/404.html:26
+msgid ""
+"If you're sure the address is correct, maybe the page you're looking for has"
+" been moved or deleted."
+msgstr ""
+"Si estas seguro que la dirección es correcta, puede ser que la pagina halla "
+"sido movida o borrada."
+
+#: mediagoblin/templates/mediagoblin/404.html:32
+msgid "Image of 404 goblin stressing out"
+msgstr "404 el goblin esta estresado"
#: mediagoblin/templates/mediagoblin/base.html:22
msgid "GNU MediaGoblin"
msgstr "GNU MediaGoblin"
-#: mediagoblin/templates/mediagoblin/base.html:45
-msgid "Mediagoblin logo"
-msgstr "Mediagoblin logo"
+#: mediagoblin/templates/mediagoblin/base.html:47
+msgid "MediaGoblin logo"
+msgstr "Logo de MediaGoblin"
-#: mediagoblin/templates/mediagoblin/base.html:51
+#: mediagoblin/templates/mediagoblin/base.html:52
msgid "Submit media"
msgstr "Enviar contenido"
-#: mediagoblin/templates/mediagoblin/base.html:62
+#: mediagoblin/templates/mediagoblin/base.html:63
msgid "verify your email!"
msgstr "Verifique su correo electrónico"
-#: mediagoblin/templates/mediagoblin/base.html:72
-msgid "Login"
+#: mediagoblin/templates/mediagoblin/base.html:73
+#: mediagoblin/templates/mediagoblin/auth/login.html:26
+#: mediagoblin/templates/mediagoblin/auth/login.html:34
+msgid "Log in"
msgstr "Conectarse"
-#: mediagoblin/templates/mediagoblin/base.html:88
+#: mediagoblin/templates/mediagoblin/base.html:89
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
-"href=\"http://gnu.org/\">GNU project</a>"
+"href=\"http://gnu.org/\">GNU</a> project"
msgstr ""
-"Potenciado por <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
-"href=\"http://gnu.org/\">GNU project</a>"
-#: mediagoblin/templates/mediagoblin/root.html:21
-msgid "Welcome to GNU MediaGoblin!"
-msgstr "¡Bienvenido a GNU MediaGoblin!"
+#: mediagoblin/templates/mediagoblin/root.html:27
+msgid "Hi there, media lover! MediaGoblin is..."
+msgstr "Hola, amante de los medios de comunicación! MediaGoblin es ..."
-#: mediagoblin/templates/mediagoblin/root.html:26
-msgid "Submit an item"
-msgstr "Enviar un item"
+#: mediagoblin/templates/mediagoblin/root.html:29
+msgid "The perfect place for your media!"
+msgstr "El lugar ideal para tus cosas!"
+
+#: mediagoblin/templates/mediagoblin/root.html:30
+msgid ""
+"A place for people to collaborate and show off original and derived "
+"creations!"
+msgstr ""
+"Un lugar para colaborar y exhibir tus creaciones orignales y derivadas"
#: mediagoblin/templates/mediagoblin/root.html:31
-#, python-format
-msgid "If you have an account, you can <a href=\"%(login_url)s\">Login</a>."
+msgid ""
+"Free, as in freedom. (We’re a <a href=\"http://gnu.org\">GNU</a> project, "
+"after all.)"
msgstr ""
-"Si tiene una cuenta, puede iniciar sesión <a "
-"href=\"%(login_url)s\">Login</a>."
+"Libre, como en la libertad. (Somos parte del proyecto <a "
+"href=\"http://gnu.org\">GNU</a> después de todo.)"
-#: mediagoblin/templates/mediagoblin/root.html:37
-#, python-format
+#: mediagoblin/templates/mediagoblin/root.html:32
msgid ""
-"If you don't have an account, please <a "
-"href=\"%(register_url)s\">Register</a>."
+"Aiming to make the world a better place through decentralization and "
+"(eventually, coming soon!) federation!"
msgstr ""
-"Si no tienes una cuenta, por favor, <a "
-"href=\"%(register_url)s\">Regístrese</a> ."
+"Queriendo hacer del mundo un mejor lugar a través de la descentralización y "
+"(eventualmente!) la federalización!"
-#: mediagoblin/templates/mediagoblin/auth/login.html:26
-msgid "Log in"
-msgstr "Conectarse"
+#: mediagoblin/templates/mediagoblin/root.html:33
+msgid ""
+"Built for extensibility. (Multiple media types coming soon to the software,"
+" including video support!)"
+msgstr ""
+"Pensado para la ser extensible. (Prontamente soporte para multiples "
+"formatos, incluyendo video!)"
-#: mediagoblin/templates/mediagoblin/auth/login.html:29
-msgid "Login failed!"
-msgstr "El inicio de sesión fallo"
+#: mediagoblin/templates/mediagoblin/root.html:34
+msgid ""
+"Powered by people like you. (<a "
+"href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this"
+" software!</a>)"
+msgstr ""
+"Impulsado por gente como vos. (<a "
+"href=\"http://mediagoblin.org/pages/join.html\"> Vos podés ayudarnos a "
+"mejorar este programa</a>)"
-#: 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
-msgid "Submit"
-msgstr "Enviar"
+#: mediagoblin/templates/mediagoblin/auth/login.html:29
+msgid "Logging in failed!"
+msgstr "Fallo el inicio de sesión!"
#: mediagoblin/templates/mediagoblin/auth/login.html:42
msgid "Don't have an account yet?"
@@ -194,11 +250,15 @@ msgstr "¿No tienes una cuenta?"
#: mediagoblin/templates/mediagoblin/auth/login.html:45
msgid "Create one here!"
-msgstr "Crea una aquí"
+msgstr "¡Crea una aquí!"
#: mediagoblin/templates/mediagoblin/auth/register.html:27
msgid "Create an account!"
-msgstr "Crea una cuenta!"
+msgstr "¡Crea una cuenta!"
+
+#: mediagoblin/templates/mediagoblin/auth/register.html:30
+msgid "Create"
+msgstr "Crear"
#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19
#, python-format
@@ -210,7 +270,7 @@ msgid ""
"\n"
"%(verification_url)s"
msgstr ""
-"Hola %(username)s , para activar su cuenta MediaGoblin GNU, abra ls "
+"Hola %(username)s , para activar su cuenta GNU MediaGoblin, abra la "
"siguiente URL en su navegador: %(verification_url)s "
#: mediagoblin/templates/mediagoblin/edit/edit.html:29
@@ -223,90 +283,166 @@ msgid "Cancel"
msgstr "Cancelar"
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
+#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44
msgid "Save changes"
msgstr "Salvar cambios"
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29
#, python-format
msgid "Editing %(username)s's profile"
-msgstr "Edición %(username)s de perfil"
+msgstr "Editando el perfil de %(username)s"
-#: mediagoblin/templates/mediagoblin/listings/tag.html:29
+#: mediagoblin/templates/mediagoblin/listings/tag.html:31
msgid "Media tagged with:"
-msgstr "El contenido con la etiqueta:"
-
-#: mediagoblin/templates/mediagoblin/listings/tag.html:40
-#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:101
-msgid "atom feed"
-msgstr "feed Atom"
+msgstr "Contenido etiquetado con:"
#: mediagoblin/templates/mediagoblin/submit/start.html:26
msgid "Submit yer media"
msgstr "Envíe su contenido"
-#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
+#: mediagoblin/templates/mediagoblin/submit/start.html:29
+msgid "Submit"
+msgstr "Enviar"
+
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32
#, python-format
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
msgstr "Contenido de <a href=\"%(user_url)s\">%(username)s</a>'s"
-#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:30
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
msgid "Sorry, no such user found."
-msgstr "Lo sentimos, no se ha encontrado el usuario."
+msgstr "Lo sentimos, no se ha encontrado ese usuario."
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:37
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:57
-msgid "Verification needed"
-msgstr "Verificación necesaria"
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
+#, python-format
+msgid "Really delete %(title)s?"
+msgstr ""
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:40
-msgid "Almost done! Your account still needs to be verified."
-msgstr "Ya está casi hecho! Su cuenta tiene que ser verificada."
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36
+msgid ""
+"If you choose yes, the media entry will be deleted "
+"<strong>permanently.</strong>"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22
+msgid "Media processing panel"
+msgstr "Panel de procesamiento de contenido"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:45
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25
+msgid ""
+"You can track the state of media being processed for your gallery here."
+msgstr ""
+"Puedes hacer un seguimiento del estado de tu contenido siendo procesado "
+"aquí."
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28
+msgid "Media in-processing"
+msgstr "Contenido siendo procesado"
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46
+msgid "No media in-processing"
+msgstr "No hay contenido siendo procesado."
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50
+msgid "These uploads failed to process:"
+msgstr "Estos archivos no pudieron ser procesados:"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
+msgid "Email verification needed"
+msgstr "Correo electrónico de verificación necesario"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
+msgid "Almost done! Your account still needs to be activated."
+msgstr "Casi terminas! Solo falta activar la cuenta."
+
+#: 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 debe llegar en unos momentos con las instrucciones para hacerlo."
+"Un e-mail debería llegar en unos momentos con las instrucciones para "
+"hacerlo."
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:49
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:51
msgid "In case it doesn't:"
msgstr "En caso de que no:"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:52
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:54
msgid "Resend verification email"
msgstr "Reenviar correo electrónico de verificación"
-#: 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."
+" activated."
msgstr ""
-"Alguien ha registrado una cuenta con este nombre de usuario, pero todavía "
-"tiene que ser verificado."
+"Alguien ya registró una cuenta con ese nombre de usuario, pero todavía no "
+"fué activada."
-#: 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 usted es esa persona, pero usted ha perdido su correo electrónico de "
-"verificación, usted puede reenviarlo <a href=\"%(login_url)s\">acceder</a>."
+"Si usted es esa persona, pero ha perdido su correo electrónico de "
+"verificación, puede <a href=\"%(login_url)s\">acceder</a> y reenviarlo."
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:76
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:78
#, python-format
msgid "%(username)s's profile"
msgstr "Perfil de %(username)s's"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:84
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:85
+msgid "Here's a spot to tell others about yourself."
+msgstr "Aquí hay un lugar para que le cuentes a los demás sobre tí"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:90
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:108
msgid "Edit profile"
msgstr "Editar perfil"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:95
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
+msgid "This user hasn't filled in their profile (yet)."
+msgstr "Este usuario (todavia) no ha completado su perfil."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:122
#, python-format
msgid "View all of %(username)s's media"
msgstr "Ver todo el contenido de %(username)s's "
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:135
+msgid ""
+"This is where your media will appear, but you don't seem to have added "
+"anything yet."
+msgstr ""
+"Aquí es donde tú contenido estará, pero parece que no haz agregado contenido"
+" todavia."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:141
+msgid "Add media"
+msgstr "Añadir contenido"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:147
+msgid "There doesn't seem to be any media here yet..."
+msgstr "Parece que no hay ningún contenido aquí todavia..."
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21
+msgid "feed icon"
+msgstr "ícono feed"
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23
+msgid "Atom feed"
+msgstr "Atom feed"
+
+#: mediagoblin/user_pages/forms.py:24
+msgid "Comment"
+msgstr "Comentario"
+
+#: mediagoblin/user_pages/views.py:176
+msgid "You are about to delete another user's media. Proceed with caution."
+msgstr ""
+
diff --git a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo
index f8854734..fe006cdc 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 5afe7091..a3b0eb53 100644
--- a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po
@@ -2,6 +2,7 @@
# Copyright (C) 2011 ORGANIZATION
# This file is distributed under the same license as the PROJECT project.
#
+# <maxineb@members.fsf.org>, 2011.
# <marktraceur@gmail.com>, 2011.
# Valentin Villenave <valentin@villenave.net>, 2011.
# <transifex@wandborg.se>, 2011.
@@ -9,9 +10,9 @@ 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-16 13:22+0000\n"
-"Last-Translator: joar <transifex@wandborg.se>\n"
+"POT-Creation-Date: 2011-08-30 22:51-0500\n"
+"PO-Revision-Date: 2011-08-31 03:51+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"
@@ -20,39 +21,55 @@ msgstr ""
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
-#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46
+#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54
msgid "Username"
msgstr "Nom d'utilisateur"
-#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50
+#: mediagoblin/auth/forms.py:28
+msgid "This is the name other users will identify you with."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58
msgid "Password"
msgstr "Mot de passe"
-#: mediagoblin/auth/forms.py:34
+#: mediagoblin/auth/forms.py:36
msgid "Passwords must match."
msgstr "Les mots de passe doivent correspondre."
-#: mediagoblin/auth/forms.py:36
+#: mediagoblin/auth/forms.py:37
+msgid "Try to use a strong password!"
+msgstr ""
+
+#: mediagoblin/auth/forms.py:40
msgid "Confirm password"
msgstr "Confirmer le mot de passe"
-#: mediagoblin/auth/forms.py:39
+#: mediagoblin/auth/forms.py:42
+msgid "Type it again here to make sure there are no spelling mistakes."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:45
msgid "Email address"
msgstr "Adresse e-mail"
+#: mediagoblin/auth/forms.py:48
+msgid "Your email will never be published."
+msgstr ""
+
#: mediagoblin/auth/views.py:40
msgid "Sorry, registration is disabled on this instance."
msgstr "L'inscription n'est pas activée sur ce serveur, désolé."
-#: mediagoblin/auth/views.py:57
+#: mediagoblin/auth/views.py:58
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
+#: mediagoblin/auth/views.py:62
msgid "Sorry, that email address has already been taken."
-msgstr ""
+msgstr "Désolé, cette adresse courriel a déjà été prise."
-#: mediagoblin/auth/views.py:159
+#: mediagoblin/auth/views.py:160
msgid ""
"Your email address has been verified. You may now login, edit your profile, "
"and submit images!"
@@ -60,11 +77,11 @@ 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:165
+#: mediagoblin/auth/views.py:166
msgid "The verification key or user id is incorrect"
msgstr "La clé de vérification ou le nom d'utilisateur est incorrect."
-#: mediagoblin/auth/views.py:186
+#: mediagoblin/auth/views.py:187
#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22
msgid "Resent your verification email."
msgstr "E-mail de vérification renvoyé."
@@ -93,108 +110,130 @@ msgstr "Bio"
msgid "Website"
msgstr "Site web"
-#: mediagoblin/edit/forms.py:43
-msgid "Improperly formed URL"
-msgstr "Adresse web mal formée"
-
-#: mediagoblin/edit/views.py:54
+#: mediagoblin/edit/views.py:66
msgid "An entry with that slug already exists for this user."
msgstr "Une entrée existe déjà pour cet utilisateur avec la même légende."
-#: mediagoblin/edit/views.py:75
+#: mediagoblin/edit/views.py:95
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
+#: mediagoblin/edit/views.py:166
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/process_media/errors.py:44
+msgid "Invalid file given for media type."
+msgstr ""
+
#: mediagoblin/submit/forms.py:25
msgid "File"
msgstr "Fichier"
-#: mediagoblin/submit/views.py:46
+#: mediagoblin/submit/views.py:47
msgid "You must provide a file."
msgstr "Il vous faut fournir un fichier."
-#: mediagoblin/submit/views.py:49
+#: mediagoblin/submit/views.py:50
msgid "The file doesn't seem to be an image!"
msgstr "Ce fichier ne semble pas être une image !"
-#: mediagoblin/submit/views.py:94
+#: mediagoblin/submit/views.py:122
msgid "Woohoo! Submitted!"
msgstr "Youhou, c'est envoyé !"
+#: mediagoblin/templates/mediagoblin/404.html:21
+msgid "Oops!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/404.html:24
+msgid "There doesn't seem to be a page at this address. Sorry!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/404.html:26
+msgid ""
+"If you're sure the address is correct, maybe the page you're looking for has"
+" been moved or deleted."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/404.html:32
+msgid "Image of 404 goblin stressing out"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/base.html:22
msgid "GNU MediaGoblin"
msgstr "GNU MediaGoblin"
-#: mediagoblin/templates/mediagoblin/base.html:45
-msgid "Mediagoblin logo"
-msgstr "logo de MediaGoblin"
+#: mediagoblin/templates/mediagoblin/base.html:47
+msgid "MediaGoblin logo"
+msgstr ""
-#: mediagoblin/templates/mediagoblin/base.html:51
+#: mediagoblin/templates/mediagoblin/base.html:52
msgid "Submit media"
msgstr "Soumettre un média"
-#: mediagoblin/templates/mediagoblin/base.html:62
+#: mediagoblin/templates/mediagoblin/base.html:63
msgid "verify your email!"
-msgstr "vérifier son adresse e-mail"
+msgstr "vérifiez votre adresse e-mail !"
-#: mediagoblin/templates/mediagoblin/base.html:72
-msgid "Login"
-msgstr "Identification"
+#: mediagoblin/templates/mediagoblin/base.html:73
+#: mediagoblin/templates/mediagoblin/auth/login.html:26
+#: mediagoblin/templates/mediagoblin/auth/login.html:34
+msgid "Log in"
+msgstr "S'identifier"
-#: mediagoblin/templates/mediagoblin/base.html:88
+#: mediagoblin/templates/mediagoblin/base.html:89
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
-"href=\"http://gnu.org/\">GNU project</a>"
+"href=\"http://gnu.org/\">GNU</a> project"
msgstr ""
-"Propulsé par <a href=\"http://mediagoblin.org\">MediaGoblin</a>, un projet "
-"de <a href=\"http://gnu.org/\">GNU</a>"
-#: mediagoblin/templates/mediagoblin/root.html:23
-msgid "Welcome to GNU MediaGoblin!"
-msgstr "Bienvenue sur GNU MediaGoblin !"
+#: mediagoblin/templates/mediagoblin/root.html:27
+msgid "Hi there, media lover! MediaGoblin is..."
+msgstr ""
-#: mediagoblin/templates/mediagoblin/root.html:28
-msgid "Submit an item"
-msgstr "Soumettre un fichier"
+#: mediagoblin/templates/mediagoblin/root.html:29
+msgid "The perfect place for your media!"
+msgstr ""
-#: mediagoblin/templates/mediagoblin/root.html:33
-#, python-format
-msgid "If you have an account, you can <a href=\"%(login_url)s\">Login</a>."
+#: mediagoblin/templates/mediagoblin/root.html:30
+msgid ""
+"A place for people to collaborate and show off original and derived "
+"creations!"
msgstr ""
-"Si vous avez un compte, vous pouvez vous <a "
-"href=\"%(login_url)s\">identifier</a>."
-#: mediagoblin/templates/mediagoblin/root.html:39
-#, python-format
+#: mediagoblin/templates/mediagoblin/root.html:31
msgid ""
-"If you don't have an account, please <a "
-"href=\"%(register_url)s\">Register</a>."
+"Free, as in freedom. (We’re a <a href=\"http://gnu.org\">GNU</a> project, "
+"after all.)"
msgstr ""
-"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 "S'identifier"
+#: mediagoblin/templates/mediagoblin/root.html:32
+msgid ""
+"Aiming to make the world a better place through decentralization and "
+"(eventually, coming soon!) federation!"
+msgstr ""
-#: mediagoblin/templates/mediagoblin/auth/login.html:29
-msgid "Login failed!"
-msgstr "L'identification a échoué !"
+#: mediagoblin/templates/mediagoblin/root.html:33
+msgid ""
+"Built for extensibility. (Multiple media types coming soon to the software,"
+" including video support!)"
+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 "Soumettre"
+#: mediagoblin/templates/mediagoblin/root.html:34
+msgid ""
+"Powered by people like you. (<a "
+"href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this"
+" software!</a>)"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/auth/login.html:29
+msgid "Logging in failed!"
+msgstr ""
#: mediagoblin/templates/mediagoblin/auth/login.html:42
msgid "Don't have an account yet?"
@@ -208,6 +247,10 @@ msgstr "Créez-en un ici !"
msgid "Create an account!"
msgstr "Créer un compte !"
+#: mediagoblin/templates/mediagoblin/auth/register.html:30
+msgid "Create"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19
#, python-format
msgid ""
@@ -234,6 +277,8 @@ msgid "Cancel"
msgstr "Annuler"
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
+#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44
msgid "Save changes"
msgstr "Enregistrer les modifications"
@@ -246,34 +291,64 @@ msgstr "Modification du profil de %(username)s"
msgid "Media tagged with:"
msgstr "Média comportant les tags suivants :"
-#: 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 "flux Atom"
-
#: mediagoblin/templates/mediagoblin/submit/start.html:26
msgid "Submit yer media"
msgstr "Soumettez ce média"
+#: mediagoblin/templates/mediagoblin/submit/start.html:29
+msgid "Submit"
+msgstr "Soumettre"
+
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32
#, python-format
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
msgstr "Médias de <a href=\"%(user_url)s\">%(username)s</a>"
-#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:53
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52
#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
msgid "Sorry, no such user found."
msgstr "Impossible de trouver cet utilisateur, désolé."
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
+#, python-format
+msgid "Really delete %(title)s?"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36
+msgid ""
+"If you choose yes, the media entry will be deleted "
+"<strong>permanently.</strong>"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22
+msgid "Media processing panel"
+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 ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28
+msgid "Media in-processing"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46
+msgid "No media in-processing"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50
+msgid "These uploads failed to process:"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
-msgid "Verification needed"
-msgstr "Vérification requise"
+msgid "Email verification needed"
+msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
-msgid "Almost done! Your account still needs to be verified."
-msgstr "C'est presque fini ! Il vous faut encore vérifier votre compte."
+msgid "Almost done! Your account still needs to be activated."
+msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:47
msgid ""
@@ -293,10 +368,8 @@ msgstr "Renvoyer l'e-mail de vérification"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
msgid ""
"Someone has registered an account with this username, but it still has to be"
-" verified."
+" activated."
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:68
#, python-format
@@ -313,17 +386,52 @@ msgstr ""
msgid "%(username)s's profile"
msgstr "profil de %(username)s"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:86
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:85
+msgid "Here's a spot to tell others about yourself."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:90
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:108
msgid "Edit profile"
msgstr "Modifier le profil"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:98
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
+msgid "This user hasn't filled in their profile (yet)."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:122
#, python-format
msgid "View all of %(username)s's media"
msgstr "Voir tous les médias de %(username)s"
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:135
+msgid ""
+"This is where your media will appear, but you don't seem to have added "
+"anything yet."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:141
+msgid "Add media"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:147
+msgid "There doesn't seem to be any media here yet..."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21
+msgid "feed icon"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23
+msgid "Atom feed"
+msgstr ""
+
#: mediagoblin/user_pages/forms.py:24
msgid "Comment"
+msgstr "Commentaire"
+
+#: mediagoblin/user_pages/views.py:176
+msgid "You are about to delete another user's media. Proceed with caution."
msgstr ""
diff --git a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mo
index 78455ad2..6308eaa6 100644
--- a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mo
+++ 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
index 0aba5755..089a352a 100644
--- a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/ja/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-13 19:47-0500\n"
-"PO-Revision-Date: 2011-08-14 00:47+0000\n"
+"POT-Creation-Date: 2011-08-30 22:51-0500\n"
+"PO-Revision-Date: 2011-08-31 03:51+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
@@ -18,49 +18,65 @@ msgstr ""
"Language: ja\n"
"Plural-Forms: nplurals=1; plural=0\n"
-#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46
+#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54
msgid "Username"
msgstr "ユーザネーム"
-#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50
+#: mediagoblin/auth/forms.py:28
+msgid "This is the name other users will identify you with."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58
msgid "Password"
msgstr "パスワード"
-#: mediagoblin/auth/forms.py:34
+#: mediagoblin/auth/forms.py:36
msgid "Passwords must match."
msgstr "パスワードが一致している必要があります。"
-#: mediagoblin/auth/forms.py:36
+#: mediagoblin/auth/forms.py:37
+msgid "Try to use a strong password!"
+msgstr ""
+
+#: mediagoblin/auth/forms.py:40
msgid "Confirm password"
msgstr "パスワードを確認"
-#: mediagoblin/auth/forms.py:39
+#: mediagoblin/auth/forms.py:42
+msgid "Type it again here to make sure there are no spelling mistakes."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:45
msgid "Email address"
msgstr "メールアドレス"
+#: mediagoblin/auth/forms.py:48
+msgid "Your email will never be published."
+msgstr ""
+
#: mediagoblin/auth/views.py:40
msgid "Sorry, registration is disabled on this instance."
msgstr "申し訳ありませんが、このインスタンスで登録は無効になっています。"
-#: mediagoblin/auth/views.py:57
+#: mediagoblin/auth/views.py:58
msgid "Sorry, a user with that name already exists."
msgstr "申し訳ありませんが、その名前を持つユーザーがすでに存在しています。"
-#: mediagoblin/auth/views.py:61
+#: mediagoblin/auth/views.py:62
msgid "Sorry, that email address has already been taken."
msgstr ""
-#: mediagoblin/auth/views.py:159
+#: mediagoblin/auth/views.py:160
msgid ""
"Your email address has been verified. You may now login, edit your profile, "
"and submit images!"
msgstr "メアドが確認されています。これで、ログインしてプロファイルを編集し、画像を提出することができます!"
-#: mediagoblin/auth/views.py:165
+#: mediagoblin/auth/views.py:166
msgid "The verification key or user id is incorrect"
msgstr "検証キーまたはユーザーIDが間違っています"
-#: mediagoblin/auth/views.py:186
+#: mediagoblin/auth/views.py:187
#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22
msgid "Resent your verification email."
msgstr "検証メールを再送しました。"
@@ -89,100 +105,126 @@ msgstr "自己紹介"
msgid "Website"
msgstr "URL"
-#: mediagoblin/edit/forms.py:43
-msgid "Improperly formed URL"
-msgstr "不適切な形式のURL"
-
-#: mediagoblin/edit/views.py:54
+#: mediagoblin/edit/views.py:66
msgid "An entry with that slug already exists for this user."
msgstr "そのスラグを持つエントリは、このユーザーは既に存在します。"
-#: mediagoblin/edit/views.py:75
+#: mediagoblin/edit/views.py:95
msgid "You are editing another user's media. Proceed with caution."
msgstr "あなたは、他のユーザーのメディアを編集しています。ご注意ください。"
-#: mediagoblin/edit/views.py:96
+#: mediagoblin/edit/views.py:166
msgid "You are editing a user's profile. Proceed with caution."
msgstr "あなたは、他のユーザーのプロファイルを編集しています。ご注意ください。"
+#: mediagoblin/process_media/errors.py:44
+msgid "Invalid file given for media type."
+msgstr ""
+
#: mediagoblin/submit/forms.py:25
msgid "File"
msgstr "ファイル"
-#: mediagoblin/submit/views.py:46
+#: mediagoblin/submit/views.py:47
msgid "You must provide a file."
msgstr "ファイルを提供する必要があります。"
-#: mediagoblin/submit/views.py:49
+#: mediagoblin/submit/views.py:50
msgid "The file doesn't seem to be an image!"
msgstr "ファイルが画像ではないようです!"
-#: mediagoblin/submit/views.py:94
+#: mediagoblin/submit/views.py:122
msgid "Woohoo! Submitted!"
msgstr "投稿終了!"
+#: mediagoblin/templates/mediagoblin/404.html:21
+msgid "Oops!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/404.html:24
+msgid "There doesn't seem to be a page at this address. Sorry!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/404.html:26
+msgid ""
+"If you're sure the address is correct, maybe the page you're looking for has"
+" been moved or deleted."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/404.html:32
+msgid "Image of 404 goblin stressing out"
+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:47
+msgid "MediaGoblin logo"
+msgstr ""
-#: mediagoblin/templates/mediagoblin/base.html:51
+#: mediagoblin/templates/mediagoblin/base.html:52
msgid "Submit media"
msgstr "コンテンツを投稿"
-#: mediagoblin/templates/mediagoblin/base.html:62
+#: mediagoblin/templates/mediagoblin/base.html:63
msgid "verify your email!"
msgstr "メアドを確認してください!"
-#: mediagoblin/templates/mediagoblin/base.html:72
-msgid "Login"
+#: mediagoblin/templates/mediagoblin/base.html:73
+#: mediagoblin/templates/mediagoblin/auth/login.html:26
+#: mediagoblin/templates/mediagoblin/auth/login.html:34
+msgid "Log in"
msgstr "ログイン"
-#: mediagoblin/templates/mediagoblin/base.html:88
+#: mediagoblin/templates/mediagoblin/base.html:89
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
-"href=\"http://gnu.org/\">GNU project</a>"
+"href=\"http://gnu.org/\">GNU</a> project"
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:27
+msgid "Hi there, media lover! MediaGoblin is..."
+msgstr ""
-#: mediagoblin/templates/mediagoblin/root.html:28
-msgid "Submit an item"
-msgstr "アイテムを投稿"
+#: mediagoblin/templates/mediagoblin/root.html:29
+msgid "The perfect place for your media!"
+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:30
+msgid ""
+"A place for people to collaborate and show off original and derived "
+"creations!"
+msgstr ""
-#: mediagoblin/templates/mediagoblin/root.html:39
-#, python-format
+#: mediagoblin/templates/mediagoblin/root.html:31
msgid ""
-"If you don't have an account, please <a "
-"href=\"%(register_url)s\">Register</a>."
-msgstr "アカウントが持っていなければ、<a href=\"%(register_url)s\">登録</a>してお願いします。"
+"Free, as in freedom. (We’re a <a href=\"http://gnu.org\">GNU</a> project, "
+"after all.)"
+msgstr ""
-#: mediagoblin/templates/mediagoblin/auth/login.html:26
-msgid "Log in"
-msgstr "ログイン"
+#: mediagoblin/templates/mediagoblin/root.html:32
+msgid ""
+"Aiming to make the world a better place through decentralization and "
+"(eventually, coming soon!) federation!"
+msgstr ""
-#: mediagoblin/templates/mediagoblin/auth/login.html:29
-msgid "Login failed!"
-msgstr "ログイン失敗!"
+#: mediagoblin/templates/mediagoblin/root.html:33
+msgid ""
+"Built for extensibility. (Multiple media types coming soon to the software,"
+" including video support!)"
+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/root.html:34
+msgid ""
+"Powered by people like you. (<a "
+"href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this"
+" software!</a>)"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/auth/login.html:29
+msgid "Logging in failed!"
+msgstr ""
#: mediagoblin/templates/mediagoblin/auth/login.html:42
msgid "Don't have an account yet?"
@@ -196,6 +238,10 @@ msgstr "ここで作成!"
msgid "Create an account!"
msgstr "アカウントを作成!"
+#: mediagoblin/templates/mediagoblin/auth/register.html:30
+msgid "Create"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19
#, python-format
msgid ""
@@ -222,6 +268,8 @@ msgid "Cancel"
msgstr "キャンセル"
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
+#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44
msgid "Save changes"
msgstr "投稿する"
@@ -234,34 +282,64 @@ msgstr "%(username)sさんのプロフィールを編集中"
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/submit/start.html:29
+msgid "Submit"
+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/gallery.html:52
#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
msgid "Sorry, no such user found."
msgstr "申し訳ありませんが、そのユーザーは見つかりませんでした。"
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
+#, python-format
+msgid "Really delete %(title)s?"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36
+msgid ""
+"If you choose yes, the media entry will be deleted "
+"<strong>permanently.</strong>"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22
+msgid "Media processing panel"
+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 ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28
+msgid "Media in-processing"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46
+msgid "No media in-processing"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50
+msgid "These uploads failed to process:"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
-msgid "Verification needed"
-msgstr "確認必要"
+msgid "Email verification needed"
+msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
-msgid "Almost done! Your account still needs to be verified."
-msgstr "ほぼ完了!アカウントを検証する必要があります。"
+msgid "Almost done! Your account still needs to be activated."
+msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:47
msgid ""
@@ -279,8 +357,8 @@ 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 "誰かがこのユーザ名でアカウントを登録しているが、まだ検証する必要があります。"
+" activated."
+msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:68
#, python-format
@@ -294,17 +372,52 @@ msgstr "あなたの確認メールを紛失した場合、<a href=\"%(login_url
msgid "%(username)s's profile"
msgstr "%(username)sさんのプロフィール"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:86
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:85
+msgid "Here's a spot to tell others about yourself."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:90
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:108
msgid "Edit profile"
msgstr "プロフィールを編集"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:98
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
+msgid "This user hasn't filled in their profile (yet)."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:122
#, python-format
msgid "View all of %(username)s's media"
msgstr "%(username)sさんのコンテンツをすべて見る"
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:135
+msgid ""
+"This is where your media will appear, but you don't seem to have added "
+"anything yet."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:141
+msgid "Add media"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:147
+msgid "There doesn't seem to be any media here yet..."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21
+msgid "feed icon"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23
+msgid "Atom feed"
+msgstr ""
+
#: mediagoblin/user_pages/forms.py:24
msgid "Comment"
msgstr ""
+#: mediagoblin/user_pages/views.py:176
+msgid "You are about to delete another user's media. Proceed with caution."
+msgstr ""
+
diff --git a/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.mo
new file mode 100644
index 00000000..809cd90d
--- /dev/null
+++ b/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.mo
Binary files differ
diff --git a/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po
new file mode 100644
index 00000000..7eed6f4e
--- /dev/null
+++ b/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po
@@ -0,0 +1,429 @@
+# Translations template for PROJECT.
+# Copyright (C) 2011 ORGANIZATION
+# This file is distributed under the same license as the PROJECT project.
+#
+# <mail@jefvanschendel.nl>, 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-30 22:51-0500\n"
+"PO-Revision-Date: 2011-08-31 03:51+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: nl\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54
+msgid "Username"
+msgstr "Gebruikersnaam"
+
+#: mediagoblin/auth/forms.py:28
+msgid "This is the name other users will identify you with."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58
+msgid "Password"
+msgstr "Wachtwoord"
+
+#: mediagoblin/auth/forms.py:36
+msgid "Passwords must match."
+msgstr "Wachtwoorden moeten overeenkomen."
+
+#: mediagoblin/auth/forms.py:37
+msgid "Try to use a strong password!"
+msgstr ""
+
+#: mediagoblin/auth/forms.py:40
+msgid "Confirm password"
+msgstr "Bevestig wachtwoord"
+
+#: mediagoblin/auth/forms.py:42
+msgid "Type it again here to make sure there are no spelling mistakes."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:45
+msgid "Email address"
+msgstr "E-mail adres"
+
+#: mediagoblin/auth/forms.py:48
+msgid "Your email will never be published."
+msgstr ""
+
+#: mediagoblin/auth/views.py:40
+msgid "Sorry, registration is disabled on this instance."
+msgstr "Sorry, registratie is uitgeschakeld op deze instantie."
+
+#: mediagoblin/auth/views.py:58
+msgid "Sorry, a user with that name already exists."
+msgstr "Sorry, er bestaat al een gebruiker met die naam."
+
+#: mediagoblin/auth/views.py:62
+msgid "Sorry, that email address has already been taken."
+msgstr "Sorry, dat e-mailadres is al ingenomen."
+
+#: mediagoblin/auth/views.py:160
+msgid ""
+"Your email address has been verified. You may now login, edit your profile, "
+"and submit images!"
+msgstr ""
+"Uw e-mailadres is geverifieerd. U kunt nu inloggen, uw profiel bewerken, en "
+"afbeeldingen toevoegen!"
+
+#: mediagoblin/auth/views.py:166
+msgid "The verification key or user id is incorrect"
+msgstr "De verificatie sleutel of gebruikers-ID is onjuist"
+
+#: mediagoblin/auth/views.py:187
+#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22
+msgid "Resent your verification email."
+msgstr "Verificatie e-mail opnieuw opgestuurd."
+
+#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27
+msgid "Title"
+msgstr "Titel"
+
+#: 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 "Etiket"
+
+#: mediagoblin/edit/forms.py:38
+msgid "Bio"
+msgstr "Bio"
+
+#: mediagoblin/edit/forms.py:41
+msgid "Website"
+msgstr "Website"
+
+#: mediagoblin/edit/views.py:66
+msgid "An entry with that slug already exists for this user."
+msgstr ""
+
+#: mediagoblin/edit/views.py:95
+msgid "You are editing another user's media. Proceed with caution."
+msgstr ""
+"U bent de media van een andere gebruiker aan het aanpassen. Ga voorzichtig "
+"te werk."
+
+#: mediagoblin/edit/views.py:166
+msgid "You are editing a user's profile. Proceed with caution."
+msgstr ""
+"U bent een gebruikersprofiel aan het aanpassen. Ga voorzichtig te werk."
+
+#: mediagoblin/process_media/errors.py:44
+msgid "Invalid file given for media type."
+msgstr ""
+
+#: mediagoblin/submit/forms.py:25
+msgid "File"
+msgstr "Bestand"
+
+#: mediagoblin/submit/views.py:47
+msgid "You must provide a file."
+msgstr "U moet een bestand aangeven."
+
+#: mediagoblin/submit/views.py:50
+msgid "The file doesn't seem to be an image!"
+msgstr "Het lijkt erop dat dit bestand geen afbeelding is!"
+
+#: mediagoblin/submit/views.py:122
+msgid "Woohoo! Submitted!"
+msgstr "Mooizo! Toegevoegd!"
+
+#: mediagoblin/templates/mediagoblin/404.html:21
+msgid "Oops!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/404.html:24
+msgid "There doesn't seem to be a page at this address. Sorry!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/404.html:26
+msgid ""
+"If you're sure the address is correct, maybe the page you're looking for has"
+" been moved or deleted."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/404.html:32
+msgid "Image of 404 goblin stressing out"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/base.html:22
+msgid "GNU MediaGoblin"
+msgstr "GNU MediaGoblin"
+
+#: mediagoblin/templates/mediagoblin/base.html:47
+msgid "MediaGoblin logo"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/base.html:52
+msgid "Submit media"
+msgstr "Voeg media toe"
+
+#: mediagoblin/templates/mediagoblin/base.html:63
+msgid "verify your email!"
+msgstr "Controleer uw e-mail!"
+
+#: mediagoblin/templates/mediagoblin/base.html:73
+#: mediagoblin/templates/mediagoblin/auth/login.html:26
+#: mediagoblin/templates/mediagoblin/auth/login.html:34
+msgid "Log in"
+msgstr "Inloggen"
+
+#: mediagoblin/templates/mediagoblin/base.html:89
+msgid ""
+"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
+"href=\"http://gnu.org/\">GNU</a> project"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/root.html:27
+msgid "Hi there, media lover! MediaGoblin is..."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/root.html:29
+msgid "The perfect place for your media!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/root.html:30
+msgid ""
+"A place for people to collaborate and show off original and derived "
+"creations!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/root.html:31
+msgid ""
+"Free, as in freedom. (We’re a <a href=\"http://gnu.org\">GNU</a> project, "
+"after all.)"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/root.html:32
+msgid ""
+"Aiming to make the world a better place through decentralization and "
+"(eventually, coming soon!) federation!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/root.html:33
+msgid ""
+"Built for extensibility. (Multiple media types coming soon to the software,"
+" including video support!)"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/root.html:34
+msgid ""
+"Powered by people like you. (<a "
+"href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this"
+" software!</a>)"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/auth/login.html:29
+msgid "Logging in failed!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/auth/login.html:42
+msgid "Don't have an account yet?"
+msgstr "Heeft u nog geen account?"
+
+#: mediagoblin/templates/mediagoblin/auth/login.html:45
+msgid "Create one here!"
+msgstr "Maak er hier een!"
+
+#: mediagoblin/templates/mediagoblin/auth/register.html:27
+msgid "Create an account!"
+msgstr "Maak een account aan!"
+
+#: mediagoblin/templates/mediagoblin/auth/register.html:30
+msgid "Create"
+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 ""
+"Hallo %(username)s , open de volgende URL in uw webbrowser om uw GNU "
+"MediaGoblin account te activeren: %(verification_url)s "
+
+#: mediagoblin/templates/mediagoblin/edit/edit.html:29
+#, python-format
+msgid "Editing %(media_title)s"
+msgstr "%(media_title)s aanpassen"
+
+#: mediagoblin/templates/mediagoblin/edit/edit.html:36
+msgid "Cancel"
+msgstr "Annuleren"
+
+#: mediagoblin/templates/mediagoblin/edit/edit.html:37
+#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44
+msgid "Save changes"
+msgstr "Wijzigingen opslaan"
+
+#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29
+#, python-format
+msgid "Editing %(username)s's profile"
+msgstr "Het profiel aanpassen van %(username)s"
+
+#: mediagoblin/templates/mediagoblin/listings/tag.html:31
+msgid "Media tagged with:"
+msgstr "Media met het etiket:"
+
+#: mediagoblin/templates/mediagoblin/submit/start.html:26
+msgid "Submit yer media"
+msgstr "Voeg media toe"
+
+#: mediagoblin/templates/mediagoblin/submit/start.html:29
+msgid "Submit"
+msgstr "Voeg toe"
+
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32
+#, python-format
+msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
+msgstr "Media van <a href=\"%(user_url)s\"> %(username)s </a>"
+
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
+msgid "Sorry, no such user found."
+msgstr "Sorry, die gebruiker kon niet worden gevonden."
+
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
+#, python-format
+msgid "Really delete %(title)s?"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36
+msgid ""
+"If you choose yes, the media entry will be deleted "
+"<strong>permanently.</strong>"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22
+msgid "Media processing panel"
+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 ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28
+msgid "Media in-processing"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46
+msgid "No media in-processing"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50
+msgid "These uploads failed to process:"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
+msgid "Email verification needed"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
+msgid "Almost done! Your account still needs to be activated."
+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 ""
+"Een e-mail zou in een paar ogenblikken aan moeten komen met instructies "
+"hiertoe."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:51
+msgid "In case it doesn't:"
+msgstr "Zoniet:"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:54
+msgid "Resend verification email"
+msgstr "Stuur de verificatie e-mail opnieuw op."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
+msgid ""
+"Someone has registered an account with this username, but it still has to be"
+" activated."
+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 ""
+"Als u die persoon bent, maar de verificatie e-mail verloren hebt, kunt u <a "
+"href=\"%(login_url)s\">inloggen</a> en hem nogmaals verzenden."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:78
+#, python-format
+msgid "%(username)s's profile"
+msgstr "Profiel van %(username)s"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:85
+msgid "Here's a spot to tell others about yourself."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:90
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:108
+msgid "Edit profile"
+msgstr "Profiel aanpassen."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
+msgid "This user hasn't filled in their profile (yet)."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:122
+#, python-format
+msgid "View all of %(username)s's media"
+msgstr "Bekijk alle media van %(username)s"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:135
+msgid ""
+"This is where your media will appear, but you don't seem to have added "
+"anything yet."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:141
+msgid "Add media"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:147
+msgid "There doesn't seem to be any media here yet..."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21
+msgid "feed icon"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23
+msgid "Atom feed"
+msgstr ""
+
+#: mediagoblin/user_pages/forms.py:24
+msgid "Comment"
+msgstr "Commentaar"
+
+#: mediagoblin/user_pages/views.py:176
+msgid "You are about to delete another user's media. Proceed with caution."
+msgstr ""
+
+
diff --git a/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.mo
index 8911785f..8c196295 100644
--- a/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.mo
+++ b/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.mo
Binary files differ
diff --git a/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po
index bd00fd1f..c4b42d89 100644
--- a/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po
@@ -7,9 +7,9 @@ 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:23+0000\n"
-"Last-Translator: velmont <odin.omdal@gmail.com>\n"
+"POT-Creation-Date: 2011-08-30 22:51-0500\n"
+"PO-Revision-Date: 2011-08-31 03:51+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"
@@ -18,35 +18,55 @@ msgstr ""
"Language: nn_NO\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46
+#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54
msgid "Username"
msgstr "Brukarnamn"
-#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50
+#: mediagoblin/auth/forms.py:28
+msgid "This is the name other users will identify you with."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58
msgid "Password"
msgstr "Passord"
-#: mediagoblin/auth/forms.py:34
+#: mediagoblin/auth/forms.py:36
msgid "Passwords must match."
msgstr "Passorda må vera like."
-#: mediagoblin/auth/forms.py:36
+#: mediagoblin/auth/forms.py:37
+msgid "Try to use a strong password!"
+msgstr ""
+
+#: mediagoblin/auth/forms.py:40
msgid "Confirm password"
msgstr "Gjenta passord"
-#: mediagoblin/auth/forms.py:39
+#: mediagoblin/auth/forms.py:42
+msgid "Type it again here to make sure there are no spelling mistakes."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:45
msgid "Email address"
msgstr "E-postadresse"
+#: mediagoblin/auth/forms.py:48
+msgid "Your email will never be published."
+msgstr ""
+
#: mediagoblin/auth/views.py:40
msgid "Sorry, registration is disabled on this instance."
msgstr "Registrering er slege av. Orsak."
-#: mediagoblin/auth/views.py:55
+#: mediagoblin/auth/views.py:58
msgid "Sorry, a user with that name already exists."
msgstr "Ein konto med dette brukarnamnet finst allereide."
-#: mediagoblin/auth/views.py:152
+#: mediagoblin/auth/views.py:62
+msgid "Sorry, that email address has already been taken."
+msgstr "Den epostadressa er allereide teken."
+
+#: mediagoblin/auth/views.py:160
msgid ""
"Your email address has been verified. You may now login, edit your profile, "
"and submit images!"
@@ -54,16 +74,16 @@ msgstr ""
"E-postadressa di, og dimed kontoen din er stadfesta. Du kan no logga inn, "
"endra profilen din og lasta opp filer."
-#: mediagoblin/auth/views.py:158
+#: mediagoblin/auth/views.py:166
msgid "The verification key or user id is incorrect"
msgstr "Stadfestingsnykelen eller brukar-ID-en din er feil."
-#: mediagoblin/auth/views.py:179
+#: mediagoblin/auth/views.py:187
#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22
msgid "Resent your verification email."
msgstr "Send ein ny stadfestingsepost."
-#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26
+#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27
msgid "Title"
msgstr "Tittel"
@@ -87,100 +107,134 @@ msgstr "Presentasjon"
msgid "Website"
msgstr "Heimeside"
-#: mediagoblin/edit/forms.py:43
-msgid "Improperly formed URL"
-msgstr "Ugyldeg URL"
-
-#: mediagoblin/edit/views.py:54
+#: mediagoblin/edit/views.py:66
msgid "An entry with that slug already exists for this user."
msgstr "Eit innlegg med denne adressetittelen finst allereie."
-#: mediagoblin/edit/views.py:75
+#: mediagoblin/edit/views.py:95
msgid "You are editing another user's media. Proceed with caution."
msgstr "Ver forsiktig, du redigerer ein annan konto sitt innlegg."
-#: mediagoblin/edit/views.py:96
+#: mediagoblin/edit/views.py:166
msgid "You are editing a user's profile. Proceed with caution."
msgstr "Ver forsiktig, du redigerer ein annan konto sin profil."
-#: mediagoblin/submit/forms.py:29
+#: mediagoblin/process_media/errors.py:44
+msgid "Invalid file given for media type."
+msgstr "Ugyldig fil for mediatypen."
+
+#: mediagoblin/submit/forms.py:25
msgid "File"
msgstr "Fil"
-#: mediagoblin/submit/views.py:45
+#: mediagoblin/submit/views.py:47
msgid "You must provide a file."
msgstr "Du må velja ei fil."
-#: mediagoblin/submit/views.py:48
+#: mediagoblin/submit/views.py:50
msgid "The file doesn't seem to be an image!"
msgstr "Fila verkar ikkje å vera ei gyldig biletefil."
-#: mediagoblin/submit/views.py:96
+#: mediagoblin/submit/views.py:122
msgid "Woohoo! Submitted!"
msgstr "Johoo! Opplasta!"
+#: mediagoblin/templates/mediagoblin/404.html:21
+msgid "Oops!"
+msgstr "Oops."
+
+#: mediagoblin/templates/mediagoblin/404.html:24
+msgid "There doesn't seem to be a page at this address. Sorry!"
+msgstr "Det ser ikkje ut til å vera noko her..."
+
+#: mediagoblin/templates/mediagoblin/404.html:26
+msgid ""
+"If you're sure the address is correct, maybe the page you're looking for has"
+" been moved or deleted."
+msgstr ""
+"Er du sikker på at adressa er korrekt, så er ho truleg flytta eller sletta."
+
+#: mediagoblin/templates/mediagoblin/404.html:32
+msgid "Image of 404 goblin stressing out"
+msgstr "Bilete av stressa 404-troll."
+
#: mediagoblin/templates/mediagoblin/base.html:22
msgid "GNU MediaGoblin"
msgstr "GNU MediaGoblin"
-#: mediagoblin/templates/mediagoblin/base.html:45
-msgid "Mediagoblin logo"
-msgstr "MediaGoblin-logo"
+#: mediagoblin/templates/mediagoblin/base.html:47
+msgid "MediaGoblin logo"
+msgstr "MediaGoblin"
-#: mediagoblin/templates/mediagoblin/base.html:51
+#: mediagoblin/templates/mediagoblin/base.html:52
msgid "Submit media"
msgstr "Last opp"
-#: mediagoblin/templates/mediagoblin/base.html:62
+#: mediagoblin/templates/mediagoblin/base.html:63
msgid "verify your email!"
msgstr "Stadfest epostadressa di"
-#: mediagoblin/templates/mediagoblin/base.html:72
-msgid "Login"
+#: mediagoblin/templates/mediagoblin/base.html:73
+#: mediagoblin/templates/mediagoblin/auth/login.html:26
+#: mediagoblin/templates/mediagoblin/auth/login.html:34
+msgid "Log in"
msgstr "Logg inn"
-#: mediagoblin/templates/mediagoblin/base.html:88
+#: mediagoblin/templates/mediagoblin/base.html:89
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
-"href=\"http://gnu.org/\">GNU project</a>"
+"href=\"http://gnu.org/\">GNU</a> project"
msgstr ""
-"Driven av <a href=\"http://mediagoblin.org\">MediaGoblin</a>, eit <a "
-"href=\"http://gnu.org/\">GNU-prosjekt</a>"
-#: mediagoblin/templates/mediagoblin/root.html:21
-msgid "Welcome to GNU MediaGoblin!"
-msgstr "Velkomen til GNU MediaGoblin!"
+#: mediagoblin/templates/mediagoblin/root.html:27
+msgid "Hi there, media lover! MediaGoblin is..."
+msgstr "Hei der mediaentusiast, MediaGoblin..."
-#: mediagoblin/templates/mediagoblin/root.html:26
-msgid "Submit an item"
-msgstr "Last opp"
+#: mediagoblin/templates/mediagoblin/root.html:29
+msgid "The perfect place for your media!"
+msgstr "Er ein perfekt plass for mediet ditt!"
+
+#: mediagoblin/templates/mediagoblin/root.html:30
+msgid ""
+"A place for people to collaborate and show off original and derived "
+"creations!"
+msgstr ""
+"Er ein plass for folk å samarbeida og visa fram sjølvlaga og vidarebygde "
+"verk."
#: mediagoblin/templates/mediagoblin/root.html:31
-#, python-format
-msgid "If you have an account, you can <a href=\"%(login_url)s\">Login</a>."
-msgstr "Har du ein konto? <a href=\"%(login_url)s\">Logg inn</a>."
+msgid ""
+"Free, as in freedom. (We’re a <a href=\"http://gnu.org\">GNU</a> project, "
+"after all.)"
+msgstr "Fri som i fridom (me er eit <a href=\"http://gnu.org\">GNU</a>-prosjekt)."
-#: mediagoblin/templates/mediagoblin/root.html:37
-#, python-format
+#: mediagoblin/templates/mediagoblin/root.html:32
msgid ""
-"If you don't have an account, please <a "
-"href=\"%(register_url)s\">Register</a>."
-msgstr "Har du ingen konto? <a href=\"%(register_url)s\">Registrer deg</a>."
+"Aiming to make the world a better place through decentralization and "
+"(eventually, coming soon!) federation!"
+msgstr ""
+"Arbeidar for å gjera verda ein betre stad gjennom desentralisering (til "
+"slutt, kjem snart!) federering."
-#: mediagoblin/templates/mediagoblin/auth/login.html:26
-msgid "Log in"
-msgstr "Logg inn"
+#: mediagoblin/templates/mediagoblin/root.html:33
+msgid ""
+"Built for extensibility. (Multiple media types coming soon to the software,"
+" including video support!)"
+msgstr "Bygd for utviding (fleire medietypar kjem snart, m.a. video)."
-#: mediagoblin/templates/mediagoblin/auth/login.html:29
-msgid "Login failed!"
-msgstr "Innlogging feila!"
+#: mediagoblin/templates/mediagoblin/root.html:34
+msgid ""
+"Powered by people like you. (<a "
+"href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this"
+" software!</a>)"
+msgstr ""
+"Driven av folk som deg. (<a "
+"href=\"http://mediagoblin.org/pages/join.html\">Du kan hjelpa med å forbetra"
+" MediaGoblin</a>)"
-#: 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
-msgid "Submit"
-msgstr "Send"
+#: mediagoblin/templates/mediagoblin/auth/login.html:29
+msgid "Logging in failed!"
+msgstr "Innlogging feila"
#: mediagoblin/templates/mediagoblin/auth/login.html:42
msgid "Don't have an account yet?"
@@ -194,6 +248,10 @@ msgstr "Lag ein!"
msgid "Create an account!"
msgstr "Lag ein konto."
+#: mediagoblin/templates/mediagoblin/auth/register.html:30
+msgid "Create"
+msgstr "Opprett"
+
#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19
#, python-format
msgid ""
@@ -220,6 +278,8 @@ msgid "Cancel"
msgstr "Avbryt"
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
+#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44
msgid "Save changes"
msgstr "Lagra"
@@ -228,61 +288,89 @@ msgstr "Lagra"
msgid "Editing %(username)s's profile"
msgstr "Redigerar profilen til %(username)s"
-#: mediagoblin/templates/mediagoblin/listings/tag.html:29
+#: mediagoblin/templates/mediagoblin/listings/tag.html:31
msgid "Media tagged with:"
msgstr "Merkelappar:"
-#: mediagoblin/templates/mediagoblin/listings/tag.html:40
-#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:101
-msgid "atom feed"
-msgstr "atom-feed"
-
#: mediagoblin/templates/mediagoblin/submit/start.html:26
msgid "Submit yer media"
msgstr "Last opp"
-#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
+#: mediagoblin/templates/mediagoblin/submit/start.html:29
+msgid "Submit"
+msgstr "Send"
+
+#: 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> sin mediafiler"
-#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:30
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
msgid "Sorry, no such user found."
msgstr "Fann ingen slik brukar"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:37
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:57
-msgid "Verification needed"
-msgstr "Treng stadfesting"
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
+#, python-format
+msgid "Really delete %(title)s?"
+msgstr ""
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:40
-msgid "Almost done! Your account still needs to be verified."
-msgstr "Nesten klart. Du treng berre stadfesta kontoen din."
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36
+msgid ""
+"If you choose yes, the media entry will be deleted "
+"<strong>permanently.</strong>"
+msgstr ""
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:45
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22
+msgid "Media processing panel"
+msgstr "Mediehandsamingspanel"
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25
+msgid ""
+"You can track the state of media being processed for your gallery here."
+msgstr "Sjå status for mediehandsaming av biletene dine her."
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28
+msgid "Media in-processing"
+msgstr "Media under handsaming"
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46
+msgid "No media in-processing"
+msgstr "Ingen media under handsaming"
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50
+msgid "These uploads failed to process:"
+msgstr "Klarte ikkje handsame desse opplasta filene:"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
+msgid "Email verification needed"
+msgstr "Epostverifisering trengst."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
+msgid "Almost done! Your account still needs to be activated."
+msgstr "Nesten ferdig. Du treng berre aktivera kontoen."
+
+#: 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 "Ein epost med instruksjonar kjem straks."
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:49
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:51
msgid "In case it doesn't:"
msgstr "I tilfelle det ikkje skjer:"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:52
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:54
msgid "Resend verification email"
msgstr "Send ein ny epost"
-#: 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 ""
-"Det finst allereie ein konto med det brukarnamnet, men den kontoen treng "
-"stadfesting."
+" activated."
+msgstr "Dette brukarnamnet finst allereie, men det er ikkje aktivert."
-#: 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 "
@@ -291,18 +379,57 @@ msgstr ""
"Viss dette er deg, kan du <a href=\"%(login_url)s\">logga inn</a> for å få "
"tilsendt ny epost med stadfestingslenkje."
-#: 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)s sin profil"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:84
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:85
+msgid "Here's a spot to tell others about yourself."
+msgstr "Her kan du fortelja om deg sjølv."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:90
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:108
msgid "Edit profile"
msgstr "Endra profil"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:95
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
+msgid "This user hasn't filled in their profile (yet)."
+msgstr "Brukaren har ikkje fylt ut profilen sin (enno)."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:122
#, python-format
msgid "View all of %(username)s's media"
msgstr "Sjå all media frå %(username)s"
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:135
+msgid ""
+"This is where your media will appear, but you don't seem to have added "
+"anything yet."
+msgstr "Her kjem mediet ditt. Ser ikkje ut til at du har lagt til noko."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:141
+msgid "Add media"
+msgstr "Legg til media"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:147
+msgid "There doesn't seem to be any media here yet..."
+msgstr "Ser ikkje ut til at det finst noko media her nett no."
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21
+msgid "feed icon"
+msgstr " "
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23
+msgid "Atom feed"
+msgstr "Atom-kjelde"
+
+#: mediagoblin/user_pages/forms.py:24
+msgid "Comment"
+msgstr "Innspel"
+
+#: mediagoblin/user_pages/views.py:176
+msgid "You are about to delete another user's media. Proceed with caution."
+msgstr ""
+
diff --git a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo
index 4dc4ab5f..28cf6af2 100644
--- a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo
+++ b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo
Binary files differ
diff --git a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po
index 43f65af6..8c5ab19e 100644
--- a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po
@@ -7,9 +7,9 @@ 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 23:16+0000\n"
-"Last-Translator: osc <snd.noise@gmail.com>\n"
+"POT-Creation-Date: 2011-08-30 22:51-0500\n"
+"PO-Revision-Date: 2011-08-31 03:51+0000\n"
+"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: Portuguese (Brazilian) (http://www.transifex.net/projects/p/mediagoblin/team/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -18,35 +18,55 @@ msgstr ""
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
-#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46
+#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54
msgid "Username"
msgstr "Nome de Usuário"
-#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50
+#: mediagoblin/auth/forms.py:28
+msgid "This is the name other users will identify you with."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58
msgid "Password"
msgstr "Senha"
-#: mediagoblin/auth/forms.py:34
+#: mediagoblin/auth/forms.py:36
msgid "Passwords must match."
msgstr "Senhas devem ser iguais."
-#: mediagoblin/auth/forms.py:36
+#: mediagoblin/auth/forms.py:37
+msgid "Try to use a strong password!"
+msgstr ""
+
+#: mediagoblin/auth/forms.py:40
msgid "Confirm password"
msgstr "Confirmar senha"
-#: mediagoblin/auth/forms.py:39
+#: mediagoblin/auth/forms.py:42
+msgid "Type it again here to make sure there are no spelling mistakes."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:45
msgid "Email address"
msgstr "Endereço de email"
+#: mediagoblin/auth/forms.py:48
+msgid "Your email will never be published."
+msgstr ""
+
#: mediagoblin/auth/views.py:40
msgid "Sorry, registration is disabled on this instance."
msgstr "Desculpa, o registro está desativado neste momento."
-#: mediagoblin/auth/views.py:55
+#: mediagoblin/auth/views.py:58
msgid "Sorry, a user with that name already exists."
msgstr "Desculpe, um usuário com este nome já existe."
-#: mediagoblin/auth/views.py:152
+#: mediagoblin/auth/views.py:62
+msgid "Sorry, that email address has already been taken."
+msgstr ""
+
+#: mediagoblin/auth/views.py:160
msgid ""
"Your email address has been verified. You may now login, edit your profile, "
"and submit images!"
@@ -54,16 +74,16 @@ msgstr ""
"O seu endereço de e-mail foi verificado. Você pode agora fazer login, editar"
" seu perfil, e enviar imagens!"
-#: mediagoblin/auth/views.py:158
+#: mediagoblin/auth/views.py:166
msgid "The verification key or user id is incorrect"
msgstr "A chave de verificação ou nome usuário estão incorretos."
-#: mediagoblin/auth/views.py:179
+#: mediagoblin/auth/views.py:187
#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22
msgid "Resent your verification email."
msgstr "O email de verificação foi reenviado."
-#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26
+#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27
msgid "Title"
msgstr "Título"
@@ -87,102 +107,126 @@ msgstr "Biográfia"
msgid "Website"
msgstr "Website"
-#: mediagoblin/edit/forms.py:43
-msgid "Improperly formed URL"
-msgstr ""
-
-#: mediagoblin/edit/views.py:54
+#: mediagoblin/edit/views.py:66
msgid "An entry with that slug already exists for this user."
msgstr ""
-#: mediagoblin/edit/views.py:75
+#: mediagoblin/edit/views.py:95
msgid "You are editing another user's media. Proceed with caution."
msgstr ""
-#: mediagoblin/edit/views.py:96
+#: mediagoblin/edit/views.py:166
msgid "You are editing a user's profile. Proceed with caution."
msgstr ""
-#: mediagoblin/submit/forms.py:29
+#: mediagoblin/process_media/errors.py:44
+msgid "Invalid file given for media type."
+msgstr ""
+
+#: mediagoblin/submit/forms.py:25
msgid "File"
msgstr "Arquivo"
-#: mediagoblin/submit/views.py:45
+#: mediagoblin/submit/views.py:47
msgid "You must provide a file."
msgstr "Você deve fornecer um arquivo."
-#: mediagoblin/submit/views.py:48
+#: mediagoblin/submit/views.py:50
msgid "The file doesn't seem to be an image!"
msgstr "O arquivo não parece ser uma imagem!"
-#: mediagoblin/submit/views.py:96
+#: mediagoblin/submit/views.py:122
msgid "Woohoo! Submitted!"
msgstr "Eba! Enviado!"
+#: mediagoblin/templates/mediagoblin/404.html:21
+msgid "Oops!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/404.html:24
+msgid "There doesn't seem to be a page at this address. Sorry!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/404.html:26
+msgid ""
+"If you're sure the address is correct, maybe the page you're looking for has"
+" been moved or deleted."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/404.html:32
+msgid "Image of 404 goblin stressing out"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/base.html:22
msgid "GNU MediaGoblin"
msgstr "GNU MediaGoblin"
-#: mediagoblin/templates/mediagoblin/base.html:45
-msgid "Mediagoblin logo"
-msgstr "Logo de Mediagoblin"
+#: mediagoblin/templates/mediagoblin/base.html:47
+msgid "MediaGoblin logo"
+msgstr ""
-#: mediagoblin/templates/mediagoblin/base.html:51
+#: mediagoblin/templates/mediagoblin/base.html:52
msgid "Submit media"
msgstr "Enviar mídia"
-#: mediagoblin/templates/mediagoblin/base.html:62
+#: mediagoblin/templates/mediagoblin/base.html:63
msgid "verify your email!"
msgstr "Verifique seu email!"
-#: mediagoblin/templates/mediagoblin/base.html:72
-msgid "Login"
-msgstr "Login"
+#: mediagoblin/templates/mediagoblin/base.html:73
+#: mediagoblin/templates/mediagoblin/auth/login.html:26
+#: mediagoblin/templates/mediagoblin/auth/login.html:34
+msgid "Log in"
+msgstr "Entrar"
-#: mediagoblin/templates/mediagoblin/base.html:88
+#: mediagoblin/templates/mediagoblin/base.html:89
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
-"href=\"http://gnu.org/\">GNU project</a>"
+"href=\"http://gnu.org/\">GNU</a> project"
msgstr ""
-"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
-"href=\"http://gnu.org/\">GNU project</a>"
-#: mediagoblin/templates/mediagoblin/root.html:21
-msgid "Welcome to GNU MediaGoblin!"
-msgstr "Bemvindo a GNU Mediagoblin!"
+#: mediagoblin/templates/mediagoblin/root.html:27
+msgid "Hi there, media lover! MediaGoblin is..."
+msgstr ""
-#: mediagoblin/templates/mediagoblin/root.html:26
-msgid "Submit an item"
+#: mediagoblin/templates/mediagoblin/root.html:29
+msgid "The perfect place for your media!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/root.html:30
+msgid ""
+"A place for people to collaborate and show off original and derived "
+"creations!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
-#, python-format
-msgid "If you have an account, you can <a href=\"%(login_url)s\">Login</a>."
-msgstr "Se você tem conta, você pode <a href=\"%(login_url)s\">Entrar</a> ."
+msgid ""
+"Free, as in freedom. (We’re a <a href=\"http://gnu.org\">GNU</a> project, "
+"after all.)"
+msgstr ""
-#: mediagoblin/templates/mediagoblin/root.html:37
-#, python-format
+#: mediagoblin/templates/mediagoblin/root.html:32
msgid ""
-"If you don't have an account, please <a "
-"href=\"%(register_url)s\">Register</a>."
+"Aiming to make the world a better place through decentralization and "
+"(eventually, coming soon!) federation!"
msgstr ""
-"Se você não tem conta, por favor <a href=\"%(register_url)s\">Registrar</a> "
-"."
-#: mediagoblin/templates/mediagoblin/auth/login.html:26
-msgid "Log in"
-msgstr "Entrar"
+#: mediagoblin/templates/mediagoblin/root.html:33
+msgid ""
+"Built for extensibility. (Multiple media types coming soon to the software,"
+" including video support!)"
+msgstr ""
-#: mediagoblin/templates/mediagoblin/auth/login.html:29
-msgid "Login failed!"
-msgstr "Login falhou!"
+#: mediagoblin/templates/mediagoblin/root.html:34
+msgid ""
+"Powered by people like you. (<a "
+"href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this"
+" software!</a>)"
+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:32
-msgid "Submit"
-msgstr "Enviar"
+#: mediagoblin/templates/mediagoblin/auth/login.html:29
+msgid "Logging in failed!"
+msgstr ""
#: mediagoblin/templates/mediagoblin/auth/login.html:42
msgid "Don't have an account yet?"
@@ -196,6 +240,10 @@ msgstr "Crie uma aqui!"
msgid "Create an account!"
msgstr "Criar uma conta!"
+#: mediagoblin/templates/mediagoblin/auth/register.html:30
+msgid "Create"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19
#, python-format
msgid ""
@@ -222,6 +270,8 @@ msgid "Cancel"
msgstr "Cancelar"
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
+#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44
msgid "Save changes"
msgstr "Salvar mudanças"
@@ -230,61 +280,89 @@ msgstr "Salvar mudanças"
msgid "Editing %(username)s's profile"
msgstr "Editando perfil de %(username)s"
-#: mediagoblin/templates/mediagoblin/listings/tag.html:29
+#: mediagoblin/templates/mediagoblin/listings/tag.html:31
msgid "Media tagged with:"
msgstr ""
-#: mediagoblin/templates/mediagoblin/listings/tag.html:40
-#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:101
-msgid "atom feed"
-msgstr "atom feed"
-
#: mediagoblin/templates/mediagoblin/submit/start.html:26
msgid "Submit yer media"
msgstr "Envie sua mídia"
-#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
+#: mediagoblin/templates/mediagoblin/submit/start.html:29
+msgid "Submit"
+msgstr "Enviar"
+
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32
#, python-format
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
msgstr ""
-#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:30
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
msgid "Sorry, no such user found."
msgstr "Desculpe, tal usuário não encontrado."
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:37
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:57
-msgid "Verification needed"
-msgstr "Verificação necessária"
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
+#, python-format
+msgid "Really delete %(title)s?"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36
+msgid ""
+"If you choose yes, the media entry will be deleted "
+"<strong>permanently.</strong>"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22
+msgid "Media processing panel"
+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 ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28
+msgid "Media in-processing"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46
+msgid "No media in-processing"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50
+msgid "These uploads failed to process:"
+msgstr ""
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:40
-msgid "Almost done! Your account still needs to be verified."
-msgstr "Quase pronto! Sua conta precisa de verificação."
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
+msgid "Email verification needed"
+msgstr ""
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:45
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
+msgid "Almost done! Your account still needs to be activated."
+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 "Receberá um email com instruções de como fazer."
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:49
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:51
msgid "In case it doesn't:"
msgstr "Caso contrário:"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:52
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:54
msgid "Resend verification email"
msgstr "Reenviar email de verificação"
-#: 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."
+" activated."
msgstr ""
-"Alguém já registrou uma conta com este nome, mas ainda tem que ser "
-"verificada."
-#: 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 "
@@ -293,18 +371,57 @@ msgstr ""
"Se você é essa pessoa, mas você perdeu seu e-mail de verificação, você pode "
"<a href=\"%(login_url)s\">efetuar login</a> e reenviá-la."
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:76
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:78
#, python-format
msgid "%(username)s's profile"
msgstr "Perfil de %(username)s"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:84
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:85
+msgid "Here's a spot to tell others about yourself."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:90
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:108
msgid "Edit profile"
msgstr "Editar perfil"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:95
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
+msgid "This user hasn't filled in their profile (yet)."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:122
#, python-format
msgid "View all of %(username)s's media"
msgstr ""
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:135
+msgid ""
+"This is where your media will appear, but you don't seem to have added "
+"anything yet."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:141
+msgid "Add media"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:147
+msgid "There doesn't seem to be any media here yet..."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21
+msgid "feed icon"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23
+msgid "Atom feed"
+msgstr ""
+
+#: mediagoblin/user_pages/forms.py:24
+msgid "Comment"
+msgstr ""
+
+#: mediagoblin/user_pages/views.py:176
+msgid "You are about to delete another user's media. Proceed with caution."
+msgstr ""
+
diff --git a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo
index 361846d4..4c3e785c 100644
--- a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo
+++ b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo
Binary files differ
diff --git a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po
index feb261c8..1c366b06 100644
--- a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po
@@ -7,9 +7,9 @@ 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:52+0000\n"
-"Last-Translator: gap <gapop@hotmail.com>\n"
+"POT-Creation-Date: 2011-08-30 22:51-0500\n"
+"PO-Revision-Date: 2011-08-31 03:51+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"
@@ -18,35 +18,55 @@ msgstr ""
"Language: ro\n"
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1))\n"
-#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46
+#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54
msgid "Username"
msgstr "Nume de utilizator"
-#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50
+#: mediagoblin/auth/forms.py:28
+msgid "This is the name other users will identify you with."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58
msgid "Password"
msgstr "Parolă"
-#: mediagoblin/auth/forms.py:34
+#: mediagoblin/auth/forms.py:36
msgid "Passwords must match."
msgstr "Parolele trebuie să fie identice."
-#: mediagoblin/auth/forms.py:36
+#: mediagoblin/auth/forms.py:37
+msgid "Try to use a strong password!"
+msgstr ""
+
+#: mediagoblin/auth/forms.py:40
msgid "Confirm password"
msgstr "Reintroduceți parola"
-#: mediagoblin/auth/forms.py:39
+#: mediagoblin/auth/forms.py:42
+msgid "Type it again here to make sure there are no spelling mistakes."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:45
msgid "Email address"
msgstr "Adresa de e-mail"
+#: mediagoblin/auth/forms.py:48
+msgid "Your email will never be published."
+msgstr ""
+
#: mediagoblin/auth/views.py:40
msgid "Sorry, registration is disabled on this instance."
msgstr "Ne pare rău, dar înscrierile sunt dezactivate pe această instanță."
-#: mediagoblin/auth/views.py:55
+#: mediagoblin/auth/views.py:58
msgid "Sorry, a user with that name already exists."
msgstr "Ne pare rău, există deja un utilizator cu același nume."
-#: mediagoblin/auth/views.py:152
+#: mediagoblin/auth/views.py:62
+msgid "Sorry, that email address has already been taken."
+msgstr "Ne pare rău, această adresă de e-mail este deja rezervată."
+
+#: mediagoblin/auth/views.py:160
msgid ""
"Your email address has been verified. You may now login, edit your profile, "
"and submit images!"
@@ -54,16 +74,16 @@ msgstr ""
"Adresa dvs. de e-mail a fost confirmată. Puteți să vă autentificați, să vă "
"modificați profilul și să trimiteți imagini!"
-#: mediagoblin/auth/views.py:158
+#: mediagoblin/auth/views.py:166
msgid "The verification key or user id is incorrect"
msgstr "Cheie de verificare sau user ID incorect."
-#: mediagoblin/auth/views.py:179
+#: mediagoblin/auth/views.py:187
#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22
msgid "Resent your verification email."
msgstr "E-mail-ul de verificare a fost retrimis."
-#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26
+#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27
msgid "Title"
msgstr "Titlu"
@@ -87,105 +107,139 @@ msgstr "Biografie"
msgid "Website"
msgstr "Sit Web"
-#: mediagoblin/edit/forms.py:43
-msgid "Improperly formed URL"
-msgstr "Adresă URL incorectă"
-
-#: mediagoblin/edit/views.py:54
+#: mediagoblin/edit/views.py:66
msgid "An entry with that slug already exists for this user."
msgstr ""
"Există deja un entry cu același identificator pentru acest utilizator."
-#: mediagoblin/edit/views.py:75
+#: mediagoblin/edit/views.py:95
msgid "You are editing another user's media. Proceed with caution."
msgstr "Editați fișierul unui alt utilizator. Se recomandă prudență."
-#: mediagoblin/edit/views.py:96
+#: mediagoblin/edit/views.py:166
msgid "You are editing a user's profile. Proceed with caution."
msgstr "Editați profilul unui utilizator. Se recomandă prudență."
-#: mediagoblin/submit/forms.py:29
+#: mediagoblin/process_media/errors.py:44
+msgid "Invalid file given for media type."
+msgstr "Formatul fișierului nu corespunde cu tipul de media selectat."
+
+#: mediagoblin/submit/forms.py:25
msgid "File"
msgstr "Fișier"
-#: mediagoblin/submit/views.py:45
+#: mediagoblin/submit/views.py:47
msgid "You must provide a file."
msgstr "Trebuie să selectați un fișier."
-#: mediagoblin/submit/views.py:48
+#: mediagoblin/submit/views.py:50
msgid "The file doesn't seem to be an image!"
msgstr "Fișierul nu pare a fi o imagine!"
-#: mediagoblin/submit/views.py:96
+#: mediagoblin/submit/views.py:122
msgid "Woohoo! Submitted!"
msgstr "Gata, trimis!"
+#: mediagoblin/templates/mediagoblin/404.html:21
+msgid "Oops!"
+msgstr "Oops!"
+
+#: mediagoblin/templates/mediagoblin/404.html:24
+msgid "There doesn't seem to be a page at this address. Sorry!"
+msgstr "Ne pare rău, nu există nicio pagină la această adresă."
+
+#: mediagoblin/templates/mediagoblin/404.html:26
+msgid ""
+"If you're sure the address is correct, maybe the page you're looking for has"
+" been moved or deleted."
+msgstr ""
+"Dacă sunteți sigur că adresa este coresctă, poate că pagina pe care o "
+"căutați a fost mutată sau ștearsă."
+
+#: mediagoblin/templates/mediagoblin/404.html:32
+msgid "Image of 404 goblin stressing out"
+msgstr "Imagine cu elful 404 stresat."
+
#: mediagoblin/templates/mediagoblin/base.html:22
msgid "GNU MediaGoblin"
msgstr "GNU MediaGoblin"
-#: mediagoblin/templates/mediagoblin/base.html:45
-msgid "Mediagoblin logo"
-msgstr "Logo MediaGoblin"
+#: mediagoblin/templates/mediagoblin/base.html:47
+msgid "MediaGoblin logo"
+msgstr "logo MediaGoblin"
-#: mediagoblin/templates/mediagoblin/base.html:51
+#: mediagoblin/templates/mediagoblin/base.html:52
msgid "Submit media"
-msgstr "Transmiteți fișier"
+msgstr "Transmiteți un fișier media"
-#: mediagoblin/templates/mediagoblin/base.html:62
+#: mediagoblin/templates/mediagoblin/base.html:63
msgid "verify your email!"
msgstr "verificați e-mail-ul!"
-#: mediagoblin/templates/mediagoblin/base.html:72
-msgid "Login"
+#: mediagoblin/templates/mediagoblin/base.html:73
+#: mediagoblin/templates/mediagoblin/auth/login.html:26
+#: mediagoblin/templates/mediagoblin/auth/login.html:34
+msgid "Log in"
msgstr "Autentificare"
-#: mediagoblin/templates/mediagoblin/base.html:88
+#: mediagoblin/templates/mediagoblin/base.html:89
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
-"href=\"http://gnu.org/\">GNU project</a>"
+"href=\"http://gnu.org/\">GNU</a> project"
msgstr ""
-"Construit cu <a href=\"http://mediagoblin.org\">MediaGoblin</a>, un <a "
-"href=\"http://gnu.org/\">proiect GNU</a>"
-#: mediagoblin/templates/mediagoblin/root.html:21
-msgid "Welcome to GNU MediaGoblin!"
-msgstr "Bun venit la GNU MediaGoblin!"
+#: mediagoblin/templates/mediagoblin/root.html:27
+msgid "Hi there, media lover! MediaGoblin is..."
+msgstr "Bună! MediaGoblin este..."
-#: mediagoblin/templates/mediagoblin/root.html:26
-msgid "Submit an item"
-msgstr "Trimite un fișier"
+#: mediagoblin/templates/mediagoblin/root.html:29
+msgid "The perfect place for your media!"
+msgstr "Locul perfect pentru fișierele tale media!"
+
+#: mediagoblin/templates/mediagoblin/root.html:30
+msgid ""
+"A place for people to collaborate and show off original and derived "
+"creations!"
+msgstr ""
+"Un loc unde oamenii colaborează și își expun creațiile originale și "
+"derivate!"
#: mediagoblin/templates/mediagoblin/root.html:31
-#, python-format
-msgid "If you have an account, you can <a href=\"%(login_url)s\">Login</a>."
+msgid ""
+"Free, as in freedom. (We’re a <a href=\"http://gnu.org\">GNU</a> project, "
+"after all.)"
msgstr ""
-"Dacă aveți deja un cont, vă puteți <a "
-"href=\"%(login_url)s\">autentifica</a>."
+"Liber. (Suntem un proiect <a href=\"http://gnu.org\">GNU</a>, până la urmă.)"
-#: mediagoblin/templates/mediagoblin/root.html:37
-#, python-format
+#: mediagoblin/templates/mediagoblin/root.html:32
msgid ""
-"If you don't have an account, please <a "
-"href=\"%(register_url)s\">Register</a>."
+"Aiming to make the world a better place through decentralization and "
+"(eventually, coming soon!) federation!"
msgstr ""
-"Dacă nu aveți cont, vă rugăm să vă <a "
-"href=\"%(register_url)s\">înregistrați</a>."
+"Un pas spre o lume mai bună prin descentralizare și (în curând) "
+"federalizare!"
-#: mediagoblin/templates/mediagoblin/auth/login.html:26
-msgid "Log in"
-msgstr "Autentificare"
+#: mediagoblin/templates/mediagoblin/root.html:33
+msgid ""
+"Built for extensibility. (Multiple media types coming soon to the software,"
+" including video support!)"
+msgstr ""
+"Proiectat să fie extensibil. (Software-ul va avea în curând suport pentru "
+"multiple formate de media, inclusiv pentru video!)"
-#: mediagoblin/templates/mediagoblin/auth/login.html:29
-msgid "Login failed!"
-msgstr "Autentificare nereușită!"
+#: mediagoblin/templates/mediagoblin/root.html:34
+msgid ""
+"Powered by people like you. (<a "
+"href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this"
+" software!</a>)"
+msgstr ""
+"Animat de oameni ca tine. (<a "
+"href=\"http://mediagoblin.org/pages/join.html\">Ne poți ajuta să îmbunătățim"
+" acest software!</a>)"
-#: 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
-msgid "Submit"
-msgstr "Trimite"
+#: mediagoblin/templates/mediagoblin/auth/login.html:29
+msgid "Logging in failed!"
+msgstr "Autentificare eșuată!"
#: mediagoblin/templates/mediagoblin/auth/login.html:42
msgid "Don't have an account yet?"
@@ -199,6 +253,10 @@ msgstr "Creați-l aici!"
msgid "Create an account!"
msgstr "Creați un cont!"
+#: mediagoblin/templates/mediagoblin/auth/register.html:30
+msgid "Create"
+msgstr "Creează"
+
#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19
#, python-format
msgid ""
@@ -225,6 +283,8 @@ msgid "Cancel"
msgstr "Anulare"
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
+#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44
msgid "Save changes"
msgstr "Salvează modificările"
@@ -233,61 +293,91 @@ msgstr "Salvează modificările"
msgid "Editing %(username)s's profile"
msgstr "Editare profil %(username)s"
-#: mediagoblin/templates/mediagoblin/listings/tag.html:29
+#: mediagoblin/templates/mediagoblin/listings/tag.html:31
msgid "Media tagged with:"
msgstr "Etichete:"
-#: mediagoblin/templates/mediagoblin/listings/tag.html:40
-#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:101
-msgid "atom feed"
-msgstr "flux atom"
-
#: mediagoblin/templates/mediagoblin/submit/start.html:26
msgid "Submit yer media"
-msgstr "Trimite fișierele tale"
+msgstr "Trimite fișierele tale media"
-#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
+#: mediagoblin/templates/mediagoblin/submit/start.html:29
+msgid "Submit"
+msgstr "Trimite"
+
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32
#, python-format
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
-msgstr "Fișierele lui <a href=\"%(user_url)s\">%(username)s</a>"
+msgstr "Fișierele media ale lui <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:52
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
msgid "Sorry, no such user found."
msgstr "Ne pare rău, nu am găsit utilizatorul căutat."
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:37
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:57
-msgid "Verification needed"
-msgstr "Confirmare necesară"
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
+#, python-format
+msgid "Really delete %(title)s?"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36
+msgid ""
+"If you choose yes, the media entry will be deleted "
+"<strong>permanently.</strong>"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22
+msgid "Media processing panel"
+msgstr "Panou de procesare media"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:40
-msgid "Almost done! Your account still needs to be verified."
-msgstr "Aproape gata! Este necesară confirmarea contului dvs."
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25
+msgid ""
+"You can track the state of media being processed for your gallery here."
+msgstr "Aici poți urmări stadiul procesării fișierelor media din galeria ta."
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28
+msgid "Media in-processing"
+msgstr "Fișiere în curs de procesare"
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46
+msgid "No media in-processing"
+msgstr "Niciun fișier în curs de procesare"
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50
+msgid "These uploads failed to process:"
+msgstr "Aceste fișiere nu au putut fi procesate:"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
+msgid "Email verification needed"
+msgstr "Este necesară verificarea adresei de e-mail"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:45
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
+msgid "Almost done! Your account still needs to be activated."
+msgstr "Aproape gata! Mai trebuie doar să activezi contul."
+
+#: 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 "Veți primi în scurt timp un mesaj prin e-mail cu instrucțiuni."
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:49
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:51
msgid "In case it doesn't:"
msgstr "Dacă nu primiți mesajul:"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:52
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:54
msgid "Resend verification email"
msgstr "Retrimite mesajul de verificare"
-#: 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."
+" activated."
msgstr ""
-"Cineva s-a înscris pe site cu acest nume de utilizator, dar nu a fost "
-"confirmat încă."
+"Cineva a înregistrat un cont cu acest nume de utilizator, dar contul nu a "
+"fost încă activat."
-#: 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 "
@@ -297,18 +387,59 @@ msgstr ""
"verificare, puteți să vă <a href=\"%(login_url)s\">autentificați</a> pentru "
"a-l retrimite."
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:76
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:78
#, python-format
msgid "%(username)s's profile"
msgstr "Profil %(username)s"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:84
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:85
+msgid "Here's a spot to tell others about yourself."
+msgstr "Aici poți spune altora ceva despre tine."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:90
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:108
msgid "Edit profile"
msgstr "Editare profil"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:95
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
+msgid "This user hasn't filled in their profile (yet)."
+msgstr "Acest utilizator nu și-a completat (încă) profilul."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:122
#, python-format
msgid "View all of %(username)s's media"
-msgstr "Toate fișierele lui %(username)s"
+msgstr "Toate fișierele media ale lui %(username)s"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:135
+msgid ""
+"This is where your media will appear, but you don't seem to have added "
+"anything yet."
+msgstr ""
+"Aici vor apărea fișierele tale media, dar se pare că încă nu ai trimis "
+"nimic."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:141
+msgid "Add media"
+msgstr "Trimite fișier"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:147
+msgid "There doesn't seem to be any media here yet..."
+msgstr "Nu pare să existe niciun fișier media deocamdată..."
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21
+msgid "feed icon"
+msgstr "icon feed"
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23
+msgid "Atom feed"
+msgstr "feed Atom"
+
+#: mediagoblin/user_pages/forms.py:24
+msgid "Comment"
+msgstr "Scrie un comentariu"
+
+#: mediagoblin/user_pages/views.py:176
+msgid "You are about to delete another user's media. Proceed with caution."
+msgstr ""
diff --git a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo
new file mode 100644
index 00000000..babdb60e
--- /dev/null
+++ b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo
Binary files differ
diff --git a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po
new file mode 100644
index 00000000..6fee7f3a
--- /dev/null
+++ b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po
@@ -0,0 +1,438 @@
+# Translations template for PROJECT.
+# Copyright (C) 2011 ORGANIZATION
+# This file is distributed under the same license as the PROJECT project.
+#
+# <deletesoftware@yandex.ru>, 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-30 22:51-0500\n"
+"PO-Revision-Date: 2011-08-31 03:51+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: 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/auth/forms.py:24 mediagoblin/auth/forms.py:54
+msgid "Username"
+msgstr "Логин"
+
+#: mediagoblin/auth/forms.py:28
+msgid "This is the name other users will identify you with."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58
+msgid "Password"
+msgstr "Пароль"
+
+#: mediagoblin/auth/forms.py:36
+msgid "Passwords must match."
+msgstr "Пароли должны совпадать."
+
+#: mediagoblin/auth/forms.py:37
+msgid "Try to use a strong password!"
+msgstr ""
+
+#: mediagoblin/auth/forms.py:40
+msgid "Confirm password"
+msgstr "Подтвердите пароль"
+
+#: mediagoblin/auth/forms.py:42
+msgid "Type it again here to make sure there are no spelling mistakes."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:45
+msgid "Email address"
+msgstr "Адрес электронной почты"
+
+#: mediagoblin/auth/forms.py:48
+msgid "Your email will never be published."
+msgstr ""
+
+#: mediagoblin/auth/views.py:40
+msgid "Sorry, registration is disabled on this instance."
+msgstr "Извините, на этом разделе регистрация запрещена."
+
+#: mediagoblin/auth/views.py:58
+msgid "Sorry, a user with that name already exists."
+msgstr "Извините, пользователь с этим именем уже зарегистрирован."
+
+#: mediagoblin/auth/views.py:62
+msgid "Sorry, that email address has already been taken."
+msgstr "Извините, этот адрес электнонной почты уже занят."
+
+#: mediagoblin/auth/views.py:160
+msgid ""
+"Your email address has been verified. You may now login, edit your profile, "
+"and submit images!"
+msgstr ""
+"Адрес вашей электронной потвержден. Вы теперь можете войти и начать "
+"редактировать свой профиль и загружать новые изображения!"
+
+#: mediagoblin/auth/views.py:166
+msgid "The verification key or user id is incorrect"
+msgstr "Неверный ключ проверки или идентификатор пользователя"
+
+#: mediagoblin/auth/views.py:187
+#: 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/views.py:66
+msgid "An entry with that slug already exists for this user."
+msgstr ""
+"У этого пользователя уже есть файл с такой отличительной частью адреса."
+
+#: mediagoblin/edit/views.py:95
+msgid "You are editing another user's media. Proceed with caution."
+msgstr "Вы редактируете файлы другого пользователя. Будьте осторожны."
+
+#: mediagoblin/edit/views.py:166
+msgid "You are editing a user's profile. Proceed with caution."
+msgstr "Вы редактируете профиль пользователя. Будьте осторожны."
+
+#: mediagoblin/process_media/errors.py:44
+msgid "Invalid file given for media type."
+msgstr "Неправильный формат файла."
+
+#: mediagoblin/submit/forms.py:25
+msgid "File"
+msgstr "Файл"
+
+#: mediagoblin/submit/views.py:47
+msgid "You must provide a file."
+msgstr "Вы должны загрузить файл."
+
+#: mediagoblin/submit/views.py:50
+msgid "The file doesn't seem to be an image!"
+msgstr "Файл, похоже, не является картинкой!"
+
+#: mediagoblin/submit/views.py:122
+msgid "Woohoo! Submitted!"
+msgstr "Ура! Файл загружен!"
+
+#: mediagoblin/templates/mediagoblin/404.html:21
+msgid "Oops!"
+msgstr "Ой!"
+
+#: mediagoblin/templates/mediagoblin/404.html:24
+msgid "There doesn't seem to be a page at this address. Sorry!"
+msgstr "Кажется, такой страницы не существует. Уж извините!"
+
+#: mediagoblin/templates/mediagoblin/404.html:26
+msgid ""
+"If you're sure the address is correct, maybe the page you're looking for has"
+" been moved or deleted."
+msgstr "Возможно, страница которую вы ищете была удалена или переехала."
+
+#: mediagoblin/templates/mediagoblin/404.html:32
+msgid "Image of 404 goblin stressing out"
+msgstr "Изображение 404 нервничающего гоблина"
+
+#: mediagoblin/templates/mediagoblin/base.html:22
+msgid "GNU MediaGoblin"
+msgstr "GNU MediaGoblin"
+
+#: mediagoblin/templates/mediagoblin/base.html:47
+msgid "MediaGoblin logo"
+msgstr "Символ MediaGoblin"
+
+#: mediagoblin/templates/mediagoblin/base.html:52
+msgid "Submit media"
+msgstr "Загрузить файл"
+
+#: mediagoblin/templates/mediagoblin/base.html:63
+msgid "verify your email!"
+msgstr "подтвердите ваш адрес электронной почты!"
+
+#: mediagoblin/templates/mediagoblin/base.html:73
+#: mediagoblin/templates/mediagoblin/auth/login.html:26
+#: mediagoblin/templates/mediagoblin/auth/login.html:34
+msgid "Log in"
+msgstr "Войти"
+
+#: mediagoblin/templates/mediagoblin/base.html:89
+msgid ""
+"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
+"href=\"http://gnu.org/\">GNU</a> project"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/root.html:27
+msgid "Hi there, media lover! MediaGoblin is..."
+msgstr "Привет, любитель мультимедиа! Mediagoblin это..."
+
+#: mediagoblin/templates/mediagoblin/root.html:29
+msgid "The perfect place for your media!"
+msgstr "Отличное место для ваших файлов!"
+
+#: mediagoblin/templates/mediagoblin/root.html:30
+msgid ""
+"A place for people to collaborate and show off original and derived "
+"creations!"
+msgstr ""
+"Место для того, чтобы совместно работать или просто показать свои "
+"оригинальные и/или заимствованные создания!"
+
+#: mediagoblin/templates/mediagoblin/root.html:31
+msgid ""
+"Free, as in freedom. (We’re a <a href=\"http://gnu.org\">GNU</a> project, "
+"after all.)"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/root.html:32
+msgid ""
+"Aiming to make the world a better place through decentralization and "
+"(eventually, coming soon!) federation!"
+msgstr ""
+"Попытка сделать мир лучше с помощью децентрализации и (надеемся, что скоро!)"
+" интеграции!"
+
+#: mediagoblin/templates/mediagoblin/root.html:33
+msgid ""
+"Built for extensibility. (Multiple media types coming soon to the software,"
+" including video support!)"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/root.html:34
+msgid ""
+"Powered by people like you. (<a "
+"href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this"
+" software!</a>)"
+msgstr ""
+"Поддерживается такими же, как и ты. (<a "
+"href=\"http://mediagoblin.org/pages/join.html\">Ты можешь помочь сделать это"
+" ПО лучше!</a>)"
+
+#: mediagoblin/templates/mediagoblin/auth/login.html:29
+msgid "Logging in failed!"
+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/register.html:30
+msgid "Create"
+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
+#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44
+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/submit/start.html:26
+msgid "Submit yer media"
+msgstr "Загрузить файл(ы)"
+
+#: mediagoblin/templates/mediagoblin/submit/start.html:29
+msgid "Submit"
+msgstr "Подтвердить"
+
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32
+#, python-format
+msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
+msgid "Sorry, no such user found."
+msgstr "Извините, но такой пользователь не найден."
+
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
+#, python-format
+msgid "Really delete %(title)s?"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36
+msgid ""
+"If you choose yes, the media entry will be deleted "
+"<strong>permanently.</strong>"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22
+msgid "Media processing panel"
+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 ""
+"Вы можете следить за статусом обработки файлов для вашей галереи здесь."
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28
+msgid "Media in-processing"
+msgstr "Обработка файлов в процессе"
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46
+msgid "No media in-processing"
+msgstr "Нету файлов для обработки"
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50
+msgid "These uploads failed to process:"
+msgstr "Обработка этих файлов вызвала ошибку:"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
+msgid "Email verification needed"
+msgstr "Нужно подтверджение почтового адреса"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
+msgid "Almost done! Your account still needs to be activated."
+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"
+" activated."
+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:85
+msgid "Here's a spot to tell others about yourself."
+msgstr "Здесь вы можете рассказать о себе."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:90
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:108
+msgid "Edit profile"
+msgstr "Редактировать профиль"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
+msgid "This user hasn't filled in their profile (yet)."
+msgstr "Это пользователь не заполнил свой профайл (пока)."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:122
+#, python-format
+msgid "View all of %(username)s's media"
+msgstr "Смотреть все файлы %(username)s"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:135
+msgid ""
+"This is where your media will appear, but you don't seem to have added "
+"anything yet."
+msgstr "Ваши файлы появятся здесь, кодга вы их добавите."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:141
+msgid "Add media"
+msgstr "Добавить файлы"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:147
+msgid "There doesn't seem to be any media here yet..."
+msgstr "Пока что тут файлов нет..."
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21
+msgid "feed icon"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23
+msgid "Atom feed"
+msgstr "лента в формате Atom"
+
+#: mediagoblin/user_pages/forms.py:24
+msgid "Comment"
+msgstr "Комментарий"
+
+#: mediagoblin/user_pages/views.py:176
+msgid "You are about to delete another user's media. Proceed with caution."
+msgstr ""
+
+
diff --git a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.mo
index a70b1fef..97723319 100644
--- a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.mo
+++ b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.mo
Binary files differ
diff --git a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po
index bf2dd4fa..c2a28308 100644
--- a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po
@@ -7,9 +7,9 @@ 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:28+0000\n"
-"Last-Translator: JLP <jlp@holodeck1.com>\n"
+"POT-Creation-Date: 2011-08-30 22:51-0500\n"
+"PO-Revision-Date: 2011-08-31 03:51+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"
@@ -18,35 +18,55 @@ msgstr ""
"Language: sl\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3)\n"
-#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46
+#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54
msgid "Username"
msgstr "Uporabniško ime"
-#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50
+#: mediagoblin/auth/forms.py:28
+msgid "This is the name other users will identify you with."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58
msgid "Password"
msgstr "Geslo"
-#: mediagoblin/auth/forms.py:34
+#: mediagoblin/auth/forms.py:36
msgid "Passwords must match."
msgstr "Gesli morata biti enaki."
-#: mediagoblin/auth/forms.py:36
+#: mediagoblin/auth/forms.py:37
+msgid "Try to use a strong password!"
+msgstr ""
+
+#: mediagoblin/auth/forms.py:40
msgid "Confirm password"
msgstr "Potrdite geslo"
-#: mediagoblin/auth/forms.py:39
+#: mediagoblin/auth/forms.py:42
+msgid "Type it again here to make sure there are no spelling mistakes."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:45
msgid "Email address"
msgstr "E-poštni naslov"
+#: mediagoblin/auth/forms.py:48
+msgid "Your email will never be published."
+msgstr ""
+
#: mediagoblin/auth/views.py:40
msgid "Sorry, registration is disabled on this instance."
msgstr "Oprostite, prijava za ta izvod ni omogočena."
-#: mediagoblin/auth/views.py:55
+#: mediagoblin/auth/views.py:58
msgid "Sorry, a user with that name already exists."
msgstr "Oprostite, uporabnik s tem imenom že obstaja."
-#: mediagoblin/auth/views.py:152
+#: mediagoblin/auth/views.py:62
+msgid "Sorry, that email address has already been taken."
+msgstr "Oprostite, ta e-poštni naslov je že v uporabi."
+
+#: mediagoblin/auth/views.py:160
msgid ""
"Your email address has been verified. You may now login, edit your profile, "
"and submit images!"
@@ -54,16 +74,16 @@ msgstr ""
"Vaš e-poštni naslov je bil potrjen. Sedaj se lahko prijavite, uredite svoj "
"profil in pošljete slike."
-#: mediagoblin/auth/views.py:158
+#: mediagoblin/auth/views.py:166
msgid "The verification key or user id is incorrect"
msgstr "Potrditveni ključ ali uporabniška identifikacija je napačna"
-#: mediagoblin/auth/views.py:179
+#: mediagoblin/auth/views.py:187
#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22
msgid "Resent your verification email."
msgstr "Ponovno pošiljanje potrditvene e-pošte."
-#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26
+#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27
msgid "Title"
msgstr "Naslov"
@@ -87,100 +107,137 @@ msgstr "Biografija"
msgid "Website"
msgstr "Spletna stran"
-#: mediagoblin/edit/forms.py:43
-msgid "Improperly formed URL"
-msgstr "Napačno oblikovan URL"
-
-#: mediagoblin/edit/views.py:54
+#: mediagoblin/edit/views.py:66
msgid "An entry with that slug already exists for this user."
msgstr "Vnos s to oznako za tega uporabnika že obstaja."
-#: mediagoblin/edit/views.py:75
+#: mediagoblin/edit/views.py:95
msgid "You are editing another user's media. Proceed with caution."
msgstr "Urejate vsebino drugega uporabnika. Nadaljujte pazljivo."
-#: mediagoblin/edit/views.py:96
+#: mediagoblin/edit/views.py:166
msgid "You are editing a user's profile. Proceed with caution."
msgstr "Urejate uporabniški profil. Nadaljujte pazljivo."
-#: mediagoblin/submit/forms.py:29
+#: mediagoblin/process_media/errors.py:44
+msgid "Invalid file given for media type."
+msgstr "Za vrsto vsebine je bila podana napačna datoteka."
+
+#: mediagoblin/submit/forms.py:25
msgid "File"
msgstr "Datoteka"
-#: mediagoblin/submit/views.py:45
+#: mediagoblin/submit/views.py:47
msgid "You must provide a file."
msgstr "Podati morate datoteko."
-#: mediagoblin/submit/views.py:48
+#: mediagoblin/submit/views.py:50
msgid "The file doesn't seem to be an image!"
msgstr "Kot kaže datoteka ni slika."
-#: mediagoblin/submit/views.py:96
+#: mediagoblin/submit/views.py:122
msgid "Woohoo! Submitted!"
msgstr "Juhej! Poslano."
+#: mediagoblin/templates/mediagoblin/404.html:21
+msgid "Oops!"
+msgstr "Opa!"
+
+#: mediagoblin/templates/mediagoblin/404.html:24
+msgid "There doesn't seem to be a page at this address. Sorry!"
+msgstr "Oprostite. Videti je, da na tem naslovu ni nobene strani."
+
+#: mediagoblin/templates/mediagoblin/404.html:26
+msgid ""
+"If you're sure the address is correct, maybe the page you're looking for has"
+" been moved or deleted."
+msgstr ""
+"Če ste v točnost naslova prepričani, je bila iskana stran morda premaknjena "
+"ali pa izbrisana."
+
+#: mediagoblin/templates/mediagoblin/404.html:32
+msgid "Image of 404 goblin stressing out"
+msgstr "Slika napake 404 s paničnim škratom"
+
#: mediagoblin/templates/mediagoblin/base.html:22
msgid "GNU MediaGoblin"
msgstr "GNU MediaGoblin"
-#: mediagoblin/templates/mediagoblin/base.html:45
-msgid "Mediagoblin logo"
+#: mediagoblin/templates/mediagoblin/base.html:47
+msgid "MediaGoblin logo"
msgstr "Logotip MediaGoblin"
-#: mediagoblin/templates/mediagoblin/base.html:51
+#: mediagoblin/templates/mediagoblin/base.html:52
msgid "Submit media"
msgstr "Pošlji vsebino"
-#: mediagoblin/templates/mediagoblin/base.html:62
+#: mediagoblin/templates/mediagoblin/base.html:63
msgid "verify your email!"
msgstr "Preverite svojo e-pošto."
-#: mediagoblin/templates/mediagoblin/base.html:72
-msgid "Login"
+#: mediagoblin/templates/mediagoblin/base.html:73
+#: mediagoblin/templates/mediagoblin/auth/login.html:26
+#: mediagoblin/templates/mediagoblin/auth/login.html:34
+msgid "Log in"
msgstr "Prijava"
-#: mediagoblin/templates/mediagoblin/base.html:88
+#: mediagoblin/templates/mediagoblin/base.html:89
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
-"href=\"http://gnu.org/\">GNU project</a>"
+"href=\"http://gnu.org/\">GNU</a> project"
msgstr ""
-"Stran poganja <a href=\"http://mediagoblin.org\">MediaGoblin</a>, del <a "
-"href=\"http://gnu.org/\">projekta GNU</a>"
-#: mediagoblin/templates/mediagoblin/root.html:21
-msgid "Welcome to GNU MediaGoblin!"
-msgstr "Dobrodošli v GNU MediaGoblin!"
+#: mediagoblin/templates/mediagoblin/root.html:27
+msgid "Hi there, media lover! MediaGoblin is..."
+msgstr "Pozdravljen, ljubitelj večpredstavnostnih vsebin! MediaGoblin je ..."
-#: mediagoblin/templates/mediagoblin/root.html:26
-msgid "Submit an item"
-msgstr "Pošljite datoteko"
+#: mediagoblin/templates/mediagoblin/root.html:29
+msgid "The perfect place for your media!"
+msgstr "Popolno mesto za vaše večpredstavnostne vsebine."
+
+#: mediagoblin/templates/mediagoblin/root.html:30
+msgid ""
+"A place for people to collaborate and show off original and derived "
+"creations!"
+msgstr ""
+"Mesto, kjer ljudje lahko sodelujejo in razkazujejo originalne in predelane "
+"stvaritve."
#: mediagoblin/templates/mediagoblin/root.html:31
-#, python-format
-msgid "If you have an account, you can <a href=\"%(login_url)s\">Login</a>."
-msgstr "Če imate račun, se lahko <a href=\"%(login_url)s\">Prijavite</a>."
+msgid ""
+"Free, as in freedom. (We’re a <a href=\"http://gnu.org\">GNU</a> project, "
+"after all.)"
+msgstr ""
-#: mediagoblin/templates/mediagoblin/root.html:37
-#, python-format
+#: mediagoblin/templates/mediagoblin/root.html:32
msgid ""
-"If you don't have an account, please <a "
-"href=\"%(register_url)s\">Register</a>."
-msgstr "Če računa še nimate, se <a href=\"%(register_url)s\">Registrirajte</a>."
+"Aiming to make the world a better place through decentralization and "
+"(eventually, coming soon!) federation!"
+msgstr ""
+"Ustvarjen z namenom izboljšati svet, s pomočjo decentralizacije in (kmalu) "
+"federacije."
-#: mediagoblin/templates/mediagoblin/auth/login.html:26
-msgid "Log in"
-msgstr "Prijava"
+#: mediagoblin/templates/mediagoblin/root.html:33
+msgid ""
+"Built for extensibility. (Multiple media types coming soon to the software,"
+" including video support!)"
+msgstr ""
+"Zgrajen za razširjanje. (Kmalu bodo na voljo dodatne vrste vsebin, vključno "
+"podpora za video)"
-#: mediagoblin/templates/mediagoblin/auth/login.html:29
-msgid "Login failed!"
-msgstr "Neuspešna prijava."
+#: mediagoblin/templates/mediagoblin/root.html:34
+msgid ""
+"Powered by people like you. (<a "
+"href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this"
+" software!</a>)"
+msgstr ""
+"Sad dela ljudi, kot ste vi. (<a "
+"href=\"http://mediagoblin.org/pages/join.html\">Pri izboljševanju nam lahko "
+"pomagate tudi vi.</a>)"
-#: 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
-msgid "Submit"
-msgstr "Pošlji"
+#: mediagoblin/templates/mediagoblin/auth/login.html:29
+msgid "Logging in failed!"
+msgstr "Prijava ni uspela."
#: mediagoblin/templates/mediagoblin/auth/login.html:42
msgid "Don't have an account yet?"
@@ -194,6 +251,10 @@ msgstr "Ustvarite si ga."
msgid "Create an account!"
msgstr "Ustvarite račun."
+#: mediagoblin/templates/mediagoblin/auth/register.html:30
+msgid "Create"
+msgstr "Ustvari"
+
#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19
#, python-format
msgid ""
@@ -221,6 +282,8 @@ msgid "Cancel"
msgstr "Prekliči"
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
+#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44
msgid "Save changes"
msgstr "Shrani spremembe"
@@ -229,61 +292,91 @@ msgstr "Shrani spremembe"
msgid "Editing %(username)s's profile"
msgstr "Urejanje profila – %(username)s"
-#: mediagoblin/templates/mediagoblin/listings/tag.html:29
+#: mediagoblin/templates/mediagoblin/listings/tag.html:31
msgid "Media tagged with:"
msgstr "Vsebina označena z:"
-#: mediagoblin/templates/mediagoblin/listings/tag.html:40
-#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:101
-msgid "atom feed"
-msgstr "Vir Atom"
-
#: mediagoblin/templates/mediagoblin/submit/start.html:26
msgid "Submit yer media"
msgstr "Pošljite svojo vsebino"
-#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
+#: mediagoblin/templates/mediagoblin/submit/start.html:29
+msgid "Submit"
+msgstr "Pošlji"
+
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32
#, python-format
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
msgstr "Vsebina uporabnika <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:52
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
msgid "Sorry, no such user found."
msgstr "Oprostite, tega uporabnika ni bilo moč najti."
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:37
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:57
-msgid "Verification needed"
-msgstr "Potrebna je potrditev"
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
+#, python-format
+msgid "Really delete %(title)s?"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36
+msgid ""
+"If you choose yes, the media entry will be deleted "
+"<strong>permanently.</strong>"
+msgstr ""
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:40
-msgid "Almost done! Your account still needs to be verified."
-msgstr "Skoraj ste zaključili. Račun je potrebno le še potrditi."
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22
+msgid "Media processing panel"
+msgstr "Podokno obdelovanja vsebine"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:45
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25
+msgid ""
+"You can track the state of media being processed for your gallery here."
+msgstr "Tu lahko spremljate stanje vsebin, ki so v obdelavi za vašo galerijo."
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28
+msgid "Media in-processing"
+msgstr "Vsebina v obdelavi"
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46
+msgid "No media in-processing"
+msgstr "V obdelavi ni nobene vsebine"
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50
+msgid "These uploads failed to process:"
+msgstr "Teh vsebin ni bilo moč obdelati:"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
+msgid "Email verification needed"
+msgstr "Potrebna je potrditev prek e-pošte"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
+msgid "Almost done! Your account still needs to be activated."
+msgstr "Skoraj ste zaključili. Svoj račun morate le še aktivirati."
+
+#: 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 "V kratkem bi morali prejeti e-pošto z navodili, kako to storiti."
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:49
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:51
msgid "In case it doesn't:"
msgstr "Če je ne prejmete:"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:52
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:54
msgid "Resend verification email"
msgstr "Ponovno pošlji potrditveno e-pošto"
-#: 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."
+" activated."
msgstr ""
"Nekdo je s tem uporabniškim imenom že registriral račun, vendar mora biti še"
-" potrjen."
+" aktiviran."
-#: 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 "
@@ -292,18 +385,57 @@ msgstr ""
"Če ste ta oseba vi, a ste izgubili potrditveno e-pošto, se lahko <a "
"href=\"%(login_url)s\">prijavite</a> in jo ponovno pošljete."
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:76
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:78
#, python-format
msgid "%(username)s's profile"
msgstr "Profil – %(username)s"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:84
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:85
+msgid "Here's a spot to tell others about yourself."
+msgstr "Na tem mestu lahko drugim poveste nekaj o sebi."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:90
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:108
msgid "Edit profile"
msgstr "Uredi profil"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:95
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
+msgid "This user hasn't filled in their profile (yet)."
+msgstr "Ta uporabnik še ni izpolnil svojega profila."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:122
#, python-format
msgid "View all of %(username)s's media"
msgstr "Prikaži vso vsebino uporabnika %(username)s"
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:135
+msgid ""
+"This is where your media will appear, but you don't seem to have added "
+"anything yet."
+msgstr "Tu bo prikazana vaša vsebina, a trenutno še niste dodali nič."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:141
+msgid "Add media"
+msgstr "Dodaj vsebino"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:147
+msgid "There doesn't seem to be any media here yet..."
+msgstr "Videti je, da tu še ni nobene vsebine ..."
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21
+msgid "feed icon"
+msgstr "Ikona vira"
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23
+msgid "Atom feed"
+msgstr "Ikona Atom"
+
+#: mediagoblin/user_pages/forms.py:24
+msgid "Comment"
+msgstr "Komentar"
+
+#: mediagoblin/user_pages/views.py:176
+msgid "You are about to delete another user's media. Proceed with caution."
+msgstr ""
+
diff --git a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mo
index 153584d3..d3336ad0 100644
--- a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mo
+++ b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mo
Binary files differ
diff --git a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po
index ec8611ee..e37ae3c1 100644
--- a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po
@@ -6,8 +6,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 03:57+0000\n"
+"POT-Creation-Date: 2011-08-30 22:51-0500\n"
+"PO-Revision-Date: 2011-08-31 03:51+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: Serbian (http://www.transifex.net/projects/p/mediagoblin/team/sr/)\n"
"MIME-Version: 1.0\n"
@@ -17,50 +17,70 @@ msgstr ""
"Language: sr\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/auth/forms.py:24 mediagoblin/auth/forms.py:46
+#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54
msgid "Username"
msgstr ""
-#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50
+#: mediagoblin/auth/forms.py:28
+msgid "This is the name other users will identify you with."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58
msgid "Password"
msgstr ""
-#: mediagoblin/auth/forms.py:34
+#: mediagoblin/auth/forms.py:36
msgid "Passwords must match."
msgstr ""
-#: mediagoblin/auth/forms.py:36
+#: mediagoblin/auth/forms.py:37
+msgid "Try to use a strong password!"
+msgstr ""
+
+#: mediagoblin/auth/forms.py:40
msgid "Confirm password"
msgstr ""
-#: mediagoblin/auth/forms.py:39
+#: mediagoblin/auth/forms.py:42
+msgid "Type it again here to make sure there are no spelling mistakes."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:45
msgid "Email address"
msgstr ""
+#: mediagoblin/auth/forms.py:48
+msgid "Your email will never be published."
+msgstr ""
+
#: mediagoblin/auth/views.py:40
msgid "Sorry, registration is disabled on this instance."
msgstr ""
-#: mediagoblin/auth/views.py:55
+#: mediagoblin/auth/views.py:58
msgid "Sorry, a user with that name already exists."
msgstr ""
-#: mediagoblin/auth/views.py:152
+#: mediagoblin/auth/views.py:62
+msgid "Sorry, that email address has already been taken."
+msgstr ""
+
+#: mediagoblin/auth/views.py:160
msgid ""
"Your email address has been verified. You may now login, edit your profile, "
"and submit images!"
msgstr ""
-#: mediagoblin/auth/views.py:158
+#: mediagoblin/auth/views.py:166
msgid "The verification key or user id is incorrect"
msgstr ""
-#: mediagoblin/auth/views.py:179
+#: mediagoblin/auth/views.py:187
#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22
msgid "Resent your verification email."
msgstr ""
-#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26
+#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27
msgid "Title"
msgstr ""
@@ -84,97 +104,125 @@ msgstr ""
msgid "Website"
msgstr ""
-#: mediagoblin/edit/forms.py:43
-msgid "Improperly formed URL"
-msgstr ""
-
-#: mediagoblin/edit/views.py:54
+#: mediagoblin/edit/views.py:66
msgid "An entry with that slug already exists for this user."
msgstr ""
-#: mediagoblin/edit/views.py:75
+#: mediagoblin/edit/views.py:95
msgid "You are editing another user's media. Proceed with caution."
msgstr ""
-#: mediagoblin/edit/views.py:96
+#: mediagoblin/edit/views.py:166
msgid "You are editing a user's profile. Proceed with caution."
msgstr ""
-#: mediagoblin/submit/forms.py:29
+#: mediagoblin/process_media/errors.py:44
+msgid "Invalid file given for media type."
+msgstr ""
+
+#: mediagoblin/submit/forms.py:25
msgid "File"
msgstr ""
-#: mediagoblin/submit/views.py:45
+#: mediagoblin/submit/views.py:47
msgid "You must provide a file."
msgstr ""
-#: mediagoblin/submit/views.py:48
+#: mediagoblin/submit/views.py:50
msgid "The file doesn't seem to be an image!"
msgstr ""
-#: mediagoblin/submit/views.py:96
+#: mediagoblin/submit/views.py:122
msgid "Woohoo! Submitted!"
msgstr ""
+#: mediagoblin/templates/mediagoblin/404.html:21
+msgid "Oops!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/404.html:24
+msgid "There doesn't seem to be a page at this address. Sorry!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/404.html:26
+msgid ""
+"If you're sure the address is correct, maybe the page you're looking for has"
+" been moved or deleted."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/404.html:32
+msgid "Image of 404 goblin stressing out"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/base.html:22
msgid "GNU MediaGoblin"
msgstr ""
-#: mediagoblin/templates/mediagoblin/base.html:45
-msgid "Mediagoblin logo"
+#: mediagoblin/templates/mediagoblin/base.html:47
+msgid "MediaGoblin logo"
msgstr ""
-#: mediagoblin/templates/mediagoblin/base.html:51
+#: mediagoblin/templates/mediagoblin/base.html:52
msgid "Submit media"
msgstr ""
-#: mediagoblin/templates/mediagoblin/base.html:62
+#: mediagoblin/templates/mediagoblin/base.html:63
msgid "verify your email!"
msgstr ""
-#: mediagoblin/templates/mediagoblin/base.html:72
-msgid "Login"
+#: mediagoblin/templates/mediagoblin/base.html:73
+#: mediagoblin/templates/mediagoblin/auth/login.html:26
+#: mediagoblin/templates/mediagoblin/auth/login.html:34
+msgid "Log in"
msgstr ""
-#: mediagoblin/templates/mediagoblin/base.html:88
+#: mediagoblin/templates/mediagoblin/base.html:89
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
-"href=\"http://gnu.org/\">GNU project</a>"
+"href=\"http://gnu.org/\">GNU</a> project"
msgstr ""
-#: mediagoblin/templates/mediagoblin/root.html:21
-msgid "Welcome to GNU MediaGoblin!"
+#: mediagoblin/templates/mediagoblin/root.html:27
+msgid "Hi there, media lover! MediaGoblin is..."
msgstr ""
-#: mediagoblin/templates/mediagoblin/root.html:26
-msgid "Submit an item"
+#: mediagoblin/templates/mediagoblin/root.html:29
+msgid "The perfect place for your media!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/root.html:30
+msgid ""
+"A place for people to collaborate and show off original and derived "
+"creations!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
-#, python-format
-msgid "If you have an account, you can <a href=\"%(login_url)s\">Login</a>."
+msgid ""
+"Free, as in freedom. (We’re a <a href=\"http://gnu.org\">GNU</a> project, "
+"after all.)"
msgstr ""
-#: mediagoblin/templates/mediagoblin/root.html:37
-#, python-format
+#: mediagoblin/templates/mediagoblin/root.html:32
msgid ""
-"If you don't have an account, please <a "
-"href=\"%(register_url)s\">Register</a>."
+"Aiming to make the world a better place through decentralization and "
+"(eventually, coming soon!) federation!"
msgstr ""
-#: mediagoblin/templates/mediagoblin/auth/login.html:26
-msgid "Log in"
+#: mediagoblin/templates/mediagoblin/root.html:33
+msgid ""
+"Built for extensibility. (Multiple media types coming soon to the software,"
+" including video support!)"
msgstr ""
-#: mediagoblin/templates/mediagoblin/auth/login.html:29
-msgid "Login failed!"
+#: mediagoblin/templates/mediagoblin/root.html:34
+msgid ""
+"Powered by people like you. (<a "
+"href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this"
+" software!</a>)"
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:32
-msgid "Submit"
+#: mediagoblin/templates/mediagoblin/auth/login.html:29
+msgid "Logging in failed!"
msgstr ""
#: mediagoblin/templates/mediagoblin/auth/login.html:42
@@ -189,6 +237,10 @@ msgstr ""
msgid "Create an account!"
msgstr ""
+#: mediagoblin/templates/mediagoblin/auth/register.html:30
+msgid "Create"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19
#, python-format
msgid ""
@@ -210,6 +262,8 @@ msgid "Cancel"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
+#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44
msgid "Save changes"
msgstr ""
@@ -218,77 +272,146 @@ msgstr ""
msgid "Editing %(username)s's profile"
msgstr ""
-#: mediagoblin/templates/mediagoblin/listings/tag.html:29
+#: mediagoblin/templates/mediagoblin/listings/tag.html:31
msgid "Media tagged with:"
msgstr ""
-#: mediagoblin/templates/mediagoblin/listings/tag.html:40
-#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:101
-msgid "atom feed"
-msgstr ""
-
#: mediagoblin/templates/mediagoblin/submit/start.html:26
msgid "Submit yer media"
msgstr ""
-#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
+#: mediagoblin/templates/mediagoblin/submit/start.html:29
+msgid "Submit"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32
#, python-format
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
msgstr ""
-#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:30
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
msgid "Sorry, no such user found."
msgstr ""
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:37
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:57
-msgid "Verification needed"
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
+#, python-format
+msgid "Really delete %(title)s?"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36
+msgid ""
+"If you choose yes, the media entry will be deleted "
+"<strong>permanently.</strong>"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22
+msgid "Media processing panel"
+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 ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28
+msgid "Media in-processing"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46
+msgid "No media in-processing"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50
+msgid "These uploads failed to process:"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
+msgid "Email verification needed"
msgstr ""
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:40
-msgid "Almost done! Your account still needs to be verified."
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
+msgid "Almost done! Your account still needs to be activated."
msgstr ""
-#: 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 ""
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:49
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:51
msgid "In case it doesn't:"
msgstr ""
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:52
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:54
msgid "Resend verification email"
msgstr ""
-#: 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."
+" activated."
msgstr ""
-#: 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 ""
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:76
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:78
#, python-format
msgid "%(username)s's profile"
msgstr ""
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:84
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:85
+msgid "Here's a spot to tell others about yourself."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:90
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:108
msgid "Edit profile"
msgstr ""
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:95
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
+msgid "This user hasn't filled in their profile (yet)."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:122
#, python-format
msgid "View all of %(username)s's media"
msgstr ""
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:135
+msgid ""
+"This is where your media will appear, but you don't seem to have added "
+"anything yet."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:141
+msgid "Add media"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:147
+msgid "There doesn't seem to be any media here yet..."
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21
+msgid "feed icon"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23
+msgid "Atom feed"
+msgstr ""
+
+#: mediagoblin/user_pages/forms.py:24
+msgid "Comment"
+msgstr ""
+
+#: mediagoblin/user_pages/views.py:176
+msgid "You are about to delete another user's media. Proceed with caution."
+msgstr ""
+
diff --git a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo
index 0d4b463c..f84cb70a 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 23605892..b3883533 100644
--- a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po
@@ -7,9 +7,9 @@ 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-16 13:22+0000\n"
-"Last-Translator: joar <transifex@wandborg.se>\n"
+"POT-Creation-Date: 2011-08-30 22:51-0500\n"
+"PO-Revision-Date: 2011-08-31 03:51+0000\n"
+"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: Swedish (http://www.transifex.net/projects/p/mediagoblin/team/sv/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -18,39 +18,55 @@ msgstr ""
"Language: sv\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46
+#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54
msgid "Username"
msgstr "Användarnamn"
-#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50
+#: mediagoblin/auth/forms.py:28
+msgid "This is the name other users will identify you with."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58
msgid "Password"
msgstr "Lösenord"
-#: mediagoblin/auth/forms.py:34
+#: mediagoblin/auth/forms.py:36
msgid "Passwords must match."
msgstr "Lösenorden måste vara identiska."
-#: mediagoblin/auth/forms.py:36
+#: mediagoblin/auth/forms.py:37
+msgid "Try to use a strong password!"
+msgstr ""
+
+#: mediagoblin/auth/forms.py:40
msgid "Confirm password"
msgstr "Bekräfta lösenord"
-#: mediagoblin/auth/forms.py:39
+#: mediagoblin/auth/forms.py:42
+msgid "Type it again here to make sure there are no spelling mistakes."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:45
msgid "Email address"
msgstr "E-postadress"
+#: mediagoblin/auth/forms.py:48
+msgid "Your email will never be published."
+msgstr ""
+
#: mediagoblin/auth/views.py:40
msgid "Sorry, registration is disabled on this instance."
msgstr "Vi beklagar, registreringen är avtängd på den här instansen."
-#: mediagoblin/auth/views.py:57
+#: mediagoblin/auth/views.py:58
msgid "Sorry, a user with that name already exists."
msgstr "En användare med det användarnamnet finns redan."
-#: mediagoblin/auth/views.py:61
+#: mediagoblin/auth/views.py:62
msgid "Sorry, that email address has already been taken."
msgstr "Den e-postadressen är redan tagen."
-#: mediagoblin/auth/views.py:159
+#: mediagoblin/auth/views.py:160
msgid ""
"Your email address has been verified. You may now login, edit your profile, "
"and submit images!"
@@ -58,11 +74,11 @@ msgstr ""
"Din e-postadress är verifierad. Du kan nu logga in, redigera din profil och "
"ladda upp filer!"
-#: mediagoblin/auth/views.py:165
+#: mediagoblin/auth/views.py:166
msgid "The verification key or user id is incorrect"
msgstr "Verifieringsnyckeln eller användar-IDt är fel."
-#: mediagoblin/auth/views.py:186
+#: mediagoblin/auth/views.py:187
#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22
msgid "Resent your verification email."
msgstr "Skickade ett nytt verifierings-email."
@@ -91,102 +107,143 @@ msgstr "Presentation"
msgid "Website"
msgstr "Hemsida"
-#: mediagoblin/edit/forms.py:43
-msgid "Improperly formed URL"
-msgstr "Ogiltig URL"
-
-#: mediagoblin/edit/views.py:54
+#: mediagoblin/edit/views.py:66
msgid "An entry with that slug already exists for this user."
msgstr "Ett inlägg med det sökvägsnamnet existerar redan."
-#: mediagoblin/edit/views.py:75
+#: mediagoblin/edit/views.py:95
msgid "You are editing another user's media. Proceed with caution."
msgstr "Var försiktig, du redigerar någon annans inlägg."
-#: mediagoblin/edit/views.py:96
+#: mediagoblin/edit/views.py:166
msgid "You are editing a user's profile. Proceed with caution."
msgstr "Var försiktig, du redigerar en annan användares profil."
+#: mediagoblin/process_media/errors.py:44
+msgid "Invalid file given for media type."
+msgstr "Ogiltig fil för mediatypen."
+
#: mediagoblin/submit/forms.py:25
msgid "File"
msgstr "Fil"
-#: mediagoblin/submit/views.py:46
+#: mediagoblin/submit/views.py:47
msgid "You must provide a file."
msgstr "Du måste ange en fil"
-#: mediagoblin/submit/views.py:49
+#: mediagoblin/submit/views.py:50
msgid "The file doesn't seem to be an image!"
msgstr "Filen verkar inte vara en giltig bildfil!"
-#: mediagoblin/submit/views.py:94
+#: mediagoblin/submit/views.py:122
msgid "Woohoo! Submitted!"
msgstr "Tjohoo! Upladdat!"
+#: mediagoblin/templates/mediagoblin/404.html:21
+msgid "Oops!"
+msgstr "Ojoj!"
+
+#: mediagoblin/templates/mediagoblin/404.html:24
+msgid "There doesn't seem to be a page at this address. Sorry!"
+msgstr "Ledsen, det verkar inte vara någonting här."
+
+#: mediagoblin/templates/mediagoblin/404.html:26
+msgid ""
+"If you're sure the address is correct, maybe the page you're looking for has"
+" been moved or deleted."
+msgstr ""
+"Om du är säker på att adressen stämmer så kanske sidan du letar efter har "
+"flyttats eller tagits bort."
+
+#: mediagoblin/templates/mediagoblin/404.html:32
+msgid "Image of 404 goblin stressing out"
+msgstr "Bild av stressat 404-troll."
+
#: mediagoblin/templates/mediagoblin/base.html:22
msgid "GNU MediaGoblin"
msgstr "GNU MediaGoblin"
-#: mediagoblin/templates/mediagoblin/base.html:45
-msgid "Mediagoblin logo"
-msgstr "MediaGoblin logo"
+#: mediagoblin/templates/mediagoblin/base.html:47
+msgid "MediaGoblin logo"
+msgstr "MediaGoblin-logotyp"
-#: mediagoblin/templates/mediagoblin/base.html:51
+#: mediagoblin/templates/mediagoblin/base.html:52
msgid "Submit media"
msgstr "Ladda upp"
-#: mediagoblin/templates/mediagoblin/base.html:62
+#: mediagoblin/templates/mediagoblin/base.html:63
msgid "verify your email!"
msgstr "Verifiera din e-postadress!"
-#: mediagoblin/templates/mediagoblin/base.html:72
-msgid "Login"
+#: mediagoblin/templates/mediagoblin/base.html:73
+#: mediagoblin/templates/mediagoblin/auth/login.html:26
+#: mediagoblin/templates/mediagoblin/auth/login.html:34
+msgid "Log in"
msgstr "Logga in"
-#: mediagoblin/templates/mediagoblin/base.html:88
+#: mediagoblin/templates/mediagoblin/base.html:89
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
-"href=\"http://gnu.org/\">GNU project</a>"
+"href=\"http://gnu.org/\">GNU</a> project"
msgstr ""
-"Drivs av <a href=\"http://mediagoblin.org\">MediaGoblin</a>, ett <a "
-"href=\"http://gnu.org/\">GNU</a>-projekt"
-#: mediagoblin/templates/mediagoblin/root.html:23
-msgid "Welcome to GNU MediaGoblin!"
-msgstr "Välkommen till GNU MediaGoblin!"
+#: mediagoblin/templates/mediagoblin/root.html:27
+msgid "Hi there, media lover! MediaGoblin is..."
+msgstr "Hej där mediaentusiast, MediaGoblin..."
-#: mediagoblin/templates/mediagoblin/root.html:28
-msgid "Submit an item"
-msgstr "Ladda upp"
+#: mediagoblin/templates/mediagoblin/root.html:29
+msgid "The perfect place for your media!"
+msgstr "Är ett perfekt ställe för din media!"
-#: 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:30
+msgid ""
+"A place for people to collaborate and show off original and derived "
+"creations!"
+msgstr ""
+"Är ett ställe för människor att samarbeta och visa upp originella och "
+"härrörande verk."
-#: mediagoblin/templates/mediagoblin/root.html:39
-#, python-format
+#: mediagoblin/templates/mediagoblin/root.html:31
msgid ""
-"If you don't have an account, please <a "
-"href=\"%(register_url)s\">Register</a>."
+"Free, as in freedom. (We’re a <a href=\"http://gnu.org\">GNU</a> project, "
+"after all.)"
msgstr ""
-"Har du inget konto? <a href=\"%(register_url)s\">Registrera ett konto</a>."
+"Är fritt som i frihet. (Vi är ju ett <a "
+"href=\"http://gnu.org\">GNU</a>-projekt.)"
-#: mediagoblin/templates/mediagoblin/auth/login.html:26
-msgid "Log in"
-msgstr "Logga in"
+#: mediagoblin/templates/mediagoblin/root.html:32
+msgid ""
+"Aiming to make the world a better place through decentralization and "
+"(eventually, coming soon!) federation!"
+msgstr ""
+"Arbetar för att göra världen till ett bättre ställe genom decentralisering "
+"och (så småningom, kommer snart!) -- Google Translate säger "
+"\"sammanslutning\", <em>en: <a "
+"href=\"http://en.wikipedia.org/wiki/Federation_(information_technology)\">federation</a></em>"
+" "
+
+#: mediagoblin/templates/mediagoblin/root.html:33
+msgid ""
+"Built for extensibility. (Multiple media types coming soon to the software,"
+" including video support!)"
+msgstr ""
+"Byggd för utbyggbarhet. (Flera mediatyper kommer snart till MediaGoblin, "
+"bland annat video!)"
+
+#: mediagoblin/templates/mediagoblin/root.html:34
+msgid ""
+"Powered by people like you. (<a "
+"href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this"
+" software!</a>)"
+msgstr ""
+"Drivs av människor som du. (<a "
+"href=\"http://mediagoblin.org/pages/join.html\">Du kan hjälpa os forbättra "
+"MediaGoblin!</a>)"
#: mediagoblin/templates/mediagoblin/auth/login.html:29
-msgid "Login failed!"
+msgid "Logging in failed!"
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:29
-msgid "Submit"
-msgstr "Skicka"
-
#: mediagoblin/templates/mediagoblin/auth/login.html:42
msgid "Don't have an account yet?"
msgstr "Har du inget konto?"
@@ -199,6 +256,10 @@ msgstr "Skapa ett!"
msgid "Create an account!"
msgstr "Skapa ett konto!"
+#: mediagoblin/templates/mediagoblin/auth/register.html:30
+msgid "Create"
+msgstr "Skapa"
+
#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19
#, python-format
msgid ""
@@ -225,6 +286,8 @@ msgid "Cancel"
msgstr "Avbryt"
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
+#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44
msgid "Save changes"
msgstr "Spara"
@@ -237,34 +300,64 @@ msgstr "Redigerar %(username)ss profil"
msgid "Media tagged with:"
msgstr "Taggat med:"
-#: 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 "Ladda upp"
+#: mediagoblin/templates/mediagoblin/submit/start.html:29
+msgid "Submit"
+msgstr "Skicka"
+
#: 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:53
+#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52
#: 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/media_confirm_delete.html:30
+#, python-format
+msgid "Really delete %(title)s?"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36
+msgid ""
+"If you choose yes, the media entry will be deleted "
+"<strong>permanently.</strong>"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22
+msgid "Media processing panel"
+msgstr "Mediabehandlingspanel"
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25
+msgid ""
+"You can track the state of media being processed for your gallery here."
+msgstr "Här kan du se status för mediabehandling av bilder i ditt galleri."
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28
+msgid "Media in-processing"
+msgstr "Media under behandling"
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46
+msgid "No media in-processing"
+msgstr "Ingen media under behandling"
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50
+msgid "These uploads failed to process:"
+msgstr "De här behandlingarna misslyckades:"
+
#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
-msgid "Verification needed"
-msgstr "Verifiering krävs"
+msgid "Email verification needed"
+msgstr "E-postadressverifiering krävs."
#: 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."
+msgid "Almost done! Your account still needs to be activated."
+msgstr "Nästan klar! Ditt konto behöver bara aktiveras."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:47
msgid ""
@@ -283,10 +376,10 @@ msgstr "Skicka ett nytt e-postmeddelande"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
msgid ""
"Someone has registered an account with this username, but it still has to be"
-" verified."
+" activated."
msgstr ""
-"Det finns redan ett konto med det här användarnamnet, men det behöver "
-"verifieras."
+"Någon har redan registrerat ett konto med det här användarnamnet men det har"
+" inte aktiverats."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:68
#, python-format
@@ -303,17 +396,54 @@ msgstr ""
msgid "%(username)s's profile"
msgstr "%(username)ss profil"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:86
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:85
+msgid "Here's a spot to tell others about yourself."
+msgstr "Här kan du berätta för andra om dig själv."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:90
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:108
msgid "Edit profile"
msgstr "Redigera profil"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:98
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
+msgid "This user hasn't filled in their profile (yet)."
+msgstr "Den här användaren har inte fyllt i sin profilsida ännu."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:122
#, python-format
msgid "View all of %(username)s's media"
msgstr "Se all media från %(username)s"
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:135
+msgid ""
+"This is where your media will appear, but you don't seem to have added "
+"anything yet."
+msgstr ""
+"Här kommer din media att dyka upp, du verkar inte ha lagt till någonting "
+"ännu."
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:141
+msgid "Add media"
+msgstr "Lägg till media"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:147
+msgid "There doesn't seem to be any media here yet..."
+msgstr "Det verkar inte finnas någon media här ännu."
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21
+msgid "feed icon"
+msgstr "feed-ikon"
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23
+msgid "Atom feed"
+msgstr "Atom-feed"
+
#: mediagoblin/user_pages/forms.py:24
msgid "Comment"
msgstr "Kommentar"
+#: mediagoblin/user_pages/views.py:176
+msgid "You are about to delete another user's media. Proceed with caution."
+msgstr ""
+
diff --git a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mo
index 9615e44c..e2cdd52f 100644
--- a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mo
+++ 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
index d8f8c98d..3020df07 100644
--- a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/zh_TW/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-13 19:47-0500\n"
-"PO-Revision-Date: 2011-08-14 00:47+0000\n"
+"POT-Creation-Date: 2011-08-30 22:51-0500\n"
+"PO-Revision-Date: 2011-08-31 03:51+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
@@ -18,52 +18,68 @@ msgstr ""
"Language: zh_TW\n"
"Plural-Forms: nplurals=1; plural=0\n"
-#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46
+#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54
msgid "Username"
msgstr "使用者名稱"
-#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50
+#: mediagoblin/auth/forms.py:28
+msgid "This is the name other users will identify you with."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58
msgid "Password"
msgstr "密碼"
-#: mediagoblin/auth/forms.py:34
+#: mediagoblin/auth/forms.py:36
msgid "Passwords must match."
-msgstr "密碼必須一至"
+msgstr "密碼必須一致"
-#: mediagoblin/auth/forms.py:36
+#: mediagoblin/auth/forms.py:37
+msgid "Try to use a strong password!"
+msgstr ""
+
+#: mediagoblin/auth/forms.py:40
msgid "Confirm password"
msgstr "確認密碼"
-#: mediagoblin/auth/forms.py:39
+#: mediagoblin/auth/forms.py:42
+msgid "Type it again here to make sure there are no spelling mistakes."
+msgstr ""
+
+#: mediagoblin/auth/forms.py:45
msgid "Email address"
msgstr "電子郵件位置"
+#: mediagoblin/auth/forms.py:48
+msgid "Your email will never be published."
+msgstr ""
+
#: mediagoblin/auth/views.py:40
msgid "Sorry, registration is disabled on this instance."
msgstr "抱歉, 這個項目已經被暫停註冊."
-#: mediagoblin/auth/views.py:57
+#: mediagoblin/auth/views.py:58
msgid "Sorry, a user with that name already exists."
msgstr "抱歉, 這個使用者名稱已經存在."
-#: mediagoblin/auth/views.py:61
+#: mediagoblin/auth/views.py:62
msgid "Sorry, that email address has already been taken."
-msgstr ""
+msgstr "抱歉,這個電子郵件已經被其他人使用了。"
-#: mediagoblin/auth/views.py:159
+#: mediagoblin/auth/views.py:160
msgid ""
"Your email address has been verified. You may now login, edit your profile, "
"and submit images!"
-msgstr "你的電子郵件位址已被認證. 你現在就可以登入, 編輯你的個人檔案而且送出照片!"
+msgstr "你的電子郵件位址已被認證. 你現在就可以登入, 編輯你的個人檔案而且遞交照片!"
-#: mediagoblin/auth/views.py:165
+#: mediagoblin/auth/views.py:166
msgid "The verification key or user id is incorrect"
msgstr "認證碼或是使用者帳號錯誤"
-#: mediagoblin/auth/views.py:186
+#: mediagoblin/auth/views.py:187
#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22
msgid "Resent your verification email."
-msgstr "重送認證郵件."
+msgstr "重送認證信."
#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27
msgid "Title"
@@ -89,100 +105,128 @@ msgstr "自傳"
msgid "Website"
msgstr "網站"
-#: mediagoblin/edit/forms.py:43
-msgid "Improperly formed URL"
-msgstr "部正確的網址"
-
-#: mediagoblin/edit/views.py:54
+#: mediagoblin/edit/views.py:66
msgid "An entry with that slug already exists for this user."
msgstr "這個自訂字串已經被其他人用了"
-#: mediagoblin/edit/views.py:75
+#: mediagoblin/edit/views.py:95
msgid "You are editing another user's media. Proceed with caution."
msgstr "你正在編輯他人的媒體檔案. 請謹慎處理."
-#: mediagoblin/edit/views.py:96
+#: mediagoblin/edit/views.py:166
msgid "You are editing a user's profile. Proceed with caution."
-msgstr "你正在編輯他人的檔案. 請謹慎處理."
+msgstr "你正在編輯一位用戶的檔案. 請謹慎處理."
+
+#: mediagoblin/process_media/errors.py:44
+msgid "Invalid file given for media type."
+msgstr "指定錯誤的媒體類別!"
#: mediagoblin/submit/forms.py:25
msgid "File"
msgstr "檔案"
-#: mediagoblin/submit/views.py:46
+#: mediagoblin/submit/views.py:47
msgid "You must provide a file."
msgstr "你必須提供一個檔案"
-#: mediagoblin/submit/views.py:49
+#: mediagoblin/submit/views.py:50
msgid "The file doesn't seem to be an image!"
-msgstr "檔案看起來不像是一個圖片喔!"
+msgstr "檔案似乎不是一個圖片喔!"
-#: mediagoblin/submit/views.py:94
+#: mediagoblin/submit/views.py:122
msgid "Woohoo! Submitted!"
-msgstr "喔耶! 送出去了!"
+msgstr "呼嚕! 送出去了!"
+
+#: mediagoblin/templates/mediagoblin/404.html:21
+msgid "Oops!"
+msgstr "糟糕!"
+
+#: mediagoblin/templates/mediagoblin/404.html:24
+msgid "There doesn't seem to be a page at this address. Sorry!"
+msgstr "這個位址似乎沒有網頁。抱歉!"
+
+#: mediagoblin/templates/mediagoblin/404.html:26
+msgid ""
+"If you're sure the address is correct, maybe the page you're looking for has"
+" been moved or deleted."
+msgstr "如果你確定這個位址是正確的,或許你在找的網頁已經被移除或是刪除了。"
+
+#: mediagoblin/templates/mediagoblin/404.html:32
+msgid "Image of 404 goblin stressing out"
+msgstr "Image of 404 goblin stressing out"
#: 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:47
+msgid "MediaGoblin logo"
+msgstr "MediaGoblin 標誌"
-#: mediagoblin/templates/mediagoblin/base.html:51
+#: mediagoblin/templates/mediagoblin/base.html:52
msgid "Submit media"
-msgstr "送出媒體"
+msgstr "遞交媒體"
-#: mediagoblin/templates/mediagoblin/base.html:62
+#: mediagoblin/templates/mediagoblin/base.html:63
msgid "verify your email!"
msgstr "確認您的電子郵件!"
-#: mediagoblin/templates/mediagoblin/base.html:72
-msgid "Login"
+#: mediagoblin/templates/mediagoblin/base.html:73
+#: mediagoblin/templates/mediagoblin/auth/login.html:26
+#: mediagoblin/templates/mediagoblin/auth/login.html:34
+msgid "Log in"
msgstr "登入"
-#: mediagoblin/templates/mediagoblin/base.html:88
+#: mediagoblin/templates/mediagoblin/base.html:89
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
-"href=\"http://gnu.org/\">GNU project</a>"
+"href=\"http://gnu.org/\">GNU</a> project"
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:27
+msgid "Hi there, media lover! MediaGoblin is..."
+msgstr "嗨!媒體愛好者!MediaGoblin是..."
-#: mediagoblin/templates/mediagoblin/root.html:28
-msgid "Submit an item"
-msgstr "送出一個項目"
+#: mediagoblin/templates/mediagoblin/root.html:29
+msgid "The perfect place for your media!"
+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:30
+msgid ""
+"A place for people to collaborate and show off original and derived "
+"creations!"
+msgstr "這是一個地方,可以讓人們協同且展示他們的創作或是衍生作品!"
-#: mediagoblin/templates/mediagoblin/root.html:39
-#, python-format
+#: mediagoblin/templates/mediagoblin/root.html:31
msgid ""
-"If you don't have an account, please <a "
-"href=\"%(register_url)s\">Register</a>."
-msgstr "如果您尚未取得帳號, 請 <a href=\"%(register_url)s\">註冊</a>."
+"Free, as in freedom. (We’re a <a href=\"http://gnu.org\">GNU</a> project, "
+"after all.)"
+msgstr "免費但是我們更重視自由 (畢竟我們是個 <a href=\"http://gnu.org\">GNU</a> 專案)"
-#: mediagoblin/templates/mediagoblin/auth/login.html:26
-msgid "Log in"
-msgstr "登入"
+#: mediagoblin/templates/mediagoblin/root.html:32
+msgid ""
+"Aiming to make the world a better place through decentralization and "
+"(eventually, coming soon!) federation!"
+msgstr "目的是要透過分散式且自由的方式讓這個世界更美好!(終究,很快就會到來的!)"
-#: mediagoblin/templates/mediagoblin/auth/login.html:29
-msgid "Login failed!"
-msgstr "登入錯誤"
+#: mediagoblin/templates/mediagoblin/root.html:33
+msgid ""
+"Built for extensibility. (Multiple media types coming soon to the software,"
+" including video support!)"
+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/root.html:34
+msgid ""
+"Powered by people like you. (<a "
+"href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this"
+" software!</a>)"
+msgstr ""
+"由像你一樣的人們製作 (<a "
+"href=\"http://mediagoblin.org/pages/join.html\">你可以幫我們改進軟體!</a>)"
+
+#: mediagoblin/templates/mediagoblin/auth/login.html:29
+msgid "Logging in failed!"
+msgstr "登入失敗!"
#: mediagoblin/templates/mediagoblin/auth/login.html:42
msgid "Don't have an account yet?"
@@ -196,6 +240,10 @@ msgstr "在這裡建立一個吧!"
msgid "Create an account!"
msgstr "建立一個帳號!"
+#: mediagoblin/templates/mediagoblin/auth/register.html:30
+msgid "Create"
+msgstr "建立"
+
#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19
#, python-format
msgid ""
@@ -222,6 +270,8 @@ msgid "Cancel"
msgstr "取消"
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
+#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44
msgid "Save changes"
msgstr "儲存變更"
@@ -234,39 +284,69 @@ msgstr "編輯 %(username)s'的檔案中"
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 "送出你的媒體檔案"
+msgstr "遞交你的媒體檔案"
+
+#: mediagoblin/templates/mediagoblin/submit/start.html:29
+msgid "Submit"
+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/gallery.html:52
#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
msgid "Sorry, no such user found."
-msgstr "抱歉, 找不到這個使用者."
+msgstr "抱歉,找不到這個使用者."
+
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
+#, python-format
+msgid "Really delete %(title)s?"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36
+msgid ""
+"If you choose yes, the media entry will be deleted "
+"<strong>permanently.</strong>"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22
+msgid "Media processing panel"
+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 "針對你的展示區,你可以在這裡追蹤媒體處理的狀態。"
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28
+msgid "Media in-processing"
+msgstr "媒體處理中"
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46
+msgid "No media in-processing"
+msgstr "沒有媒體正在處理"
+
+#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50
+msgid "These uploads failed to process:"
+msgstr "無法處理這些更新"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
-msgid "Verification needed"
-msgstr "需要驗證"
+msgid "Email verification needed"
+msgstr "需要認證電子郵件"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
-msgid "Almost done! Your account still needs to be verified."
-msgstr "快要完成了! 你的帳號仍需要驗證."
+msgid "Almost done! Your account still needs to be activated."
+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 "很快的會有一封電子郵件告訴你如何做."
+msgstr "馬上會有一封電子郵件告訴你如何做."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:51
msgid "In case it doesn't:"
@@ -274,13 +354,13 @@ msgstr "假設它無法:"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:54
msgid "Resend verification email"
-msgstr "重送認證郵件 "
+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 "有人已經註冊了這個帳號, 但此帳號仍需要驗證."
+" activated."
+msgstr "有人用了這個帳號登錄了,但是這個帳號仍需要被啟用。"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:68
#, python-format
@@ -294,17 +374,52 @@ msgstr "如果你就是那個人, 但是遺失了認證信, 你可以<a href=\"%
msgid "%(username)s's profile"
msgstr "%(username)s的個人檔案"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:86
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:85
+msgid "Here's a spot to tell others about yourself."
+msgstr "這是一個地方,能讓你向他人介紹自己。"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:90
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:108
msgid "Edit profile"
msgstr "編輯個人檔案"
-#: mediagoblin/templates/mediagoblin/user_pages/user.html:98
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
+msgid "This user hasn't filled in their profile (yet)."
+msgstr "這個使用者還沒(來得及)填寫個人檔案。"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:122
#, python-format
msgid "View all of %(username)s's media"
msgstr "查看%(username)s的全部媒體檔案"
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:135
+msgid ""
+"This is where your media will appear, but you don't seem to have added "
+"anything yet."
+msgstr "這個地方是你的媒體會出現的地方,但是你似乎還沒有加入東西。"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:141
+msgid "Add media"
+msgstr "新增媒體"
+
+#: mediagoblin/templates/mediagoblin/user_pages/user.html:147
+msgid "There doesn't seem to be any media here yet..."
+msgstr "似乎還沒有任何的媒體..."
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21
+msgid "feed icon"
+msgstr "feed圖示"
+
+#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23
+msgid "Atom feed"
+msgstr "Atom feed"
+
#: mediagoblin/user_pages/forms.py:24
msgid "Comment"
+msgstr "評論"
+
+#: mediagoblin/user_pages/views.py:176
+msgid "You are about to delete another user's media. Proceed with caution."
msgstr ""
diff --git a/mediagoblin/init/__init__.py b/mediagoblin/init/__init__.py
index 4fe5df35..b7f52595 100644
--- a/mediagoblin/init/__init__.py
+++ b/mediagoblin/init/__init__.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/init/celery/__init__.py b/mediagoblin/init/celery/__init__.py
index bfae954e..c58b1305 100644
--- a/mediagoblin/init/celery/__init__.py
+++ b/mediagoblin/init/celery/__init__.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/init/celery/from_celery.py b/mediagoblin/init/celery/from_celery.py
index c053591b..3e5adb98 100644
--- a/mediagoblin/init/celery/from_celery.py
+++ b/mediagoblin/init/celery/from_celery.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/init/celery/from_tests.py b/mediagoblin/init/celery/from_tests.py
index b2293e2c..059d829f 100644
--- a/mediagoblin/init/celery/from_tests.py
+++ b/mediagoblin/init/celery/from_tests.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/init/config.py b/mediagoblin/init/config.py
index 2f93d32c..029a0956 100644
--- a/mediagoblin/init/config.py
+++ b/mediagoblin/init/config.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/listings/__init__.py b/mediagoblin/listings/__init__.py
index fbccb9b8..0c53acf5 100644
--- a/mediagoblin/listings/__init__.py
+++ b/mediagoblin/listings/__init__.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/listings/routing.py b/mediagoblin/listings/routing.py
index 61dd5210..b72bd015 100644
--- a/mediagoblin/listings/routing.py
+++ b/mediagoblin/listings/routing.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/listings/views.py b/mediagoblin/listings/views.py
index aade7e64..b3384eb4 100644
--- a/mediagoblin/listings/views.py
+++ b/mediagoblin/listings/views.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/messages.py b/mediagoblin/messages.py
index afe6ee7e..dc82fbf6 100644
--- a/mediagoblin/messages.py
+++ b/mediagoblin/messages.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/mg_globals.py b/mediagoblin/mg_globals.py
index 8df5606e..2d304111 100644
--- a/mediagoblin/mg_globals.py
+++ b/mediagoblin/mg_globals.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/middleware/__init__.py b/mediagoblin/middleware/__init__.py
new file mode 100644
index 00000000..586debbf
--- /dev/null
+++ b/mediagoblin/middleware/__init__.py
@@ -0,0 +1,19 @@
+# GNU MediaGoblin -- federated, autonomous media hosting
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
+#
+# 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/>.
+
+ENABLED_MIDDLEWARE = (
+ 'mediagoblin.middleware.noop:NoOpMiddleware',
+ )
diff --git a/mediagoblin/middleware/noop.py b/mediagoblin/middleware/noop.py
new file mode 100644
index 00000000..28380232
--- /dev/null
+++ b/mediagoblin/middleware/noop.py
@@ -0,0 +1,26 @@
+# GNU MediaGoblin -- federated, autonomous media hosting
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
+#
+# 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/>.
+
+class NoOpMiddleware(object):
+
+ def __init__(self, mg_app):
+ self.app = mg_app
+
+ def process_request(self, request):
+ pass
+
+ def process_response(self, request, response):
+ pass
diff --git a/mediagoblin/process_media/__init__.py b/mediagoblin/process_media/__init__.py
index e1289a4c..2b9eed6e 100644
--- a/mediagoblin/process_media/__init__.py
+++ b/mediagoblin/process_media/__init__.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
@@ -16,7 +16,6 @@
import Image
-from contextlib import contextmanager
from celery.task import Task
from celery import registry
@@ -36,14 +35,6 @@ def create_pub_filepath(entry, filename):
filename])
-@contextmanager
-def closing(callback):
- try:
- yield callback
- finally:
- pass
-
-
################################
# Media processing initial steps
################################
@@ -66,7 +57,7 @@ class ProcessMedia(Task):
except BaseProcessingFail, exc:
mark_entry_failed(entry[u'_id'], exc)
return
-
+
entry['state'] = u'processed'
entry.save()
@@ -142,9 +133,9 @@ def process_image(entry):
thumb = thumb.convert("RGB")
thumb_filepath = create_pub_filepath(entry, 'thumbnail.jpg')
-
thumb_file = mgg.public_store.get_file(thumb_filepath, 'w')
- with closing(thumb_file):
+
+ with thumb_file:
thumb.save(thumb_file, "JPEG", quality=90)
# If the size of the original file exceeds the specified size of a `medium`
@@ -160,9 +151,9 @@ def process_image(entry):
medium = medium.convert("RGB")
medium_filepath = create_pub_filepath(entry, 'medium.jpg')
-
medium_file = mgg.public_store.get_file(medium_filepath, 'w')
- with closing(medium_file):
+
+ with medium_file:
medium.save(medium_file, "JPEG", quality=90)
medium_processed = True
@@ -172,8 +163,8 @@ def process_image(entry):
with queued_file:
original_filepath = create_pub_filepath(entry, queued_filepath[-1])
-
- with closing(mgg.public_store.get_file(original_filepath, 'wb')) as original_file:
+
+ with mgg.public_store.get_file(original_filepath, 'wb') as original_file:
original_file.write(queued_file.read())
mgg.queue_store.delete_file(queued_filepath)
diff --git a/mediagoblin/process_media/errors.py b/mediagoblin/process_media/errors.py
index f8ae9ab2..156f0a01 100644
--- a/mediagoblin/process_media/errors.py
+++ b/mediagoblin/process_media/errors.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/routing.py b/mediagoblin/routing.py
index 1340da60..ae56f8cb 100644
--- a/mediagoblin/routing.py
+++ b/mediagoblin/routing.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css
index 1852b70c..d1b891ac 100644
--- a/mediagoblin/static/css/base.css
+++ b/mediagoblin/static/css/base.css
@@ -114,6 +114,8 @@ a.mediagoblin_logo{
text-decoration: none;
border: medium none;
font-style: normal;
+ font-weight: bold;
+ font-size: 1em;
}
.header_submit_highlight{
@@ -139,7 +141,7 @@ background-image: -moz-linear-gradient(center top , rgb(134, 212, 177), rgb(109,
/* common website elements */
-.button {
+.button, .cancel_link {
height: 32px;
min-width: 99px;
background-color: #86d4b1;
@@ -158,8 +160,19 @@ background-image: -moz-linear-gradient(center top , rgb(134, 212, 177), rgb(109,
padding-left: 11px;
padding-right: 11px;
text-decoration: none;
- font-family:'Lato', sans-serif;
- font-size:1em;
+ font-family: 'Lato', sans-serif;
+ font-size: 1.2em;
+ font-weight: bold;
+}
+
+.cancel_link {
+ background-color: #aaa;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(##D2D2D2), to(#aaa));
+ background-image: -webkit-linear-gradient(top, #D2D2D2, #aaa);
+ background-image: -moz-linear-gradient(top, #D2D2D2, #aaa);
+ background-image: -ms-linear-gradient(top, #D2D2D2, #aaa);
+ background-image: -o-linear-gradient(top, #D2D2D2, #aaa);
+ background-image: linear-gradient(top, #D2D2D2, #aaa);
}
.pagination{
@@ -208,6 +221,14 @@ text-align: center;
margin-bottom: 4px;
}
+.form_field_label {
+ font-size:1.125em;
+}
+
+.form_field_description {
+ font-style: italic;
+}
+
.form_field_error {
background-color: #87453b;
color: #fff;
@@ -344,3 +365,11 @@ table.media_panel th {
font-weight: bold;
padding-bottom: 4px;
}
+
+
+/* Delete panel */
+
+.delete_checkbox_box {
+ margin-top: 10px;
+ margin-left: 10px;
+} \ No newline at end of file
diff --git a/mediagoblin/static/images/logo.png b/mediagoblin/static/images/logo.png
index 019ec5ec..1c08a2fb 100644
--- a/mediagoblin/static/images/logo.png
+++ b/mediagoblin/static/images/logo.png
Binary files differ
diff --git a/mediagoblin/staticdirect.py b/mediagoblin/staticdirect.py
index 49681c22..58175881 100644
--- a/mediagoblin/staticdirect.py
+++ b/mediagoblin/staticdirect.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py
index d484be1f..f9563031 100644
--- a/mediagoblin/storage.py
+++ b/mediagoblin/storage.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
@@ -19,6 +19,8 @@ import shutil
import urlparse
import uuid
import cloudfiles
+import mimetypes
+import tempfile
from werkzeug.utils import secure_filename
@@ -226,6 +228,10 @@ class BasicFileStorage(StorageInterface):
return self._resolve_filepath(filepath)
+# ----------------------------------------------------
+# OpenStack/Rackspace Cloud's Swift/CloudFiles support
+# ----------------------------------------------------
+
class CloudFilesStorage(StorageInterface):
def __init__(self, **kwargs):
self.param_container = kwargs.get('cloudfiles_container')
@@ -254,6 +260,8 @@ class CloudFilesStorage(StorageInterface):
self.container = self.connection.get_container(
self.param_container)
+ self.container_uri = self.container.public_uri()
+
def _resolve_filepath(self, filepath):
return '/'.join(
clean_listy_filepath(filepath))
@@ -266,7 +274,10 @@ class CloudFilesStorage(StorageInterface):
except cloudfiles.errors.NoSuchObject:
return False
- def get_file(self, filepath, mode='r'):
+ def get_file(self, filepath, *args, **kwargs):
+ """
+ - Doesn't care about the "mode" argument
+ """
try:
obj = self.container.get_object(
self._resolve_filepath(filepath))
@@ -274,16 +285,79 @@ class CloudFilesStorage(StorageInterface):
obj = self.container.create_object(
self._resolve_filepath(filepath))
- return obj
+ mimetype = mimetypes.guess_type(
+ filepath[-1])
+
+ if mimetype:
+ obj.content_type = mimetype[0]
+
+ return CloudFilesStorageObjectWrapper(obj, *args, **kwargs)
def delete_file(self, filepath):
# TODO: Also delete unused directories if empty (safely, with
# checks to avoid race conditions).
- self.container.delete_object(filepath)
+ self.container.delete_object(
+ self._resolve_filepath(filepath))
def file_url(self, filepath):
- return self.get_file(filepath).public_uri()
+ return '/'.join([
+ self.container_uri,
+ self._resolve_filepath(filepath)])
+
+
+class CloudFilesStorageObjectWrapper():
+ """
+ Wrapper for python-cloudfiles's cloudfiles.storage_object.Object
+ used to circumvent the mystic `medium.jpg` corruption issue, where
+ we had both python-cloudfiles and PIL doing buffering on both
+ ends and that breaking things.
+
+ This wrapper currently meets mediagoblin's needs for a public_store
+ file-like object.
+ """
+ def __init__(self, storage_object, *args, **kwargs):
+ self.storage_object = storage_object
+
+ def read(self, *args, **kwargs):
+ return self.storage_object.read(*args, **kwargs)
+
+ def write(self, data, *args, **kwargs):
+ """
+ write data to the cloudfiles storage object
+
+ The original motivation for this wrapper is to ensure
+ that buffered writing to a cloudfiles storage object does not overwrite
+ any preexisting data.
+
+ Currently this method does not support any write modes except "append".
+ However if we should need it it would be easy implement.
+ """
+ if self.storage_object.size and type(data) == str:
+ data = self.read() + data
+
+ self.storage_object.write(data, *args, **kwargs)
+
+ def close(self):
+ pass
+
+ def __enter__(self):
+ """
+ Context Manager API implementation
+ http://docs.python.org/library/stdtypes.html#context-manager-types
+ """
+ return self
+
+ def __exit__(self, *exc_info):
+ """
+ Context Manger API implementation
+ see self.__enter__()
+ """
+ self.close()
+
+# ------------
+# MountStorage
+# ------------
class MountStorage(StorageInterface):
"""
diff --git a/mediagoblin/submit/__init__.py b/mediagoblin/submit/__init__.py
index a8eeb5ed..576bd0f5 100644
--- a/mediagoblin/submit/__init__.py
+++ b/mediagoblin/submit/__init__.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/submit/forms.py b/mediagoblin/submit/forms.py
index 4519b057..a999c714 100644
--- a/mediagoblin/submit/forms.py
+++ b/mediagoblin/submit/forms.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
@@ -26,7 +26,8 @@ class SubmitStartForm(wtforms.Form):
title = wtforms.TextField(
_('Title'),
[wtforms.validators.Length(min=0, max=500)])
- description = wtforms.TextAreaField('Description of this work')
+ description = wtforms.TextAreaField(
+ _('Description of this work'))
tags = wtforms.TextField(
_('Tags'),
[tag_length_validator])
diff --git a/mediagoblin/submit/routing.py b/mediagoblin/submit/routing.py
index 5585ecb0..03e01f45 100644
--- a/mediagoblin/submit/routing.py
+++ b/mediagoblin/submit/routing.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/submit/security.py b/mediagoblin/submit/security.py
index b2cb6d88..9d62a36e 100644
--- a/mediagoblin/submit/security.py
+++ b/mediagoblin/submit/security.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py
index 4481adeb..e24d78f3 100644
--- a/mediagoblin/submit/views.py
+++ b/mediagoblin/submit/views.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
@@ -55,10 +55,10 @@ def submit_start(request):
entry = request.db.MediaEntry()
entry['_id'] = ObjectId()
entry['title'] = (
- request.POST['title']
+ unicode(request.POST['title'])
or unicode(splitext(filename)[0]))
- entry['description'] = request.POST.get('description')
+ entry['description'] = unicode(request.POST.get('description'))
entry['description_html'] = cleaned_markdown_conversion(
entry['description'])
diff --git a/mediagoblin/templates/mediagoblin/404.html b/mediagoblin/templates/mediagoblin/404.html
index 5af46a87..7db68941 100644
--- a/mediagoblin/templates/mediagoblin/404.html
+++ b/mediagoblin/templates/mediagoblin/404.html
@@ -1,6 +1,6 @@
{#
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/templates/mediagoblin/auth/login.html b/mediagoblin/templates/mediagoblin/auth/login.html
index afbecf20..958cf9ea 100644
--- a/mediagoblin/templates/mediagoblin/auth/login.html
+++ b/mediagoblin/templates/mediagoblin/auth/login.html
@@ -1,6 +1,6 @@
{#
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/templates/mediagoblin/auth/register.html b/mediagoblin/templates/mediagoblin/auth/register.html
index d9eedc4a..e72b3a52 100644
--- a/mediagoblin/templates/mediagoblin/auth/register.html
+++ b/mediagoblin/templates/mediagoblin/auth/register.html
@@ -1,6 +1,6 @@
{#
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/templates/mediagoblin/auth/resent_verification_email.html b/mediagoblin/templates/mediagoblin/auth/resent_verification_email.html
index 8fd80ee9..37cd6b03 100644
--- a/mediagoblin/templates/mediagoblin/auth/resent_verification_email.html
+++ b/mediagoblin/templates/mediagoblin/auth/resent_verification_email.html
@@ -1,6 +1,6 @@
{#
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/templates/mediagoblin/auth/verification_email.txt b/mediagoblin/templates/mediagoblin/auth/verification_email.txt
index 32053101..c54ca353 100644
--- a/mediagoblin/templates/mediagoblin/auth/verification_email.txt
+++ b/mediagoblin/templates/mediagoblin/auth/verification_email.txt
@@ -1,6 +1,6 @@
{#
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html
index 32d5a5d2..b4c4dcf3 100644
--- a/mediagoblin/templates/mediagoblin/base.html
+++ b/mediagoblin/templates/mediagoblin/base.html
@@ -1,6 +1,6 @@
{#
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
@@ -87,7 +87,7 @@
<div class="container_16">
<div class="grid_16 mediagoblin_footer">
{% trans -%}
- Powered by <a href="http://mediagoblin.org">MediaGoblin</a>, a <a href="http://gnu.org/">GNU project</a>
+ Powered by <a href="http://mediagoblin.org">MediaGoblin</a>, a <a href="http://gnu.org/">GNU</a> project
{%- endtrans %}
</div>
</div>
diff --git a/mediagoblin/templates/mediagoblin/edit/attachments.html b/mediagoblin/templates/mediagoblin/edit/attachments.html
index 2f319dbb..63b06581 100644
--- a/mediagoblin/templates/mediagoblin/edit/attachments.html
+++ b/mediagoblin/templates/mediagoblin/edit/attachments.html
@@ -1,6 +1,6 @@
{#
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/templates/mediagoblin/edit/edit.html b/mediagoblin/templates/mediagoblin/edit/edit.html
index 3dc170c8..8c4e2efb 100644
--- a/mediagoblin/templates/mediagoblin/edit/edit.html
+++ b/mediagoblin/templates/mediagoblin/edit/edit.html
@@ -1,6 +1,6 @@
{#
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/templates/mediagoblin/edit/edit_profile.html b/mediagoblin/templates/mediagoblin/edit/edit_profile.html
index bed5e0ca..464c663d 100644
--- a/mediagoblin/templates/mediagoblin/edit/edit_profile.html
+++ b/mediagoblin/templates/mediagoblin/edit/edit_profile.html
@@ -1,6 +1,6 @@
{#
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/templates/mediagoblin/listings/tag.html b/mediagoblin/templates/mediagoblin/listings/tag.html
index 289f44b8..58863015 100644
--- a/mediagoblin/templates/mediagoblin/listings/tag.html
+++ b/mediagoblin/templates/mediagoblin/listings/tag.html
@@ -1,6 +1,6 @@
{#
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html
index 4ea3fe2a..ed4878a5 100644
--- a/mediagoblin/templates/mediagoblin/root.html
+++ b/mediagoblin/templates/mediagoblin/root.html
@@ -1,6 +1,6 @@
{#
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
@@ -28,14 +28,14 @@
<ul>
<li>{% trans %}The perfect place for your media!{% endtrans %}</li>
<li>{% trans %}A place for people to collaborate and show off original and derived creations!{% endtrans %}</li>
- <li>{% trans %}Free, as in freedom. (We’re a <a href="http://gnu.org">GNU project</a>, after all.){% endtrans %}</li>
+ <li>{% trans %}Free, as in freedom. (We’re a <a href="http://gnu.org">GNU</a> project, after all.){% endtrans %}</li>
<li>{% trans %}Aiming to make the world a better place through decentralization and (eventually, coming soon!) federation!{% endtrans %}</li>
<li>{% trans %}Built for extensibility. (Multiple media types coming soon to the software, including video support!){% endtrans %}</li>
<li>{% trans %}Powered by people like you. (<a href="http://mediagoblin.org/pages/join.html">You can help us improve this software!</a>){% endtrans %}</li>
</ul>
{% if allow_registration %}
- <p>Excited to join us? To add your own media, make collections and save favorites...<p>
+ <p>Excited to join us?<p>
<a class="header_submit_highlight" href="{{ request.urlgen('mediagoblin.auth.register') }}">Create a free account</a> or
<a class="header_submit" href="http://wiki.mediagoblin.org/HackingHowto">Set up MediaGoblin on your own server</a>
{% endif %}
diff --git a/mediagoblin/templates/mediagoblin/submit/start.html b/mediagoblin/templates/mediagoblin/submit/start.html
index 3a40850d..f2e844df 100644
--- a/mediagoblin/templates/mediagoblin/submit/start.html
+++ b/mediagoblin/templates/mediagoblin/submit/start.html
@@ -1,6 +1,6 @@
{#
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/templates/mediagoblin/test_submit.html b/mediagoblin/templates/mediagoblin/test_submit.html
index 5bf8c317..78b88ae8 100644
--- a/mediagoblin/templates/mediagoblin/test_submit.html
+++ b/mediagoblin/templates/mediagoblin/test_submit.html
@@ -1,6 +1,6 @@
{#
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/templates/mediagoblin/user_pages/gallery.html b/mediagoblin/templates/mediagoblin/user_pages/gallery.html
index 3a3d2373..df931d9c 100644
--- a/mediagoblin/templates/mediagoblin/user_pages/gallery.html
+++ b/mediagoblin/templates/mediagoblin/user_pages/gallery.html
@@ -1,6 +1,6 @@
{#
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html
index 0425500e..442bef6d 100644
--- a/mediagoblin/templates/mediagoblin/user_pages/media.html
+++ b/mediagoblin/templates/mediagoblin/user_pages/media.html
@@ -1,6 +1,6 @@
{#
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
@@ -121,15 +121,22 @@
request.user['is_admin'] %}
<h3>Temporary button holder</h3>
<p>
- <a href="{{ request.urlgen('mediagoblin.edit.edit_media',
+ {% set edit_url = request.urlgen('mediagoblin.edit.edit_media',
user= media.uploader().username,
- media= media._id) }}"
+ media= media._id) %}
+ <a href="{{ edit_url }}"
><img src="{{ request.staticdirect('/images/icon_edit.png') }}"
- class="media_icon" />edit</a>
+ class="media_icon" /></a>
+ <a href="{{ edit_url }}">{% trans %}edit{% endtrans %}</a>
</p>
<p>
- <img src="{{ request.staticdirect('/images/icon_delete.png') }}"
- class="media_icon" />{% trans %}delete{% endtrans %}
+ {% set delete_url = request.urlgen('mediagoblin.user_pages.media_confirm_delete',
+ user= media.uploader().username,
+ media= media._id) %}
+ <a href="{{ delete_url }}"
+ ><img src="{{ request.staticdirect('/images/icon_delete.png') }}"
+ class="media_icon" /></a>
+ <a href="{{ delete_url }}">{% trans %}delete{% endtrans %}</a>
</p>
{% endif %}
diff --git a/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html
new file mode 100644
index 00000000..01323a6e
--- /dev/null
+++ b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html
@@ -0,0 +1,54 @@
+{#
+# GNU MediaGoblin -- federated, autonomous media hosting
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
+#
+# 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/>.
+#}
+{% extends "mediagoblin/base.html" %}
+
+{% import "/mediagoblin/utils/wtforms.html" as wtforms_util %}
+
+{% block mediagoblin_content %}
+
+ <form action="{{ request.urlgen('mediagoblin.user_pages.media_confirm_delete',
+ user=media.uploader().username,
+ media=media._id) }}"
+ method="POST" enctype="multipart/form-data">
+ <div class="grid_8 prefix_1 suffix_1 edit_box form_box">
+ <h1>
+ {%- trans title=media['title'] -%}
+ Really delete {{ title }}?
+ {%- endtrans %}
+ </h1>
+
+ <div style="text-align: center;" >
+ <img src="{{ request.app.public_store.file_url(
+ media['media_files']['thumb']) }}" />
+ </div>
+
+ <br />
+
+ <p class="delete_checkbox_box">
+ {{ form.confirm }}
+ {{ _(form.confirm.label.text) }}
+ </p>
+
+ <div class="form_submit_buttons">
+ {# TODO: This isn't a button really... might do unexpected things :) #}
+ <a class="cancel_link" href="{{ media.url_for_self(request.urlgen) }}">{% trans %}Cancel{% endtrans %}</a>
+ <input type="submit" value="{% trans %}Delete Permanently{% endtrans %}" class="button" />
+ </div>
+ </div>
+ </form>
+{% endblock %}
diff --git a/mediagoblin/templates/mediagoblin/user_pages/processing_panel.html b/mediagoblin/templates/mediagoblin/user_pages/processing_panel.html
index abc7efd3..9b4adeb5 100644
--- a/mediagoblin/templates/mediagoblin/user_pages/processing_panel.html
+++ b/mediagoblin/templates/mediagoblin/user_pages/processing_panel.html
@@ -1,6 +1,6 @@
{#
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html
index 0214082c..c5beeaaa 100644
--- a/mediagoblin/templates/mediagoblin/user_pages/user.html
+++ b/mediagoblin/templates/mediagoblin/user_pages/user.html
@@ -1,6 +1,6 @@
{#
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
@@ -36,11 +36,11 @@
{% if user == request.user %}
{# this should only be visible when you are this user #}
<div class="grid_6 prefix_1 suffix_1 form_box">
- <h1>{% trans %}Verification needed{% endtrans %}</h1>
+ <h1>{% trans %}Email verification needed{% endtrans %}</h1>
<p>
{% trans -%}
- Almost done! Your account still needs to be verified.
+ Almost done! Your account still needs to be activated.
{%- endtrans %}
</p>
<p>
@@ -56,11 +56,11 @@
{% else %}
{# if the user is not you, but still needs to verify their email #}
<div class="grid_6 prefix_1 suffix_1 form_box">
- <h1>{% trans %}Verification needed{% endtrans %}</h1>
+ <h1>{% trans %}Email verification needed{% endtrans %}</h1>
<p>
{% trans -%}
- Someone has registered an account with this username, but it still has to be verified.
+ Someone has registered an account with this username, but it still has to be activated.
{%- endtrans %}
</p>
diff --git a/mediagoblin/templates/mediagoblin/utils/feed_link.html b/mediagoblin/templates/mediagoblin/utils/feed_link.html
index c4036bf3..3afcc844 100644
--- a/mediagoblin/templates/mediagoblin/utils/feed_link.html
+++ b/mediagoblin/templates/mediagoblin/utils/feed_link.html
@@ -1,6 +1,6 @@
{#
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/templates/mediagoblin/utils/messages.html b/mediagoblin/templates/mediagoblin/utils/messages.html
index a8d9c37e..9d4dc58a 100644
--- a/mediagoblin/templates/mediagoblin/utils/messages.html
+++ b/mediagoblin/templates/mediagoblin/utils/messages.html
@@ -1,6 +1,6 @@
{#
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/templates/mediagoblin/utils/object_gallery.html b/mediagoblin/templates/mediagoblin/utils/object_gallery.html
index 34eb7dbc..e1b8cc9b 100644
--- a/mediagoblin/templates/mediagoblin/utils/object_gallery.html
+++ b/mediagoblin/templates/mediagoblin/utils/object_gallery.html
@@ -1,6 +1,6 @@
{#
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/templates/mediagoblin/utils/pagination.html b/mediagoblin/templates/mediagoblin/utils/pagination.html
index 23d49463..87e15e0f 100644
--- a/mediagoblin/templates/mediagoblin/utils/pagination.html
+++ b/mediagoblin/templates/mediagoblin/utils/pagination.html
@@ -1,5 +1,6 @@
-{# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+{#
+# GNU MediaGoblin -- federated, autonomous media hosting
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
@@ -32,15 +33,18 @@
<div class="pagination">
<p>
{% if pagination.has_prev %}
- <a href="{{ pagination.get_page_url_explicit(
- base_url, get_params,
- pagination.page - 1) }}"><img class="pagination_arrow" src="/mgoblin_static/images/pagination_left.png" alt="Previous page" />Newer</a>
+ {% set prev_url = pagination.get_page_url_explicit(
+ base_url, get_params,
+ pagination.page - 1) %}
+ <a href="{{ prev_url }}"><img class="pagination_arrow" src="/mgoblin_static/images/pagination_left.png" alt="Previous page" /></a>
+ <a href="{{ prev_url }}">{% trans %}Newer{% endtrans %}</a>
{% endif %}
{% if pagination.has_next %}
- <a href="{{ pagination.get_page_url_explicit(
- base_url, get_params,
- pagination.page + 1) }}">Older<img class="pagination_arrow" src="/mgoblin_static/images/pagination_right.png" alt="Next page" />
- </a>
+ {% set next_url = pagination.get_page_url_explicit(
+ base_url, get_params,
+ pagination.page + 1) %}
+ <a href="{{ next_url }}">{% trans %}Older{% endtrans %}</a>
+ <a href="{{ next_url }}"><img class="pagination_arrow" src="/mgoblin_static/images/pagination_right.png" alt="Next page" /></a>
{% endif %}
<br />
Go to page:
diff --git a/mediagoblin/templates/mediagoblin/utils/prev_next.html b/mediagoblin/templates/mediagoblin/utils/prev_next.html
index 7cf8d2a4..74f855ed 100644
--- a/mediagoblin/templates/mediagoblin/utils/prev_next.html
+++ b/mediagoblin/templates/mediagoblin/utils/prev_next.html
@@ -1,6 +1,6 @@
{#
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
@@ -20,27 +20,29 @@
{% set prev_entry_url = media.url_to_prev(request.urlgen) %}
{% set next_entry_url = media.url_to_next(request.urlgen) %}
-<div>
- {# There are no previous entries for the very first media entry #}
- {% if prev_entry_url %}
- <a class="navigation_button navigation_left" href="{{ prev_entry_url }}">
- <img src="/mgoblin_static/images/navigation_left.png" alt="Previous image" />
- </a>
- {% else %}
- {# This is the first entry. display greyed-out 'previous' image #}
- <p class="navigation_button navigation_left">
- <img src="/mgoblin_static/images/navigation_end.png" alt="No previous images" />
- </p>
- {% endif %}
- {# Likewise, this could be the very last media entry #}
- {% if next_entry_url %}
- <a class="navigation_button" href="{{ next_entry_url }}">
- <img src="/mgoblin_static/images/navigation_right.png" alt="Next image" />
- </a>
- {% else %}
- {# This is the last entry. display greyed-out 'next' image #}
- <p class="navigation_button">
- <img src="/mgoblin_static/images/navigation_end.png" alt="No following images" />
- </p>
- {% endif %}
-</div>
+{% if prev_entry_url or next_entry_url %}
+ <div class="grid_5 alpha omega">
+ {# There are no previous entries for the very first media entry #}
+ {% if prev_entry_url %}
+ <a class="navigation_button navigation_left" href="{{ prev_entry_url }}">
+ <img src="/mgoblin_static/images/navigation_left.png" alt="Previous image" />
+ </a>
+ {% else %}
+ {# This is the first entry. display greyed-out 'previous' image #}
+ <p class="navigation_button navigation_left">
+ <img src="/mgoblin_static/images/navigation_end.png" alt="No previous images" />
+ </p>
+ {% endif %}
+ {# Likewise, this could be the very last media entry #}
+ {% if next_entry_url %}
+ <a class="navigation_button" href="{{ next_entry_url }}">
+ <img src="/mgoblin_static/images/navigation_right.png" alt="Next image" />
+ </a>
+ {% else %}
+ {# This is the last entry. display greyed-out 'next' image #}
+ <p class="navigation_button">
+ <img src="/mgoblin_static/images/navigation_end.png" alt="No following images" />
+ </p>
+ {% endif %}
+ </div>
+{% endif %}
diff --git a/mediagoblin/templates/mediagoblin/utils/profile.html b/mediagoblin/templates/mediagoblin/utils/profile.html
index 63024b77..9a134e5f 100644
--- a/mediagoblin/templates/mediagoblin/utils/profile.html
+++ b/mediagoblin/templates/mediagoblin/utils/profile.html
@@ -1,6 +1,6 @@
{#
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/templates/mediagoblin/utils/tags.html b/mediagoblin/templates/mediagoblin/utils/tags.html
index 32db6e31..87e6a85f 100644
--- a/mediagoblin/templates/mediagoblin/utils/tags.html
+++ b/mediagoblin/templates/mediagoblin/utils/tags.html
@@ -1,6 +1,6 @@
{#
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/templates/mediagoblin/utils/wtforms.html b/mediagoblin/templates/mediagoblin/utils/wtforms.html
index 2639522a..6a86fd24 100644
--- a/mediagoblin/templates/mediagoblin/utils/wtforms.html
+++ b/mediagoblin/templates/mediagoblin/utils/wtforms.html
@@ -1,6 +1,6 @@
{#
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
@@ -20,9 +20,6 @@
{% macro render_field_div(field) %}
<div class="form_field_box">
<div class="form_field_label">{{ _(field.label.text) }}</div>
- {% if field.description -%}
- <div class="form_field_description">{{ _(field.description) }}</div>
- {%- endif %}
<div class="form_field_input">{{ field }}</div>
{%- if field.errors -%}
{% for error in field.errors %}
@@ -31,6 +28,9 @@
</div>
{% endfor %}
{%- endif %}
+ {% if field.description -%}
+ <div class="form_field_description">{{ _(field.description) }}</div>
+ {%- endif %}
</div>
{%- endmacro %}
diff --git a/mediagoblin/tests/__init__.py b/mediagoblin/tests/__init__.py
index adb6a1b3..eac3dff4 100644
--- a/mediagoblin/tests/__init__.py
+++ b/mediagoblin/tests/__init__.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/tests/fake_celery_module.py b/mediagoblin/tests/fake_celery_module.py
index c129cbf8..ba347c69 100644
--- a/mediagoblin/tests/fake_celery_module.py
+++ b/mediagoblin/tests/fake_celery_module.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/tests/test_auth.py b/mediagoblin/tests/test_auth.py
index 4781dd9b..eed418c6 100644
--- a/mediagoblin/tests/test_auth.py
+++ b/mediagoblin/tests/test_auth.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/tests/test_celery_setup.py b/mediagoblin/tests/test_celery_setup.py
index b80cab49..348a4357 100644
--- a/mediagoblin/tests/test_celery_setup.py
+++ b/mediagoblin/tests/test_celery_setup.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/tests/test_config.py b/mediagoblin/tests/test_config.py
index f9f12072..0764e12d 100644
--- a/mediagoblin/tests/test_config.py
+++ b/mediagoblin/tests/test_config.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/tests/test_globals.py b/mediagoblin/tests/test_globals.py
index 63578d62..84f1c74a 100644
--- a/mediagoblin/tests/test_globals.py
+++ b/mediagoblin/tests/test_globals.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/tests/test_messages.py b/mediagoblin/tests/test_messages.py
index 4cd9381a..9c57a151 100644
--- a/mediagoblin/tests/test_messages.py
+++ b/mediagoblin/tests/test_messages.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/tests/test_migrations.py b/mediagoblin/tests/test_migrations.py
index c100a26a..fc2449f7 100644
--- a/mediagoblin/tests/test_migrations.py
+++ b/mediagoblin/tests/test_migrations.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/tests/test_storage.py b/mediagoblin/tests/test_storage.py
index 45cb35c1..9c96f6ca 100644
--- a/mediagoblin/tests/test_storage.py
+++ b/mediagoblin/tests/test_storage.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/tests/test_submission.py b/mediagoblin/tests/test_submission.py
index 9ae129cd..007c0348 100644
--- a/mediagoblin/tests/test_submission.py
+++ b/mediagoblin/tests/test_submission.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
@@ -17,7 +17,7 @@
import urlparse
import pkg_resources
-from nose.tools import assert_equal
+from nose.tools import assert_equal, assert_true, assert_false
from mediagoblin.auth import lib as auth_lib
from mediagoblin.tests.tools import setup_fresh_app, get_test_app
@@ -53,6 +53,8 @@ class TestSubmission:
test_user['pw_hash'] = auth_lib.bcrypt_gen_password_hash('toast')
test_user.save()
+ self.test_user = test_user
+
self.test_app.post(
'/auth/login/', {
'username': u'chris',
@@ -150,6 +152,64 @@ class TestSubmission:
u'Tags must be shorter than 50 characters. Tags that are too long'\
': ffffffffffffffffffffffffffuuuuuuuuuuuuuuuuuuuuuuuuuu']
+ def test_delete(self):
+ util.clear_test_template_context()
+ response = self.test_app.post(
+ '/submit/', {
+ 'title': 'Balanced Goblin',
+ }, upload_files=[(
+ 'file', GOOD_JPG)])
+
+ # Post image
+ response.follow()
+
+ request = util.TEMPLATE_TEST_CONTEXT[
+ 'mediagoblin/user_pages/user.html']['request']
+
+ media = request.db.MediaEntry.find({'title': 'Balanced Goblin'})[0]
+
+ # Does media entry exist?
+ assert_true(media)
+
+ # Do not confirm deletion
+ # ---------------------------------------------------
+ response = self.test_app.post(
+ request.urlgen('mediagoblin.user_pages.media_confirm_delete',
+ # No work: user=media.uploader().username,
+ user=self.test_user['username'],
+ media=media['_id']),
+ # no value means no confirm
+ {})
+
+ response.follow()
+
+ request = util.TEMPLATE_TEST_CONTEXT[
+ 'mediagoblin/user_pages/user.html']['request']
+
+ media = request.db.MediaEntry.find({'title': 'Balanced Goblin'})[0]
+
+ # Does media entry still exist?
+ assert_true(media)
+
+ # Confirm deletion
+ # ---------------------------------------------------
+ response = self.test_app.post(
+ request.urlgen('mediagoblin.user_pages.media_confirm_delete',
+ # No work: user=media.uploader().username,
+ user=self.test_user['username'],
+ media=media['_id']),
+ {'confirm': 'y'})
+
+ response.follow()
+
+ request = util.TEMPLATE_TEST_CONTEXT[
+ 'mediagoblin/user_pages/user.html']['request']
+
+ # Does media entry still exist?
+ assert_false(
+ request.db.MediaEntry.find(
+ {'_id': media['_id']}).count())
+
def test_malicious_uploads(self):
# Test non-suppoerted file with non-supported extension
# -----------------------------------------------------
diff --git a/mediagoblin/tests/test_tags.py b/mediagoblin/tests/test_tags.py
index c2e9fa2b..d4628795 100644
--- a/mediagoblin/tests/test_tags.py
+++ b/mediagoblin/tests/test_tags.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/tests/test_tests.py b/mediagoblin/tests/test_tests.py
index 8ac7f0a4..bc5f9a8d 100644
--- a/mediagoblin/tests/test_tests.py
+++ b/mediagoblin/tests/test_tests.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/tests/test_util.py b/mediagoblin/tests/test_util.py
index 75e28aca..c2a3a67f 100644
--- a/mediagoblin/tests/test_util.py
+++ b/mediagoblin/tests/test_util.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/tests/test_workbench.py b/mediagoblin/tests/test_workbench.py
index 953835a1..977d64b9 100644
--- a/mediagoblin/tests/test_workbench.py
+++ b/mediagoblin/tests/test_workbench.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/tests/tools.py b/mediagoblin/tests/tools.py
index ab14c21e..308e83ee 100644
--- a/mediagoblin/tests/tools.py
+++ b/mediagoblin/tests/tools.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/user_pages/__init__.py b/mediagoblin/user_pages/__init__.py
index a8eeb5ed..576bd0f5 100644
--- a/mediagoblin/user_pages/__init__.py
+++ b/mediagoblin/user_pages/__init__.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/user_pages/forms.py b/mediagoblin/user_pages/forms.py
index 25001019..57061d34 100644
--- a/mediagoblin/user_pages/forms.py
+++ b/mediagoblin/user_pages/forms.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
@@ -23,3 +23,8 @@ class MediaCommentForm(wtforms.Form):
comment_content = wtforms.TextAreaField(
_('Comment'),
[wtforms.validators.Required()])
+
+
+class ConfirmDeleteForm(wtforms.Form):
+ confirm = wtforms.BooleanField(
+ _('I am sure I want to delete this'))
diff --git a/mediagoblin/user_pages/routing.py b/mediagoblin/user_pages/routing.py
index 65c0fa64..3586d9cd 100644
--- a/mediagoblin/user_pages/routing.py
+++ b/mediagoblin/user_pages/routing.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
@@ -32,6 +32,9 @@ user_routes = [
Route('mediagoblin.edit.attachments',
'/{user}/m/{media}/attachments/',
controller="mediagoblin.edit.views:edit_attachments"),
+ Route('mediagoblin.user_pages.media_confirm_delete',
+ "/{user}/m/{media}/confirm-delete/",
+ controller="mediagoblin.user_pages.views:media_confirm_delete"),
Route('mediagoblin.user_pages.atom_feed', '/{user}/atom/',
controller="mediagoblin.user_pages.views:atom_feed"),
Route('mediagoblin.user_pages.media_post_comment',
diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py
index 2d9bcd21..f60bd186 100644
--- a/mediagoblin/user_pages/views.py
+++ b/mediagoblin/user_pages/views.py
@@ -1,5 +1,5 @@
# MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
@@ -20,11 +20,12 @@ from mediagoblin import messages, mg_globals
from mediagoblin.db.util import DESCENDING, ObjectId
from mediagoblin.util import (
Pagination, render_to_response, redirect, cleaned_markdown_conversion,
- render_404)
+ render_404, delete_media_files)
+from mediagoblin.util import pass_to_ugettext as _
from mediagoblin.user_pages import forms as user_forms
from mediagoblin.decorators import (uses_pagination, get_user_media_entry,
- require_active_login)
+ require_active_login, user_may_delete_media)
from werkzeug.contrib.atom import AtomFeed
@@ -130,7 +131,7 @@ def media_post_comment(request):
comment = request.db.MediaComment()
comment['media_entry'] = ObjectId(request.matchdict['media'])
comment['author'] = request.user['_id']
- comment['content'] = request.POST['comment_content']
+ comment['content'] = unicode(request.POST['comment_content'])
comment['content_html'] = cleaned_markdown_conversion(comment['content'])
@@ -145,6 +146,43 @@ def media_post_comment(request):
user = request.matchdict['user'])
+@get_user_media_entry
+@require_active_login
+@user_may_delete_media
+def media_confirm_delete(request, media):
+
+ form = user_forms.ConfirmDeleteForm(request.POST)
+
+ if request.method == 'POST' and form.validate():
+ if form.confirm.data is True:
+ username = media.uploader()['username']
+
+ # Delete all files on the public storage
+ delete_media_files(media)
+
+ media.delete()
+
+ return redirect(request, "mediagoblin.user_pages.user_home",
+ user=username)
+ else:
+ return redirect(request, "mediagoblin.user_pages.media_home",
+ user=media.uploader()['username'],
+ media=media['slug'])
+
+ if ((request.user[u'is_admin'] and
+ request.user[u'_id'] != media.uploader()[u'_id'])):
+ messages.add_message(
+ request, messages.WARNING,
+ _("You are about to delete another user's media. "
+ "Proceed with caution."))
+
+ return render_to_response(
+ request,
+ 'mediagoblin/user_pages/media_confirm_delete.html',
+ {'media': media,
+ 'form': form})
+
+
ATOM_DEFAULT_NR_OF_UPDATED_ITEMS = 15
def atom_feed(request):
diff --git a/mediagoblin/util.py b/mediagoblin/util.py
index 0b6428da..7ff3ec7f 100644
--- a/mediagoblin/util.py
+++ b/mediagoblin/util.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
@@ -244,7 +244,7 @@ class FakeMhost(object):
Just a fake mail host so we can capture and test messages
from send_email
"""
- def connect(self):
+ def login(self, *args, **kwargs):
pass
def sendmail(self, from_addr, to_addrs, message):
@@ -274,13 +274,22 @@ def send_email(from_addr, to_addrs, subject, message_body):
- subject: subject of the email
- message_body: email body text
"""
- # TODO: make a mock mhost if testing is enabled
if TESTS_ENABLED or mg_globals.app_config['email_debug_mode']:
mhost = FakeMhost()
elif not mg_globals.app_config['email_debug_mode']:
- mhost = smtplib.SMTP()
+ mhost = smtplib.SMTP(
+ mg_globals.app_config['email_smtp_host'],
+ mg_globals.app_config['email_smtp_port'])
- mhost.connect()
+ # SMTP.__init__ Issues SMTP.connect implicitly if host
+ if not mg_globals.app_config['email_smtp_host']: # e.g. host = ''
+ mhost.connect() # We SMTP.connect explicitly
+
+ if mg_globals.app_config['email_smtp_user'] \
+ or mg_globals.app_config['email_smtp_pass']:
+ mhost.login(
+ mg_globals.app_config['email_smtp_user'],
+ mg_globals.app_config['email_smtp_pass'])
message = MIMEText(message_body.encode('utf-8'), 'plain', 'utf-8')
message['Subject'] = subject
@@ -672,3 +681,18 @@ def render_404(request):
"""
return render_to_response(
request, 'mediagoblin/404.html', {}, status=400)
+
+def delete_media_files(media):
+ """
+ Delete all files associated with a MediaEntry
+
+ Arguments:
+ - media: A MediaEntry document
+ """
+ for listpath in media['media_files'].itervalues():
+ mg_globals.public_store.delete_file(
+ listpath)
+
+ for attachment in media['attachment_files']:
+ mg_globals.public_store.delete_file(
+ attachment['filepath'])
diff --git a/mediagoblin/views.py b/mediagoblin/views.py
index ccd7a2df..96687f96 100644
--- a/mediagoblin/views.py
+++ b/mediagoblin/views.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/mediagoblin/workbench.py b/mediagoblin/workbench.py
index f83c4fa0..722f8e27 100644
--- a/mediagoblin/workbench.py
+++ b/mediagoblin/workbench.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
diff --git a/setup.py b/setup.py
index d6ef584b..06626926 100644
--- a/setup.py
+++ b/setup.py
@@ -1,5 +1,5 @@
# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
#
# 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
@@ -15,10 +15,26 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from setuptools import setup, find_packages
+import os
+import re
+
+READMEFILE = "README"
+VERSIONFILE = os.path.join("mediagoblin", "_version.py")
+VSRE = r"^__version__ = ['\"]([^'\"]*)['\"]"
+
+
+def get_version():
+ verstrline = open(VERSIONFILE, "rt").read()
+ mo = re.search(VSRE, verstrline, re.M)
+ if mo:
+ return mo.group(1)
+ else:
+ raise RuntimeError("Unable to find version string in %s." % VERSIONFILE)
+
setup(
name = "mediagoblin",
- version = "0.0.4",
+ version = get_version(),
packages=find_packages(exclude=['ez_setup', 'examples', 'tests']),
zip_safe=False,
# scripts and dependencies
@@ -73,7 +89,7 @@ setup(
author_email='cwebber@gnu.org',
url="http://mediagoblin.org/",
download_url="http://mediagoblin.org/download/",
- long_description=open('README').read(),
+ long_description=open(READMEFILE).read(),
classifiers=[
"Development Status :: 3 - Alpha",
"Environment :: Web Environment",