diff --git a/.gitignore b/.gitignore index 5f16bd74..9e8d958a 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,8 @@ bin/ develop-eggs/ build/ eggs/ +lib/ +include/ parts/ .installed.cfg mediagoblin.egg-info diff --git a/AUTHORS b/AUTHORS index c9fc5c8e..76e16b86 100644 --- a/AUTHORS +++ b/AUTHORS @@ -13,6 +13,7 @@ Thank you! * Alex Camelio * Bernhard Keller * Caleb Forbes Davis V +* Corey Farwell * Chris Moylan * Christopher Allan Webber * Daniel Neel @@ -27,6 +28,7 @@ Thank you! * Nathan Yergler * Odin Hørthe Omdal * Osama Khalid +* Pablo J. Urbano Santos * Rasmus Larsson * Sam Kleinman * Sebastian Spaeth diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 00000000..b1f93dba --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,5 @@ +recursive-include mediagoblin/templates *.html +recursive-include mediagoblin/static *.js *.css *.png *.svg +recursive-include mediagoblin/tests *.ini +recursive-include docs *.rst *.html + diff --git a/docs/source/conf.py b/docs/source/conf.py index 7ea3a340..eee9900f 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -48,9 +48,9 @@ copyright = u'2011, Free Software Foundation, Inc and contributors' # built documents. # # The short X.Y version. -version = '0.0.5' +version = '0.1.0' # The full version, including alpha/beta/rc tags. -release = '0.0.5' +release = '0.1.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/docs/source/configuration.rst b/docs/source/configuration.rst new file mode 100644 index 00000000..093f492c --- /dev/null +++ b/docs/source/configuration.rst @@ -0,0 +1,105 @@ +.. _configuration-chapter: + +======================== +Configuring MediaGoblin +======================== + +So! You've got MediaGoblin up and running, but you need to adjust +some configuration parameters. Well you've come to the right place! + +MediaGoblin's config files +========================== + +When configuring MediaGoblin, there are two files you might want to +make local modified versions of, and one extra file that might be +helpful to look at. Let's examine these. + +mediagoblin.ini + This is the config file for MediaGoblin, the application. If you want to + tweak settings for MediaGoblin, you'll usually tweak them here. + +paste.ini + This is primarily a server configuration file, on the python side + (specifically, on the wsgi side, via `paste deploy + `_ / `paste script + `_). It also sets up some + middleware that you can mostly ignore, except to configure + sessions... more on that later. If you are adding a different + python server other than fastcgi / plain http, you might configure + it here. You probably won't need to change this file very much. + + +There's one more file that you certainly won't change unless you're +making coding contributions to mediagoblin, but which can be useful to +read and reference: + +mediagoblin/config_spec.ini + This file is actually a specification for mediagoblin.ini itself, as + a config file! It defines types and defaults. Sometimes it's a + good place to look for documentation... or to find that hidden + option that we didn't tell you about. :) + + +Making local copies +=================== + +Let's assume you're doing the virtualenv setup described elsewhere in this +manual, and you need to make local tweaks to the config files. How do you do +that? Let's see. + +To make changes to mediagoblin.ini: + + cp mediagoblin.ini mediagoblin_local.ini + +To make changes to paste.ini: + cp paste.ini paste_local.ini + +From here you should be able to make direct adjustments to the files, +and most of the commands described elsewhere in this manual will "notice" +your local config files and use those instead of the non-local version. + +(Note that all commands provide a way to pass in a specific config +file also, usually by a -cf flag.) + +Common changes +============== + +Enabling email notifications +---------------------------- + +You'll almost certainly want to enable sending emails. By default, +MediaGoblin doesn't really do this... for the sake of developer +convenience, it runs in "email debug mode". Change this: + + email_debug_mode = false + +You can (and should) change the "from" email address by setting +``email_sender_address``. + +Note that you need a mailer daemon running for this to work. + +If you have more custom SMTP settings, you also have the following +options at your disposal, which are all optional, and do exactly what +they sound like. + + - email_smtp_host + - email_smtp_port + - email_smtp_user + - email_smtp_pass + +All other configuration changes +------------------------------- + +To be perfectly honest, there are quite a few options and I'm not +going to be able to get to documanting them all in time for 0.1.0. + +So here's a cop-out section saying that if you get into trouble, hop +onto IRC and we'll help you out: + + #mediagoblin on irc.freenode.net + +Celery +====== + +We should point to another celery-specific section of the document +actually :) diff --git a/docs/source/deploying.rst b/docs/source/deploying.rst index db92257a..b944a3d3 100644 --- a/docs/source/deploying.rst +++ b/docs/source/deploying.rst @@ -1,16 +1,264 @@ -.. _deployment-chapter: +===================== +Deploying MediaGoblin +===================== -======================= - Deploying MediaGoblin -======================= +GNU MediaGoblin is fairly new and so at the time of writing, there +aren't easy package-manager-friendly methods to install MediaGoblin. +However, doing a basic install isn't too complex in and of itself. -Step 1: Write code that can be deployed. +There's an almost infinite way to deploy things... for now, we'll keep +it simple with some assumptions and use a setup that combines +mediagoblin + virtualenv + fastcgi + nginx on a .deb or .rpm based +GNU/Linux distro. -Step 2: ? +Note: these tools are for administrators wanting to deploy a fresh +install. If instead you want to join in as a contributor, see our +`Hacking HOWTO `_ instead. -Step 3: Write the deployment guide and profit! +Prepare System +-------------- -But seriously, this is a stub since we're not quite there (yet) but if -you want to see where we are now, you can try to run the latest -development version by following the instructions on -`the wiki `_. +Dependencies +~~~~~~~~~~~~ + +MediaGoblin has the following core dependencies: + +- Python 2.6 or 2.7 +- `python-lxml `_ +- `git `_ +- `MongoDB `_ +- `Python Imaging Library `_ (PIL) +- `virtualenv `_ + +On a DEB-based system (e.g Debian, gNewSense, Trisquel, Ubuntu, and +derivatives) issue the following command: :: + + sudo apt-get install mongodb git-core python python-dev python-lxml python-imaging python-virtualenv + +On a RPM-based system (e.g. Fedora, RedHat, and derivatives) issue the +following command: :: + + yum install mongodb-server python-paste-deploy python-paste-script git-core python python-devel python-lxml python-imaging python-virtualenv + +Configure MongoDB +~~~~~~~~~~~~~~~~~ + +After installing MongoDB some preliminary database configuration may +be necessary. + +Ensure that MongoDB `journaling `_ +is enabled. Journaling is enabled by default in version 2.0 and later +64-bit MongoDB instances. Check your deployment, and consider enabling +journaling if you're running 32-bit systems or earlier version. + +.. warning:: + + Running MongoDB without journaling risks general data corruption + and raises the possibility of losing data within a 60-second + window when the server restarts. + + MediaGoblin recommends enabling MongoDB's journaling feature by + adding a ``--journal`` flag to the command line or a "``journal: + true``" option to the configuration file. + +MongoDB can take a lot of space by default. If you're planning on +running a smaller instance, consider the `scaling down guide +`_ for some appropriate +tradeoffs to conserve space. + +Drop Privileges for MediaGoblin +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +As MediaGoblin does not require special permissions or elevated +access, you should run MediaGoblin under an existing non-root user or +preferably create a dedicated user for the purpose of running +MediaGoblin. Consult your distribution's documentation on how to +create "system account" or dedicated service user. Ensure that it is +not possible to log in to your system with as this user. + +You should create a working directory for MediaGoblin. This document +assumes your local git repository will be located at ``/srv/mediagoblin.example.org/mediagoblin/`` +for this documentation. Substitute your prefer ed local deployment path +as needed. + +This document assumes that all operations are performed as this +user. To drop privileges to this user, run the following command: :: + + + su - [mediagoblin]`` + +Where, "``[mediagoblin]`` is the username of the system user that will +run MediaGoblin. + +Install MediaGoblin and Virtualenv +---------------------------------- + +As of |version|, MediaGoblin has a rapid development pace. As a result +the following instructions recommend installing from the ``master`` +branch of the git repository. Eventually production deployments will +want to transition to running from more consistent releases. + +Issue the following commands, to create and change the working +directory. Modify these commands to reflect your own environment: :: + + mkdir -p /srv/mediagoblin.example.org/ + cd /srv/mediagoblin.example.org/ + +Clone the MediaGoblin repository: :: + + git clone git://gitorious.org/mediagoblin/mediagoblin.git + +And setup the in-package virtualenv: :: + + cd mediagoblin + virtualenv . && ./bin/python setup.py develop + +.. note:: + + If you have problems here, consider trying to install virtualenv + with the ``--distribute`` or ``--no-site-packages`` options. If + your system's default Python is in the 3.x series you man need to + run ``virtualenv`` with the ``--python=python2.7`` or + ``--python=python2.6`` options. + +The above provides an in-package install of ``virtualenv``. While this +is counter to the conventional ``virtualenv`` configuration, it is +more reliable and considerably easier to configure and illustrate. If +you're familiar with Python packaging you may consider deploying with +your preferred the method. + +Assuming you are going to deploy with fastcgi, you should also install +flup: :: + + ./bin/easy_install flup + +This concludes the initial configuration of the development +environment. In the future, if at any point you want update your +codebase, you should also run: :: + + ./bin/python setup.py develop --upgrade && ./bin/gmg migrate. + +Deploy MediaGoblin Services +--------------------------- + +Test the Server +~~~~~~~~~~~~~~~ + +At this point MediaGoblin should be properly installed. You can +test the deployment with the following command: :: + + ./lazyserver.sh --server-name=broadcast + +You should be able to connect to the machine on port 6543 in your +browser to confirm that the service is operable. + +Connect the Webserver to MediaGoblin with FastCGI +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This section describes how to configure MediaGoblin to work via +fastcgi. Our configuration example will use nginx, however, you may +use any webserver of your choice as long as it supports the FastCGI +protocol. If you do not already have a web server, consider nginx, as +the configuration files may be more clear than the +alternatives. + +Create a configuration file at +``/srv/mediagoblin.example.org/nginx.conf`` and create a symbolic link +into a directory that will be included in your ``nginx`` configuration +(e.g. "``/etc/nginx/sites-enabled`` or ``/etc/nginx/conf.d``) with +one of the following commands (as the root user:) :: + + ln -s /srv/mediagoblin.example.org/nginx.conf /etc/nginx/conf.d/ + ln -s /srv/mediagoblin.example.org/nginx.conf /etc/nginx/sites-enabled/ + +Modify these commands and locations depending on your preferences and +the existing configuration of your nginx instance. The contents of +this ``nginx.conf`` file should be modeled on the following: :: + + server { + ################################################# + # Stock useful config options, but ignore them :) + ################################################# + include /etc/nginx/mime.types; + + autoindex off; + default_type application/octet-stream; + sendfile on; + + # Gzip + gzip on; + gzip_min_length 1024; + gzip_buffers 4 32k; + gzip_types text/plain text/html application/x-javascript text/javascript text/xml text/css; + + ##################################### + # Mounting MediaGoblin stuff + # This is the section you should read + ##################################### + + server_name mediagoblin.example.org www.mediagoblin.example.org; + access_log /var/log/nginx/mediagoblin.example.access.log; + error_log /var/log/nginx/mediagoblin.example.error.log; + + # MediaGoblin's stock static files: CSS, JS, etc. + location /mgoblin_static/ { + alias /srv/mediagoblin.example.org/mediagoblin/mediagoblin/static/; + } + + # Instance specific media: + location /mgoblin_media/ { + alias /srv/mediagoblin.example.org/mediagoblin/user_dev/media/public/; + } + + # Mounting MediaGoblin itself via fastcgi. + location / { + fastcgi_pass 127.0.0.1:26543; + include /etc/nginx/fastcgi_params; + + # our understanding vs nginx's handling of script_name vs + # path_info don't match :) + fastcgi_param PATH_INFO $fastcgi_script_name; + fastcgi_param SCRIPT_NAME ""; + } + } + +Now, nginx instance is configured to serve the MediaGoblin +application. Perform a quick test to ensure that this configuration +works. Restart nginx so it picks up your changes, with a command that +resembles one of the following (as the root user:) :: + + sudo /etc/init.d/nginx restart + sudo /etc/rc.d/nginx restart + +Now start MediaGoblin. Use the following command sequence as an +example: :: + + cd /srv/mediagoblin.example.org/mediagoblin/ + ./lazyserver.sh --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543 + +Visit the site you've set up in your browser by visiting +. You should see MediaGoblin! + +Production MediaGoblin Deployments with Paste +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The instance configured with ``lazyserver`` is not ideal for a +production MediaGoblin deployment. Ideally, you should be able to use +a a control script (i.e. init script.) to launch and restart the +MediaGoblin process. + +Use the following command as the basis for such a script: :: + + CELERY_ALWAYS_EAGER=true \ + /srv/mediagoblin.example.org/mediagoblin/bin/paster serve \ + /srv/mediagoblin.example.org/mediagoblin/paste.ini \ + --pid-file=/tmp/mediagoblin.pid \ + --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543 \ + +.. note:: + + The above configuration places MediaGoblin in "always eager" mode + with Celery. This is fine for development and smaller + deployments. However, if you're getting into the really large + deployment category, consider reading the section of this manual on + Celery. diff --git a/docs/source/index.rst b/docs/source/index.rst index 088b5359..e9f3993e 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -14,6 +14,7 @@ Table of Contents: foreword about deploying + configuration help theming codebase diff --git a/lazyserver.sh b/lazyserver.sh index e4afdaa5..63818a6a 100755 --- a/lazyserver.sh +++ b/lazyserver.sh @@ -18,13 +18,24 @@ if [ "$1" = "-h" ] then - echo "$0 [-h] [-c paste.ini] ARGS_to_paster" + echo "$0 [-h] [-c paste.ini] [ARGS_to_paster ...]" + echo "" echo " For example:" - echo " $0 -c fcgi.ini port_number=23371" + echo " $0 -c fcgi.ini port_number=23371" + echo " or: $0 --server-name=fcgi" + echo "" + echo " The configfile defaults to paste_local.ini," + echo " if that is readable, otherwise paste.ini." exit 1 fi PASTE_INI=paste.ini + +if [ -r paste_local.ini ] +then + PASTE_INI=paste_local.ini +fi + if [ "$1" = "-c" ] then PASTE_INI="$2" @@ -32,6 +43,8 @@ then shift fi +echo "Using paste config: $PASTE_INI" + if [ -f ./bin/paster ]; then echo "Using ./bin/paster"; export PASTER="./bin/paster"; diff --git a/mediagoblin.ini b/mediagoblin.ini index c22d12d7..728ab2f2 100644 --- a/mediagoblin.ini +++ b/mediagoblin.ini @@ -1,3 +1,6 @@ +# If you want to make changes to this file, first copy it to +# mediagoblin_local.ini, then make the changes there. + [mediagoblin] direct_remote_path = /mgoblin_static/ email_sender_address = "notice@mediagoblin.example.org" diff --git a/mediagoblin/_version.py b/mediagoblin/_version.py index df212faf..d6c6e20d 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 . -__version__ = "0.0.5" +__version__ = "0.1.0" diff --git a/mediagoblin/app.py b/mediagoblin/app.py index a72b9306..ce4b0bec 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -94,7 +94,7 @@ class MediaGoblinApp(object): # object. ####################################################### - setup_globals(app = self) + setup_globals(app=self) # Workbench *currently* only used by celery, so this only # matters in always eager mode :) @@ -104,7 +104,6 @@ class MediaGoblinApp(object): self.middleware = [common.import_component(m)(self) for m in middleware.ENABLED_MIDDLEWARE] - def __call__(self, environ, start_response): request = Request(environ) @@ -118,6 +117,17 @@ class MediaGoblinApp(object): path_info = request.path_info route_match = self.routing.match(path_info) + # By using fcgi, mediagoblin can run under a base path + # like /mediagoblin/. request.path_info contains the + # path inside mediagoblin. If the something needs the + # full path of the current page, that should include + # the basepath. + # Note: urlgen and routes are fine! + request.full_path = environ["SCRIPT_NAME"] + request.path_info + # python-routes uses SCRIPT_NAME. So let's use that too. + # The other option would be: + # request.full_path = environ["SCRIPT_URL"] + ## Attach utilities to the request object request.matchdict = route_match request.urlgen = routes.URLGenerator(self.routing, environ) @@ -167,6 +177,16 @@ class MediaGoblinApp(object): def paste_app_factory(global_config, **app_config): - mgoblin_app = MediaGoblinApp(app_config['config']) + configs = app_config['config'].split() + mediagoblin_config = None + for config in configs: + if os.path.exists(config) and os.access(config, os.R_OK): + mediagoblin_config = config + break + + if not mediagoblin_config: + raise IOError("Usable mediagoblin config not found.") + + mgoblin_app = MediaGoblinApp(mediagoblin_config) return mgoblin_app diff --git a/mediagoblin/auth/forms.py b/mediagoblin/auth/forms.py index a932ad26..dcb6766c 100644 --- a/mediagoblin/auth/forms.py +++ b/mediagoblin/auth/forms.py @@ -59,9 +59,10 @@ class ForgotPassForm(wtforms.Form): 'Username or email', [wtforms.validators.Required()]) - def validate_username(form,field): - if not (re.match(r'^\w+$',field.data) or - re.match(r'^.+@[^.].*\.[a-z]{2,10}$',field.data, re.IGNORECASE)): + def validate_username(form, field): + if not (re.match(r'^\w+$', field.data) or + re.match(r'^.+@[^.].*\.[a-z]{2,10}$', field.data, + re.IGNORECASE)): raise wtforms.ValidationError(u'Incorrect input') @@ -82,4 +83,3 @@ class ChangePassForm(wtforms.Form): token = wtforms.HiddenField( '', [wtforms.validators.Required()]) - diff --git a/mediagoblin/auth/lib.py b/mediagoblin/auth/lib.py index 4c57ef88..cf4a2b83 100644 --- a/mediagoblin/auth/lib.py +++ b/mediagoblin/auth/lib.py @@ -94,6 +94,7 @@ EMAIL_VERIFICATION_TEMPLATE = ( u"http://{host}{uri}?" u"userid={userid}&token={verification_key}") + def send_verification_email(user, request): """ Send the verification email to users to activate their accounts. @@ -108,7 +109,7 @@ def send_verification_email(user, request): 'verification_url': EMAIL_VERIFICATION_TEMPLATE.format( host=request.host, uri=request.urlgen('mediagoblin.auth.verify_email'), - userid=unicode(user['_id']), + userid=unicode(user._id), verification_key=user['verification_key'])}) # TODO: There is no error handling in place @@ -128,6 +129,7 @@ EMAIL_FP_VERIFICATION_TEMPLATE = ( u"http://{host}{uri}?" u"userid={userid}&token={fp_verification_key}") + def send_fp_verification_email(user, request): """ Send the verification email to users to change their password. @@ -142,7 +144,7 @@ def send_fp_verification_email(user, request): 'verification_url': EMAIL_FP_VERIFICATION_TEMPLATE.format( host=request.host, uri=request.urlgen('mediagoblin.auth.verify_forgot_password'), - userid=unicode(user['_id']), + userid=unicode(user._id), fp_verification_key=user['fp_verification_key'])}) # TODO: There is no error handling in place @@ -151,4 +153,3 @@ def send_fp_verification_email(user, request): [user['email']], 'GNU MediaGoblin - Change forgotten password!', rendered_email) - diff --git a/mediagoblin/auth/routing.py b/mediagoblin/auth/routing.py index 912d89fa..365ccfaa 100644 --- a/mediagoblin/auth/routing.py +++ b/mediagoblin/auth/routing.py @@ -33,7 +33,8 @@ auth_routes = [ controller='mediagoblin.views:simple_template_render'), Route('mediagoblin.auth.forgot_password', '/forgot_password/', controller='mediagoblin.auth.views:forgot_password'), - Route('mediagoblin.auth.verify_forgot_password', '/forgot_password/verify/', + Route('mediagoblin.auth.verify_forgot_password', + '/forgot_password/verify/', controller='mediagoblin.auth.views:verify_forgot_password'), Route('mediagoblin.auth.fp_changed_success', '/forgot_password/changed_success/', diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 2a670679..8412b81c 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -87,7 +87,7 @@ def register(request): user.save(validate=True) # log the user in - request.session['user_id'] = unicode(user['_id']) + request.session['user_id'] = unicode(user._id) request.session.save() # send verification email @@ -122,7 +122,7 @@ def login(request): if user and user.check_login(request.POST['password']): # set up login in session - request.session['user_id'] = unicode(user['_id']) + request.session['user_id'] = unicode(user._id) request.session.save() if request.POST.get('next'): @@ -160,7 +160,7 @@ def verify_email(request): you are lucky :) """ # If we don't have userid and token parameters, we can't do anything; 404 - if not request.GET.has_key('userid') or not request.GET.has_key('token'): + if not 'userid' in request.GET or not 'token' in request.GET: return render_404(request) user = request.db.User.find_one( @@ -253,8 +253,7 @@ def forgot_password(request): request, 'mediagoblin.user_pages.user_home', user=user['username']) - - # do not reveal whether or not there is a matching user, just move along + # do not reveal whether or not there is a matching user return redirect(request, 'mediagoblin.auth.fp_email_sent') return render_to_response( @@ -328,6 +327,6 @@ def _process_for_token(request): formdata = { 'vars': formdata_vars, 'has_userid_and_token': - formdata_vars.has_key('userid') and formdata_vars.has_key('token')} + 'userid' in formdata_vars and 'token' in formdata_vars} return formdata diff --git a/mediagoblin/config_spec.ini b/mediagoblin/config_spec.ini index 298a6951..eef6f6e0 100644 --- a/mediagoblin/config_spec.ini +++ b/mediagoblin/config_spec.ini @@ -1,4 +1,7 @@ [mediagoblin] +# HTML title of the pages +html_title = string(default="GNU MediaGoblin") + # database stuff db_host = string() db_name = string(default="mediagoblin") @@ -27,6 +30,9 @@ allow_registration = boolean(default=True) tags_delimiter = string(default=",") tags_max_length = integer(default=50) +# Whether comments are ascending or descending +comments_ascending = boolean(default=True) + # By default not set, but you might want something like: # "%(here)s/user_dev/templates/" local_templates = string() @@ -42,7 +48,7 @@ celery_setup_elsewhere = boolean(default=False) allow_attachments = boolean(default=False) # Cookie stuff -csrf_cookie_name = string(default='mediagoblin_nonce') +csrf_cookie_name = string(default='mediagoblin_csrftoken') [storage:publicstore] storage_class = string(default="mediagoblin.storage.filestorage:BasicFileStorage") diff --git a/mediagoblin/db/__init__.py b/mediagoblin/db/__init__.py index c5124b1a..27e8a90f 100644 --- a/mediagoblin/db/__init__.py +++ b/mediagoblin/db/__init__.py @@ -23,7 +23,7 @@ Database Abstraction/Wrapper Layer pymongo. Read beow for why, but note that nobody is actually doing this and there's no proof that we'll ever support more than MongoDB... it would be a huge amount of work to do so. - + If you really want to prove that possible, jump on IRC and talk to us about making such a branch. In the meanwhile, it doesn't hurt to have things as they are... if it ever makes it hard for us to diff --git a/mediagoblin/db/indexes.py b/mediagoblin/db/indexes.py index 75394a31..1dd73f2b 100644 --- a/mediagoblin/db/indexes.py +++ b/mediagoblin/db/indexes.py @@ -93,8 +93,9 @@ MEDIAENTRY_INDEXES = { ('created', DESCENDING)]}, 'state_uploader_tags_created': { - # Indexing on processed?, media uploader, associated tags, and timestamp - # Used for showing media items matching a tag search, most recent first. + # Indexing on processed?, media uploader, associated tags, and + # timestamp Used for showing media items matching a tag + # search, most recent first. 'index': [('state', ASCENDING), ('uploader', ASCENDING), ('tags.slug', DESCENDING), diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/migrations.py index 3cafe4f8..edaf5630 100644 --- a/mediagoblin/db/migrations.py +++ b/mediagoblin/db/migrations.py @@ -18,6 +18,17 @@ from mediagoblin.db.util import RegisterMigration from mediagoblin.tools.text import cleaned_markdown_conversion +def add_table_field(db, table_name, field_name, default_value): + """ + Add a new field to the table/collection named table_name. + The field will have the name field_name and the value default_value + """ + db[table_name].update( + {field_name: {'$exists': False}}, + {'$set': {field_name: default_value}}, + multi=True) + + # Please see mediagoblin/tests/test_migrations.py for some examples of # basic migrations. @@ -70,11 +81,7 @@ def mediaentry_add_queued_task_id(database): """ Add the 'queued_task_id' field for entries that don't have it. """ - collection = database['media_entries'] - collection.update( - {'queued_task_id': {'$exists': False}}, - {'$set': {'queued_task_id': None}}, - multi=True) + add_table_field(database, 'media_entries', 'queued_task_id', None) @RegisterMigration(5) @@ -82,16 +89,8 @@ def mediaentry_add_fail_error_and_metadata(database): """ Add 'fail_error' and 'fail_metadata' fields to media entries """ - collection = database['media_entries'] - collection.update( - {'fail_error': {'$exists': False}}, - {'$set': {'fail_error': None}}, - multi=True) - - collection.update( - {'fail_metadata': {'$exists': False}}, - {'$set': {'fail_metadata': {}}}, - multi=True) + add_table_field(database, 'media_entries', 'fail_error', None) + add_table_field(database, 'media_entries', 'fail_metadata', {}) @RegisterMigration(6) @@ -99,11 +98,5 @@ def user_add_forgot_password_token_and_expires(database): """ Add token and expiration fields to help recover forgotten passwords """ - database['users'].update( - {'fp_verification_key': {'$exists': False}}, - {'$set': {'fp_verification_key': None}}, - multi=True) - database['users'].update( - {'fp_token_expire': {'$exists': False}}, - {'$set': {'fp_token_expire': None}}, - multi=True) + add_table_field(database, 'users', 'fp_verification_key', None) + add_table_field(database, 'users', 'fp_token_expire', None) diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 0f5174cc..f13a4457 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -14,7 +14,8 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -import datetime, uuid +import datetime +import uuid from mongokit import Document @@ -62,22 +63,23 @@ class User(Document): - bio_html: biography of the user converted to proper HTML. """ __collection__ = 'users' + use_dot_notation = True structure = { 'username': unicode, 'email': unicode, 'created': datetime.datetime, - 'plugin_data': dict, # plugins can dump stuff here. + 'plugin_data': dict, # plugins can dump stuff here. 'pw_hash': unicode, 'email_verified': bool, 'status': unicode, 'verification_key': unicode, 'is_admin': bool, - 'url' : unicode, - 'bio' : unicode, # May contain markdown - 'bio_html': unicode, # May contain plaintext, or HTML - 'fp_verification_key': unicode, # forgotten password verification key - 'fp_token_expire': datetime.datetime + 'url': unicode, + 'bio': unicode, # May contain markdown + 'bio_html': unicode, # May contain plaintext, or HTML + 'fp_verification_key': unicode, # forgotten password verification key + 'fp_token_expire': datetime.datetime, } required_fields = ['username', 'created', 'pw_hash', 'email'] @@ -172,21 +174,22 @@ class MediaEntry(Document): critical to this piece of media but may be usefully relevant to people viewing the work. (currently unused.) - - fail_error: path to the exception raised - - fail_metadata: + - fail_error: path to the exception raised + - fail_metadata: """ __collection__ = 'media_entries' + use_dot_notation = True structure = { 'uploader': ObjectId, 'title': unicode, 'slug': unicode, 'created': datetime.datetime, - 'description': unicode, # May contain markdown/up - 'description_html': unicode, # May contain plaintext, or HTML + 'description': unicode, # May contain markdown/up + 'description_html': unicode, # May contain plaintext, or HTML 'media_type': unicode, - 'media_data': dict, # extra data relevant to this media_type - 'plugin_data': dict, # plugins can dump stuff here. + 'media_data': dict, # extra data relevant to this media_type + 'plugin_data': dict, # plugins can dump stuff here. 'tags': [dict], 'state': unicode, @@ -214,11 +217,17 @@ class MediaEntry(Document): 'created': datetime.datetime.utcnow, 'state': u'unprocessed'} - def get_comments(self): + def get_comments(self, ascending=False): + if ascending: + order = ASCENDING + else: + order = DESCENDING + return self.db.MediaComment.find({ - 'media_entry': self['_id']}).sort('created', DESCENDING) + 'media_entry': self._id}).sort('created', order) - def get_display_media(self, media_map, fetch_order=common.DISPLAY_IMAGE_FETCHING_ORDER): + def get_display_media(self, media_map, + fetch_order=common.DISPLAY_IMAGE_FETCHING_ORDER): """ Find the best media for display. @@ -246,7 +255,7 @@ class MediaEntry(Document): {'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): """ @@ -265,13 +274,13 @@ class MediaEntry(Document): return urlgen( 'mediagoblin.user_pages.media_home', user=uploader['username'], - media=unicode(self['_id'])) + media=unicode(self._id)) def url_to_prev(self, urlgen): """ Provide a url to the previous entry from this user, if there is one """ - cursor = self.db.MediaEntry.find({'_id' : {"$gt": self['_id']}, + cursor = self.db.MediaEntry.find({'_id': {"$gt": self._id}, 'uploader': self['uploader'], 'state': 'processed'}).sort( '_id', ASCENDING).limit(1) @@ -284,7 +293,7 @@ class MediaEntry(Document): """ Provide a url to the next entry from this user, if there is one """ - cursor = self.db.MediaEntry.find({'_id' : {"$lt": self['_id']}, + cursor = self.db.MediaEntry.find({'_id': {"$lt": self._id}, 'uploader': self['uploader'], 'state': 'processed'}).sort( '_id', DESCENDING).limit(1) @@ -319,6 +328,7 @@ class MediaComment(Document): """ __collection__ = 'media_comments' + use_dot_notation = True structure = { 'media_entry': ObjectId, @@ -351,4 +361,3 @@ def register_models(connection): Register all models in REGISTER_MODELS with this connection. """ connection.register(REGISTER_MODELS) - diff --git a/mediagoblin/db/open.py b/mediagoblin/db/open.py index e73b6258..e677ba12 100644 --- a/mediagoblin/db/open.py +++ b/mediagoblin/db/open.py @@ -29,7 +29,7 @@ def connect_database_from_config(app_config, use_pymongo=False): port = app_config.get('db_port') if port: port = asint(port) - + if use_pymongo: connection = pymongo.Connection( app_config.get('db_host'), port) diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index 84a6cbce..52e97f6d 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -118,11 +118,12 @@ def remove_deprecated_indexes(database, deprecated_indexes=DEPRECATED_INDEXES): ################# # The default migration registry... -# +# # Don't set this yourself! RegisterMigration will automatically fill # this with stuff via decorating methods in migrations.py -class MissingCurrentMigration(Exception): pass +class MissingCurrentMigration(Exception): + pass MIGRATIONS = {} @@ -147,7 +148,7 @@ class RegisterMigration(object): """ def __init__(self, migration_number, migration_registry=MIGRATIONS): assert migration_number > 0, "Migration number must be > 0!" - assert not migration_registry.has_key(migration_number), \ + assert migration_number not in migration_registry, \ "Duplicate migration numbers detected! That's not allowed!" self.migration_number = migration_number diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py index 38f52ced..9cac1cfa 100644 --- a/mediagoblin/decorators.py +++ b/mediagoblin/decorators.py @@ -45,7 +45,7 @@ def require_active_login(controller): return exc.HTTPFound( location="%s?next=%s" % ( request.urlgen("mediagoblin.auth.login"), - request.path_info)) + request.full_path)) return controller(request, *args, **kwargs) @@ -60,7 +60,7 @@ def user_may_delete_media(controller): uploader = request.db.MediaEntry.find_one( {'slug': request.matchdict['media'] }).uploader() if not (request.user['is_admin'] or - request.user['_id'] == uploader['_id']): + request.user._id == uploader._id): return exc.HTTPForbidden() return controller(request, *args, **kwargs) @@ -98,7 +98,7 @@ def get_user_media_entry(controller): media = request.db.MediaEntry.find_one( {'slug': request.matchdict['media'], 'state': 'processed', - 'uploader': user['_id']}) + 'uploader': user._id}) # no media via slug? Grab it via ObjectId if not media: @@ -106,7 +106,7 @@ def get_user_media_entry(controller): media = request.db.MediaEntry.find_one( {'_id': ObjectId(request.matchdict['media']), 'state': 'processed', - 'uploader': user['_id']}) + 'uploader': user._id}) except InvalidId: return render_404(request) @@ -118,6 +118,7 @@ def get_user_media_entry(controller): return _make_safe(wrapper, controller) + def get_media_entry_by_id(controller): """ Pass in a MediaEntry based off of a url component @@ -137,4 +138,3 @@ def get_media_entry_by_id(controller): return controller(request, media=media, *args, **kwargs) return _make_safe(wrapper, controller) - diff --git a/mediagoblin/edit/__init__.py b/mediagoblin/edit/__init__.py index 576bd0f5..ba347c69 100644 --- a/mediagoblin/edit/__init__.py +++ b/mediagoblin/edit/__init__.py @@ -13,5 +13,3 @@ # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . - - diff --git a/mediagoblin/edit/lib.py b/mediagoblin/edit/lib.py index b722e9c1..458b704e 100644 --- a/mediagoblin/edit/lib.py +++ b/mediagoblin/edit/lib.py @@ -17,7 +17,7 @@ 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']: return True diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index a6ddb553..5f781552 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -57,7 +57,7 @@ def edit_media(request, media): existing_user_slug_entries = request.db.MediaEntry.find( {'slug': request.POST['slug'], 'uploader': media['uploader'], - '_id': {'$ne': media['_id']}}).count() + '_id': {'$ne': media._id}}).count() if existing_user_slug_entries: form.slug.errors.append( @@ -78,7 +78,7 @@ def edit_media(request, media): location=media.url_for_self(request.urlgen)) if request.user['is_admin'] \ - and media['uploader'] != request.user['_id'] \ + and media['uploader'] != request.user._id \ and request.method != 'POST': messages.add_message( request, messages.WARNING, @@ -104,7 +104,7 @@ def edit_attachments(request, media): attachment_public_filepath \ = mg_globals.public_store.get_unique_filepath( - ['media_entries', unicode(media['_id']), 'attachment', + ['media_entries', unicode(media._id), 'attachment', secure_filename(request.POST['attachment_file'].filename)]) attachment_public_file = mg_globals.public_store.get_file( @@ -120,7 +120,7 @@ def edit_attachments(request, media): name=request.POST['attachment_name'] \ or request.POST['attachment_file'].filename, filepath=attachment_public_filepath, - created=datetime.utcnow() + created=datetime.utcnow(), )) media.save() @@ -170,7 +170,7 @@ def edit_profile(request): messages.add_message(request, messages.SUCCESS, - 'Profile edited!') + _("Profile edited!")) return redirect(request, 'mediagoblin.user_pages.user_home', user=edit_username) diff --git a/mediagoblin/gmg_commands/__init__.py b/mediagoblin/gmg_commands/__init__.py index 92ae840e..04187ff2 100644 --- a/mediagoblin/gmg_commands/__init__.py +++ b/mediagoblin/gmg_commands/__init__.py @@ -15,6 +15,7 @@ # along with this program. If not, see . import argparse +import os from mediagoblin.tools.common import import_component @@ -28,7 +29,7 @@ SUBCOMMAND_MAP = { 'setup': 'mediagoblin.gmg_commands.migrate:migrate_parser_setup', 'func': 'mediagoblin.gmg_commands.migrate:migrate', 'help': 'Apply all unapplied bulk migrations to the database'}, - 'adduser':{ + 'adduser': { 'setup': 'mediagoblin.gmg_commands.users:adduser_parser_setup', 'func': 'mediagoblin.gmg_commands.users:adduser', 'help': 'Creates an user'}, @@ -58,10 +59,16 @@ SUBCOMMAND_MAP = { def main_cli(): parser = argparse.ArgumentParser( description='GNU MediaGoblin utilities.') + parser.add_argument( + '-cf', '--conf_file', default=None, + help=( + "Config file used to set up environment. " + "Default to mediagoblin_local.ini if readable, " + "otherwise mediagoblin.ini")) subparsers = parser.add_subparsers(help='sub-command help') for command_name, command_struct in SUBCOMMAND_MAP.iteritems(): - if command_struct.has_key('help'): + if 'help' in command_struct: subparser = subparsers.add_parser( command_name, help=command_struct['help']) else: @@ -75,9 +82,15 @@ def main_cli(): subparser.set_defaults(func=exec_func) args = parser.parse_args() + if args.conf_file is None: + if os.path.exists('mediagoblin_local.ini') \ + and os.access('mediagoblin_local.ini', os.R_OK): + args.conf_file = 'mediagoblin_local.ini' + else: + args.conf_file = 'mediagoblin.ini' + args.func(args) if __name__ == '__main__': main_cli() - diff --git a/mediagoblin/gmg_commands/import_export.py b/mediagoblin/gmg_commands/import_export.py index 05edbfc8..30112969 100644 --- a/mediagoblin/gmg_commands/import_export.py +++ b/mediagoblin/gmg_commands/import_export.py @@ -16,7 +16,6 @@ from mediagoblin import mg_globals from mediagoblin.db.open import setup_connection_and_db_from_config -from mediagoblin.init.config import read_mediagoblin_config from mediagoblin.storage.filestorage import BasicFileStorage from mediagoblin.init import setup_storage, setup_global_and_app_config @@ -39,9 +38,6 @@ def import_export_parse_setup(subparser): # TODO: Add default subparser.add_argument( 'tar_file') - subparser.add_argument( - '-cf', '--conf_file', default='mediagoblin.ini', - help='Config file used to set up environment') subparser.add_argument( '--mongodump_path', default='mongodump', help='mongodump binary') @@ -91,7 +87,7 @@ def _import_database(db, args): args.mongorestore_path, '-d', db.name, os.path.join(args._cache_path['database'], db.name)]) - + p.wait() _log.info('...Database imported') @@ -212,7 +208,7 @@ def _export_media(db, args): for entry in db.media_entries.find(): for name, path in entry['media_files'].items(): - _log.info('Exporting {0} - {1}'.format( + _log.info(u'Exporting {0} - {1}'.format( entry['title'], name)) @@ -229,7 +225,8 @@ def env_export(args): ''' if args.cache_path: if os.path.exists(args.cache_path): - _log.error('The cache directory must not exist before you run this script') + _log.error('The cache directory must not exist ' + 'before you run this script') _log.error('Cache directory: {0}'.format(args.cache_path)) return False @@ -245,7 +242,7 @@ def env_export(args): globa_config, app_config = setup_global_and_app_config(args.conf_file) setup_storage() - + connection, db = setup_connection_and_db_from_config( app_config, use_pymongo=True) diff --git a/mediagoblin/gmg_commands/migrate.py b/mediagoblin/gmg_commands/migrate.py index 1a597188..beea109d 100644 --- a/mediagoblin/gmg_commands/migrate.py +++ b/mediagoblin/gmg_commands/migrate.py @@ -25,9 +25,7 @@ from mediagoblin.db import migrations def migrate_parser_setup(subparser): - subparser.add_argument( - '-cf', '--conf_file', default='mediagoblin.ini', - help="Config file used to set up environment") + pass def _print_started_migration(migration_number, migration_func): @@ -55,13 +53,13 @@ def migrate(args): for collection, index_name in removed_indexes: print "Removed index '%s' in collection '%s'" % ( index_name, collection) - + # Migrate print "\n== Applying migrations... ==" migration_manager.migrate_new( pre_callback=_print_started_migration, post_callback=_print_finished_migration) - + # Add new indexes print "\n== Adding new indexes... ==" new_indexes = db_util.add_new_indexes(db) diff --git a/mediagoblin/gmg_commands/shell.py b/mediagoblin/gmg_commands/shell.py index 2a380c7b..910560a0 100644 --- a/mediagoblin/gmg_commands/shell.py +++ b/mediagoblin/gmg_commands/shell.py @@ -22,9 +22,7 @@ from mediagoblin.gmg_commands import util as commands_util def shell_parser_setup(subparser): - subparser.add_argument( - '-cf', '--conf_file', default='mediagoblin.ini', - help="Config file used to set up environment") + pass SHELL_BANNER = """\ diff --git a/mediagoblin/gmg_commands/users.py b/mediagoblin/gmg_commands/users.py index 5421907d..4c4b0c1b 100644 --- a/mediagoblin/gmg_commands/users.py +++ b/mediagoblin/gmg_commands/users.py @@ -29,9 +29,6 @@ def adduser_parser_setup(subparser): subparser.add_argument( 'email', help="Email to recieve notifications") - subparser.add_argument( - '-cf', '--conf_file', default='mediagoblin.ini', - help="Config file used to set up environment") def adduser(args): @@ -41,7 +38,7 @@ def adduser(args): db = mg_globals.database users_with_username = \ db.User.find({ - 'username': args.username.lower() + 'username': args.username.lower(), }).count() if users_with_username: @@ -64,9 +61,6 @@ def makeadmin_parser_setup(subparser): subparser.add_argument( 'username', help="Username to give admin level") - subparser.add_argument( - '-cf', '--conf_file', default='mediagoblin.ini', - help="Config file used to set up environment") def makeadmin(args): @@ -74,7 +68,7 @@ def makeadmin(args): db = mg_globals.database - user = db.User.one({'username':unicode(args.username.lower())}) + user = db.User.one({'username': unicode(args.username.lower())}) if user: user['is_admin'] = True user.save() @@ -90,9 +84,6 @@ def changepw_parser_setup(subparser): subparser.add_argument( 'password', help="Your NEW supersecret word to login") - subparser.add_argument( - '-cf', '--conf_file', default='mediagoblin.ini', - help="Config file used to set up environment") def changepw(args): @@ -100,11 +91,10 @@ def changepw(args): db = mg_globals.database - user = db.User.one({'username':unicode(args.username.lower())}) + user = db.User.one({'username': unicode(args.username.lower())}) if user: user['pw_hash'] = auth_lib.bcrypt_gen_password_hash(args.password) user.save() print 'Password successfully changed' else: print 'The user doesn\'t exist' - diff --git a/mediagoblin/gmg_commands/wipealldata.py b/mediagoblin/gmg_commands/wipealldata.py index dc5d6cf7..cddbab38 100644 --- a/mediagoblin/gmg_commands/wipealldata.py +++ b/mediagoblin/gmg_commands/wipealldata.py @@ -30,6 +30,10 @@ def wipe(args): print "" print "Running this will destroy your mediagoblin database," print "remove all your media files in user_dev/, etc." + print "" + print "ALSO: This command is currently a hack and will only remove" + print " things properly on the default setup! If you've customized" + print " your mediagoblin configs, it won't work (for now)." drop_it = raw_input( 'Are you **SURE** you want to destroy your environment? ' @@ -48,4 +52,4 @@ def wipe(args): print "nixing %s...." % directory shutil.rmtree(directory) - print "removed all your stuff! okay, now re-run ./bin/buildout" + print "removed all your stuff!" diff --git a/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.mo index 1d75d517..4e4e8863 100644 Binary files a/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.mo and b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.mo differ diff --git a/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po index b5057b9d..548e971f 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-09-25 20:26-0500\n" -"PO-Revision-Date: 2011-09-26 01:25+0000\n" +"POT-Creation-Date: 2011-11-01 23:14-0500\n" +"PO-Revision-Date: 2011-11-02 04:13+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -45,19 +45,19 @@ msgstr "اكتبها مرة أخرى هنا للتأكد من عدم وجود أ msgid "Email address" msgstr "عنوان البريد الإلكتروني" -#: mediagoblin/auth/views.py:42 +#: mediagoblin/auth/views.py:55 msgid "Sorry, registration is disabled on this instance." msgstr "عفوًا، التسجيل غير متاح هنا." -#: mediagoblin/auth/views.py:60 +#: mediagoblin/auth/views.py:73 msgid "Sorry, a user with that name already exists." msgstr "عذرًا، لقد اختار مستخدم آخر هذا الاسم." -#: mediagoblin/auth/views.py:64 +#: mediagoblin/auth/views.py:77 msgid "Sorry, that email address has already been taken." msgstr "عفوًا، هذا العنوان البريدي مستخدم." -#: mediagoblin/auth/views.py:165 +#: mediagoblin/auth/views.py:179 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -65,60 +65,64 @@ msgstr "" "تم التحقق من بريدك الإلكتروني. يمكنك الآن الولوج، وتحرير ملفك الشخصي، ونشر " "الصور!" -#: mediagoblin/auth/views.py:171 +#: mediagoblin/auth/views.py:185 msgid "The verification key or user id is incorrect" msgstr "مفتاح التحقق أو معرف المستخدم خاطئ" -#: mediagoblin/auth/views.py:192 +#: mediagoblin/auth/views.py:207 msgid "Resent your verification email." msgstr "أعدنا إرسال رسالة التحقق." -#: mediagoblin/auth/views.py:228 +#: mediagoblin/auth/views.py:248 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." msgstr "" +"تعذر إرسال رسالة استعادة كلمة السر لأن اسم المستخدم معطل أو لأننا لم نتحقق " +"من بريدك الإلكتروني." -#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 +#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "العنوان" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "الوسوم" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:31 msgid "Slug" -msgstr "" +msgstr "المسار" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:32 msgid "The slug can't be empty" -msgstr "" +msgstr "لا يمكن ترك المسار فارغًا" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:33 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" +"الجزء الذي يمثل عنوان الملف في المسار. لا حاجة إلى تغيير محتوى هذه الخانة " +"عادةً." -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:40 msgid "Bio" msgstr "السيرة" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:43 msgid "Website" msgstr "الموقع الإلكتروني" -#: mediagoblin/edit/views.py:63 +#: mediagoblin/edit/views.py:64 msgid "An entry with that slug already exists for this user." -msgstr "" +msgstr "يوجد ملف آخر بهذا المسار لدى هذى المستخدم." -#: mediagoblin/edit/views.py:84 +#: mediagoblin/edit/views.py:85 msgid "You are editing another user's media. Proceed with caution." -msgstr "" +msgstr "أنت تحرّر وسائط مستخدم آخر. كن حذرًا أثناء العملية." -#: mediagoblin/edit/views.py:154 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." -msgstr "" +msgstr "أنت تحرّر ملف مستخدم آخر. كن حذرًا أثناء العملية." #: mediagoblin/process_media/errors.py:44 msgid "Invalid file given for media type." @@ -130,23 +134,23 @@ msgstr "الملف" #: mediagoblin/submit/forms.py:30 msgid "Description of this work" -msgstr "" +msgstr "وصف هذا العمل." -#: mediagoblin/submit/views.py:47 +#: mediagoblin/submit/views.py:46 msgid "You must provide a file." msgstr "يجب أن تضع ملفًا." -#: mediagoblin/submit/views.py:50 +#: mediagoblin/submit/views.py:49 msgid "The file doesn't seem to be an image!" msgstr "لا يبدو أن هذا الملف صورة!" -#: mediagoblin/submit/views.py:122 +#: mediagoblin/submit/views.py:121 msgid "Woohoo! Submitted!" msgstr "يا سلام! نُشرَت!" #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" -msgstr "" +msgstr "ويحي!" #: mediagoblin/templates/mediagoblin/404.html:24 msgid "There doesn't seem to be a page at this address. Sorry!" @@ -161,7 +165,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/404.html:32 msgid "Image of 404 goblin stressing out" -msgstr "" +msgstr "صورة قزم مرتبك" #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" @@ -180,8 +184,8 @@ msgid "verify your email!" msgstr "أكّد بريدك" #: mediagoblin/templates/mediagoblin/base.html:73 -#: mediagoblin/templates/mediagoblin/auth/login.html:26 -#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/login.html:27 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Log in" msgstr "لِج" @@ -246,27 +250,30 @@ msgid "" " or\n" " Set up MediaGoblin on your own server" msgstr "" +"أنشئ حسابًا مجانيًا\n" +" أو\n" +" ركّب ميدياغوبلن على خادومك الخاص" #: mediagoblin/templates/mediagoblin/root.html:53 msgid "Most recent media" -msgstr "" +msgstr "أحدث الوسائط" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 msgid "Enter your new password" -msgstr "" +msgstr "أدخل كلمة سرك الجديدة" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 msgid "Enter your username or email" -msgstr "" +msgstr "أدخل اسم المستخدم أو بريدك الإلكتروني" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." -msgstr "" +msgstr "لقد غُيرت كلمة سرك. جرّب الولوج الآن." #: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 msgid "" "Check your inbox. We sent an email with a URL for changing your password." -msgstr "" +msgstr "تفقد بريدك الإلكتروني. لقد أرسلنا رسالة بها وصلة لتغيير كلمة سرك." #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format @@ -281,32 +288,39 @@ msgid "" "If you think this is an error, just ignore this email and continue being\n" "a happy goblin!" msgstr "" +"مرحبًا يا %(username)s،\n" +"\n" +"إن أردت تغيير كلمة سرك في غنو ميدياغوبلن فافتح الوصلة التالية في متصفحك:\n" +"\n" +"%(verification_url)s\n" +"\n" +"إن كنت ترى أن هذه الرسالة وصلتك خطأً فتجاهلها واستمتع بحياتك!" -#: mediagoblin/templates/mediagoblin/auth/login.html:29 +#: mediagoblin/templates/mediagoblin/auth/login.html:30 msgid "Logging in failed!" msgstr "فشل الولوج!" -#: mediagoblin/templates/mediagoblin/auth/login.html:42 +#: mediagoblin/templates/mediagoblin/auth/login.html:43 msgid "Don't have an account yet?" msgstr "ألا تملك حسابًا بعد؟" -#: mediagoblin/templates/mediagoblin/auth/login.html:45 +#: mediagoblin/templates/mediagoblin/auth/login.html:46 msgid "Create one here!" msgstr "أنشئ حسابًا هنا!" -#: mediagoblin/templates/mediagoblin/auth/login.html:48 +#: mediagoblin/templates/mediagoblin/auth/login.html:49 msgid "Forgot your password?" -msgstr "" +msgstr "أنسيت كلمة سرك؟" -#: mediagoblin/templates/mediagoblin/auth/login.html:51 +#: mediagoblin/templates/mediagoblin/auth/login.html:52 msgid "Change it!" -msgstr "" +msgstr "غيّرها!" #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "أنشئ حسابًا!" -#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/auth/register.html:31 msgid "Create" msgstr "أنشئ" @@ -355,7 +369,7 @@ msgstr "الوسائط الموسومة ب‍" msgid "Submit yer media" msgstr "انشر وسائطك" -#: mediagoblin/templates/mediagoblin/submit/start.html:29 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 msgid "Submit" msgstr "أرسل" @@ -372,11 +386,11 @@ msgstr "عذرًا، تعذر العثور على مستخدم بهذا الاس #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" -msgstr "" +msgstr "أتود حقًا حذف %(title)s?" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 msgid "Delete Permanently" -msgstr "" +msgstr "احذف نهائيًا" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 msgid "Media processing panel" @@ -385,19 +399,19 @@ msgstr "لوحة معالجة الوسائط" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 msgid "" "You can track the state of media being processed for your gallery here." -msgstr "" +msgstr "يمكنك متابعة عملية معالجة وسائط معرضك من هنا." #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 msgid "Media in-processing" -msgstr "" +msgstr "توجد وسائط تحت المعالجة" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 msgid "No media in-processing" -msgstr "" +msgstr "لا توجد وسائط تحت المعالجة" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 msgid "These uploads failed to process:" -msgstr "" +msgstr "فشلت معالجة هذه الملفات:" #: mediagoblin/templates/mediagoblin/user_pages/user.html:39 #: mediagoblin/templates/mediagoblin/user_pages/user.html:59 @@ -452,7 +466,7 @@ msgstr "حرِّر الملف الشخصي" #: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "This user hasn't filled in their profile (yet)." -msgstr "" +msgstr "لم يعبئ هذا العضو بيانات ملفه بعد." #: mediagoblin/templates/mediagoblin/user_pages/user.html:122 #, python-format @@ -483,11 +497,11 @@ msgstr "" #: mediagoblin/templates/mediagoblin/utils/pagination.html:40 msgid "Newer" -msgstr "" +msgstr "الأحدث" #: mediagoblin/templates/mediagoblin/utils/pagination.html:46 msgid "Older" -msgstr "" +msgstr "الأقدم" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" @@ -495,10 +509,18 @@ msgstr "علِّق" #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" +msgstr "أنا متأكد من رغبتي بحذف هذا العمل" + +#: mediagoblin/user_pages/views.py:142 +msgid "Empty comments are not allowed." msgstr "" -#: mediagoblin/user_pages/views.py:175 +#: mediagoblin/user_pages/views.py:148 +msgid "Comment posted!" +msgstr "" + +#: mediagoblin/user_pages/views.py:181 msgid "You are about to delete another user's media. Proceed with caution." -msgstr "" +msgstr "أنت على وشك حذف وسائط مستخدم آخر. كن حذرًا أثناء العملية." diff --git a/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.mo new file mode 100644 index 00000000..9b9e7e3b Binary files /dev/null and b/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.mo differ diff --git a/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.po new file mode 100644 index 00000000..e2cd8342 --- /dev/null +++ b/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.po @@ -0,0 +1,520 @@ +# Translations template for PROJECT. +# Copyright (C) 2011 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# +# Translators: +# , 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-01 23:14-0500\n" +"PO-Revision-Date: 2011-11-02 04:13+0000\n" +"Last-Translator: cwebber \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 0.9.6\n" +"Language: ca\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 +msgid "Username" +msgstr "Nom d'usuari" + +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 +msgid "Password" +msgstr "Contrasenya" + +#: mediagoblin/auth/forms.py:35 +msgid "Passwords must match." +msgstr "Les contrasenyes han de coincidir" + +#: mediagoblin/auth/forms.py:37 +msgid "Confirm password" +msgstr "Confirmeu la contrasenya" + +#: mediagoblin/auth/forms.py:39 +msgid "Type it again here to make sure there are no spelling mistakes." +msgstr "" + +#: mediagoblin/auth/forms.py:42 +msgid "Email address" +msgstr "Adreça electrònica" + +#: mediagoblin/auth/views.py:55 +msgid "Sorry, registration is disabled on this instance." +msgstr "Ho sentim, el registre està desactivat en aquest cas." + +#: mediagoblin/auth/views.py:73 +msgid "Sorry, a user with that name already exists." +msgstr "Lamentablement aquest usuari ja existeix." + +#: mediagoblin/auth/views.py:77 +msgid "Sorry, that email address has already been taken." +msgstr "Disculpeu, aquesta adreça electrònica ja s'està utilitzant." + +#: mediagoblin/auth/views.py:179 +msgid "" +"Your email address has been verified. You may now login, edit your profile, " +"and submit images!" +msgstr "" +"Ja s'ha verificat la vostra adreça electrònica. Ara podeu entrar, editar el " +"vostre perfil i penjar imatge!" + +#: mediagoblin/auth/views.py:185 +msgid "The verification key or user id is incorrect" +msgstr "" +"La clau de verificació o la identificació de l'usuari no són correctes." + +#: mediagoblin/auth/views.py:207 +msgid "Resent your verification email." +msgstr "Torna'm a enviar el correu de verificació" + +#: mediagoblin/auth/views.py:248 +msgid "" +"Could not send password recovery email as your username is inactive or your " +"account's email address has not been verified." +msgstr "" + +#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 +msgid "Title" +msgstr "Títol" + +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 +msgid "Tags" +msgstr "Etiquetes" + +#: mediagoblin/edit/forms.py:31 +msgid "Slug" +msgstr "" + +#: mediagoblin/edit/forms.py:32 +msgid "The slug can't be empty" +msgstr "" + +#: mediagoblin/edit/forms.py:33 +msgid "" +"The title part of this media's URL. You usually don't need to change this." +msgstr "" + +#: mediagoblin/edit/forms.py:40 +msgid "Bio" +msgstr "Biografia" + +#: mediagoblin/edit/forms.py:43 +msgid "Website" +msgstr "Lloc web" + +#: mediagoblin/edit/views.py:64 +msgid "An entry with that slug already exists for this user." +msgstr "" + +#: mediagoblin/edit/views.py:85 +msgid "You are editing another user's media. Proceed with caution." +msgstr "Esteu editant fitxers d'un altre usuari. Aneu amb compte." + +#: mediagoblin/edit/views.py:155 +msgid "You are editing a user's profile. Proceed with caution." +msgstr "Esteu editant el perfil d'un usuari. Aneu amb compte" + +#: mediagoblin/process_media/errors.py:44 +msgid "Invalid file given for media type." +msgstr "Aquest tipus de fitxer no és vàlid." + +#: mediagoblin/submit/forms.py:25 +msgid "File" +msgstr "Fitxer" + +#: mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "" + +#: mediagoblin/submit/views.py:46 +msgid "You must provide a file." +msgstr "Heu d'escollir un fitxer." + +#: mediagoblin/submit/views.py:49 +msgid "The file doesn't seem to be an image!" +msgstr "El fitxer no és una imatge" + +#: mediagoblin/submit/views.py:121 +msgid "Woohoo! Submitted!" +msgstr "Visca! S'ha enviat!" + +#: mediagoblin/templates/mediagoblin/404.html:21 +msgid "Oops!" +msgstr "Ups!" + +#: mediagoblin/templates/mediagoblin/404.html:24 +msgid "There doesn't seem to be a page at this address. Sorry!" +msgstr "Sembla que no hi ha cap pàgina en aquesta adreça. Ho sentim." + +#: mediagoblin/templates/mediagoblin/404.html:26 +msgid "" +"If you're sure the address is correct, maybe the page you're looking for has" +" been moved or deleted." +msgstr "" +"Si esteu convençut que l'adreça és correcta, pot ser que la pàgina que " +"cerqueu s'hagi canviat d'ubicació o s'hagi eliminat." + +#: mediagoblin/templates/mediagoblin/404.html:32 +msgid "Image of 404 goblin stressing out" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:22 +msgid "GNU MediaGoblin" +msgstr "GNU MediaGoblin" + +#: mediagoblin/templates/mediagoblin/base.html:47 +msgid "MediaGoblin logo" +msgstr "Logo de mediagoblin" + +#: mediagoblin/templates/mediagoblin/base.html:52 +msgid "Submit media" +msgstr "Envia fitxers" + +#: mediagoblin/templates/mediagoblin/base.html:63 +msgid "verify your email!" +msgstr "verifiqueu el correu electrònic" + +#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/auth/login.html:27 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 +msgid "Log in" +msgstr "Entra" + +#: mediagoblin/templates/mediagoblin/base.html:89 +msgid "" +"Powered by MediaGoblin, a GNU project" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:24 +msgid "Explore" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:27 +msgid "Hi there, media lover! MediaGoblin is..." +msgstr "Ei, fanàtic multimèdia! MediaGoblin és..." + +#: mediagoblin/templates/mediagoblin/root.html:29 +msgid "The perfect place for your media!" +msgstr "El lloc fitxer pels teus fitxers!" + +#: mediagoblin/templates/mediagoblin/root.html:30 +msgid "" +"A place for people to collaborate and show off original and derived " +"creations!" +msgstr "" +"Un lloc en el qual les persones poden col·laborar i mostrar les seves " +"creacions originals o obres derivades." + +#: mediagoblin/templates/mediagoblin/root.html:31 +msgid "" +"Free, as in freedom. (We’re a GNU project, " +"after all.)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:32 +msgid "" +"Aiming to make the world a better place through decentralization and " +"(eventually, coming soon!) federation!" +msgstr "" +"Amb l'objectiu de fer del món un lloc millor a través de la " +"descentralització i (eventualment, aviat disponible!) La federació!" + +#: mediagoblin/templates/mediagoblin/root.html:33 +msgid "" +"Built for extensibility. (Multiple media types coming soon to the software," +" including video support!)" +msgstr "" +"Construït per l'ampliació. (Múltiples tipus de fitxers en breu amb el " +"programari, incloent el suport de vídeo!)" + +#: mediagoblin/templates/mediagoblin/root.html:34 +msgid "" +"Powered by people like you. (You can help us improve this" +" software!)" +msgstr "" +"Desenvolupat per persones com vostè. ( Podeu ajudar a millorar " +"aquest programari! )" + +#: mediagoblin/templates/mediagoblin/root.html:38 +msgid "Excited to join us?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:39 +#, python-format +msgid "" +"Create a free account\n" +" or\n" +" Set up MediaGoblin on your own server" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:53 +msgid "Most recent media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 +msgid "Enter your new password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 +msgid "Enter your username or email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 +msgid "Your password has been changed. Try to log in now." +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 +msgid "" +"Check your inbox. We sent an email with a URL for changing your password." +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to change your GNU MediaGoblin password, open the following URL in \n" +"your web browser:\n" +"\n" +"%(verification_url)s\n" +"\n" +"If you think this is an error, just ignore this email and continue being\n" +"a happy goblin!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:30 +msgid "Logging in failed!" +msgstr "Inici de sessió ha fallat!" + +#: mediagoblin/templates/mediagoblin/auth/login.html:43 +msgid "Don't have an account yet?" +msgstr "Encara no teniu un compte?" + +#: mediagoblin/templates/mediagoblin/auth/login.html:46 +msgid "Create one here!" +msgstr "Creeu-ne un aquí!" + +#: mediagoblin/templates/mediagoblin/auth/login.html:49 +msgid "Forgot your password?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:52 +msgid "Change it!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/register.html:27 +msgid "Create an account!" +msgstr "Creeu un compte!" + +#: mediagoblin/templates/mediagoblin/auth/register.html:31 +msgid "Create" +msgstr "Crea" + +#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to activate your GNU MediaGoblin account, open the following URL in\n" +"your web browser:\n" +"\n" +"%(verification_url)s" +msgstr "" +"Hi %(username)s,\n" +"\n" +"to activate your GNU MediaGoblin account, open the following URL in\n" +"your web browser:\n" +"\n" +"%(verification_url)s" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:29 +#, python-format +msgid "Editing %(media_title)s" +msgstr "Edició %(media_title)s " + +#: mediagoblin/templates/mediagoblin/edit/edit.html:36 +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49 +msgid "Cancel" +msgstr "Cancel·la" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 +msgid "Save changes" +msgstr "Desa els canvis" + +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 +#, python-format +msgid "Editing %(username)s's profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:31 +msgid "Media tagged with:" +msgstr "Etiquetat amb:" + +#: mediagoblin/templates/mediagoblin/submit/start.html:26 +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:32 +#, python-format +msgid "%(username)s's media" +msgstr "%(username)s's media" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 +msgid "Sorry, no such user found." +msgstr "Lamentablement no s'ha trobat l'usuari que cercàveu." + +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 +#, python-format +msgid "Really delete %(title)s?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 +msgid "Delete Permanently" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 +msgid "Media processing panel" +msgstr "Quadre de processament de fitxers" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 +msgid "" +"You can track the state of media being processed for your gallery here." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 +msgid "Media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 +msgid "No media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 +msgid "These uploads failed to process:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +msgid "Email verification needed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +msgid "Almost done! Your account still needs to be activated." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +msgid "" +"An email should arrive in a few moments with instructions on how to do so." +msgstr "Us hauria d'arribar un correu amb les instruccions per a fer-ho." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +msgid "In case it doesn't:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +msgid "Resend verification email" +msgstr "Torna'm a enviar el correu de verificació" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +msgid "" +"Someone has registered an account with this username, but it still has to be" +" activated." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#, python-format +msgid "" +"If you are that person but you've lost your verification email, you can log in and resend it." +msgstr "" +"Si siu aqeust usuari però heu perdut el correu de verificació, podeu entrar i tornar-lo a enviar." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 +#, python-format +msgid "%(username)s's profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +msgid "Here's a spot to tell others about yourself." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +msgid "Edit profile" +msgstr "Edita el perfil" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +msgid "This user hasn't filled in their profile (yet)." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#, python-format +msgid "View all of %(username)s's media" +msgstr "View all of %(username)s's media" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +msgid "" +"This is where your media will appear, but you don't seem to have added " +"anything yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +msgid "Add media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +msgid "There doesn't seem to be any media here yet..." +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 +msgid "feed icon" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 +msgid "Atom feed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 +msgid "Newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 +msgid "Older" +msgstr "" + +#: mediagoblin/user_pages/forms.py:24 +msgid "Comment" +msgstr "Comentari" + +#: mediagoblin/user_pages/forms.py:30 +msgid "I am sure I want to delete this" +msgstr "" + +#: mediagoblin/user_pages/views.py:142 +msgid "Empty comments are not allowed." +msgstr "" + +#: mediagoblin/user_pages/views.py:148 +msgid "Comment posted!" +msgstr "" + +#: mediagoblin/user_pages/views.py:181 +msgid "You are about to delete another user's media. Proceed with caution." +msgstr "" + + diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo index 06a01632..056e3eca 100644 Binary files a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo and b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo differ diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po index 81462e27..5c4ef0d0 100644 --- a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po @@ -7,6 +7,7 @@ # , 2011. # Elrond , 2011. # Jan-Christoph Borchardt , 2011. +# , 2011. # , 2011. # Rafael Maguiña , 2011. # Vinzenz Vietzke , 2011. @@ -14,9 +15,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-09-25 20:26-0500\n" -"PO-Revision-Date: 2011-09-26 01:25+0000\n" -"Last-Translator: cwebber \n" +"POT-Creation-Date: 2011-11-01 23:14-0500\n" +"PO-Revision-Date: 2011-11-02 15:18+0000\n" +"Last-Translator: piratenpanda \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" @@ -49,19 +50,19 @@ msgstr "Hier nochmal eintragen, um Tippfehler zu verhindern." msgid "Email address" msgstr "Email-Adresse" -#: mediagoblin/auth/views.py:42 +#: mediagoblin/auth/views.py:55 msgid "Sorry, registration is disabled on this instance." msgstr "Registrierung ist auf dieser Instanz leider deaktiviert." -#: mediagoblin/auth/views.py:60 +#: mediagoblin/auth/views.py:73 msgid "Sorry, a user with that name already exists." msgstr "Leider gibt es bereits einen Benutzer mit diesem Namen." -#: mediagoblin/auth/views.py:64 +#: mediagoblin/auth/views.py:77 msgid "Sorry, that email address has already been taken." msgstr "Tut und Leid, aber diese Email-Adresse wird bereits verwendet." -#: mediagoblin/auth/views.py:165 +#: mediagoblin/auth/views.py:179 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -69,60 +70,62 @@ msgstr "" "Deine Email-Adresse wurde bestätigt. Du kannst dich nun anmelden, Dein " "Profil bearbeiten und Bilder hochladen!" -#: mediagoblin/auth/views.py:171 +#: mediagoblin/auth/views.py:185 msgid "The verification key or user id is incorrect" msgstr "Der Bestätigungssschlüssel oder die Nutzernummer ist falsch." -#: mediagoblin/auth/views.py:192 +#: mediagoblin/auth/views.py:207 msgid "Resent your verification email." msgstr "Bestätigungs-Email wurde erneut versandt." -#: mediagoblin/auth/views.py:228 +#: mediagoblin/auth/views.py:248 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." msgstr "" +"Konnte Email zur Wiederherstellung des Passworts nicht senden, weil dein " +"Benutzername inaktiv oder deine Email-Adresse noch nicht verifiziert ist." -#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 +#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Titel" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "Markierungen" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:31 msgid "Slug" msgstr "Kurztitel" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:32 msgid "The slug can't be empty" msgstr "Bitte gib einen Kurztitel ein" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:33 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" "Der Titelteil der Medienadresse. Normalerweise muss hier nichts geändert " "werden." -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:40 msgid "Bio" msgstr "Biographie" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:43 msgid "Website" msgstr "Webseite" -#: mediagoblin/edit/views.py:63 +#: mediagoblin/edit/views.py:64 msgid "An entry with that slug already exists for this user." msgstr "Diesen Kurztitel hast du bereits vergeben." -#: mediagoblin/edit/views.py:84 +#: mediagoblin/edit/views.py:85 msgid "You are editing another user's media. Proceed with caution." msgstr "Du bearbeitest die Medien eines Anderen. Bitte sei vorsichtig." -#: mediagoblin/edit/views.py:154 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." msgstr "Du bearbeitest das Profil eines Anderen. Bitte sei vorsichtig." @@ -138,15 +141,15 @@ msgstr "Datei" msgid "Description of this work" msgstr "Beschreibung des Werkes" -#: mediagoblin/submit/views.py:47 +#: mediagoblin/submit/views.py:46 msgid "You must provide a file." msgstr "Du musst eine Datei angeben." -#: mediagoblin/submit/views.py:50 +#: mediagoblin/submit/views.py:49 msgid "The file doesn't seem to be an image!" msgstr "Diese Datei scheint kein Bild zu sein!" -#: mediagoblin/submit/views.py:122 +#: mediagoblin/submit/views.py:121 msgid "Woohoo! Submitted!" msgstr "Yeeeaaah! Geschafft!" @@ -187,8 +190,8 @@ msgid "verify your email!" msgstr "Bitte bestätige deine Email-Adresse!" #: mediagoblin/templates/mediagoblin/base.html:73 -#: mediagoblin/templates/mediagoblin/auth/login.html:26 -#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/login.html:27 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Log in" msgstr "Anmelden" @@ -202,7 +205,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:24 msgid "Explore" -msgstr "" +msgstr "Entdecke" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." @@ -256,7 +259,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:38 msgid "Excited to join us?" -msgstr "" +msgstr "Neugierig dich uns anzuschließen?" #: mediagoblin/templates/mediagoblin/root.html:39 #, python-format @@ -265,27 +268,32 @@ msgid "" " or\n" " Set up MediaGoblin on your own server" msgstr "" +"Gratis ein Konto einrichten\n" +" or\n" +" MediaGoblin auf deinem eigenen Server einrichten" #: mediagoblin/templates/mediagoblin/root.html:53 msgid "Most recent media" -msgstr "" +msgstr "Neuste Medien" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 msgid "Enter your new password" -msgstr "" +msgstr "Neues Passwort eingeben" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 msgid "Enter your username or email" -msgstr "" +msgstr "Benutzername oder Email-Adresse eingeben" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." -msgstr "" +msgstr "Dein Passwort wurde geändert. Versuche dich jetzt einzuloggen." #: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 msgid "" "Check your inbox. We sent an email with a URL for changing your password." msgstr "" +"Prüfe deinen Posteingang. Wir haben dir eine Email mit einem Link geschickt," +" mit dem du dein Passwort ändern kannst." #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format @@ -300,32 +308,39 @@ msgid "" "If you think this is an error, just ignore this email and continue being\n" "a happy goblin!" msgstr "" +"Hi %(username)s,\n" +"\n" +"um dein GNU MediaGoblin Passwort zu ändern, öffne folgende URL in deinem Webbrowser:\n" +"\n" +"%(verification_url)s\n" +"\n" +"Wenn du denkst, dass das ein Fehler ist, ignoriere einfach diese Email und bleib ein glücklicher Goblin!" -#: mediagoblin/templates/mediagoblin/auth/login.html:29 +#: mediagoblin/templates/mediagoblin/auth/login.html:30 msgid "Logging in failed!" msgstr "Anmeldevorgang fehlgeschlagen!" -#: mediagoblin/templates/mediagoblin/auth/login.html:42 +#: mediagoblin/templates/mediagoblin/auth/login.html:43 msgid "Don't have an account yet?" msgstr "Hast du noch kein Konto?" -#: mediagoblin/templates/mediagoblin/auth/login.html:45 +#: mediagoblin/templates/mediagoblin/auth/login.html:46 msgid "Create one here!" -msgstr "Registriere dich!" +msgstr "Registriere dich hier!" -#: mediagoblin/templates/mediagoblin/auth/login.html:48 +#: mediagoblin/templates/mediagoblin/auth/login.html:49 msgid "Forgot your password?" -msgstr "" +msgstr "Passwort vergessen?" -#: mediagoblin/templates/mediagoblin/auth/login.html:51 +#: mediagoblin/templates/mediagoblin/auth/login.html:52 msgid "Change it!" -msgstr "" +msgstr "Wechsle es!" #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Neues Konto registrieren!" -#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/auth/register.html:31 msgid "Create" msgstr "Registrieren" @@ -363,7 +378,7 @@ msgstr "Änderungen speichern" #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format msgid "Editing %(username)s's profile" -msgstr "%(username)ss Profil barbeiten" +msgstr "%(username)ss Profil bearbeiten" #: mediagoblin/templates/mediagoblin/listings/tag.html:31 msgid "Media tagged with:" @@ -373,7 +388,7 @@ msgstr "Medien markiert mit:" msgid "Submit yer media" msgstr "Medien hochladen" -#: mediagoblin/templates/mediagoblin/submit/start.html:29 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 msgid "Submit" msgstr "Bestätigen" @@ -417,7 +432,7 @@ msgstr "Keine Medien in Bearbeitung" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 msgid "These uploads failed to process:" -msgstr "Die folgenden Uploads sind fehlgeschlagen" +msgstr "Die folgenden Uploads sind fehlgeschlagen:" #: mediagoblin/templates/mediagoblin/user_pages/user.html:39 #: mediagoblin/templates/mediagoblin/user_pages/user.html:59 @@ -522,7 +537,15 @@ msgstr "Kommentar" msgid "I am sure I want to delete this" msgstr "Ja, wirklich löschen" -#: mediagoblin/user_pages/views.py:175 +#: mediagoblin/user_pages/views.py:142 +msgid "Empty comments are not allowed." +msgstr "Leere Kommentare sind nicht erlaubt." + +#: mediagoblin/user_pages/views.py:148 +msgid "Comment posted!" +msgstr "Kommentar hinzugefügt!" + +#: mediagoblin/user_pages/views.py:181 msgid "You are about to delete another user's media. Proceed with caution." msgstr "Du versuchst Medien eines anderen Nutzers zu löschen. Sei vorsichtig." diff --git a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po index 16a235a2..5e1401f6 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-09-25 20:26-0500\n" +"POT-Creation-Date: 2011-11-01 23:14-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -41,75 +41,75 @@ msgstr "" msgid "Email address" msgstr "" -#: mediagoblin/auth/views.py:42 +#: mediagoblin/auth/views.py:55 msgid "Sorry, registration is disabled on this instance." msgstr "" -#: mediagoblin/auth/views.py:60 +#: mediagoblin/auth/views.py:73 msgid "Sorry, a user with that name already exists." msgstr "" -#: mediagoblin/auth/views.py:64 +#: mediagoblin/auth/views.py:77 msgid "Sorry, that email address has already been taken." msgstr "" -#: mediagoblin/auth/views.py:165 +#: mediagoblin/auth/views.py:179 msgid "" "Your email address has been verified. You may now login, edit your " "profile, and submit images!" msgstr "" -#: mediagoblin/auth/views.py:171 +#: mediagoblin/auth/views.py:185 msgid "The verification key or user id is incorrect" msgstr "" -#: mediagoblin/auth/views.py:192 +#: mediagoblin/auth/views.py:207 msgid "Resent your verification email." msgstr "" -#: mediagoblin/auth/views.py:228 +#: mediagoblin/auth/views.py:248 msgid "" "Could not send password recovery email as your username is inactive or " "your account's email address has not been verified." msgstr "" -#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 +#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:31 msgid "Slug" msgstr "" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:32 msgid "The slug can't be empty" msgstr "" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:33 msgid "The title part of this media's URL. You usually don't need to change this." msgstr "" -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:40 msgid "Bio" msgstr "" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:43 msgid "Website" msgstr "" -#: mediagoblin/edit/views.py:63 +#: mediagoblin/edit/views.py:64 msgid "An entry with that slug already exists for this user." msgstr "" -#: mediagoblin/edit/views.py:84 +#: mediagoblin/edit/views.py:85 msgid "You are editing another user's media. Proceed with caution." msgstr "" -#: mediagoblin/edit/views.py:154 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." msgstr "" @@ -125,15 +125,15 @@ msgstr "" msgid "Description of this work" msgstr "" -#: mediagoblin/submit/views.py:47 +#: mediagoblin/submit/views.py:46 msgid "You must provide a file." msgstr "" -#: mediagoblin/submit/views.py:50 +#: mediagoblin/submit/views.py:49 msgid "The file doesn't seem to be an image!" msgstr "" -#: mediagoblin/submit/views.py:122 +#: mediagoblin/submit/views.py:121 msgid "Woohoo! Submitted!" msgstr "" @@ -172,8 +172,8 @@ msgid "verify your email!" msgstr "" #: mediagoblin/templates/mediagoblin/base.html:73 -#: mediagoblin/templates/mediagoblin/auth/login.html:26 -#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/login.html:27 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Log in" msgstr "" @@ -245,11 +245,11 @@ msgstr "" msgid "Most recent media" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 msgid "Enter your new password" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 msgid "Enter your username or email" msgstr "" @@ -275,23 +275,23 @@ msgid "" "a happy goblin!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:29 +#: mediagoblin/templates/mediagoblin/auth/login.html:30 msgid "Logging in failed!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:42 +#: mediagoblin/templates/mediagoblin/auth/login.html:43 msgid "Don't have an account yet?" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:45 +#: mediagoblin/templates/mediagoblin/auth/login.html:46 msgid "Create one here!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:48 +#: mediagoblin/templates/mediagoblin/auth/login.html:49 msgid "Forgot your password?" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:51 +#: mediagoblin/templates/mediagoblin/auth/login.html:52 msgid "Change it!" msgstr "" @@ -299,7 +299,7 @@ msgstr "" msgid "Create an account!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/auth/register.html:31 msgid "Create" msgstr "" @@ -342,7 +342,7 @@ msgstr "" msgid "Submit yer media" msgstr "" -#: mediagoblin/templates/mediagoblin/submit/start.html:29 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 msgid "Submit" msgstr "" @@ -480,7 +480,15 @@ msgstr "" msgid "I am sure I want to delete this" msgstr "" -#: mediagoblin/user_pages/views.py:175 +#: mediagoblin/user_pages/views.py:142 +msgid "Empty comments are not allowed." +msgstr "" + +#: mediagoblin/user_pages/views.py:148 +msgid "Comment posted!" +msgstr "" + +#: mediagoblin/user_pages/views.py:181 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo index 506e882b..c537c65e 100644 Binary files a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo and b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo differ diff --git a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po index 270b043f..f6bb1cce 100644 --- a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-09-25 20:26-0500\n" -"PO-Revision-Date: 2011-09-26 01:25+0000\n" +"POT-Creation-Date: 2011-11-01 23:14-0500\n" +"PO-Revision-Date: 2011-11-02 04:13+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -45,19 +45,19 @@ msgstr "Retajpu ĝin por certigi, ke ne okazis mistajpoj." msgid "Email address" msgstr "Retpoŝtadreso" -#: mediagoblin/auth/views.py:42 +#: mediagoblin/auth/views.py:55 msgid "Sorry, registration is disabled on this instance." msgstr "Bedaŭrinde, registrado estas malaktivigita en tiu ĉi instalaĵo." -#: mediagoblin/auth/views.py:60 +#: mediagoblin/auth/views.py:73 msgid "Sorry, a user with that name already exists." msgstr "Bedaŭrinde, uzanto kun tiu nomo jam ekzistas." -#: mediagoblin/auth/views.py:64 +#: mediagoblin/auth/views.py:77 msgid "Sorry, that email address has already been taken." msgstr "Tiu retpoŝtadreso jam estas uzata." -#: mediagoblin/auth/views.py:165 +#: mediagoblin/auth/views.py:179 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -65,60 +65,62 @@ msgstr "" "Via retpoŝtadreso estas konfirmita. Vi povas nun ensaluti, redakti vian " "profilon, kaj alŝuti bildojn!" -#: mediagoblin/auth/views.py:171 +#: mediagoblin/auth/views.py:185 msgid "The verification key or user id is incorrect" msgstr "La kontrol-kodo aŭ la uzantonomo ne estas korekta" -#: mediagoblin/auth/views.py:192 +#: mediagoblin/auth/views.py:207 msgid "Resent your verification email." msgstr "Resendi vian kontrol-mesaĝon." -#: mediagoblin/auth/views.py:228 +#: mediagoblin/auth/views.py:248 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." msgstr "" +"Ni ne povas sendi pasvortsavan retleteron, ĉar aŭ via konto estas neaktiva, " +"aŭ ĝia retpoŝtadreso ne estis konfirmita." -#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 +#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Titolo" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "Etikedoj" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:31 msgid "Slug" msgstr "La distingiga adresparto" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:32 msgid "The slug can't be empty" msgstr "La distingiga adresparto ne povas esti malplena" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:33 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" "La parto de la dosieradreso, bazita sur la dosiertitolo. Ordinare ne necesas" " ĝin ŝanĝi." -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:40 msgid "Bio" msgstr "Bio" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:43 msgid "Website" msgstr "Retejo" -#: mediagoblin/edit/views.py:63 +#: mediagoblin/edit/views.py:64 msgid "An entry with that slug already exists for this user." msgstr "Ĉi tiu uzanto jam havas dosieron kun tiu distingiga adresparto." -#: mediagoblin/edit/views.py:84 +#: mediagoblin/edit/views.py:85 msgid "You are editing another user's media. Proceed with caution." msgstr "Vi priredaktas dosieron de alia uzanto. Agu singardeme." -#: mediagoblin/edit/views.py:154 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." msgstr "Vi redaktas profilon de alia uzanto. Agu singardeme." @@ -134,15 +136,15 @@ msgstr "Dosiero" msgid "Description of this work" msgstr "Priskribo de ĉi tiu verko" -#: mediagoblin/submit/views.py:47 +#: mediagoblin/submit/views.py:46 msgid "You must provide a file." msgstr "Vi devas provizi dosieron." -#: mediagoblin/submit/views.py:50 +#: mediagoblin/submit/views.py:49 msgid "The file doesn't seem to be an image!" msgstr "La dosiero ŝajnas ne esti bildo!" -#: mediagoblin/submit/views.py:122 +#: mediagoblin/submit/views.py:121 msgid "Woohoo! Submitted!" msgstr "Hura! Alŝutitas!" @@ -183,8 +185,8 @@ msgid "verify your email!" msgstr "konfirmu vian retpoŝtadreson! " #: mediagoblin/templates/mediagoblin/base.html:73 -#: mediagoblin/templates/mediagoblin/auth/login.html:26 -#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/login.html:27 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Log in" msgstr "Ensaluti" @@ -250,7 +252,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:38 msgid "Excited to join us?" -msgstr "" +msgstr "Ĉu vi deziregas aliĝi nin?" #: mediagoblin/templates/mediagoblin/root.html:39 #, python-format @@ -259,27 +261,32 @@ msgid "" " or\n" " Set up MediaGoblin on your own server" msgstr "" +"Kreu senpagan" +" konton⏎ aŭ⏎ Kreu senpagan konton" #: mediagoblin/templates/mediagoblin/root.html:53 msgid "Most recent media" msgstr "Plej nove aldonitaj dosieroj" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 msgid "Enter your new password" msgstr "Enigu vian novan pasvorton" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 msgid "Enter your username or email" msgstr "Enigu vian salutnomon aŭ retpoŝtadreson" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." -msgstr "" +msgstr "Via pasvorto estis ŝanĝita. Nun provu ensaluti." #: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 msgid "" "Check your inbox. We sent an email with a URL for changing your password." msgstr "" +"Kontrolu vian retleterujon. Ni sendis retleteron kun retadreso por ŝanĝo de " +"via pasvorto." #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format @@ -302,23 +309,23 @@ msgstr "" "\n" "Se vi pensas, ke ĉi tiu retletero estas sendita erare, simple ignoru ĝin kaj plu restu feliĉa koboldo!" -#: mediagoblin/templates/mediagoblin/auth/login.html:29 +#: mediagoblin/templates/mediagoblin/auth/login.html:30 msgid "Logging in failed!" msgstr "Ensaluto malsukcesis!" -#: mediagoblin/templates/mediagoblin/auth/login.html:42 +#: mediagoblin/templates/mediagoblin/auth/login.html:43 msgid "Don't have an account yet?" msgstr "Ĉu ankoraŭ sen konto?" -#: mediagoblin/templates/mediagoblin/auth/login.html:45 +#: mediagoblin/templates/mediagoblin/auth/login.html:46 msgid "Create one here!" msgstr "Kreu ĝin ĉi tie!" -#: mediagoblin/templates/mediagoblin/auth/login.html:48 +#: mediagoblin/templates/mediagoblin/auth/login.html:49 msgid "Forgot your password?" msgstr "Ĉu vi forgesis vian pasvorton?" -#: mediagoblin/templates/mediagoblin/auth/login.html:51 +#: mediagoblin/templates/mediagoblin/auth/login.html:52 msgid "Change it!" msgstr "Ŝanĝu ĝin!" @@ -326,7 +333,7 @@ msgstr "Ŝanĝu ĝin!" msgid "Create an account!" msgstr "Kreu konton!" -#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/auth/register.html:31 msgid "Create" msgstr "Krei" @@ -374,7 +381,7 @@ msgstr "Dosieroj markitaj per:" msgid "Submit yer media" msgstr "Alŝutu vian aŭd-vid-dosieron" -#: mediagoblin/templates/mediagoblin/submit/start.html:29 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 msgid "Submit" msgstr "Alŝuti" @@ -522,7 +529,15 @@ msgstr "Komento" msgid "I am sure I want to delete this" msgstr "Mi estas certa, ke mi volas forigi ĉi tion" -#: mediagoblin/user_pages/views.py:175 +#: mediagoblin/user_pages/views.py:142 +msgid "Empty comments are not allowed." +msgstr "" + +#: mediagoblin/user_pages/views.py:148 +msgid "Comment posted!" +msgstr "" + +#: mediagoblin/user_pages/views.py:181 msgid "You are about to delete another user's media. Proceed with caution." msgstr "Vi estas forigonta dosieron de alia uzanto. Estu singardema." diff --git a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo index 2e64b814..2d2b9243 100644 Binary files a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo and b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo differ diff --git a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po index 083a87a5..a3c9939b 100644 --- a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po @@ -3,17 +3,19 @@ # This file is distributed under the same license as the PROJECT project. # # Translators: +# , 2011. # , 2011. # , 2011. # Javier Di Mauro , 2011. # , 2011. +# , 2011. # Mario Rodriguez , 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-09-25 20:26-0500\n" -"PO-Revision-Date: 2011-09-26 01:25+0000\n" +"POT-Creation-Date: 2011-11-01 23:14-0500\n" +"PO-Revision-Date: 2011-11-02 04:13+0000\n" "Last-Translator: cwebber \n" "Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/mediagoblin/team/es/)\n" "MIME-Version: 1.0\n" @@ -25,7 +27,7 @@ msgstr "" #: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" -msgstr "Nombre de Usuario" +msgstr "Nombre de usuario" #: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 msgid "Password" @@ -48,19 +50,19 @@ msgstr "" msgid "Email address" msgstr "Dirección de correo electrónico" -#: mediagoblin/auth/views.py:42 +#: mediagoblin/auth/views.py:55 msgid "Sorry, registration is disabled on this instance." -msgstr "Lo sentimos, la registración está deshabilitado en este momento." +msgstr "Lo sentimos, el registro está deshabilitado en este momento." -#: mediagoblin/auth/views.py:60 +#: mediagoblin/auth/views.py:73 msgid "Sorry, a user with that name already exists." msgstr "Lo sentimos, ya existe un usuario con ese nombre." -#: mediagoblin/auth/views.py:64 +#: mediagoblin/auth/views.py:77 msgid "Sorry, that email address has already been taken." msgstr "Lo sentimos, esa dirección de correo electrónico ya ha sido tomada." -#: mediagoblin/auth/views.py:165 +#: mediagoblin/auth/views.py:179 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -68,16 +70,16 @@ msgstr "" "Tu dirección de correo electrónico ha sido verificada. ¡Ahora puedes " "ingresar, editar tu perfil, y enviar imágenes!" -#: mediagoblin/auth/views.py:171 +#: mediagoblin/auth/views.py:185 msgid "The verification key or user id is incorrect" msgstr "" "La clave de verificación o la identificación de usuario son incorrectas" -#: mediagoblin/auth/views.py:192 +#: mediagoblin/auth/views.py:207 msgid "Resent your verification email." msgstr "Se reenvió tu correo electrónico de verificación." -#: mediagoblin/auth/views.py:228 +#: mediagoblin/auth/views.py:248 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." @@ -86,46 +88,46 @@ msgstr "" "porque su nombre de usuario está inactivo o la dirección de su cuenta de " "correo electrónico no ha sido verificada." -#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 +#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Título" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "Etiquetas" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:31 msgid "Slug" msgstr "Ficha" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:32 msgid "The slug can't be empty" msgstr "La ficha no puede estar vacía" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:33 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" "La parte del título de la URL de este contenido. Normalmente no necesitas " "cambiar esto." -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:40 msgid "Bio" msgstr "Bio" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:43 msgid "Website" msgstr "Sitio web" -#: mediagoblin/edit/views.py:63 +#: mediagoblin/edit/views.py:64 msgid "An entry with that slug already exists for this user." msgstr "Una entrada con esa ficha ya existe para este usuario." -#: mediagoblin/edit/views.py:84 +#: mediagoblin/edit/views.py:85 msgid "You are editing another user's media. Proceed with caution." msgstr "Estás editando el contenido de otro usuario. Proceder con precaución." -#: mediagoblin/edit/views.py:154 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." msgstr "Estás editando un perfil de usuario. Proceder con precaución." @@ -141,15 +143,15 @@ msgstr "Archivo" msgid "Description of this work" msgstr "Descripción de esta obra" -#: mediagoblin/submit/views.py:47 +#: mediagoblin/submit/views.py:46 msgid "You must provide a file." msgstr "Debes proporcionar un archivo." -#: mediagoblin/submit/views.py:50 +#: mediagoblin/submit/views.py:49 msgid "The file doesn't seem to be an image!" msgstr "¡El archivo no parece ser una imagen!" -#: mediagoblin/submit/views.py:122 +#: mediagoblin/submit/views.py:121 msgid "Woohoo! Submitted!" msgstr "¡Woohoo! ¡Enviado!" @@ -187,11 +189,11 @@ msgstr "Enviar contenido" #: mediagoblin/templates/mediagoblin/base.html:63 msgid "verify your email!" -msgstr "Verifica tu correo electrónico!" +msgstr "¡Verifica tu correo electrónico!" #: mediagoblin/templates/mediagoblin/base.html:73 -#: mediagoblin/templates/mediagoblin/auth/login.html:26 -#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/login.html:27 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Log in" msgstr "Conectarse" @@ -209,18 +211,18 @@ msgstr "Explorar" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." -msgstr "Hola, amante de los contenidos! MediaGoblin es ..." +msgstr "¡Hola, amante de los contenidos! MediaGoblin es ..." #: mediagoblin/templates/mediagoblin/root.html:29 msgid "The perfect place for your media!" -msgstr "El lugar ideal para tus contenidos!" +msgstr "¡El lugar ideal para tus contenidos!" #: mediagoblin/templates/mediagoblin/root.html:30 msgid "" "A place for people to collaborate and show off original and derived " "creations!" msgstr "" -"Un lugar para colaborar y exhibir tus creaciones orignales y derivadas!" +"¡Un lugar para colaborar y exhibir tus creaciones originales y derivadas!" #: mediagoblin/templates/mediagoblin/root.html:31 msgid "" @@ -243,8 +245,8 @@ msgid "" "Built for extensibility. (Multiple media types coming soon to the software," " including video support!)" msgstr "" -"Pensado para la ser extensible. (Prontamente soporte para multiples " -"formatos, incluyendo video!)" +"Pensado para ser extensible. (Prontamente soporte para multiples formatos, " +"incluyendo video!)" #: mediagoblin/templates/mediagoblin/root.html:34 msgid "" @@ -258,7 +260,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:38 msgid "Excited to join us?" -msgstr "Te emociona trabajar con nosotros?" +msgstr "Te gustaría unirte a nosotros?" #: mediagoblin/templates/mediagoblin/root.html:39 #, python-format @@ -267,27 +269,33 @@ msgid "" " or\n" " Set up MediaGoblin on your own server" msgstr "" +"Crea una " +"cuenta gratuita o Establece MediaGoblin en " +"tu propio servidor" #: mediagoblin/templates/mediagoblin/root.html:53 msgid "Most recent media" msgstr "El contenido más reciente" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 msgid "Enter your new password" msgstr "Ingrese su nueva contraseña" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 msgid "Enter your username or email" msgstr "Introduzca su nombre de usuario o correo electrónico" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." -msgstr "" +msgstr "Se cambió tu contraseña. Intenta iniciar sesión ahora." #: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 msgid "" "Check your inbox. We sent an email with a URL for changing your password." msgstr "" +"Revisa tu bandeja de entrada. Te enviamos un correo electrónico con una URL " +"para cambiar tu contraseña." #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format @@ -302,28 +310,28 @@ 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 lal " +"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!" -#: mediagoblin/templates/mediagoblin/auth/login.html:29 +#: mediagoblin/templates/mediagoblin/auth/login.html:30 msgid "Logging in failed!" -msgstr "Falló el inicio de sesión!" +msgstr "¡Falló el inicio de sesión!" -#: mediagoblin/templates/mediagoblin/auth/login.html:42 +#: mediagoblin/templates/mediagoblin/auth/login.html:43 msgid "Don't have an account yet?" msgstr "¿No tienes una cuenta?" -#: mediagoblin/templates/mediagoblin/auth/login.html:45 +#: mediagoblin/templates/mediagoblin/auth/login.html:46 msgid "Create one here!" msgstr "¡Crea una aquí!" -#: mediagoblin/templates/mediagoblin/auth/login.html:48 +#: mediagoblin/templates/mediagoblin/auth/login.html:49 msgid "Forgot your password?" msgstr "¿Olvidaste tu contraseña?" -#: mediagoblin/templates/mediagoblin/auth/login.html:51 +#: mediagoblin/templates/mediagoblin/auth/login.html:52 msgid "Change it!" msgstr "Cambiarlo!" @@ -331,7 +339,7 @@ msgstr "Cambiarlo!" msgid "Create an account!" msgstr "¡Crea una cuenta!" -#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/auth/register.html:31 msgid "Create" msgstr "Crear" @@ -379,7 +387,7 @@ msgstr "Contenido etiquetado con:" msgid "Submit yer media" msgstr "Envía tu contenido" -#: mediagoblin/templates/mediagoblin/submit/start.html:29 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 msgid "Submit" msgstr "Enviar" @@ -415,7 +423,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 msgid "Media in-processing" -msgstr "Contenido siendo procesado" +msgstr "Procesando contenido" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 msgid "No media in-processing" @@ -428,7 +436,7 @@ msgstr "Estos archivos no pudieron ser procesados:" #: mediagoblin/templates/mediagoblin/user_pages/user.html:39 #: mediagoblin/templates/mediagoblin/user_pages/user.html:59 msgid "Email verification needed" -msgstr "Correo electrónico de verificación necesario" +msgstr "Es necesario un correo electrónico de verificación" #: mediagoblin/templates/mediagoblin/user_pages/user.html:42 msgid "Almost done! Your account still needs to be activated." @@ -455,7 +463,7 @@ msgid "" " activated." msgstr "" "Alguien ya registró una cuenta con ese nombre de usuario, pero todavía no " -"fué activada." +"fue activada." #: mediagoblin/templates/mediagoblin/user_pages/user.html:68 #, python-format @@ -473,7 +481,7 @@ msgstr "Perfil de %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/user.html:85 msgid "Here's a spot to tell others about yourself." -msgstr "Aquí hay un lugar para que le cuentes a los demás sobre tí" +msgstr "Aquí hay un lugar para que le cuentes a los demás sobre tí." #: mediagoblin/templates/mediagoblin/user_pages/user.html:90 #: mediagoblin/templates/mediagoblin/user_pages/user.html:108 @@ -528,7 +536,15 @@ msgstr "Comentario" msgid "I am sure I want to delete this" msgstr "Estoy seguro de que quiero borrar esto" -#: mediagoblin/user_pages/views.py:175 +#: mediagoblin/user_pages/views.py:142 +msgid "Empty comments are not allowed." +msgstr "" + +#: mediagoblin/user_pages/views.py:148 +msgid "Comment posted!" +msgstr "" + +#: mediagoblin/user_pages/views.py:181 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" "Estás a punto de eliminar un contenido de otro usuario. Proceder con " diff --git a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo index 5b3adb77..90e83303 100644 Binary files a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo and b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo differ diff --git a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po index a9b9f160..0a6a5a40 100644 --- a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po @@ -3,6 +3,7 @@ # This file is distributed under the same license as the PROJECT project. # # Translators: +# , 2011. # , 2011. # , 2011. # , 2011. @@ -12,9 +13,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-09-25 20:26-0500\n" -"PO-Revision-Date: 2011-09-26 01:25+0000\n" -"Last-Translator: cwebber \n" +"POT-Creation-Date: 2011-11-01 23:14-0500\n" +"PO-Revision-Date: 2011-11-04 10:05+0000\n" +"Last-Translator: chesuidayeur \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -42,26 +43,26 @@ msgstr "Confirmer le mot de passe" #: mediagoblin/auth/forms.py:39 msgid "Type it again here to make sure there are no spelling mistakes." msgstr "" -"Tapez-le à nouveau ici pour vous assurer qu'il n'ya pas de fautes " +"Tapez-le à nouveau ici pour vous assurer qu'il n'y a pas de fautes " "d'orthographe." #: mediagoblin/auth/forms.py:42 msgid "Email address" msgstr "Adresse e-mail" -#: mediagoblin/auth/views.py:42 +#: mediagoblin/auth/views.py:55 msgid "Sorry, registration is disabled on this instance." msgstr "L'inscription n'est pas activée sur ce serveur, désolé." -#: mediagoblin/auth/views.py:60 +#: mediagoblin/auth/views.py:73 msgid "Sorry, a user with that name already exists." msgstr "Un utilisateur existe déjà avec ce nom, désolé." -#: mediagoblin/auth/views.py:64 +#: mediagoblin/auth/views.py:77 msgid "Sorry, that email address has already been taken." msgstr "Désolé, cette adresse courriel a déjà été prise." -#: mediagoblin/auth/views.py:165 +#: mediagoblin/auth/views.py:179 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -69,60 +70,64 @@ msgstr "" "Votre adresse e-mail a bien été vérifiée. Vous pouvez maintenant vous " "identifier, modifier votre profil, et soumettre des images !" -#: mediagoblin/auth/views.py:171 +#: mediagoblin/auth/views.py:185 msgid "The verification key or user id is incorrect" msgstr "La clé de vérification ou le nom d'utilisateur est incorrect." -#: mediagoblin/auth/views.py:192 +#: mediagoblin/auth/views.py:207 msgid "Resent your verification email." msgstr "E-mail de vérification renvoyé." -#: mediagoblin/auth/views.py:228 +#: mediagoblin/auth/views.py:248 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." msgstr "" +"Impossible d'envoyer un email de récupération de mot de passe : votre compte" +" est inactif ou bien l'email de votre compte n'a pas été vérifiée." -#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 +#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Titre" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "Tags" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:31 msgid "Slug" msgstr "Légende" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:32 msgid "The slug can't be empty" msgstr "La légende ne peut pas être laissée vide." -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:33 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" +"Le nom de ce media dans l'URL. Vous n'avez normalement pas besoin de le " +"changer" -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:40 msgid "Bio" msgstr "Bio" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:43 msgid "Website" msgstr "Site web" -#: mediagoblin/edit/views.py:63 +#: mediagoblin/edit/views.py:64 msgid "An entry with that slug already exists for this user." msgstr "Une entrée existe déjà pour cet utilisateur avec la même légende." -#: mediagoblin/edit/views.py:84 +#: mediagoblin/edit/views.py:85 msgid "You are editing another user's media. Proceed with caution." msgstr "" "Vous vous apprêtez à modifier le média d'un autre utilisateur. Veuillez " "prendre garde." -#: mediagoblin/edit/views.py:154 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." msgstr "" "Vous vous apprêtez à modifier le profil d'un utilisateur. Veuillez prendre " @@ -130,7 +135,7 @@ msgstr "" #: mediagoblin/process_media/errors.py:44 msgid "Invalid file given for media type." -msgstr "Invalide fichier donné pour le type de média." +msgstr "Le fichier envoyé ne correspond pas au type de média." #: mediagoblin/submit/forms.py:25 msgid "File" @@ -138,17 +143,17 @@ msgstr "Fichier" #: mediagoblin/submit/forms.py:30 msgid "Description of this work" -msgstr "" +msgstr "Descriptif pour ce travail" -#: mediagoblin/submit/views.py:47 +#: mediagoblin/submit/views.py:46 msgid "You must provide a file." msgstr "Il vous faut fournir un fichier." -#: mediagoblin/submit/views.py:50 +#: mediagoblin/submit/views.py:49 msgid "The file doesn't seem to be an image!" msgstr "Ce fichier ne semble pas être une image !" -#: mediagoblin/submit/views.py:122 +#: mediagoblin/submit/views.py:121 msgid "Woohoo! Submitted!" msgstr "Youhou, c'est envoyé !" @@ -158,7 +163,7 @@ msgstr "Zut!" #: mediagoblin/templates/mediagoblin/404.html:24 msgid "There doesn't seem to be a page at this address. Sorry!" -msgstr "Il ne semble pas être une page à cette adresse. Désolé!" +msgstr "Il ne semble pas y avoir de page à cette adresse. Désolé !" #: mediagoblin/templates/mediagoblin/404.html:26 msgid "" @@ -166,11 +171,11 @@ msgid "" " been moved or deleted." msgstr "" "Si vous êtes sûr que l'adresse est correcte, peut-être la page que vous " -"recherchez a été déplacé ou supprimé." +"recherchez a été déplacée ou supprimée." #: mediagoblin/templates/mediagoblin/404.html:32 msgid "Image of 404 goblin stressing out" -msgstr "Image de 404 gobelin stresser" +msgstr "Image de 404 gobelin angoissé" #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" @@ -189,8 +194,8 @@ msgid "verify your email!" msgstr "vérifiez votre adresse e-mail !" #: mediagoblin/templates/mediagoblin/base.html:73 -#: mediagoblin/templates/mediagoblin/auth/login.html:26 -#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/login.html:27 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Log in" msgstr "S'identifier" @@ -199,12 +204,12 @@ msgid "" "Powered by MediaGoblin, a GNU project" msgstr "" -"Propulsé par MediaGoblin , un GNU de projet" +"Propulsé par MediaGoblin , un projet " +"GNU" #: mediagoblin/templates/mediagoblin/root.html:24 msgid "Explore" -msgstr "" +msgstr "Explorer" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." @@ -219,15 +224,15 @@ msgid "" "A place for people to collaborate and show off original and derived " "creations!" msgstr "" -"Un lieu pour les personnes de collaborer et de montrer des créations " -"originales et dérivées!" +"Un espace de création collaboratif : montrez vos œuvres, originales ou " +"dérivées !" #: mediagoblin/templates/mediagoblin/root.html:31 msgid "" "Free, as in freedom. (We’re a GNU project, " "after all.)" msgstr "" -"Logiciel libre. (Nous sommes une GNU projet, " +"Logiciel libre. (Nous sommes un projet GNU " "après tout.)" #: mediagoblin/templates/mediagoblin/root.html:32 @@ -235,8 +240,8 @@ msgid "" "Aiming to make the world a better place through decentralization and " "(eventually, coming soon!) federation!" msgstr "" -"Visant à rendre le monde meilleur grâce à la décentralisation et " -"(éventuellement, venir bientôt!) fédération!" +"Une tentative de rendre le monde meilleur grâce à la décentralisation et (à " +"terme, et pour bientôt !) la fédération !" #: mediagoblin/templates/mediagoblin/root.html:33 msgid "" @@ -258,7 +263,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:38 msgid "Excited to join us?" -msgstr "" +msgstr "Envi de vous joindre à nous ?" #: mediagoblin/templates/mediagoblin/root.html:39 #, python-format @@ -267,27 +272,33 @@ msgid "" " or\n" " Set up MediaGoblin on your own server" msgstr "" +"Créez gratuitement en compte\n" +" ou\n" +" Installez MediaGoblin sur votre propre serveur" #: mediagoblin/templates/mediagoblin/root.html:53 msgid "Most recent media" -msgstr "" +msgstr "Tout derniers media" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 msgid "Enter your new password" -msgstr "" +msgstr "Entrez un nouveau mot de passe" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 msgid "Enter your username or email" -msgstr "" +msgstr "Entrez votre nom d'utilisateur ou votre email" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." msgstr "" +"Votre mot de passe a été changé. Essayez maintenant de vous identifier." #: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 msgid "" "Check your inbox. We sent an email with a URL for changing your password." msgstr "" +"Verifiez votre boîte de réception. Nous vous avons envoyé un email avec une " +"URL vous permettant de changer votre mot de passe." #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format @@ -302,32 +313,41 @@ msgid "" "If you think this is an error, just ignore this email and continue being\n" "a happy goblin!" msgstr "" +"Bonjour %(username)s,\n" +"\n" +"Pour changer votre mot de passe GNU MediaGoblin, ouvrez l'URL suivante dans \n" +"votre navigateur internet :\n" +"\n" +"%(verification_url)s\n" +"\n" +"Si vous pensez qu'il s'agit d'une erreur, ignorez simplement cet email et restez\n" +"un goblin heureux !" -#: mediagoblin/templates/mediagoblin/auth/login.html:29 +#: mediagoblin/templates/mediagoblin/auth/login.html:30 msgid "Logging in failed!" -msgstr "Connexion a échoué!" +msgstr "La connexion a échoué!" -#: mediagoblin/templates/mediagoblin/auth/login.html:42 +#: mediagoblin/templates/mediagoblin/auth/login.html:43 msgid "Don't have an account yet?" msgstr "Pas encore de compte?" -#: mediagoblin/templates/mediagoblin/auth/login.html:45 +#: mediagoblin/templates/mediagoblin/auth/login.html:46 msgid "Create one here!" msgstr "Créez-en un ici!" -#: mediagoblin/templates/mediagoblin/auth/login.html:48 +#: mediagoblin/templates/mediagoblin/auth/login.html:49 msgid "Forgot your password?" -msgstr "" +msgstr "Vous avez oublié votre mot de passe ?" -#: mediagoblin/templates/mediagoblin/auth/login.html:51 +#: mediagoblin/templates/mediagoblin/auth/login.html:52 msgid "Change it!" -msgstr "" +msgstr "Changez-le !" #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Créer un compte!" -#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/auth/register.html:31 msgid "Create" msgstr "Créer" @@ -375,7 +395,7 @@ msgstr "Média comportant les tags suivants :" msgid "Submit yer media" msgstr "Soumettez ce média" -#: mediagoblin/templates/mediagoblin/submit/start.html:29 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 msgid "Submit" msgstr "Soumettre" @@ -396,7 +416,7 @@ msgstr "Voulez-vous vraiment supprimer %(title)s ?" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 msgid "Delete Permanently" -msgstr "" +msgstr "Supprimer définitivement" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 msgid "Media processing panel" @@ -419,7 +439,7 @@ msgstr "Aucun média en transformation" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 msgid "These uploads failed to process:" -msgstr "Ces ajouts n'etaient pas processé:" +msgstr "Le traitement de ces ajouts a échoué :" #: mediagoblin/templates/mediagoblin/user_pages/user.html:39 #: mediagoblin/templates/mediagoblin/user_pages/user.html:59 @@ -428,7 +448,7 @@ msgstr "Vérification d'email nécessaire" #: mediagoblin/templates/mediagoblin/user_pages/user.html:42 msgid "Almost done! Your account still needs to be activated." -msgstr "Presque fini! Votre compte a encore besoin d'être activé." +msgstr "Presque fini ! Votre compte a encore besoin d'être activé." #: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" @@ -479,7 +499,7 @@ msgstr "Modifier le profil" #: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "This user hasn't filled in their profile (yet)." -msgstr "Cet utilisateur n'a pas rempli leur profil (encore)." +msgstr "Cet utilisateur n'a pas (encore) rempli son profil." #: mediagoblin/templates/mediagoblin/user_pages/user.html:122 #, python-format @@ -491,8 +511,8 @@ msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "" -"C'est là où vos médias apparaît, mais vous ne semblez pas avoir quoi que ce " -"soit encore ajouté." +"C'est là où vos médias apparaîssent, mais vous ne semblez pas avoir encore " +"ajouté quoi que ce soit." #: mediagoblin/templates/mediagoblin/user_pages/user.html:141 msgid "Add media" @@ -500,11 +520,11 @@ msgstr "Ajouter des médias" #: mediagoblin/templates/mediagoblin/user_pages/user.html:147 msgid "There doesn't seem to be any media here yet..." -msgstr "Il ne semble pas être un média encore là ..." +msgstr "Il ne semble pas y avoir de média là, pour l'instant ..." #: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 msgid "feed icon" -msgstr "icon de flux" +msgstr "icone de flux" #: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 msgid "Atom feed" @@ -512,11 +532,11 @@ msgstr "flux Atom" #: mediagoblin/templates/mediagoblin/utils/pagination.html:40 msgid "Newer" -msgstr "" +msgstr "Nouveaux" #: mediagoblin/templates/mediagoblin/utils/pagination.html:46 msgid "Older" -msgstr "" +msgstr "Anciens" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" @@ -524,9 +544,17 @@ msgstr "Commentaire" #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" -msgstr "" +msgstr "Je suis sûr de vouloir supprimer cela" -#: mediagoblin/user_pages/views.py:175 +#: mediagoblin/user_pages/views.py:142 +msgid "Empty comments are not allowed." +msgstr "Les commentaires vides ne sont pas autorisés." + +#: mediagoblin/user_pages/views.py:148 +msgid "Comment posted!" +msgstr "Votre commentaire a été posté !" + +#: mediagoblin/user_pages/views.py:181 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" "Vous êtes sur le point de supprimer des médias d'un autre utilisateur. " diff --git a/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.mo new file mode 100644 index 00000000..feb156ff Binary files /dev/null and b/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.mo differ diff --git a/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.po new file mode 100644 index 00000000..d9fdf8d6 --- /dev/null +++ b/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.po @@ -0,0 +1,498 @@ +# Translations template for PROJECT. +# Copyright (C) 2011 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# +# Translators: +# Emilio Sepúlveda , 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-01 23:14-0500\n" +"PO-Revision-Date: 2011-11-02 04:13+0000\n" +"Last-Translator: cwebber \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 0.9.6\n" +"Language: ia\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 +msgid "Username" +msgstr "Nomine de usator" + +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 +msgid "Password" +msgstr "Contrasigno" + +#: mediagoblin/auth/forms.py:35 +msgid "Passwords must match." +msgstr "" + +#: mediagoblin/auth/forms.py:37 +msgid "Confirm password" +msgstr "" + +#: mediagoblin/auth/forms.py:39 +msgid "Type it again here to make sure there are no spelling mistakes." +msgstr "" + +#: mediagoblin/auth/forms.py:42 +msgid "Email address" +msgstr "Adresse de e-posta" + +#: mediagoblin/auth/views.py:55 +msgid "Sorry, registration is disabled on this instance." +msgstr "" + +#: mediagoblin/auth/views.py:73 +msgid "Sorry, a user with that name already exists." +msgstr "" + +#: mediagoblin/auth/views.py:77 +msgid "Sorry, that email address has already been taken." +msgstr "" + +#: mediagoblin/auth/views.py:179 +msgid "" +"Your email address has been verified. You may now login, edit your profile, " +"and submit images!" +msgstr "" + +#: mediagoblin/auth/views.py:185 +msgid "The verification key or user id is incorrect" +msgstr "" + +#: mediagoblin/auth/views.py:207 +msgid "Resent your verification email." +msgstr "" + +#: mediagoblin/auth/views.py:248 +msgid "" +"Could not send password recovery email as your username is inactive or your " +"account's email address has not been verified." +msgstr "" + +#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 +msgid "Title" +msgstr "Titulo" + +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 +msgid "Tags" +msgstr "" + +#: mediagoblin/edit/forms.py:31 +msgid "Slug" +msgstr "" + +#: mediagoblin/edit/forms.py:32 +msgid "The slug can't be empty" +msgstr "" + +#: mediagoblin/edit/forms.py:33 +msgid "" +"The title part of this media's URL. You usually don't need to change this." +msgstr "" + +#: mediagoblin/edit/forms.py:40 +msgid "Bio" +msgstr "" + +#: mediagoblin/edit/forms.py:43 +msgid "Website" +msgstr "Sito web" + +#: mediagoblin/edit/views.py:64 +msgid "An entry with that slug already exists for this user." +msgstr "" + +#: mediagoblin/edit/views.py:85 +msgid "You are editing another user's media. Proceed with caution." +msgstr "" + +#: mediagoblin/edit/views.py:155 +msgid "You are editing a user's profile. Proceed with caution." +msgstr "" + +#: mediagoblin/process_media/errors.py:44 +msgid "Invalid file given for media type." +msgstr "" + +#: mediagoblin/submit/forms.py:25 +msgid "File" +msgstr "" + +#: mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "" + +#: mediagoblin/submit/views.py:46 +msgid "You must provide a file." +msgstr "" + +#: mediagoblin/submit/views.py:49 +msgid "The file doesn't seem to be an image!" +msgstr "" + +#: mediagoblin/submit/views.py:121 +msgid "Woohoo! Submitted!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:21 +msgid "Oops!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:24 +msgid "There doesn't seem to be a page at this address. Sorry!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:26 +msgid "" +"If you're sure the address is correct, maybe the page you're looking for has" +" been moved or deleted." +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:32 +msgid "Image of 404 goblin stressing out" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:22 +msgid "GNU MediaGoblin" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:47 +msgid "MediaGoblin logo" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:52 +msgid "Submit media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:63 +msgid "verify your email!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/auth/login.html:27 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 +msgid "Log in" +msgstr "Initiar session" + +#: mediagoblin/templates/mediagoblin/base.html:89 +msgid "" +"Powered by MediaGoblin, a GNU project" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:24 +msgid "Explore" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:27 +msgid "Hi there, media lover! MediaGoblin is..." +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:29 +msgid "The perfect place for your media!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:30 +msgid "" +"A place for people to collaborate and show off original and derived " +"creations!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:31 +msgid "" +"Free, as in freedom. (We’re a GNU project, " +"after all.)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:32 +msgid "" +"Aiming to make the world a better place through decentralization and " +"(eventually, coming soon!) federation!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:33 +msgid "" +"Built for extensibility. (Multiple media types coming soon to the software," +" including video support!)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:34 +msgid "" +"Powered by people like you. (You can help us improve this" +" software!)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:38 +msgid "Excited to join us?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:39 +#, python-format +msgid "" +"Create a free account\n" +" or\n" +" Set up MediaGoblin on your own server" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:53 +msgid "Most recent media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 +msgid "Enter your new password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 +msgid "Enter your username or email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 +msgid "Your password has been changed. Try to log in now." +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 +msgid "" +"Check your inbox. We sent an email with a URL for changing your password." +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to change your GNU MediaGoblin password, open the following URL in \n" +"your web browser:\n" +"\n" +"%(verification_url)s\n" +"\n" +"If you think this is an error, just ignore this email and continue being\n" +"a happy goblin!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:30 +msgid "Logging in failed!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:43 +msgid "Don't have an account yet?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:46 +msgid "Create one here!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:49 +msgid "Forgot your password?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:52 +msgid "Change it!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/register.html:27 +msgid "Create an account!" +msgstr "Crear un conto!" + +#: mediagoblin/templates/mediagoblin/auth/register.html:31 +msgid "Create" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to activate your GNU MediaGoblin account, open the following URL in\n" +"your web browser:\n" +"\n" +"%(verification_url)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:29 +#, python-format +msgid "Editing %(media_title)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:36 +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49 +msgid "Cancel" +msgstr "Cancellar" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 +msgid "Save changes" +msgstr "" + +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 +#, python-format +msgid "Editing %(username)s's profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:31 +msgid "Media tagged with:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:26 +msgid "Submit yer media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Submit" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#, python-format +msgid "%(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 +msgid "Sorry, no such user found." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 +#, python-format +msgid "Really delete %(title)s?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 +msgid "Delete Permanently" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 +msgid "Media processing panel" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 +msgid "" +"You can track the state of media being processed for your gallery here." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 +msgid "Media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 +msgid "No media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 +msgid "These uploads failed to process:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +msgid "Email verification needed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +msgid "Almost done! Your account still needs to be activated." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +msgid "" +"An email should arrive in a few moments with instructions on how to do so." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +msgid "In case it doesn't:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +msgid "Resend verification email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +msgid "" +"Someone has registered an account with this username, but it still has to be" +" activated." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#, python-format +msgid "" +"If you are that person but you've lost your verification email, you can log in and resend it." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 +#, python-format +msgid "%(username)s's profile" +msgstr "Profilo de %(username)s" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +msgid "Here's a spot to tell others about yourself." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +msgid "Edit profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +msgid "This user hasn't filled in their profile (yet)." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#, python-format +msgid "View all of %(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +msgid "" +"This is where your media will appear, but you don't seem to have added " +"anything yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +msgid "Add media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +msgid "There doesn't seem to be any media here yet..." +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 +msgid "feed icon" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 +msgid "Atom feed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 +msgid "Newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 +msgid "Older" +msgstr "" + +#: mediagoblin/user_pages/forms.py:24 +msgid "Comment" +msgstr "Commento" + +#: mediagoblin/user_pages/forms.py:30 +msgid "I am sure I want to delete this" +msgstr "" + +#: mediagoblin/user_pages/views.py:142 +msgid "Empty comments are not allowed." +msgstr "" + +#: mediagoblin/user_pages/views.py:148 +msgid "Comment posted!" +msgstr "" + +#: mediagoblin/user_pages/views.py:181 +msgid "You are about to delete another user's media. Proceed with caution." +msgstr "" + + diff --git a/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.mo index 9a010192..cc0ccbfa 100644 Binary files a/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.mo and b/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.mo differ diff --git a/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.po index 67db7ca2..183d09ed 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-09-25 20:26-0500\n" -"PO-Revision-Date: 2011-09-26 01:25+0000\n" +"POT-Creation-Date: 2011-11-01 23:14-0500\n" +"PO-Revision-Date: 2011-11-02 04:13+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -43,19 +43,19 @@ msgstr "Scrivilo ancora qui per assicurarti che non ci siano errori" msgid "Email address" msgstr "Indirizzo email" -#: mediagoblin/auth/views.py:42 +#: mediagoblin/auth/views.py:55 msgid "Sorry, registration is disabled on this instance." msgstr "Spiacente, registrazione è disabilitata su questa istanza" -#: mediagoblin/auth/views.py:60 +#: mediagoblin/auth/views.py:73 msgid "Sorry, a user with that name already exists." msgstr "Spiacente, esiste già un utente con quel nome" -#: mediagoblin/auth/views.py:64 +#: mediagoblin/auth/views.py:77 msgid "Sorry, that email address has already been taken." msgstr "Spiacente, quell'indirizzo email è già stato preso." -#: mediagoblin/auth/views.py:165 +#: mediagoblin/auth/views.py:179 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -63,60 +63,60 @@ msgstr "" "Il tuo indirizzo email è stato verificato. Puoi ora fare login, modificare " "il tuo profilo, e inserire immagini!" -#: mediagoblin/auth/views.py:171 +#: mediagoblin/auth/views.py:185 msgid "The verification key or user id is incorrect" msgstr "La chiave di verifica o l'id utente è sbagliato" -#: mediagoblin/auth/views.py:192 +#: mediagoblin/auth/views.py:207 msgid "Resent your verification email." msgstr "Rispedisci email di verifica" -#: mediagoblin/auth/views.py:228 +#: mediagoblin/auth/views.py:248 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." msgstr "" -#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 +#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Titolo" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "Tags" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:31 msgid "Slug" msgstr "" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:32 msgid "The slug can't be empty" msgstr "" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:33 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:40 msgid "Bio" msgstr "Bio" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:43 msgid "Website" msgstr "Sito web" -#: mediagoblin/edit/views.py:63 +#: mediagoblin/edit/views.py:64 msgid "An entry with that slug already exists for this user." msgstr "" -#: mediagoblin/edit/views.py:84 +#: mediagoblin/edit/views.py:85 msgid "You are editing another user's media. Proceed with caution." msgstr "" "Stai modificando documenti multimediale di un altro utente. Procedi con " "attenzione." -#: mediagoblin/edit/views.py:154 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." msgstr "Stai modificando il profilo di un utente. Procedi con attenzione." @@ -132,15 +132,15 @@ msgstr "Documento" msgid "Description of this work" msgstr "Descrizione di questo lavoro" -#: mediagoblin/submit/views.py:47 +#: mediagoblin/submit/views.py:46 msgid "You must provide a file." msgstr "Devi specificare un documento." -#: mediagoblin/submit/views.py:50 +#: mediagoblin/submit/views.py:49 msgid "The file doesn't seem to be an image!" msgstr "Il documento non sembra essere un'immagine!" -#: mediagoblin/submit/views.py:122 +#: mediagoblin/submit/views.py:121 msgid "Woohoo! Submitted!" msgstr "Evviva! " @@ -181,8 +181,8 @@ msgid "verify your email!" msgstr "verifica il tuo indirizzo email!" #: mediagoblin/templates/mediagoblin/base.html:73 -#: mediagoblin/templates/mediagoblin/auth/login.html:26 -#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/login.html:27 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Log in" msgstr "Accedi" @@ -261,11 +261,11 @@ msgstr "" msgid "Most recent media" msgstr "Documenti multimediali più recenti" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 msgid "Enter your new password" msgstr "Inserisci la tua nuova password" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 msgid "Enter your username or email" msgstr "Inserisci il tuo nome utente o email" @@ -292,23 +292,23 @@ msgid "" "a happy goblin!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:29 +#: mediagoblin/templates/mediagoblin/auth/login.html:30 msgid "Logging in failed!" msgstr "Accesso fallito!" -#: mediagoblin/templates/mediagoblin/auth/login.html:42 +#: mediagoblin/templates/mediagoblin/auth/login.html:43 msgid "Don't have an account yet?" msgstr "Non hai ancora un account?" -#: mediagoblin/templates/mediagoblin/auth/login.html:45 +#: mediagoblin/templates/mediagoblin/auth/login.html:46 msgid "Create one here!" msgstr "Creane uno qui!" -#: mediagoblin/templates/mediagoblin/auth/login.html:48 +#: mediagoblin/templates/mediagoblin/auth/login.html:49 msgid "Forgot your password?" msgstr "Hai dimenticato la password?" -#: mediagoblin/templates/mediagoblin/auth/login.html:51 +#: mediagoblin/templates/mediagoblin/auth/login.html:52 msgid "Change it!" msgstr "" @@ -316,7 +316,7 @@ msgstr "" msgid "Create an account!" msgstr "Crea un account!" -#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/auth/register.html:31 msgid "Create" msgstr "Crea" @@ -364,7 +364,7 @@ msgstr "Media taggata con:" msgid "Submit yer media" msgstr "Inoltra documento multimediale" -#: mediagoblin/templates/mediagoblin/submit/start.html:29 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 msgid "Submit" msgstr "Conferma" @@ -511,7 +511,15 @@ msgstr "Commento" msgid "I am sure I want to delete this" msgstr "Sono sicuro di volerlo cancellare" -#: mediagoblin/user_pages/views.py:175 +#: mediagoblin/user_pages/views.py:142 +msgid "Empty comments are not allowed." +msgstr "" + +#: mediagoblin/user_pages/views.py:148 +msgid "Comment posted!" +msgstr "" + +#: mediagoblin/user_pages/views.py:181 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" "Stai cancellando un documento multimediale di un altro utente. Procedi con " diff --git a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mo index 4bdc4d5a..5267eddc 100644 Binary files a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mo and b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mo differ diff --git a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po index ebc8ad52..59262d82 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-09-25 20:26-0500\n" -"PO-Revision-Date: 2011-09-26 01:25+0000\n" +"POT-Creation-Date: 2011-11-01 23:14-0500\n" +"PO-Revision-Date: 2011-11-02 04:13+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -43,76 +43,76 @@ msgstr "" msgid "Email address" msgstr "メールアドレス" -#: mediagoblin/auth/views.py:42 +#: mediagoblin/auth/views.py:55 msgid "Sorry, registration is disabled on this instance." msgstr "申し訳ありませんが、このインスタンスで登録は無効になっています。" -#: mediagoblin/auth/views.py:60 +#: mediagoblin/auth/views.py:73 msgid "Sorry, a user with that name already exists." msgstr "申し訳ありませんが、その名前を持つユーザーがすでに存在しています。" -#: mediagoblin/auth/views.py:64 +#: mediagoblin/auth/views.py:77 msgid "Sorry, that email address has already been taken." msgstr "" -#: mediagoblin/auth/views.py:165 +#: mediagoblin/auth/views.py:179 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" msgstr "メアドが確認されています。これで、ログインしてプロファイルを編集し、画像を提出することができます!" -#: mediagoblin/auth/views.py:171 +#: mediagoblin/auth/views.py:185 msgid "The verification key or user id is incorrect" msgstr "検証キーまたはユーザーIDが間違っています" -#: mediagoblin/auth/views.py:192 +#: mediagoblin/auth/views.py:207 msgid "Resent your verification email." msgstr "検証メールを再送しました。" -#: mediagoblin/auth/views.py:228 +#: mediagoblin/auth/views.py:248 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." msgstr "" -#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 +#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "タイトル" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "タグ" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:31 msgid "Slug" msgstr "スラグ" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:32 msgid "The slug can't be empty" msgstr "スラグは必要です。" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:33 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:40 msgid "Bio" msgstr "自己紹介" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:43 msgid "Website" msgstr "URL" -#: mediagoblin/edit/views.py:63 +#: mediagoblin/edit/views.py:64 msgid "An entry with that slug already exists for this user." msgstr "そのスラグを持つエントリは、このユーザーは既に存在します。" -#: mediagoblin/edit/views.py:84 +#: mediagoblin/edit/views.py:85 msgid "You are editing another user's media. Proceed with caution." msgstr "あなたは、他のユーザーのメディアを編集しています。ご注意ください。" -#: mediagoblin/edit/views.py:154 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." msgstr "あなたは、他のユーザーのプロファイルを編集しています。ご注意ください。" @@ -128,15 +128,15 @@ msgstr "ファイル" msgid "Description of this work" msgstr "" -#: mediagoblin/submit/views.py:47 +#: mediagoblin/submit/views.py:46 msgid "You must provide a file." msgstr "ファイルを提供する必要があります。" -#: mediagoblin/submit/views.py:50 +#: mediagoblin/submit/views.py:49 msgid "The file doesn't seem to be an image!" msgstr "ファイルが画像ではないようです!" -#: mediagoblin/submit/views.py:122 +#: mediagoblin/submit/views.py:121 msgid "Woohoo! Submitted!" msgstr "投稿終了!" @@ -175,8 +175,8 @@ msgid "verify your email!" msgstr "メアドを確認してください!" #: mediagoblin/templates/mediagoblin/base.html:73 -#: mediagoblin/templates/mediagoblin/auth/login.html:26 -#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/login.html:27 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Log in" msgstr "ログイン" @@ -245,11 +245,11 @@ msgstr "" msgid "Most recent media" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 msgid "Enter your new password" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 msgid "Enter your username or email" msgstr "" @@ -276,23 +276,23 @@ msgid "" "a happy goblin!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:29 +#: mediagoblin/templates/mediagoblin/auth/login.html:30 msgid "Logging in failed!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:42 +#: mediagoblin/templates/mediagoblin/auth/login.html:43 msgid "Don't have an account yet?" msgstr "まだアカウントを持っていませんか?" -#: mediagoblin/templates/mediagoblin/auth/login.html:45 +#: mediagoblin/templates/mediagoblin/auth/login.html:46 msgid "Create one here!" msgstr "ここで作成!" -#: mediagoblin/templates/mediagoblin/auth/login.html:48 +#: mediagoblin/templates/mediagoblin/auth/login.html:49 msgid "Forgot your password?" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:51 +#: mediagoblin/templates/mediagoblin/auth/login.html:52 msgid "Change it!" msgstr "" @@ -300,7 +300,7 @@ msgstr "" msgid "Create an account!" msgstr "アカウントを作成!" -#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/auth/register.html:31 msgid "Create" msgstr "" @@ -348,7 +348,7 @@ msgstr "タグ付けされたコンテンツ:" msgid "Submit yer media" msgstr "コンテンツを投稿" -#: mediagoblin/templates/mediagoblin/submit/start.html:29 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 msgid "Submit" msgstr "送信" @@ -488,7 +488,15 @@ msgstr "" msgid "I am sure I want to delete this" msgstr "" -#: mediagoblin/user_pages/views.py:175 +#: mediagoblin/user_pages/views.py:142 +msgid "Empty comments are not allowed." +msgstr "" + +#: mediagoblin/user_pages/views.py:148 +msgid "Comment posted!" +msgstr "" + +#: mediagoblin/user_pages/views.py:181 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.mo index 57447395..e6d1976b 100644 Binary files a/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.mo and b/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.mo differ diff --git a/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po index c982eb95..618daf6f 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-09-25 20:26-0500\n" -"PO-Revision-Date: 2011-09-26 01:25+0000\n" +"POT-Creation-Date: 2011-11-01 23:14-0500\n" +"PO-Revision-Date: 2011-11-02 04:13+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -43,19 +43,19 @@ msgstr "" msgid "Email address" msgstr "E-mail adres" -#: mediagoblin/auth/views.py:42 +#: mediagoblin/auth/views.py:55 msgid "Sorry, registration is disabled on this instance." msgstr "Sorry, registratie is uitgeschakeld op deze instantie." -#: mediagoblin/auth/views.py:60 +#: mediagoblin/auth/views.py:73 msgid "Sorry, a user with that name already exists." msgstr "Sorry, er bestaat al een gebruiker met die naam." -#: mediagoblin/auth/views.py:64 +#: mediagoblin/auth/views.py:77 msgid "Sorry, that email address has already been taken." msgstr "Sorry, dat e-mailadres is al ingenomen." -#: mediagoblin/auth/views.py:165 +#: mediagoblin/auth/views.py:179 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -63,60 +63,60 @@ msgstr "" "Uw e-mailadres is geverifieerd. U kunt nu inloggen, uw profiel bewerken, en " "afbeeldingen toevoegen!" -#: mediagoblin/auth/views.py:171 +#: mediagoblin/auth/views.py:185 msgid "The verification key or user id is incorrect" msgstr "De verificatie sleutel of gebruikers-ID is onjuist" -#: mediagoblin/auth/views.py:192 +#: mediagoblin/auth/views.py:207 msgid "Resent your verification email." msgstr "Verificatie e-mail opnieuw opgestuurd." -#: mediagoblin/auth/views.py:228 +#: mediagoblin/auth/views.py:248 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." msgstr "" -#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 +#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Titel" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "Etiket" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:31 msgid "Slug" msgstr "" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:32 msgid "The slug can't be empty" msgstr "" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:33 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:40 msgid "Bio" msgstr "Bio" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:43 msgid "Website" msgstr "Website" -#: mediagoblin/edit/views.py:63 +#: mediagoblin/edit/views.py:64 msgid "An entry with that slug already exists for this user." msgstr "" -#: mediagoblin/edit/views.py:84 +#: mediagoblin/edit/views.py:85 msgid "You are editing another user's media. Proceed with caution." msgstr "" "U bent de media van een andere gebruiker aan het aanpassen. Ga voorzichtig " "te werk." -#: mediagoblin/edit/views.py:154 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." msgstr "" "U bent een gebruikersprofiel aan het aanpassen. Ga voorzichtig te werk." @@ -133,15 +133,15 @@ msgstr "Bestand" msgid "Description of this work" msgstr "" -#: mediagoblin/submit/views.py:47 +#: mediagoblin/submit/views.py:46 msgid "You must provide a file." msgstr "U moet een bestand aangeven." -#: mediagoblin/submit/views.py:50 +#: mediagoblin/submit/views.py:49 msgid "The file doesn't seem to be an image!" msgstr "Het lijkt erop dat dit bestand geen afbeelding is!" -#: mediagoblin/submit/views.py:122 +#: mediagoblin/submit/views.py:121 msgid "Woohoo! Submitted!" msgstr "Mooizo! Toegevoegd!" @@ -180,8 +180,8 @@ msgid "verify your email!" msgstr "Controleer uw e-mail!" #: mediagoblin/templates/mediagoblin/base.html:73 -#: mediagoblin/templates/mediagoblin/auth/login.html:26 -#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/login.html:27 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Log in" msgstr "Inloggen" @@ -250,11 +250,11 @@ msgstr "" msgid "Most recent media" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 msgid "Enter your new password" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 msgid "Enter your username or email" msgstr "" @@ -281,23 +281,23 @@ msgid "" "a happy goblin!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:29 +#: mediagoblin/templates/mediagoblin/auth/login.html:30 msgid "Logging in failed!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:42 +#: mediagoblin/templates/mediagoblin/auth/login.html:43 msgid "Don't have an account yet?" msgstr "Heeft u nog geen account?" -#: mediagoblin/templates/mediagoblin/auth/login.html:45 +#: mediagoblin/templates/mediagoblin/auth/login.html:46 msgid "Create one here!" msgstr "Maak er hier een!" -#: mediagoblin/templates/mediagoblin/auth/login.html:48 +#: mediagoblin/templates/mediagoblin/auth/login.html:49 msgid "Forgot your password?" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:51 +#: mediagoblin/templates/mediagoblin/auth/login.html:52 msgid "Change it!" msgstr "" @@ -305,7 +305,7 @@ msgstr "" msgid "Create an account!" msgstr "Maak een account aan!" -#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/auth/register.html:31 msgid "Create" msgstr "" @@ -350,7 +350,7 @@ msgstr "Media met het etiket:" msgid "Submit yer media" msgstr "Voeg media toe" -#: mediagoblin/templates/mediagoblin/submit/start.html:29 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 msgid "Submit" msgstr "Voeg toe" @@ -494,7 +494,15 @@ msgstr "Commentaar" msgid "I am sure I want to delete this" msgstr "" -#: mediagoblin/user_pages/views.py:175 +#: mediagoblin/user_pages/views.py:142 +msgid "Empty comments are not allowed." +msgstr "" + +#: mediagoblin/user_pages/views.py:148 +msgid "Comment posted!" +msgstr "" + +#: mediagoblin/user_pages/views.py:181 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.mo index 7bf5a87a..ba427c29 100644 Binary files a/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.mo and b/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.mo differ diff --git a/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po index 4e1c382b..c74e1dd0 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-09-25 20:26-0500\n" -"PO-Revision-Date: 2011-09-26 01:25+0000\n" +"POT-Creation-Date: 2011-11-01 23:14-0500\n" +"PO-Revision-Date: 2011-11-02 04:13+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -37,86 +37,87 @@ msgstr "Gjenta passord" #: mediagoblin/auth/forms.py:39 msgid "Type it again here to make sure there are no spelling mistakes." -msgstr "" +msgstr "Skriv passordet omatt for å unngå stavefeil." #: mediagoblin/auth/forms.py:42 msgid "Email address" -msgstr "E-postadresse" +msgstr "Epost" -#: mediagoblin/auth/views.py:42 +#: mediagoblin/auth/views.py:55 msgid "Sorry, registration is disabled on this instance." msgstr "Registrering er slege av. Orsak." -#: mediagoblin/auth/views.py:60 +#: mediagoblin/auth/views.py:73 msgid "Sorry, a user with that name already exists." msgstr "Ein konto med dette brukarnamnet finst allereide." -#: mediagoblin/auth/views.py:64 +#: mediagoblin/auth/views.py:77 msgid "Sorry, that email address has already been taken." msgstr "Den epostadressa er allereide teken." -#: mediagoblin/auth/views.py:165 +#: mediagoblin/auth/views.py:179 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" msgstr "" -"E-postadressa di, og dimed kontoen din er stadfesta. Du kan no logga inn, " -"endra profilen din og lasta opp filer." +"Kontoen din er stadfesta. Du kan no logga inn, endra profilen din og lasta " +"opp filer." -#: mediagoblin/auth/views.py:171 +#: mediagoblin/auth/views.py:185 msgid "The verification key or user id is incorrect" msgstr "Stadfestingsnykelen eller brukar-ID-en din er feil." -#: mediagoblin/auth/views.py:192 +#: mediagoblin/auth/views.py:207 msgid "Resent your verification email." msgstr "Send ein ny stadfestingsepost." -#: mediagoblin/auth/views.py:228 +#: mediagoblin/auth/views.py:248 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." msgstr "" +"Kunne ikkje senda epost. Brukarnamnet ditt er inaktivt eller uverifisert." -#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 +#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Tittel" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "Merkelappar" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:31 msgid "Slug" -msgstr "Adressetittel" +msgstr "Nettnamn" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:32 msgid "The slug can't be empty" -msgstr "Adressetittelen kan ikkje vera tom" +msgstr "Nettnamnet kan ikkje vera tomt" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:33 msgid "" "The title part of this media's URL. You usually don't need to change this." -msgstr "" +msgstr "Nettnamnet (adressetittel) for mediefila di. Trengst ikkje endrast." -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:40 msgid "Bio" msgstr "Presentasjon" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:43 msgid "Website" msgstr "Heimeside" -#: mediagoblin/edit/views.py:63 +#: mediagoblin/edit/views.py:64 msgid "An entry with that slug already exists for this user." msgstr "Eit innlegg med denne adressetittelen finst allereie." -#: mediagoblin/edit/views.py:84 +#: mediagoblin/edit/views.py:85 msgid "You are editing another user's media. Proceed with caution." -msgstr "Ver forsiktig, du redigerer ein annan konto sitt innlegg." +msgstr "Trå varsamt, du endrar nokon andre sine mediefiler." -#: mediagoblin/edit/views.py:154 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." -msgstr "Ver forsiktig, du redigerer ein annan konto sin profil." +msgstr "Trå varsamt, du endrar nokon andre sin profil." #: mediagoblin/process_media/errors.py:44 msgid "Invalid file given for media type." @@ -128,17 +129,17 @@ msgstr "Fil" #: mediagoblin/submit/forms.py:30 msgid "Description of this work" -msgstr "" +msgstr "Skildring av mediefila" -#: mediagoblin/submit/views.py:47 +#: mediagoblin/submit/views.py:46 msgid "You must provide a file." msgstr "Du må velja ei fil." -#: mediagoblin/submit/views.py:50 +#: mediagoblin/submit/views.py:49 msgid "The file doesn't seem to be an image!" msgstr "Fila verkar ikkje å vera ei gyldig biletefil." -#: mediagoblin/submit/views.py:122 +#: mediagoblin/submit/views.py:121 msgid "Woohoo! Submitted!" msgstr "Johoo! Opplasta!" @@ -148,18 +149,19 @@ msgstr "Oops." #: mediagoblin/templates/mediagoblin/404.html:24 msgid "There doesn't seem to be a page at this address. Sorry!" -msgstr "Det ser ikkje ut til å vera noko her..." +msgstr "Det ser ikkje ut til å vera noko her... Orsak." #: mediagoblin/templates/mediagoblin/404.html:26 msgid "" "If you're sure the address is correct, maybe the page you're looking for has" " been moved or deleted." msgstr "" -"Er du sikker på at adressa er korrekt, så er ho truleg flytta eller sletta." +"Er du sikker på at adressa er korrekt, so er sida truleg flytta eller " +"sletta." #: mediagoblin/templates/mediagoblin/404.html:32 msgid "Image of 404 goblin stressing out" -msgstr "Bilete av stressa 404-troll." +msgstr "Bilete av stressa 404-tusse." #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" @@ -178,8 +180,8 @@ msgid "verify your email!" msgstr "Stadfest epostadressa di" #: mediagoblin/templates/mediagoblin/base.html:73 -#: mediagoblin/templates/mediagoblin/auth/login.html:26 -#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/login.html:27 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Log in" msgstr "Logg inn" @@ -188,10 +190,12 @@ msgid "" "Powered by MediaGoblin, a GNU project" msgstr "" +"Drive av MediaGoblin, eit GNU-prosjekt" #: mediagoblin/templates/mediagoblin/root.html:24 msgid "Explore" -msgstr "" +msgstr "Utforsk" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." @@ -220,8 +224,9 @@ msgid "" "Aiming to make the world a better place through decentralization and " "(eventually, coming soon!) federation!" msgstr "" -"Arbeidar for å gjera verda ein betre stad gjennom desentralisering (til " -"slutt, kjem snart!) federering." +"Arbeidar for å gjera verda ein betre stad gjennom desentralisering og (til " +"slutt, kjem snart!) federering, enkelt forklart deling og sending av " +"mediefiler og kommentarar over fleire nettstader." #: mediagoblin/templates/mediagoblin/root.html:33 msgid "" @@ -241,7 +246,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:38 msgid "Excited to join us?" -msgstr "" +msgstr "Lyst til å bli med oss?" #: mediagoblin/templates/mediagoblin/root.html:39 #, python-format @@ -250,27 +255,33 @@ msgid "" " or\n" " Set up MediaGoblin on your own server" msgstr "" +"Opprett ein " +"gratis konto eller installer MediaGoblin på " +"eigen tenar" #: mediagoblin/templates/mediagoblin/root.html:53 msgid "Most recent media" -msgstr "" +msgstr "Nyaste mediefiler" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 msgid "Enter your new password" -msgstr "" +msgstr "Fyll inn passord" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 msgid "Enter your username or email" -msgstr "" +msgstr "Fyll inn brukarnamn eller epost" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." -msgstr "" +msgstr "Passordet endra. Prøv å logga inn no." #: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 msgid "" "Check your inbox. We sent an email with a URL for changing your password." msgstr "" +"Sjekk innboksen din. Me har sendt deg ein epost med ei netadresse for " +"passordendring." #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format @@ -285,32 +296,39 @@ msgid "" "If you think this is an error, just ignore this email and continue being\n" "a happy goblin!" msgstr "" +"Hei %(username)s,\n" +"\n" +"for å endra MediaGoblin-passordet ditt, opna fylgjande URL i ein netlesar:\n" +"\n" +" <%(verification_url)s>\n" +"\n" +"Dersom du mistenkjer dette er eit misstak, ignorer eposten og hald fram med å vera ein glad goblin!" -#: mediagoblin/templates/mediagoblin/auth/login.html:29 +#: mediagoblin/templates/mediagoblin/auth/login.html:30 msgid "Logging in failed!" msgstr "Innlogging feila" -#: mediagoblin/templates/mediagoblin/auth/login.html:42 +#: mediagoblin/templates/mediagoblin/auth/login.html:43 msgid "Don't have an account yet?" msgstr "Har du ingen konto?" -#: mediagoblin/templates/mediagoblin/auth/login.html:45 +#: mediagoblin/templates/mediagoblin/auth/login.html:46 msgid "Create one here!" msgstr "Lag ein!" -#: mediagoblin/templates/mediagoblin/auth/login.html:48 +#: mediagoblin/templates/mediagoblin/auth/login.html:49 msgid "Forgot your password?" -msgstr "" +msgstr "Gløymd passordet?" -#: mediagoblin/templates/mediagoblin/auth/login.html:51 +#: mediagoblin/templates/mediagoblin/auth/login.html:52 msgid "Change it!" -msgstr "" +msgstr "Endra" #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Lag ein konto." -#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/auth/register.html:31 msgid "Create" msgstr "Opprett" @@ -326,19 +344,19 @@ msgid "" msgstr "" "Hei %(username)s,\n" "\n" -"opna den følgjande adressa i netlesaren din for å aktivera kontoen din:\n" +"opna fylgjande netadresse i netlesaren din for å aktivera kontoen din:\n" "\n" "%(verification_url)s" #: mediagoblin/templates/mediagoblin/edit/edit.html:29 #, python-format msgid "Editing %(media_title)s" -msgstr "Redigerer %(media_title)s" +msgstr "Endrar %(media_title)s" #: mediagoblin/templates/mediagoblin/edit/edit.html:36 #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49 msgid "Cancel" -msgstr "Avbryt" +msgstr "Bryt av" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 @@ -348,7 +366,7 @@ msgstr "Lagra" #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format msgid "Editing %(username)s's profile" -msgstr "Redigerar profilen til %(username)s" +msgstr "Endrar profilen til %(username)s" #: mediagoblin/templates/mediagoblin/listings/tag.html:31 msgid "Media tagged with:" @@ -358,14 +376,14 @@ msgstr "Merkelappar:" msgid "Submit yer media" msgstr "Last opp" -#: mediagoblin/templates/mediagoblin/submit/start.html:29 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 msgid "Submit" msgstr "Send" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 #, python-format msgid "%(username)s's media" -msgstr "%(username)s sin mediafiler" +msgstr "%(username)s sine mediefiler" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 #: mediagoblin/templates/mediagoblin/user_pages/user.html:32 @@ -375,11 +393,11 @@ msgstr "Fann ingen slik brukar" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" -msgstr "" +msgstr "Vil du verkeleg sletta %(title)s?" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 msgid "Delete Permanently" -msgstr "" +msgstr "Slett permament" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 msgid "Media processing panel" @@ -400,7 +418,7 @@ msgstr "Ingen media under handsaming" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 msgid "These uploads failed to process:" -msgstr "Klarte ikkje handsame desse opplasta filene:" +msgstr "Klarte ikkje handsama desse opplasta filene:" #: mediagoblin/templates/mediagoblin/user_pages/user.html:39 #: mediagoblin/templates/mediagoblin/user_pages/user.html:59 @@ -460,21 +478,21 @@ msgstr "Brukaren har ikkje fylt ut profilen sin (enno)." #: mediagoblin/templates/mediagoblin/user_pages/user.html:122 #, python-format msgid "View all of %(username)s's media" -msgstr "Sjå all media frå %(username)s" +msgstr "Sjå alle %(username)s sine mediefiler" #: mediagoblin/templates/mediagoblin/user_pages/user.html:135 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." -msgstr "Her kjem mediet ditt. Ser ikkje ut til at du har lagt til noko." +msgstr "Her kjem mediefilene dine. Ser ikkje ut til at du har lagt til noko." #: mediagoblin/templates/mediagoblin/user_pages/user.html:141 msgid "Add media" -msgstr "Legg til media" +msgstr "Legg til mediefiler" #: mediagoblin/templates/mediagoblin/user_pages/user.html:147 msgid "There doesn't seem to be any media here yet..." -msgstr "Ser ikkje ut til at det finst noko media her nett no." +msgstr "Ser ikkje ut til at det finst nokon mediefiler her nett no." #: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 msgid "feed icon" @@ -486,11 +504,11 @@ msgstr "Atom-kjelde" #: mediagoblin/templates/mediagoblin/utils/pagination.html:40 msgid "Newer" -msgstr "" +msgstr "Nyare" #: mediagoblin/templates/mediagoblin/utils/pagination.html:46 msgid "Older" -msgstr "" +msgstr "Eldre" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" @@ -498,10 +516,19 @@ msgstr "Innspel" #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" +msgstr "Eg er sikker eg vil sletta dette" + +#: mediagoblin/user_pages/views.py:142 +msgid "Empty comments are not allowed." msgstr "" -#: mediagoblin/user_pages/views.py:175 +#: mediagoblin/user_pages/views.py:148 +msgid "Comment posted!" +msgstr "" + +#: mediagoblin/user_pages/views.py:181 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" +"Du er i ferd med å sletta ein annan brukar sine mediefiler. Trå varsamt." diff --git a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo index 189733f6..31cb860c 100644 Binary files a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo and b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo differ diff --git a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po index 6d0195fe..047e598b 100644 --- a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po @@ -4,12 +4,13 @@ # # Translators: # , 2011. +# ufa , 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-09-25 20:26-0500\n" -"PO-Revision-Date: 2011-09-26 01:25+0000\n" +"POT-Creation-Date: 2011-11-01 23:14-0500\n" +"PO-Revision-Date: 2011-11-02 04:13+0000\n" "Last-Translator: cwebber \n" "Language-Team: Portuguese (Brazilian) (http://www.transifex.net/projects/p/mediagoblin/team/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -38,24 +39,25 @@ msgstr "Confirmar senha" #: mediagoblin/auth/forms.py:39 msgid "Type it again here to make sure there are no spelling mistakes." msgstr "" +"Digite novamente aqui para ter certeza que não houve erros de digitação" #: mediagoblin/auth/forms.py:42 msgid "Email address" msgstr "Endereço de email" -#: mediagoblin/auth/views.py:42 +#: mediagoblin/auth/views.py:55 msgid "Sorry, registration is disabled on this instance." msgstr "Desculpa, o registro está desativado neste momento." -#: mediagoblin/auth/views.py:60 +#: mediagoblin/auth/views.py:73 msgid "Sorry, a user with that name already exists." msgstr "Desculpe, um usuário com este nome já existe." -#: mediagoblin/auth/views.py:64 +#: mediagoblin/auth/views.py:77 msgid "Sorry, that email address has already been taken." -msgstr "" +msgstr "Desculpe, esse endereço de email já está em uso." -#: mediagoblin/auth/views.py:165 +#: mediagoblin/auth/views.py:179 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -63,64 +65,67 @@ msgstr "" "O seu endereço de e-mail foi verificado. Você pode agora fazer login, editar" " seu perfil, e enviar imagens!" -#: mediagoblin/auth/views.py:171 +#: mediagoblin/auth/views.py:185 msgid "The verification key or user id is incorrect" msgstr "A chave de verificação ou nome usuário estão incorretos." -#: mediagoblin/auth/views.py:192 +#: mediagoblin/auth/views.py:207 msgid "Resent your verification email." msgstr "O email de verificação foi reenviado." -#: mediagoblin/auth/views.py:228 +#: mediagoblin/auth/views.py:248 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." msgstr "" +"Não foi possível enviar o email de recuperação de senha, pois seu nome de " +"usuário está inativo ou o email da sua conta não foi confirmado." -#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 +#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Título" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 msgid "Tags" -msgstr "Tags" +msgstr "Etiquetas" + +#: mediagoblin/edit/forms.py:31 +msgid "Slug" +msgstr "Arquivo" + +#: mediagoblin/edit/forms.py:32 +msgid "The slug can't be empty" +msgstr "O arquivo não pode estar vazio" #: mediagoblin/edit/forms.py:33 -msgid "Slug" -msgstr "" - -#: mediagoblin/edit/forms.py:34 -msgid "The slug can't be empty" -msgstr "" - -#: mediagoblin/edit/forms.py:35 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" +"A parte título da URL dessa mídia. Geralmente não é necessário alterar isso." -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:40 msgid "Bio" -msgstr "Biográfia" +msgstr "Biografia" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:43 msgid "Website" msgstr "Website" -#: mediagoblin/edit/views.py:63 +#: mediagoblin/edit/views.py:64 msgid "An entry with that slug already exists for this user." -msgstr "" +msgstr "Uma entrada com esse arquivo já existe para esse usuário" -#: mediagoblin/edit/views.py:84 +#: mediagoblin/edit/views.py:85 msgid "You are editing another user's media. Proceed with caution." -msgstr "" +msgstr "Você está editando a mídia de outro usuário. Tenha cuidado." -#: mediagoblin/edit/views.py:154 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." -msgstr "" +msgstr "Você está editando um perfil de usuário. Tenha cuidado." #: mediagoblin/process_media/errors.py:44 msgid "Invalid file given for media type." -msgstr "" +msgstr "Arquivo inválido para esse tipo de mídia" #: mediagoblin/submit/forms.py:25 msgid "File" @@ -128,37 +133,39 @@ msgstr "Arquivo" #: mediagoblin/submit/forms.py:30 msgid "Description of this work" -msgstr "" +msgstr "Descrição desse trabalho" -#: mediagoblin/submit/views.py:47 +#: mediagoblin/submit/views.py:46 msgid "You must provide a file." msgstr "Você deve fornecer um arquivo." -#: mediagoblin/submit/views.py:50 +#: mediagoblin/submit/views.py:49 msgid "The file doesn't seem to be an image!" msgstr "O arquivo não parece ser uma imagem!" -#: mediagoblin/submit/views.py:122 +#: mediagoblin/submit/views.py:121 msgid "Woohoo! Submitted!" msgstr "Eba! Enviado!" #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" -msgstr "" +msgstr "Oops" #: mediagoblin/templates/mediagoblin/404.html:24 msgid "There doesn't seem to be a page at this address. Sorry!" -msgstr "" +msgstr "Aparentemente não existe uma página com esse endereço. Desculpe!" #: mediagoblin/templates/mediagoblin/404.html:26 msgid "" "If you're sure the address is correct, maybe the page you're looking for has" " been moved or deleted." msgstr "" +"Se você está certo de que o endereço está correto, talvez a página que " +"esteja procurando tenha sido apagada ou mudou de endereço" #: mediagoblin/templates/mediagoblin/404.html:32 msgid "Image of 404 goblin stressing out" -msgstr "" +msgstr "Imagem do goblin 404 aparecendo" #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" @@ -166,7 +173,7 @@ msgstr "GNU MediaGoblin" #: mediagoblin/templates/mediagoblin/base.html:47 msgid "MediaGoblin logo" -msgstr "" +msgstr "Logo MediaGoblin" #: mediagoblin/templates/mediagoblin/base.html:52 msgid "Submit media" @@ -177,8 +184,8 @@ msgid "verify your email!" msgstr "Verifique seu email!" #: mediagoblin/templates/mediagoblin/base.html:73 -#: mediagoblin/templates/mediagoblin/auth/login.html:26 -#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/login.html:27 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Log in" msgstr "Entrar" @@ -187,42 +194,52 @@ msgid "" "Powered by MediaGoblin, a GNU project" msgstr "" +"Desenvolvido por MediaGoblin, um " +"projeto GNU" #: mediagoblin/templates/mediagoblin/root.html:24 msgid "Explore" -msgstr "" +msgstr "Explorar" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." -msgstr "" +msgstr "Olá amante de mídias. MediaGoblin é..." #: mediagoblin/templates/mediagoblin/root.html:29 msgid "The perfect place for your media!" -msgstr "" +msgstr "O lugar perfeito para sua mídia!" #: mediagoblin/templates/mediagoblin/root.html:30 msgid "" "A place for people to collaborate and show off original and derived " "creations!" msgstr "" +"Um lugar para as pessoas colaborarem e mostrarem suas criações originais e " +"derivadas!" #: mediagoblin/templates/mediagoblin/root.html:31 msgid "" "Free, as in freedom. (We’re a GNU project, " "after all.)" msgstr "" +"Livre como a liberdade. (Afinal, somos um projeto GNU)" #: mediagoblin/templates/mediagoblin/root.html:32 msgid "" "Aiming to make the world a better place through decentralization and " "(eventually, coming soon!) federation!" msgstr "" +"Com o objetivo de fazer um mundo melhor através da descentralização e " +"(eventualmente, em breve) federação!" #: mediagoblin/templates/mediagoblin/root.html:33 msgid "" "Built for extensibility. (Multiple media types coming soon to the software," " including video support!)" msgstr "" +"Construído para extensibilidade. (Múltiplos tipos de mídia em breve, " +"incluindo suporte a vídeo) " #: mediagoblin/templates/mediagoblin/root.html:34 msgid "" @@ -230,10 +247,13 @@ msgid "" "href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this" " software!)" msgstr "" +"Desenvolvido por pessoas como você. (Você pode ajudar a melhorar " +"esse software)" #: mediagoblin/templates/mediagoblin/root.html:38 msgid "Excited to join us?" -msgstr "" +msgstr "Animado para juntar-se a nós?" #: mediagoblin/templates/mediagoblin/root.html:39 #, python-format @@ -242,27 +262,32 @@ msgid "" " or\n" " Set up MediaGoblin on your own server" msgstr "" +" Crie uma conta grátis \n" +" ou Configure seu próprio servidor MediaGoblin\n" +" " #: mediagoblin/templates/mediagoblin/root.html:53 msgid "Most recent media" -msgstr "" +msgstr "Mídia mais recente" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 msgid "Enter your new password" -msgstr "" +msgstr "Digite sua nova senha" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 msgid "Enter your username or email" -msgstr "" +msgstr "Digite seu nome de usuário ou email" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." -msgstr "" +msgstr "Sua senha foi alterada. Tente entrar agora." #: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 msgid "" "Check your inbox. We sent an email with a URL for changing your password." msgstr "" +"Verifique sua caixa de entrada. Mandamos um email com a URL para troca da " +"senha" #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format @@ -277,34 +302,42 @@ msgid "" "If you think this is an error, just ignore this email and continue being\n" "a happy goblin!" msgstr "" +"Olá %(username)s,\n" +"\n" +"para alterar sua senha do GNU MediaGoblin, abra a seguinte URL\n" +"no seu navegador web:\n" +"\n" +"%(verification_url)s\n" +"\n" +"Se você acha que isso é um erro, desconsidere esse email e continue sendo um goblin feliz" -#: mediagoblin/templates/mediagoblin/auth/login.html:29 +#: mediagoblin/templates/mediagoblin/auth/login.html:30 msgid "Logging in failed!" -msgstr "" +msgstr "Autenticação falhou" -#: mediagoblin/templates/mediagoblin/auth/login.html:42 +#: mediagoblin/templates/mediagoblin/auth/login.html:43 msgid "Don't have an account yet?" msgstr "Ainda não tem conta?" -#: mediagoblin/templates/mediagoblin/auth/login.html:45 +#: mediagoblin/templates/mediagoblin/auth/login.html:46 msgid "Create one here!" msgstr "Crie uma aqui!" -#: mediagoblin/templates/mediagoblin/auth/login.html:48 +#: mediagoblin/templates/mediagoblin/auth/login.html:49 msgid "Forgot your password?" -msgstr "" +msgstr "Esqueceu sua senha?" -#: mediagoblin/templates/mediagoblin/auth/login.html:51 +#: mediagoblin/templates/mediagoblin/auth/login.html:52 msgid "Change it!" -msgstr "" +msgstr "Altere-a" #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Criar uma conta!" -#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/auth/register.html:31 msgid "Create" -msgstr "" +msgstr "Criar" #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format @@ -344,69 +377,70 @@ msgstr "Editando perfil de %(username)s" #: mediagoblin/templates/mediagoblin/listings/tag.html:31 msgid "Media tagged with:" -msgstr "" +msgstr "Mídia marcada como:" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" msgstr "Envie sua mídia" -#: mediagoblin/templates/mediagoblin/submit/start.html:29 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 msgid "Submit" msgstr "Enviar" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 #, python-format msgid "%(username)s's media" -msgstr "" +msgstr "Mídia de %(username)s " #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 #: mediagoblin/templates/mediagoblin/user_pages/user.html:32 msgid "Sorry, no such user found." -msgstr "Desculpe, tal usuário não encontrado." +msgstr "Desculpe, esse usuário não foi encontrado." #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" -msgstr "" +msgstr "Realmente apagar %(title)s ?" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 msgid "Delete Permanently" -msgstr "" +msgstr "Apagar permanentemente" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 msgid "Media processing panel" -msgstr "" +msgstr "Painel de processamento de mídia" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 msgid "" "You can track the state of media being processed for your gallery here." msgstr "" +"Você pode verificar como a mídia esta sendo processada para sua galeria aqui" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 msgid "Media in-processing" -msgstr "" +msgstr "Mídia em processo" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 msgid "No media in-processing" -msgstr "" +msgstr "Nenhuma mídia em processo" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 msgid "These uploads failed to process:" -msgstr "" +msgstr "Esses envios não foram processados:" #: mediagoblin/templates/mediagoblin/user_pages/user.html:39 #: mediagoblin/templates/mediagoblin/user_pages/user.html:59 msgid "Email verification needed" -msgstr "" +msgstr "Verificação de email necessária" #: mediagoblin/templates/mediagoblin/user_pages/user.html:42 msgid "Almost done! Your account still needs to be activated." -msgstr "" +msgstr "Quase pronto! Sua conta ainda precisa ser ativada" #: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" "An email should arrive in a few moments with instructions on how to do so." -msgstr "Receberá um email com instruções de como fazer." +msgstr "Um email deve chegar em instantes com instruções de como fazê-lo." #: mediagoblin/templates/mediagoblin/user_pages/user.html:51 msgid "In case it doesn't:" @@ -421,6 +455,8 @@ msgid "" "Someone has registered an account with this username, but it still has to be" " activated." msgstr "" +"Alguém registrou uma conta com esse nome de usuário, mas ainda precisa ser " +"ativada." #: mediagoblin/templates/mediagoblin/user_pages/user.html:68 #, python-format @@ -438,7 +474,7 @@ msgstr "Perfil de %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/user.html:85 msgid "Here's a spot to tell others about yourself." -msgstr "" +msgstr "Aqui é o lugar onde você fala de si para os outros." #: mediagoblin/templates/mediagoblin/user_pages/user.html:90 #: mediagoblin/templates/mediagoblin/user_pages/user.html:108 @@ -447,53 +483,63 @@ msgstr "Editar perfil" #: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "This user hasn't filled in their profile (yet)." -msgstr "" +msgstr "Esse usuário não preencheu seu perfil (ainda)." #: mediagoblin/templates/mediagoblin/user_pages/user.html:122 #, python-format msgid "View all of %(username)s's media" -msgstr "" +msgstr "Ver todas as mídias de %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/user.html:135 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "" +"Aqui é onde sua mídia vai aparecer, mas parece que você não adicionou nada " +"ainda." #: mediagoblin/templates/mediagoblin/user_pages/user.html:141 msgid "Add media" -msgstr "" +msgstr "Adicionar mídia" #: mediagoblin/templates/mediagoblin/user_pages/user.html:147 msgid "There doesn't seem to be any media here yet..." -msgstr "" +msgstr "Aparentemente não há nenhuma mídia aqui ainda..." #: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 msgid "feed icon" -msgstr "" +msgstr "ícone feed" #: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 msgid "Atom feed" -msgstr "" +msgstr "Atom feed" #: mediagoblin/templates/mediagoblin/utils/pagination.html:40 msgid "Newer" -msgstr "" +msgstr "Mais novo" #: mediagoblin/templates/mediagoblin/utils/pagination.html:46 msgid "Older" -msgstr "" +msgstr "Mais velho" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" -msgstr "" +msgstr "Comentário" #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" +msgstr "Eu tenho certeza de que quero pagar isso" + +#: mediagoblin/user_pages/views.py:142 +msgid "Empty comments are not allowed." msgstr "" -#: mediagoblin/user_pages/views.py:175 +#: mediagoblin/user_pages/views.py:148 +msgid "Comment posted!" +msgstr "" + +#: mediagoblin/user_pages/views.py:181 msgid "You are about to delete another user's media. Proceed with caution." -msgstr "" +msgstr "Você vai apagar uma mídia de outro usuário. Tenha cuidado." diff --git a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo index f43e25f6..2ab9cf8b 100644 Binary files a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo and b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo differ diff --git a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po index 2d2ce467..01fe5c48 100644 --- a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ro/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-09-25 20:26-0500\n" -"PO-Revision-Date: 2011-09-26 01:25+0000\n" -"Last-Translator: cwebber \n" +"POT-Creation-Date: 2011-11-01 23:14-0500\n" +"PO-Revision-Date: 2011-11-02 20:49+0000\n" +"Last-Translator: gap \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -43,19 +43,19 @@ msgstr "Introdu parola din nou pentru verificare." msgid "Email address" msgstr "Adresa de e-mail" -#: mediagoblin/auth/views.py:42 +#: mediagoblin/auth/views.py:55 msgid "Sorry, registration is disabled on this instance." msgstr "Ne pare rău, dar înscrierile sunt dezactivate pe acest server." -#: mediagoblin/auth/views.py:60 +#: mediagoblin/auth/views.py:73 msgid "Sorry, a user with that name already exists." msgstr "Ne pare rău, există deja un utilizator cu același nume." -#: mediagoblin/auth/views.py:64 +#: mediagoblin/auth/views.py:77 msgid "Sorry, that email address has already been taken." msgstr "Ne pare rău, această adresă de e-mail este deja rezervată." -#: mediagoblin/auth/views.py:165 +#: mediagoblin/auth/views.py:179 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -63,15 +63,15 @@ msgstr "" "Adresa ta de e-mail a fost confirmată. Poți să te autentifici, să îți " "completezi profilul și să trimiți imagini!" -#: mediagoblin/auth/views.py:171 +#: mediagoblin/auth/views.py:185 msgid "The verification key or user id is incorrect" msgstr "Cheie de verificare sau user ID incorect." -#: mediagoblin/auth/views.py:192 +#: mediagoblin/auth/views.py:207 msgid "Resent your verification email." msgstr "E-mail-ul de verificare a fost retrimis." -#: mediagoblin/auth/views.py:228 +#: mediagoblin/auth/views.py:248 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." @@ -79,47 +79,47 @@ 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ă." -#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 +#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Titlu" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "Etichete" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:31 msgid "Slug" msgstr "Identificator" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:32 msgid "The slug can't be empty" msgstr "Identificatorul nu poate să lipsească" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:33 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" "Partea din adresa acestui fișier corespunzătoare titlului. De regulă nu " "trebuie modificată." -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:40 msgid "Bio" msgstr "Biografie" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:43 msgid "Website" msgstr "Sit Web" -#: mediagoblin/edit/views.py:63 +#: mediagoblin/edit/views.py:64 msgid "An entry with that slug already exists for this user." msgstr "" "Există deja un entry cu același identificator pentru acest utilizator." -#: mediagoblin/edit/views.py:84 +#: mediagoblin/edit/views.py:85 msgid "You are editing another user's media. Proceed with caution." msgstr "Editezi fișierul unui alt utilizator. Se recomandă prudență." -#: mediagoblin/edit/views.py:154 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." msgstr "Editezi profilul unui utilizator. Se recomandă prudență." @@ -135,15 +135,15 @@ msgstr "Fișier" msgid "Description of this work" msgstr "Descrierea acestui fișier" -#: mediagoblin/submit/views.py:47 +#: mediagoblin/submit/views.py:46 msgid "You must provide a file." msgstr "Trebuie să selectezi un fișier." -#: mediagoblin/submit/views.py:50 +#: mediagoblin/submit/views.py:49 msgid "The file doesn't seem to be an image!" msgstr "Fișierul nu pare a fi o imagine!" -#: mediagoblin/submit/views.py:122 +#: mediagoblin/submit/views.py:121 msgid "Woohoo! Submitted!" msgstr "Gata, trimis!" @@ -160,8 +160,8 @@ msgid "" "If you're sure the address is correct, maybe the page you're looking for has" " been moved or deleted." msgstr "" -"Dacă ești sigur că adresa este corectă, poate că pagina pe care o cauți a " -"fost mutată sau ștearsă." +"Dacă ești sigur că adresa e corectă, poate că pagina pe care o cauți a fost " +"mutată sau ștearsă." #: mediagoblin/templates/mediagoblin/404.html:32 msgid "Image of 404 goblin stressing out" @@ -184,8 +184,8 @@ msgid "verify your email!" msgstr "verifică e-mail-ul!" #: mediagoblin/templates/mediagoblin/base.html:73 -#: mediagoblin/templates/mediagoblin/auth/login.html:26 -#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/login.html:27 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Log in" msgstr "Autentificare" @@ -261,27 +261,32 @@ msgid "" " or\n" " Set up MediaGoblin on your own server" msgstr "" +"Creează gratuit un cont\n" +" sau\n" +" instalează MediaGoblin pe serverul tău" #: mediagoblin/templates/mediagoblin/root.html:53 msgid "Most recent media" msgstr "Cele mai recente fișiere" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 msgid "Enter your new password" msgstr "Introdu noua parolă" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 msgid "Enter your username or email" msgstr "Introdu numele de utilizator sau adresa de e-mail" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." -msgstr "" +msgstr "Parola a fost schimbată. Încearcă să te autentifici acum." #: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 msgid "" "Check your inbox. We sent an email with a URL for changing your password." msgstr "" +"Verifică-ți căsuța de e-mail. Ți-am trimis un mesaj cu link-ul pentru " +"schimbarea parolei." #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format @@ -298,29 +303,29 @@ msgid "" msgstr "" "Bună, %(username)s\n" "\n" -"Pentru a modifica parola ta la GNU MediaGoblin, accesează adresa următoare:\n" +"Pentru a schimba parola ta la GNU MediaGoblin, accesează adresa următoare:\n" "\n" "%(verification_url)s\n" "\n" "Dacă ai primit acest mesaj din greșeală, ignoră-l și fii mai departe un elf fericit!" -#: mediagoblin/templates/mediagoblin/auth/login.html:29 +#: mediagoblin/templates/mediagoblin/auth/login.html:30 msgid "Logging in failed!" msgstr "Autentificare eșuată!" -#: mediagoblin/templates/mediagoblin/auth/login.html:42 +#: mediagoblin/templates/mediagoblin/auth/login.html:43 msgid "Don't have an account yet?" msgstr "Nu ai un cont?" -#: mediagoblin/templates/mediagoblin/auth/login.html:45 +#: mediagoblin/templates/mediagoblin/auth/login.html:46 msgid "Create one here!" msgstr "Creează-l aici!" -#: mediagoblin/templates/mediagoblin/auth/login.html:48 +#: mediagoblin/templates/mediagoblin/auth/login.html:49 msgid "Forgot your password?" msgstr "Ai uitat parola?" -#: mediagoblin/templates/mediagoblin/auth/login.html:51 +#: mediagoblin/templates/mediagoblin/auth/login.html:52 msgid "Change it!" msgstr "Schimb-o!" @@ -328,7 +333,7 @@ msgstr "Schimb-o!" msgid "Create an account!" msgstr "Creează un cont!" -#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/auth/register.html:31 msgid "Create" msgstr "Creează" @@ -376,7 +381,7 @@ msgstr "Etichete:" msgid "Submit yer media" msgstr "Trimite fișierele tale media" -#: mediagoblin/templates/mediagoblin/submit/start.html:29 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 msgid "Submit" msgstr "Trimite" @@ -432,11 +437,11 @@ msgstr "Aproape gata! Mai trebuie doar să activezi contul." #: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" "An email should arrive in a few moments with instructions on how to do so." -msgstr "Vei primi în scurt timp un mesaj prin e-mail cu instrucțiuni." +msgstr "Vei primi în scurt timp un e-mail cu instrucțiuni." #: mediagoblin/templates/mediagoblin/user_pages/user.html:51 msgid "In case it doesn't:" -msgstr "Dacă nu primești mesajul:" +msgstr "Dacă nu-l primești:" #: mediagoblin/templates/mediagoblin/user_pages/user.html:54 msgid "Resend verification email" @@ -522,7 +527,15 @@ msgstr "Scrie un comentariu" msgid "I am sure I want to delete this" msgstr "Sunt sigur că doresc să șterg" -#: mediagoblin/user_pages/views.py:175 +#: mediagoblin/user_pages/views.py:142 +msgid "Empty comments are not allowed." +msgstr "Comentariul trebuie să aibă un conținut." + +#: mediagoblin/user_pages/views.py:148 +msgid "Comment posted!" +msgstr "Comentariul a fost transmis." + +#: mediagoblin/user_pages/views.py:181 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" "Urmează să ștergi fișierele media ale unui alt utilizator. Se recomandă " diff --git a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo index c1eab2ba..4b5481e0 100644 Binary files a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo and b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo differ diff --git a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po index ffdeab2e..f4bfbd67 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-09-25 20:26-0500\n" -"PO-Revision-Date: 2011-09-26 01:25+0000\n" -"Last-Translator: cwebber \n" +"POT-Creation-Date: 2011-11-01 23:14-0500\n" +"PO-Revision-Date: 2011-11-04 11:13+0000\n" +"Last-Translator: aleksejrs \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -43,19 +43,19 @@ msgstr "Наберите его ещё раз здесь, чтобы избеж msgid "Email address" msgstr "Адрес электронной почты" -#: mediagoblin/auth/views.py:42 +#: mediagoblin/auth/views.py:55 msgid "Sorry, registration is disabled on this instance." msgstr "Извините, на этом разделе регистрация запрещена." -#: mediagoblin/auth/views.py:60 +#: mediagoblin/auth/views.py:73 msgid "Sorry, a user with that name already exists." msgstr "Извините, пользователь с этим именем уже зарегистрирован." -#: mediagoblin/auth/views.py:64 +#: mediagoblin/auth/views.py:77 msgid "Sorry, that email address has already been taken." msgstr "Извините, этот адрес электронной почты уже занят." -#: mediagoblin/auth/views.py:165 +#: mediagoblin/auth/views.py:179 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -63,61 +63,64 @@ msgstr "" "Адрес вашей электронной потвержден. Вы теперь можете войти и начать " "редактировать свой профиль и загружать новые изображения!" -#: mediagoblin/auth/views.py:171 +#: mediagoblin/auth/views.py:185 msgid "The verification key or user id is incorrect" msgstr "Неверный ключ проверки или идентификатор пользователя" -#: mediagoblin/auth/views.py:192 +#: mediagoblin/auth/views.py:207 msgid "Resent your verification email." msgstr "Переслать сообщение с подтверждением аккаунта." -#: mediagoblin/auth/views.py:228 +#: mediagoblin/auth/views.py:248 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." msgstr "" +"Мы не можем отправить сообщение для восстановления пароля, потому что ваша " +"учётная запись неактивна, либо указанный в ней адрес электронной почты не " +"был подтверждён." -#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 +#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Название" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "Метки" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:31 msgid "Slug" msgstr "Отличительная часть адреса" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:32 msgid "The slug can't be empty" msgstr "Отличительная часть адреса необходима" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:33 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" "Часть адреса этого файла, производная от его названия. Её обычно не нужно " "изменять." -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:40 msgid "Bio" msgstr "Биография" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:43 msgid "Website" msgstr "Сайт" -#: mediagoblin/edit/views.py:63 +#: mediagoblin/edit/views.py:64 msgid "An entry with that slug already exists for this user." msgstr "" "У этого пользователя уже есть файл с такой отличительной частью адреса." -#: mediagoblin/edit/views.py:84 +#: mediagoblin/edit/views.py:85 msgid "You are editing another user's media. Proceed with caution." msgstr "Вы редактируете файлы другого пользователя. Будьте осторожны." -#: mediagoblin/edit/views.py:154 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." msgstr "Вы редактируете профиль пользователя. Будьте осторожны." @@ -133,15 +136,15 @@ msgstr "Файл" msgid "Description of this work" msgstr "Описание этого произведения" -#: mediagoblin/submit/views.py:47 +#: mediagoblin/submit/views.py:46 msgid "You must provide a file." msgstr "Вы должны загрузить файл." -#: mediagoblin/submit/views.py:50 +#: mediagoblin/submit/views.py:49 msgid "The file doesn't seem to be an image!" msgstr "Файл, похоже, не является картинкой!" -#: mediagoblin/submit/views.py:122 +#: mediagoblin/submit/views.py:121 msgid "Woohoo! Submitted!" msgstr "Ура! Файл загружен!" @@ -180,8 +183,8 @@ msgid "verify your email!" msgstr "подтвердите ваш адрес электронной почты!" #: mediagoblin/templates/mediagoblin/base.html:73 -#: mediagoblin/templates/mediagoblin/auth/login.html:26 -#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/login.html:27 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Log in" msgstr "Войти" @@ -190,6 +193,8 @@ msgid "" "Powered by MediaGoblin, a GNU project" msgstr "" +"Работает на MediaGoblin, проекте GNU" #: mediagoblin/templates/mediagoblin/root.html:24 msgid "Explore" @@ -259,11 +264,11 @@ msgstr "" msgid "Most recent media" msgstr "Самые новые файлы" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 msgid "Enter your new password" msgstr "Введите свой новый пароль" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 msgid "Enter your username or email" msgstr "Введите Ваше имя пользователя или адрес электронной почты" @@ -290,23 +295,23 @@ msgid "" "a happy goblin!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:29 +#: mediagoblin/templates/mediagoblin/auth/login.html:30 msgid "Logging in failed!" msgstr "Авторизация неуспешна!" -#: mediagoblin/templates/mediagoblin/auth/login.html:42 +#: mediagoblin/templates/mediagoblin/auth/login.html:43 msgid "Don't have an account yet?" msgstr "Ещё нету аккаунта?" -#: mediagoblin/templates/mediagoblin/auth/login.html:45 +#: mediagoblin/templates/mediagoblin/auth/login.html:46 msgid "Create one here!" msgstr "Создайте здесь!" -#: mediagoblin/templates/mediagoblin/auth/login.html:48 +#: mediagoblin/templates/mediagoblin/auth/login.html:49 msgid "Forgot your password?" msgstr "Забыли свой пароль?" -#: mediagoblin/templates/mediagoblin/auth/login.html:51 +#: mediagoblin/templates/mediagoblin/auth/login.html:52 msgid "Change it!" msgstr "Смените его!" @@ -314,7 +319,7 @@ msgstr "Смените его!" msgid "Create an account!" msgstr "Создать аккаунт!" -#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/auth/register.html:31 msgid "Create" msgstr "Создать" @@ -362,7 +367,7 @@ msgstr "Файлы с меткой:" msgid "Submit yer media" msgstr "Загрузить файл(ы)" -#: mediagoblin/templates/mediagoblin/submit/start.html:29 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 msgid "Submit" msgstr "Подтвердить" @@ -429,7 +434,8 @@ msgstr "А если нет, то:" #: mediagoblin/templates/mediagoblin/user_pages/user.html:54 msgid "Resend verification email" -msgstr "Повторно отправить подверждение на адрес электронной почты" +msgstr "" +"Повторно отправить сообщение для подверждения адреса электронной почты" #: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "" @@ -507,7 +513,15 @@ msgstr "Комментарий" msgid "I am sure I want to delete this" msgstr "Я уверен, что хочу удалить это" -#: mediagoblin/user_pages/views.py:175 +#: mediagoblin/user_pages/views.py:142 +msgid "Empty comments are not allowed." +msgstr "Empty comments are not allowed." + +#: mediagoblin/user_pages/views.py:148 +msgid "Comment posted!" +msgstr "" + +#: mediagoblin/user_pages/views.py:181 msgid "You are about to delete another user's media. Proceed with caution." msgstr "Вы на пороге удаления файла другого пользователя. Будьте осторожны." diff --git a/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.mo new file mode 100644 index 00000000..684c850a Binary files /dev/null and b/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.mo differ diff --git a/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.po new file mode 100644 index 00000000..d3196b9c --- /dev/null +++ b/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.po @@ -0,0 +1,541 @@ +# Translations template for PROJECT. +# Copyright (C) 2011 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# +# Translators: +# , 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-01 23:14-0500\n" +"PO-Revision-Date: 2011-11-02 04:13+0000\n" +"Last-Translator: cwebber \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 0.9.6\n" +"Language: sk\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n" + +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 +msgid "Username" +msgstr "Prihlasovacie meno" + +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 +msgid "Password" +msgstr "Heslo" + +#: mediagoblin/auth/forms.py:35 +msgid "Passwords must match." +msgstr "Heslá sa musia zhodovať." + +#: mediagoblin/auth/forms.py:37 +msgid "Confirm password" +msgstr "Potvrdiť heslo" + +#: mediagoblin/auth/forms.py:39 +msgid "Type it again here to make sure there are no spelling mistakes." +msgstr "Prepíš ho sem opätovne kvôli uisteniu, že nedošlo k preklepu." + +#: mediagoblin/auth/forms.py:42 +msgid "Email address" +msgstr "E-mailová adresa" + +#: mediagoblin/auth/views.py:55 +msgid "Sorry, registration is disabled on this instance." +msgstr "Prepáč, registrácia na tejto inštancii nie je povolená." + +#: mediagoblin/auth/views.py:73 +msgid "Sorry, a user with that name already exists." +msgstr "Prepáč, rovnaké prihlasovacie meno už niekto používa." + +#: mediagoblin/auth/views.py:77 +msgid "Sorry, that email address has already been taken." +msgstr "Prepáč, daná e-mailová adresa už bola pri registrácii využitá." + +#: mediagoblin/auth/views.py:179 +msgid "" +"Your email address has been verified. You may now login, edit your profile, " +"and submit images!" +msgstr "" +"Tvoja e-mailová adresa bola úspešne overená. Môžeš sa hneď prihlásiť, " +"upraviť svoj profil a vkladať výtvory! " + +#: mediagoblin/auth/views.py:185 +msgid "The verification key or user id is incorrect" +msgstr "Nesprávny overovací kľúč alebo používateľské ID" + +#: mediagoblin/auth/views.py:207 +msgid "Resent your verification email." +msgstr "Opätovne zaslať overovaciu správu." + +#: mediagoblin/auth/views.py:248 +msgid "" +"Could not send password recovery email as your username is inactive or your " +"account's email address has not been verified." +msgstr "" +"Nebolo ti možné zaslať správu ohľadom obnovy hesla, nakoľko je tvoje " +"používateľské meno buď neaktívne alebo e-mailová adresa účtu neoverená." + +#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 +msgid "Title" +msgstr "Nadpis" + +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 +msgid "Tags" +msgstr "Štítky" + +#: mediagoblin/edit/forms.py:31 +msgid "Slug" +msgstr "Unikátna časť adresy" + +#: mediagoblin/edit/forms.py:32 +msgid "The slug can't be empty" +msgstr "Unikátna časť adresy musí byť vyplnená" + +#: mediagoblin/edit/forms.py:33 +msgid "" +"The title part of this media's URL. You usually don't need to change this." +msgstr "Titulná časť URL odkazu média. Zvyčajne to meniť nemusíš." + +#: mediagoblin/edit/forms.py:40 +msgid "Bio" +msgstr "Bio" + +#: mediagoblin/edit/forms.py:43 +msgid "Website" +msgstr "Webstránka" + +#: mediagoblin/edit/views.py:64 +msgid "An entry with that slug already exists for this user." +msgstr "Položku s rovnakou unikátnou časťou adresy už niekde máš." + +#: mediagoblin/edit/views.py:85 +msgid "You are editing another user's media. Proceed with caution." +msgstr "Upravuješ médiá niekoho iného. Pristupuj opatrne." + +#: mediagoblin/edit/views.py:155 +msgid "You are editing a user's profile. Proceed with caution." +msgstr "Upravuješ používateľský profil. Pristupuj opatrne." + +#: mediagoblin/process_media/errors.py:44 +msgid "Invalid file given for media type." +msgstr "Odovzdaný nesprávny súbor pre daný typ média." + +#: mediagoblin/submit/forms.py:25 +msgid "File" +msgstr "Súbor" + +#: mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "Charakteristika diela" + +#: mediagoblin/submit/views.py:46 +msgid "You must provide a file." +msgstr "Poskytni súbor." + +#: mediagoblin/submit/views.py:49 +msgid "The file doesn't seem to be an image!" +msgstr "Súbor najskôr nie je obrázkom!" + +#: mediagoblin/submit/views.py:121 +msgid "Woohoo! Submitted!" +msgstr "Juchú! Úspešne vložené!" + +#: mediagoblin/templates/mediagoblin/404.html:21 +msgid "Oops!" +msgstr "Ajaj!" + +#: mediagoblin/templates/mediagoblin/404.html:24 +msgid "There doesn't seem to be a page at this address. Sorry!" +msgstr "Na danej adrese sa stránka zrejme nenachádza. Prepáč!" + +#: mediagoblin/templates/mediagoblin/404.html:26 +msgid "" +"If you're sure the address is correct, maybe the page you're looking for has" +" been moved or deleted." +msgstr "" +"Ak vieš s istotou, že adresa je správna, tak najskôr bola hľadaná stánka " +"presunutá alebo zmazaná." + +#: mediagoblin/templates/mediagoblin/404.html:32 +msgid "Image of 404 goblin stressing out" +msgstr "Obrázok stresujúceho goblina pri chybovom kóde č. 404" + +#: mediagoblin/templates/mediagoblin/base.html:22 +msgid "GNU MediaGoblin" +msgstr "GNU MediaGoblin" + +#: mediagoblin/templates/mediagoblin/base.html:47 +msgid "MediaGoblin logo" +msgstr "MediaGoblin logo" + +#: mediagoblin/templates/mediagoblin/base.html:52 +msgid "Submit media" +msgstr "Vložiť výtvor" + +#: mediagoblin/templates/mediagoblin/base.html:63 +msgid "verify your email!" +msgstr "over si svoj e-mail!" + +#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/auth/login.html:27 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 +msgid "Log in" +msgstr "Prihlásenie" + +#: mediagoblin/templates/mediagoblin/base.html:89 +msgid "" +"Powered by MediaGoblin, a GNU project" +msgstr "" +"Poháňa nás MediaGoblin, súčasť " +"projektu GNU" + +#: mediagoblin/templates/mediagoblin/root.html:24 +msgid "Explore" +msgstr "Preskúmať" + +#: mediagoblin/templates/mediagoblin/root.html:27 +msgid "Hi there, media lover! MediaGoblin is..." +msgstr "Vitaj medzi nami, kreatívne stvorenie! MediaGoblin je..." + +#: mediagoblin/templates/mediagoblin/root.html:29 +msgid "The perfect place for your media!" +msgstr "Parádne miesto pre tvoje výtvory!" + +#: mediagoblin/templates/mediagoblin/root.html:30 +msgid "" +"A place for people to collaborate and show off original and derived " +"creations!" +msgstr "" +"Miesto pre ľudí, vhodné na spoluprácu a vystavovanie tak originálnych, ako " +"aj odvodených kreácií!" + +#: mediagoblin/templates/mediagoblin/root.html:31 +msgid "" +"Free, as in freedom. (We’re a GNU project, " +"after all.)" +msgstr "" +"Voľné, vo význame slobody. (Koniec-koncov, sme predsa GNU projekt.)" + +#: mediagoblin/templates/mediagoblin/root.html:32 +msgid "" +"Aiming to make the world a better place through decentralization and " +"(eventually, coming soon!) federation!" +msgstr "" +"Zo snahou spraviť svet lepším miestom vďaka decentralizácii a (eventuálne, " +"už čoskoro!) federácii!" + +#: mediagoblin/templates/mediagoblin/root.html:33 +msgid "" +"Built for extensibility. (Multiple media types coming soon to the software," +" including video support!)" +msgstr "" +"S dôrazom na rozšíriteľnosť. (Podpora pre rozličné typy médií v tomto " +"softvéri už čoskoro, nevynímajúc videá!)" + +#: mediagoblin/templates/mediagoblin/root.html:34 +msgid "" +"Powered by people like you. (You can help us improve this" +" software!)" +msgstr "" +"Existujeme aj vďaka ľudom ako si ty. (Môžeš nám pomôcť softvér " +"vylepšiť!)" + +#: mediagoblin/templates/mediagoblin/root.html:38 +msgid "Excited to join us?" +msgstr "Tak čo, chceš sa pridať?" + +#: mediagoblin/templates/mediagoblin/root.html:39 +#, python-format +msgid "" +"Create a free account\n" +" or\n" +" Set up MediaGoblin on your own server" +msgstr "" +"Vytvoriť bezplatný účet\n" +" alebo\n" +" Sprevádzkovať MediaGoblin na vlastnom serveri" + +#: mediagoblin/templates/mediagoblin/root.html:53 +msgid "Most recent media" +msgstr "Najčerstvejšie výtvory" + +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 +msgid "Enter your new password" +msgstr "Vlož svoje nové heslo" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 +msgid "Enter your username or email" +msgstr "Vlož svoje používateľské meno alebo e-mailovú adresu" + +#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 +msgid "Your password has been changed. Try to log in now." +msgstr "Heslo ti bolo zmenené. Skús sa prihlásiť teraz." + +#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 +msgid "" +"Check your inbox. We sent an email with a URL for changing your password." +msgstr "" +"Skontroluj si e-mailovú schránku. Bol ti zaslaná správa s URL odkazom pre " +"zmenu tvojho hesla." + +#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to change your GNU MediaGoblin password, open the following URL in \n" +"your web browser:\n" +"\n" +"%(verification_url)s\n" +"\n" +"If you think this is an error, just ignore this email and continue being\n" +"a happy goblin!" +msgstr "" +"Ahoj %(username)s,\n" +"\n" +"pre zmenu svojho hesla k GNU MediaGoblin účtu, otvor nasledujúci URL odkaz vo \n" +"svojom prehliadači:\n" +"\n" +"%(verification_url)s\n" +"\n" +"Pokiaľ si myslíš, že došlo k omylu, tak jednoducho ignoruj túto správu a neprestávaj byť šťastným goblinom!" + +#: mediagoblin/templates/mediagoblin/auth/login.html:30 +msgid "Logging in failed!" +msgstr "Prihlásenie zlyhalo!" + +#: mediagoblin/templates/mediagoblin/auth/login.html:43 +msgid "Don't have an account yet?" +msgstr "Ešte nemáš účet?" + +#: mediagoblin/templates/mediagoblin/auth/login.html:46 +msgid "Create one here!" +msgstr "Vytvoriť jeden tu!" + +#: mediagoblin/templates/mediagoblin/auth/login.html:49 +msgid "Forgot your password?" +msgstr "Zabudnuté heslo?" + +#: mediagoblin/templates/mediagoblin/auth/login.html:52 +msgid "Change it!" +msgstr "Zmeniť ho!" + +#: mediagoblin/templates/mediagoblin/auth/register.html:27 +msgid "Create an account!" +msgstr "Vytvoriť účet!" + +#: mediagoblin/templates/mediagoblin/auth/register.html:31 +msgid "Create" +msgstr "Vytvoriť" + +#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to activate your GNU MediaGoblin account, open the following URL in\n" +"your web browser:\n" +"\n" +"%(verification_url)s" +msgstr "" +"Ahoj %(username)s,\n" +"\n" +"pre aktiváciu tvojho GNU MediaGoblin účtu, otvor nasledujúci URL odkaz vo\n" +"svojom prehliadači:\n" +"\n" +"%(verification_url)s" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:29 +#, python-format +msgid "Editing %(media_title)s" +msgstr "Úprava %(media_title)s" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:36 +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49 +msgid "Cancel" +msgstr "Zrušiť" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 +msgid "Save changes" +msgstr "Uložiť zmeny" + +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 +#, python-format +msgid "Editing %(username)s's profile" +msgstr "Úprava profilu, ktorý vlastní %(username)s" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:31 +msgid "Media tagged with:" +msgstr "Výtvor značený štítkami:" + +#: 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:32 +#, python-format +msgid "%(username)s's media" +msgstr "Výtvory, ktoré vlastní %(username)s" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 +msgid "Sorry, no such user found." +msgstr "Prepáč, používateľské meno nenájdené." + +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 +#, python-format +msgid "Really delete %(title)s?" +msgstr "Skutočne odstrániť %(title)s?" + +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 +msgid "Delete Permanently" +msgstr "Odstrániť navždy" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 +msgid "Media processing panel" +msgstr "Sekcia spracovania médií" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 +msgid "" +"You can track the state of media being processed for your gallery here." +msgstr "Tu môžeš sledovať priebeh spracovania médií pre svoju galériu." + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 +msgid "Media in-processing" +msgstr "Médiá v procese spracovania" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 +msgid "No media in-processing" +msgstr "Žiadne médiá v procese spracovania" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 +msgid "These uploads failed to process:" +msgstr "Nasledovné vloženia neprešli spracovaním:" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +msgid "Email verification needed" +msgstr "Potrebné overenie e-mailovej adresy" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +msgid "Almost done! Your account still needs to be activated." +msgstr "Takmer hotovo! Ešte ti musí byť aktivovaný účet." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +msgid "" +"An email should arrive in a few moments with instructions on how to do so." +msgstr "E-mailová správa s popisom ako to spraviť, by mala onedlho doraziť." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +msgid "In case it doesn't:" +msgstr "V prípade, že sa tak nestalo:" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +msgid "Resend verification email" +msgstr "Opätovne zaslať overovaciu správu" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +msgid "" +"Someone has registered an account with this username, but it still has to be" +" activated." +msgstr "" +"Účet s týmto prihlasovacím menom je už registrovaný, avšak ešte stále " +"neaktívny." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#, python-format +msgid "" +"If you are that person but you've lost your verification email, you can log in and resend it." +msgstr "" +"Pokiaľ si to ty, ale už nemáš overovaciu správu, tak sa môžeš prihlásiť a preposlať si ju." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 +#, python-format +msgid "%(username)s's profile" +msgstr "Profil, ktorý vlastní %(username)s" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +msgid "Here's a spot to tell others about yourself." +msgstr "Povedz tu o sebe ostatným." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +msgid "Edit profile" +msgstr "Upraviť profil" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +msgid "This user hasn't filled in their profile (yet)." +msgstr "Dotyčná osoba ešte nevyplnila svoj profil (zatiaľ)." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#, python-format +msgid "View all of %(username)s's media" +msgstr "Zhliadnuť všetky výtvory, ktoré vlastní %(username)s" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +msgid "" +"This is where your media will appear, but you don't seem to have added " +"anything yet." +msgstr "" +"Všetky tvoje výtvory sa objavia práve tu, ale zatiaľ nemáš nič pridané." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +msgid "Add media" +msgstr "Pridať výtvor" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +msgid "There doesn't seem to be any media here yet..." +msgstr "Najskôr tu ešte nebudú žiadne výtvory..." + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 +msgid "feed icon" +msgstr "ikona čítačky" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 +msgid "Atom feed" +msgstr "Čítačka Atom" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 +msgid "Newer" +msgstr "Novšie" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 +msgid "Older" +msgstr "Staršie" + +#: mediagoblin/user_pages/forms.py:24 +msgid "Comment" +msgstr "Komentár" + +#: mediagoblin/user_pages/forms.py:30 +msgid "I am sure I want to delete this" +msgstr "Jednoznačne to chcem odstrániť" + +#: mediagoblin/user_pages/views.py:142 +msgid "Empty comments are not allowed." +msgstr "" + +#: mediagoblin/user_pages/views.py:148 +msgid "Comment posted!" +msgstr "" + +#: mediagoblin/user_pages/views.py:181 +msgid "You are about to delete another user's media. Proceed with caution." +msgstr "Chystáš sa odstrániť výtvory niekoho iného. Pristupuj opatrne." + + diff --git a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.mo index 4c433381..52e3d632 100644 Binary files a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.mo and b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.mo differ diff --git a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po index 39c6b9a5..cba4fdd0 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-09-25 20:26-0500\n" -"PO-Revision-Date: 2011-09-26 01:25+0000\n" +"POT-Creation-Date: 2011-11-01 23:14-0500\n" +"PO-Revision-Date: 2011-11-02 04:13+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -43,19 +43,19 @@ msgstr "" msgid "Email address" msgstr "E-poštni naslov" -#: mediagoblin/auth/views.py:42 +#: mediagoblin/auth/views.py:55 msgid "Sorry, registration is disabled on this instance." msgstr "Oprostite, prijava za ta izvod ni omogočena." -#: mediagoblin/auth/views.py:60 +#: mediagoblin/auth/views.py:73 msgid "Sorry, a user with that name already exists." msgstr "Oprostite, uporabnik s tem imenom že obstaja." -#: mediagoblin/auth/views.py:64 +#: mediagoblin/auth/views.py:77 msgid "Sorry, that email address has already been taken." msgstr "Oprostite, ta e-poštni naslov je že v uporabi." -#: mediagoblin/auth/views.py:165 +#: mediagoblin/auth/views.py:179 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -63,58 +63,58 @@ msgstr "" "Vaš e-poštni naslov je bil potrjen. Sedaj se lahko prijavite, uredite svoj " "profil in pošljete slike." -#: mediagoblin/auth/views.py:171 +#: mediagoblin/auth/views.py:185 msgid "The verification key or user id is incorrect" msgstr "Potrditveni ključ ali uporabniška identifikacija je napačna" -#: mediagoblin/auth/views.py:192 +#: mediagoblin/auth/views.py:207 msgid "Resent your verification email." msgstr "Ponovno pošiljanje potrditvene e-pošte." -#: mediagoblin/auth/views.py:228 +#: mediagoblin/auth/views.py:248 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." msgstr "" -#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 +#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Naslov" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "Oznake" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:31 msgid "Slug" msgstr "Oznaka" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:32 msgid "The slug can't be empty" msgstr "Oznaka ne sme biti prazna" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:33 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:40 msgid "Bio" msgstr "Biografija" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:43 msgid "Website" msgstr "Spletna stran" -#: mediagoblin/edit/views.py:63 +#: mediagoblin/edit/views.py:64 msgid "An entry with that slug already exists for this user." msgstr "Vnos s to oznako za tega uporabnika že obstaja." -#: mediagoblin/edit/views.py:84 +#: mediagoblin/edit/views.py:85 msgid "You are editing another user's media. Proceed with caution." msgstr "Urejate vsebino drugega uporabnika. Nadaljujte pazljivo." -#: mediagoblin/edit/views.py:154 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." msgstr "Urejate uporabniški profil. Nadaljujte pazljivo." @@ -130,15 +130,15 @@ msgstr "Datoteka" msgid "Description of this work" msgstr "" -#: mediagoblin/submit/views.py:47 +#: mediagoblin/submit/views.py:46 msgid "You must provide a file." msgstr "Podati morate datoteko." -#: mediagoblin/submit/views.py:50 +#: mediagoblin/submit/views.py:49 msgid "The file doesn't seem to be an image!" msgstr "Kot kaže datoteka ni slika." -#: mediagoblin/submit/views.py:122 +#: mediagoblin/submit/views.py:121 msgid "Woohoo! Submitted!" msgstr "Juhej! Poslano." @@ -179,8 +179,8 @@ msgid "verify your email!" msgstr "Preverite svojo e-pošto." #: mediagoblin/templates/mediagoblin/base.html:73 -#: mediagoblin/templates/mediagoblin/auth/login.html:26 -#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/login.html:27 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Log in" msgstr "Prijava" @@ -258,11 +258,11 @@ msgstr "" msgid "Most recent media" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 msgid "Enter your new password" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 msgid "Enter your username or email" msgstr "" @@ -289,23 +289,23 @@ msgid "" "a happy goblin!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:29 +#: mediagoblin/templates/mediagoblin/auth/login.html:30 msgid "Logging in failed!" msgstr "Prijava ni uspela." -#: mediagoblin/templates/mediagoblin/auth/login.html:42 +#: mediagoblin/templates/mediagoblin/auth/login.html:43 msgid "Don't have an account yet?" msgstr "Še nimate računa?" -#: mediagoblin/templates/mediagoblin/auth/login.html:45 +#: mediagoblin/templates/mediagoblin/auth/login.html:46 msgid "Create one here!" msgstr "Ustvarite si ga." -#: mediagoblin/templates/mediagoblin/auth/login.html:48 +#: mediagoblin/templates/mediagoblin/auth/login.html:49 msgid "Forgot your password?" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:51 +#: mediagoblin/templates/mediagoblin/auth/login.html:52 msgid "Change it!" msgstr "" @@ -313,7 +313,7 @@ msgstr "" msgid "Create an account!" msgstr "Ustvarite račun." -#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/auth/register.html:31 msgid "Create" msgstr "Ustvari" @@ -362,7 +362,7 @@ msgstr "Vsebina označena z:" msgid "Submit yer media" msgstr "Pošljite svojo vsebino" -#: mediagoblin/templates/mediagoblin/submit/start.html:29 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 msgid "Submit" msgstr "Pošlji" @@ -506,7 +506,15 @@ msgstr "Komentar" msgid "I am sure I want to delete this" msgstr "" -#: mediagoblin/user_pages/views.py:175 +#: mediagoblin/user_pages/views.py:142 +msgid "Empty comments are not allowed." +msgstr "" + +#: mediagoblin/user_pages/views.py:148 +msgid "Comment posted!" +msgstr "" + +#: mediagoblin/user_pages/views.py:181 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mo index 3c5d864b..d2649938 100644 Binary files a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mo and b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mo differ diff --git a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po index 8f2373c8..b4b2fb7b 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-09-25 20:26-0500\n" -"PO-Revision-Date: 2011-09-26 01:25+0000\n" +"POT-Creation-Date: 2011-11-01 23:14-0500\n" +"PO-Revision-Date: 2011-11-02 04:13+0000\n" "Last-Translator: cwebber \n" "Language-Team: Serbian (http://www.transifex.net/projects/p/mediagoblin/team/sr/)\n" "MIME-Version: 1.0\n" @@ -42,76 +42,76 @@ msgstr "" msgid "Email address" msgstr "" -#: mediagoblin/auth/views.py:42 +#: mediagoblin/auth/views.py:55 msgid "Sorry, registration is disabled on this instance." msgstr "" -#: mediagoblin/auth/views.py:60 +#: mediagoblin/auth/views.py:73 msgid "Sorry, a user with that name already exists." msgstr "" -#: mediagoblin/auth/views.py:64 +#: mediagoblin/auth/views.py:77 msgid "Sorry, that email address has already been taken." msgstr "" -#: mediagoblin/auth/views.py:165 +#: mediagoblin/auth/views.py:179 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" msgstr "" -#: mediagoblin/auth/views.py:171 +#: mediagoblin/auth/views.py:185 msgid "The verification key or user id is incorrect" msgstr "" -#: mediagoblin/auth/views.py:192 +#: mediagoblin/auth/views.py:207 msgid "Resent your verification email." msgstr "" -#: mediagoblin/auth/views.py:228 +#: mediagoblin/auth/views.py:248 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." msgstr "" -#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 +#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:31 msgid "Slug" msgstr "" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:32 msgid "The slug can't be empty" msgstr "" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:33 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:40 msgid "Bio" msgstr "" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:43 msgid "Website" msgstr "" -#: mediagoblin/edit/views.py:63 +#: mediagoblin/edit/views.py:64 msgid "An entry with that slug already exists for this user." msgstr "" -#: mediagoblin/edit/views.py:84 +#: mediagoblin/edit/views.py:85 msgid "You are editing another user's media. Proceed with caution." msgstr "" -#: mediagoblin/edit/views.py:154 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." msgstr "" @@ -127,15 +127,15 @@ msgstr "" msgid "Description of this work" msgstr "" -#: mediagoblin/submit/views.py:47 +#: mediagoblin/submit/views.py:46 msgid "You must provide a file." msgstr "" -#: mediagoblin/submit/views.py:50 +#: mediagoblin/submit/views.py:49 msgid "The file doesn't seem to be an image!" msgstr "" -#: mediagoblin/submit/views.py:122 +#: mediagoblin/submit/views.py:121 msgid "Woohoo! Submitted!" msgstr "" @@ -174,8 +174,8 @@ msgid "verify your email!" msgstr "" #: mediagoblin/templates/mediagoblin/base.html:73 -#: mediagoblin/templates/mediagoblin/auth/login.html:26 -#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/login.html:27 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Log in" msgstr "" @@ -244,11 +244,11 @@ msgstr "" msgid "Most recent media" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 msgid "Enter your new password" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 msgid "Enter your username or email" msgstr "" @@ -275,23 +275,23 @@ msgid "" "a happy goblin!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:29 +#: mediagoblin/templates/mediagoblin/auth/login.html:30 msgid "Logging in failed!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:42 +#: mediagoblin/templates/mediagoblin/auth/login.html:43 msgid "Don't have an account yet?" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:45 +#: mediagoblin/templates/mediagoblin/auth/login.html:46 msgid "Create one here!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:48 +#: mediagoblin/templates/mediagoblin/auth/login.html:49 msgid "Forgot your password?" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:51 +#: mediagoblin/templates/mediagoblin/auth/login.html:52 msgid "Change it!" msgstr "" @@ -299,7 +299,7 @@ msgstr "" msgid "Create an account!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/auth/register.html:31 msgid "Create" msgstr "" @@ -342,7 +342,7 @@ msgstr "" msgid "Submit yer media" msgstr "" -#: mediagoblin/templates/mediagoblin/submit/start.html:29 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 msgid "Submit" msgstr "" @@ -482,7 +482,15 @@ msgstr "" msgid "I am sure I want to delete this" msgstr "" -#: mediagoblin/user_pages/views.py:175 +#: mediagoblin/user_pages/views.py:142 +msgid "Empty comments are not allowed." +msgstr "" + +#: mediagoblin/user_pages/views.py:148 +msgid "Comment posted!" +msgstr "" + +#: mediagoblin/user_pages/views.py:181 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo index 2cdf2fee..2ae7c510 100644 Binary files a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo and b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo differ diff --git a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po index 08a4bc15..3ee44b18 100644 --- a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PROJECT project. # # Translators: +# , 2011. # , 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-09-25 20:26-0500\n" -"PO-Revision-Date: 2011-09-26 01:25+0000\n" +"POT-Creation-Date: 2011-11-01 23:14-0500\n" +"PO-Revision-Date: 2011-11-02 04:13+0000\n" "Last-Translator: cwebber \n" "Language-Team: Swedish (http://www.transifex.net/projects/p/mediagoblin/team/sv/)\n" "MIME-Version: 1.0\n" @@ -43,19 +44,19 @@ msgstr "Skriv in det igen för att undvika stavfel." msgid "Email address" msgstr "E-postadress" -#: mediagoblin/auth/views.py:42 +#: mediagoblin/auth/views.py:55 msgid "Sorry, registration is disabled on this instance." msgstr "Vi beklagar, registreringen är avtängd på den här instansen." -#: mediagoblin/auth/views.py:60 +#: mediagoblin/auth/views.py:73 msgid "Sorry, a user with that name already exists." msgstr "En användare med det användarnamnet finns redan." -#: mediagoblin/auth/views.py:64 +#: mediagoblin/auth/views.py:77 msgid "Sorry, that email address has already been taken." msgstr "Den e-postadressen är redan tagen." -#: mediagoblin/auth/views.py:165 +#: mediagoblin/auth/views.py:179 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -63,58 +64,60 @@ msgstr "" "Din e-postadress är verifierad. Du kan nu logga in, redigera din profil och " "ladda upp filer!" -#: mediagoblin/auth/views.py:171 +#: mediagoblin/auth/views.py:185 msgid "The verification key or user id is incorrect" msgstr "Verifieringsnyckeln eller användar-IDt är fel." -#: mediagoblin/auth/views.py:192 +#: mediagoblin/auth/views.py:207 msgid "Resent your verification email." msgstr "Skickade ett nytt verifierings-email." -#: mediagoblin/auth/views.py:228 +#: mediagoblin/auth/views.py:248 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." msgstr "" +"Kunde inte skicka e-poståterställning av lösenord eftersom ditt användarnamn" +" är inaktivt eller kontots e-postadress har inte verifierats." -#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 +#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Titel" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "Taggar" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:31 msgid "Slug" msgstr "Sökvägsnamn" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:32 msgid "The slug can't be empty" msgstr "Sökvägsnamnet kan inte vara tomt" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:33 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "Sökvägstitlen för din media. Du brukar inte behöva ändra denna." -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:40 msgid "Bio" msgstr "Presentation" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:43 msgid "Website" msgstr "Hemsida" -#: mediagoblin/edit/views.py:63 +#: mediagoblin/edit/views.py:64 msgid "An entry with that slug already exists for this user." msgstr "Ett inlägg med det sökvägsnamnet existerar redan." -#: mediagoblin/edit/views.py:84 +#: mediagoblin/edit/views.py:85 msgid "You are editing another user's media. Proceed with caution." msgstr "Var försiktig, du redigerar någon annans inlägg." -#: mediagoblin/edit/views.py:154 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." msgstr "Var försiktig, du redigerar en annan användares profil." @@ -130,15 +133,15 @@ msgstr "Fil" msgid "Description of this work" msgstr "Beskrivning av verket" -#: mediagoblin/submit/views.py:47 +#: mediagoblin/submit/views.py:46 msgid "You must provide a file." msgstr "Du måste ange en fil" -#: mediagoblin/submit/views.py:50 +#: mediagoblin/submit/views.py:49 msgid "The file doesn't seem to be an image!" msgstr "Filen verkar inte vara en giltig bildfil!" -#: mediagoblin/submit/views.py:122 +#: mediagoblin/submit/views.py:121 msgid "Woohoo! Submitted!" msgstr "Tjohoo! Upladdat!" @@ -179,8 +182,8 @@ msgid "verify your email!" msgstr "Verifiera din e-postadress!" #: mediagoblin/templates/mediagoblin/base.html:73 -#: mediagoblin/templates/mediagoblin/auth/login.html:26 -#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/login.html:27 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Log in" msgstr "Logga in" @@ -194,7 +197,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:24 msgid "Explore" -msgstr "" +msgstr "Utforska" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." @@ -251,7 +254,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:38 msgid "Excited to join us?" -msgstr "" +msgstr "Nyfiken att gå med oss?" #: mediagoblin/templates/mediagoblin/root.html:39 #, python-format @@ -260,27 +263,33 @@ msgid "" " or\n" " Set up MediaGoblin on your own server" msgstr "" +"Skapa ett konto gratis\n" +"\n" +" or\n" +" Installera MediaGoblin på din egen server" #: mediagoblin/templates/mediagoblin/root.html:53 msgid "Most recent media" -msgstr "" +msgstr "Senast medier" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 msgid "Enter your new password" -msgstr "" +msgstr "Fyll i ditt lösenord" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 msgid "Enter your username or email" -msgstr "" +msgstr "Fyll i ditt användarnamn eller lösenord" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." -msgstr "" +msgstr "Ditt lösenord är nu ändrat. Testa att logga in nu." #: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 msgid "" "Check your inbox. We sent an email with a URL for changing your password." msgstr "" +"Kolla din inkorg. Vi har skickat ett e-postmeddelande med en webbadress för " +"att ändra ditt lösenord." #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format @@ -295,32 +304,40 @@ msgid "" "If you think this is an error, just ignore this email and continue being\n" "a happy goblin!" msgstr "" +"Hej %(username)s,\n" +"\n" +"för att ändra ditt GNU MediaGoblin-lösenord, öppna följande länk i\n" +"din webbläsare:\n" +"\n" +"%(verification_url)s\n" +"\n" +"Om du misstänker att du fått detta epostmeddelanade av misstag, ignorera det och fortsätt vara ett glatt troll!" -#: mediagoblin/templates/mediagoblin/auth/login.html:29 +#: mediagoblin/templates/mediagoblin/auth/login.html:30 msgid "Logging in failed!" msgstr "Inloggning misslyckades!" -#: mediagoblin/templates/mediagoblin/auth/login.html:42 +#: mediagoblin/templates/mediagoblin/auth/login.html:43 msgid "Don't have an account yet?" -msgstr "Har du inget konto?" +msgstr "Har du inget konto än?" -#: mediagoblin/templates/mediagoblin/auth/login.html:45 +#: mediagoblin/templates/mediagoblin/auth/login.html:46 msgid "Create one here!" -msgstr "Skapa ett!" +msgstr "Skapa ett här!" -#: mediagoblin/templates/mediagoblin/auth/login.html:48 +#: mediagoblin/templates/mediagoblin/auth/login.html:49 msgid "Forgot your password?" -msgstr "" +msgstr "Glömt ditt lösenord?" -#: mediagoblin/templates/mediagoblin/auth/login.html:51 +#: mediagoblin/templates/mediagoblin/auth/login.html:52 msgid "Change it!" -msgstr "" +msgstr "Ändra!" #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Skapa ett konto!" -#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/auth/register.html:31 msgid "Create" msgstr "Skapa" @@ -336,7 +353,7 @@ msgid "" msgstr "" "Hej %(username)s,\n" "\n" -"oppna den följande URLen i din webbläsare för att aktivera ditt konto på GNU MediaGoblin:\n" +"öppna den följande webbadressen i din webbläsare för att aktivera ditt konto på GNU MediaGoblin:\n" "\n" "%(verification_url)s" @@ -353,7 +370,7 @@ msgstr "Avbryt" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" -msgstr "Spara" +msgstr "Spara ändringar" #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format @@ -362,13 +379,13 @@ msgstr "Redigerar %(username)ss profil" #: mediagoblin/templates/mediagoblin/listings/tag.html:31 msgid "Media tagged with:" -msgstr "Taggat med:" +msgstr "Media taggat med:" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" msgstr "Ladda upp" -#: mediagoblin/templates/mediagoblin/submit/start.html:29 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 msgid "Submit" msgstr "Skicka" @@ -380,7 +397,7 @@ msgstr "%(username)ss media" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 #: mediagoblin/templates/mediagoblin/user_pages/user.html:32 msgid "Sorry, no such user found." -msgstr "Finns ingen sådan användare ännu." +msgstr "Ledsen, hittar ingen sådan användare." #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format @@ -516,7 +533,15 @@ msgstr "Kommentar" 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:175 +#: mediagoblin/user_pages/views.py:142 +msgid "Empty comments are not allowed." +msgstr "" + +#: mediagoblin/user_pages/views.py:148 +msgid "Comment posted!" +msgstr "" + +#: mediagoblin/user_pages/views.py:181 msgid "You are about to delete another user's media. Proceed with caution." msgstr "Du tänker radera en annan användares media. Var försiktig." diff --git a/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.mo new file mode 100644 index 00000000..b0d8d3fc Binary files /dev/null and b/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.mo differ diff --git a/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.po new file mode 100644 index 00000000..289bddb5 --- /dev/null +++ b/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.po @@ -0,0 +1,498 @@ +# Translations template for PROJECT. +# Copyright (C) 2011 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# +# Translators: +# వీవెన్ , 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-01 23:14-0500\n" +"PO-Revision-Date: 2011-11-03 14:08+0000\n" +"Last-Translator: veeven \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 0.9.6\n" +"Language: te\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 +msgid "Username" +msgstr "వాడుకరి పేరు" + +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 +msgid "Password" +msgstr "సంకేతపదం" + +#: mediagoblin/auth/forms.py:35 +msgid "Passwords must match." +msgstr "" + +#: mediagoblin/auth/forms.py:37 +msgid "Confirm password" +msgstr "" + +#: mediagoblin/auth/forms.py:39 +msgid "Type it again here to make sure there are no spelling mistakes." +msgstr "" + +#: mediagoblin/auth/forms.py:42 +msgid "Email address" +msgstr "ఈమెయిలు చిరునామా" + +#: mediagoblin/auth/views.py:55 +msgid "Sorry, registration is disabled on this instance." +msgstr "" + +#: mediagoblin/auth/views.py:73 +msgid "Sorry, a user with that name already exists." +msgstr "" + +#: mediagoblin/auth/views.py:77 +msgid "Sorry, that email address has already been taken." +msgstr "" + +#: mediagoblin/auth/views.py:179 +msgid "" +"Your email address has been verified. You may now login, edit your profile, " +"and submit images!" +msgstr "" + +#: mediagoblin/auth/views.py:185 +msgid "The verification key or user id is incorrect" +msgstr "" + +#: mediagoblin/auth/views.py:207 +msgid "Resent your verification email." +msgstr "" + +#: mediagoblin/auth/views.py:248 +msgid "" +"Could not send password recovery email as your username is inactive or your " +"account's email address has not been verified." +msgstr "" + +#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 +msgid "Title" +msgstr "శీర్షిక" + +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 +msgid "Tags" +msgstr "" + +#: mediagoblin/edit/forms.py:31 +msgid "Slug" +msgstr "" + +#: mediagoblin/edit/forms.py:32 +msgid "The slug can't be empty" +msgstr "" + +#: mediagoblin/edit/forms.py:33 +msgid "" +"The title part of this media's URL. You usually don't need to change this." +msgstr "" + +#: mediagoblin/edit/forms.py:40 +msgid "Bio" +msgstr "" + +#: mediagoblin/edit/forms.py:43 +msgid "Website" +msgstr "" + +#: mediagoblin/edit/views.py:64 +msgid "An entry with that slug already exists for this user." +msgstr "" + +#: mediagoblin/edit/views.py:85 +msgid "You are editing another user's media. Proceed with caution." +msgstr "" + +#: mediagoblin/edit/views.py:155 +msgid "You are editing a user's profile. Proceed with caution." +msgstr "" + +#: mediagoblin/process_media/errors.py:44 +msgid "Invalid file given for media type." +msgstr "" + +#: mediagoblin/submit/forms.py:25 +msgid "File" +msgstr "" + +#: mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "" + +#: mediagoblin/submit/views.py:46 +msgid "You must provide a file." +msgstr "" + +#: mediagoblin/submit/views.py:49 +msgid "The file doesn't seem to be an image!" +msgstr "" + +#: mediagoblin/submit/views.py:121 +msgid "Woohoo! Submitted!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:21 +msgid "Oops!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:24 +msgid "There doesn't seem to be a page at this address. Sorry!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:26 +msgid "" +"If you're sure the address is correct, maybe the page you're looking for has" +" been moved or deleted." +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:32 +msgid "Image of 404 goblin stressing out" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:22 +msgid "GNU MediaGoblin" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:47 +msgid "MediaGoblin logo" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:52 +msgid "Submit media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:63 +msgid "verify your email!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/auth/login.html:27 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 +msgid "Log in" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:89 +msgid "" +"Powered by MediaGoblin, a GNU project" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:24 +msgid "Explore" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:27 +msgid "Hi there, media lover! MediaGoblin is..." +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:29 +msgid "The perfect place for your media!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:30 +msgid "" +"A place for people to collaborate and show off original and derived " +"creations!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:31 +msgid "" +"Free, as in freedom. (We’re a GNU project, " +"after all.)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:32 +msgid "" +"Aiming to make the world a better place through decentralization and " +"(eventually, coming soon!) federation!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:33 +msgid "" +"Built for extensibility. (Multiple media types coming soon to the software," +" including video support!)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:34 +msgid "" +"Powered by people like you. (You can help us improve this" +" software!)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:38 +msgid "Excited to join us?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:39 +#, python-format +msgid "" +"Create a free account\n" +" or\n" +" Set up MediaGoblin on your own server" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:53 +msgid "Most recent media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 +msgid "Enter your new password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 +msgid "Enter your username or email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 +msgid "Your password has been changed. Try to log in now." +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 +msgid "" +"Check your inbox. We sent an email with a URL for changing your password." +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to change your GNU MediaGoblin password, open the following URL in \n" +"your web browser:\n" +"\n" +"%(verification_url)s\n" +"\n" +"If you think this is an error, just ignore this email and continue being\n" +"a happy goblin!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:30 +msgid "Logging in failed!" +msgstr "ప్రవేశం విఫలమయ్యింది!" + +#: mediagoblin/templates/mediagoblin/auth/login.html:43 +msgid "Don't have an account yet?" +msgstr "మీకు ఇంకా ఖాతా లేదా?" + +#: mediagoblin/templates/mediagoblin/auth/login.html:46 +msgid "Create one here!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:49 +msgid "Forgot your password?" +msgstr "మీ సంకేతపదాన్ని మర్చిపోయారా?" + +#: mediagoblin/templates/mediagoblin/auth/login.html:52 +msgid "Change it!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/register.html:27 +msgid "Create an account!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/register.html:31 +msgid "Create" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to activate your GNU MediaGoblin account, open the following URL in\n" +"your web browser:\n" +"\n" +"%(verification_url)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:29 +#, python-format +msgid "Editing %(media_title)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:36 +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49 +msgid "Cancel" +msgstr "రద్దుచేయి" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 +msgid "Save changes" +msgstr "మార్పులను భద్రపరచు" + +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 +#, python-format +msgid "Editing %(username)s's profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:31 +msgid "Media tagged with:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:26 +msgid "Submit yer media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Submit" +msgstr "దాఖలు చెయ్యి" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#, python-format +msgid "%(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 +msgid "Sorry, no such user found." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 +#, python-format +msgid "Really delete %(title)s?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 +msgid "Delete Permanently" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 +msgid "Media processing panel" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 +msgid "" +"You can track the state of media being processed for your gallery here." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 +msgid "Media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 +msgid "No media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 +msgid "These uploads failed to process:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +msgid "Email verification needed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +msgid "Almost done! Your account still needs to be activated." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +msgid "" +"An email should arrive in a few moments with instructions on how to do so." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +msgid "In case it doesn't:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +msgid "Resend verification email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +msgid "" +"Someone has registered an account with this username, but it still has to be" +" activated." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#, python-format +msgid "" +"If you are that person but you've lost your verification email, you can log in and resend it." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 +#, python-format +msgid "%(username)s's profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +msgid "Here's a spot to tell others about yourself." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +msgid "Edit profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +msgid "This user hasn't filled in their profile (yet)." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#, python-format +msgid "View all of %(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +msgid "" +"This is where your media will appear, but you don't seem to have added " +"anything yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +msgid "Add media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +msgid "There doesn't seem to be any media here yet..." +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 +msgid "feed icon" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 +msgid "Atom feed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 +msgid "Newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 +msgid "Older" +msgstr "" + +#: mediagoblin/user_pages/forms.py:24 +msgid "Comment" +msgstr "వ్యాఖ్య" + +#: mediagoblin/user_pages/forms.py:30 +msgid "I am sure I want to delete this" +msgstr "" + +#: mediagoblin/user_pages/views.py:142 +msgid "Empty comments are not allowed." +msgstr "" + +#: mediagoblin/user_pages/views.py:148 +msgid "Comment posted!" +msgstr "" + +#: mediagoblin/user_pages/views.py:181 +msgid "You are about to delete another user's media. Proceed with caution." +msgstr "" + + diff --git a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mo index adc3548e..e3751aeb 100644 Binary files a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mo and b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mo differ diff --git a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po index 1d86f1f9..c664adbe 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-09-25 20:26-0500\n" -"PO-Revision-Date: 2011-09-26 01:25+0000\n" +"POT-Creation-Date: 2011-11-01 23:14-0500\n" +"PO-Revision-Date: 2011-11-02 04:13+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -44,76 +44,76 @@ msgstr "再輸入一次,確定你沒有打錯字。" msgid "Email address" msgstr "電子郵件位置" -#: mediagoblin/auth/views.py:42 +#: mediagoblin/auth/views.py:55 msgid "Sorry, registration is disabled on this instance." msgstr "抱歉, 這個項目已經被暫停註冊." -#: mediagoblin/auth/views.py:60 +#: mediagoblin/auth/views.py:73 msgid "Sorry, a user with that name already exists." msgstr "抱歉, 這個使用者名稱已經存在." -#: mediagoblin/auth/views.py:64 +#: mediagoblin/auth/views.py:77 msgid "Sorry, that email address has already been taken." msgstr "抱歉,這個電子郵件已經被其他人使用了。" -#: mediagoblin/auth/views.py:165 +#: mediagoblin/auth/views.py:179 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" msgstr "你的電子郵件位址已被認證. 你現在就可以登入, 編輯你的個人檔案而且遞交照片!" -#: mediagoblin/auth/views.py:171 +#: mediagoblin/auth/views.py:185 msgid "The verification key or user id is incorrect" msgstr "認證碼或是使用者帳號錯誤" -#: mediagoblin/auth/views.py:192 +#: mediagoblin/auth/views.py:207 msgid "Resent your verification email." msgstr "重送認證信." -#: mediagoblin/auth/views.py:228 +#: mediagoblin/auth/views.py:248 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." -msgstr "" +msgstr "無法傳送密碼回復信件,因為你的使用者名稱已失效或是帳號尚未認證。" -#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 +#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "標題" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "標籤" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:31 msgid "Slug" msgstr "自訂字串" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:32 msgid "The slug can't be empty" msgstr "自訂字串不能空白" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:33 msgid "" "The title part of this media's URL. You usually don't need to change this." -msgstr "" +msgstr "此媒體網址的名稱。你通常不需要變動這個的。" -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:40 msgid "Bio" msgstr "自我介紹" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:43 msgid "Website" msgstr "網站" -#: mediagoblin/edit/views.py:63 +#: mediagoblin/edit/views.py:64 msgid "An entry with that slug already exists for this user." msgstr "這個自訂字串已經被其他人用了" -#: mediagoblin/edit/views.py:84 +#: mediagoblin/edit/views.py:85 msgid "You are editing another user's media. Proceed with caution." msgstr "你正在編輯他人的媒體檔案. 請謹慎處理." -#: mediagoblin/edit/views.py:154 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." msgstr "你正在編輯一位用戶的檔案. 請謹慎處理." @@ -127,17 +127,17 @@ msgstr "檔案" #: mediagoblin/submit/forms.py:30 msgid "Description of this work" -msgstr "" +msgstr "這個作品的描述" -#: mediagoblin/submit/views.py:47 +#: mediagoblin/submit/views.py:46 msgid "You must provide a file." msgstr "你必須提供一個檔案" -#: mediagoblin/submit/views.py:50 +#: mediagoblin/submit/views.py:49 msgid "The file doesn't seem to be an image!" msgstr "檔案似乎不是一個圖片喔!" -#: mediagoblin/submit/views.py:122 +#: mediagoblin/submit/views.py:121 msgid "Woohoo! Submitted!" msgstr "呼呼! 送出去嚕!" @@ -176,8 +176,8 @@ msgid "verify your email!" msgstr "確認您的電子郵件!" #: mediagoblin/templates/mediagoblin/base.html:73 -#: mediagoblin/templates/mediagoblin/auth/login.html:26 -#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/login.html:27 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Log in" msgstr "登入" @@ -191,7 +191,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:24 msgid "Explore" -msgstr "" +msgstr "探索" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." @@ -236,7 +236,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:38 msgid "Excited to join us?" -msgstr "" +msgstr "迫不亟待想要加入我們?" #: mediagoblin/templates/mediagoblin/root.html:39 #, python-format @@ -245,27 +245,30 @@ msgid "" " or\n" " Set up MediaGoblin on your own server" msgstr "" +"建立一個免費帳號\n" +" 或是\n" +" 在你的伺服器上設立 MediaGoblin" #: mediagoblin/templates/mediagoblin/root.html:53 msgid "Most recent media" -msgstr "" +msgstr "最新的媒體" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 msgid "Enter your new password" -msgstr "" +msgstr "輸入你的新密碼" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 msgid "Enter your username or email" -msgstr "" +msgstr "輸入你的帳號或是電子郵件" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." -msgstr "" +msgstr "你的密碼已經改變了。現在就登入試試看。" #: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 msgid "" "Check your inbox. We sent an email with a URL for changing your password." -msgstr "" +msgstr "檢查你的收件匣。我們已經傳送了電子郵件,你可利用郵件中的網址變更密碼。" #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format @@ -280,32 +283,39 @@ msgid "" "If you think this is an error, just ignore this email and continue being\n" "a happy goblin!" msgstr "" +"嗨 %(username)s,\n" +"\n" +"要更改 GNU MediaGoblin的密碼,在瀏覽器中打開下面的網址:\n" +"\n" +"%(verification_url)s\n" +"\n" +"如果你認為這個是個誤會,請忽略此封信件,繼續當個快樂的goblin!" -#: mediagoblin/templates/mediagoblin/auth/login.html:29 +#: mediagoblin/templates/mediagoblin/auth/login.html:30 msgid "Logging in failed!" msgstr "登入失敗!" -#: mediagoblin/templates/mediagoblin/auth/login.html:42 +#: mediagoblin/templates/mediagoblin/auth/login.html:43 msgid "Don't have an account yet?" msgstr "還沒有帳號嗎?" -#: mediagoblin/templates/mediagoblin/auth/login.html:45 +#: mediagoblin/templates/mediagoblin/auth/login.html:46 msgid "Create one here!" msgstr "在這裡建立一個吧!" -#: mediagoblin/templates/mediagoblin/auth/login.html:48 +#: mediagoblin/templates/mediagoblin/auth/login.html:49 msgid "Forgot your password?" -msgstr "" +msgstr "忘了密碼嗎?" -#: mediagoblin/templates/mediagoblin/auth/login.html:51 +#: mediagoblin/templates/mediagoblin/auth/login.html:52 msgid "Change it!" -msgstr "" +msgstr "變更!" #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "建立一個帳號!" -#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/auth/register.html:31 msgid "Create" msgstr "建立" @@ -353,7 +363,7 @@ msgstr "媒體檔案被標籤為:" msgid "Submit yer media" msgstr "遞交你的媒體檔案" -#: mediagoblin/templates/mediagoblin/submit/start.html:29 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 msgid "Submit" msgstr "送出" @@ -374,7 +384,7 @@ msgstr "真的要刪除 %(title)s?" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 msgid "Delete Permanently" -msgstr "" +msgstr "永遠刪除" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 msgid "Media processing panel" @@ -479,11 +489,11 @@ msgstr "Atom feed" #: mediagoblin/templates/mediagoblin/utils/pagination.html:40 msgid "Newer" -msgstr "" +msgstr "新一點" #: mediagoblin/templates/mediagoblin/utils/pagination.html:46 msgid "Older" -msgstr "" +msgstr "舊一點" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" @@ -491,9 +501,17 @@ msgstr "評論" #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" +msgstr "我確定我想要刪除" + +#: mediagoblin/user_pages/views.py:142 +msgid "Empty comments are not allowed." msgstr "" -#: mediagoblin/user_pages/views.py:175 +#: mediagoblin/user_pages/views.py:148 +msgid "Comment posted!" +msgstr "" + +#: mediagoblin/user_pages/views.py:181 msgid "You are about to delete another user's media. Proceed with caution." msgstr "你在刪除其他人的媒體檔案。請小心處理喔。" diff --git a/mediagoblin/init/__init__.py b/mediagoblin/init/__init__.py index b7f52595..08a0618d 100644 --- a/mediagoblin/init/__init__.py +++ b/mediagoblin/init/__init__.py @@ -29,8 +29,12 @@ from mediagoblin.workbench import WorkbenchManager from mediagoblin.storage import storage_system_from_config -class Error(Exception): pass -class ImproperlyConfigured(Error): pass +class Error(Exception): + pass + + +class ImproperlyConfigured(Error): + pass def setup_global_and_app_config(config_path): @@ -76,8 +80,8 @@ def setup_database(): "in fact they appear to be from the future?!") setup_globals( - db_connection = connection, - database = db) + db_connection=connection, + database=db) return connection, db @@ -99,10 +103,10 @@ def get_jinja_loader(user_template_path=None): def get_staticdirector(app_config): - if app_config.has_key('direct_remote_path'): + if 'direct_remote_path' in app_config: return staticdirect.RemoteStaticDirect( app_config['direct_remote_path'].strip()) - elif app_config.has_key('direct_remote_paths'): + elif 'direct_remote_paths' in app_config: direct_remote_path_lines = app_config[ 'direct_remote_paths'].strip().splitlines() return staticdirect.MultiRemoteStaticDirect( @@ -126,8 +130,8 @@ def setup_storage(): queue_store = storage_system_from_config(global_config[key_long]) setup_globals( - public_store = public_store, - queue_store = queue_store) + public_store=public_store, + queue_store=queue_store) return public_store, queue_store @@ -137,7 +141,7 @@ def setup_workbench(): workbench_manager = WorkbenchManager(app_config['workbench_path']) - setup_globals(workbench_manager = workbench_manager) + setup_globals(workbench_manager=workbench_manager) def setup_beaker_cache(): diff --git a/mediagoblin/init/celery/__init__.py b/mediagoblin/init/celery/__init__.py index c58b1305..f7ef9f39 100644 --- a/mediagoblin/init/celery/__init__.py +++ b/mediagoblin/init/celery/__init__.py @@ -40,25 +40,25 @@ def setup_celery_from_config(app_config, global_config, - set_environ: if set, this will CELERY_CONFIG_MODULE to the settings_module """ - if global_config.has_key('celery'): + if 'celery' in global_config: celery_conf = global_config['celery'] else: celery_conf = {} - + celery_settings = {} # set up mongodb stuff celery_settings['CELERY_RESULT_BACKEND'] = 'mongodb' - if not celery_settings.has_key('BROKER_BACKEND'): + if 'BROKER_BACKEND' not in celery_settings: celery_settings['BROKER_BACKEND'] = 'mongodb' celery_mongo_settings = {} - if app_config.has_key('db_host'): + if 'db_host' in app_config: celery_mongo_settings['host'] = app_config['db_host'] if celery_settings['BROKER_BACKEND'] == 'mongodb': celery_settings['BROKER_HOST'] = app_config['db_host'] - if app_config.has_key('db_port'): + if 'db_port' in app_config: celery_mongo_settings['port'] = app_config['db_port'] if celery_settings['BROKER_BACKEND'] == 'mongodb': celery_settings['BROKER_PORT'] = app_config['db_port'] @@ -84,6 +84,6 @@ def setup_celery_from_config(app_config, global_config, for key, value in celery_settings.iteritems(): setattr(this_module, key, value) - + if set_environ: os.environ['CELERY_CONFIG_MODULE'] = settings_module diff --git a/mediagoblin/init/celery/from_celery.py b/mediagoblin/init/celery/from_celery.py index 3e5adb98..05669b67 100644 --- a/mediagoblin/init/celery/from_celery.py +++ b/mediagoblin/init/celery/from_celery.py @@ -44,7 +44,7 @@ def setup_self(check_environ_for_conf=True, module_name=OUR_MODULENAME, if not os.path.exists(mgoblin_conf_file): raise IOError( "MEDIAGOBLIN_CONFIG not set or file does not exist") - + # By setting the environment variable here we should ensure that # this is the module that gets set up. os.environ['CELERY_CONFIG_MODULE'] = module_name diff --git a/mediagoblin/init/config.py b/mediagoblin/init/config.py index 029a0956..ae232e91 100644 --- a/mediagoblin/init/config.py +++ b/mediagoblin/init/config.py @@ -73,7 +73,7 @@ def read_mediagoblin_config(config_path, config_spec=CONFIG_SPEC_PATH): # For now the validator just works with the default functions, # but in the future if we want to add additional validation/configuration # functions we'd add them to validator.functions here. - # + # # See also: # http://www.voidspace.org.uk/python/validate.html#adding-functions validator = Validator() diff --git a/mediagoblin/listings/routing.py b/mediagoblin/listings/routing.py index b72bd015..234f2595 100644 --- a/mediagoblin/listings/routing.py +++ b/mediagoblin/listings/routing.py @@ -25,4 +25,3 @@ tag_routes = [ Route('mediagoblin.listings.tag_atom_feed', "/{tag}/atom/", controller="mediagoblin.listings.views:tag_atom_feed"), ] - diff --git a/mediagoblin/listings/views.py b/mediagoblin/listings/views.py index 01aad803..12e539e7 100644 --- a/mediagoblin/listings/views.py +++ b/mediagoblin/listings/views.py @@ -47,7 +47,7 @@ def tag_listing(request, page): {u'state': u'processed', u'tags.slug': tag_slug}) cursor = cursor.sort('created', DESCENDING) - + pagination = Pagination(page, cursor) media_entries = pagination() @@ -64,6 +64,7 @@ def tag_listing(request, page): ATOM_DEFAULT_NR_OF_UPDATED_ITEMS = 15 + def tag_atom_feed(request): """ generates the atom feed with the tag images diff --git a/mediagoblin/messages.py b/mediagoblin/messages.py index dc82fbf6..054d46c0 100644 --- a/mediagoblin/messages.py +++ b/mediagoblin/messages.py @@ -20,11 +20,13 @@ SUCCESS = 'success' WARNING = 'warning' ERROR = 'error' + def add_message(request, level, text): messages = request.session.setdefault('messages', []) messages.append({'level': level, 'text': text}) request.session.save() + def fetch_messages(request, clear_from_session=True): messages = request.session.get('messages') if messages and clear_from_session: diff --git a/mediagoblin/middleware/csrf.py b/mediagoblin/middleware/csrf.py index 44b799d5..8275c18e 100644 --- a/mediagoblin/middleware/csrf.py +++ b/mediagoblin/middleware/csrf.py @@ -25,9 +25,9 @@ from mediagoblin import mg_globals # Use the system (hardware-based) random number generator if it exists. # -- this optimization is lifted from Django if hasattr(random, 'SystemRandom'): - randrange = random.SystemRandom().randrange + getrandbits = random.SystemRandom().getrandbits else: - randrange = random.randrange + getrandbits = random.getrandbits class CsrfForm(Form): @@ -54,7 +54,7 @@ class CsrfMiddleware(object): and matches the form token for non-safe requests. """ - MAX_CSRF_KEY = 2 << 63 + CSRF_KEYLEN = 64 SAFE_HTTP_METHODS = ("GET", "HEAD", "OPTIONS", "TRACE") def __init__(self, mg_app): @@ -92,21 +92,18 @@ class CsrfMiddleware(object): response.set_cookie( mg_globals.app_config['csrf_cookie_name'], request.environ['CSRF_TOKEN'], - max_age=60 * 60 * 24 * 7 * 52, - path='/', - domain=mg_globals.app_config.get('csrf_cookie_domain', None), + path=request.environ['SCRIPT_NAME'], + domain=mg_globals.app_config.get('csrf_cookie_domain'), secure=(request.scheme.lower() == 'https'), httponly=True) # update the Vary header - response.vary = (response.vary or []) + ['Cookie'] + response.vary = (getattr(response, 'vary', None) or []) + ['Cookie'] def _make_token(self, request): """Generate a new token to use for CSRF protection.""" - return hashlib.md5("%s%s" % - (randrange(0, self.MAX_CSRF_KEY), - randrange(0, self.MAX_CSRF_KEY))).hexdigest() + return "%s" % (getrandbits(self.CSRF_KEYLEN),) def verify_tokens(self, request): """Verify that the CSRF Cookie exists and that it matches the diff --git a/mediagoblin/middleware/noop.py b/mediagoblin/middleware/noop.py index 28380232..820b5d9e 100644 --- a/mediagoblin/middleware/noop.py +++ b/mediagoblin/middleware/noop.py @@ -14,6 +14,7 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . + class NoOpMiddleware(object): def __init__(self, mg_app): diff --git a/mediagoblin/process_media/__init__.py b/mediagoblin/process_media/__init__.py index 2b9eed6e..34d83e54 100644 --- a/mediagoblin/process_media/__init__.py +++ b/mediagoblin/process_media/__init__.py @@ -14,8 +14,9 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -import Image +import os +import Image from celery.task import Task from celery import registry @@ -31,7 +32,7 @@ MEDIUM_SIZE = 640, 640 def create_pub_filepath(entry, filename): return mgg.public_store.get_unique_filepath( ['media_entries', - unicode(entry['_id']), + unicode(entry._id), filename]) @@ -55,7 +56,7 @@ class ProcessMedia(Task): try: process_image(entry) except BaseProcessingFail, exc: - mark_entry_failed(entry[u'_id'], exc) + mark_entry_failed(entry._id, exc) return entry['state'] = u'processed' @@ -65,9 +66,10 @@ class ProcessMedia(Task): """ If the processing failed we should mark that in the database. - Assuming that the exception raised is a subclass of BaseProcessingFail, - we can use that to get more information about the failure and store that - for conveying information to users about the failure, etc. + Assuming that the exception raised is a subclass of + BaseProcessingFail, we can use that to get more information + about the failure and store that for conveying information to + users about the failure, etc. """ entry_id = args[0] mark_entry_failed(entry_id, exc) @@ -80,10 +82,10 @@ def mark_entry_failed(entry_id, exc): """ Mark a media entry as having failed in its conversion. - Uses the exception that was raised to mark more information. If the - exception is a derivative of BaseProcessingFail then we can store extra - information that can be useful for users telling them why their media failed - to process. + Uses the exception that was raised to mark more information. If + the exception is a derivative of BaseProcessingFail then we can + store extra information that can be useful for users telling them + why their media failed to process. Args: - entry_id: The id of the media entry @@ -122,21 +124,20 @@ def process_image(entry): mgg.queue_store, queued_filepath, 'source') + extension = os.path.splitext(queued_filename)[1] + try: thumb = Image.open(queued_filename) except IOError: raise BadMediaFail() thumb.thumbnail(THUMB_SIZE, Image.ANTIALIAS) - # ensure color mode is compatible with jpg - if thumb.mode != "RGB": - thumb = thumb.convert("RGB") - thumb_filepath = create_pub_filepath(entry, 'thumbnail.jpg') + thumb_filepath = create_pub_filepath(entry, 'thumbnail' + extension) thumb_file = mgg.public_store.get_file(thumb_filepath, 'w') with thumb_file: - thumb.save(thumb_file, "JPEG", quality=90) + thumb.save(thumb_file) # If the size of the original file exceeds the specified size of a `medium` # file, a `medium.jpg` files is created and later associated with the media @@ -147,14 +148,11 @@ def process_image(entry): if medium.size[0] > MEDIUM_SIZE[0] or medium.size[1] > MEDIUM_SIZE[1]: medium.thumbnail(MEDIUM_SIZE, Image.ANTIALIAS) - if medium.mode != "RGB": - medium = medium.convert("RGB") - - medium_filepath = create_pub_filepath(entry, 'medium.jpg') + medium_filepath = create_pub_filepath(entry, 'medium' + extension) medium_file = mgg.public_store.get_file(medium_filepath, 'w') with medium_file: - medium.save(medium_file, "JPEG", quality=90) + medium.save(medium_file) medium_processed = True # we have to re-read because unlike PIL, not everything reads @@ -164,7 +162,8 @@ def process_image(entry): with queued_file: original_filepath = create_pub_filepath(entry, queued_filepath[-1]) - with mgg.public_store.get_file(original_filepath, 'wb') as original_file: + with mgg.public_store.get_file(original_filepath, 'wb') \ + as original_file: original_file.write(queued_file.read()) mgg.queue_store.delete_file(queued_filepath) diff --git a/mediagoblin/process_media/errors.py b/mediagoblin/process_media/errors.py index 8003ffaf..4224a3e1 100644 --- a/mediagoblin/process_media/errors.py +++ b/mediagoblin/process_media/errors.py @@ -16,17 +16,18 @@ from mediagoblin.tools.translate import lazy_pass_to_ugettext as _ + class BaseProcessingFail(Exception): """ Base exception that all other processing failure messages should subclass from. - + You shouldn't call this itself; instead you should subclass it and provid the exception_path and general_message applicable to this error. """ general_message = u'' - + @property def exception_path(self): return u"%s:%s" % ( @@ -34,8 +35,8 @@ class BaseProcessingFail(Exception): def __init__(self, **metadata): self.metadata = metadata or {} - - + + class BadMediaFail(BaseProcessingFail): """ Error that should be raised when an inappropriate file was given diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index b108cc9e..a7b659c3 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -22,7 +22,7 @@ font-family: 'Lato'; font-style: normal; font-weight: 400; - src: local('Lato Regular'), local('Lato-Regular'), url('../fonts/Lato-Regular.woff') format('truetype'); + src: local('Lato Regular'), local('Lato-Regular'), url('../fonts/Lato-Regular.ttf') format('truetype'); } body { @@ -161,7 +161,6 @@ background-image: -moz-linear-gradient(center top , rgb(134, 212, 177), rgb(109, padding-right: 11px; text-decoration: none; font-family: 'Lato', sans-serif; - font-size: 1.2em; font-weight: bold; } @@ -213,11 +212,11 @@ text-align: center; width: 100%; } -.form_field_box { - margin-bottom: 24px; +.form_field_input { + margin-bottom: 10px; } -.form_field_label,.form_field_input { +.form_field_label { margin-bottom: 4px; } @@ -250,8 +249,12 @@ text-align: center; font-size: 0.9em; } +.comment_content { + margin-bottom: 30px; +} + .comment_content p { - margin-bottom: 4px; + margin-bottom: 0px; } /* media galleries */ @@ -291,13 +294,16 @@ img.media_icon{ /* navigation */ .navigation_button{ - width: 139px; + width: 135px; display: block; float: left; text-align: center; - background-color: #333; + background-color: #1d1d1d; + border: 1px solid; + border-color: #2c2c2c #232323 #1a1a1a; + border-radius: 3px; text-decoration: none; - padding: 12px 0pt; + padding: 8px 0px 14px; font-size: 2em; margin: 0 0 20px } @@ -307,7 +313,7 @@ p.navigation_button{ } .navigation_left{ - margin-right: 2px; + margin-right: 6px; } /* messages */ diff --git a/mediagoblin/static/images/icon_comment.png b/mediagoblin/static/images/icon_comment.png new file mode 100644 index 00000000..76860a92 Binary files /dev/null and b/mediagoblin/static/images/icon_comment.png differ diff --git a/mediagoblin/static/images/logo.png b/mediagoblin/static/images/logo.png index 1c08a2fb..b40e58fb 100644 Binary files a/mediagoblin/static/images/logo.png and b/mediagoblin/static/images/logo.png differ diff --git a/mediagoblin/static/images/logo.svg b/mediagoblin/static/images/logo.svg new file mode 100644 index 00000000..f236a597 --- /dev/null +++ b/mediagoblin/static/images/logo.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/mediagoblin/staticdirect.py b/mediagoblin/staticdirect.py index 58175881..c6d2b374 100644 --- a/mediagoblin/staticdirect.py +++ b/mediagoblin/staticdirect.py @@ -21,24 +21,24 @@ import urlparse # Staticdirect infrastructure. # Borrowed largely from cc.engine # by Chris Webber & Creative Commons -# +# # This needs documentation! #################################### import pkg_resources import urlparse + class StaticDirect(object): def __init__(self): self.cache = {} def __call__(self, filepath): - if self.cache.has_key(filepath): + if filepath in self.cache: return self.cache[filepath] static_direction = self.cache[filepath] = self.get(filepath) return static_direction - def get(self, filepath): # should be implemented by the individual staticdirector diff --git a/mediagoblin/storage/cloudfiles.py b/mediagoblin/storage/cloudfiles.py index b1dd9450..0d3cc3df 100644 --- a/mediagoblin/storage/cloudfiles.py +++ b/mediagoblin/storage/cloudfiles.py @@ -27,6 +27,7 @@ from mediagoblin.storage import StorageInterface, clean_listy_filepath import cloudfiles import mimetypes + class CloudFilesStorage(StorageInterface): ''' OpenStack/Rackspace Cloud's Swift/CloudFiles support diff --git a/mediagoblin/submit/__init__.py b/mediagoblin/submit/__init__.py index 576bd0f5..ba347c69 100644 --- a/mediagoblin/submit/__init__.py +++ b/mediagoblin/submit/__init__.py @@ -13,5 +13,3 @@ # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . - - diff --git a/mediagoblin/submit/security.py b/mediagoblin/submit/security.py index 9d62a36e..6708baf7 100644 --- a/mediagoblin/submit/security.py +++ b/mediagoblin/submit/security.py @@ -16,9 +16,9 @@ from mimetypes import guess_type - ALLOWED = ['image/jpeg', 'image/png', 'image/tiff', 'image/gif'] + def check_filetype(posted_file): if not guess_type(posted_file.filename)[0] in ALLOWED: return False diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 7134235e..139b1d1d 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -39,7 +39,7 @@ def submit_start(request): submit_form = submit_forms.SubmitStartForm(request.POST) if request.method == 'POST' and submit_form.validate(): - if not (request.POST.has_key('file') + if not ('file' in request.POST and isinstance(request.POST['file'], FieldStorage) and request.POST['file'].file): submit_form.file.errors.append( @@ -60,9 +60,9 @@ def submit_start(request): entry['description'] = unicode(request.POST.get('description')) entry['description_html'] = cleaned_markdown_conversion( entry['description']) - - entry['media_type'] = u'image' # heh - entry['uploader'] = request.user['_id'] + + entry['media_type'] = u'image' # heh + entry['uploader'] = request.user._id # Process the user's folksonomy "tags" entry['tags'] = convert_to_tag_list_of_dicts( @@ -74,7 +74,7 @@ def submit_start(request): # Now store generate the queueing related filename queue_filepath = request.app.queue_store.get_unique_filepath( ['media_entries', - unicode(entry['_id']), + unicode(entry._id), secure_filename(filename)]) # queue appropriately @@ -89,8 +89,10 @@ def submit_start(request): # We generate this ourselves so we know what the taks id is for # retrieval later. - # (If we got it off the task's auto-generation, there'd be a risk of - # a race condition when we'd save after sending off the task) + + # (If we got it off the task's auto-generation, there'd be + # a risk of a race condition when we'd save after sending + # off the task) task_id = unicode(uuid.uuid4()) entry['queued_task_id'] = task_id @@ -103,7 +105,7 @@ def submit_start(request): # conditions with changes to the document via processing code) try: process_media.apply_async( - [unicode(entry['_id'])], {}, + [unicode(entry._id)], {}, task_id=task_id) except BaseException as exc: # The purpose of this section is because when running in "lazy" @@ -112,16 +114,16 @@ def submit_start(request): # expect a lot of users to run things in this way we have to # capture stuff here. # - # ... not completely the diaper pattern because the exception is - # re-raised :) - mark_entry_failed(entry[u'_id'], exc) + # ... not completely the diaper pattern because the + # exception is re-raised :) + mark_entry_failed(entry._id, exc) # re-raise the exception raise add_message(request, SUCCESS, _('Woohoo! Submitted!')) return redirect(request, "mediagoblin.user_pages.user_home", - user = request.user['username']) + user=request.user['username']) return render_to_response( request, diff --git a/mediagoblin/templates/mediagoblin/auth/forgot_password.html b/mediagoblin/templates/mediagoblin/auth/forgot_password.html index b95a4dcb..9b821426 100644 --- a/mediagoblin/templates/mediagoblin/auth/forgot_password.html +++ b/mediagoblin/templates/mediagoblin/auth/forgot_password.html @@ -20,20 +20,15 @@ {% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} {% block mediagoblin_content %} -
{{ csrf_token }} -
-

{% trans %}Enter your username or email{% endtrans %}

- +

{% trans %}Recover password{% endtrans %}

{{ wtforms_util.render_divs(fp_form) }}
- +
-
{% endblock %} - diff --git a/mediagoblin/templates/mediagoblin/auth/login.html b/mediagoblin/templates/mediagoblin/auth/login.html index 61c5a203..756f67c0 100644 --- a/mediagoblin/templates/mediagoblin/auth/login.html +++ b/mediagoblin/templates/mediagoblin/auth/login.html @@ -30,7 +30,17 @@ {% trans %}Logging in failed!{% endtrans %} {% endif %} + {% if allow_registration %} +

+ {% trans %}Don't have an account yet?{% endtrans %} + {%- trans %}Create one here!{% endtrans %} +

+ {% endif %} {{ wtforms_util.render_divs(login_form) }} +

+ + {% trans %}Forgot your password?{% endtrans %} +

@@ -38,20 +48,6 @@ {% endif %} - {% if allow_registration %} -

- {% trans %}Don't have an account yet?{% endtrans %} -
- - {%- trans %}Create one here!{% endtrans %} -

-

- {% trans %}Forgot your password?{% endtrans %} -
- - {%- trans %}Change it!{% endtrans %} -

- {% endif %} {% endblock %} diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index b4c4dcf3..64fafb73 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -19,7 +19,7 @@ - {% block title %}{% trans %}GNU MediaGoblin{% endtrans %}{% endblock title %} + {% block title %}{{ app_config['html_title'] }}{% endblock %} {{ request.user['username'] }} - (log out) + ({% trans %}log out{% endtrans %}) {% else %} {% trans %}Log in{% endtrans %} diff --git a/mediagoblin/templates/mediagoblin/listings/tag.html b/mediagoblin/templates/mediagoblin/listings/tag.html index 58863015..f797f72f 100644 --- a/mediagoblin/templates/mediagoblin/listings/tag.html +++ b/mediagoblin/templates/mediagoblin/listings/tag.html @@ -26,9 +26,13 @@ tag=tag_slug) }}"> {% endblock mediagoblin_head %} +{% block title %} + {% trans %}Media tagged with: {{ tag_name }}{% endtrans %} — {{ super() }} +{% endblock %} + {% block mediagoblin_content -%}

- {% trans %}Media tagged with:{% endtrans %} {{ tag_name }} + {% trans %}Media tagged with: {{ tag_name }}{% endtrans %}