aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin')
-rw-r--r--mediagoblin/_version.py2
-rw-r--r--mediagoblin/app.py2
-rw-r--r--mediagoblin/auth/lib.py12
-rw-r--r--mediagoblin/auth/views.py44
-rw-r--r--mediagoblin/config_spec.ini6
-rw-r--r--mediagoblin/db/models.py32
-rw-r--r--mediagoblin/decorators.py5
-rw-r--r--mediagoblin/edit/lib.py4
-rw-r--r--mediagoblin/edit/views.py30
-rw-r--r--mediagoblin/gmg_commands/import_export.py4
-rw-r--r--mediagoblin/gmg_commands/users.py29
-rw-r--r--mediagoblin/gmg_commands/util.py13
-rw-r--r--mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.mobin12268 -> 12717 bytes
-rw-r--r--mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po54
-rw-r--r--mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.mobin10826 -> 11505 bytes
-rw-r--r--mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.po54
-rw-r--r--mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mobin11119 -> 11802 bytes
-rw-r--r--mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po88
-rw-r--r--mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po52
-rw-r--r--mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mobin10809 -> 11749 bytes
-rw-r--r--mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po118
-rw-r--r--mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mobin11329 -> 12120 bytes
-rw-r--r--mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po136
-rw-r--r--mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mobin11583 -> 12304 bytes
-rw-r--r--mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po114
-rw-r--r--mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.mobin10530 -> 11238 bytes
-rw-r--r--mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.po54
-rw-r--r--mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.mobin11026 -> 11622 bytes
-rw-r--r--mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.po54
-rw-r--r--mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mobin11224 -> 11879 bytes
-rw-r--r--mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po54
-rw-r--r--mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.mobin10695 -> 11394 bytes
-rw-r--r--mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po54
-rw-r--r--mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.mobin10287 -> 10933 bytes
-rw-r--r--mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po58
-rw-r--r--mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mobin10945 -> 11350 bytes
-rw-r--r--mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po100
-rw-r--r--mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mobin11067 -> 11882 bytes
-rw-r--r--mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po128
-rw-r--r--mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mobin13899 -> 15457 bytes
-rw-r--r--mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po116
-rw-r--r--mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.mobin11267 -> 11993 bytes
-rw-r--r--mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.po113
-rw-r--r--mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.mobin10764 -> 11439 bytes
-rw-r--r--mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po54
-rw-r--r--mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mobin10627 -> 11335 bytes
-rw-r--r--mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po54
-rw-r--r--mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mobin11015 -> 11538 bytes
-rw-r--r--mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po54
-rw-r--r--mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.mobin10812 -> 11527 bytes
-rw-r--r--mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.po54
-rw-r--r--mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mobin10509 -> 11190 bytes
-rw-r--r--mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po107
-rw-r--r--mediagoblin/listings/views.py2
-rw-r--r--mediagoblin/meddleware/csrf.py3
-rw-r--r--mediagoblin/media_types/__init__.py4
-rw-r--r--mediagoblin/media_types/video/processing.py31
-rw-r--r--mediagoblin/processing.py4
-rw-r--r--mediagoblin/static/css/base.css3
-rw-r--r--mediagoblin/submit/views.py14
-rw-r--r--mediagoblin/templates/mediagoblin/base.html8
-rw-r--r--mediagoblin/templates/mediagoblin/edit/edit_profile.html4
-rw-r--r--mediagoblin/templates/mediagoblin/media_displays/video.html2
-rw-r--r--mediagoblin/templates/mediagoblin/root.html2
-rw-r--r--mediagoblin/templates/mediagoblin/user_pages/media.html222
-rw-r--r--mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html2
-rw-r--r--mediagoblin/templates/mediagoblin/user_pages/processing_panel.html6
-rw-r--r--mediagoblin/templates/mediagoblin/user_pages/user.html4
-rw-r--r--mediagoblin/templates/mediagoblin/utils/object_gallery.html4
-rw-r--r--mediagoblin/templates/mediagoblin/utils/prev_next.html8
-rw-r--r--mediagoblin/tests/test_auth.py32
-rw-r--r--mediagoblin/tests/test_edit.py29
-rw-r--r--mediagoblin/tests/test_mgoblin_app.ini1
-rw-r--r--mediagoblin/tests/test_misc.py26
-rw-r--r--mediagoblin/tests/test_submission.py16
-rw-r--r--mediagoblin/tests/test_tags.py9
-rw-r--r--mediagoblin/tests/test_tests.py6
-rw-r--r--mediagoblin/tests/tools.py17
-rw-r--r--mediagoblin/tools/template.py4
-rw-r--r--mediagoblin/tools/text.py5
-rw-r--r--mediagoblin/user_pages/views.py16
81 files changed, 1557 insertions, 780 deletions
diff --git a/mediagoblin/_version.py b/mediagoblin/_version.py
index d6c6e20d..5e3f4e5a 100644
--- a/mediagoblin/_version.py
+++ b/mediagoblin/_version.py
@@ -14,4 +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/>.
-__version__ = "0.1.0"
+__version__ = "0.3.0-dev"
diff --git a/mediagoblin/app.py b/mediagoblin/app.py
index 7f087ed9..04eb2acc 100644
--- a/mediagoblin/app.py
+++ b/mediagoblin/app.py
@@ -63,7 +63,7 @@ class MediaGoblinApp(object):
# Get the template environment
self.template_loader = get_jinja_loader(
- app_config.get('user_template_path'))
+ app_config.get('local_templates'))
# Set up storage systems
self.public_store, self.queue_store = setup_storage()
diff --git a/mediagoblin/auth/lib.py b/mediagoblin/auth/lib.py
index cf4a2b83..c0af3b5b 100644
--- a/mediagoblin/auth/lib.py
+++ b/mediagoblin/auth/lib.py
@@ -105,17 +105,17 @@ def send_verification_email(user, request):
"""
rendered_email = render_template(
request, 'mediagoblin/auth/verification_email.txt',
- {'username': user['username'],
+ {'username': user.username,
'verification_url': EMAIL_VERIFICATION_TEMPLATE.format(
host=request.host,
uri=request.urlgen('mediagoblin.auth.verify_email'),
userid=unicode(user._id),
- verification_key=user['verification_key'])})
+ verification_key=user.verification_key)})
# TODO: There is no error handling in place
send_email(
mg_globals.app_config['email_sender_address'],
- [user['email']],
+ [user.email],
# TODO
# Due to the distributed nature of GNU MediaGoblin, we should
# find a way to send some additional information about the
@@ -140,16 +140,16 @@ def send_fp_verification_email(user, request):
"""
rendered_email = render_template(
request, 'mediagoblin/auth/fp_verification_email.txt',
- {'username': user['username'],
+ {'username': user.username,
'verification_url': EMAIL_FP_VERIFICATION_TEMPLATE.format(
host=request.host,
uri=request.urlgen('mediagoblin.auth.verify_forgot_password'),
userid=unicode(user._id),
- fp_verification_key=user['fp_verification_key'])})
+ fp_verification_key=user.fp_verification_key)})
# TODO: There is no error handling in place
send_email(
mg_globals.app_config['email_sender_address'],
- [user['email']],
+ [user.email],
'GNU MediaGoblin - Change forgotten password!',
rendered_email)
diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py
index d01861d1..919aa3cd 100644
--- a/mediagoblin/auth/views.py
+++ b/mediagoblin/auth/views.py
@@ -80,9 +80,9 @@ def register(request):
if extra_validation_passes:
# Create the user
user = request.db.User()
- user['username'] = username
- user['email'] = email
- user['pw_hash'] = auth_lib.bcrypt_gen_password_hash(
+ user.username = username
+ user.email = email
+ user.pw_hash = auth_lib.bcrypt_gen_password_hash(
request.POST['password'])
user.save(validate=True)
@@ -98,7 +98,7 @@ def register(request):
# message waiting for them to verify their email
return redirect(
request, 'mediagoblin.user_pages.user_home',
- user=user['username'])
+ user=user.username)
return render_to_response(
request,
@@ -166,10 +166,10 @@ def verify_email(request):
user = request.db.User.find_one(
{'_id': ObjectId(unicode(request.GET['userid']))})
- if user and user['verification_key'] == unicode(request.GET['token']):
- user[u'status'] = u'active'
- user[u'email_verified'] = True
- user[u'verification_key'] = None
+ if user and user.verification_key == unicode(request.GET['token']):
+ user.status = u'active'
+ user.email_verified = True
+ user.verification_key = None
user.save()
@@ -186,7 +186,7 @@ def verify_email(request):
return redirect(
request, 'mediagoblin.user_pages.user_home',
- user=user['username'])
+ user=user.username)
def resend_activation(request):
@@ -212,7 +212,7 @@ def resend_activation(request):
return redirect(request, "mediagoblin.user_pages.user_home", user=request.user['username'])
- request.user[u'verification_key'] = unicode(uuid.uuid4())
+ request.user.verification_key = unicode(uuid.uuid4())
request.user.save()
email_debug_message(request)
@@ -224,7 +224,7 @@ def resend_activation(request):
_('Resent your verification email.'))
return redirect(
request, 'mediagoblin.user_pages.user_home',
- user=request.user['username'])
+ user=request.user.username)
def forgot_password(request):
@@ -249,9 +249,9 @@ def forgot_password(request):
{'email': request.POST['username']})
if user:
- if user['email_verified'] and user['status'] == 'active':
- user[u'fp_verification_key'] = unicode(uuid.uuid4())
- user[u'fp_token_expire'] = datetime.datetime.now() + \
+ if user.email_verified and user.status == 'active':
+ user.fp_verification_key = unicode(uuid.uuid4())
+ user.fp_token_expire = datetime.datetime.now() + \
datetime.timedelta(days=10)
user.save()
@@ -268,7 +268,7 @@ def forgot_password(request):
return redirect(
request, 'mediagoblin.user_pages.user_home',
- user=user['username'])
+ user=user.username)
# do not reveal whether or not there is a matching user
return redirect(request, 'mediagoblin.auth.fp_email_sent')
@@ -301,18 +301,18 @@ def verify_forgot_password(request):
return render_404(request)
# check if we have a real user and correct token
- if ((user and user['fp_verification_key'] and
- user['fp_verification_key'] == unicode(formdata_token) and
- datetime.datetime.now() < user['fp_token_expire']
- and user['email_verified'] and user['status'] == 'active')):
+ if ((user and user.fp_verification_key and
+ user.fp_verification_key == unicode(formdata_token) and
+ datetime.datetime.now() < user.fp_token_expire
+ and user.email_verified and user.status == 'active')):
cp_form = auth_forms.ChangePassForm(formdata_vars)
if request.method == 'POST' and cp_form.validate():
- user[u'pw_hash'] = auth_lib.bcrypt_gen_password_hash(
+ user.pw_hash = auth_lib.bcrypt_gen_password_hash(
request.POST['password'])
- user[u'fp_verification_key'] = None
- user[u'fp_token_expire'] = None
+ user.fp_verification_key = None
+ user.fp_token_expire = None
user.save()
return redirect(request, 'mediagoblin.auth.fp_changed_success')
diff --git a/mediagoblin/config_spec.ini b/mediagoblin/config_spec.ini
index c057f432..eb22bc1b 100644
--- a/mediagoblin/config_spec.ini
+++ b/mediagoblin/config_spec.ini
@@ -28,7 +28,6 @@ email_smtp_pass = string(default=None)
allow_registration = boolean(default=True)
# tag parsing
-tags_delimiter = string(default=",")
tags_max_length = integer(default=50)
# Whether comments are ascending or descending
@@ -62,6 +61,11 @@ storage_class = string(default="mediagoblin.storage.filestorage:BasicFileStorage
base_dir = string(default="%(here)s/user_dev/media/queue")
+# Should we keep the original file?
+[media_type:mediagoblin.media_types.video]
+keep_original = boolean(default=False)
+
+
[beaker.cache]
type = string(default="file")
data_dir = string(default="%(here)s/user_dev/beaker/cache/data")
diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py
index 265fe36d..569c3600 100644
--- a/mediagoblin/db/models.py
+++ b/mediagoblin/db/models.py
@@ -96,7 +96,7 @@ class User(Document):
See if a user can login with this password
"""
return auth_lib.bcrypt_check_password(
- password, self['pw_hash'])
+ password, self.pw_hash)
class MediaEntry(Document):
@@ -131,7 +131,7 @@ class MediaEntry(Document):
For example, images might contain some EXIF data that's not appropriate
to other formats. You might store it like:
- mediaentry['media_data']['exif'] = {
+ mediaentry.media_data['exif'] = {
'manufacturer': 'CASIO',
'model': 'QV-4000',
'exposure_time': .659}
@@ -139,7 +139,7 @@ class MediaEntry(Document):
Alternately for video you might store:
# play length in seconds
- mediaentry['media_data']['play_length'] = 340
+ mediaentry.media_data['play_length'] = 340
... so what's appropriate here really depends on the media type.
@@ -249,13 +249,13 @@ class MediaEntry(Document):
pass
def generate_slug(self):
- self['slug'] = url.slugify(self['title'])
+ self.slug = url.slugify(self.title)
duplicate = mg_globals.database.media_entries.find_one(
- {'slug': self['slug']})
+ {'slug': self.slug})
if duplicate:
- self['slug'] = "%s-%s" % (self._id, self['slug'])
+ self.slug = "%s-%s" % (self._id, self.slug)
def url_for_self(self, urlgen):
"""
@@ -268,12 +268,12 @@ class MediaEntry(Document):
if self.get('slug'):
return urlgen(
'mediagoblin.user_pages.media_home',
- user=uploader['username'],
- media=self['slug'])
+ user=uploader.username,
+ media=self.slug)
else:
return urlgen(
'mediagoblin.user_pages.media_home',
- user=uploader['username'],
+ user=uploader.username,
media=unicode(self._id))
def url_to_prev(self, urlgen):
@@ -281,30 +281,30 @@ class MediaEntry(Document):
Provide a url to the previous entry from this user, if there is one
"""
cursor = self.db.MediaEntry.find({'_id': {"$gt": self._id},
- 'uploader': self['uploader'],
+ 'uploader': self.uploader,
'state': 'processed'}).sort(
'_id', ASCENDING).limit(1)
if cursor.count():
return urlgen('mediagoblin.user_pages.media_home',
- user=self.get_uploader()['username'],
- media=unicode(cursor[0]['slug']))
+ user=self.get_uploader().username,
+ media=unicode(cursor[0].slug))
def url_to_next(self, urlgen):
"""
Provide a url to the next entry from this user, if there is one
"""
cursor = self.db.MediaEntry.find({'_id': {"$lt": self._id},
- 'uploader': self['uploader'],
+ 'uploader': self.uploader,
'state': 'processed'}).sort(
'_id', DESCENDING).limit(1)
if cursor.count():
return urlgen('mediagoblin.user_pages.media_home',
- user=self.get_uploader()['username'],
- media=unicode(cursor[0]['slug']))
+ user=self.get_uploader().username,
+ media=unicode(cursor[0].slug))
def get_uploader(self):
- return self.db.User.find_one({'_id': self['uploader']})
+ return self.db.User.find_one({'_id': self.uploader})
def get_fail_exception(self):
"""
diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py
index 1cdce23a..229664d7 100644
--- a/mediagoblin/decorators.py
+++ b/mediagoblin/decorators.py
@@ -40,7 +40,7 @@ def require_active_login(controller):
request.user.get('status') == u'needs_email_verification':
return redirect(
request, 'mediagoblin.user_pages.user_home',
- user=request.user['username'])
+ user=request.user.username)
elif not request.user or request.user.get('status') != u'active':
return exc.HTTPFound(
location="%s?next=%s" % (
@@ -59,7 +59,7 @@ def user_may_delete_media(controller):
def wrapper(request, *args, **kwargs):
uploader = request.db.MediaEntry.find_one(
{'_id': ObjectId(request.matchdict['media'])}).get_uploader()
- if not (request.user['is_admin'] or
+ if not (request.user.is_admin or
request.user._id == uploader._id):
return exc.HTTPForbidden()
@@ -95,7 +95,6 @@ def get_user_media_entry(controller):
if not user:
return render_404(request)
-
media = request.db.MediaEntry.find_one(
{'slug': request.matchdict['media'],
'state': 'processed',
diff --git a/mediagoblin/edit/lib.py b/mediagoblin/edit/lib.py
index 458b704e..a199cbf7 100644
--- a/mediagoblin/edit/lib.py
+++ b/mediagoblin/edit/lib.py
@@ -17,8 +17,8 @@
def may_edit_media(request, media):
"""Check, if the request's user may edit the media details"""
- if media['uploader'] == request.user._id:
+ if media.uploader == request.user._id:
return True
- if request.user['is_admin']:
+ if request.user.is_admin:
return True
return False
diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py
index 673409bd..4cb98c15 100644
--- a/mediagoblin/edit/views.py
+++ b/mediagoblin/edit/views.py
@@ -43,9 +43,9 @@ def edit_media(request, media):
return exc.HTTPForbidden()
defaults = dict(
- title=media['title'],
- slug=media['slug'],
- description=media['description'],
+ title=media.title,
+ slug=media.slug,
+ description=media.description,
tags=media_tags_as_string(media['tags']))
form = forms.EditForm(
@@ -57,29 +57,29 @@ def edit_media(request, media):
# and userid.
existing_user_slug_entries = request.db.MediaEntry.find(
{'slug': request.POST['slug'],
- 'uploader': media['uploader'],
+ 'uploader': media.uploader,
'_id': {'$ne': media._id}}).count()
if existing_user_slug_entries:
form.slug.errors.append(
_(u'An entry with that slug already exists for this user.'))
else:
- media['title'] = unicode(request.POST['title'])
- media['description'] = unicode(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'])
+ media.description_html = cleaned_markdown_conversion(
+ media.description)
- media['slug'] = unicode(request.POST['slug'])
+ media.slug = unicode(request.POST['slug'])
media.save()
return exc.HTTPFound(
location=media.url_for_self(request.urlgen))
- if request.user['is_admin'] \
- and media['uploader'] != request.user._id \
+ if request.user.is_admin \
+ and media.uploader != request.user._id \
and request.method != 'POST':
messages.add_message(
request, messages.WARNING,
@@ -147,7 +147,7 @@ def edit_attachments(request, media):
def edit_profile(request):
# admins may edit any user profile given a username in the querystring
edit_username = request.GET.get('username')
- if request.user['is_admin'] and request.user['username'] != edit_username:
+ if request.user.is_admin and request.user.username != edit_username:
user = request.db.User.find_one({'username': edit_username})
# No need to warn again if admin just submitted an edited profile
if request.method != 'POST':
@@ -176,14 +176,14 @@ def edit_profile(request):
{'user': user,
'form': form})
- user['url'] = unicode(request.POST['url'])
- user['bio'] = unicode(request.POST['bio'])
+ user.url = unicode(request.POST['url'])
+ user.bio = unicode(request.POST['bio'])
if password_matches:
user['pw_hash'] = auth_lib.bcrypt_gen_password_hash(
request.POST['new_password'])
- user['bio_html'] = cleaned_markdown_conversion(user['bio'])
+ user.bio_html = cleaned_markdown_conversion(user['bio'])
user.save()
diff --git a/mediagoblin/gmg_commands/import_export.py b/mediagoblin/gmg_commands/import_export.py
index 4ec17d47..1308f09e 100644
--- a/mediagoblin/gmg_commands/import_export.py
+++ b/mediagoblin/gmg_commands/import_export.py
@@ -67,7 +67,7 @@ def _import_media(db, args):
for entry in db.media_entries.find():
for name, path in entry['media_files'].items():
_log.info('Importing: {0} - {1}'.format(
- entry['title'],
+ entry.title,
name))
media_file = mg_globals.public_store.get_file(path, mode='wb')
@@ -209,7 +209,7 @@ def _export_media(db, args):
for entry in db.media_entries.find():
for name, path in entry['media_files'].items():
_log.info(u'Exporting {0} - {1}'.format(
- entry['title'],
+ entry.title,
name))
try:
mc_file = media_cache.get_file(path, mode='wb')
diff --git a/mediagoblin/gmg_commands/users.py b/mediagoblin/gmg_commands/users.py
index 4c4b0c1b..4bfe30a5 100644
--- a/mediagoblin/gmg_commands/users.py
+++ b/mediagoblin/gmg_commands/users.py
@@ -18,23 +18,26 @@ from mediagoblin.gmg_commands import util as commands_util
from mediagoblin.auth import lib as auth_lib
from mediagoblin import mg_globals
-
def adduser_parser_setup(subparser):
subparser.add_argument(
- 'username',
+ '--username','-u',
help="Username used to login")
subparser.add_argument(
- 'password',
- help="Your supersecret word to login")
+ '--password','-p',
+ help="Your supersecret word to login, beware of storing it in bash history")
subparser.add_argument(
- 'email',
- help="Email to recieve notifications")
+ '--email','-e',
+ help="Email to receive notifications")
def adduser(args):
#TODO: Lets trust admins this do not validate Emails :)
commands_util.setup_app(args)
+ args.username = commands_util.prompt_if_not_set(args.username, "Username:")
+ args.password = commands_util.prompt_if_not_set(args.password, "Password:",True)
+ args.email = commands_util.prompt_if_not_set(args.email, "Email:")
+
db = mg_globals.database
users_with_username = \
db.User.find({
@@ -47,11 +50,11 @@ def adduser(args):
else:
# Create the user
entry = db.User()
- entry['username'] = unicode(args.username.lower())
- entry['email'] = unicode(args.email)
- entry['pw_hash'] = auth_lib.bcrypt_gen_password_hash(args.password)
- entry['status'] = u'active'
- entry['email_verified'] = True
+ entry.username = unicode(args.username.lower())
+ entry.email = unicode(args.email)
+ entry.pw_hash = auth_lib.bcrypt_gen_password_hash(args.password)
+ entry.status = u'active'
+ entry.email_verified = True
entry.save(validate=True)
print "User created (and email marked as verified)"
@@ -70,7 +73,7 @@ def makeadmin(args):
user = db.User.one({'username': unicode(args.username.lower())})
if user:
- user['is_admin'] = True
+ user.is_admin = True
user.save()
print 'The user is now Admin'
else:
@@ -93,7 +96,7 @@ def changepw(args):
user = db.User.one({'username': unicode(args.username.lower())})
if user:
- user['pw_hash'] = auth_lib.bcrypt_gen_password_hash(args.password)
+ user.pw_hash = auth_lib.bcrypt_gen_password_hash(args.password)
user.save()
print 'Password successfully changed'
else:
diff --git a/mediagoblin/gmg_commands/util.py b/mediagoblin/gmg_commands/util.py
index 168a0760..3e26c53f 100644
--- a/mediagoblin/gmg_commands/util.py
+++ b/mediagoblin/gmg_commands/util.py
@@ -16,6 +16,7 @@
from mediagoblin import app
+import getpass
def setup_app(args):
@@ -25,3 +26,15 @@ def setup_app(args):
mgoblin_app = app.MediaGoblinApp(args.conf_file)
return mgoblin_app
+
+def prompt_if_not_set(variable, text, password=False):
+ """
+ Checks if the variable is None and prompt for a value if it is
+ """
+ if variable is None:
+ if not password:
+ variable=raw_input(text + u' ')
+ else:
+ variable=getpass.getpass(text + u' ')
+
+ return variable
diff --git a/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.mo
index 4e4e8863..02dfa29a 100644
--- a/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.mo
+++ 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
index 40e8b1cd..61abc63f 100644
--- a/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po
@@ -10,8 +10,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-11-27 15:25-0600\n"
-"PO-Revision-Date: 2011-11-27 21:28+0000\n"
+"POT-Creation-Date: 2011-12-04 10:24-0600\n"
+"PO-Revision-Date: 2011-12-04 16:23+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
@@ -102,7 +102,7 @@ msgid "Tags"
msgstr "الوسوم"
#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34
-msgid "Seperate tags by commas or spaces."
+msgid "Seperate tags by commas."
msgstr ""
#: mediagoblin/edit/forms.py:33
@@ -156,7 +156,7 @@ msgstr ""
msgid "Profile edited!"
msgstr ""
-#: mediagoblin/media_types/__init__.py:61
+#: mediagoblin/media_types/__init__.py:65
msgid "Could not find any file extension in \"{filename}\""
msgstr ""
@@ -236,7 +236,9 @@ msgid "Hi there, welcome to this MediaGoblin site!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:28
-msgid "Your finest source for all goblin-related media."
+msgid ""
+"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
+"extraordinarily great piece of media hosting software."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:29
@@ -265,6 +267,11 @@ msgstr "أحدث الوسائط"
msgid "Enter your new password"
msgstr "أدخل كلمة سرك الجديدة"
+#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33
+#: mediagoblin/templates/mediagoblin/submit/start.html:30
+msgid "Submit"
+msgstr "أرسل"
+
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
msgid "Recover password"
msgstr ""
@@ -378,10 +385,6 @@ msgstr ""
msgid "Submit yer media"
msgstr "انشر وسائطك"
-#: mediagoblin/templates/mediagoblin/submit/start.html:30
-msgid "Submit"
-msgstr "أرسل"
-
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
#, python-format
msgid "%(username)s's media"
@@ -392,6 +395,31 @@ msgstr ""
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/media.html:57
+#, python-format
+msgid "By <a href=\"%(user_url)s\">%(username)s</a> on %(date)s"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
+msgid "Post a comment"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:85
+msgid "at"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
+msgid "Post comment!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:124
+msgid "Edit"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:130
+msgid "Delete"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
msgid "Really delete %(title)s?"
@@ -517,6 +545,10 @@ msgstr "الأحدث"
msgid "Older"
msgstr "الأقدم"
+#: mediagoblin/templates/mediagoblin/utils/pagination.html:50
+msgid "Go to page:"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
msgid "Tagged with"
msgstr ""
@@ -534,11 +566,11 @@ msgid "I am sure I want to delete this"
msgstr "أنا متأكد من رغبتي بحذف هذا العمل"
#: mediagoblin/user_pages/views.py:155
-msgid "Empty comments are not allowed."
+msgid "Oops, your comment was empty."
msgstr ""
#: mediagoblin/user_pages/views.py:161
-msgid "Comment posted!"
+msgid "Your comment has been posted!"
msgstr ""
#: mediagoblin/user_pages/views.py:183
diff --git a/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.mo
index 9b9e7e3b..34179a53 100644
--- a/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.mo
+++ b/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.mo
Binary files differ
diff --git a/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.po
index f07ab2d6..9609cb34 100644
--- a/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.po
@@ -9,8 +9,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-11-27 15:25-0600\n"
-"PO-Revision-Date: 2011-11-27 21:28+0000\n"
+"POT-Creation-Date: 2011-12-04 10:24-0600\n"
+"PO-Revision-Date: 2011-12-04 16:23+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
@@ -100,7 +100,7 @@ msgid "Tags"
msgstr "Etiquetes"
#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34
-msgid "Seperate tags by commas or spaces."
+msgid "Seperate tags by commas."
msgstr ""
#: mediagoblin/edit/forms.py:33
@@ -152,7 +152,7 @@ msgstr ""
msgid "Profile edited!"
msgstr ""
-#: mediagoblin/media_types/__init__.py:61
+#: mediagoblin/media_types/__init__.py:65
msgid "Could not find any file extension in \"{filename}\""
msgstr ""
@@ -233,7 +233,9 @@ msgid "Hi there, welcome to this MediaGoblin site!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:28
-msgid "Your finest source for all goblin-related media."
+msgid ""
+"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
+"extraordinarily great piece of media hosting software."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:29
@@ -262,6 +264,11 @@ msgstr ""
msgid "Enter your new password"
msgstr ""
+#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33
+#: mediagoblin/templates/mediagoblin/submit/start.html:30
+msgid "Submit"
+msgstr "Envia"
+
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
msgid "Recover password"
msgstr ""
@@ -368,10 +375,6 @@ msgstr ""
msgid "Submit yer media"
msgstr "Envieu els vostres fitxers"
-#: mediagoblin/templates/mediagoblin/submit/start.html:30
-msgid "Submit"
-msgstr "Envia"
-
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
#, python-format
msgid "%(username)s's media"
@@ -382,6 +385,31 @@ msgstr ""
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/media.html:57
+#, python-format
+msgid "By <a href=\"%(user_url)s\">%(username)s</a> on %(date)s"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
+msgid "Post a comment"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:85
+msgid "at"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
+msgid "Post comment!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:124
+msgid "Edit"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:130
+msgid "Delete"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
msgid "Really delete %(title)s?"
@@ -509,6 +537,10 @@ msgstr ""
msgid "Older"
msgstr ""
+#: mediagoblin/templates/mediagoblin/utils/pagination.html:50
+msgid "Go to page:"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
msgid "Tagged with"
msgstr ""
@@ -526,11 +558,11 @@ msgid "I am sure I want to delete this"
msgstr ""
#: mediagoblin/user_pages/views.py:155
-msgid "Empty comments are not allowed."
+msgid "Oops, your comment was empty."
msgstr ""
#: mediagoblin/user_pages/views.py:161
-msgid "Comment posted!"
+msgid "Your comment has been posted!"
msgstr ""
#: mediagoblin/user_pages/views.py:183
diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo
index 056e3eca..a01abf9c 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 f5907eda..e2765357 100644
--- a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po
@@ -16,9 +16,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-11-27 15:25-0600\n"
-"PO-Revision-Date: 2011-11-27 21:28+0000\n"
-"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
+"POT-Creation-Date: 2011-12-04 10:24-0600\n"
+"PO-Revision-Date: 2011-12-06 21:16+0000\n"
+"Last-Translator: gandaro <jakob.kramer@gmx.de>\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"
@@ -65,7 +65,7 @@ msgstr "Leider gibt es bereits einen Benutzer mit diesem Namen."
#: mediagoblin/auth/views.py:77
msgid "Sorry, a user with that email address already exists."
-msgstr ""
+msgstr "Leider gibt es bereits einen Benutzer mit dieser E-Mail-Adresse."
#: mediagoblin/auth/views.py:179
msgid ""
@@ -85,7 +85,7 @@ msgstr ""
#: mediagoblin/auth/views.py:211
msgid "You've already verified your email address!"
-msgstr ""
+msgstr "Deine E-Mail-Adresse wurde bereits bestätigt."
#: mediagoblin/auth/views.py:224
msgid "Resent your verification email."
@@ -109,7 +109,7 @@ msgid "Tags"
msgstr "Markierungen"
#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34
-msgid "Seperate tags by commas or spaces."
+msgid "Seperate tags by commas."
msgstr ""
#: mediagoblin/edit/forms.py:33
@@ -137,11 +137,11 @@ msgstr "Webseite"
#: mediagoblin/edit/forms.py:49
msgid "Old password"
-msgstr ""
+msgstr "Altes Passwort"
#: mediagoblin/edit/forms.py:52
msgid "New Password"
-msgstr ""
+msgstr "Neues Passwort"
#: mediagoblin/edit/views.py:65
msgid "An entry with that slug already exists for this user."
@@ -157,13 +157,13 @@ msgstr "Du bearbeitest das Profil eines Anderen. Bitte sei vorsichtig."
#: mediagoblin/edit/views.py:171
msgid "Wrong password"
-msgstr ""
+msgstr "Falsches Passwort"
#: mediagoblin/edit/views.py:192
msgid "Profile edited!"
-msgstr ""
+msgstr "Das Profil wurde aktualisiert"
-#: mediagoblin/media_types/__init__.py:61
+#: mediagoblin/media_types/__init__.py:65
msgid "Could not find any file extension in \"{filename}\""
msgstr ""
@@ -185,7 +185,7 @@ msgstr "Yeeeaaah! Geschafft!"
#: mediagoblin/submit/views.py:133
msgid "Invalid file type."
-msgstr ""
+msgstr "Ungültiger Dateityp."
#: mediagoblin/templates/mediagoblin/404.html:21
msgid "Oops!"
@@ -217,11 +217,11 @@ msgstr "Medien hochladen"
#: mediagoblin/templates/mediagoblin/base.html:65
msgid "Verify your email!"
-msgstr ""
+msgstr "Bitte bestätige deine E-Mail-Adresse!"
#: mediagoblin/templates/mediagoblin/base.html:72
msgid "log out"
-msgstr ""
+msgstr "Abmelden"
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/auth/login.html:27
@@ -246,7 +246,9 @@ msgid "Hi there, welcome to this MediaGoblin site!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:28
-msgid "Your finest source for all goblin-related media."
+msgid ""
+"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
+"extraordinarily great piece of media hosting software."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:29
@@ -275,9 +277,14 @@ msgstr "Neuste Medien"
msgid "Enter your new password"
msgstr "Neues Passwort eingeben"
+#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33
+#: mediagoblin/templates/mediagoblin/submit/start.html:30
+msgid "Submit"
+msgstr "Bestätigen"
+
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
msgid "Recover password"
-msgstr ""
+msgstr "Passwort wiederherstellen"
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30
msgid "Send instructions"
@@ -379,7 +386,7 @@ msgstr "%(username)ss Profil bearbeiten"
#: mediagoblin/templates/mediagoblin/listings/tag.html:35
#, python-format
msgid "Media tagged with: %(tag_name)s"
-msgstr ""
+msgstr ": %(tag_name)s"
#: mediagoblin/templates/mediagoblin/media_displays/video.html:19
msgid "Original"
@@ -389,20 +396,41 @@ msgstr ""
msgid "Submit yer media"
msgstr "Medien hochladen"
-#: mediagoblin/templates/mediagoblin/submit/start.html:30
-msgid "Submit"
-msgstr "Bestätigen"
-
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
#, python-format
msgid "%(username)s's media"
-msgstr ""
+msgstr "%(username)ss Medien"
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37
#, python-format
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
msgstr "<a href=\"%(user_url)s\">%(username)s</a>s Medien"
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:57
+#, python-format
+msgid "By <a href=\"%(user_url)s\">%(username)s</a> on %(date)s"
+msgstr "Von <a href=\"%(user_url)s\">%(username)s</a> am %(date)s"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
+msgid "Post a comment"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:85
+msgid "at"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
+msgid "Post comment!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:124
+msgid "Edit"
+msgstr "Bearbeiten"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:130
+msgid "Delete"
+msgstr "Löschen"
+
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
msgid "Really delete %(title)s?"
@@ -535,13 +563,17 @@ msgstr "Neuere"
msgid "Older"
msgstr "Ältere"
+#: mediagoblin/templates/mediagoblin/utils/pagination.html:50
+msgid "Go to page:"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
msgid "Tagged with"
-msgstr ""
+msgstr "Markiert mit"
#: mediagoblin/templates/mediagoblin/utils/tags.html:25
msgid "and"
-msgstr ""
+msgstr "und"
#: mediagoblin/user_pages/forms.py:24
msgid "Comment"
@@ -552,12 +584,12 @@ msgid "I am sure I want to delete this"
msgstr "Ja, wirklich löschen"
#: mediagoblin/user_pages/views.py:155
-msgid "Empty comments are not allowed."
-msgstr "Leere Kommentare sind nicht erlaubt."
+msgid "Oops, your comment was empty."
+msgstr ""
#: mediagoblin/user_pages/views.py:161
-msgid "Comment posted!"
-msgstr "Kommentar hinzugefügt!"
+msgid "Your comment has been posted!"
+msgstr ""
#: mediagoblin/user_pages/views.py:183
msgid "You deleted the media."
diff --git a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po
index c1f3fd7f..17e6873c 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-11-27 15:25-0600\n"
+"POT-Creation-Date: 2011-12-04 10:24-0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -94,7 +94,7 @@ msgid "Tags"
msgstr ""
#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34
-msgid "Seperate tags by commas or spaces."
+msgid "Seperate tags by commas."
msgstr ""
#: mediagoblin/edit/forms.py:33
@@ -145,7 +145,7 @@ msgstr ""
msgid "Profile edited!"
msgstr ""
-#: mediagoblin/media_types/__init__.py:61
+#: mediagoblin/media_types/__init__.py:65
msgid "Could not find any file extension in \"{filename}\""
msgstr ""
@@ -224,7 +224,9 @@ msgid "Hi there, welcome to this MediaGoblin site!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:28
-msgid "Your finest source for all goblin-related media."
+msgid ""
+"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, "
+"an extraordinarily great piece of media hosting software."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:29
@@ -256,6 +258,11 @@ msgstr ""
msgid "Enter your new password"
msgstr ""
+#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33
+#: mediagoblin/templates/mediagoblin/submit/start.html:30
+msgid "Submit"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
msgid "Recover password"
msgstr ""
@@ -355,10 +362,6 @@ msgstr ""
msgid "Submit yer media"
msgstr ""
-#: mediagoblin/templates/mediagoblin/submit/start.html:30
-msgid "Submit"
-msgstr ""
-
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
#, python-format
msgid "%(username)s's media"
@@ -369,6 +372,31 @@ msgstr ""
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
msgstr ""
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:57
+#, python-format
+msgid "By <a href=\"%(user_url)s\">%(username)s</a> on %(date)s"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
+msgid "Post a comment"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:85
+msgid "at"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
+msgid "Post comment!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:124
+msgid "Edit"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:130
+msgid "Delete"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
msgid "Really delete %(title)s?"
@@ -490,6 +518,10 @@ msgstr ""
msgid "Older"
msgstr ""
+#: mediagoblin/templates/mediagoblin/utils/pagination.html:50
+msgid "Go to page:"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
msgid "Tagged with"
msgstr ""
@@ -507,11 +539,11 @@ msgid "I am sure I want to delete this"
msgstr ""
#: mediagoblin/user_pages/views.py:155
-msgid "Empty comments are not allowed."
+msgid "Oops, your comment was empty."
msgstr ""
#: mediagoblin/user_pages/views.py:161
-msgid "Comment posted!"
+msgid "Your comment has been posted!"
msgstr ""
#: mediagoblin/user_pages/views.py:183
diff --git a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo
index c537c65e..3e0a84bf 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 2cffe874..c3c29b89 100644
--- a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po
@@ -10,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-11-27 15:25-0600\n"
-"PO-Revision-Date: 2011-11-27 21:28+0000\n"
-"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
+"POT-Creation-Date: 2011-12-04 10:24-0600\n"
+"PO-Revision-Date: 2011-12-06 20:04+0000\n"
+"Last-Translator: aleksejrs <deletesoftware@yandex.ru>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -59,7 +59,7 @@ msgstr "Bedaŭrinde, uzanto kun tiu nomo jam ekzistas."
#: mediagoblin/auth/views.py:77
msgid "Sorry, a user with that email address already exists."
-msgstr ""
+msgstr "Ni bedaŭras, sed konto kun tiu retpoŝtadreso jam ekzistas."
#: mediagoblin/auth/views.py:179
msgid ""
@@ -75,11 +75,11 @@ msgstr "La kontrol-kodo aŭ la uzantonomo ne estas korekta"
#: mediagoblin/auth/views.py:203
msgid "You must be logged in so we know who to send the email to!"
-msgstr ""
+msgstr "Vi devas esti ensalutita, por ke ni sciu, al kiu sendi la retleteron!"
#: mediagoblin/auth/views.py:211
msgid "You've already verified your email address!"
-msgstr ""
+msgstr "Vi jam konfirmis vian retpoŝtadreson!"
#: mediagoblin/auth/views.py:224
msgid "Resent your verification email."
@@ -102,8 +102,8 @@ msgid "Tags"
msgstr "Etikedoj"
#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34
-msgid "Seperate tags by commas or spaces."
-msgstr ""
+msgid "Seperate tags by commas."
+msgstr "Dividu la etikedojn per komoj."
#: mediagoblin/edit/forms.py:33
msgid "Slug"
@@ -130,11 +130,11 @@ msgstr "Retejo"
#: mediagoblin/edit/forms.py:49
msgid "Old password"
-msgstr ""
+msgstr "La malnova pasvorto"
#: mediagoblin/edit/forms.py:52
msgid "New Password"
-msgstr ""
+msgstr "La nova pasvorto"
#: mediagoblin/edit/views.py:65
msgid "An entry with that slug already exists for this user."
@@ -150,15 +150,15 @@ msgstr "Vi redaktas profilon de alia uzanto. Agu singardeme."
#: mediagoblin/edit/views.py:171
msgid "Wrong password"
-msgstr ""
+msgstr "Malĝusta pasvorto"
#: mediagoblin/edit/views.py:192
msgid "Profile edited!"
-msgstr ""
+msgstr "La profilŝanĝo faritas!"
-#: mediagoblin/media_types/__init__.py:61
+#: mediagoblin/media_types/__init__.py:65
msgid "Could not find any file extension in \"{filename}\""
-msgstr ""
+msgstr "Ŝajnas, ke en «{filename}» mankas dosiernoma finaĵo"
#: mediagoblin/submit/forms.py:25
msgid "File"
@@ -178,7 +178,7 @@ msgstr "Hura! Alŝutitas!"
#: mediagoblin/submit/views.py:133
msgid "Invalid file type."
-msgstr ""
+msgstr "Netaŭga dosiertipo."
#: mediagoblin/templates/mediagoblin/404.html:21
msgid "Oops!"
@@ -210,11 +210,11 @@ msgstr "Alŝuti aŭd-vid-dosieron"
#: mediagoblin/templates/mediagoblin/base.html:65
msgid "Verify your email!"
-msgstr ""
+msgstr "Konfirmu viecon de la retpoŝtadreso!"
#: mediagoblin/templates/mediagoblin/base.html:72
msgid "log out"
-msgstr ""
+msgstr "elsaluti"
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/auth/login.html:27
@@ -232,25 +232,32 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:24
msgid "Explore"
-msgstr ""
+msgstr "Ĉirkaŭrigardi"
#: mediagoblin/templates/mediagoblin/root.html:27
msgid "Hi there, welcome to this MediaGoblin site!"
-msgstr ""
+msgstr "Saluton, kaj bonvenon al ĉi tiu MediaGoblina retpaĝaro!"
#: mediagoblin/templates/mediagoblin/root.html:28
-msgid "Your finest source for all goblin-related media."
+msgid ""
+"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
+"extraordinarily great piece of media hosting software."
msgstr ""
+"Ĉi tiu retpaĝaro funkcias per <a "
+"href=\"http://mediagoblin.org\">MediaGoblin</a>, eksterordinare bonega "
+"programaro por gastigado de aŭd‐vid‐dosieroj."
#: mediagoblin/templates/mediagoblin/root.html:29
msgid ""
"To add your own media, place comments, save your favourites and more, you "
"can log in with your MediaGoblin account."
msgstr ""
+"Por aldoni viajn proprajn dosierojn, fari al vi liston de la plej plaĉaj, "
+"ks, vi povas ensaluti je via MediaGoblina konto."
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Don't have one yet? It's easy!"
-msgstr ""
+msgstr "Ĉu vi ankoraŭ ne havas tian? Ne malĝoju!"
#: mediagoblin/templates/mediagoblin/root.html:32
#, python-format
@@ -259,22 +266,30 @@ msgid ""
" or\n"
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
msgstr ""
+"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Kreu konton en ĉi tiu retejo</a>\n"
+" aŭ\n"
+" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Ekfunkciigu MediaGoblin’on en via propra servilo</a>"
#: mediagoblin/templates/mediagoblin/root.html:44
msgid "Most recent media"
-msgstr "Plej nove aldonitaj dosieroj"
+msgstr "Laste aldonitaj dosieroj"
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29
msgid "Enter your new password"
msgstr "Enigu vian novan pasvorton"
+#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33
+#: mediagoblin/templates/mediagoblin/submit/start.html:30
+msgid "Submit"
+msgstr "Alŝuti"
+
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
msgid "Recover password"
-msgstr ""
+msgstr "Ekhavo de nova pasvorto"
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30
msgid "Send instructions"
-msgstr ""
+msgstr "Sendi instrukcion"
#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22
msgid "Your password has been changed. Try to log in now."
@@ -372,30 +387,51 @@ msgstr "Redaktado de l’profilo de %(username)s'"
#: mediagoblin/templates/mediagoblin/listings/tag.html:35
#, python-format
msgid "Media tagged with: %(tag_name)s"
-msgstr ""
+msgstr "Dosieroj kun etikedo: %(tag_name)s"
#: mediagoblin/templates/mediagoblin/media_displays/video.html:19
msgid "Original"
-msgstr ""
+msgstr "Originalo"
#: 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:30
-msgid "Submit"
-msgstr "Alŝuti"
-
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
#, python-format
msgid "%(username)s's media"
-msgstr ""
+msgstr "Dosieroj de %(username)s"
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37
#, python-format
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
msgstr "Dosieroj de <a href=\"%(user_url)s\">%(username)s</a>"
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:57
+#, python-format
+msgid "By <a href=\"%(user_url)s\">%(username)s</a> on %(date)s"
+msgstr "Afiŝita de <a href=\"%(user_url)s\">%(username)s</a> je %(date)s"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
+msgid "Post a comment"
+msgstr "Afiŝi komenton"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:85
+msgid "at"
+msgstr "je"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
+msgid "Post comment!"
+msgstr "Afiŝi la komenton!"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:124
+msgid "Edit"
+msgstr "Ŝanĝi"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:130
+msgid "Delete"
+msgstr "Forigi"
+
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
msgid "Really delete %(title)s?"
@@ -527,13 +563,17 @@ msgstr "Plinovaj"
msgid "Older"
msgstr "Malplinovaj"
+#: mediagoblin/templates/mediagoblin/utils/pagination.html:50
+msgid "Go to page:"
+msgstr "Iri al paĝo:"
+
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
msgid "Tagged with"
-msgstr ""
+msgstr "Markita per: "
#: mediagoblin/templates/mediagoblin/utils/tags.html:25
msgid "and"
-msgstr ""
+msgstr "kaj"
#: mediagoblin/user_pages/forms.py:24
msgid "Comment"
@@ -544,20 +584,22 @@ msgid "I am sure I want to delete this"
msgstr "Mi estas certa, ke mi volas forigi ĉi tion"
#: mediagoblin/user_pages/views.py:155
-msgid "Empty comments are not allowed."
-msgstr "Malplenaj komentoj ne estas afiŝeblaj."
+msgid "Oops, your comment was empty."
+msgstr "Oj, via komento estis malplena."
#: mediagoblin/user_pages/views.py:161
-msgid "Comment posted!"
-msgstr "La komento estas afiŝita!"
+msgid "Your comment has been posted!"
+msgstr "Via komento estis afiŝita!"
#: mediagoblin/user_pages/views.py:183
msgid "You deleted the media."
-msgstr ""
+msgstr "Vi forigis la dosieron."
#: mediagoblin/user_pages/views.py:190
msgid "The media was not deleted because you didn't check that you were sure."
msgstr ""
+"La dosiero ne estis forigita, ĉar vi ne konfirmis vian certecon per la "
+"markilo."
#: mediagoblin/user_pages/views.py:198
msgid "You are about to delete another user's media. Proceed with caution."
diff --git a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo
index 2d2b9243..0f7f4026 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 6ab070af..406e1923 100644
--- a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po
@@ -10,13 +10,14 @@
# <juangsub@gmail.com>, 2011.
# <juanma@kde.org.ar>, 2011.
# Mario Rodriguez <msrodriguez00@gmail.com>, 2011.
+# <mu@member.fsf.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-11-27 15:25-0600\n"
-"PO-Revision-Date: 2011-11-27 21:28+0000\n"
-"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
+"POT-Creation-Date: 2011-12-04 10:24-0600\n"
+"PO-Revision-Date: 2011-12-05 23:20+0000\n"
+"Last-Translator: manolinux <mu@member.fsf.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"
@@ -64,7 +65,7 @@ msgstr "Lo sentimos, ya existe un usuario con ese nombre."
#: mediagoblin/auth/views.py:77
msgid "Sorry, a user with that email address already exists."
-msgstr ""
+msgstr "Lo sentimos, ya existe un usuario con esa dirección de email."
#: mediagoblin/auth/views.py:179
msgid ""
@@ -82,10 +83,12 @@ msgstr ""
#: mediagoblin/auth/views.py:203
msgid "You must be logged in so we know who to send the email to!"
msgstr ""
+"¡Debes iniciar sesión para que podamos saber a quién le enviamos el correo "
+"electrónico!"
#: mediagoblin/auth/views.py:211
msgid "You've already verified your email address!"
-msgstr ""
+msgstr "¡Ya has verificado tu dirección de correo!"
#: mediagoblin/auth/views.py:224
msgid "Resent your verification email."
@@ -109,8 +112,8 @@ msgid "Tags"
msgstr "Etiquetas"
#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34
-msgid "Seperate tags by commas or spaces."
-msgstr ""
+msgid "Seperate tags by commas."
+msgstr "Separa las etiquetas con comas."
#: mediagoblin/edit/forms.py:33
msgid "Slug"
@@ -137,11 +140,11 @@ msgstr "Sitio web"
#: mediagoblin/edit/forms.py:49
msgid "Old password"
-msgstr ""
+msgstr "Vieja contraseña"
#: mediagoblin/edit/forms.py:52
msgid "New Password"
-msgstr ""
+msgstr "Nueva contraseña"
#: mediagoblin/edit/views.py:65
msgid "An entry with that slug already exists for this user."
@@ -157,15 +160,15 @@ msgstr "Estás editando un perfil de usuario. Proceder con precaución."
#: mediagoblin/edit/views.py:171
msgid "Wrong password"
-msgstr ""
+msgstr "Contraseña incorrecta"
#: mediagoblin/edit/views.py:192
msgid "Profile edited!"
-msgstr ""
+msgstr "¡Perfil editado!"
-#: mediagoblin/media_types/__init__.py:61
+#: mediagoblin/media_types/__init__.py:65
msgid "Could not find any file extension in \"{filename}\""
-msgstr ""
+msgstr "No se pudo encontrar la extensión del archivo en \"{filename}\""
#: mediagoblin/submit/forms.py:25
msgid "File"
@@ -181,15 +184,15 @@ msgstr "Debes proporcionar un archivo."
#: mediagoblin/submit/views.py:127
msgid "Woohoo! Submitted!"
-msgstr "¡Woohoo! ¡Enviado!"
+msgstr "¡Yujú! ¡Enviado!"
#: mediagoblin/submit/views.py:133
msgid "Invalid file type."
-msgstr ""
+msgstr "Tipo de archivo inválido."
#: mediagoblin/templates/mediagoblin/404.html:21
msgid "Oops!"
-msgstr "Ups!"
+msgstr "¡Ups!"
#: mediagoblin/templates/mediagoblin/404.html:24
msgid "There doesn't seem to be a page at this address. Sorry!"
@@ -217,11 +220,11 @@ msgstr "Enviar contenido"
#: mediagoblin/templates/mediagoblin/base.html:65
msgid "Verify your email!"
-msgstr ""
+msgstr "¡Verifica tu email!"
#: mediagoblin/templates/mediagoblin/base.html:72
msgid "log out"
-msgstr ""
+msgstr "Cerrar sesión"
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/auth/login.html:27
@@ -243,21 +246,28 @@ msgstr "Explorar"
#: mediagoblin/templates/mediagoblin/root.html:27
msgid "Hi there, welcome to this MediaGoblin site!"
-msgstr ""
+msgstr "Hola, ¡bienvenido a este sitio de MediaGoblin!"
#: mediagoblin/templates/mediagoblin/root.html:28
-msgid "Your finest source for all goblin-related media."
+msgid ""
+"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
+"extraordinarily great piece of media hosting software."
msgstr ""
+"Este sitio está montado con <a "
+"href=\"http://mediagoblin.org\">MediaGoblin</a>, un programa libre buenísimo"
+" para gestionar contenido multimedia."
#: mediagoblin/templates/mediagoblin/root.html:29
msgid ""
"To add your own media, place comments, save your favourites and more, you "
"can log in with your MediaGoblin account."
msgstr ""
+"Para añadir tus propios contenidos, dejar comentarios, guardar tus favoritos"
+" y más, puedes iniciar sesión con tu cuenta de MediaGoblin."
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Don't have one yet? It's easy!"
-msgstr ""
+msgstr "¿Aún no tienes una? ¡Es fácil!"
#: mediagoblin/templates/mediagoblin/root.html:32
#, python-format
@@ -266,6 +276,9 @@ msgid ""
" or\n"
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
msgstr ""
+"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Crea una cuenta en este sitio</a>\n"
+" o\n"
+" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Instala MediaGoblin en tu propio servidor</a>"
#: mediagoblin/templates/mediagoblin/root.html:44
msgid "Most recent media"
@@ -275,13 +288,18 @@ msgstr "El contenido más reciente"
msgid "Enter your new password"
msgstr "Ingrese su nueva contraseña"
+#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33
+#: mediagoblin/templates/mediagoblin/submit/start.html:30
+msgid "Submit"
+msgstr "Enviar"
+
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
msgid "Recover password"
-msgstr ""
+msgstr "Recuperar contraseña"
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30
msgid "Send instructions"
-msgstr ""
+msgstr "Enviar instrucciones"
#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22
msgid "Your password has been changed. Try to log in now."
@@ -307,10 +325,13 @@ msgid ""
"If you think this is an error, just ignore this email and continue being\n"
"a happy goblin!"
msgstr ""
-"Hola %(username)s , para cambiar su contraseña de GNU MediaGoblin, abra la "
-"siguiente URL en su navegador: %(verification_url)s Si usted piensa que "
-"esto es un error, simplemente ignore este mensaje y siga siendo un duende "
-"feliz!"
+"Hola %(username)s,\n"
+"\n"
+"Para cambiar tu contraseña de GNU MediaGoblin, abre la siguiente URL en un navegador:\n"
+"\n"
+"%(verification_url)s \n"
+"\n"
+"Si piensas que esto es un error, simplemente ignora este mensaje y sigue siendo un trasgo feliz."
#: mediagoblin/templates/mediagoblin/auth/login.html:30
msgid "Logging in failed!"
@@ -355,7 +376,7 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/edit/edit.html:29
#, python-format
msgid "Editing %(media_title)s"
-msgstr "Edición %(media_title)s "
+msgstr "Editando %(media_title)s "
#: mediagoblin/templates/mediagoblin/edit/edit.html:36
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
@@ -376,34 +397,55 @@ msgstr "Editando el perfil de %(username)s"
#: mediagoblin/templates/mediagoblin/listings/tag.html:35
#, python-format
msgid "Media tagged with: %(tag_name)s"
-msgstr ""
+msgstr "Contenido etiquetado con: %(tag_name)s"
#: mediagoblin/templates/mediagoblin/media_displays/video.html:19
msgid "Original"
-msgstr ""
+msgstr "Original"
#: mediagoblin/templates/mediagoblin/submit/start.html:26
msgid "Submit yer media"
msgstr "Envía tu contenido"
-#: mediagoblin/templates/mediagoblin/submit/start.html:30
-msgid "Submit"
-msgstr "Enviar"
-
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
#, python-format
msgid "%(username)s's media"
-msgstr ""
+msgstr "Contenidos de %(username)s"
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37
#, 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/media.html:57
+#, python-format
+msgid "By <a href=\"%(user_url)s\">%(username)s</a> on %(date)s"
+msgstr "Por <a href=\"%(user_url)s\">%(username)s</a> en %(date)s"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
+msgid "Post a comment"
+msgstr "Pon un comentario."
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:85
+msgid "at"
+msgstr "en"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
+msgid "Post comment!"
+msgstr "¡Pon un comentario!"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:124
+msgid "Edit"
+msgstr "Editar"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:130
+msgid "Delete"
+msgstr "Borrar"
+
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
msgid "Really delete %(title)s?"
-msgstr "Realmente deseas eliminar %(title)s ?"
+msgstr "¿Realmente deseas eliminar %(title)s?"
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50
msgid "Delete Permanently"
@@ -449,7 +491,7 @@ msgstr "Es necesario un correo electrónico de verificación"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:53
msgid "Almost done! Your account still needs to be activated."
-msgstr "Casi terminas! Solo falta activar la cuenta."
+msgstr "¡Casi hemos terminado! Solo falta activar la cuenta."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:58
msgid ""
@@ -532,13 +574,17 @@ msgstr "Recientes"
msgid "Older"
msgstr "Antiguas"
+#: mediagoblin/templates/mediagoblin/utils/pagination.html:50
+msgid "Go to page:"
+msgstr "Ir a la página:"
+
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
msgid "Tagged with"
-msgstr ""
+msgstr "Etiquetado con"
#: mediagoblin/templates/mediagoblin/utils/tags.html:25
msgid "and"
-msgstr ""
+msgstr "y"
#: mediagoblin/user_pages/forms.py:24
msgid "Comment"
@@ -549,20 +595,20 @@ msgid "I am sure I want to delete this"
msgstr "Estoy seguro de que quiero borrar esto"
#: mediagoblin/user_pages/views.py:155
-msgid "Empty comments are not allowed."
-msgstr ""
+msgid "Oops, your comment was empty."
+msgstr "Ups, tu comentario estaba vacío."
#: mediagoblin/user_pages/views.py:161
-msgid "Comment posted!"
-msgstr ""
+msgid "Your comment has been posted!"
+msgstr "¡Tu comentario ha sido publicado!"
#: mediagoblin/user_pages/views.py:183
msgid "You deleted the media."
-msgstr ""
+msgstr "Eliminaste el contenido"
#: mediagoblin/user_pages/views.py:190
msgid "The media was not deleted because you didn't check that you were sure."
-msgstr ""
+msgstr "El contenido no se eliminó porque no marcaste que estabas seguro."
#: mediagoblin/user_pages/views.py:198
msgid "You are about to delete another user's media. Proceed with caution."
diff --git a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo
index 90e83303..ed1ea35d 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 b37f5217..8d1e2711 100644
--- a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po
@@ -13,8 +13,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-11-27 15:25-0600\n"
-"PO-Revision-Date: 2011-11-27 21:28+0000\n"
+"POT-Creation-Date: 2011-12-04 10:24-0600\n"
+"PO-Revision-Date: 2011-12-04 16:23+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
@@ -64,7 +64,7 @@ msgstr "Un utilisateur existe déjà avec ce nom, désolé."
#: mediagoblin/auth/views.py:77
msgid "Sorry, a user with that email address already exists."
-msgstr ""
+msgstr "Désolé, il existe déjà un utilisateur ayant cette adresse e-mail."
#: mediagoblin/auth/views.py:179
msgid ""
@@ -81,10 +81,11 @@ msgstr "La clé de vérification ou le nom d'utilisateur est incorrect."
#: mediagoblin/auth/views.py:203
msgid "You must be logged in so we know who to send the email to!"
msgstr ""
+"Vous devez être authentifié afin que nous sachions à qui envoyer l'e-mail !"
#: mediagoblin/auth/views.py:211
msgid "You've already verified your email address!"
-msgstr ""
+msgstr "Votre adresse e-mail a déjà été vérifiée !"
#: mediagoblin/auth/views.py:224
msgid "Resent your verification email."
@@ -107,7 +108,7 @@ msgid "Tags"
msgstr "Tags"
#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34
-msgid "Seperate tags by commas or spaces."
+msgid "Seperate tags by commas."
msgstr ""
#: mediagoblin/edit/forms.py:33
@@ -135,11 +136,11 @@ msgstr "Site web"
#: mediagoblin/edit/forms.py:49
msgid "Old password"
-msgstr ""
+msgstr "Ancien mot de passe."
#: mediagoblin/edit/forms.py:52
msgid "New Password"
-msgstr ""
+msgstr "Nouveau mot de passe"
#: mediagoblin/edit/views.py:65
msgid "An entry with that slug already exists for this user."
@@ -159,15 +160,15 @@ msgstr ""
#: mediagoblin/edit/views.py:171
msgid "Wrong password"
-msgstr ""
+msgstr "Mauvais mot de passe"
#: mediagoblin/edit/views.py:192
msgid "Profile edited!"
-msgstr ""
+msgstr "Profile mis à jour !"
-#: mediagoblin/media_types/__init__.py:61
+#: mediagoblin/media_types/__init__.py:65
msgid "Could not find any file extension in \"{filename}\""
-msgstr ""
+msgstr "Impossible d'extraire une extension de fichier de \"{nomfichier}\""
#: mediagoblin/submit/forms.py:25
msgid "File"
@@ -187,11 +188,11 @@ msgstr "Youhou, c'est envoyé !"
#: mediagoblin/submit/views.py:133
msgid "Invalid file type."
-msgstr ""
+msgstr "Type de fichier invalide."
#: mediagoblin/templates/mediagoblin/404.html:21
msgid "Oops!"
-msgstr "Zut!"
+msgstr "Zut !"
#: mediagoblin/templates/mediagoblin/404.html:24
msgid "There doesn't seem to be a page at this address. Sorry!"
@@ -219,11 +220,11 @@ msgstr "Soumettre un média"
#: mediagoblin/templates/mediagoblin/base.html:65
msgid "Verify your email!"
-msgstr ""
+msgstr "Vérifiez votre adresse e-mail !"
#: mediagoblin/templates/mediagoblin/base.html:72
msgid "log out"
-msgstr ""
+msgstr "déconnexion"
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/auth/login.html:27
@@ -245,10 +246,12 @@ msgstr "Explorer"
#: mediagoblin/templates/mediagoblin/root.html:27
msgid "Hi there, welcome to this MediaGoblin site!"
-msgstr ""
+msgstr "Bonjour, et bienvenu sur ce site MediaGoblin !"
#: mediagoblin/templates/mediagoblin/root.html:28
-msgid "Your finest source for all goblin-related media."
+msgid ""
+"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
+"extraordinarily great piece of media hosting software."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:29
@@ -256,10 +259,12 @@ msgid ""
"To add your own media, place comments, save your favourites and more, you "
"can log in with your MediaGoblin account."
msgstr ""
+"Ajoutez vos propres medias, commentez ceux des autres, sauvegardez vos "
+"préférés et plus encore ! Faites tout cela depuis votre compte MediaGoblin."
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Don't have one yet? It's easy!"
-msgstr ""
+msgstr "Vous n'en avez pas ? C'est facile !"
#: mediagoblin/templates/mediagoblin/root.html:32
#, python-format
@@ -268,6 +273,9 @@ msgid ""
" or\n"
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
msgstr ""
+"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Créez un compte sur ce site</a>\n"
+" ou\n"
+" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Déployez MediaGoblin sur votre propre serveur</a>"
#: mediagoblin/templates/mediagoblin/root.html:44
msgid "Most recent media"
@@ -277,13 +285,18 @@ msgstr "Tout derniers media"
msgid "Enter your new password"
msgstr "Entrez un nouveau mot de passe"
+#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33
+#: mediagoblin/templates/mediagoblin/submit/start.html:30
+msgid "Submit"
+msgstr "Soumettre"
+
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
msgid "Recover password"
-msgstr ""
+msgstr "Récupérer le mot de passe"
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30
msgid "Send instructions"
-msgstr ""
+msgstr "Envoyer les instructions"
#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22
msgid "Your password has been changed. Try to log in now."
@@ -326,11 +339,11 @@ msgstr "La connexion a échoué!"
#: mediagoblin/templates/mediagoblin/auth/login.html:35
msgid "Don't have an account yet?"
-msgstr "Pas encore de compte?"
+msgstr "Pas encore de compte ?"
#: mediagoblin/templates/mediagoblin/auth/login.html:36
msgid "Create one here!"
-msgstr "Créez-en un ici!"
+msgstr "Créez-en un ici !"
#: mediagoblin/templates/mediagoblin/auth/login.html:42
msgid "Forgot your password?"
@@ -338,7 +351,7 @@ msgstr "Vous avez oublié votre mot de passe ?"
#: mediagoblin/templates/mediagoblin/auth/register.html:27
msgid "Create an account!"
-msgstr "Créer un compte!"
+msgstr "Créer un compte !"
#: mediagoblin/templates/mediagoblin/auth/register.html:31
msgid "Create"
@@ -384,30 +397,51 @@ msgstr "Modification du profil de %(username)s"
#: mediagoblin/templates/mediagoblin/listings/tag.html:35
#, python-format
msgid "Media tagged with: %(tag_name)s"
-msgstr ""
+msgstr "Médias taggés avec : %(tag_name)s "
#: mediagoblin/templates/mediagoblin/media_displays/video.html:19
msgid "Original"
-msgstr ""
+msgstr "Original"
#: mediagoblin/templates/mediagoblin/submit/start.html:26
msgid "Submit yer media"
msgstr "Soumettez ce média"
-#: mediagoblin/templates/mediagoblin/submit/start.html:30
-msgid "Submit"
-msgstr "Soumettre"
-
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
#, python-format
msgid "%(username)s's media"
-msgstr ""
+msgstr "Medias de %(username)s"
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37
#, 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/media.html:57
+#, python-format
+msgid "By <a href=\"%(user_url)s\">%(username)s</a> on %(date)s"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
+msgid "Post a comment"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:85
+msgid "at"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
+msgid "Post comment!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:124
+msgid "Edit"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:130
+msgid "Delete"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
msgid "Really delete %(title)s?"
@@ -542,13 +576,17 @@ msgstr "Nouveaux"
msgid "Older"
msgstr "Anciens"
+#: mediagoblin/templates/mediagoblin/utils/pagination.html:50
+msgid "Go to page:"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
msgid "Tagged with"
-msgstr ""
+msgstr "Taggé avec"
#: mediagoblin/templates/mediagoblin/utils/tags.html:25
msgid "and"
-msgstr ""
+msgstr "et"
#: mediagoblin/user_pages/forms.py:24
msgid "Comment"
@@ -559,20 +597,22 @@ msgid "I am sure I want to delete this"
msgstr "Je suis sûr de vouloir supprimer cela"
#: mediagoblin/user_pages/views.py:155
-msgid "Empty comments are not allowed."
-msgstr "Les commentaires vides ne sont pas autorisés."
+msgid "Oops, your comment was empty."
+msgstr ""
#: mediagoblin/user_pages/views.py:161
-msgid "Comment posted!"
-msgstr "Votre commentaire a été posté !"
+msgid "Your comment has been posted!"
+msgstr ""
#: mediagoblin/user_pages/views.py:183
msgid "You deleted the media."
-msgstr ""
+msgstr "Vous avez supprimé le media."
#: mediagoblin/user_pages/views.py:190
msgid "The media was not deleted because you didn't check that you were sure."
msgstr ""
+"Ce media n'a pas été supprimé car vous n'avez pas confirmer que vous étiez "
+"sur."
#: mediagoblin/user_pages/views.py:198
msgid "You are about to delete another user's media. Proceed with caution."
diff --git a/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.mo
index feb156ff..c0a1ecb6 100644
--- a/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.mo
+++ b/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.mo
Binary files differ
diff --git a/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.po
index a4f1f8d7..512635e3 100644
--- a/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.po
@@ -8,8 +8,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-11-27 15:25-0600\n"
-"PO-Revision-Date: 2011-11-27 21:28+0000\n"
+"POT-Creation-Date: 2011-12-04 10:24-0600\n"
+"PO-Revision-Date: 2011-12-04 16:23+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
@@ -96,7 +96,7 @@ msgid "Tags"
msgstr ""
#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34
-msgid "Seperate tags by commas or spaces."
+msgid "Seperate tags by commas."
msgstr ""
#: mediagoblin/edit/forms.py:33
@@ -148,7 +148,7 @@ msgstr ""
msgid "Profile edited!"
msgstr ""
-#: mediagoblin/media_types/__init__.py:61
+#: mediagoblin/media_types/__init__.py:65
msgid "Could not find any file extension in \"{filename}\""
msgstr ""
@@ -227,7 +227,9 @@ msgid "Hi there, welcome to this MediaGoblin site!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:28
-msgid "Your finest source for all goblin-related media."
+msgid ""
+"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
+"extraordinarily great piece of media hosting software."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:29
@@ -256,6 +258,11 @@ msgstr ""
msgid "Enter your new password"
msgstr ""
+#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33
+#: mediagoblin/templates/mediagoblin/submit/start.html:30
+msgid "Submit"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
msgid "Recover password"
msgstr ""
@@ -356,10 +363,6 @@ msgstr ""
msgid "Submit yer media"
msgstr ""
-#: mediagoblin/templates/mediagoblin/submit/start.html:30
-msgid "Submit"
-msgstr ""
-
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
#, python-format
msgid "%(username)s's media"
@@ -370,6 +373,31 @@ msgstr ""
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
msgstr ""
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:57
+#, python-format
+msgid "By <a href=\"%(user_url)s\">%(username)s</a> on %(date)s"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
+msgid "Post a comment"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:85
+msgid "at"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
+msgid "Post comment!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:124
+msgid "Edit"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:130
+msgid "Delete"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
msgid "Really delete %(title)s?"
@@ -493,6 +521,10 @@ msgstr ""
msgid "Older"
msgstr ""
+#: mediagoblin/templates/mediagoblin/utils/pagination.html:50
+msgid "Go to page:"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
msgid "Tagged with"
msgstr ""
@@ -510,11 +542,11 @@ msgid "I am sure I want to delete this"
msgstr ""
#: mediagoblin/user_pages/views.py:155
-msgid "Empty comments are not allowed."
+msgid "Oops, your comment was empty."
msgstr ""
#: mediagoblin/user_pages/views.py:161
-msgid "Comment posted!"
+msgid "Your comment has been posted!"
msgstr ""
#: mediagoblin/user_pages/views.py:183
diff --git a/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.mo
index cc0ccbfa..1319a605 100644
--- a/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.mo
+++ b/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.mo
Binary files differ
diff --git a/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.po
index 25700f8f..96d1f0a2 100644
--- a/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.po
@@ -8,8 +8,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-11-27 15:25-0600\n"
-"PO-Revision-Date: 2011-11-27 21:28+0000\n"
+"POT-Creation-Date: 2011-12-04 10:24-0600\n"
+"PO-Revision-Date: 2011-12-04 16:23+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
@@ -98,7 +98,7 @@ msgid "Tags"
msgstr "Tags"
#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34
-msgid "Seperate tags by commas or spaces."
+msgid "Seperate tags by commas."
msgstr ""
#: mediagoblin/edit/forms.py:33
@@ -152,7 +152,7 @@ msgstr ""
msgid "Profile edited!"
msgstr ""
-#: mediagoblin/media_types/__init__.py:61
+#: mediagoblin/media_types/__init__.py:65
msgid "Could not find any file extension in \"{filename}\""
msgstr ""
@@ -235,7 +235,9 @@ msgid "Hi there, welcome to this MediaGoblin site!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:28
-msgid "Your finest source for all goblin-related media."
+msgid ""
+"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
+"extraordinarily great piece of media hosting software."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:29
@@ -264,6 +266,11 @@ msgstr "Documenti multimediali più recenti"
msgid "Enter your new password"
msgstr "Inserisci la tua nuova password"
+#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33
+#: mediagoblin/templates/mediagoblin/submit/start.html:30
+msgid "Submit"
+msgstr "Conferma"
+
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
msgid "Recover password"
msgstr ""
@@ -369,10 +376,6 @@ msgstr ""
msgid "Submit yer media"
msgstr "Inoltra documento multimediale"
-#: mediagoblin/templates/mediagoblin/submit/start.html:30
-msgid "Submit"
-msgstr "Conferma"
-
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
#, python-format
msgid "%(username)s's media"
@@ -383,6 +386,31 @@ msgstr ""
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
msgstr "Documenti multimediali di <a href=\"%(user_url)s\">%(username)s</a>"
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:57
+#, python-format
+msgid "By <a href=\"%(user_url)s\">%(username)s</a> on %(date)s"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
+msgid "Post a comment"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:85
+msgid "at"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
+msgid "Post comment!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:124
+msgid "Edit"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:130
+msgid "Delete"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
msgid "Really delete %(title)s?"
@@ -513,6 +541,10 @@ msgstr "Più nuovo"
msgid "Older"
msgstr "Più vecchio"
+#: mediagoblin/templates/mediagoblin/utils/pagination.html:50
+msgid "Go to page:"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
msgid "Tagged with"
msgstr ""
@@ -530,11 +562,11 @@ msgid "I am sure I want to delete this"
msgstr "Sono sicuro di volerlo cancellare"
#: mediagoblin/user_pages/views.py:155
-msgid "Empty comments are not allowed."
+msgid "Oops, your comment was empty."
msgstr ""
#: mediagoblin/user_pages/views.py:161
-msgid "Comment posted!"
+msgid "Your comment has been posted!"
msgstr ""
#: mediagoblin/user_pages/views.py:183
diff --git a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mo
index 5267eddc..39f3595b 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 f2989e0e..3198eed9 100644
--- a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po
@@ -8,8 +8,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-11-27 15:25-0600\n"
-"PO-Revision-Date: 2011-11-27 21:28+0000\n"
+"POT-Creation-Date: 2011-12-04 10:24-0600\n"
+"PO-Revision-Date: 2011-12-04 16:23+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
@@ -96,7 +96,7 @@ msgid "Tags"
msgstr "タグ"
#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34
-msgid "Seperate tags by commas or spaces."
+msgid "Seperate tags by commas."
msgstr ""
#: mediagoblin/edit/forms.py:33
@@ -148,7 +148,7 @@ msgstr ""
msgid "Profile edited!"
msgstr ""
-#: mediagoblin/media_types/__init__.py:61
+#: mediagoblin/media_types/__init__.py:65
msgid "Could not find any file extension in \"{filename}\""
msgstr ""
@@ -227,7 +227,9 @@ msgid "Hi there, welcome to this MediaGoblin site!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:28
-msgid "Your finest source for all goblin-related media."
+msgid ""
+"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
+"extraordinarily great piece of media hosting software."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:29
@@ -256,6 +258,11 @@ msgstr ""
msgid "Enter your new password"
msgstr ""
+#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33
+#: mediagoblin/templates/mediagoblin/submit/start.html:30
+msgid "Submit"
+msgstr "送信"
+
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
msgid "Recover password"
msgstr ""
@@ -361,10 +368,6 @@ msgstr ""
msgid "Submit yer media"
msgstr "コンテンツを投稿"
-#: mediagoblin/templates/mediagoblin/submit/start.html:30
-msgid "Submit"
-msgstr "送信"
-
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
#, python-format
msgid "%(username)s's media"
@@ -375,6 +378,31 @@ msgstr ""
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/media.html:57
+#, python-format
+msgid "By <a href=\"%(user_url)s\">%(username)s</a> on %(date)s"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
+msgid "Post a comment"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:85
+msgid "at"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
+msgid "Post comment!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:124
+msgid "Edit"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:130
+msgid "Delete"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
msgid "Really delete %(title)s?"
@@ -498,6 +526,10 @@ msgstr ""
msgid "Older"
msgstr ""
+#: mediagoblin/templates/mediagoblin/utils/pagination.html:50
+msgid "Go to page:"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
msgid "Tagged with"
msgstr ""
@@ -515,11 +547,11 @@ msgid "I am sure I want to delete this"
msgstr ""
#: mediagoblin/user_pages/views.py:155
-msgid "Empty comments are not allowed."
+msgid "Oops, your comment was empty."
msgstr ""
#: mediagoblin/user_pages/views.py:161
-msgid "Comment posted!"
+msgid "Your comment has been posted!"
msgstr ""
#: mediagoblin/user_pages/views.py:183
diff --git a/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.mo
index e6d1976b..842bfb9b 100644
--- a/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.mo
+++ 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
index 84957014..c1778676 100644
--- a/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po
@@ -8,8 +8,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-11-27 15:25-0600\n"
-"PO-Revision-Date: 2011-11-27 21:28+0000\n"
+"POT-Creation-Date: 2011-12-04 10:24-0600\n"
+"PO-Revision-Date: 2011-12-04 16:23+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
@@ -98,7 +98,7 @@ msgid "Tags"
msgstr "Etiket"
#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34
-msgid "Seperate tags by commas or spaces."
+msgid "Seperate tags by commas."
msgstr ""
#: mediagoblin/edit/forms.py:33
@@ -153,7 +153,7 @@ msgstr ""
msgid "Profile edited!"
msgstr ""
-#: mediagoblin/media_types/__init__.py:61
+#: mediagoblin/media_types/__init__.py:65
msgid "Could not find any file extension in \"{filename}\""
msgstr ""
@@ -232,7 +232,9 @@ msgid "Hi there, welcome to this MediaGoblin site!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:28
-msgid "Your finest source for all goblin-related media."
+msgid ""
+"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
+"extraordinarily great piece of media hosting software."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:29
@@ -261,6 +263,11 @@ msgstr ""
msgid "Enter your new password"
msgstr ""
+#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33
+#: mediagoblin/templates/mediagoblin/submit/start.html:30
+msgid "Submit"
+msgstr "Voeg toe"
+
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
msgid "Recover password"
msgstr ""
@@ -363,10 +370,6 @@ msgstr ""
msgid "Submit yer media"
msgstr "Voeg media toe"
-#: mediagoblin/templates/mediagoblin/submit/start.html:30
-msgid "Submit"
-msgstr "Voeg toe"
-
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
#, python-format
msgid "%(username)s's media"
@@ -377,6 +380,31 @@ msgstr ""
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/media.html:57
+#, python-format
+msgid "By <a href=\"%(user_url)s\">%(username)s</a> on %(date)s"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
+msgid "Post a comment"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:85
+msgid "at"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
+msgid "Post comment!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:124
+msgid "Edit"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:130
+msgid "Delete"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
msgid "Really delete %(title)s?"
@@ -504,6 +532,10 @@ msgstr ""
msgid "Older"
msgstr ""
+#: mediagoblin/templates/mediagoblin/utils/pagination.html:50
+msgid "Go to page:"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
msgid "Tagged with"
msgstr ""
@@ -521,11 +553,11 @@ msgid "I am sure I want to delete this"
msgstr ""
#: mediagoblin/user_pages/views.py:155
-msgid "Empty comments are not allowed."
+msgid "Oops, your comment was empty."
msgstr ""
#: mediagoblin/user_pages/views.py:161
-msgid "Comment posted!"
+msgid "Your comment has been posted!"
msgstr ""
#: mediagoblin/user_pages/views.py:183
diff --git a/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.mo
index ba427c29..c07f42be 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 21cfdda5..0b0c2a27 100644
--- a/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po
@@ -8,8 +8,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-11-27 15:25-0600\n"
-"PO-Revision-Date: 2011-11-27 21:28+0000\n"
+"POT-Creation-Date: 2011-12-04 10:24-0600\n"
+"PO-Revision-Date: 2011-12-04 16:23+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
@@ -99,7 +99,7 @@ msgid "Tags"
msgstr "Merkelappar"
#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34
-msgid "Seperate tags by commas or spaces."
+msgid "Seperate tags by commas."
msgstr ""
#: mediagoblin/edit/forms.py:33
@@ -151,7 +151,7 @@ msgstr ""
msgid "Profile edited!"
msgstr ""
-#: mediagoblin/media_types/__init__.py:61
+#: mediagoblin/media_types/__init__.py:65
msgid "Could not find any file extension in \"{filename}\""
msgstr ""
@@ -234,7 +234,9 @@ msgid "Hi there, welcome to this MediaGoblin site!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:28
-msgid "Your finest source for all goblin-related media."
+msgid ""
+"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
+"extraordinarily great piece of media hosting software."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:29
@@ -263,6 +265,11 @@ msgstr "Nyaste mediefiler"
msgid "Enter your new password"
msgstr "Fyll inn passord"
+#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33
+#: mediagoblin/templates/mediagoblin/submit/start.html:30
+msgid "Submit"
+msgstr "Send"
+
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
msgid "Recover password"
msgstr ""
@@ -377,10 +384,6 @@ msgstr ""
msgid "Submit yer media"
msgstr "Last opp"
-#: mediagoblin/templates/mediagoblin/submit/start.html:30
-msgid "Submit"
-msgstr "Send"
-
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
#, python-format
msgid "%(username)s's media"
@@ -391,6 +394,31 @@ msgstr ""
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
msgstr "<a href=\"%(user_url)s\">%(username)s</a> sine mediefiler"
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:57
+#, python-format
+msgid "By <a href=\"%(user_url)s\">%(username)s</a> on %(date)s"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
+msgid "Post a comment"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:85
+msgid "at"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
+msgid "Post comment!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:124
+msgid "Edit"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:130
+msgid "Delete"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
msgid "Really delete %(title)s?"
@@ -516,6 +544,10 @@ msgstr "Nyare"
msgid "Older"
msgstr "Eldre"
+#: mediagoblin/templates/mediagoblin/utils/pagination.html:50
+msgid "Go to page:"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
msgid "Tagged with"
msgstr ""
@@ -533,12 +565,12 @@ msgid "I am sure I want to delete this"
msgstr "Eg er sikker eg vil sletta dette"
#: mediagoblin/user_pages/views.py:155
-msgid "Empty comments are not allowed."
-msgstr "Du må skriva noko i innspelet."
+msgid "Oops, your comment was empty."
+msgstr ""
#: mediagoblin/user_pages/views.py:161
-msgid "Comment posted!"
-msgstr "Innspel lagt til."
+msgid "Your comment has been posted!"
+msgstr ""
#: mediagoblin/user_pages/views.py:183
msgid "You deleted the media."
diff --git a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo
index 31cb860c..87e62764 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 c4f77f8a..f1c044d2 100644
--- a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po
@@ -9,9 +9,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-11-27 15:25-0600\n"
-"PO-Revision-Date: 2011-11-27 21:28+0000\n"
-"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
+"POT-Creation-Date: 2011-12-04 10:24-0600\n"
+"PO-Revision-Date: 2011-12-04 23:32+0000\n"
+"Last-Translator: osc <snd.noise@gmail.com>\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"
@@ -59,7 +59,7 @@ msgstr "Desculpe, um usuário com este nome já existe."
#: mediagoblin/auth/views.py:77
msgid "Sorry, a user with that email address already exists."
-msgstr ""
+msgstr "Desculpe, um usuário com esse email já esta cadastrado"
#: mediagoblin/auth/views.py:179
msgid ""
@@ -75,11 +75,11 @@ msgstr "A chave de verificação ou nome usuário estão incorretos."
#: mediagoblin/auth/views.py:203
msgid "You must be logged in so we know who to send the email to!"
-msgstr ""
+msgstr " "
#: mediagoblin/auth/views.py:211
msgid "You've already verified your email address!"
-msgstr ""
+msgstr "Você já verifico seu email!"
#: mediagoblin/auth/views.py:224
msgid "Resent your verification email."
@@ -102,8 +102,8 @@ msgid "Tags"
msgstr "Etiquetas"
#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34
-msgid "Seperate tags by commas or spaces."
-msgstr ""
+msgid "Seperate tags by commas."
+msgstr "Separar tags por virgulas."
#: mediagoblin/edit/forms.py:33
msgid "Slug"
@@ -129,11 +129,11 @@ msgstr "Website"
#: mediagoblin/edit/forms.py:49
msgid "Old password"
-msgstr ""
+msgstr "Senha antiga"
#: mediagoblin/edit/forms.py:52
msgid "New Password"
-msgstr ""
+msgstr "Nova Senha"
#: mediagoblin/edit/views.py:65
msgid "An entry with that slug already exists for this user."
@@ -149,15 +149,15 @@ msgstr "Você está editando um perfil de usuário. Tenha cuidado."
#: mediagoblin/edit/views.py:171
msgid "Wrong password"
-msgstr ""
+msgstr "Senha errada"
#: mediagoblin/edit/views.py:192
msgid "Profile edited!"
-msgstr ""
+msgstr "Perfil editado!"
-#: mediagoblin/media_types/__init__.py:61
+#: mediagoblin/media_types/__init__.py:65
msgid "Could not find any file extension in \"{filename}\""
-msgstr ""
+msgstr " "
#: mediagoblin/submit/forms.py:25
msgid "File"
@@ -177,7 +177,7 @@ msgstr "Eba! Enviado!"
#: mediagoblin/submit/views.py:133
msgid "Invalid file type."
-msgstr ""
+msgstr "Tipo de arquivo inválido."
#: mediagoblin/templates/mediagoblin/404.html:21
msgid "Oops!"
@@ -209,11 +209,11 @@ msgstr "Enviar mídia"
#: mediagoblin/templates/mediagoblin/base.html:65
msgid "Verify your email!"
-msgstr ""
+msgstr "Verifique seu email!"
#: mediagoblin/templates/mediagoblin/base.html:72
msgid "log out"
-msgstr ""
+msgstr "Sair"
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/auth/login.html:27
@@ -235,21 +235,23 @@ msgstr "Explorar"
#: mediagoblin/templates/mediagoblin/root.html:27
msgid "Hi there, welcome to this MediaGoblin site!"
-msgstr ""
+msgstr "Olá, bemvindo ao site de MediaGoblin."
#: mediagoblin/templates/mediagoblin/root.html:28
-msgid "Your finest source for all goblin-related media."
+msgid ""
+"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
+"extraordinarily great piece of media hosting software."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:29
msgid ""
"To add your own media, place comments, save your favourites and more, you "
"can log in with your MediaGoblin account."
-msgstr ""
+msgstr " "
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Don't have one yet? It's easy!"
-msgstr ""
+msgstr " "
#: mediagoblin/templates/mediagoblin/root.html:32
#, python-format
@@ -267,13 +269,18 @@ msgstr "Mídia mais recente"
msgid "Enter your new password"
msgstr "Digite sua nova senha"
+#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33
+#: mediagoblin/templates/mediagoblin/submit/start.html:30
+msgid "Submit"
+msgstr "Enviar"
+
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
msgid "Recover password"
-msgstr ""
+msgstr "Recuperar senha"
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30
msgid "Send instructions"
-msgstr ""
+msgstr "Mandar instruções"
#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22
msgid "Your password has been changed. Try to log in now."
@@ -376,16 +383,12 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/video.html:19
msgid "Original"
-msgstr ""
+msgstr "Original"
#: mediagoblin/templates/mediagoblin/submit/start.html:26
msgid "Submit yer media"
msgstr "Envie sua mídia"
-#: mediagoblin/templates/mediagoblin/submit/start.html:30
-msgid "Submit"
-msgstr "Enviar"
-
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
#, python-format
msgid "%(username)s's media"
@@ -396,6 +399,31 @@ msgstr ""
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
msgstr "Mídia de <a href=\"%(user_url)s\"> %(username)s </a> "
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:57
+#, python-format
+msgid "By <a href=\"%(user_url)s\">%(username)s</a> on %(date)s"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
+msgid "Post a comment"
+msgstr "Postar um comentário"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:85
+msgid "at"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
+msgid "Post comment!"
+msgstr "Postar comentário!"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:124
+msgid "Edit"
+msgstr "Editar"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:130
+msgid "Delete"
+msgstr "Apagar"
+
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
msgid "Really delete %(title)s?"
@@ -526,13 +554,17 @@ msgstr "Mais novo"
msgid "Older"
msgstr "Mais velho"
+#: mediagoblin/templates/mediagoblin/utils/pagination.html:50
+msgid "Go to page:"
+msgstr "Ir a página:"
+
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
msgid "Tagged with"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/tags.html:25
msgid "and"
-msgstr ""
+msgstr "e"
#: mediagoblin/user_pages/forms.py:24
msgid "Comment"
@@ -543,16 +575,16 @@ msgid "I am sure I want to delete this"
msgstr "Eu tenho certeza de que quero pagar isso"
#: mediagoblin/user_pages/views.py:155
-msgid "Empty comments are not allowed."
-msgstr ""
+msgid "Oops, your comment was empty."
+msgstr "Opa, seu comentáio estava vazio."
#: mediagoblin/user_pages/views.py:161
-msgid "Comment posted!"
-msgstr ""
+msgid "Your comment has been posted!"
+msgstr "Seu comentário foi postado!"
#: mediagoblin/user_pages/views.py:183
msgid "You deleted the media."
-msgstr ""
+msgstr "Você deletou a mídia."
#: mediagoblin/user_pages/views.py:190
msgid "The media was not deleted because you didn't check that you were sure."
diff --git a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo
index 2ab9cf8b..e0a70ea9 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 96fd46d8..b747fc3a 100644
--- a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po
@@ -4,13 +4,14 @@
#
# Translators:
# <gapop@hotmail.com>, 2011.
+# George Pop <gapop@hotmail.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-11-27 15:25-0600\n"
-"PO-Revision-Date: 2011-11-27 21:28+0000\n"
-"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
+"POT-Creation-Date: 2011-12-04 10:24-0600\n"
+"PO-Revision-Date: 2011-12-04 18:41+0000\n"
+"Last-Translator: gap <gapop@hotmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -57,14 +58,14 @@ msgstr "Ne pare rău, există deja un utilizator cu același nume."
#: mediagoblin/auth/views.py:77
msgid "Sorry, a user with that email address already exists."
-msgstr ""
+msgstr "Există deja un utilizator înregistrat cu această adresă de e-mail."
#: mediagoblin/auth/views.py:179
msgid ""
"Your email address has been verified. You may now login, edit your profile, "
"and submit images!"
msgstr ""
-"Adresa ta de e-mail a fost confirmată. Poți să te autentifici, să îți "
+"Adresa ta de e-mail a fost verificată. Poți să te autentifici, să îți "
"completezi profilul și să trimiți imagini!"
#: mediagoblin/auth/views.py:185
@@ -73,11 +74,11 @@ msgstr "Cheie de verificare sau user ID incorect."
#: mediagoblin/auth/views.py:203
msgid "You must be logged in so we know who to send the email to!"
-msgstr ""
+msgstr "Trebuie să fii autentificat ca să știm cui să trimitem mesajul!"
#: mediagoblin/auth/views.py:211
msgid "You've already verified your email address!"
-msgstr ""
+msgstr "Adresa ta de e-mail a fost deja verificată!"
#: mediagoblin/auth/views.py:224
msgid "Resent your verification email."
@@ -89,7 +90,7 @@ msgid ""
"account's email address has not been verified."
msgstr ""
"E-mailul pentru recuperarea parolei nu a putut fi trimis deoarece contul tău"
-" e inactiv sau adresa ta de e-mail nu a fost confirmată."
+" e inactiv sau adresa ta de e-mail nu a fost verificată."
#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27
msgid "Title"
@@ -97,11 +98,11 @@ msgstr "Titlu"
#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32
msgid "Tags"
-msgstr "Etichete"
+msgstr "Tag-uri"
#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34
-msgid "Seperate tags by commas or spaces."
-msgstr ""
+msgid "Seperate tags by commas."
+msgstr "Desparte tag-urile prin virgulă."
#: mediagoblin/edit/forms.py:33
msgid "Slug"
@@ -128,11 +129,11 @@ msgstr "Sit Web"
#: mediagoblin/edit/forms.py:49
msgid "Old password"
-msgstr ""
+msgstr "Vechea parolă"
#: mediagoblin/edit/forms.py:52
msgid "New Password"
-msgstr ""
+msgstr "Noua parolă"
#: mediagoblin/edit/views.py:65
msgid "An entry with that slug already exists for this user."
@@ -149,15 +150,15 @@ msgstr "Editezi profilul unui utilizator. Se recomandă prudență."
#: mediagoblin/edit/views.py:171
msgid "Wrong password"
-msgstr ""
+msgstr "Parolă incorectă"
#: mediagoblin/edit/views.py:192
msgid "Profile edited!"
-msgstr ""
+msgstr "Profilul a fost modificat!"
-#: mediagoblin/media_types/__init__.py:61
+#: mediagoblin/media_types/__init__.py:65
msgid "Could not find any file extension in \"{filename}\""
-msgstr ""
+msgstr "Nu pot extrage extensia din „{filename}”"
#: mediagoblin/submit/forms.py:25
msgid "File"
@@ -173,19 +174,19 @@ msgstr "Trebuie să selectezi un fișier."
#: mediagoblin/submit/views.py:127
msgid "Woohoo! Submitted!"
-msgstr "Gata, trimis!"
+msgstr "Ura! Trimis!"
#: mediagoblin/submit/views.py:133
msgid "Invalid file type."
-msgstr ""
+msgstr "Tip de fișier incompatibil."
#: mediagoblin/templates/mediagoblin/404.html:21
msgid "Oops!"
-msgstr "Oops!"
+msgstr "Hopa!"
#: 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ă."
+msgstr "Nu există nicio pagină la această adresă. Ne pare rău!"
#: mediagoblin/templates/mediagoblin/404.html:26
msgid ""
@@ -209,11 +210,11 @@ msgstr "Transmite un fișier media"
#: mediagoblin/templates/mediagoblin/base.html:65
msgid "Verify your email!"
-msgstr ""
+msgstr "Verifică adresa de e-mail!"
#: mediagoblin/templates/mediagoblin/base.html:72
msgid "log out"
-msgstr ""
+msgstr "ieșire"
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/auth/login.html:27
@@ -235,21 +236,27 @@ msgstr "Explorează"
#: mediagoblin/templates/mediagoblin/root.html:27
msgid "Hi there, welcome to this MediaGoblin site!"
-msgstr ""
+msgstr "Salut, bine ai venit pe acest site MediaGoblin!"
#: mediagoblin/templates/mediagoblin/root.html:28
-msgid "Your finest source for all goblin-related media."
+msgid ""
+"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
+"extraordinarily great piece of media hosting software."
msgstr ""
+"Acest site folosește <a href=\"http://mediagoblin.org\">MediaGoblin</a>, un "
+"software excepțional pentru găzduirea fișierelor media."
#: mediagoblin/templates/mediagoblin/root.html:29
msgid ""
"To add your own media, place comments, save your favourites and more, you "
"can log in with your MediaGoblin account."
msgstr ""
+"Ca să adăugi propriile tale fișiere, să scrii comentarii, să salvezi "
+"favoritele tale și multe altele, autentifică-te cu contul tău MediaGoblin."
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Don't have one yet? It's easy!"
-msgstr ""
+msgstr "Încă nu ai unul? E simplu!"
#: mediagoblin/templates/mediagoblin/root.html:32
#, python-format
@@ -258,6 +265,9 @@ msgid ""
" or\n"
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
msgstr ""
+"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Creează un cont pe acest site</a>\n"
+" sau\n"
+" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Instalează MediaGoblin pe propriul tău server</a>"
#: mediagoblin/templates/mediagoblin/root.html:44
msgid "Most recent media"
@@ -267,13 +277,18 @@ msgstr "Cele mai recente fișiere"
msgid "Enter your new password"
msgstr "Introdu noua parolă"
+#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33
+#: mediagoblin/templates/mediagoblin/submit/start.html:30
+msgid "Submit"
+msgstr "Trimite"
+
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
msgid "Recover password"
-msgstr ""
+msgstr "Recuperează parola"
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30
msgid "Send instructions"
-msgstr ""
+msgstr "Trimite instrucțiuni"
#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22
msgid "Your password has been changed. Try to log in now."
@@ -371,30 +386,51 @@ msgstr "Editare profil %(username)s"
#: mediagoblin/templates/mediagoblin/listings/tag.html:35
#, python-format
msgid "Media tagged with: %(tag_name)s"
-msgstr ""
+msgstr "Fișier etichetat cu tag-urile: %(tag_name)s"
#: mediagoblin/templates/mediagoblin/media_displays/video.html:19
msgid "Original"
-msgstr ""
+msgstr "Original"
#: mediagoblin/templates/mediagoblin/submit/start.html:26
msgid "Submit yer media"
msgstr "Trimite fișierele tale media"
-#: mediagoblin/templates/mediagoblin/submit/start.html:30
-msgid "Submit"
-msgstr "Trimite"
-
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
#, python-format
msgid "%(username)s's media"
-msgstr ""
+msgstr "Fișierele lui %(username)s"
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37
#, python-format
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
msgstr "Fișierele media ale lui <a href=\"%(user_url)s\">%(username)s</a>"
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:57
+#, python-format
+msgid "By <a href=\"%(user_url)s\">%(username)s</a> on %(date)s"
+msgstr "De <a href=\"%(user_url)s\">%(username)s</a> la %(date)s"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
+msgid "Post a comment"
+msgstr "Scrie un comentariu"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:85
+msgid "at"
+msgstr "la"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
+msgid "Post comment!"
+msgstr "Trimite comentariul"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:124
+msgid "Edit"
+msgstr "Editare"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:130
+msgid "Delete"
+msgstr "Șterge"
+
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
msgid "Really delete %(title)s?"
@@ -438,7 +474,7 @@ msgstr "Ne pare rău, nu am găsit utilizatorul căutat."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:50
#: mediagoblin/templates/mediagoblin/user_pages/user.html:70
msgid "Email verification needed"
-msgstr "Este necesară confirmarea adresei de e-mail"
+msgstr "Este necesară verificarea adresei de e-mail"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:53
msgid "Almost done! Your account still needs to be activated."
@@ -524,13 +560,17 @@ msgstr "Mai noi"
msgid "Older"
msgstr "Mai vechi"
+#: mediagoblin/templates/mediagoblin/utils/pagination.html:50
+msgid "Go to page:"
+msgstr "Salt la pagina:"
+
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
msgid "Tagged with"
-msgstr ""
+msgstr "Tag-uri"
#: mediagoblin/templates/mediagoblin/utils/tags.html:25
msgid "and"
-msgstr ""
+msgstr "și"
#: mediagoblin/user_pages/forms.py:24
msgid "Comment"
@@ -541,20 +581,20 @@ msgid "I am sure I want to delete this"
msgstr "Sunt sigur că doresc să șterg"
#: mediagoblin/user_pages/views.py:155
-msgid "Empty comments are not allowed."
-msgstr "Comentariul trebuie să aibă un conținut."
+msgid "Oops, your comment was empty."
+msgstr "Hopa, ai uitat să scrii comentariul."
#: mediagoblin/user_pages/views.py:161
-msgid "Comment posted!"
-msgstr "Comentariul a fost transmis."
+msgid "Your comment has been posted!"
+msgstr "Comentariul tău a fost trimis!"
#: mediagoblin/user_pages/views.py:183
msgid "You deleted the media."
-msgstr ""
+msgstr "Ai șters acest fișier"
#: mediagoblin/user_pages/views.py:190
msgid "The media was not deleted because you didn't check that you were sure."
-msgstr ""
+msgstr "Fișierul nu a fost șters deoarece nu ai confirmat că ești sigur."
#: mediagoblin/user_pages/views.py:198
msgid "You are about to delete another user's media. Proceed with caution."
diff --git a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo
index 4b5481e0..7e62de83 100644
--- a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo
+++ 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
index 9fb1ce08..098ea38c 100644
--- a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po
@@ -8,9 +8,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-11-27 15:25-0600\n"
-"PO-Revision-Date: 2011-11-27 21:28+0000\n"
-"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
+"POT-Creation-Date: 2011-12-04 10:24-0600\n"
+"PO-Revision-Date: 2011-12-04 19:58+0000\n"
+"Last-Translator: aleksejrs <deletesoftware@yandex.ru>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -58,6 +58,8 @@ msgstr "Извините, пользователь с этим именем уж
#: mediagoblin/auth/views.py:77
msgid "Sorry, a user with that email address already exists."
msgstr ""
+"Сожалеем, но на этот адрес электронной почты уже зарегистрирована другая "
+"учётная запись."
#: mediagoblin/auth/views.py:179
msgid ""
@@ -73,11 +75,11 @@ msgstr "Неверный ключ проверки или идентификат
#: mediagoblin/auth/views.py:203
msgid "You must be logged in so we know who to send the email to!"
-msgstr ""
+msgstr "Вам надо представиться, чтобы мы знали, кому отправлять сообщение!"
#: mediagoblin/auth/views.py:211
msgid "You've already verified your email address!"
-msgstr ""
+msgstr "Вы уже потвердили свой адрес электронной почты!"
#: mediagoblin/auth/views.py:224
msgid "Resent your verification email."
@@ -101,8 +103,8 @@ msgid "Tags"
msgstr "Метки"
#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34
-msgid "Seperate tags by commas or spaces."
-msgstr ""
+msgid "Seperate tags by commas."
+msgstr "Разделяйте метки запятыми."
#: mediagoblin/edit/forms.py:33
msgid "Slug"
@@ -129,11 +131,11 @@ msgstr "Сайт"
#: mediagoblin/edit/forms.py:49
msgid "Old password"
-msgstr ""
+msgstr "Старый пароль"
#: mediagoblin/edit/forms.py:52
msgid "New Password"
-msgstr ""
+msgstr "Новый пароль"
#: mediagoblin/edit/views.py:65
msgid "An entry with that slug already exists for this user."
@@ -150,15 +152,15 @@ msgstr "Вы редактируете профиль пользователя.
#: mediagoblin/edit/views.py:171
msgid "Wrong password"
-msgstr ""
+msgstr "Неправильный пароль"
#: mediagoblin/edit/views.py:192
msgid "Profile edited!"
-msgstr ""
+msgstr "Профиль изменён!"
-#: mediagoblin/media_types/__init__.py:61
+#: mediagoblin/media_types/__init__.py:65
msgid "Could not find any file extension in \"{filename}\""
-msgstr ""
+msgstr "В «{filename}» не обнаружено расширение имени файла"
#: mediagoblin/submit/forms.py:25
msgid "File"
@@ -178,7 +180,7 @@ msgstr "Ура! Файл загружен!"
#: mediagoblin/submit/views.py:133
msgid "Invalid file type."
-msgstr ""
+msgstr "Неподходящий тип файла."
#: mediagoblin/templates/mediagoblin/404.html:21
msgid "Oops!"
@@ -208,11 +210,11 @@ msgstr "Загрузить файл"
#: mediagoblin/templates/mediagoblin/base.html:65
msgid "Verify your email!"
-msgstr ""
+msgstr "Подтвердите ваш адрес электронной почты!"
#: mediagoblin/templates/mediagoblin/base.html:72
msgid "log out"
-msgstr ""
+msgstr "завершение сеанса"
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/auth/login.html:27
@@ -230,25 +232,32 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:24
msgid "Explore"
-msgstr ""
+msgstr "Смотреть"
#: mediagoblin/templates/mediagoblin/root.html:27
msgid "Hi there, welcome to this MediaGoblin site!"
-msgstr ""
+msgstr "Привет! Добро пожаловать на наш MediaGoblin’овый сайт!"
#: mediagoblin/templates/mediagoblin/root.html:28
-msgid "Your finest source for all goblin-related media."
+msgid ""
+"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
+"extraordinarily great piece of media hosting software."
msgstr ""
+"Этот сайт работает на <a href=\"http://mediagoblin.org\">MediaGoblin</a>, "
+"необыкновенно замечательном ПО для хостинга мультимедийных файлов."
#: mediagoblin/templates/mediagoblin/root.html:29
msgid ""
"To add your own media, place comments, save your favourites and more, you "
"can log in with your MediaGoblin account."
msgstr ""
+"Для добавления собственных файлов, комментирования, ведения списка любимых "
+"файлов и т. п. вы можете представиться с помощью вашей MediaGoblin’овой "
+"учётной записи."
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Don't have one yet? It's easy!"
-msgstr ""
+msgstr "У вас её ещё нет? Не проблема!"
#: mediagoblin/templates/mediagoblin/root.html:32
#, python-format
@@ -257,6 +266,9 @@ msgid ""
" or\n"
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
msgstr ""
+"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Создайте учётную запись на этом сайте</a>\n"
+" или\n"
+" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Установите MediaGoblin на собственный сервер</a>"
#: mediagoblin/templates/mediagoblin/root.html:44
msgid "Most recent media"
@@ -266,13 +278,18 @@ msgstr "Самые новые файлы"
msgid "Enter your new password"
msgstr "Введите свой новый пароль"
+#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33
+#: mediagoblin/templates/mediagoblin/submit/start.html:30
+msgid "Submit"
+msgstr "Подтвердить"
+
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
msgid "Recover password"
-msgstr ""
+msgstr "Сброс пароля"
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30
msgid "Send instructions"
-msgstr ""
+msgstr "Отправить инструкцию"
#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22
msgid "Your password has been changed. Try to log in now."
@@ -372,30 +389,51 @@ msgstr "Редактирование профиля %(username)s"
#: mediagoblin/templates/mediagoblin/listings/tag.html:35
#, python-format
msgid "Media tagged with: %(tag_name)s"
-msgstr ""
+msgstr "Файлы с меткой: %(tag_name)s"
#: mediagoblin/templates/mediagoblin/media_displays/video.html:19
msgid "Original"
-msgstr ""
+msgstr "Оригинал"
#: mediagoblin/templates/mediagoblin/submit/start.html:26
msgid "Submit yer media"
msgstr "Загрузить файл(ы)"
-#: mediagoblin/templates/mediagoblin/submit/start.html:30
-msgid "Submit"
-msgstr "Подтвердить"
-
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
#, python-format
msgid "%(username)s's media"
-msgstr ""
+msgstr "Файлы %(username)s"
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37
#, 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/media.html:57
+#, python-format
+msgid "By <a href=\"%(user_url)s\">%(username)s</a> on %(date)s"
+msgstr "Загружено <a href=\"%(user_url)s\">%(username)s</a> %(date)s"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
+msgid "Post a comment"
+msgstr "Оставить комментарий"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:85
+msgid "at"
+msgstr "в"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
+msgid "Post comment!"
+msgstr "Разместить комментарий!"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:124
+msgid "Edit"
+msgstr "Изменить"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:130
+msgid "Delete"
+msgstr "Удалить"
+
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
msgid "Really delete %(title)s?"
@@ -525,13 +563,17 @@ msgstr "Более новые"
msgid "Older"
msgstr "Более старые"
+#: mediagoblin/templates/mediagoblin/utils/pagination.html:50
+msgid "Go to page:"
+msgstr "Перейти к странице:"
+
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
msgid "Tagged with"
-msgstr ""
+msgstr "Метки:"
#: mediagoblin/templates/mediagoblin/utils/tags.html:25
msgid "and"
-msgstr ""
+msgstr "и"
#: mediagoblin/user_pages/forms.py:24
msgid "Comment"
@@ -542,20 +584,20 @@ msgid "I am sure I want to delete this"
msgstr "Я уверен, что хочу удалить это"
#: mediagoblin/user_pages/views.py:155
-msgid "Empty comments are not allowed."
-msgstr "Empty comments are not allowed."
+msgid "Oops, your comment was empty."
+msgstr "Ой, ваш комментарий был пуст."
#: mediagoblin/user_pages/views.py:161
-msgid "Comment posted!"
-msgstr "Комментарий размещён!"
+msgid "Your comment has been posted!"
+msgstr "Ваш комментарий размещён!"
#: mediagoblin/user_pages/views.py:183
msgid "You deleted the media."
-msgstr ""
+msgstr "Вы удалили файл."
#: mediagoblin/user_pages/views.py:190
msgid "The media was not deleted because you didn't check that you were sure."
-msgstr ""
+msgstr "Файл не удалён, так как вы не подтвердили свою уверенность галочкой."
#: mediagoblin/user_pages/views.py:198
msgid "You are about to delete another user's media. Proceed with caution."
diff --git a/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.mo
index 684c850a..5ab7befa 100644
--- a/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.mo
+++ b/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.mo
Binary files differ
diff --git a/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.po
index bee7b3b5..34cf1679 100644
--- a/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.po
@@ -8,9 +8,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-11-27 15:25-0600\n"
-"PO-Revision-Date: 2011-11-27 21:28+0000\n"
-"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
+"POT-Creation-Date: 2011-12-04 10:24-0600\n"
+"PO-Revision-Date: 2011-12-10 23:09+0000\n"
+"Last-Translator: martin <zatroch.martin@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -57,7 +57,7 @@ msgstr "Prepáč, rovnaké prihlasovacie meno už niekto používa."
#: mediagoblin/auth/views.py:77
msgid "Sorry, a user with that email address already exists."
-msgstr ""
+msgstr "Prepáč, používateľ s rovnakou e-mailovou adresou už existuje."
#: mediagoblin/auth/views.py:179
msgid ""
@@ -73,11 +73,11 @@ msgstr "Nesprávny overovací kľúč alebo používateľské ID"
#: mediagoblin/auth/views.py:203
msgid "You must be logged in so we know who to send the email to!"
-msgstr ""
+msgstr "Aby sme ti mohli zaslať e-mail, je potrebné byť prihláseným!"
#: mediagoblin/auth/views.py:211
msgid "You've already verified your email address!"
-msgstr ""
+msgstr "Tvoja e-mailová adresa už bola raz overená!"
#: mediagoblin/auth/views.py:224
msgid "Resent your verification email."
@@ -100,8 +100,8 @@ msgid "Tags"
msgstr "Štítky"
#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34
-msgid "Seperate tags by commas or spaces."
-msgstr ""
+msgid "Seperate tags by commas."
+msgstr "Oddeľ štítky pomocou čiarky."
#: mediagoblin/edit/forms.py:33
msgid "Slug"
@@ -126,11 +126,11 @@ msgstr "Webstránka"
#: mediagoblin/edit/forms.py:49
msgid "Old password"
-msgstr ""
+msgstr "Staré heslo"
#: mediagoblin/edit/forms.py:52
msgid "New Password"
-msgstr ""
+msgstr "Nové heslo"
#: mediagoblin/edit/views.py:65
msgid "An entry with that slug already exists for this user."
@@ -146,15 +146,15 @@ msgstr "Upravuješ používateľský profil. Pristupuj opatrne."
#: mediagoblin/edit/views.py:171
msgid "Wrong password"
-msgstr ""
+msgstr "Nesprávne heslo"
#: mediagoblin/edit/views.py:192
msgid "Profile edited!"
-msgstr ""
+msgstr "Profil upravený!"
-#: mediagoblin/media_types/__init__.py:61
+#: mediagoblin/media_types/__init__.py:65
msgid "Could not find any file extension in \"{filename}\""
-msgstr ""
+msgstr "Nebolo možné nájsť žiadnu príponu v súbore \"{filename}\""
#: mediagoblin/submit/forms.py:25
msgid "File"
@@ -174,7 +174,7 @@ msgstr "Juchú! Úspešne vložené!"
#: mediagoblin/submit/views.py:133
msgid "Invalid file type."
-msgstr ""
+msgstr "Nesprávny typ súboru."
#: mediagoblin/templates/mediagoblin/404.html:21
msgid "Oops!"
@@ -206,11 +206,11 @@ msgstr "Vložiť výtvor"
#: mediagoblin/templates/mediagoblin/base.html:65
msgid "Verify your email!"
-msgstr ""
+msgstr "Over si e-mail!"
#: mediagoblin/templates/mediagoblin/base.html:72
msgid "log out"
-msgstr ""
+msgstr "odhlásenie"
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/auth/login.html:27
@@ -232,21 +232,27 @@ msgstr "Preskúmať"
#: mediagoblin/templates/mediagoblin/root.html:27
msgid "Hi there, welcome to this MediaGoblin site!"
-msgstr ""
+msgstr "Ahoj, vitaj na tejto MediaGoblin stránke!"
#: mediagoblin/templates/mediagoblin/root.html:28
-msgid "Your finest source for all goblin-related media."
+msgid ""
+"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
+"extraordinarily great piece of media hosting software."
msgstr ""
+"Táto stránka používa <a href=\"http://mediagoblin.org\">MediaGoblin</a>, "
+"výnimočne skvelý kus softvéru na hostovanie médií."
#: mediagoblin/templates/mediagoblin/root.html:29
msgid ""
"To add your own media, place comments, save your favourites and more, you "
"can log in with your MediaGoblin account."
msgstr ""
+"Pre pridanie vlastných výtvorov, vloženie komentárov, uloženie svojich "
+"obľúbených položiek a viac, sa musíš prihlásiť so svojim MediaGoblin účtom."
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Don't have one yet? It's easy!"
-msgstr ""
+msgstr "Ešte žiaden nemáš? Je to jednoduché!"
#: mediagoblin/templates/mediagoblin/root.html:32
#, python-format
@@ -255,6 +261,9 @@ msgid ""
" or\n"
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
msgstr ""
+"&lt;a class=\"header_submit_highlight\" href=\"%(register_url)s\"&gt;Vytvoriť bezplatný účet&lt;/a&gt;\n"
+" alebo\n"
+" &lt;a class=\"header_submit\" href=\"http://wiki.mediagoblin.org/HackingHowto\"&gt;Sprevádzkovať MediaGoblin na vlastnom serveri&lt;/a&gt;"
#: mediagoblin/templates/mediagoblin/root.html:44
msgid "Most recent media"
@@ -264,13 +273,18 @@ msgstr "Najčerstvejšie výtvory"
msgid "Enter your new password"
msgstr "Vlož svoje nové heslo"
+#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33
+#: mediagoblin/templates/mediagoblin/submit/start.html:30
+msgid "Submit"
+msgstr "Vložiť"
+
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
msgid "Recover password"
-msgstr ""
+msgstr "Obnoviť heslo"
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30
msgid "Send instructions"
-msgstr ""
+msgstr "Zaslať inštrukcie"
#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22
msgid "Your password has been changed. Try to log in now."
@@ -370,30 +384,51 @@ msgstr "Úprava profilu, ktorý vlastní %(username)s"
#: mediagoblin/templates/mediagoblin/listings/tag.html:35
#, python-format
msgid "Media tagged with: %(tag_name)s"
-msgstr ""
+msgstr "Výtvory označené s: %(tag_name)s"
#: mediagoblin/templates/mediagoblin/media_displays/video.html:19
msgid "Original"
-msgstr ""
+msgstr "Originál"
#: mediagoblin/templates/mediagoblin/submit/start.html:26
msgid "Submit yer media"
msgstr "Vlož svoj výtvor"
-#: mediagoblin/templates/mediagoblin/submit/start.html:30
-msgid "Submit"
-msgstr "Vložiť"
-
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
#, python-format
msgid "%(username)s's media"
-msgstr ""
+msgstr "Výtvory používateľa %(username)s"
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37
#, python-format
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
msgstr "<a href=\"%(user_url)s\">Výtvory, ktoré vlastní %(username)s</a>"
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:57
+#, python-format
+msgid "By <a href=\"%(user_url)s\">%(username)s</a> on %(date)s"
+msgstr "Od <a href=\"%(user_url)s\">%(username)s</a> v čase %(date)s"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
+msgid "Post a comment"
+msgstr "Zaslať komentár"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:85
+msgid "at"
+msgstr "o"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
+msgid "Post comment!"
+msgstr "Zaslať komentár!"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:124
+msgid "Edit"
+msgstr "Upraviť"
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:130
+msgid "Delete"
+msgstr "Odstrániť"
+
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
msgid "Really delete %(title)s?"
@@ -522,13 +557,17 @@ msgstr "Novšie"
msgid "Older"
msgstr "Staršie"
+#: mediagoblin/templates/mediagoblin/utils/pagination.html:50
+msgid "Go to page:"
+msgstr "Ísť na stránku:"
+
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
msgid "Tagged with"
-msgstr ""
+msgstr "Označené s"
#: mediagoblin/templates/mediagoblin/utils/tags.html:25
msgid "and"
-msgstr ""
+msgstr "a"
#: mediagoblin/user_pages/forms.py:24
msgid "Comment"
@@ -539,20 +578,20 @@ msgid "I am sure I want to delete this"
msgstr "Jednoznačne to chcem odstrániť"
#: mediagoblin/user_pages/views.py:155
-msgid "Empty comments are not allowed."
-msgstr "Komentáre bez obsahu nepovolené."
+msgid "Oops, your comment was empty."
+msgstr "Ajaj, tvoj komentár bol prázdny."
#: mediagoblin/user_pages/views.py:161
-msgid "Comment posted!"
-msgstr "Komentár odoslaný!"
+msgid "Your comment has been posted!"
+msgstr "Tvoj komentár bol zaslaný!"
#: mediagoblin/user_pages/views.py:183
msgid "You deleted the media."
-msgstr ""
+msgstr "Výtvor bol odstránený tebou."
#: mediagoblin/user_pages/views.py:190
msgid "The media was not deleted because you didn't check that you were sure."
-msgstr ""
+msgstr "Výtvor nebol odstránený, nakoľko chýbala tvoja konfirmácia."
#: mediagoblin/user_pages/views.py:198
msgid "You are about to delete another user's media. Proceed with caution."
diff --git a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.mo
index 52e3d632..9ad54a83 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 77273ebe..ffd2c04c 100644
--- a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po
@@ -8,8 +8,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-11-27 15:25-0600\n"
-"PO-Revision-Date: 2011-11-27 21:28+0000\n"
+"POT-Creation-Date: 2011-12-04 10:24-0600\n"
+"PO-Revision-Date: 2011-12-04 16:23+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
@@ -98,7 +98,7 @@ msgid "Tags"
msgstr "Oznake"
#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34
-msgid "Seperate tags by commas or spaces."
+msgid "Seperate tags by commas."
msgstr ""
#: mediagoblin/edit/forms.py:33
@@ -150,7 +150,7 @@ msgstr ""
msgid "Profile edited!"
msgstr ""
-#: mediagoblin/media_types/__init__.py:61
+#: mediagoblin/media_types/__init__.py:65
msgid "Could not find any file extension in \"{filename}\""
msgstr ""
@@ -231,7 +231,9 @@ msgid "Hi there, welcome to this MediaGoblin site!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:28
-msgid "Your finest source for all goblin-related media."
+msgid ""
+"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
+"extraordinarily great piece of media hosting software."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:29
@@ -260,6 +262,11 @@ msgstr ""
msgid "Enter your new password"
msgstr ""
+#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33
+#: mediagoblin/templates/mediagoblin/submit/start.html:30
+msgid "Submit"
+msgstr "Pošlji"
+
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
msgid "Recover password"
msgstr ""
@@ -366,10 +373,6 @@ msgstr ""
msgid "Submit yer media"
msgstr "Pošljite svojo vsebino"
-#: mediagoblin/templates/mediagoblin/submit/start.html:30
-msgid "Submit"
-msgstr "Pošlji"
-
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
#, python-format
msgid "%(username)s's media"
@@ -380,6 +383,31 @@ msgstr ""
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/media.html:57
+#, python-format
+msgid "By <a href=\"%(user_url)s\">%(username)s</a> on %(date)s"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
+msgid "Post a comment"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:85
+msgid "at"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
+msgid "Post comment!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:124
+msgid "Edit"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:130
+msgid "Delete"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
msgid "Really delete %(title)s?"
@@ -507,6 +535,10 @@ msgstr ""
msgid "Older"
msgstr ""
+#: mediagoblin/templates/mediagoblin/utils/pagination.html:50
+msgid "Go to page:"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
msgid "Tagged with"
msgstr ""
@@ -524,11 +556,11 @@ msgid "I am sure I want to delete this"
msgstr ""
#: mediagoblin/user_pages/views.py:155
-msgid "Empty comments are not allowed."
+msgid "Oops, your comment was empty."
msgstr ""
#: mediagoblin/user_pages/views.py:161
-msgid "Comment posted!"
+msgid "Your comment has been posted!"
msgstr ""
#: mediagoblin/user_pages/views.py:183
diff --git a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mo
index d2649938..ece8989f 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 0bdfc21c..942f7203 100644
--- a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/sr/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-11-27 15:25-0600\n"
-"PO-Revision-Date: 2011-11-27 21:28+0000\n"
+"POT-Creation-Date: 2011-12-04 10:24-0600\n"
+"PO-Revision-Date: 2011-12-04 16:23+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"
@@ -95,7 +95,7 @@ msgid "Tags"
msgstr ""
#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34
-msgid "Seperate tags by commas or spaces."
+msgid "Seperate tags by commas."
msgstr ""
#: mediagoblin/edit/forms.py:33
@@ -147,7 +147,7 @@ msgstr ""
msgid "Profile edited!"
msgstr ""
-#: mediagoblin/media_types/__init__.py:61
+#: mediagoblin/media_types/__init__.py:65
msgid "Could not find any file extension in \"{filename}\""
msgstr ""
@@ -226,7 +226,9 @@ msgid "Hi there, welcome to this MediaGoblin site!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:28
-msgid "Your finest source for all goblin-related media."
+msgid ""
+"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
+"extraordinarily great piece of media hosting software."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:29
@@ -255,6 +257,11 @@ msgstr ""
msgid "Enter your new password"
msgstr ""
+#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33
+#: mediagoblin/templates/mediagoblin/submit/start.html:30
+msgid "Submit"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
msgid "Recover password"
msgstr ""
@@ -355,10 +362,6 @@ msgstr ""
msgid "Submit yer media"
msgstr ""
-#: mediagoblin/templates/mediagoblin/submit/start.html:30
-msgid "Submit"
-msgstr ""
-
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
#, python-format
msgid "%(username)s's media"
@@ -369,6 +372,31 @@ msgstr ""
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
msgstr ""
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:57
+#, python-format
+msgid "By <a href=\"%(user_url)s\">%(username)s</a> on %(date)s"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
+msgid "Post a comment"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:85
+msgid "at"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
+msgid "Post comment!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:124
+msgid "Edit"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:130
+msgid "Delete"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
msgid "Really delete %(title)s?"
@@ -492,6 +520,10 @@ msgstr ""
msgid "Older"
msgstr ""
+#: mediagoblin/templates/mediagoblin/utils/pagination.html:50
+msgid "Go to page:"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
msgid "Tagged with"
msgstr ""
@@ -509,11 +541,11 @@ msgid "I am sure I want to delete this"
msgstr ""
#: mediagoblin/user_pages/views.py:155
-msgid "Empty comments are not allowed."
+msgid "Oops, your comment was empty."
msgstr ""
#: mediagoblin/user_pages/views.py:161
-msgid "Comment posted!"
+msgid "Your comment has been posted!"
msgstr ""
#: mediagoblin/user_pages/views.py:183
diff --git a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo
index 2ae7c510..c6cf0df9 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 37bd36c1..e195ad70 100644
--- a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po
@@ -9,8 +9,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-11-27 15:25-0600\n"
-"PO-Revision-Date: 2011-11-27 21:28+0000\n"
+"POT-Creation-Date: 2011-12-04 10:24-0600\n"
+"PO-Revision-Date: 2011-12-04 16:23+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"
@@ -101,7 +101,7 @@ msgid "Tags"
msgstr "Taggar"
#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34
-msgid "Seperate tags by commas or spaces."
+msgid "Seperate tags by commas."
msgstr ""
#: mediagoblin/edit/forms.py:33
@@ -153,7 +153,7 @@ msgstr ""
msgid "Profile edited!"
msgstr ""
-#: mediagoblin/media_types/__init__.py:61
+#: mediagoblin/media_types/__init__.py:65
msgid "Could not find any file extension in \"{filename}\""
msgstr ""
@@ -236,7 +236,9 @@ msgid "Hi there, welcome to this MediaGoblin site!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:28
-msgid "Your finest source for all goblin-related media."
+msgid ""
+"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
+"extraordinarily great piece of media hosting software."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:29
@@ -265,6 +267,11 @@ msgstr "Senast medier"
msgid "Enter your new password"
msgstr "Fyll i ditt lösenord"
+#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33
+#: mediagoblin/templates/mediagoblin/submit/start.html:30
+msgid "Submit"
+msgstr "Skicka"
+
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
msgid "Recover password"
msgstr ""
@@ -380,10 +387,6 @@ msgstr ""
msgid "Submit yer media"
msgstr "Ladda upp"
-#: mediagoblin/templates/mediagoblin/submit/start.html:30
-msgid "Submit"
-msgstr "Skicka"
-
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
#, python-format
msgid "%(username)s's media"
@@ -394,6 +397,31 @@ msgstr ""
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/media.html:57
+#, python-format
+msgid "By <a href=\"%(user_url)s\">%(username)s</a> on %(date)s"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
+msgid "Post a comment"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:85
+msgid "at"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
+msgid "Post comment!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:124
+msgid "Edit"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:130
+msgid "Delete"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
msgid "Really delete %(title)s?"
@@ -525,6 +553,10 @@ msgstr "Nyare"
msgid "Older"
msgstr "Äldre"
+#: mediagoblin/templates/mediagoblin/utils/pagination.html:50
+msgid "Go to page:"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
msgid "Tagged with"
msgstr ""
@@ -542,11 +574,11 @@ msgid "I am sure I want to delete this"
msgstr "Jag är säker på att jag vill radera detta"
#: mediagoblin/user_pages/views.py:155
-msgid "Empty comments are not allowed."
+msgid "Oops, your comment was empty."
msgstr ""
#: mediagoblin/user_pages/views.py:161
-msgid "Comment posted!"
+msgid "Your comment has been posted!"
msgstr ""
#: mediagoblin/user_pages/views.py:183
diff --git a/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.mo
index b0d8d3fc..cd9fab9f 100644
--- a/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.mo
+++ b/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.mo
Binary files differ
diff --git a/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.po
index 064fa7d1..f7bbd6ac 100644
--- a/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.po
@@ -8,8 +8,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-11-27 15:25-0600\n"
-"PO-Revision-Date: 2011-11-27 21:28+0000\n"
+"POT-Creation-Date: 2011-12-04 10:24-0600\n"
+"PO-Revision-Date: 2011-12-04 16:23+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
@@ -96,7 +96,7 @@ msgid "Tags"
msgstr ""
#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34
-msgid "Seperate tags by commas or spaces."
+msgid "Seperate tags by commas."
msgstr ""
#: mediagoblin/edit/forms.py:33
@@ -148,7 +148,7 @@ msgstr ""
msgid "Profile edited!"
msgstr ""
-#: mediagoblin/media_types/__init__.py:61
+#: mediagoblin/media_types/__init__.py:65
msgid "Could not find any file extension in \"{filename}\""
msgstr ""
@@ -227,7 +227,9 @@ msgid "Hi there, welcome to this MediaGoblin site!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:28
-msgid "Your finest source for all goblin-related media."
+msgid ""
+"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
+"extraordinarily great piece of media hosting software."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:29
@@ -256,6 +258,11 @@ msgstr ""
msgid "Enter your new password"
msgstr ""
+#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33
+#: mediagoblin/templates/mediagoblin/submit/start.html:30
+msgid "Submit"
+msgstr "దాఖలు చెయ్యి"
+
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
msgid "Recover password"
msgstr ""
@@ -356,10 +363,6 @@ msgstr ""
msgid "Submit yer media"
msgstr ""
-#: mediagoblin/templates/mediagoblin/submit/start.html:30
-msgid "Submit"
-msgstr "దాఖలు చెయ్యి"
-
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
#, python-format
msgid "%(username)s's media"
@@ -370,6 +373,31 @@ msgstr ""
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
msgstr ""
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:57
+#, python-format
+msgid "By <a href=\"%(user_url)s\">%(username)s</a> on %(date)s"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
+msgid "Post a comment"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:85
+msgid "at"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
+msgid "Post comment!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:124
+msgid "Edit"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:130
+msgid "Delete"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
msgid "Really delete %(title)s?"
@@ -493,6 +521,10 @@ msgstr ""
msgid "Older"
msgstr ""
+#: mediagoblin/templates/mediagoblin/utils/pagination.html:50
+msgid "Go to page:"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
msgid "Tagged with"
msgstr ""
@@ -510,11 +542,11 @@ msgid "I am sure I want to delete this"
msgstr ""
#: mediagoblin/user_pages/views.py:155
-msgid "Empty comments are not allowed."
+msgid "Oops, your comment was empty."
msgstr ""
#: mediagoblin/user_pages/views.py:161
-msgid "Comment posted!"
+msgid "Your comment has been posted!"
msgstr ""
#: mediagoblin/user_pages/views.py:183
diff --git a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mo
index e3751aeb..6dda94b7 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 5e406b41..70622590 100644
--- a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po
+++ b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po
@@ -9,8 +9,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-11-27 15:25-0600\n"
-"PO-Revision-Date: 2011-11-27 21:28+0000\n"
+"POT-Creation-Date: 2011-12-04 10:24-0600\n"
+"PO-Revision-Date: 2011-12-04 16:23+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
@@ -58,7 +58,7 @@ msgstr "抱歉, 這個使用者名稱已經存在."
#: mediagoblin/auth/views.py:77
msgid "Sorry, a user with that email address already exists."
-msgstr ""
+msgstr "抱歉,此電子郵件已被註冊了。"
#: mediagoblin/auth/views.py:179
msgid ""
@@ -72,11 +72,11 @@ msgstr "認證碼或是使用者帳號錯誤"
#: mediagoblin/auth/views.py:203
msgid "You must be logged in so we know who to send the email to!"
-msgstr ""
+msgstr "你必須登入,我們才知道信要送給誰!"
#: mediagoblin/auth/views.py:211
msgid "You've already verified your email address!"
-msgstr ""
+msgstr "你的電子郵件已經確認了!"
#: mediagoblin/auth/views.py:224
msgid "Resent your verification email."
@@ -97,7 +97,7 @@ msgid "Tags"
msgstr "標籤"
#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34
-msgid "Seperate tags by commas or spaces."
+msgid "Seperate tags by commas."
msgstr ""
#: mediagoblin/edit/forms.py:33
@@ -123,11 +123,11 @@ msgstr "網站"
#: mediagoblin/edit/forms.py:49
msgid "Old password"
-msgstr ""
+msgstr "舊的密碼"
#: mediagoblin/edit/forms.py:52
msgid "New Password"
-msgstr ""
+msgstr "新的密碼"
#: mediagoblin/edit/views.py:65
msgid "An entry with that slug already exists for this user."
@@ -143,15 +143,15 @@ msgstr "你正在編輯一位用戶的檔案. 請謹慎處理."
#: mediagoblin/edit/views.py:171
msgid "Wrong password"
-msgstr ""
+msgstr "密碼錯誤"
#: mediagoblin/edit/views.py:192
msgid "Profile edited!"
-msgstr ""
+msgstr "個人資料已被編輯了!"
-#: mediagoblin/media_types/__init__.py:61
+#: mediagoblin/media_types/__init__.py:65
msgid "Could not find any file extension in \"{filename}\""
-msgstr ""
+msgstr "找不到任何 \"{filename}\" 的附檔名。"
#: mediagoblin/submit/forms.py:25
msgid "File"
@@ -171,7 +171,7 @@ msgstr "呼呼! 送出去嚕!"
#: mediagoblin/submit/views.py:133
msgid "Invalid file type."
-msgstr ""
+msgstr "不正確的檔案格式"
#: mediagoblin/templates/mediagoblin/404.html:21
msgid "Oops!"
@@ -201,11 +201,11 @@ msgstr "遞交媒體"
#: mediagoblin/templates/mediagoblin/base.html:65
msgid "Verify your email!"
-msgstr ""
+msgstr "確認你的電子郵件"
#: mediagoblin/templates/mediagoblin/base.html:72
msgid "log out"
-msgstr ""
+msgstr "登出"
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/auth/login.html:27
@@ -227,21 +227,23 @@ msgstr "探索"
#: mediagoblin/templates/mediagoblin/root.html:27
msgid "Hi there, welcome to this MediaGoblin site!"
-msgstr ""
+msgstr "嘿!歡迎來到 媒體怪獸(MediaGoblin) 網站"
#: mediagoblin/templates/mediagoblin/root.html:28
-msgid "Your finest source for all goblin-related media."
+msgid ""
+"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
+"extraordinarily great piece of media hosting software."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:29
msgid ""
"To add your own media, place comments, save your favourites and more, you "
"can log in with your MediaGoblin account."
-msgstr ""
+msgstr "你可以用 媒體怪獸 帳號登入,加入你自己的媒體檔案,加入評語,把你的最愛儲存起來。"
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Don't have one yet? It's easy!"
-msgstr ""
+msgstr "還沒有嗎?其實非常簡單!"
#: mediagoblin/templates/mediagoblin/root.html:32
#, python-format
@@ -250,6 +252,9 @@ msgid ""
" or\n"
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
msgstr ""
+"<a class=\"button_action_highlight\" href=\"%(register_url)s\">在這網站建立帳號</a>\n"
+" 或是\n"
+" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">建立一個自己的媒體怪獸(MedaiGoblin)</a>"
#: mediagoblin/templates/mediagoblin/root.html:44
msgid "Most recent media"
@@ -259,13 +264,18 @@ msgstr "最新的媒體"
msgid "Enter your new password"
msgstr "輸入你的新密碼"
+#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33
+#: mediagoblin/templates/mediagoblin/submit/start.html:30
+msgid "Submit"
+msgstr "送出"
+
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
msgid "Recover password"
-msgstr ""
+msgstr "找回密碼"
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30
msgid "Send instructions"
-msgstr ""
+msgstr "送出指示"
#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22
msgid "Your password has been changed. Try to log in now."
@@ -361,30 +371,51 @@ msgstr "編輯 %(username)s'的檔案中"
#: mediagoblin/templates/mediagoblin/listings/tag.html:35
#, python-format
msgid "Media tagged with: %(tag_name)s"
-msgstr ""
+msgstr "此媒體被標識為:%(tag_name)s"
#: mediagoblin/templates/mediagoblin/media_displays/video.html:19
msgid "Original"
-msgstr ""
+msgstr "原始的"
#: mediagoblin/templates/mediagoblin/submit/start.html:26
msgid "Submit yer media"
msgstr "遞交你的媒體檔案"
-#: mediagoblin/templates/mediagoblin/submit/start.html:30
-msgid "Submit"
-msgstr "送出"
-
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
#, python-format
msgid "%(username)s's media"
-msgstr ""
+msgstr "%(username)s的媒體"
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37
#, 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/media.html:57
+#, python-format
+msgid "By <a href=\"%(user_url)s\">%(username)s</a> on %(date)s"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
+msgid "Post a comment"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:85
+msgid "at"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
+msgid "Post comment!"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:124
+msgid "Edit"
+msgstr ""
+
+#: mediagoblin/templates/mediagoblin/user_pages/media.html:130
+msgid "Delete"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
msgid "Really delete %(title)s?"
@@ -508,13 +539,17 @@ msgstr "新一點"
msgid "Older"
msgstr "舊一點"
+#: mediagoblin/templates/mediagoblin/utils/pagination.html:50
+msgid "Go to page:"
+msgstr ""
+
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
msgid "Tagged with"
-msgstr ""
+msgstr "被標籤為"
#: mediagoblin/templates/mediagoblin/utils/tags.html:25
msgid "and"
-msgstr ""
+msgstr "且"
#: mediagoblin/user_pages/forms.py:24
msgid "Comment"
@@ -525,20 +560,20 @@ msgid "I am sure I want to delete this"
msgstr "我確定我想要刪除"
#: mediagoblin/user_pages/views.py:155
-msgid "Empty comments are not allowed."
-msgstr "評論不能空白。"
+msgid "Oops, your comment was empty."
+msgstr ""
#: mediagoblin/user_pages/views.py:161
-msgid "Comment posted!"
-msgstr "評論已經張貼!"
+msgid "Your comment has been posted!"
+msgstr ""
#: mediagoblin/user_pages/views.py:183
msgid "You deleted the media."
-msgstr ""
+msgstr "你已刪除此媒體檔案。"
#: mediagoblin/user_pages/views.py:190
msgid "The media was not deleted because you didn't check that you were sure."
-msgstr ""
+msgstr "此媒體檔案尚未被刪除因為你還沒有確認你真的要刪除。"
#: mediagoblin/user_pages/views.py:198
msgid "You are about to delete another user's media. Proceed with caution."
diff --git a/mediagoblin/listings/views.py b/mediagoblin/listings/views.py
index 5a09de43..6b83ffcf 100644
--- a/mediagoblin/listings/views.py
+++ b/mediagoblin/listings/views.py
@@ -86,7 +86,7 @@ def tag_atom_feed(request):
feed.add(entry.get('title'),
entry.get('description_html'),
content_type='html',
- author=entry.get_uploader()['username'],
+ author=entry.get_uploader().username,
updated=entry.get('created'),
url=entry.url_for_self(request.urlgen))
diff --git a/mediagoblin/meddleware/csrf.py b/mediagoblin/meddleware/csrf.py
index 16541bee..a4e4e5c6 100644
--- a/mediagoblin/meddleware/csrf.py
+++ b/mediagoblin/meddleware/csrf.py
@@ -50,6 +50,9 @@ def render_csrf_form_token(request):
"""Render the CSRF token in a format suitable for inclusion in a
form."""
+ if 'CSRF_TOKEN' not in request.environ:
+ return None
+
form = CsrfForm(csrf_token=request.environ['CSRF_TOKEN'])
return form.csrf_token
diff --git a/mediagoblin/media_types/__init__.py b/mediagoblin/media_types/__init__.py
index 61786562..25f3d255 100644
--- a/mediagoblin/media_types/__init__.py
+++ b/mediagoblin/media_types/__init__.py
@@ -51,6 +51,10 @@ def get_media_manager(_media_type = None):
if media_type in _media_type:
return manager
+ # Nope? Then raise an error
+ raise FileTypeNotSupported(
+ "MediaManager not in enabled types. Check media_types in config?")
+
def get_media_type_and_manager(filename):
for media_type, manager in get_media_managers():
diff --git a/mediagoblin/media_types/video/processing.py b/mediagoblin/media_types/video/processing.py
index 6125e49c..7d261226 100644
--- a/mediagoblin/media_types/video/processing.py
+++ b/mediagoblin/media_types/video/processing.py
@@ -41,6 +41,8 @@ def process_video(entry):
and attaches callbacks to that child process, hopefully, the
entry-complete callback will be called when the video is done.
"""
+ video_config = mgg.global_config['media_type:mediagoblin.media_types.video']
+
workbench = mgg.workbench_manager.create_workbench()
queued_filepath = entry['queued_media_file']
@@ -75,7 +77,7 @@ def process_video(entry):
entry['media_files']['webm_640'] = medium_filepath
# Save the width and height of the transcoded video
- entry['media_data']['video'] = {
+ entry.media_data['video'] = {
u'width': transcoder.dst_data.videowidth,
u'height': transcoder.dst_data.videoheight}
@@ -94,25 +96,24 @@ def process_video(entry):
entry['media_files']['thumb'] = thumbnail_filepath
+ if video_config['keep_original']:
+ # Push original file to public storage
+ queued_file = file(queued_filename, 'rb')
- # Push original file to public storage
- queued_file = file(queued_filename, 'rb')
-
- with queued_file:
- original_filepath = create_pub_filepath(
- entry,
- queued_filepath[-1])
+ with queued_file:
+ original_filepath = create_pub_filepath(
+ entry,
+ queued_filepath[-1])
- with mgg.public_store.get_file(original_filepath, 'wb') as \
- original_file:
- _log.debug('Saving original...')
- original_file.write(queued_file.read())
- _log.debug('Saved original')
+ with mgg.public_store.get_file(original_filepath, 'wb') as \
+ original_file:
+ _log.debug('Saving original...')
+ original_file.write(queued_file.read())
+ _log.debug('Saved original')
- entry['media_files']['original'] = original_filepath
+ entry['media_files']['original'] = original_filepath
mgg.queue_store.delete_file(queued_filepath)
-
# Save the MediaEntry
entry.save()
diff --git a/mediagoblin/processing.py b/mediagoblin/processing.py
index 89c4ac89..7dd5cc7d 100644
--- a/mediagoblin/processing.py
+++ b/mediagoblin/processing.py
@@ -55,8 +55,8 @@ class ProcessMedia(Task):
# Try to process, and handle expected errors.
try:
- #__import__(entry['media_type'])
- manager = get_media_manager(entry['media_type'])
+ #__import__(entry.media_type)
+ manager = get_media_manager(entry.media_type)
manager['processor'](entry)
except BaseProcessingFail, exc:
mark_entry_failed(entry._id, exc)
diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css
index c1239abb..2a78006d 100644
--- a/mediagoblin/static/css/base.css
+++ b/mediagoblin/static/css/base.css
@@ -119,16 +119,17 @@ a.mediagoblin_logo{
/* common website elements */
.button_action, .button_action_highlight {
+ display: inline-block;
color: #c3c3c3;
background-color: #363636;
border: 1px solid;
border-color: #464646 #2B2B2B #252525;
border-radius: 4px;
padding: 3px 8px;
+ font-size: 16px;
text-decoration: none;
font-style: normal;
font-weight: bold;
- font-size: 16px;
cursor: pointer;
}
diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py
index 3def44ce..4e4c7c43 100644
--- a/mediagoblin/submit/views.py
+++ b/mediagoblin/submit/views.py
@@ -55,16 +55,16 @@ def submit_start(request):
# create entry and save in database
entry = request.db.MediaEntry()
entry['_id'] = ObjectId()
- entry['media_type'] = unicode(media_type)
- entry['title'] = (
+ entry.media_type = unicode(media_type)
+ entry.title = (
unicode(request.POST['title'])
or unicode(splitext(filename)[0]))
- entry['description'] = unicode(request.POST.get('description'))
- entry['description_html'] = cleaned_markdown_conversion(
- entry['description'])
+ entry.description = unicode(request.POST.get('description'))
+ entry.description_html = cleaned_markdown_conversion(
+ entry.description)
- entry['uploader'] = request.user['_id']
+ entry.uploader = request.user._id
# Process the user's folksonomy "tags"
entry['tags'] = convert_to_tag_list_of_dicts(
@@ -127,7 +127,7 @@ def submit_start(request):
add_message(request, SUCCESS, _('Woohoo! Submitted!'))
return redirect(request, "mediagoblin.user_pages.user_home",
- user=request.user['username'])
+ user=request.user.username)
except InvalidFileType, exc:
submit_form.file.errors.append(
_(u'Invalid file type.'))
diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html
index 3441365f..b8061f24 100644
--- a/mediagoblin/templates/mediagoblin/base.html
+++ b/mediagoblin/templates/mediagoblin/base.html
@@ -49,7 +49,7 @@
><img src="{{ request.staticdirect('/images/logo.png') }}"
alt="{% trans %}MediaGoblin logo{% endtrans %}" /></a>
{% endblock %}
- {% if request.user and request.user['status'] == 'active' %}
+ {% if request.user and request.user.status == 'active' %}
<a class="button_action"
href="{{ request.urlgen('mediagoblin.submit.start') }}">
{% trans %}Submit media{% endtrans %}
@@ -61,14 +61,14 @@
{# the following link should only appear when verification is needed #}
{% if request.user.status == "needs_email_verification" %}
<a href="{{ request.urlgen('mediagoblin.user_pages.user_home',
- user=request.user['username']) }}"
+ user=request.user.username) }}"
class="button_action_highlight">
{% trans %}Verify your email!{% endtrans %}</a>
{% endif %}
<a href="{{ request.urlgen('mediagoblin.user_pages.user_home',
- user= request.user['username']) }}">
- {{ request.user['username'] }}</a>
+ user= request.user.username) }}">
+ {{ request.user.username }}</a>
(<a href="{{ request.urlgen('mediagoblin.auth.logout') }}">{% trans %}log out{% endtrans %}</a>)
{% else %}
diff --git a/mediagoblin/templates/mediagoblin/edit/edit_profile.html b/mediagoblin/templates/mediagoblin/edit/edit_profile.html
index bf8fe5c1..2d5daa95 100644
--- a/mediagoblin/templates/mediagoblin/edit/edit_profile.html
+++ b/mediagoblin/templates/mediagoblin/edit/edit_profile.html
@@ -22,11 +22,11 @@
{% block mediagoblin_content %}
<form action="{{ request.urlgen('mediagoblin.edit.profile') }}?username={{
- user['username'] }}"
+ user.username }}"
method="POST" enctype="multipart/form-data">
<div class="grid_8 prefix_1 suffix_1 edit_box form_box">
<h1>
- {%- trans username=user['username'] -%}
+ {%- trans username=user.username -%}
Editing {{ username }}'s profile
{%- endtrans %}
</h1>
diff --git a/mediagoblin/templates/mediagoblin/media_displays/video.html b/mediagoblin/templates/mediagoblin/media_displays/video.html
index 5b8ec789..5ef1a782 100644
--- a/mediagoblin/templates/mediagoblin/media_displays/video.html
+++ b/mediagoblin/templates/mediagoblin/media_displays/video.html
@@ -21,5 +21,5 @@
{%- endtrans -%}
</a>
</p>
- {% endif %}
+ {% endif %}
{% endblock %}
diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html
index 25ce9e96..0f769f2f 100644
--- a/mediagoblin/templates/mediagoblin/root.html
+++ b/mediagoblin/templates/mediagoblin/root.html
@@ -25,7 +25,7 @@
{% else %}
<div class="grid_11 alpha">
<h1>{% trans %}Hi there, welcome to this MediaGoblin site!{% endtrans %}</h1>
- <p>{% trans %}Your finest source for all goblin-related media.{% endtrans %}</p>
+ <p>{% trans %}This site is running <a href="http://mediagoblin.org">MediaGoblin</a>, an extraordinarily great piece of media hosting software.{% endtrans %}</p>
<p>{% trans %}To add your own media, place comments, save your favourites and more, you can log in with your MediaGoblin account.{% endtrans %}</p>
{% if allow_registration %}
<p>{% trans %}Don't have one yet? It's easy!{% endtrans %}</p>
diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html
index 1a19443c..5760a68c 100644
--- a/mediagoblin/templates/mediagoblin/user_pages/media.html
+++ b/mediagoblin/templates/mediagoblin/user_pages/media.html
@@ -37,60 +37,69 @@
{% endblock mediagoblin_head %}
{% block mediagoblin_content %}
- {% if media %}
- <div class="grid_11 alpha">
- <div class="media_image_container">
- {% block mediagoblin_media %}
- {% set display_media = request.app.public_store.file_url(
- media.get_display_media(media.media_files)) %}
-
- {# if there's a medium file size, that means the medium size
- # isn't the original... so link to the original!
- #}
- {% if media['media_files'].has_key('medium') %}
- <a href="{{ request.app.public_store.file_url(
- media['media_files']['original']) }}">
- <img class="media_image"
- src="{{ display_media }}"
- alt="Image for {{ media.title }}" />
- </a>
- {% else %}
+ <div class="grid_11 alpha">
+ <div class="media_image_container">
+ {% block mediagoblin_media %}
+ {% set display_media = request.app.public_store.file_url(
+ media.get_display_media(media.media_files)) %}
+ {# if there's a medium file size, that means the medium size
+ # isn't the original... so link to the original!
+ #}
+ {% if media['media_files'].has_key('medium') %}
+ <a href="{{ request.app.public_store.file_url(
+ media['media_files']['original']) }}">
<img class="media_image"
src="{{ display_media }}"
alt="Image for {{ media.title }}" />
+ </a>
+ {% else %}
+ <img class="media_image"
+ src="{{ display_media }}"
+ alt="Image for {{ media.title }}" />
+ {% endif %}
+ {% endblock %}
+ </div>
+ <h2 class="media_title">
+ {{ media.title }}
+ </h2>
+ {% autoescape False %}
+ <p>{{ media.description_html }}</p>
+ {% endautoescape %}
+ <p class="media_specs">
+ {% trans date=media.created.strftime("%Y-%m-%d") -%}
+ Added on {{ date }}. Licensed under an <a href="#">X license</a>.
+ {%- endtrans %}
+ {% if media['uploader'] == request.user._id or
+ request.user['is_admin'] %}
+ {% set edit_url = request.urlgen('mediagoblin.edit.edit_media',
+ user= media.get_uploader().username,
+ media= media._id) %}
+ <a class="button_action" href="{{ edit_url }}">{% trans %}Edit{% endtrans %}</a>
+ {% set delete_url = request.urlgen('mediagoblin.user_pages.media_confirm_delete',
+ user= media.get_uploader().username,
+ media= media._id) %}
+ <a class="button_action" href="{{ delete_url }}">{% trans %}Delete{% endtrans %}</a>
+ {% endif %}
+ </p>
+ <h3>{% trans %}23 comments{% endtrans %}
+ <div class="right_align">
+ <a
+ {% if not request.user %}
+ href="{{ request.urlgen('mediagoblin.auth.login') }}"
{% endif %}
- {% endblock %}
+ class="button_action" id="button_addcomment" title="Add a comment">
+ {% trans %}Add one{% endtrans %}
+ </a>
</div>
-
- <h2 class="media_title">
- {{ media.title }}
- </h2>
- {% autoescape False %}
- <p>{{ media.description_html }}</p>
- {% endautoescape %}
- <p class="media_specs">
- {% trans date=media.created.strftime("%Y-%m-%d") -%}
- Added on {{ date }}. Licensed under an <a href="#">X license</a>.
- {%- endtrans %}
- {% if media['uploader'] == request.user._id or
- request.user['is_admin'] %}
- {% set edit_url = request.urlgen('mediagoblin.edit.edit_media',
- user= media.get_uploader().username,
- media= media._id) %}
- <a class="button_action" href="{{ edit_url }}">{% trans %}Edit{% endtrans %}</a>
- {% set delete_url = request.urlgen('mediagoblin.user_pages.media_confirm_delete',
- user= media.get_uploader().username,
- media= media._id) %}
- <a class="button_action" href="{{ delete_url }}">{% trans %}Delete{% endtrans %}</a>
- {% endif %}
- </p>
- <h3>{% trans %}23 comments{% endtrans %} <div class="right_align"><a {% if not request.user %}href="{{ request.urlgen('mediagoblin.auth.login') }}"{% endif %}class="button_action" id="button_addcomment" title="Add a comment">{% trans %}Add one{% endtrans %}</a></div></h3>
- {# 0 comments. Be the first to add one! #}
+ </h3>
+ {# 0 comments. Be the first to add one! #}
{% if request.user %}
<form action="{{ request.urlgen('mediagoblin.user_pages.media_post_comment',
user= media.get_uploader().username,
media=media._id) }}" method="POST" id="form_comment">
- <p>{% trans %}Type your comment here. You can use <a href="http://daringfireball.net/projects/markdown/basics" target="_blank">Markdown</a> for formatting.{% endtrans %}</p>
+ <p>
+ {% trans %}Type your comment here. You can use <a href="http://daringfireball.net/projects/markdown/basics" target="_blank">Markdown</a> for formatting.{% endtrans %}
+ </p>
{{ wtforms_util.render_divs(comment_form) }}
<div class="form_submit_buttons">
<input type="submit" value="{% trans %}Add this comment{% endtrans %}" class="button_action" />
@@ -101,75 +110,68 @@
{% if comments %}
{% for comment in comments %}
{% set comment_author = comment.author() %}
- {% if pagination.active_id == comment._id %}
+ {% if pagination.active_id == comment._id %}
<div class="comment_wrapper comment_active" id="comment-{{ comment._id }}">
- <a name="comment" id="comment"></a>
+ <a name="comment" id="comment"></a>
{% else %}
<div class="comment_wrapper" id="comment-{{ comment._id }}">
- {% endif %}
-
- <div class="comment_content">{% autoescape False %}{{ comment.content_html }}
- {% endautoescape %}
- <img src="{{ request.staticdirect('/images/icon_comment.png') }}" />
- <a href="{{ request.urlgen('mediagoblin.user_pages.user_home',
- user = comment_author['username']) }}">
- {{ comment_author['username'] }}</a>
- {% trans %}at{% endtrans %}
- <a href="{{ request.urlgen('mediagoblin.user_pages.media_home.view_comment',
- comment = comment._id,
- user = media.get_uploader().username,
- media = media._id) }}#comment">
- {{ comment.created.strftime("%I:%M%p %Y-%m-%d") }}
- </a>
- </div>
- </div>
+ {% endif %}
+ <div class="comment_content">
+ {% autoescape False %}
+ {{ comment.content_html }}
+ {% endautoescape %}
+ <img src="{{ request.staticdirect('/images/icon_comment.png') }}" />
+ <a href="{{ request.urlgen('mediagoblin.user_pages.user_home',
+ user = comment_author.username) }}">
+ {{ comment_author.username }}
+ </a>
+ {% trans %}at{% endtrans %}
+ <a href="{{ request.urlgen('mediagoblin.user_pages.media_home.view_comment',
+ comment = comment._id,
+ user = media.get_uploader().username,
+ media = media.slug) }}#comment">
+ {{ comment.created.strftime("%I:%M%p %Y-%m-%d") }}
+ </a>
+ </div>
+ </div>
{% endfor %}
-
- {{ render_pagination(request, pagination,
- request.urlgen('mediagoblin.user_pages.media_home',
- user = media.get_uploader().username,
- media = media._id)) }}
- </div>
+ {{ render_pagination(request, pagination,
+ request.urlgen('mediagoblin.user_pages.media_home',
+ user = media.get_uploader().username,
+ media = media._id)) }}
{% endif %}
-
- <div class="grid_5 omega">
- {% trans user_url=request.urlgen(
- 'mediagoblin.user_pages.user_home',
- user=media.get_uploader().username),
- username=media.get_uploader().username -%}
+ </div>
+ <div class="grid_5 omega">
+ {% trans user_url=request.urlgen(
+ 'mediagoblin.user_pages.user_home',
+ user=media.get_uploader().username),
+ username=media.get_uploader().username -%}
<p>❖ Browsing media by <a href="{{ user_url }}">{{ username }}</a></p>
- {%- endtrans %}
-
- {% include "mediagoblin/utils/prev_next.html" %}
-
- {% if media.attachment_files|count %}
- <h3>Attachments</h3>
- <ul>
- {% for attachment in media.attachment_files %}
- <li>
- <a href="{{ request.app.public_store.file_url(attachment.filepath) }}">
- {{ attachment.name }}
- </a>
- </li>
- {% endfor %}
- </ul>
- {% endif %}
-
- {% if app_config['allow_attachments']
- and (media['uploader'] == request.user._id
- or request.user['is_admin']) %}
- <p>
- <a href="{{ request.urlgen('mediagoblin.edit.attachments',
- user=media.get_uploader().username,
- media=media._id) }}">Add attachment</a>
- </p>
- {% endif %}
-
- {% if media.tags %}
- {% include "mediagoblin/utils/tags.html" %}
- {% endif %}
- </div>
- {% else %}
- <p>{% trans %}Sorry, no such media found.{% endtrans %}<p/>
- {% endif %}
+ {%- endtrans %}
+ {% include "mediagoblin/utils/prev_next.html" %}
+ {% if media.attachment_files|count %}
+ <h3>Attachments</h3>
+ <ul>
+ {% for attachment in media.attachment_files %}
+ <li>
+ <a href="{{ request.app.public_store.file_url(attachment.filepath) }}">
+ {{ attachment.name }}
+ </a>
+ </li>
+ {% endfor %}
+ </ul>
+ {% endif %}
+ {% if app_config['allow_attachments']
+ and (media.uploader == request.user._id
+ or request.user.is_admin) %}
+ <p>
+ <a href="{{ request.urlgen('mediagoblin.edit.attachments',
+ user=media.get_uploader().username,
+ media=media._id) }}">Add attachment</a>
+ </p>
+ {% endif %}
+ {% if media.tags %}
+ {% include "mediagoblin/utils/tags.html" %}
+ {% endif %}
+ </div>
{% endblock %}
diff --git a/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html
index 058351a5..7c7218ae 100644
--- a/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html
+++ b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html
@@ -27,7 +27,7 @@
method="POST" enctype="multipart/form-data">
<div class="grid_8 prefix_1 suffix_1 edit_box form_box">
<h1>
- {%- trans title=media['title'] -%}
+ {%- trans title=media.title -%}
Really delete {{ title }}?
{%- endtrans %}
</h1>
diff --git a/mediagoblin/templates/mediagoblin/user_pages/processing_panel.html b/mediagoblin/templates/mediagoblin/user_pages/processing_panel.html
index 9b4adeb5..a14b0123 100644
--- a/mediagoblin/templates/mediagoblin/user_pages/processing_panel.html
+++ b/mediagoblin/templates/mediagoblin/user_pages/processing_panel.html
@@ -36,8 +36,8 @@
</tr>
{% for media_entry in processing_entries %}
<tr>
- <td>{{ media_entry['title'] }}</td>
- <td>{{ media_entry['created'].strftime("%m-%d-%Y %I:%M %p") }}</td>
+ <td>{{ media_entry.title }}</td>
+ <td>{{ media_entry.created.strftime("%m-%d-%Y %I:%M %p") }}</td>
<td></td>
</tr>
{% endfor %}
@@ -57,7 +57,7 @@
</tr>
{% for media_entry in failed_entries %}
<tr>
- <td>{{ media_entry['title'] }}</td>
+ <td>{{ media_entry.title }}</td>
<td>{{ media_entry['created'].strftime("%m-%d-%Y %I:%M %p") }}</td>
<td>{{ media_entry.get_fail_exception().general_message }}</td>
</tr>
diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html
index 5a39aaa5..b952e88c 100644
--- a/mediagoblin/templates/mediagoblin/user_pages/user.html
+++ b/mediagoblin/templates/mediagoblin/user_pages/user.html
@@ -89,7 +89,7 @@
{%- trans username=user.username %}{{ username }}'s profile{% endtrans -%}
</h1>
- {% if not user['url'] and not user['bio'] %}
+ {% if not user.url and not user.bio %}
{% if request.user._id == user._id %}
<div class="grid_6 alpha empty_space">
<p>
@@ -113,7 +113,7 @@
{% else %}
<div class="grid_6 alpha">
{% include "mediagoblin/utils/profile.html" %}
- {% if request.user._id == user._id or request.user['is_admin'] %}
+ {% if request.user._id == user._id or request.user.is_admin %}
<a href="{{ request.urlgen('mediagoblin.edit.profile') }}?username={{
user.username }}">
{%- trans %}Edit profile{% endtrans -%}
diff --git a/mediagoblin/templates/mediagoblin/utils/object_gallery.html b/mediagoblin/templates/mediagoblin/utils/object_gallery.html
index e1b8cc9b..65ff09a4 100644
--- a/mediagoblin/templates/mediagoblin/utils/object_gallery.html
+++ b/mediagoblin/templates/mediagoblin/utils/object_gallery.html
@@ -33,9 +33,9 @@
<img src="{{ request.app.public_store.file_url(
entry['media_files']['thumb']) }}" />
</a>
- {% if entry['title'] %}
+ {% if entry.title %}
<br />
- <a href="{{ entry_url }}">{{ entry['title'] }}</a>
+ <a href="{{ entry_url }}">{{ entry.title }}</a>
{% endif %}
</td>
{% endfor %}
diff --git a/mediagoblin/templates/mediagoblin/utils/prev_next.html b/mediagoblin/templates/mediagoblin/utils/prev_next.html
index 3363891b..b0c01963 100644
--- a/mediagoblin/templates/mediagoblin/utils/prev_next.html
+++ b/mediagoblin/templates/mediagoblin/utils/prev_next.html
@@ -25,23 +25,23 @@
{# 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 }}">
- &larr; newer
+ &larr; {% trans %}newer{% endtrans %}
</a>
{% else %}
{# This is the first entry. display greyed-out 'previous' image #}
<p class="navigation_button navigation_left">
- &larr; newer
+ &larr; {% trans %}newer{% endtrans %}
</p>
{% endif %}
{# Likewise, this could be the very last media entry #}
{% if next_entry_url %}
<a class="navigation_button" href="{{ next_entry_url }}">
- older &rarr;
+ {% trans %}older{% endtrans %} &rarr;
</a>
{% else %}
{# This is the last entry. display greyed-out 'next' image #}
<p class="navigation_button">
- older &rarr;
+ {% trans %}older{% endtrans %} &rarr;
</p>
{% endif %}
</div>
diff --git a/mediagoblin/tests/test_auth.py b/mediagoblin/tests/test_auth.py
index ee085761..d3b8caf1 100644
--- a/mediagoblin/tests/test_auth.py
+++ b/mediagoblin/tests/test_auth.py
@@ -20,7 +20,7 @@ import datetime
from nose.tools import assert_equal
from mediagoblin.auth import lib as auth_lib
-from mediagoblin.tests.tools import setup_fresh_app
+from mediagoblin.tests.tools import setup_fresh_app, fixture_add_user
from mediagoblin import mg_globals
from mediagoblin.tools import template, mail
@@ -162,8 +162,8 @@ def test_register_views(test_app):
new_user = mg_globals.database.User.find_one(
{'username': 'happygirl'})
assert new_user
- assert new_user['status'] == u'needs_email_verification'
- assert new_user['email_verified'] == False
+ assert new_user.status == u'needs_email_verification'
+ assert new_user.email_verified == False
## Make sure user is logged in
request = template.TEMPLATE_TEST_CONTEXT[
@@ -187,7 +187,7 @@ def test_register_views(test_app):
assert parsed_get_params['userid'] == [
unicode(new_user._id)]
assert parsed_get_params['token'] == [
- new_user['verification_key']]
+ new_user.verification_key]
## Try verifying with bs verification key, shouldn't work
template.clear_test_template_context()
@@ -202,8 +202,8 @@ def test_register_views(test_app):
new_user = mg_globals.database.User.find_one(
{'username': 'happygirl'})
assert new_user
- assert new_user['status'] == u'needs_email_verification'
- assert new_user['email_verified'] == False
+ assert new_user.status == u'needs_email_verification'
+ assert new_user.email_verified == False
## Verify the email activation works
template.clear_test_template_context()
@@ -216,8 +216,8 @@ def test_register_views(test_app):
new_user = mg_globals.database.User.find_one(
{'username': 'happygirl'})
assert new_user
- assert new_user['status'] == u'active'
- assert new_user['email_verified'] == True
+ assert new_user.status == u'active'
+ assert new_user.email_verified == True
# Uniqueness checks
# -----------------
@@ -270,11 +270,11 @@ def test_register_views(test_app):
# user should have matching parameters
new_user = mg_globals.database.User.find_one({'username': 'happygirl'})
assert parsed_get_params['userid'] == [unicode(new_user._id)]
- assert parsed_get_params['token'] == [new_user['fp_verification_key']]
+ assert parsed_get_params['token'] == [new_user.fp_verification_key]
### The forgotten password token should be set to expire in ~ 10 days
# A few ticks have expired so there are only 9 full days left...
- assert (new_user['fp_token_expire'] - datetime.datetime.now()).days == 9
+ assert (new_user.fp_token_expire - datetime.datetime.now()).days == 9
## Try using a bs password-changing verification key, shouldn't work
template.clear_test_template_context()
@@ -285,12 +285,12 @@ def test_register_views(test_app):
## Try using an expired token to change password, shouldn't work
template.clear_test_template_context()
- real_token_expiration = new_user['fp_token_expire']
- new_user['fp_token_expire'] = datetime.datetime.now()
+ real_token_expiration = new_user.fp_token_expire
+ new_user.fp_token_expire = datetime.datetime.now()
new_user.save()
response = test_app.get("%s?%s" % (path, get_params), status=404)
assert_equal(response.status, '404 Not Found')
- new_user['fp_token_expire'] = real_token_expiration
+ new_user.fp_token_expire = real_token_expiration
new_user.save()
## Verify step 1 of password-change works -- can see form to change password
@@ -332,11 +332,7 @@ def test_authentication_views(test_app):
Test logging in and logging out
"""
# Make a new user
- test_user = mg_globals.database.User()
- test_user['username'] = u'chris'
- test_user['email'] = u'chris@example.com'
- test_user['pw_hash'] = auth_lib.bcrypt_gen_password_hash('toast')
- test_user.save()
+ test_user = fixture_add_user(active_user=False)
# Get login
# ---------
diff --git a/mediagoblin/tests/test_edit.py b/mediagoblin/tests/test_edit.py
index 3637b046..0cf71e9b 100644
--- a/mediagoblin/tests/test_edit.py
+++ b/mediagoblin/tests/test_edit.py
@@ -15,23 +15,16 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from mediagoblin import mg_globals
-from mediagoblin.tests.tools import setup_fresh_app
+from mediagoblin.tests.tools import setup_fresh_app, fixture_add_user
from mediagoblin.tools import template
-from mediagoblin.auth.lib import bcrypt_check_password, \
- bcrypt_gen_password_hash
+from mediagoblin.auth.lib import bcrypt_check_password
@setup_fresh_app
def test_change_password(test_app):
"""Test changing password correctly and incorrectly"""
# set up new user
- test_user = mg_globals.database.User()
- test_user['username'] = u'chris'
- test_user['email'] = u'chris@example.com'
- test_user['email_verified'] = True
- test_user['status'] = u'active'
- test_user['pw_hash'] = bcrypt_gen_password_hash('toast')
- test_user.save()
+ test_user = fixture_add_user()
test_app.post(
'/auth/login/', {
@@ -51,7 +44,7 @@ def test_change_password(test_app):
# test_user has to be fetched again in order to have the current values
test_user = mg_globals.database.User.one({'username': 'chris'})
- assert bcrypt_check_password('123456', test_user['pw_hash'])
+ assert bcrypt_check_password('123456', test_user.pw_hash)
# test that the password cannot be changed if the given old_password
# is wrong
@@ -66,20 +59,14 @@ def test_change_password(test_app):
test_user = mg_globals.database.User.one({'username': 'chris'})
- assert not bcrypt_check_password('098765', test_user['pw_hash'])
+ assert not bcrypt_check_password('098765', test_user.pw_hash)
@setup_fresh_app
def change_bio_url(test_app):
"""Test changing bio and URL"""
# set up new user
- test_user = mg_globals.database.User()
- test_user['username'] = u'chris'
- test_user['email'] = u'chris@example.com'
- test_user['email_verified'] = True
- test_user['status'] = u'active'
- test_user['pw_hash'] = bcrypt_gen_password_hash('toast')
- test_user.save()
+ test_user = fixture_add_user()
# test changing the bio and the URL properly
test_app.post(
@@ -89,8 +76,8 @@ def change_bio_url(test_app):
test_user = mg_globals.database.User.one({'username': 'chris'})
- assert test_user['bio'] == u'I love toast!'
- assert test_user['url'] == u'http://dustycloud.org/'
+ assert test_user.bio == u'I love toast!'
+ assert test_user.url == u'http://dustycloud.org/'
# test changing the bio and the URL inproperly
too_long_bio = 150 * 'T' + 150 * 'o' + 150 * 'a' + 150 * 's' + 150* 't'
diff --git a/mediagoblin/tests/test_mgoblin_app.ini b/mediagoblin/tests/test_mgoblin_app.ini
index f979e810..2525a4f9 100644
--- a/mediagoblin/tests/test_mgoblin_app.ini
+++ b/mediagoblin/tests/test_mgoblin_app.ini
@@ -5,7 +5,6 @@ email_debug_mode = true
db_name = __mediagoblin_tests__
# tag parsing
-tags_delimiter = ","
tags_max_length = 50
# Celery shouldn't be set up by the application as it's setup via
diff --git a/mediagoblin/tests/test_misc.py b/mediagoblin/tests/test_misc.py
new file mode 100644
index 00000000..09623355
--- /dev/null
+++ b/mediagoblin/tests/test_misc.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/>.
+
+from nose.tools import assert_equal
+
+from mediagoblin.tests.tools import setup_fresh_app
+
+
+@setup_fresh_app
+def test_404_for_non_existent(test_app):
+ assert_equal(test_app.get('/does-not-exist/',
+ expect_errors=True).status_int,
+ 404)
diff --git a/mediagoblin/tests/test_submission.py b/mediagoblin/tests/test_submission.py
index eea5747f..7c372745 100644
--- a/mediagoblin/tests/test_submission.py
+++ b/mediagoblin/tests/test_submission.py
@@ -19,8 +19,8 @@ import pkg_resources
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
+from mediagoblin.tests.tools import setup_fresh_app, get_test_app, \
+ fixture_add_user
from mediagoblin import mg_globals
from mediagoblin.tools import template, common
@@ -45,13 +45,7 @@ class TestSubmission:
# TODO: Possibly abstract into a decorator like:
# @as_authenticated_user('chris')
- test_user = mg_globals.database.User()
- test_user['username'] = u'chris'
- test_user['email'] = u'chris@example.com'
- test_user['email_verified'] = True
- test_user['status'] = u'active'
- test_user['pw_hash'] = auth_lib.bcrypt_gen_password_hash('toast')
- test_user.save()
+ test_user = fixture_add_user()
self.test_user = test_user
@@ -176,7 +170,7 @@ class TestSubmission:
response = self.test_app.post(
request.urlgen('mediagoblin.user_pages.media_confirm_delete',
# No work: user=media.uploader().username,
- user=self.test_user['username'],
+ user=self.test_user.username,
media=media._id),
# no value means no confirm
{})
@@ -196,7 +190,7 @@ class TestSubmission:
response = self.test_app.post(
request.urlgen('mediagoblin.user_pages.media_confirm_delete',
# No work: user=media.uploader().username,
- user=self.test_user['username'],
+ user=self.test_user.username,
media=media._id),
{'confirm': 'y'})
diff --git a/mediagoblin/tests/test_tags.py b/mediagoblin/tests/test_tags.py
index a05831c9..583c1a55 100644
--- a/mediagoblin/tests/test_tags.py
+++ b/mediagoblin/tests/test_tags.py
@@ -39,11 +39,4 @@ def test_list_of_dicts_conversion(test_app):
# Make sure converting the list of dicts to a string works
assert text.media_tags_as_string([{'name': u'yin', 'slug': u'yin'},
{'name': u'yang', 'slug': u'yang'}]) == \
- u'yin,yang'
-
- # If the tag delimiter is a space then we expect different results
- mg_globals.app_config['tags_delimiter'] = u' '
- assert text.convert_to_tag_list_of_dicts('unicorn ceramic nazi') == [
- {'name': u'unicorn', 'slug': u'unicorn'},
- {'name': u'ceramic', 'slug': u'ceramic'},
- {'name': u'nazi', 'slug': u'nazi'}]
+ u'yin, yang'
diff --git a/mediagoblin/tests/test_tests.py b/mediagoblin/tests/test_tests.py
index bc5f9a8d..25bb52b3 100644
--- a/mediagoblin/tests/test_tests.py
+++ b/mediagoblin/tests/test_tests.py
@@ -27,9 +27,9 @@ def test_get_test_app_wipes_db():
assert mg_globals.database.User.find().count() == 0
new_user = mg_globals.database.User()
- new_user['username'] = u'lolcat'
- new_user['email'] = u'lol@cats.example.org'
- new_user['pw_hash'] = u'pretend_this_is_a_hash'
+ new_user.username = u'lolcat'
+ new_user.email = u'lol@cats.example.org'
+ new_user.pw_hash = u'pretend_this_is_a_hash'
new_user.save()
assert mg_globals.database.User.find().count() == 1
diff --git a/mediagoblin/tests/tools.py b/mediagoblin/tests/tools.py
index 01813e96..49a3d33e 100644
--- a/mediagoblin/tests/tools.py
+++ b/mediagoblin/tests/tools.py
@@ -27,6 +27,7 @@ from mediagoblin.init.config import read_mediagoblin_config
from mediagoblin.decorators import _make_safe
from mediagoblin.db.open import setup_connection_and_db_from_config
from mediagoblin.meddleware import BaseMeddleware
+from mediagoblin.auth.lib import bcrypt_gen_password_hash
MEDIAGOBLIN_TEST_DB_NAME = u'__mediagoblin_tests__'
@@ -200,3 +201,19 @@ def assert_db_meets_expected(db, expected):
document = collection.find_one({'_id': expected_document['_id']})
assert document is not None # make sure it exists
assert document == expected_document # make sure it matches
+
+
+def fixture_add_user(username = u'chris', password = 'toast',
+ active_user = True):
+ test_user = mg_globals.database.User()
+ test_user.username = username
+ test_user.email = username + u'@example.com'
+ if password is not None:
+ test_user.pw_hash = bcrypt_gen_password_hash(password)
+ if active_user:
+ test_user.email_verified = True
+ test_user.status = u'active'
+
+ test_user.save()
+
+ return test_user
diff --git a/mediagoblin/tools/template.py b/mediagoblin/tools/template.py
index f48b7c2e..d0400347 100644
--- a/mediagoblin/tools/template.py
+++ b/mediagoblin/tools/template.py
@@ -79,7 +79,9 @@ def render_template(request, template_path, context):
template = request.template_env.get_template(
template_path)
context['request'] = request
- context['csrf_token'] = render_csrf_form_token(request)
+ rendered_csrf_token = render_csrf_form_token(request)
+ if rendered_csrf_token is not None:
+ context['csrf_token'] = render_csrf_form_token(request)
rendered = template.render(context)
if common.TESTS_ENABLED:
diff --git a/mediagoblin/tools/text.py b/mediagoblin/tools/text.py
index be1adb00..d576224d 100644
--- a/mediagoblin/tools/text.py
+++ b/mediagoblin/tools/text.py
@@ -43,6 +43,7 @@ HTML_CLEANER = Cleaner(
host_whitelist=(),
whitelist_tags=set([]))
+TAGS_DELIMITER=',';
def clean_html(html):
# clean_html barfs on an empty string
@@ -67,7 +68,7 @@ def convert_to_tag_list_of_dicts(tag_string):
# Split the tag string into a list of tags
for tag in stripped_tag_string.split(
- mg_globals.app_config['tags_delimiter']):
+ TAGS_DELIMITER):
# Ignore empty or duplicate tags
if tag.strip() and tag.strip() not in [t['name'] for t in taglist]:
@@ -85,7 +86,7 @@ def media_tags_as_string(media_entry_tags):
"""
media_tag_string = ''
if media_entry_tags:
- media_tag_string = mg_globals.app_config['tags_delimiter'].join(
+ media_tag_string = (TAGS_DELIMITER+u' ').join(
[tag['name'] for tag in media_entry_tags])
return media_tag_string
diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py
index 3d9735f7..87b82c74 100644
--- a/mediagoblin/user_pages/views.py
+++ b/mediagoblin/user_pages/views.py
@@ -40,7 +40,7 @@ def user_home(request, page):
'username': request.matchdict['user']})
if not user:
return render_404(request)
- elif user['status'] != u'active':
+ elif user.status != u'active':
return render_to_response(
request,
'mediagoblin/user_pages/user.html',
@@ -59,7 +59,7 @@ def user_home(request, page):
user_gallery_url = request.urlgen(
'mediagoblin.user_pages.user_gallery',
- user=user['username'])
+ user=user.username)
return render_to_response(
request,
@@ -122,7 +122,7 @@ def media_home(request, media, page, **kwargs):
comment_form = user_forms.MediaCommentForm(request.POST)
- media_template_name = get_media_manager(media['media_type'])['display_template']
+ media_template_name = get_media_manager(media.media_type)['display_template']
return render_to_response(
request,
@@ -152,13 +152,13 @@ def media_post_comment(request, media):
messages.add_message(
request,
messages.ERROR,
- _("Empty comments are not allowed."))
+ _("Oops, your comment was empty."))
else:
comment.save()
messages.add_message(
request, messages.SUCCESS,
- _('Comment posted!'))
+ _('Your comment has been posted!'))
return exc.HTTPFound(
location=media.url_for_self(request.urlgen))
@@ -173,7 +173,7 @@ def media_confirm_delete(request, media):
if request.method == 'POST' and form.validate():
if form.confirm.data is True:
- username = media.get_uploader()['username']
+ username = media.get_uploader().username
# Delete all files on the public storage
delete_media_files(media)
@@ -191,7 +191,7 @@ def media_confirm_delete(request, media):
return exc.HTTPFound(
location=media.url_for_self(request.urlgen))
- if ((request.user[u'is_admin'] and
+ if ((request.user.is_admin and
request.user._id != media.get_uploader()._id)):
messages.add_message(
request, messages.WARNING,
@@ -254,7 +254,7 @@ def processing_panel(request):
# Make sure the user exists and is active
if not user:
return render_404(request)
- elif user['status'] != u'active':
+ elif user.status != u'active':
return render_to_response(
request,
'mediagoblin/user_pages/user.html',